/* Theme base styles */

/* Tools
Any animations, or functions used throughout the project.
Note: _macros.css needs to be imported into each stylesheet where macros are used and not included here
*/

/* Generic
This is where reset, normalize & box-sizing styles go.
*/

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
}
@layer reset {
  /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

  /* Document
     ========================================================================== */

  /**
   * 1. Correct the line height in all browsers.
   * 2. Prevent adjustments of font size after orientation changes in iOS.
   */

  html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
  }

  /* Sections
     ========================================================================== */

  /**
   * Remove the margin in all browsers.
   */

  body {
    margin: 0;
  }

  /**
   * Correct the font size and margin on `h1` elements within `section` and
   * `article` contexts in Chrome, Firefox, and Safari.
   */

  h1 {
    font-size: 2em;
    margin: 0.67em 0;
  }

  /* Grouping content
     ========================================================================== */

  /**
   * Add the correct box sizing in Firefox.
   */

  hr {
    box-sizing: content-box;
    height: 0;
  }

  /**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */

  pre {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
  }

  /* Text-level semantics
     ========================================================================== */

  /**
   * 1. Remove the bottom border in Chrome 57-
   * 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
   */

  abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    text-decoration: underline dotted; /* 2 */
  }

  /**
   * Add the correct font weight in Chrome, Edge, and Safari.
   */

  b,
  strong {
    font-weight: bolder;
  }

  /**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */

  code,
  kbd,
  samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
  }

  /**
   * Add the correct font size in all browsers.
   */

  small {
    font-size: 80%;
  }

  /**
   * Prevent `sub` and `sup` elements from affecting the line height in
   * all browsers.
   */

  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sub {
    bottom: -0.25em;
  }

  sup {
    top: -0.5em;
  }

  /* Forms
     ========================================================================== */

  /**
   * 1. Change the font styles in all browsers.
   * 2. Remove the margin in Firefox and Safari.
   */

  button,
  input,
  optgroup,
  select,
  textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
  }

  /**
   * Remove the inheritance of text transform in Edge and Firefox.
   * 1. Remove the inheritance of text transform in Firefox.
   */

  button,
  select { /* 1 */
    text-transform: none;
  }

  /**
   * Correct the inability to style clickable types in iOS and Safari.
   */

  button,
  [type="button"],
  [type="reset"],
  [type="submit"] {
    -webkit-appearance: button;
  }

  /**
   * Remove the inner border and padding in Firefox.
   */

  button::-moz-focus-inner,
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
  }

  /**
   * Restore the focus styles unset by the previous rule.
   */

  button:-moz-focusring,
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
  }

  /**
   * Correct the padding in Firefox.
   */

  fieldset {
    padding: 0.35em 0.75em 0.625em;
  }

  /**
   * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.
   */

  legend {
    padding: 0;
  }

  /**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */

  progress {
    vertical-align: baseline;
  }

  /**
   * Correct the cursor style of increment and decrement buttons in Chrome.
   */

  [type="number"]::-webkit-inner-spin-button,
  [type="number"]::-webkit-outer-spin-button {
    height: auto;
  }

  /**
   * 1. Correct the odd appearance in Chrome and Safari.
   * 2. Correct the outline style in Safari.
   */

  [type="search"] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
  }

  /**
   * Remove the inner padding in Chrome and Safari on macOS.
   */

  [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  /**
   * 1. Correct the inability to style clickable types in iOS and Safari.
   * 2. Change font properties to `inherit` in Safari.
   */

  ::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
  }

  /* Interactive
     ========================================================================== */

  /*
   * Add the correct display in Edge and Firefox.
   */

  details {
    display: block;
  }

  /*
   * Add the correct display in all browsers.
   */

  summary {
    display: list-item;
  }
}
@layer theme {
  :root {
    --sp-rem-base: 0.0625rem;
    --sp-layout-spacing: 1rem;
    --sp-content-spacing: 1rem;
    --sp-vertical-spacing: calc(var(--sp-layout-spacing) * 4);

    --sp-transition-speed-fast: 40ms;
    --sp-transition-speed-normal: 80ms;
    --sp-transition-speed-slow: 120ms;

    --sp-body-font-color: #000;
    --sp-body-font-family: sans-serif;
    --sp-body-font-size: calc(16 * var(--sp-rem-base));

    --sp-border-radius-normal: calc(6 * var(--sp-rem-base));

    --sp-max-content-width: 1240px;

    --sp-dnd-section-padding: var(--sp-vertical-spacing) var(--sp-layout-spacing);

    --sp-anchor-font-color: #0270E0;
    --sp-anchor-font-color-hover: #0270E0;
    --sp-anchor-font-color-active: #0270E0;
    --sp-anchor-font-family: inherit;
    --sp-anchor-font-weight: inherit;
    --sp-anchor-font-style: inherit;
    --sp-anchor-text-decoration: underline;

    --sp-h1-font-color: inherit;
    --sp-h1-font-family: inherit;
    --sp-h1-font-size: 3.125rem;
    --sp-h1-font-weight: 700;
    --sp-h1-font-style: inherit;
    --sp-h1-text-decoration: inherit;
    --sp-h1-text-transform: inherit;

    --sp-h2-font-color: inherit;
    --sp-h2-font-family: inherit;
    --sp-h2-font-size: 2.375rem;
    --sp-h2-font-weight: 700;
    --sp-h2-font-style: inherit;
    --sp-h2-text-decoration: inherit;
    --sp-h2-text-transform: inherit;

    --sp-h3-font-color: inherit;
    --sp-h3-font-family: inherit;
    --sp-h3-font-size: 1.875rem;
    --sp-h3-font-weight: 700;
    --sp-h3-font-style: inherit;
    --sp-h3-text-decoration: inherit;
    --sp-h3-text-transform: inherit;

    --sp-h4-font-color: inherit;
    --sp-h4-font-family: inherit;
    --sp-h4-font-size: 1.5rem;
    --sp-h4-font-weight: 400;
    --sp-h4-font-style: inherit;
    --sp-h4-text-decoration: inherit;
    --sp-h4-text-transform: inherit;

    --sp-h5-font-color: inherit;
    --sp-h5-font-family: inherit;
    --sp-h5-font-size: 1rem;
    --sp-h5-font-weight: 400;
    --sp-h5-font-style: inherit;
    --sp-h5-text-decoration: inherit;
    --sp-h5-text-transform: inherit;

    --sp-h6-font-color: inherit;
    --sp-h6-font-family: inherit;
    --sp-h6-font-size: 0.875rem;
    --sp-h6-font-weight: 400;
    --sp-h6-font-style: inherit;
    --sp-h6-text-decoration: inherit;
    --sp-h6-text-transform: inherit;

    --sp-blockquote-border-color: #000;

    --sp-button-border: calc(1 * var(--sp-rem-base)) solid #000;
    --sp-button-border-hover: var(--sp-button-border);
    --sp-button-border-active: var(--sp-button-border-hover);
    --sp-button-padding: 1em;
    --sp-button-background-color: #000;
    --sp-button-background-color-hover: #222;
    --sp-button-background-color-active: var(--sp-button-background-color-hover);
    --sp-button-border-radius: 0;
    --sp-button-border-radius-hover: var(--sp-button-border-radius);
    --sp-button-font-color: #fff;
    --sp-button-font-color-hover: var(--sp-button-font-color);
    --sp-button-font-family: sans-serif;
    --sp-button-font-size: inherit;
    --sp-button-font-weight: inherit;
    --sp-button-font-style: inherit;
    --sp-button-text-decoration: inherit;
    --sp-button-text-transform: inherit;
    --sp-button-letter-spacing: inherit;

    --sp-form-font-color: inherit;
    --sp-form-font-family: inherit;
    --sp-form-font-size: inherit;
    --sp-form-input-padding: 0.7em;
    --sp-form-border-top: 0;
    --sp-form-border-right: 0;
    --sp-form-border-bottom: 0;
    --sp-form-border-left: 0;
    --sp-form-border-top-left-radius: 0;
    --sp-form-border-top-right-radius: 0;
    --sp-form-border-bottom-left-radius: 0;
    --sp-form-border-bottom-right-radius: 0;
    --sp-form-background-color: transparent;
    --sp-form-padding: 0;

    --sp-form-title-border-top: 0;
    --sp-form-title-border-right: 0;
    --sp-form-title-border-bottom: 0;
    --sp-form-title-border-left: 0;
    --sp-form-title-border-top-left-radius: 0;
    --sp-form-title-border-top-right-radius: 0;
    --sp-form-title-border-bottom-left-radius: 0;
    --sp-form-title-border-bottom-right-radius: 0;
    --sp-form-title-background-color: transparent;
    --sp-form-title-padding: 0 0 var(--sp-layout-spacing);
    --sp-form-title-font-color: inherit;
    --sp-form-title-font-family: inherit;
    --sp-form-title-font-size: 1.5em;
    --sp-form-title-font-weight: 700;
    --sp-form-title-font-style: inherit;
    --sp-form-title-text-decoration: inherit;

    --sp-form-label-font-color: inherit;

    --sp-form-legend-font-color: inherit;

    --sp-form-input-border: 0.0625rem solid #000;
    --sp-form-input-border-radius: 0;
    --sp-form-input-background-color: #fff;
    --sp-form-input-font-color: #000;
    --sp-form-input-placeholder-font-color: var(--sp-form-input-font-color);
    --sp-form-input-date-picker-primary-color: var(--sp-form-input-font-color);

    --sp-form-button-border: 0.0625rem solid #000;
    --sp-form-button-border-hover: var(--sp-form-button-border);
    --sp-form-button-border-active: var(--sp-form-button-border-hover);
    --sp-form-button-border-radius: 0;
    --sp-form-button-padding: 1em;
    --sp-form-button-font-color: #fff;
    --sp-form-button-font-color-hover: var(--sp-form-button-font-color);
    --sp-form-button-font-family: sans-serif;
    --sp-form-button-font-size: inherit;
    --sp-form-button-font-weight: inherit;
    --sp-form-button-font-style: inherit;
    --sp-form-button-text-decoration: inherit;
    --sp-form-button-text-transform: inherit;
    --sp-form-button-letter-spacing: inherit;
    --sp-form-button-background-color: #000;
    --sp-form-button-background-color-hover: #222;
    --sp-form-button-background-color-active: var(--sp-form-button-background-color-hover);

    --sp-table-border: 0.0625rem solid #000;
    --sp-table-padding: 1em;
    --sp-table-background-color: #fff;
    --sp-table-font-color: #000;
    --sp-table-header-background-color: var(--sp-table-background-color);
    --sp-table-header-font-color: var(--sp-table-font-color);
    --sp-table-footer-background-color: var(--sp-table-background-color);
    --sp-table-footer-font-color: var(--sp-table-font-color);

    --sp-header-background-color: #fff;
    --sp-header-font-family: sans-serif;
    --sp-header-font-color: #000;
    --sp-header-font-color-hover: #222;
    --sp-header-font-color-active: var(--sp-header-font-color-hover);

    --sp-header-dropdown-border-color: #000;
    --sp-header-dropdown-border: 0.0625rem solid var(--sp-header-dropdown-border-color);
    --sp-header-dropdown-background-color: #fff;
    --sp-header-dropdown-background-color-hover: var(--sp-header-background-color);

    --sp-footer-background-color: #fff;
    --sp-footer-font-color: #000;
  }
}
/* ============================================================
   STOLK CONSTRUCTION — brand design tokens
   Ported from the design system's colors_and_type.css.
   Defaults live here; theme-overrides.css replaces the values
   an editor can control from Theme Settings.
   ============================================================ */

/* ---------- Gotham (self-hosted brand typeface) ---------- */

@font-face {
  font-family: "Gotham";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url("https://342959668.fs1.hubspotusercontent-na3.net/hubfs/342959668/raw_assets/public/stolk-construction-hubspot-theme/fonts/Gotham-Light.otf") format("opentype");
}

@font-face {
  font-family: "Gotham";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("https://342959668.fs1.hubspotusercontent-na3.net/hubfs/342959668/raw_assets/public/stolk-construction-hubspot-theme/fonts/GothamBook.ttf") format("truetype");
}

@font-face {
  font-family: "Gotham";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("https://342959668.fs1.hubspotusercontent-na3.net/hubfs/342959668/raw_assets/public/stolk-construction-hubspot-theme/fonts/Gotham_Medium.otf") format("opentype");
}

@font-face {
  font-family: "Gotham";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("https://342959668.fs1.hubspotusercontent-na3.net/hubfs/342959668/raw_assets/public/stolk-construction-hubspot-theme/fonts/Gotham-Bold.otf") format("opentype");
}

@font-face {
  font-family: "Gotham";
  font-weight: 900;
  font-style: normal;
  font-display: swap;
  src: url("https://342959668.fs1.hubspotusercontent-na3.net/hubfs/342959668/raw_assets/public/stolk-construction-hubspot-theme/fonts/Gotham-Black.otf") format("opentype");
}

@layer theme {
  :root {
    /* ---------- brand colour ---------- */
    /* Stolk Orange is the single hero colour: accent and punctuation, not a wash. */
    --stolk-orange: #f5842a;
    --stolk-orange-400: #ff9630;
    --stolk-orange-500: #f5842a;
    --stolk-orange-600: #e56f25;
    --stolk-orange-700: #c66028;
    --stolk-orange-800: #a24e1f;
    --stolk-orange-100: #fce2cb;
    --stolk-orange-50: #fdf1e6;

    /* ---------- neutrals (warm charcoal to concrete) ---------- */
    --stolk-black: #282828;
    --stolk-ink: #282828;
    --stolk-slate-900: #14181d;
    --stolk-slate-800: #303234;
    --stolk-slate-700: #3b4047;
    --stolk-grey-600: #5c636b;
    --stolk-grey-500: #7a828b;
    --stolk-grey-400: #a3aab2;
    --stolk-grey-300: #c9ced3;
    --stolk-grey-200: #e3e6e9;
    --stolk-grey-100: #f1f2f4;
    --stolk-concrete: #f6f5f2;
    --stolk-white: #fff;

    /* ---------- semantic surface / text roles ---------- */
    --stolk-bg: var(--stolk-concrete);
    --stolk-bg-elevated: var(--stolk-white);
    --stolk-bg-dark: var(--stolk-slate-800);
    --stolk-fg1: var(--stolk-ink);
    --stolk-fg2: var(--stolk-grey-600);
    --stolk-fg3: var(--stolk-grey-500);
    --stolk-fg-on-dark: #f4f5f6;
    --stolk-accent: var(--stolk-orange);
    --stolk-accent-hover: var(--stolk-orange-600);
    --stolk-accent-press: var(--stolk-orange-700);
    --stolk-border: var(--stolk-grey-200);
    --stolk-border-strong: var(--stolk-grey-300);
    --stolk-focus-ring: rgb(245 132 42 / 45%);

    /* ---------- type families ---------- */
    /* Gotham leads (display + UI). Montserrat carries eyebrows and subheads.
       Roboto carries running body copy. */
    --stolk-font-display: "Gotham", "Montserrat", system-ui, sans-serif;
    --stolk-font-subhead: "Montserrat", system-ui, sans-serif;
    --stolk-font-body: "Roboto", system-ui, -apple-system, sans-serif;
    --stolk-font-mono: "Montserrat", system-ui, sans-serif;

    /* ---------- radii ---------- */
    /* Structured and industrial: 2px on every box, circular controls stay round. */
    --stolk-radius-sm: 2px;
    --stolk-radius-md: 2px;
    --stolk-radius-lg: 2px;
    --stolk-radius-xl: 2px;
    --stolk-radius-full: 999px;

    /* ---------- elevation ---------- */
    --stolk-shadow-xs: 0 1px 2px rgb(27 30 34 / 6%);
    --stolk-shadow-sm: 0 1px 3px rgb(27 30 34 / 8%), 0 1px 2px rgb(27 30 34 / 6%);
    --stolk-shadow-md: 0 4px 12px rgb(27 30 34 / 8%), 0 2px 4px rgb(27 30 34 / 6%);
    --stolk-shadow-lg: 0 12px 28px rgb(27 30 34 / 12%), 0 4px 8px rgb(27 30 34 / 6%);
    --stolk-shadow-xl: 0 24px 56px rgb(27 30 34 / 16%);

    /* ---------- layout ---------- */
    --stolk-container: 1240px;
    --stolk-container-narrow: 820px;
    --stolk-gutter: clamp(20px, 5vw, 80px);

    /* Measured at runtime by the header controller so full-bleed heroes and
       anchored scroll targets can clear the fixed header. */
    --stolk-header-h: 118px;

    /* ---------- motion ---------- */
    --stolk-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --stolk-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --stolk-dur-fast: 140ms;
    --stolk-dur-base: 240ms;
    --stolk-dur-slow: 420ms;
  }
}

/* Objects
Non-cosmetic design patterns including grid and layout classes)
*/



@layer theme {
  /* CSS variables */

  :root {
    --column-gap: 2.13%;
    --column-width-multiplier: 8.333;
  }

  /* Mobile layout */

  .row-fluid {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
  }

  
    .row-fluid .span1,
    .row-fluid .span2,
    .row-fluid .span3,
    .row-fluid .span4,
    .row-fluid .span5,
    .row-fluid .span6,
    .row-fluid .span7,
    .row-fluid .span8,
    .row-fluid .span9,
    .row-fluid .span10,
    .row-fluid .span11,
    .row-fluid .span12{
    min-height: 1px;
    width: 100%;
  }

  /* Desktop layout */

  @media (min-width: 768px) {
    .row-fluid {
      flex-wrap: nowrap;
      justify-content: space-between;
    }

    
      .row-fluid .span1 {
        width: calc(var(--column-width-multiplier) * 1% * 1 - var(--column-gap) * (11 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span2 {
        width: calc(var(--column-width-multiplier) * 1% * 2 - var(--column-gap) * (10 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span3 {
        width: calc(var(--column-width-multiplier) * 1% * 3 - var(--column-gap) * (9 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span4 {
        width: calc(var(--column-width-multiplier) * 1% * 4 - var(--column-gap) * (8 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span5 {
        width: calc(var(--column-width-multiplier) * 1% * 5 - var(--column-gap) * (7 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span6 {
        width: calc(var(--column-width-multiplier) * 1% * 6 - var(--column-gap) * (6 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span7 {
        width: calc(var(--column-width-multiplier) * 1% * 7 - var(--column-gap) * (5 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span8 {
        width: calc(var(--column-width-multiplier) * 1% * 8 - var(--column-gap) * (4 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span9 {
        width: calc(var(--column-width-multiplier) * 1% * 9 - var(--column-gap) * (3 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span10 {
        width: calc(var(--column-width-multiplier) * 1% * 10 - var(--column-gap) * (2 * var(--column-width-multiplier) / 100));
      }
    
      .row-fluid .span11 {
        width: calc(var(--column-width-multiplier) * 1% * 11 - var(--column-gap) * (1 * var(--column-width-multiplier) / 100));
      }
    
  }
}
@layer theme {
  .symetric-section-grid {
    --sp-grid-section-column-count: 1;
    --sp-grid-section-gap: var(--sp-layout-spacing);

    &.no-gap {
      --sp-grid-section-gap: 0;
    }

    @media (min-width: 768px) {
      &.columns-2 {
        --sp-grid-section-column-count: 2;
      }

      &.columns-3 {
        --sp-grid-section-column-count: 3;
      }

      &.columns-4 {
        --sp-grid-section-column-count: 4;
      }
    }

    > .row-fluid > .dnd-column {
      display: grid;
      grid-template-columns: repeat(var(--sp-grid-section-column-count, 1), 1fr);
      gap: var(--sp-grid-section-gap);

      .hs-inline-edit & {
        position: relative;
        outline: 2px dotted rgba(0, 0, 0, 0.25);

        &::before {
          pointer-events: none;
          content: "GRID";
          position: absolute;
          top: -1.5em;
          left: 0;
          font-size: 0.8rem;
          opacity: 0.5;
        }
      }

      .hs-dnd-cursor__grabbing & {
        --sp-grid-section-column-count: 1;
      }
    }
  }
}
@layer theme {
  .content-wrapper {
    max-width: var(--sp-max-content-width);
    margin: 0 auto;
    padding: 0 var(--sp-layout-spacing);
  }

  @media screen and (min-width: 1380px) {
    .content-wrapper {
      padding: 0;
    }
  }

  .dnd-section > .row-fluid {
    max-width: var(--sp-max-content-width);
    margin: 0 auto;
  }

  .dnd-section .dnd-column {
    padding: 0 var(--sp-layout-spacing);
  }

  @media (max-width: 767px) {
    .dnd-section .dnd-column {
      padding: 0;
    }
  }

  .dnd-section,
  .content-wrapper--vertical-spacing {
    padding: var(--sp-dnd-section-padding);
  }
}

/* Elements
Base HTML elements are styled in this section (<body>, <h1>, <a>, <p>, <button> etc.)
*/

@layer theme {
  :root {
    font-size: 100%;
  }

  /* The overflow-wrap is meant to prevent long/large words from breaking the mobile responsiveness of a page (e.g. horizontal scrolling). It is preferred to reduce font sizes on mobile to address this, with this CSS specifically helping with extreme scenarios where a reduction in font size is not possible. */

  body {
    color: var(--sp-body-font-color);
    font-family: var(--sp-body-font-family);
    font-size: var(--sp-body-font-size);
    line-height: 1.4;
    overflow-wrap: break-word;
  }

  /* Handles word breaking for a few specific languages which handle breaks in words differently. If your content is not translated into these languages, you can safely remove this.  */

  html[lang^="ja"] body,
  html[lang^="zh"] body,
  html[lang^="ko"] body {
    line-break: strict;
    overflow-wrap: normal;
    word-break: break-all;
  }

  /* Paragraphs */

  p {
    margin: 0 0 var(--sp-content-spacing);
    color: inherit;
    font-family: inherit;
    font-size: inherit;
  }

  /* Anchors */

  a:not(
    .button,
    .hs-button,
    .stolk-header__cta,
    .stolk-btn,
    .stolk-we-are__link
    ) {
    &,
    &:hover,
    &:focus,
    &:active {
      font-family: var(--sp-anchor-font-family);
      font-weight: var(--sp-anchor-font-weight);
      font-style: var(--sp-anchor-font-style);
      color: var(--sp-anchor-font-color);
      text-decoration: var(--sp-anchor-text-decoration);
      cursor: pointer;
    }

    &:hover,
    &:focus {
      color: var(--sp-anchor-font-color-hover);
    }

    &:active {
      color: var(--sp-anchor-font-color-active);
    }
  }

  /* Headings */

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: 0 0 var(--sp-content-spacing);
  }

  h1,
  .h1 {
    color: var(--sp-h1-font-color);
    font-family: var(--sp-h1-font-family);
    font-size: var(--sp-h1-font-size);
    font-weight: var(--sp-h1-font-weight);
    font-style: var(--sp-h1-font-style);
    text-decoration: var(--sp-h1-text-decoration);
    text-transform: var(--sp-h1-text-transform);
  }

  h2,
  .h2 {
    color: var(--sp-h2-font-color);
    font-family: var(--sp-h2-font-family);
    font-size: var(--sp-h2-font-size);
    font-weight: var(--sp-h2-font-weight);
    font-style: var(--sp-h2-font-style);
    text-decoration: var(--sp-h2-text-decoration);
    text-transform: var(--sp-h2-text-transform);
  }

  h3,
  .h3 {
    color: var(--sp-h3-font-color);
    font-family: var(--sp-h3-font-family);
    font-size: var(--sp-h3-font-size);
    font-weight: var(--sp-h3-font-weight);
    font-style: var(--sp-h3-font-style);
    text-decoration: var(--sp-h3-text-decoration);
    text-transform: var(--sp-h3-text-transform);
  }

  h4,
  .h4 {
    color: var(--sp-h4-font-color);
    font-family: var(--sp-h4-font-family);
    font-size: var(--sp-h4-font-size);
    font-weight: var(--sp-h4-font-weight);
    font-style: var(--sp-h4-font-style);
    text-decoration: var(--sp-h4-text-decoration);
    text-transform: var(--sp-h4-text-transform);
  }

  h5,
  .h5 {
    color: var(--sp-h5-font-color);
    font-family: var(--sp-h5-font-family);
    font-size: var(--sp-h5-font-size);
    font-weight: var(--sp-h5-font-weight);
    font-style: var(--sp-h5-font-style);
    text-decoration: var(--sp-h5-text-decoration);
    text-transform: var(--sp-h5-text-transform);
  }

  h6,
  .h6 {
    color: var(--sp-h6-font-color);
    font-family: var(--sp-h6-font-family);
    font-size: var(--sp-h6-font-size);
    font-weight: var(--sp-h6-font-weight);
    font-style: var(--sp-h6-font-style);
    text-decoration: var(--sp-h6-text-decoration);
    text-transform: var(--sp-h6-text-transform);
  }

  /* Lists */

  ul,
  ol {
    margin: 0 0 var(--sp-content-spacing);
  }

  ul ul,
  ol ul,
  ul ol,
  ol ol {
    margin: 0;
  }

  ul.no-list {
    list-style: none;
    margin: 0;
    padding-left: 0;
  }

  /* Code blocks */

  pre {
    overflow: auto;
  }

  code {
    vertical-align: bottom;
  }

  /* Blockquotes */

  blockquote {
    border-left: calc(2 * var(--sp-rem-base)) solid var(--sp-blockquote-border-color);
    margin: 0 0 var(--sp-content-spacing);
    padding-left: calc(var(--sp-content-spacing) * 0.7);
  }

  /* Horizontal rules */

  hr {
    border: none;
    border-bottom: calc(1 * var(--sp-rem-base)) solid #cccccc;
  }

  /* Image alt text */

  img,
  svg {
    max-width: 100%;
    height: auto;
    font-size: calc(14 * var(--sp-rem-base));
    word-break: normal;
  }
}
@layer theme {
  button,
  .button,
  .hs-button {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    transition: all var(--sp-transition-speed-normal) ease-out;
    white-space: normal;
  }

  button,
  .button,
  .hs-button,
  .hs-blog-post-listing__post-button {
    border: var(--sp-button-border);
    padding: var(--sp-button-padding);
    background-color: var(--sp-button-background-color);
    border-radius: var(--sp-button-border-radius);
    color: var(--sp-button-font-color);
    font-family: var(--sp-button-font-family);
    font-size: var(--sp-button-font-size);
    font-weight: var(--sp-button-font-weight);
    font-style: var(--sp-button-font-style);
    text-decoration: var(--sp-button-text-decoration);
    text-transform: var(--sp-button-text-transform);
    letter-spacing: var(--sp-button-letter-spacing);
  }

  button:hover,
  button:focus,
  .button:hover,
  .button:focus,
  .hs-button:hover,
  .hs-button:focus,
  .hs-blog-post-listing__post-button:hover,
  .hs-blog-post-listing__post-button:focus {
    border: var(--sp-button-border-hover);
    color: var(--sp-button-font-color-hover);
    background-color: var(--sp-button-background-color-hover);
    border-radius: var(--sp-button-border-radius-hover);
  }

  button:active,
  .button:active,
  .hs-button:active,
  .hs-blog-post-listing__post-button:active {
    background-color: var(--sp-button-background-color-active);
    border: var(--sp-button-border-active);
  }

  button:disabled,
  .button:disabled,
  .hs-button:disabled {
    opacity: 0.8;
    cursor: not-allowed;
  }

  /* No button */

  .no-button,
  .no-button:hover,
  .no-button:focus,
  .no-button:active {
    background: none;
    border: none;
    border-radius: 0;
    color: initial;
    font-family: inherit;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    margin-bottom: 0;
    padding: 0;
    text-align: left;
    text-decoration: none;
    transition: none;
  }
}
@layer theme {
  /* ============================================================
     NEW ("v4") FORMS — CSS custom property bridge
     ============================================================
     Everything else in this file, and the field styling in
     stolk-form.module/module.css, targets the LEGACY form DOM:
     .hs-form-field, .hs-input, .hs-button, .hs-error-msg, and bare
     `form input[type=…]` selectors.

     Forms built in HubSpot's newer forms editor render inside a shadow
     root (the .hs-form-frame host), so none of those selectors match —
     the elements are not in the page's DOM tree. Class- and
     element-based CSS silently does nothing.

     What DOES cross a shadow boundary is inheritance, and custom
     properties inherit. That is why HubSpot's only supported styling
     surface for new forms is this fixed --hsf-* set. Declaring them on
     :root lets them inherit through the host into the form.

     So this block is a translation of the Stolk form look into the
     vocabulary new forms understand. It is additive: the legacy rules
     below still style legacy forms, and these are inert for them.

     Sourced from the same --stolk-* tokens the module CSS uses, so a
     Theme Settings change moves legacy and new forms together.

     LIMITS OF THE --hsf-* SET (no variable exists, so these cannot be
     reproduced on new forms — they degrade, they do not break):
       · label text-transform / letter-spacing / font-weight
         → labels render sentence-case, not the uppercase tracked look
       · any :focus state, including the accent focus ring
       · button hover / active colours
       · textarea min-height, resize
       · per-input font-size (only --hsf-global__font-size is global)
     If any of those matter on a given form, set them in that form's own
     style settings in the forms editor, which does reach inside.
     ============================================================ */

  :root {
    --hsf-global__font-family: var(--stolk-font-body);
    --hsf-global__font-size: 15.5px;
    --hsf-global__color: var(--stolk-fg1);
    --hsf-global-error__color: #c0392b;

    /* Matches .stolk-form__embed .hs-form-field { margin-bottom: 18px } */
    --hsf-row__vertical-spacing: 18px;
    --hsf-row__horizontal-spacing: 18px;
    --hsf-module__vertical-spacing: 18px;

    /* The module supplies the surrounding card and padding, so the form
       itself draws nothing. Without this, new forms pick up HubSpot's
       own default box inside our layout. */
    --hsf-background__background-color: transparent;
    --hsf-background__border-width: 0;
    --hsf-background__border-style: none;
    --hsf-background__padding: 0;

    --hsf-field-label__font-family: var(--stolk-font-subhead);
    --hsf-field-label__font-size: 13px;
    --hsf-field-label__color: var(--stolk-ink);
    --hsf-field-label-requiredindicator__color: var(--stolk-accent);

    --hsf-field-description__font-family: var(--stolk-font-body);
    --hsf-field-description__color: var(--stolk-fg2);
    --hsf-field-footer__font-family: var(--stolk-font-body);
    --hsf-field-footer__color: var(--stolk-fg2);

    --hsf-field-input__font-family: var(--stolk-font-body);
    --hsf-field-input__color: var(--stolk-fg1);
    --hsf-field-input__background-color: var(--stolk-white);
    --hsf-field-input__placeholder-color: var(--stolk-fg3);
    --hsf-field-input__border-color: var(--stolk-border-strong);
    --hsf-field-input__border-width: 1px;
    --hsf-field-input__border-style: solid;
    --hsf-field-input__border-radius: var(--stolk-radius-sm);
    --hsf-field-input__padding: 13px 14px;

    --hsf-field-textarea__font-family: var(--stolk-font-body);
    --hsf-field-textarea__color: var(--stolk-fg1);
    --hsf-field-textarea__background-color: var(--stolk-white);
    --hsf-field-textarea__placeholder-color: var(--stolk-fg3);
    --hsf-field-textarea__border-color: var(--stolk-border-strong);
    --hsf-field-textarea__border-width: 1px;
    --hsf-field-textarea__border-style: solid;
    --hsf-field-textarea__border-radius: var(--stolk-radius-sm);
    --hsf-field-textarea__padding: 13px 14px;

    --hsf-field-checkbox__background-color: var(--stolk-white);
    --hsf-field-checkbox__color: var(--stolk-accent);
    --hsf-field-checkbox__border-color: var(--stolk-border-strong);
    --hsf-field-checkbox__border-width: 1px;
    --hsf-field-checkbox__border-style: solid;

    --hsf-field-radio__background-color: var(--stolk-white);
    --hsf-field-radio__color: var(--stolk-accent);
    --hsf-field-radio__border-color: var(--stolk-border-strong);
    --hsf-field-radio__border-width: 1px;
    --hsf-field-radio__border-style: solid;

    /* Mirrors .stolk-form__embed .hs-button. No hover variable exists. */
    --hsf-button__font-family: var(--stolk-font-display);
    --hsf-button__font-size: 15px;
    --hsf-button__color: #fff;
    --hsf-button__background-color: var(--stolk-accent);
    --hsf-button__border-radius: var(--stolk-radius-md);
    --hsf-button__padding: 15px 26px;
    --hsf-button__box-shadow: none;

    --hsf-richtext__font-family: var(--stolk-font-body);
    --hsf-richtext__color: var(--stolk-fg2);
    --hsf-heading__font-family: var(--stolk-font-subhead);
    --hsf-heading__color: var(--stolk-ink);

    --hsf-erroralert__font-family: var(--stolk-font-body);
    --hsf-erroralert__font-size: 13px;
    --hsf-erroralert__color: #c0392b;
    --hsf-infoalert__font-family: var(--stolk-font-body);
    --hsf-infoalert__font-size: 13px;
    --hsf-infoalert__color: var(--stolk-fg2);
  }

  form,
  .submitted-message {
    color: var(--sp-form-font-color);
    font-family: var(--sp-form-font-family);
    font-size: var(--sp-form-font-size);
    border-top: var(--sp-form-border-top);
    border-right: var(--sp-form-border-right);
    border-bottom: var(--sp-form-border-bottom);
    border-left: var(--sp-form-border-left);
    border-radius: var(--sp-form-border-top-left-radius) var(--sp-form-border-top-right-radius) var(--sp-form-border-bottom-right-radius) var(--sp-form-border-bottom-left-radius);
    background-color: var(--sp-form-background-color);
    padding: var(--sp-form-padding);
  }

  /* Fields */

  .hs-form-field {
    margin-bottom: var(--sp-layout-spacing);
  }

  /* Labels */

  form label {
    display: block;
    margin-bottom: calc(var(--sp-content-spacing) * 0.35);
    color: var(--sp-form-label-font-color);
  }

  /* Help text */

  form legend {
    color: var(--sp-form-legend-font-color);
  }

  /* Form Title */

  /* HubSpot emits the title element whether or not the form has one, and an empty
     h3 still draws its background and padding: a bare grey bar above the form. */
  .form-title:empty {
    display: none;
  }

  .form-title {
    border-top: var(--sp-form-title-border-top);
    border-right: var(--sp-form-title-border-right);
    border-bottom: var(--sp-form-title-border-bottom);
    border-left: var(--sp-form-title-border-left);
    border-radius: var(--sp-form-title-border-top-left-radius) var(--sp-form-title-border-top-right-radius) var(--sp-form-title-border-bottom-right-radius) var(--sp-form-title-border-bottom-left-radius);
    background-color: var(--sp-form-title-background-color);
    padding: var(--sp-form-title-padding);
    color: var(--sp-form-title-font-color);
    font-family: var(--sp-form-title-font-family);
    font-size: var(--sp-form-title-font-size);
    font-weight: var(--sp-form-title-font-weight);
    font-style: var(--sp-form-title-font-style);
    text-decoration: var(--sp-form-title-text-decoration);
    margin-bottom: 0;
  }

  /* Inputs */

  form input[type=text],
  form input[type=search],
  form input[type=email],
  form input[type=password],
  form input[type=tel],
  form input[type=number],
  form input[type=file],
  form select,
  form textarea {
    display: inline-block;
    font-size: var(--sp-form-font-size);
    padding: var(--sp-form-input-padding);
    border: var(--sp-form-input-border);
    border-radius: var(--sp-form-input-border-radius);
    background-color: var(--sp-form-input-background-color);
    color: var(--sp-form-input-font-color);
    width: 100%;
  }

  ::-webkit-input-placeholder {
    color: var(--sp-form-input-placeholder-font-color);
  }

  ::-moz-placeholder {
    color: var(--sp-form-input-placeholder-font-color);
  }

  :-ms-input-placeholder {
    color: var(--sp-form-input-placeholder-font-color);
  }

  ::placeholder {
    color: var(--sp-form-input-placeholder-font-color);
  }

  .hs-fieldtype-date .input .hs-dateinput::before {
    color: var(--sp-form-input-placeholder-font-color);
  }

  form textarea {
    resize: vertical;
  }

  form fieldset {
    max-width: 100% !important;
  }

  /* Inputs - checkbox/radio */

  form .inputs-list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  form .inputs-list > li {
    display: block;
    margin: calc(var(--sp-content-spacing) * 0.7) 0;
  }

  form .inputs-list input,
  form .inputs-list span {
    vertical-align: middle;
  }

  form input[type=checkbox],
  form input[type=radio] {
    cursor: pointer;
    margin-bottom: calc(var(--sp-content-spacing) * 0.35);
  }

  /* Inputs - date picker */

  .hs-dateinput {
    position: relative;
  }

  .hs-dateinput::before {
    content:'\01F4C5';
    position: absolute;
    right: 10%;
    top: 50%;
    transform: translateY(-50%);
  }

  .fn-date-picker .pika-table thead th {
    color: #FFF;
  }

  .fn-date-picker td.is-selected .pika-button {
    background: var(--sp-form-input-date-picker-primary-color);
    border-radius: 0;
    box-shadow: none;
  }

  .fn-date-picker td .pika-button:hover,
  .fn-date-picker td .pika-button:focus {
    background-color: var(--sp-form-input-date-picker-primary-color) !important;
    border-radius: 0 !important;
    color: #FFF;
  }

  .fn-date-picker td.is-today .pika-button {
    color: var(--sp-form-input-date-picker-primary-color);
  }

  /* Inputs - file picker */

  form input[type=file] {
    background-color: transparent;
    border: initial;
    padding: initial;
  }

  /* Headings and text */

  form .hs-richtext,
  form .hs-richtext p {
    margin: 0 0 var(--sp-content-spacing);
  }

  form .hs-richtext img {
    max-width: 100% !important;
  }

  /* GDPR */

  .legal-consent-container .hs-form-booleancheckbox-display > span,
  .legal-consent-container .hs-form-booleancheckbox-display > span p {
    margin-left: var(--sp-content-spacing) !important;
  }

  /* Validation */

  .hs-form-required {
    color: #EF6B51;
  }

  .hs-input.invalid.error {
    border-color: #EF6B51;
  }

  .hs-error-msg {
    color: #EF6B51;
    margin-top: calc(var(--sp-content-spacing) * 0.35);
  }

  /* Submit button */

  form input[type=submit],
  form .hs-button {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    transition: all var(--sp-transition-speed-normal) ease-out;
    white-space: normal;
    border: var(--sp-form-button-border);
    border-radius: var(--sp-form-button-border-radius);
    padding: var(--sp-form-button-padding);
    color: var(--sp-form-button-font-color);
    font-family: var(--sp-form-button-font-family);
    font-size: var(--sp-form-button-font-size);
    font-weight: var(--sp-form-button-font-weight);
    font-style: var(--sp-form-button-font-style);
    text-decoration: var(--sp-form-button-text-decoration);
    text-transform: var(--sp-form-button-text-transform);
    letter-spacing: var(--sp-form-button-letter-spacing);
    background-color: var(--sp-form-button-background-color);
  }

  form input[type=submit]:hover,
  form input[type=submit]:focus,
  form .hs-button:hover,
  form .hs-button:focus {
    background-color: var(--sp-form-button-background-color-hover);
    color: var(--sp-form-button-font-color-hover);
    border: var(--sp-form-button-border-hover);
  }

  form input[type=submit]:active,
  form .hs-button:active {
    background-color: var(--sp-form-button-background-color-active);
    border: var(--sp-form-button-border-active);
  }

  /* Captcha */

  .grecaptcha-badge {
    margin: 0 auto;
  }

  form.hs-form fieldset,
  form.hs-form fieldset.form-columns-1 .hs-input {
      max-width: 100%;
      width: 100% !important;
  }

  /* Column gutters.

     HubSpot's own form stylesheet gutters its columns by putting a right margin on
     every field's .input wrapper, then clearing it on the last field of a row. A
     full-width row is a single field that never gets the clear, so those fields stop
     short of the right edge the two-column rows reach. That stylesheet is unlayered,
     which outranks every layer in this theme, so it has to be beaten outright rather
     than out-specified. The gutter then becomes a real grid gap, which lands every
     row on the same two edges. */
  form.hs-form fieldset .hs-form-field,
  form.hs-form fieldset .hs-form-field > .input {
    margin-right: 0 !important;
  }

  form.hs-form fieldset.form-columns-2,
  form.hs-form fieldset.form-columns-3 {
    display: grid;
    gap: 0 18px;
  }

  form.hs-form fieldset.form-columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  form.hs-form fieldset.form-columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  form.hs-form fieldset.form-columns-2 > .hs-form-field,
  form.hs-form fieldset.form-columns-3 > .hs-form-field {
    float: none;
    width: auto !important;
  }

  @media (width <= 560px) {
    form.hs-form fieldset.form-columns-2,
    form.hs-form fieldset.form-columns-3 {
      grid-template-columns: 1fr;
    }
  }

  
    /* Search button input field and suggestions */
    .body-container-wrapper .hs-search-field__button {
      padding: calc(15 * var(--sp-rem-base));
    }

    .body-container-wrapper .hs-search-field__bar--button-inline .hs-search-field__button {
      margin-left: 0.5em;
      margin-bottom: 0;
    }

    .body-container-wrapper .hs-search-field__button svg {
      height: calc(15 * var(--sp-rem-base));
      fill: #fff;
    }

    .body-container-wrapper .hs-search-field__bar > form > .hs-search-field__input {
      padding: calc(10 * var(--sp-rem-base));
    }

    .body-container-wrapper .hs-search-field__suggestions li a {
      color: #494A52;
      padding: calc(var(--sp-content-spacing) * 0.35) calc(var(--sp-content-spacing) * 0.7);
      text-decoration: none;
      transition: background-color var(--sp-transition-speed-normal);
    }
  
}
@layer theme {
  /* Table */

  table {
    border-collapse: collapse;
    margin-bottom: var(--sp-content-spacing);
    overflow-wrap: break-word;
    border: var(--sp-table-border);
    background-color: var(--sp-table-background-color);
  }

  /* Table cells */

  td,
  th {
    vertical-align: top;
    border: var(--sp-table-border);
    padding: var(--sp-table-padding);
    color: var(--sp-table-font-color);
  }

  /* Table header */

  thead th {
    vertical-align: bottom;
    background-color: var(--sp-table-header-background-color);
    color: var(--sp-table-header-font-color);
  }

  /* Table footer */

  tfoot td {
    background-color: var(--sp-table-footer-background-color);
    color: var(--sp-table-footer-font-color);
  }
}

/* Components
Specific pieces of UI that are stylized. Typically used for global partial styling
*/

@layer theme {
  .header {
    background-color: var(--sp-header-background-color);
  }

  /* Header DND sections */

  .header .dnd-section {
    padding: 0;
  }

  /* Header container */

  .header__container {
    display: flex;
    justify-content: space-between;
  }

  .header__row-1 {
    padding-top: var(--sp-content-spacing);
  }

  .header__row-1,
  .header__row-2 {
    align-items: center;
    display: flex;
    justify-content: flex-end;
    width: 100%;
  }

  @media (max-width: 1150px) and (min-width: 768px) {
    .header__column {
      width: 100%;
    }
  }

  @media (max-width: 767px) {
    .header__container {
      flex-direction: column;
      padding: var(--sp-content-spacing) 0 0;
    }

    .header__column {
      position: relative;
    }

    .header__row-1 {
      padding-top: 0;
    }

    .header__row-2 {
      height: calc(75 * var(--sp-rem-base));
      justify-content: center;
      padding: var(--sp-content-spacing);
    }
  }

  /* Navigation skipper */

  .header__skip {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    text-align: left;
    top: -10000px;
    width: 1px;
  }

  .header__skip:hover,
  .header__skip:focus,
  .header__skip:active {
    height: auto;
    left: 0;
    overflow: visible;
    top: 0;
    width: auto;
  }

  /* Logo */

  .header__logo {
    align-items: center;
    display: flex;
    height: auto;
    margin-right: auto;
    max-width: calc(200 * var(--sp-rem-base));
    overflow: hidden;
  }

  @media (max-width: 767px) {
    .header__logo {
      margin: 0 auto;
      width: 100%;
    }
  }

  .header__logo img {
    max-width: 100%;
  }

  .header__logo .logo-company-name {
    margin-top: var(--sp-content-spacing);
  }

  .header__logo--main {
    padding-top: var(--sp-content-spacing);
  }

  .header__logo .logo-company-name,
  .header__language-switcher-label-current,
  .header__language-switcher .lang_list_class li a {
    font-family: var(--sp-header-font-family);
    color: var(--sp-header-font-color);
  }

  .header__language-switcher-label-current::after {
    border-top-color: var(--sp-header-font-color);
  }

  .header__language-switcher-label-current:hover,
  .header__language-switcher-label-current:focus,
  .header__language-switcher .lang_list_class li:hover a,
  .header__language-switcher .lang_list_class li a:focus {
    color: var(--sp-header-font-color-hover);
  }

  .header__language-switcher-label-current:active,
  .header__language-switcher .lang_list_class li a:active {
    color: var(--sp-header-font-color-active);
  }

  /* Search bar */

  .header__search {
    padding: 0 var(--sp-content-spacing);
    width: auto;
  }

  

    .hs-search-field__form {
      position: relative;
    }

    .header__search .hs-search-field__label {
      flex-basis: auto;
    }
  


  .header__search .hs-search-field__input {
    
    height: calc(45 * var(--sp-rem-base));
    padding: 0 calc(var(--sp-content-spacing) * 0.7);
  }


  
    .header__search .hs-search-field__button {
      fill: #000;
      background-color: transparent;
      border: none;
      padding: calc(10 * var(--sp-rem-base));
      position: absolute;
      top: 0;
      right: 0;
    }

    .header__search .hs-search-field__button svg {
      height: calc(25 * var(--sp-rem-base));
    }
  

  .header__search .hs-search-field--open .hs-search-field__input {
    border-bottom: none;
    border-radius: var(--sp-border-radius-normal) var(--sp-border-radius-normal) 0 0;
    max-width: 100%;
  }

  .header__search .hs-search-field--open .hs-search-field__suggestions {
    background-color: #FFF;
    border: calc(2 * var(--sp-rem-base)) solid #D1D6DC;
    border-radius: 0 0 var(--sp-border-radius-normal) var(--sp-border-radius-normal);
    border-top-width: calc(1 * var(--sp-rem-base));
    position: absolute;
    width: 100%;
    z-index: 10;
  }

  .header__search .hs-search-field__suggestions li {
    border-top: calc(1 * var(--sp-rem-base)) solid #D1D6DC;
    font-size: 0.875em;
  }

  .header__search .hs-search-field__suggestions li a {
    color: #494A52;
    padding: 0.35em 0.7em;
    text-decoration: none;
    transition: background-color var(--sp-transition-speed-normal);
  }

  .header__search .hs-search-field__suggestions #results-for {
    display: none;
  }

  @media (min-width: 768px) {
    .header__search form {
      align-items: center;
      display: flex;
      flex-direction: row;
    }

    .header__search label {
      margin: 0 var(--sp-content-spacing) 0 0;
    }

    .header__search .hs-search-field__input {
      width: auto;
    }
  }

  @media (max-width: 767px) {
    .header__search {
      border-top: calc(2 * var(--sp-rem-base)) solid #CED4DB;
      order: 1;
      padding: var(--sp-content-spacing);
    }
  }

  /* Language switcher */

  .header__language-switcher {
    cursor: pointer;
    padding-right: var(--sp-content-spacing);
  }

  .header__language-switcher .lang_switcher_class {
    position: static;
  }

  .header__language-switcher .lang_list_class {
    border: calc(2 * var(--sp-rem-base)) solid;
    border-radius: var(--sp-border-radius-normal);
    display: block;
    left: calc(100% - calc(24 * var(--sp-rem-base)));
    opacity: 0;
    min-width: calc(100 * var(--sp-rem-base));
    padding-top: 0;
    text-align: left;
    top: 100%;
    transition: opacity var(--sp-transition-speed-normal);
    visibility: hidden;
  }

  .header__language-switcher:hover .lang_list_class,
  .header__language-switcher:focus .lang_list_class {
    opacity: 1;
    transition: opacity var(--sp-transition-speed-normal);
    visibility: visible;
  }

  .header__language-switcher .lang_list_class::before {
    left: 70%;
    top: calc(-25 * var(--sp-rem-base));
    border-bottom-color: var(--sp-header-dropdown-border-color);
  }

  .header__language-switcher .lang_list_class::after {
    left: 70%;
    top: calc(-22 * var(--sp-rem-base));
  }

  .header__language-switcher .lang_list_class.first-active::after {
    top: calc(-22 * var(--sp-rem-base));
    transition: var(--sp-transition-speed-normal);
    border-bottom-color: var(--sp-header-background-color);
  }

  .header__language-switcher .lang_list_class li {
    border: none;
    font-size: calc(18 * var(--sp-rem-base));
    padding: 0.35em 0.7em;
  }

  .header__language-switcher .lang_list_class li:first-child {
    border-radius: var(--sp-border-radius-normal) var(--sp-border-radius-normal) 0 0;
    border-top: none;
  }

  .header__language-switcher .lang_list_class li:last-child {
    border-bottom: none;
    border-radius: 0 0 var(--sp-border-radius-normal) var(--sp-border-radius-normal);
  }

  .header__language-switcher .lang_list_class li:hover {
    transition: background-color var(--sp-transition-speed-normal);
    background-color: var(--sp-header-background-color);
  }

  .header__language-switcher--label {
    display: flex;
    position: relative;
  }

  .header__language-switcher--label-current {
    align-items: center;
    display: flex;
    font-size: 0.75em;
    margin-bottom: 0.175em;
    margin-left: 0.7em;
  }

  .header__language-switcher--label-current::after {
    border-left: calc(4 * var(--sp-rem-base)) solid transparent;
    border-right: calc(4 * var(--sp-rem-base)) solid transparent;
    border-top: calc(6 * var(--sp-rem-base)) solid #494A52;
    content: "";
    display: block;
    height: 0;
    margin-left: 0.7em;
    margin-top: 0.175em;
    width: 0;
  }

  @media (max-width: 767px) {
    .header__language-switcher {
      border-top: calc(2 * var(--sp-rem-base)) solid #CED4DB;
      padding-left: 1em;
      padding-right: 0;
    }

    .header__language-switcher .lang_list_class {
      border: none;
      box-shadow: unset;
      display: block;
      left: calc(30 * var(--sp-rem-base));
      opacity: 1;
      padding: 0 1em;
      top: 0;
      visibility: visible;
      border: var(--sp-header-dropdown-border);
      background-color: var(--sp-header-dropdown-background-color);
    }

    .header__language-switcher .lang_list_class li {
      background-color: inherit;
    }

    .header__language-switcher--label-current {
      display: none;
    }

    .header__language-switcher .globe_class {
      background-image: none;
    }

    .header__language-switcher .lang_list_class li:hover{
      background-color: inherit;
    }

    .header__language-switcher .lang_list_class::before,
    .header__language-switcher .lang_list_class::after {
      content: none;
    }
      /* V1 lang switcher updates to keep "in line" w/ v0 mobile styles */
      .header__language-switcher .hs-language-switcher__menu {
          display: block;
          box-shadow:none!important;
          background: transparent;
      }
      .header__language-switcher .hs-language-switcher__menu a {
          font-size: 20px!important;
      }
      .header__language-switcher .hs-language-switcher__button {
          display: none;
      }
    }

  /* Navigation */

  #nav-toggle {
    display: none;
  }

  /* Mobile toggles */

  @media (max-width: 767px) {
    .header__navigation {
      background-color: var(--sp-header-background-color);
    }

    .header__navigation-toggle svg {
      fill: var(--sp-header-font-color);
    }

    .header__navigation,
    .header__search,
    .header__language-switcher {
      display: none;
      width: 100%;
    }

    .header__navigation.open,
    .header__search.open,
    .header__language-switcher.open {
      background-color: #F8FAFC;
      display: block;
      left: 0;
      min-height: calc(100vh - calc(115 * var(--sp-rem-base)));
      position: absolute;
      right: 0;
      top: calc(75 * var(--sp-rem-base));
      z-index: 2;
    }

    .header__navigation--toggle,
    .header__search--toggle,
    .header__language-switcher--toggle,
    .header__close--toggle {
      cursor: pointer;
      margin: 0 5vw;
      position: relative;
    }

    .header__navigation--toggle.hide,
    .header__search--toggle.hide,
    .header__language-switcher--toggle.hide {
      display: none;
    }

    .header__navigation--toggle.open,
    .header__search--toggle.open,
    .header__language-switcher--toggle.open {
      display: block;
      margin-left: 0;
      margin-right: auto;
    }

    .header__navigation--toggle::after,
    .header__search--toggle::after,
    .header__language-switcher--toggle::after {
      display: none;
      font-weight: 600;
      position: absolute;
      left: calc(40 * var(--sp-rem-base));
      text-transform: uppercase;
    }

    .header__navigation--toggle.open::after,
    .header__search--toggle.open::after,
    .header__language-switcher--toggle.open::after {
      display: block;
      word-break: normal;
    }

    .header__navigation--toggle {
      background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAxOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5oYW1idXJnZXI8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGcgaWQ9ImhhbWJ1cmdlciIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iR3JvdXAiIHN0cm9rZT0iIzQ5NEE1MiIgc3Ryb2tlLXdpZHRoPSIzIj4gICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIxLjUiIHk9IjEuNSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjEiIHJ4PSIwLjUiPjwvcmVjdD4gICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktNCIgeD0iMS41IiB5PSI5LjUiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxIiByeD0iMC41Ij48L3JlY3Q+ICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZS1Db3B5LTUiIHg9IjEuNSIgeT0iMTcuNSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjEiIHJ4PSIwLjUiPjwvcmVjdD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==);
      background-size: cover;
      height: calc(25 * var(--sp-rem-base));
      width: calc(25 * var(--sp-rem-base));
    }

    .header__navigation--toggle::after {
      content: "Menu";
    }

    .header__language-switcher--toggle {
      background-image: url(//static.hsappstatic.net/cos-LanguageSwitcher/static-1.1/img/globe.png);
      background-size: cover;
      height: calc(25 * var(--sp-rem-base));
      width: calc(25 * var(--sp-rem-base));
    }

    .header__language-switcher--toggle::after {
      content: "Language";
    }

    .header__search--toggle {
      background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5TZWFyY2g8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+ICAgICAgICA8cGF0aCBkPSJNOS4xMzg2MTUzNCwxNS44OTI1Njg1IEM1LjQxMzk1NzQyLDE1Ljg5MjU2ODUgMi4zODM4ODUyNywxMi44NjM0NDc1IDIuMzgzODg1MjcsOS4xMzkwMDM3NiBDMi4zODM4ODUyNyw1LjQxNDU2MDA1IDUuNDEzOTU3NDIsMi4zODM4ODUyNyA5LjEzODYxNTM0LDIuMzgzODg1MjcgQzEyLjg2MzI3MzMsMi4zODM4ODUyNyAxNS44OTI1Njg1LDUuNDE0NTYwMDUgMTUuODkyNTY4NSw5LjEzOTAwMzc2IEMxNS44OTI1Njg1LDEyLjg2MzQ0NzUgMTIuODYzMjczMywxNS44OTI1Njg1IDkuMTM4NjE1MzQsMTUuODkyNTY4NSBNOS4xMzg3NTI0NSwyLjQzMzYwODg3ZS0xMyBDMTQuMTc3OTk1NSwyLjQzMzYwODg3ZS0xMyAxOC4yNzY0NTM3LDQuMTAwMzI0NzEgMTguMjc2NDUzNyw5LjEzOTI3Nzk2IEMxOC4yNzY0NTM3LDExLjIyOTgyMTEgMTcuNTcxMDE2OSwxMy4xNTg0NDM0IDE2LjM4NTYzMTMsMTQuNjk5NjY5NiBMMjMuNjUwODg4MSwyMS45NjUyMjY2IEMyNC4xMTYzNzA2LDIyLjQzMDcwOTIgMjQuMTE2MzcwNiwyMy4xODU0MDU1IDIzLjY1MDg4ODEsMjMuNjUwODg4MSBDMjMuMTg1NDA1NSwyNC4xMTYzNzA2IDIyLjQzMDcwOTIsMjQuMTE2MzcwNiAyMS45NjUyMjY2LDIzLjY1MDg4ODEgTDE0LjY5OTgxMzMsMTYuMzg1NDcxMyBDMTMuMTU4NDQwNSwxNy41NzA5NTA5IDExLjIyOTU3MzgsMTguMjc2NDUzNyA5LjEzODc1MjQ1LDE4LjI3NjQ1MzcgQzQuMDk5NTA5MzgsMTguMjc2NDUzNyAtMy43MzAzNDkzNmUtMTQsMTQuMTc4MjMxMiAtMy43MzAzNDkzNmUtMTQsOS4xMzkyNzc5NiBDLTMuNzMwMzQ5MzZlLTE0LDQuMTAwMzI0NzEgNC4wOTk1MDkzOCwyLjQzMzYwODg3ZS0xMyA5LjEzODc1MjQ1LDIuNDMzNjA4ODdlLTEzIFoiIGlkPSJwYXRoLTEiPjwvcGF0aD4gICAgPC9kZWZzPiAgICA8ZyBpZD0iU2VhcmNoIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4gICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPiAgICAgICAgPC9tYXNrPiAgICAgICAgPHVzZSBpZD0iSWNvbnMvQWN0aW9ucy9TZWFyY2giIGZpbGw9IiM0OTRBNTIiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPiAgICA8L2c+PC9zdmc+);
      background-size: cover;
      height: calc(25 * var(--sp-rem-base));
      width: calc(25 * var(--sp-rem-base));
    }

    .header__search--toggle::after {
      content: "Search";
    }

    .header__close--toggle {
      background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjE5cHgiIHZpZXdCb3g9IjAgMCAyNCAxOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5jbG9zZTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZyBpZD0iY2xvc2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjAwMDAwMCwgLTEuMDAwMDAwKSIgc3Ryb2tlPSIjNDk0QTUyIiBzdHJva2Utd2lkdGg9IjMiPiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLjAwMDAwMCwgMTAuNTAwMDAwKSByb3RhdGUoLTQ1LjAwMDAwMCkgdHJhbnNsYXRlKC0xMC4wMDAwMDAsIC0xMC41MDAwMDApICIgeD0iLTAuNSIgeT0iMTAuNSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjEiIHJ4PSIwLjUiPjwvcmVjdD4gICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCAxMC41MDAwMDApIHJvdGF0ZSg0NS4wMDAwMDApIHRyYW5zbGF0ZSgtMTAuMDAwMDAwLCAtMTAuNTAwMDAwKSAiIHg9Ii0wLjUiIHk9IjEwLjUiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxIiByeD0iMC41Ij48L3JlY3Q+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=);
      background-repeat: no-repeat;
      background-size: 110%;
      display: none;
      height: calc(25 * var(--sp-rem-base));
      margin-right: 0;
      width: calc(25 * var(--sp-rem-base));
    }

    .header__close--toggle.show {
      display: block;
    }
  }
}
@layer theme {
  .footer {
    background-color: var(--sp-footer-background-color);
  }

  /* Footer content */

  .footer p,
  .footer h1,
  .footer h2,
  .footer h3,
  .footer h4,
  .footer h5,
  .footer h6,
  .footer label,
  .footer span,
  .footer li,
  .footer img {
    color: var(--sp-footer-font-color);
  }
}
@layer module {
  /* Menu and simple menu */

  .hs-menu-wrapper ul {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding-left: 0;
  }

  /* Horizontal menu */

  .hs-menu-wrapper.hs-menu-flow-horizontal .hs-menu-children-wrapper {
    flex-direction: column;
  }

  @media (max-width: 767px) {
    .hs-menu-wrapper.hs-menu-flow-horizontal ul {
      flex-direction: column;
    }
  }

  /* Vertical menu */

  .hs-menu-wrapper.hs-menu-flow-vertical ul {
    flex-direction: column;
  }

  /* Flyouts */

  .hs-menu-wrapper.hs-menu-flow-vertical.flyouts ul {
    display: inline-flex;
  }

  @media (max-width: 767px) {
    .hs-menu-wrapper.hs-menu-flow-vertical ul {
      display: flex;
    }
  }

  .hs-menu-wrapper.flyouts .hs-item-has-children {
    position: relative;
  }

  .hs-menu-wrapper.flyouts .hs-menu-children-wrapper {
    left: -99999px;
    opacity: 0;
    position: absolute;
  }

  .hs-menu-wrapper.flyouts .hs-menu-children-wrapper a {
    display: block;
    white-space: nowrap;
  }

  .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper {
    left: 0;
    opacity: 1;
    top: 100%;
  }

  .hs-menu-wrapper.hs-menu-flow-vertical.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper {
    left: 100%;
    opacity: 1;
    top: 0;
  }

  @media (max-width: 767px) {
    .hs-menu-wrapper.flyouts .hs-menu-children-wrapper,
    .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper,
    .hs-menu-wrapper.hs-menu-flow-vertical.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper {
      left: 0;
      opacity: 1;
      position: relative;
      top: auto;
    }
  }

  /* CTA, logo, and rich text images */

  .hs_cos_wrapper_type_cta img,
  .hs_cos_wrapper_type_logo img,
  .hs_cos_wrapper_type_rich_text img {
    height: auto;
    max-width: 100%;
  }
}
/* ============================================================
   STOLK CONSTRUCTION — site header
   Two-tier bar: small secondary row on top, bold main menu below
   with the horizontal logo to its left. Transparent over a hero,
   condensing to a translucent concrete bar once scrolled, hiding
   on scroll down and revealing on scroll up.
   ============================================================ */

@layer theme {
  .stolk-header {
    position: fixed;
    z-index: 60;
    inset: 0 0 auto;
    border-bottom: 1px solid transparent;
    transition:
      transform var(--stolk-dur-base) var(--stolk-ease-out),
      background var(--stolk-dur-base) var(--stolk-ease-out),
      border-color var(--stolk-dur-base) var(--stolk-ease-out),
      box-shadow var(--stolk-dur-base) var(--stolk-ease-out);
  }

  .stolk-header__container {
    position: relative;
    max-width: min(1560px, 96vw);
    margin: 0 auto;
    padding-inline: var(--stolk-gutter);
  }

  .stolk-header--transparent {
    background: transparent;
  }

  .stolk-header--solid {
    background: rgb(246 245 242 / 86%);
    border-bottom-color: var(--stolk-border);
    box-shadow: var(--stolk-shadow-xs);
    backdrop-filter: blur(12px);
  }

  /* Interior pages run their hero full-bleed behind a transparent header, so
     the scrolled state there is the dark bar rather than the concrete one. */
  .stolk-header--inverted.stolk-header--solid {
    background: rgb(20 24 29 / 94%);
    border-bottom-color: rgb(255 255 255 / 10%);
  }

  .stolk-header--hidden {
    transform: translateY(-100%);
  }

  .stolk-header__skip {
    position: absolute;
    top: -100px;
    left: var(--stolk-gutter);
    z-index: 10;
    padding: 12px 18px;
    background: var(--stolk-accent);
    color: #fff;
    font-family: var(--stolk-font-subhead);
    font-weight: 700;
    text-decoration: none;
    transition: top var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-header__skip:focus {
    top: 8px;
  }

  /* ---------- rows ---------- */

  .stolk-header__top {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    padding-top: 8px;
  }

  .stolk-header__top-right {
    display: flex;
    align-items: center;
    gap: clamp(18px, 2vw, 30px);
  }

  .stolk-header__main {
    display: grid;
    /* The nav track keeps its automatic min-content floor. With minmax(0, 1fr)
       it could be crushed narrower than the links, and since nav overflow is
       visible the last item painted straight over the quote button. */
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 20px;
    padding: 2px 0 12px;
  }

  .stolk-header__logo-link {
    grid-column: 1;
    justify-self: start;
  }

  .stolk-header__logo {
    display: block;
    width: clamp(150px, 15vw, 184px);
    max-width: none;
    height: auto;
    object-fit: contain;
    transition: width var(--stolk-dur-base) var(--stolk-ease-out);
  }

  /* Scrolled: the horizontal lockup swaps for the orange building mark. */
  .stolk-header--solid .stolk-header__top {
    padding-top: 6px;
  }

  .stolk-header--solid .stolk-header__main {
    padding: 4px 0 8px;
  }

  .stolk-header--solid .stolk-header__logo {
    width: auto;
    height: 40px;
  }

  /* ---------- navigation ---------- */

  .stolk-nav {
    display: flex;
    align-items: center;
    gap: 28px;
  }

  .stolk-nav a {
    color: var(--stolk-ink);
    font-family: var(--stolk-font-body);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-nav a:hover,
  .stolk-nav a:focus {
    color: var(--stolk-accent);
  }

  /* The boilerplate's blanket anchor rule re-applies --sp-anchor-text-decoration
     on hover, focus and active, at a specificity `.stolk-nav a` alone does not
     clear. The proofs carry no underline anywhere in the nav. */
  .stolk-nav a:hover,
  .stolk-nav a:focus,
  .stolk-nav a:active,
  .stolk-drawer a:hover,
  .stolk-drawer a:focus,
  .stolk-drawer a:active {
    text-decoration: none;
  }

  /* Over a dark hero the nav reverses out to white. */
  .stolk-header--transparent .stolk-nav a,
  .stolk-header--transparent .stolk-header__menu-btn {
    color: #fff;
  }

  .stolk-header--transparent .stolk-nav a:hover,
  .stolk-header--transparent .stolk-nav a:focus {
    color: var(--stolk-orange-400);
  }

  .stolk-header--inverted.stolk-header--solid .stolk-nav a,
  .stolk-header--inverted.stolk-header--solid .stolk-header__menu-btn {
    color: #fff;
  }

  .stolk-header--inverted.stolk-header--solid .stolk-nav a:hover,
  .stolk-header--inverted.stolk-header--solid .stolk-nav a:focus {
    color: var(--stolk-orange-400);
  }

  .stolk-nav__item {
    display: flex;
    position: relative;
    align-items: center;
  }

  .stolk-nav__item--has-menu > a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
  }

  .stolk-nav__chevron {
    width: 15px;
    height: 15px;
    transition: transform var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-nav__item--has-menu:hover .stolk-nav__chevron,
  .stolk-nav__item--has-menu:focus-within .stolk-nav__chevron {
    transform: rotate(180deg);
  }

  /* ---------- dropdowns ---------- */

  .stolk-nav__dropdown {
    display: flex;
    position: absolute;
    z-index: 60;
    top: 100%;
    left: -16px;
    flex-direction: column;
    visibility: hidden;
    min-width: 210px;
    padding: 8px;
    transform: translateY(8px);
    border: 1px solid var(--stolk-border);
    border-radius: var(--stolk-radius-md);
    background: var(--stolk-white);
    box-shadow: 0 18px 44px rgb(15 17 20 / 16%);
    opacity: 0;
    transition:
      opacity var(--stolk-dur-fast) var(--stolk-ease-out),
      transform var(--stolk-dur-fast) var(--stolk-ease-out),
      visibility var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-nav__item--has-menu:hover .stolk-nav__dropdown,
  .stolk-nav__item--has-menu:focus-within .stolk-nav__dropdown {
    transform: translateY(0);
    visibility: visible;
    opacity: 1;
  }

  /* Dropdown panels stay light regardless of the bar behind them. */
  .stolk-header .stolk-nav__dropdown a,
  .stolk-header--transparent .stolk-nav__dropdown a,
  .stolk-header--inverted.stolk-header--solid .stolk-nav__dropdown a {
    padding: 10px 12px;
    border-radius: var(--stolk-radius-sm);
    color: var(--stolk-ink);
    font-size: 14.5px;
    white-space: nowrap;
  }

  .stolk-header .stolk-nav__dropdown a:hover,
  .stolk-header .stolk-nav__dropdown a:focus,
  .stolk-header--transparent .stolk-nav__dropdown a:hover,
  .stolk-header--transparent .stolk-nav__dropdown a:focus,
  .stolk-header--inverted.stolk-header--solid .stolk-nav__dropdown a:hover,
  .stolk-header--inverted.stolk-header--solid .stolk-nav__dropdown a:focus {
    background: var(--stolk-concrete);
    color: var(--stolk-accent);
  }

  /* ---------- secondary (top) row ---------- */

  .stolk-nav--secondary {
    gap: clamp(16px, 1.6vw, 24px);
  }

  .stolk-nav--secondary a {
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: 0.01em;
  }

  .stolk-nav--secondary .stolk-nav__chevron {
    width: 13px;
    height: 13px;
  }

  /* ---------- main (bottom) row ---------- */

  .stolk-nav--main {
    grid-column: 2;
    justify-content: space-between;
    gap: clamp(18px, 2.4vw, 40px);
    padding-left: clamp(28px, 4vw, 72px);
  }

  .stolk-nav--main > a,
  .stolk-nav--main .stolk-nav__item--has-menu > a {
    font-family: var(--stolk-font-subhead);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.015em;
    text-transform: uppercase;
  }

  .stolk-nav--main .stolk-nav__chevron {
    width: 16px;
    height: 16px;
  }

  .stolk-header__cta {
    display: inline-flex;
    grid-column: 3;
    align-items: center;
    padding: 8px 18px;
    border-radius: var(--stolk-radius-sm);
    background: var(--stolk-accent);
    color: #fff;
    font-family: var(--stolk-font-subhead);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.015em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition: filter var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  /* The quote button keeps its orange fill on every header state. */
  .stolk-header .stolk-header__cta,
  .stolk-header--transparent .stolk-header__cta,
  .stolk-header--solid .stolk-header__cta {
    color: #fff;
  }

  .stolk-header__cta:hover,
  .stolk-header__cta:focus {
    filter: brightness(0.92);
    color: #fff;
  }

  .stolk-header__menu-btn {
    display: none;
    padding: 0;
    border: none;
    background: none;
    color: var(--stolk-ink);
    cursor: pointer;
  }

  .stolk-header__menu-btn svg {
    width: 26px;
    height: 26px;
  }

  /* ============================================================
     Mobile drawer
     ============================================================ */

  .stolk-drawer {
    display: flex;
    position: fixed;
    z-index: 200;
    inset: 0;
    flex-direction: column;
    padding:
      clamp(24px, 7vw, 48px)
      clamp(24px, 7vw, 44px)
      clamp(40px, 8vw, 64px);
    overflow-y: auto;
    transform: translateX(100%);
    background: var(--stolk-white);
    transition: transform var(--stolk-dur-base) var(--stolk-ease-out);
    -webkit-overflow-scrolling: touch;
  }

  .stolk-drawer.is-open {
    transform: translateX(0);
  }

  body.stolk-drawer-open {
    overflow: hidden;
  }

  .stolk-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
  }

  .stolk-drawer__logo img {
    display: block;
    width: auto;
    height: 54px;
  }

  .stolk-drawer__close {
    padding: 6px;
    border: none;
    background: none;
    color: var(--stolk-ink);
    cursor: pointer;
  }

  .stolk-drawer__close svg {
    width: 30px;
    height: 30px;
  }

  .stolk-drawer__main {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--stolk-border);
  }

  .stolk-drawer__main > a,
  .stolk-drawer__row > a {
    padding: clamp(12px, 2.6vw, 18px) 0;
    border-bottom: 1px solid var(--stolk-border);
    color: var(--stolk-ink);
    font-family: var(--stolk-font-subhead);
    font-size: clamp(26px, 7vw, 38px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
    text-decoration: none;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-drawer__main > a:hover,
  .stolk-drawer__row > a:hover {
    color: var(--stolk-accent);
  }

  .stolk-drawer__main > a.stolk-drawer__cta {
    color: var(--stolk-accent);
  }

  /* Accordion groups for menu items that carry children. */
  .stolk-drawer__group {
    display: flex;
    flex-direction: column;
  }

  .stolk-drawer__row {
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--stolk-border);
  }

  .stolk-drawer__row > a {
    flex: 1 1 auto;
    border-bottom: none;
  }

  .stolk-drawer__toggle {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: none;
    background: none;
    color: var(--stolk-ink);
    cursor: pointer;
  }

  /* A parent with no page of its own gives its whole row to the disclosure, so
     the label and the arrow are one target instead of a dead link with a small
     arrow beside it. `.stolk-drawer__row` above is what a parent that does carry
     a URL still gets: a real link, with the arrow separate. */
  .stolk-drawer__group > .stolk-drawer__toggle {
    justify-content: space-between;
    width: 100%;
    padding: clamp(12px, 2.6vw, 18px) 0;
    border-bottom: 1px solid var(--stolk-border);
    text-align: left;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-drawer__group > .stolk-drawer__toggle:hover {
    color: var(--stolk-accent);
  }

  /* Matches the type of the plain items it sits among. */
  .stolk-drawer__label {
    font-family: var(--stolk-font-subhead);
    font-size: clamp(26px, 7vw, 38px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
  }

  /* The secondary list is set much smaller, so its rows follow it rather than
     the main menu's display type. */
  .stolk-drawer__secondary .stolk-drawer__group > .stolk-drawer__toggle {
    padding: 11px 0;
  }

  .stolk-drawer__secondary .stolk-drawer__label {
    font-family: var(--stolk-font-body);
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: normal;
  }

  .stolk-drawer__toggle svg {
    flex: none;
    width: 26px;
    height: 26px;
    transition: transform var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-drawer__secondary .stolk-drawer__toggle svg {
    width: 18px;
    height: 18px;
  }

  .stolk-drawer__group.is-open .stolk-drawer__toggle svg {
    transform: rotate(180deg);
  }

  .stolk-drawer__sub {
    display: none;
    flex-direction: column;
    padding: 2px 0 12px;
  }

  .stolk-drawer__group.is-open .stolk-drawer__sub {
    display: flex;
  }

  .stolk-drawer__sub a {
    padding: 9px 0;
    color: var(--stolk-fg2);
    font-family: var(--stolk-font-body);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
  }

  .stolk-drawer__sub a:hover {
    color: var(--stolk-accent);
  }

  .stolk-drawer__secondary {
    display: flex;
    flex-direction: column;
    margin-top: clamp(20px, 4vw, 30px);
  }

  .stolk-drawer__secondary a {
    padding: 11px 0;
    border-bottom: 1px solid var(--stolk-border);
    color: var(--stolk-ink);
    font-family: var(--stolk-font-body);
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-drawer__secondary a:hover {
    color: var(--stolk-accent);
  }

  .stolk-drawer__social {
    display: flex;
    flex-direction: column;
    gap: 11px;
    margin-top: clamp(22px, 5vw, 34px);
  }

  .stolk-drawer__social-label {
    margin-bottom: 3px;
    color: var(--stolk-fg3);
    font-family: var(--stolk-font-subhead);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  .stolk-drawer__social a {
    color: var(--stolk-fg2);
    font-family: var(--stolk-font-body);
    font-size: 14.5px;
    text-decoration: none;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-drawer__social a:hover {
    color: var(--stolk-accent);
  }

  /* ---------- responsive ---------- */

  /* The bar collapses before the main links get cramped enough to wrap.
     The two-tier row needs ~1260px of viewport to lay out the logo, the five
     main links and the quote button without colliding; 1300px keeps a little
     headroom for menu labels the client edits in Settings > Navigation. */
  @media (width <= 1300px) {
    .stolk-nav--main,
    .stolk-nav--secondary,
    .stolk-header__main > .stolk-header__cta {
      display: none;
    }

    .stolk-header__main {
      grid-template-columns: 1fr auto;
    }

    .stolk-header__menu-btn {
      display: inline-flex;
    }

    /* Single-line mobile bar: hamburger vertically centred on the logo. */
    .stolk-header__top {
      position: absolute;
      z-index: 5;
      top: 0;
      right: var(--stolk-gutter);
      bottom: 0;
      align-items: center;
      padding: 0;
    }

    .stolk-header__top-right {
      height: 100%;
      align-items: center;
    }
  }
}
/* ============================================================
   STOLK CONSTRUCTION — site footer
   Dark four-column band: brand blurb, two link columns, contact
   block, over a rule with the copyright and tagline.
   ============================================================ */

@layer theme {
  .stolk-footer {
    background: var(--stolk-slate-900);
    color: rgb(255 255 255 / 72%);
  }

  .stolk-footer__top {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 44px;
    padding-block: 66px 50px;
  }

  .stolk-footer__logo {
    width: auto;
    height: 30px;
    margin-bottom: 20px;
  }

  .stolk-footer__blurb {
    max-width: 32ch;
    margin: 0;
    font-family: var(--stolk-font-body);
    font-size: 14.5px;
    line-height: 1.6;
  }

  .stolk-footer__heading {
    margin: 0 0 18px;
    color: #fff;
    font-family: var(--stolk-font-display);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .stolk-footer__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .stolk-footer a {
    color: inherit;
    font-family: var(--stolk-font-body);
    font-size: 14.5px;
    text-decoration: none;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-footer a:hover,
  .stolk-footer a:focus {
    color: var(--stolk-orange-400);
  }

  .stolk-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-block: 24px;
    border-top: 1px solid rgb(255 255 255 / 12%);
    font-family: var(--stolk-font-body);
    font-size: 13px;
  }

  .stolk-footer__tagline {
    color: var(--stolk-orange-400);
    font-family: var(--stolk-font-display);
    font-weight: 700;
    letter-spacing: 0.01em;
  }

  .stolk-footer__credit {
    color: rgb(255 255 255 / 42%);
    font-family: var(--stolk-font-body);
    font-size: 12.5px;
  }

  .stolk-footer__credit a {
    color: inherit;
    font-size: inherit;
  }

  /* Accreditation badges (WSIB, safety, association marks). */
  .stolk-footer__badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: clamp(18px, 3vw, 34px);
    margin-top: 26px;
  }

  .stolk-footer__badges img {
    width: auto;
    max-width: 120px;
    height: 46px;
    object-fit: contain;
    opacity: 0.75;
    filter: grayscale(1) brightness(1.9);
    transition:
      opacity var(--stolk-dur-fast) var(--stolk-ease-out),
      filter var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-footer__badges img:hover {
    opacity: 1;
    filter: none;
  }

  @media (width <= 720px) {
    .stolk-footer__top {
      grid-template-columns: 1fr 1fr;
    }
  }
}

/* Stolk shared atoms: container, section rhythm, headings, buttons, reveal */

/* ============================================================
   STOLK CONSTRUCTION — shared atoms
   Layout container, section rhythm, headings, eyebrow, buttons,
   scroll reveal, and the placeholder/flag markers carried over
   from the design proofs.
   ============================================================ */

@layer theme {
  /* Page ground and body face. Included after the boilerplate's element styles
     so these win without needing !important. */
  html {
    overflow-x: hidden;
  }

  body {
    background: var(--stolk-concrete);
    color: var(--stolk-fg1);
    font-family: var(--stolk-font-body);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
  }

  /* Heroes run full-bleed behind the fixed header, so main never pads for it.
     Sections that need the clearance read var(--stolk-header-h) themselves. */
  .stolk-main {
    padding-top: 0;
  }

  .stolk-main img {
    display: block;
    max-width: 100%;
  }

  /* Escape the drag-and-drop cage. HubSpot wraps every dnd_section in a
     .row-fluid that objects/_containers-dnd.css caps at
     --sp-max-content-width, with a gutter on the section itself — so a section
     that paints its own background or media stops short of the viewport edge.
     Roots marked .stolk-bleed hand width control back to the viewport; their
     inner .stolk-container (or __inner) still holds the content to measure.
     Keyed off the section content rather than a dnd_section class attribute so
     it also reaches pages already built from these templates. */
  .dnd-section:has(> .row-fluid .stolk-bleed) {
    padding-inline: 0;
  }

  .dnd-section:has(> .row-fluid .stolk-bleed) > .row-fluid {
    max-width: none;
  }

  .dnd-section:has(> .row-fluid .stolk-bleed) .dnd-column {
    padding-inline: 0;
  }

  .stolk-container {
    max-width: var(--stolk-container);
    margin: 0 auto;
    padding-inline: var(--stolk-gutter);
  }

  .stolk-container--narrow {
    max-width: var(--stolk-container-narrow);
  }

  .stolk-section {
    padding-block: clamp(56px, 8vw, 104px);
  }

  .stolk-section--tight {
    padding-block: clamp(36px, 5vw, 56px);
  }

  .stolk-section--light {
    background: var(--stolk-white);
  }

  .stolk-section--concrete {
    background: var(--stolk-concrete);
  }

  .stolk-section--dark {
    background: var(--stolk-slate-900);
    color: #fff;
  }

  /* ---------- headings ---------- */

  .stolk-h1 {
    margin: 0;
    color: var(--stolk-ink);
    font-family: var(--stolk-font-display);
    font-size: clamp(38px, 6vw, 76px);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -0.02em;
    text-wrap: balance;
  }

  .stolk-h2 {
    margin: 0;
    color: var(--stolk-ink);
    font-family: var(--stolk-font-display);
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 900;
    line-height: 1.06;
    letter-spacing: -0.015em;
    text-wrap: balance;
  }

  .stolk-h3 {
    margin: 0;
    color: var(--stolk-ink);
    font-family: var(--stolk-font-subhead);
    font-size: clamp(22px, 2.4vw, 30px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.01em;
  }

  .stolk-h4 {
    margin: 0;
    color: var(--stolk-ink);
    font-family: var(--stolk-font-display);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.15;
  }

  /* Eyebrow: uppercase, tracked, orange. The signature typographic move. */
  .stolk-eyebrow {
    display: inline-block;
    color: var(--stolk-accent);
    font-family: var(--stolk-font-subhead);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .stolk-lead {
    color: var(--stolk-fg2);
    font-family: var(--stolk-font-body);
    font-size: 18px;
    line-height: 1.65;
  }

  .stolk-section-head .stolk-eyebrow {
    margin-bottom: 14px;
  }

  /* On dark grounds the eyebrow lifts to the brighter tint for contrast. */
  .stolk-on-dark .stolk-eyebrow,
  .stolk-section--dark .stolk-eyebrow {
    color: var(--stolk-orange-400);
  }

  .stolk-on-dark .stolk-h1,
  .stolk-on-dark .stolk-h2,
  .stolk-on-dark .stolk-h3,
  .stolk-section--dark .stolk-h1,
  .stolk-section--dark .stolk-h2,
  .stolk-section--dark .stolk-h3 {
    color: #fff;
  }

  /* ---------- buttons ---------- */

  .stolk-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 15px 26px;
    border: 1.5px solid transparent;
    border-radius: var(--stolk-radius-md);
    font-family: var(--stolk-font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition:
      background var(--stolk-dur-fast) var(--stolk-ease-out),
      border-color var(--stolk-dur-fast) var(--stolk-ease-out),
      transform var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--stolk-focus-ring);
  }

  .stolk-btn--primary {
    background: var(--stolk-accent);
    color: #fff;
  }

  .stolk-btn--primary:hover,
  .stolk-btn--primary:focus {
    background: var(--stolk-accent-hover);
    color: #fff;
  }

  .stolk-btn--primary:active {
    background: var(--stolk-accent-press);
    transform: translateY(1px);
  }

  .stolk-btn--secondary {
    background: transparent;
    border-color: var(--stolk-border-strong);
    color: var(--stolk-ink);
  }

  .stolk-btn--secondary:hover,
  .stolk-btn--secondary:focus {
    background: var(--stolk-grey-100);
    border-color: var(--stolk-grey-400);
    color: var(--stolk-ink);
  }

  .stolk-btn--secondary:active {
    transform: translateY(1px);
  }

  /* Secondary button sitting on a dark or photographic ground. */
  .stolk-btn--on-dark.stolk-btn--secondary {
    border-color: rgb(255 255 255 / 45%);
    color: #fff;
  }

  .stolk-btn--on-dark.stolk-btn--secondary:hover,
  .stolk-btn--on-dark.stolk-btn--secondary:focus {
    background: rgb(255 255 255 / 10%);
    border-color: rgb(255 255 255 / 80%);
    color: #fff;
  }

  /* Inverted primary: white fill, orange label. Used on the orange/ink CTA strip. */
  .stolk-btn--inverse {
    background: #fff;
    border-color: #fff;
    color: var(--stolk-accent);
  }

  .stolk-btn--inverse:hover,
  .stolk-btn--inverse:focus {
    background: var(--stolk-orange-50);
    border-color: var(--stolk-orange-50);
    color: var(--stolk-accent-press);
  }

  /* Text link with a nudging arrow, used to leave a section. */
  .stolk-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--stolk-accent);
    font-family: var(--stolk-font-subhead);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--stolk-dur-fast) var(--stolk-ease-out);
  }

  .stolk-arrow-link svg {
    width: 17px;
    height: 17px;
    transition: transform var(--stolk-dur-base) var(--stolk-ease-out);
  }

  .stolk-arrow-link:hover svg,
  .stolk-arrow-link:focus svg {
    transform: translateX(4px);
  }

  .stolk-on-dark .stolk-arrow-link {
    color: #fff;
  }

  .stolk-on-dark .stolk-arrow-link svg {
    color: var(--stolk-orange-400);
  }

  .stolk-on-dark .stolk-arrow-link:hover,
  .stolk-on-dark .stolk-arrow-link:focus {
    color: var(--stolk-orange-400);
  }

  /* ---------- scroll reveal ---------- */

  .stolk-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
      opacity var(--stolk-dur-slow) var(--stolk-ease-out),
      transform var(--stolk-dur-slow) var(--stolk-ease-out);
  }

  .stolk-reveal.is-in {
    opacity: 1;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .stolk-reveal {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }

  /* Neutral "photo coming soon" plate for tiles with no image yet. */
  .stolk-photo-placeholder {
    display: flex;
    position: absolute;
    inset: 0;
    align-items: center;
    justify-content: center;
    background: var(--stolk-slate-800);
    color: rgb(255 255 255 / 45%);
    font-family: var(--stolk-font-mono);
    font-size: 11.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  /* ---------- icons ---------- */

  /* Inline chrome icons default to the surrounding text colour and a 18px box;
     callers override with an explicit width/height where the design differs. */
  .stolk-icon {
    display: inline-block;
    flex: none;
    width: 18px;
    height: 18px;
    color: inherit;
    vertical-align: middle;
  }

  /* HubSpot's own icon field renders an <svg> we size the same way. */
  .stolk-field-icon svg {
    width: 100%;
    height: 100%;
    fill: currentcolor;
  }

  /* ---------- utilities ---------- */

  .stolk-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}

/* Utilities
Helper classes with ability to override anything that comes before it
*/

@layer utility {
  /* For content that needs to be visually hidden but stay visible for screenreaders */

  .show-for-sr {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
  }

  @media (max-width: 767px) {
    .show-for-sr--mobile {
      border: 0 !important;
      clip: rect(0, 0, 0, 0) !important;
      height: 1px !important;
      overflow: hidden !important;
      padding: 0 !important;
      position: absolute !important;
      white-space: nowrap !important;
      width: 1px !important;
    }
  }
}