/* Elev8 Corporate Finance — Webflow support css.
   GENERATED by elev8/webflow/build-cdn.mjs — do not hand-edit.
   Source of truth: elev8/src/ (see elev8/webflow/WEBFLOW_MIGRATION.md) */

/* ═══ 1. TOKENS (raw — the theme contract the JS tweens) ═══ */
      :root {
        --bg: #0b0b0c;
        --panel: #141416;
        --panel-2: #1b1b1e;
        --paper: #f4f1eb;
        --paper-ink: #15120e;
        --paper-muted: #7c746a;
        --red: #c8102e;
        --red-bright: #e8172f;
        --red-text: #ef5a6e; 
        --red-glow: rgba(200, 16, 46, 0.5);
        --white: #f5f3f0;
        --muted: #9a9a9f;
        --muted-dim: #6a6a6e;
        --serif: "Cormorant Garamond", serif;
        --sans: "DM Sans", sans-serif;
        --sw: 0.5px; 
        --nav-h: 66px; 
        --nav-line: rgba(245, 243, 240, 0.1);
        --pad-x: 60px; 
        --slide-pad-y: clamp(
          1.5rem,
          3.5svh,
          2.75rem
        ); 
        --dot: 20px; 
      }

      

      
      body[data-theme="black"] {
        --white: #f5f3f0;
        --muted: #9a9a9f;
        --muted-dim: #6a6a6e;
        --red-text: #ef5a6e; 
        --strokeColor: rgba(245, 243, 240, 0.16);
        --field: #0b0b0c;
        --dot-rgb: rgb(200, 16, 46); 
        --dot-hot: rgb(232, 23, 47);
        --dot-amax: 0.32; 
        --nav-frost: rgba(11, 11, 12, 0.55);
        --redness: 0;
      }
      body[data-theme="red"] {
        --white: #ffffff;
        --muted: rgba(255, 255, 255, 0.82);
        --muted-dim: rgba(255, 255, 255, 0.62);
        --red-text: #ffffff; 
        --strokeColor: rgba(255, 255, 255, 0.2);
        
        --field: #8f0f1e;
        --dot-rgb: rgb(0, 0, 0); 
        --dot-hot: rgb(0, 0, 0);
        --dot-amax: 0.32;
        --nav-frost: rgba(120, 14, 28, 0.4);
        --redness: 1;
      }
      body[data-theme="white"] {
        --white: #15120e;
        --muted: #7c746a;
        --muted-dim: #7c746a;
        --red-text: #c8102e;
        --strokeColor: rgba(21, 18, 14, 0.16);
        --field: #f4f1eb;
        --dot-rgb: rgb(21, 18, 14); 
        --dot-hot: rgb(21, 18, 14);
        --dot-amax: 0.2;
        --nav-frost: rgba(244, 241, 235, 0.72);
        --redness: 0;
      }

      *,
      *::before,
      *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }
      html {
        scroll-behavior: smooth;
        scroll-padding-top: 0;
      }
      body {
        font-family: var(--sans);
        
        --white: #15120e;
        --muted: #7c746a;
        --muted-dim: #7c746a;
        --red-text: #c8102e;
        --strokeColor: rgba(21, 18, 14, 0.16);
        --field: #f4f1eb;
        --dot-rgb: rgb(21, 18, 14);
        --dot-hot: rgb(21, 18, 14);
        --dot-amax: 0.2;
        --nav-frost: rgba(244, 241, 235, 0.72);
        --redness: 0;
        background: var(--field);
        color: var(--white);
        
        font-weight: 300;
        line-height: 1.65;
        -webkit-font-smoothing: antialiased;
        overflow-x: hidden;
      }
      ::selection {
        background: var(--red);
        color: #fff;
      }
      a {
        color: inherit;
        text-decoration: none;
      }

/* ═══ 2. PARITY LAYER (zero specificity — any Webflow class wins) ═══ */
:where(.section.is--dark):not(x-wf) {
  --strokeColor: rgba(245, 243, 240, 0.16);
}
:where(.section.is--light):not(x-wf) {
  --strokeColor: rgba(21, 18, 14, 0.16);
}
:where(.hairline):not(x-wf) {
  position: relative;
}
:where(.hairline):not(x-wf)::after {
  content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background-image:
          linear-gradient(var(--strokeColor), var(--strokeColor)),
          linear-gradient(var(--strokeColor), var(--strokeColor)),
          linear-gradient(var(--strokeColor), var(--strokeColor)),
          linear-gradient(var(--strokeColor), var(--strokeColor));
        background-repeat: no-repeat;
        background-size:
          0 var(--sw),
          var(--sw) 0,
          0 var(--sw),
          var(--sw) 0;
        background-position:
          left top,
          right top,
          left bottom,
          left top;
        transition: background-size 1.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.section.is-visible .hairline::after {
  background-size:
          calc(var(--t, 0) * 100%) var(--sw),
          var(--sw) calc(var(--r, 0) * 100%),
          calc(var(--b, 0) * 100%) var(--sw),
          var(--sw) calc(var(--l, 0) * 100%);
}
:where(.hairline--instant):not(x-wf)::after {
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
:where(html):not(x-wf) {
  scroll-behavior: auto;
}
:where(.hairline):not(x-wf)::after {
  transition: none !important;
}
.fade {
  transition: none !important;
          transform: none !important;
}
:where(.eyebrow .rule):not(x-wf) {
  transition: none !important;
          transform: scaleX(1) !important;
}
.himg {
  transition: opacity 0.3s ease !important;
          transform: none !important;
}
}
:where(:focus-visible):not(x-wf) {
  outline: 2px solid var(--red-bright);
        outline-offset: 3px;
}
.bg-redbold :focus-visible,
:where(.site-footer :focus-visible):not(x-wf) {
  outline-color: #fff;
}
:where(.section):not(x-wf) {
  position: relative;
        height: 100svh;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: var(--nav-h) var(--pad-x) 0;
}
:where(#hero):not(x-wf) {
  height: 100svh;
}
:where(.section .inner):not(x-wf) {
  width: 100%;
        max-width: none;
        margin: 0;
        position: relative;
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding-block: var(--slide-pad-y);
}
@media (min-width: 992px) {
:where(html):not(x-wf) {
  scroll-snap-type: y mandatory;
}
:where(.section):not(x-wf) {
  scroll-snap-align: start;
          scroll-snap-stop: always;
}
}
@media (max-width: 991.98px), (max-height: 1000px) {
:where(html):not(x-wf) {
  scroll-snap-type: none;
}
}
@media (min-width: 992px) and (max-height: 1000px) {
:where(.section):not(x-wf) {
  height: auto;
          min-height: 100svh;
}
:where(#hero):not(x-wf) {
  height: auto;
          min-height: 100svh;
}
}
:where(.section):not(x-wf) {
  opacity: 1;
}
:where(nav):not(x-wf) {
  position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 55;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 22px var(--pad-x);
        
        transition:
          backdrop-filter 0.4s ease,
          -webkit-backdrop-filter 0.4s ease,
          padding 0.3s,
          border-color 0.4s;
        border-bottom: 1px solid var(--nav-line);
}
nav.solid {
  background: var(--nav-frost);
        -webkit-backdrop-filter: blur(16px) saturate(1.15);
        backdrop-filter: blur(16px) saturate(1.15);
        border-bottom-color: rgba(245, 243, 240, 0.06);
        padding: 15px var(--pad-x);
}
nav.solid.nav--red {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}
nav.nav--red .nav-links a {
  color: rgba(255, 255, 255, 0.72);
}
nav.nav--red .nav-links a:hover,
nav.nav--red .nav-links a.is-active {
  color: #fff;
}
nav.nav--red .nav-links a.is-active::after {
  background: #fff;
}
nav.nav--red .nav-cta {
  background: #fff;
        border-color: #fff;
        color: #9a0c1f;
}
nav.nav--red .nav-cta:hover {
  background: var(--paper);
        border-color: var(--paper);
}
body.nav--on-light nav {
  border-bottom-color: rgba(21, 18, 14, 0.12);
}
:where(.brand):not(x-wf) {
  font-family: var(--serif);
        font-size: 26px;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0;
        display: flex;
        align-items: baseline;
        gap: 0;
        color: var(--white);
        transition: color 0.3s;
}
:where(.brand .eight):not(x-wf) {
  color: var(--red);
        
        transition: color 0.3s;
}
nav.nav--red .brand .eight {
  color: #fff;
}
:where(.brand small):not(x-wf) {
  font-family: var(--serif);
        font-size: 26px;
        line-height: 1;
        letter-spacing: 0;
        text-transform: none;
        color: currentColor;
        font-weight: 600;
        margin-left: 8px;
        align-self: center;
}
body.nav--on-light .brand {
  color: var(--paper-ink);
}
body.nav--on-light .brand small {
  color: var(--paper-muted);
}
:where(.nav-links):not(x-wf) {
  display: flex;
        gap: 30px;
        list-style: none;
}
:where(.nav-links a):not(x-wf) {
  font-size: 11px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--muted);
        transition: 0.2s;
        position: relative;
        padding: 4px 0;
}
:where(.nav-links a):not(x-wf)::after {
  content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 0;
        height: 1px;
        background: var(--red);
        transition: width 0.3s;
}
:where(.nav-links a:hover):not(x-wf) {
  color: var(--white);
}
:where(.nav-links a:hover):not(x-wf)::after,
:where(.nav-links a.is-active):not(x-wf)::after {
  width: 100%;
}
:where(.nav-links a.is-active):not(x-wf) {
  color: var(--white);
}
body.nav--on-light .nav-links a {
  color: var(--paper-muted);
}
body.nav--on-light .nav-links a:hover,
body.nav--on-light .nav-links a.is-active {
  color: var(--paper-ink);
}
:where(.nav-cta):not(x-wf) {
  font-size: 11px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        font-weight: 500;
        color: #fff;
        background: var(--red);
        border: 1px solid var(--red);
        border-radius: 100px;
        padding: 10px 22px;
        transition:
          background 0.25s,
          border-color 0.25s,
          color 0.25s;
}
:where(.nav-cta:hover):not(x-wf) {
  background: var(--red-bright);
        border-color: var(--red-bright);
}
:where(.nav-cta.is-active):not(x-wf) {
  box-shadow: 0 0 0 2px var(--white);
}
:where(.nav-right):not(x-wf) {
  display: flex;
        align-items: center;
        gap: 28px;
}
:where(.nav-marker):not(x-wf) {
  display: inline-flex;
        align-items: baseline;
        gap: 6px;
        font-size: 11px;
        letter-spacing: 0.1em;
        text-transform: lowercase;
        color: var(--muted);
        white-space: nowrap;
}
:where(.nav-marker b):not(x-wf) {
  font-family: var(--serif);
        font-style: italic;
        font-weight: 500;
        font-size: 13px;
        color: var(--muted);
        text-transform: none;
}
body.nav--on-light .nav-marker,
body.nav--on-light .nav-marker b {
  color: var(--paper-muted);
}
:where(.eyebrow):not(x-wf) {
  display: inline-flex;
        align-items: center;
        gap: 14px;
        font-size: 10px;
        letter-spacing: 0.26em;
        text-transform: uppercase;
        color: var(--red);
        font-weight: 500;
}
:where(.section.is--dark:not(.bg-redbold) .eyebrow):not(x-wf) {
  color: var(--red-text);
}
:where(.eyebrow .rule):not(x-wf) {
  display: none;
}
:where(.display):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        line-height: 1.02;
        letter-spacing: -0.015em;
}
:where(h2.display):not(x-wf) {
  font-size: clamp(39px, 4.7vw, 70px);
}
:where(.display em):not(x-wf) {
  font-style: italic;
        color: var(--red);
}
.js-ready .fade {
  opacity: 0;
        transform: translateY(26px);
        transition:
          opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.is-visible .fade {
  opacity: 1;
        transform: none;
}
.is-visible .fade.d1 {
  transition-delay: 0.1s;
}
.is-visible .fade.d2 {
  transition-delay: 0.2s;
}
.is-visible .fade.d3 {
  transition-delay: 0.3s;
}
.is-visible .fade.d4 {
  transition-delay: 0.4s;
}
.is-visible .fade.d5 {
  transition-delay: 0.5s;
}
.still {
  transform: none !important;
}
:where(.site-icon-image):not(x-wf) {
  display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
        flex: none;
}
@media (hover: none) {
:where(.qcta):not(x-wf) {
  opacity: 1 !important;
          transform: none !important;
}
}
:where(#hero .inner):not(x-wf) {
  position: relative;
        z-index: 2;
}
:where(.hero-frame):not(x-wf) {
  position: relative;
        z-index: 2;
}
:where(.hero-eyebrow):not(x-wf) {
  margin-bottom: 34px;
}
:where(h1):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(46px, 6.6vw, 104px);
        line-height: 0.98;
        letter-spacing: -0.02em;
        max-width: 16ch;
}
:where(h1 em):not(x-wf) {
  font-style: italic;
        color: var(--red);
}
:where(.counter):not(x-wf) {
  display: block;
        font-family: var(--serif);
        font-style: italic;
        font-weight: 400;
        font-size: clamp(22px, 3vw, 40px);
        color: var(--muted);
        margin-top: 10px;
}
:where(.positioning):not(x-wf) {
  margin-top: 34px;
        font-size: clamp(16px, 1.5vw, 19px);
        font-weight: 300;
        color: var(--muted);
        max-width: 54ch;
        line-height: 1.7;
}
:where(.positioning b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(.hero-actions):not(x-wf) {
  display: flex;
        gap: 14px;
        margin-top: 44px;
        flex-wrap: wrap;
}
:where(.btn):not(x-wf) {
  font-size: 13px;
        font-weight: 600;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        padding: 17px 36px;
        border-radius: 100px;
        transition: 0.25s;
        display: inline-flex;
        align-items: center;
        gap: 9px;
        cursor: pointer;
        border: 0;
}
:where(.btn-primary):not(x-wf) {
  background: var(--red);
        color: #fff;
}
:where(.btn-primary:hover):not(x-wf) {
  background: var(--red-bright);
        transform: translateY(-2px);
}
:where(.btn-ghost):not(x-wf) {
  color: var(--muted);
        border: 1px solid rgba(245, 243, 240, 0.18);
        background: none;
}
:where(.btn-ghost:hover):not(x-wf) {
  color: #fff;
        border-color: var(--white);
}
:where(.btn .arrow):not(x-wf) {
  transition: transform 0.25s;
}
:where(.btn:hover .arrow):not(x-wf) {
  transform: translateX(4px);
}
:where(.proof):not(x-wf) {
  display: grid;
        grid-template-columns: repeat(4, 1fr);
        margin-top: 64px;
}
:where(.pstat):not(x-wf) {
  padding: 26px 30px 6px;
}
:where(.pstat .pv):not(x-wf) {
  font-family: var(--serif);
        font-size: clamp(22px, 2vw, 30px);
        font-weight: 500;
        color: var(--white);
}
:where(.pstat .pv b):not(x-wf) {
  color: var(--red);
        font-weight: 500;
}
:where(.pstat .pl):not(x-wf) {
  font-size: 9.5px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--muted-dim);
        margin-top: 6px;
}
:where(.spectrum-cap):not(x-wf) {
  font-size: 10px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--muted-dim);
        margin-top: 48px;
}
:where(.spectrum):not(x-wf) {
  display: grid;
        grid-template-columns: repeat(3, 1fr);
        margin-top: 14px;
}
:where(.lane):not(x-wf) {
  padding: 24px 30px 22px;
}
:where(.lane .lane-n):not(x-wf) {
  font-family: var(--serif);
        font-size: 17px;
        color: var(--muted-dim);
        margin-bottom: 12px;
}
:where(.lane.is-new .lane-n):not(x-wf) {
  color: var(--red);
}
:where(.lane .lane-h):not(x-wf) {
  font-size: 15px;
        font-weight: 500;
        color: var(--white);
        margin-bottom: 7px;
        letter-spacing: 0.01em;
}
:where(.lane .lane-s):not(x-wf) {
  font-size: 12.5px;
        color: var(--muted);
        line-height: 1.6;
}
:where(.hero-split):not(x-wf) {
  display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        gap: clamp(2rem, 5vw, 5.5rem);
        align-items: center;
        height: 100%;
        min-height: 0;
}
:where(.hero-left):not(x-wf) {
  display: flex;
        flex-direction: column;
        justify-content: center;
}
:where(.hero-left h1):not(x-wf) {
  max-width: 15ch;
        font-size: clamp(40px, 4.8vw, 78px);
}
:where(.hero-left .positioning):not(x-wf) {
  margin-top: 24px;
        max-width: 50ch;
}
:where(.hero-eyebrow):not(x-wf) {
  margin-bottom: 24px;
}
:where(.hero-index):not(x-wf) {
  display: flex;
        flex-direction: column;
        margin-top: clamp(1.5rem, 4vh, 2.75rem);
        border-top: var(--sw) solid var(--strokeColor);
}
:where(.hero-index .hx):not(x-wf) {
  display: flex;
        flex-direction: column;
        gap: 5px;
        padding: clamp(11px, 1.6vh, 18px) 0;
        border-bottom: var(--sw) solid var(--strokeColor);
        position: relative;
        transition:
          padding-left 0.35s cubic-bezier(0.22, 1, 0.36, 1),
          color 0.3s;
}
:where(.hero-index .hx):not(x-wf)::before {
  content: "";
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 2px;
        background: var(--red);
        transform: scaleY(0);
        transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(.hero-index .hx:hover):not(x-wf),
.hero-index .hx.on {
  padding-left: 18px;
}
:where(.hero-index .hx:hover):not(x-wf)::before,
.hero-index .hx.on::before {
  transform: scaleY(1);
}
:where(.hero-index .hx .hl):not(x-wf) {
  font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--red-text); 
        font-weight: 500;
}
:where(.hero-index .hx .hv):not(x-wf) {
  font-size: clamp(13px, 1vw, 15px);
        color: var(--muted);
        line-height: 1.5;
        transition: color 0.3s;
}
:where(.hero-index .hx .hv b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(.hero-index .hx:hover .hv):not(x-wf),
.hero-index .hx.on .hv {
  color: var(--white);
}
:where(.hero-right):not(x-wf) {
  position: relative;
        height: 100%;
        min-height: 0;
        overflow: hidden;
        margin-right: calc(-1 * var(--pad-x));
        border-left: var(--sw) solid var(--strokeColor);
        background: var(--panel);
}
.himg {
  position: absolute;
        inset: 0;
        background-size: cover;
        background-position: center;
        filter: grayscale(1) contrast(1.06) brightness(0.85);
        opacity: 0;
        transform: scale(1.06);
        transition:
          opacity 0.7s ease,
          transform 7s ease;
}
.himg.active {
  opacity: 1;
        transform: scale(1);
}
:where(.hero-right):not(x-wf)::after {
  content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background:
          linear-gradient(180deg, rgba(11, 11, 12, 0.7) 0%, transparent 15%),
          linear-gradient(
            90deg,
            var(--bg) 0%,
            transparent 24%,
            transparent 72%,
            rgba(200, 16, 46, 0.14) 100%
          );
}
:where(.bg-red):not(x-wf),
:where(.bg-glow):not(x-wf),
:where(.bg-diag):not(x-wf),
:where(.bg-dots):not(x-wf) {
  position: relative;
}
:where(.bg-red):not(x-wf)::before,
:where(.bg-glow):not(x-wf)::before,
:where(.bg-diag):not(x-wf)::before,
:where(.bg-dots):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
}
:where(.bg-red > .inner):not(x-wf),
:where(.bg-glow > .inner):not(x-wf),
:where(.bg-diag > .inner):not(x-wf),
:where(.bg-dots > .inner):not(x-wf) {
  z-index: 1;
}
:where(.bg-red):not(x-wf) {
  background: radial-gradient(
          125% 125% at 78% 0%,
          #5c0f1e 0%,
          #2a0a12 40%,
          #0b0b0c 80%
        );
}
:where(.bg-glow):not(x-wf)::before {
  background: radial-gradient(
          72% 60% at 50% 116%,
          var(--red-glow),
          transparent 70%
        );
        opacity: 0.55;
}
:where(.bg-diag):not(x-wf)::before {
  background-image: repeating-linear-gradient(
          45deg,
          rgba(200, 16, 46, 0.1) 0 1.5px,
          transparent 1.5px 30px
        );
        -webkit-mask-image: radial-gradient(
          130% 100% at 50% 50%,
          #000 35%,
          transparent 88%
        );
        mask-image: radial-gradient(
          130% 100% at 50% 50%,
          #000 35%,
          transparent 88%
        );
}
:where(.bg-dots):not(x-wf)::before {
  background-image: radial-gradient(
          rgba(200, 16, 46, 0.22) 1px,
          transparent 1.4px
        );
        background-size: 26px 26px;
        -webkit-mask-image: radial-gradient(
          120% 90% at 50% 50%,
          #000 30%,
          transparent 86%
        );
        mask-image: radial-gradient(
          120% 90% at 50% 50%,
          #000 30%,
          transparent 86%
        );
}
:where(.section.is--light.bg-paper):not(x-wf) {
  background: var(--paper);
}
:where(.bg-paper .eyebrow):not(x-wf),
:where(.bg-paper .hl):not(x-wf),
:where(.bg-paper h1 em):not(x-wf) {
  color: var(--red);
}
:where(.bg-paper h1):not(x-wf) {
  color: var(--paper-ink);
}
:where(.bg-paper .positioning):not(x-wf) {
  color: var(--paper-muted);
}
:where(.bg-paper .positioning b):not(x-wf),
:where(.bg-paper .hv b):not(x-wf) {
  color: var(--paper-ink);
}
:where(.bg-paper .hv):not(x-wf) {
  color: var(--paper-muted);
}
:where(.bg-paper .btn-ghost):not(x-wf) {
  color: var(--paper-muted);
        border-color: rgba(21, 18, 14, 0.2);
}
:where(.bg-paper .btn-ghost:hover):not(x-wf) {
  color: var(--paper-ink);
        border-color: var(--paper-ink);
}
:where(.bg-redbold):not(x-wf) {
  position: relative;
        --strokeColor: rgba(255, 255, 255, 0.2);
        color: #fff;
}
:where(.bg-redbold):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
}
.bg-redbold > .inner {
  position: relative;
        z-index: 1;
}
.bg-redbold .eyebrow,
.bg-redbold .hl,
.bg-redbold .hero-index .hx .hl {
  color: rgba(255, 255, 255, 0.82);
}
.bg-redbold .cta-body {
  color: rgba(255, 255, 255, 0.85);
}
.bg-redbold .cta-note {
  color: rgba(255, 255, 255, 0.75);
}
.bg-redbold .eyebrow .rule {
  background: rgba(255, 255, 255, 0.8);
}
.bg-redbold .hero-eyebrow .rule {
  background: rgba(255, 255, 255, 0.8);
}
.bg-redbold h1 em,
.bg-redbold .positioning b,
.bg-redbold .hv b {
  color: #fff;
}
.bg-redbold .positioning {
  color: rgba(255, 255, 255, 0.82);
}
.bg-redbold .hv {
  color: rgba(255, 255, 255, 0.7);
}
.bg-redbold .hero-index,
.bg-redbold .hero-index .hx {
  border-color: rgba(255, 255, 255, 0.2);
}
.bg-redbold .hero-index .hx::before {
  background: #fff;
}
.bg-redbold .hero-index .hx:hover .hv,
.bg-redbold .hero-index .hx.on .hv {
  color: #fff;
}
.bg-redbold .btn-primary {
  background: #fff;
        color: #9a0c1f;
}
.bg-redbold .btn-primary:hover {
  background: var(--paper);
        transform: translateY(-2px);
}
.bg-redbold .btn-ghost {
  color: rgba(255, 255, 255, 0.85);
        border-color: rgba(255, 255, 255, 0.4);
}
.bg-redbold .btn-ghost:hover {
  color: #fff;
        border-color: #fff;
}
.bg-redbold .hero-right {
  border-left-color: rgba(255, 255, 255, 0.25);
}
:where(.focus-tags):not(x-wf) {
  display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 22px;
}
:where(.focus-tags .ft):not(x-wf) {
  font-size: 12px;
        padding: 7px 14px;
        border: var(--sw) solid var(--strokeColor);
        color: var(--muted);
        transition:
          color 0.2s,
          border-color 0.2s;
}
:where(.focus-tags .ft):not(x-wf)::before {
  content: "✓";
        color: var(--red);
        margin-right: 7px;
        font-size: 10px;
}
:where(.serve-layout):not(x-wf) {
  display: grid;
        grid-template-columns: 0.74fr 1.26fr;
        gap: clamp(24px, 3vw, 52px);
        align-items: stretch;
        flex: 1;
        margin-top: 0;
        padding-right: clamp(28px, 3.5vw, 68px);
}
:where(.slide-left-main):not(x-wf) {
  padding: var(--slide-pad-y) 0;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        gap: 32px;
}
:where(.qual):not(x-wf),
:where(.sectors):not(x-wf),
:where(.steps):not(x-wf) {
  justify-content: space-between;
}
:where(.serve-head-sub):not(x-wf) {
  margin-top: 24px;
        font-size: clamp(16px, 1.45vw, 19px);
        color: var(--muted);
        line-height: 1.8;
        max-width: 48ch;
}
:where(.serve-head-sub b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(.qual):not(x-wf) {
  display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
        
        margin-right: calc(-1 * var(--pad-x));
}
:where(.q):not(x-wf) {
  flex: 1;
        min-height: 0;
        display: flex;
        align-items: center;
        gap: clamp(1.25rem, 2.5vw, 2.5rem);
        padding-left: clamp(1.75rem, 3vw, 3.25rem);
        padding-right: var(--pad-x);
        position: relative;
        overflow: hidden;
        border-top: var(--sw) solid var(--strokeColor);
        transition:
          background 0.45s cubic-bezier(0.22, 1, 0.36, 1),
          color 0.4s;
}
:where(.q:last-child):not(x-wf) {
  border-bottom: var(--sw) solid var(--strokeColor);
}
:where(.q):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: 0;
        background-image: repeating-linear-gradient(
          135deg,
          rgba(245, 243, 240, 0.035) 0 1px,
          transparent 1px 12px
        );
        pointer-events: none;
        transition: opacity 0.45s;
}
:where(.q > *):not(x-wf) {
  position: relative;
        z-index: 1;
}
:where(.qicon):not(x-wf) {
  flex: none;
        width: clamp(34px, 4.4svh, 50px);
        height: clamp(34px, 4.4svh, 50px);
        color: var(--red);
        transition:
          color 0.4s,
          transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(.qicon svg):not(x-wf) {
  width: 100%;
        height: 100%;
        display: block;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.4;
        stroke-linecap: round;
        stroke-linejoin: round;
}
:where(.q .qfig):not(x-wf),
:where(.q .qval):not(x-wf),
:where(.q .qtop):not(x-wf),
:where(.q .qdesc):not(x-wf) {
  transition: color 0.4s;
}
:where(.q:hover):not(x-wf) {
  background: var(--red);
}
:where(.q:hover):not(x-wf)::before {
  opacity: 0.4;
}
:where(.q:hover .qicon):not(x-wf) {
  color: #fff;
        transform: translateX(5px);
}
:where(.q:hover .qfig):not(x-wf),
:where(.q:hover .qval):not(x-wf) {
  color: #fff;
}
:where(.q:hover .qtop):not(x-wf) {
  color: rgba(255, 255, 255, 0.78);
}
:where(.q:hover .qdesc):not(x-wf) {
  color: rgba(255, 255, 255, 0.9);
}
:where(.q:hover .qdesc em):not(x-wf) {
  color: #fff;
}
:where(.qcta):not(x-wf) {
  margin-left: auto;
        flex: none;
        display: inline-flex;
        align-items: center;
        gap: 9px;
        font-size: 11px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: #fff;
        opacity: 0;
        transform: translateX(-12px);
        transition:
          opacity 0.4s,
          transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
        white-space: nowrap;
}
:where(.qcta .qarrow):not(x-wf) {
  font-size: 15px;
        transition: transform 0.4s;
}
:where(.q:hover .qcta):not(x-wf) {
  opacity: 1;
        transform: translateX(0);
}
:where(.q:hover .qcta .qarrow):not(x-wf) {
  transform: translateX(5px);
}
:where(.q .qfig):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(34px, calc(2.4vw + 2.4svh), 72px);
        line-height: 1.04;
        color: var(--white);
        letter-spacing: -0.01em;
}
:where(.q .qdesc):not(x-wf) {
  font-size: 14.5px;
        color: var(--muted);
        margin-top: 12px;
        line-height: 1.5;
}
:where(.q .qdesc em):not(x-wf) {
  font-style: italic;
        color: var(--red-text); 
        font-weight: 400;
}
:where(.q .qtop):not(x-wf) {
  font-size: clamp(16px, 1.5vw, 20px);
        color: var(--muted);
        line-height: 1.4;
}
:where(.q .qval):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(24px, calc(1.5vw + 1.6svh), 46px);
        line-height: 1.12;
        color: var(--white);
        letter-spacing: -0.005em;
        margin-top: 9px;
}
:where(.exclude):not(x-wf) {
  display: flex;
        flex-wrap: wrap;
        gap: 10px 22px;
        align-items: center;
        margin-top: 40px;
        padding-top: 24px;
}
:where(.exclude .xl):not(x-wf) {
  font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--muted-dim);
        font-weight: 500;
        width: 100%;
        margin-bottom: 2px;
}
:where(.exclude .xi):not(x-wf) {
  font-size: 13px;
        color: var(--muted);
        display: flex;
        align-items: center;
        gap: 8px;
}
:where(.exclude .xi):not(x-wf)::before {
  content: "\2715";
        color: var(--red);
        font-size: 9px;
        opacity: 0.85;
}
:where(.focus-sub):not(x-wf) {
  margin-top: 24px;
        font-size: clamp(15px, 1.4vw, 18px);
        color: var(--muted);
        line-height: 1.8;
        max-width: 46ch;
}
:where(.focus-sub b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(.sectors):not(x-wf) {
  display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
        
        margin-right: calc(-1 * var(--pad-x));
}
:where(.sector-list):not(x-wf) {
  display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
}
:where(.sector):not(x-wf) {
  flex: 1;
        min-height: 0;
        display: flex;
        align-items: center;
        gap: clamp(1.25rem, 2.5vw, 2.5rem);
        padding-left: clamp(1.75rem, 3vw, 3.25rem);
        padding-right: var(--pad-x);
        position: relative;
        overflow: hidden;
        border-top: var(--sw) solid var(--strokeColor);
        transition:
          background 0.45s cubic-bezier(0.22, 1, 0.36, 1),
          color 0.4s;
}
:where(.sector):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: 0;
        background-image: repeating-linear-gradient(
          135deg,
          rgba(245, 243, 240, 0.035) 0 1px,
          transparent 1px 12px
        );
        pointer-events: none;
        transition: opacity 0.45s;
}
:where(.sector > *):not(x-wf) {
  position: relative;
        z-index: 1;
}
:where(.sector .sicon):not(x-wf) {
  flex: none;
        width: clamp(40px, 4.6svh, 58px);
        height: clamp(40px, 4.6svh, 58px);
        color: var(--red);
        transition:
          color 0.4s,
          transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(.sector .sicon svg):not(x-wf) {
  width: 100%;
        height: 100%;
        display: block;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.25;
        stroke-linecap: round;
        stroke-linejoin: round;
}
:where(.sector .stext):not(x-wf) {
  flex: 1;
}
:where(.sector .scat):not(x-wf) {
  font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--red-text); 
        font-weight: 500;
        margin-bottom: 10px;
        transition: color 0.4s;
}
:where(.sector .sname):not(x-wf) {
  font-family: var(--serif);
        font-size: clamp(24px, calc(1.4vw + 1.6svh), 42px);
        font-weight: 700;
        color: var(--white);
        line-height: 1.1;
        margin-bottom: 9px;
        transition: color 0.4s;
}
:where(.sector .sdesc):not(x-wf) {
  font-size: 13px;
        color: var(--muted);
        line-height: 1.65;
        max-width: 56ch;
        transition: color 0.4s;
}
:where(.sector:hover):not(x-wf) {
  background: var(--red);
}
:where(.sector:hover):not(x-wf)::before {
  opacity: 0.4;
}
:where(.sector:hover .sicon):not(x-wf) {
  color: #fff;
        transform: translateX(4px);
}
:where(.sector:hover .scat):not(x-wf) {
  color: rgba(255, 255, 255, 0.85);
}
:where(.sector:hover .sname):not(x-wf) {
  color: #fff;
}
:where(.sector:hover .sdesc):not(x-wf) {
  color: rgba(255, 255, 255, 0.9);
}
:where(.sector:hover .qcta):not(x-wf) {
  opacity: 1;
        transform: translateX(0);
}
:where(.sector:hover .qcta .qarrow):not(x-wf) {
  transform: translateX(5px);
}
:where(.sectors .exclude):not(x-wf) {
  padding-left: clamp(1.75rem, 3vw, 3.25rem);
        padding-right: var(--pad-x);
}
:where(.steps):not(x-wf) {
  display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
        
        margin-right: calc(-1 * var(--pad-x));
}
:where(.step):not(x-wf) {
  flex: 1;
        min-height: 0;
        display: flex;
        align-items: center;
        gap: clamp(1.25rem, 2.5vw, 2.5rem);
        padding-left: clamp(1.75rem, 3vw, 3.25rem);
        padding-right: var(--pad-x);
        position: relative;
        overflow: hidden;
        border-top: var(--sw) solid var(--strokeColor);
        transition:
          background 0.45s cubic-bezier(0.22, 1, 0.36, 1),
          color 0.4s;
}
:where(.step:last-child):not(x-wf) {
  border-bottom: var(--sw) solid var(--strokeColor);
}
:where(.step):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: 0;
        background-image: repeating-linear-gradient(
          135deg,
          rgba(245, 243, 240, 0.035) 0 1px,
          transparent 1px 12px
        );
        pointer-events: none;
        transition: opacity 0.45s;
}
:where(.step > *):not(x-wf) {
  position: relative;
        z-index: 1;
}
:where(.step .stnum):not(x-wf) {
  flex: none;
        font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(28px, calc(1.6vw + 2svh), 56px);
        color: var(--muted-dim);
        line-height: 1;
        min-width: 1.6em;
        transition:
          color 0.4s,
          transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(.step.is-key .stnum):not(x-wf) {
  color: var(--red);
}
:where(.step .stbody):not(x-wf) {
  flex: 1;
}
:where(.step .stt):not(x-wf) {
  font-size: clamp(15px, calc(0.7vw + 0.5svh), 20px);
        font-weight: 500;
        color: var(--white);
        margin-bottom: 8px;
        letter-spacing: 0.01em;
        transition: color 0.4s;
}
:where(.step .std):not(x-wf) {
  font-size: 13px;
        color: var(--muted);
        line-height: 1.62;
        max-width: 62ch;
        transition: color 0.4s;
}
:where(.step:hover):not(x-wf) {
  background: var(--red);
}
:where(.step:hover):not(x-wf)::before {
  opacity: 0.4;
}
:where(.step:hover .stnum):not(x-wf) {
  color: #fff;
        transform: translateX(4px);
}
:where(.step:hover .stt):not(x-wf) {
  color: #fff;
}
:where(.step:hover .std):not(x-wf) {
  color: rgba(255, 255, 255, 0.9);
}
:where(.step:hover .qcta):not(x-wf) {
  opacity: 1;
        transform: translateX(0);
}
:where(.step:hover .qcta .qarrow):not(x-wf) {
  transform: translateX(5px);
}
:where(.workmark):not(x-wf) {
  margin-top: 30px;
        padding: 20px 24px;
        border-left: 3px solid var(--red);
        background: rgba(200, 16, 46, 0.05);
}
:where(.workmark p):not(x-wf) {
  font-size: 14px;
        color: var(--muted);
        line-height: 1.7;
}
:where(.workmark b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(.why-inner):not(x-wf) {
  justify-content: flex-start;
        gap: clamp(1.5rem, 3.4vh, 2.75rem);
}
:where(.why-head):not(x-wf) {
  display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        gap: clamp(32px, 5vw, 90px);
        align-items: end;
}
:where(.why-head h2):not(x-wf) {
  max-width: 20ch;
        margin-top: 14px;
}
:where(.why-head-right):not(x-wf) {
  display: flex;
        flex-direction: column;
        gap: 10px;
        padding-bottom: 4px;
}
:where(.why-sub):not(x-wf) {
  font-size: clamp(13px, 1.1vw, 15px);
        color: var(--muted);
        line-height: 1.65;
        max-width: 52ch;
}
:where(.why-note):not(x-wf) {
  font-size: clamp(13px, 1.1vw, 15px);
        color: var(--muted);
        line-height: 1.65;
        max-width: 52ch;
}
:where(.why-note b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(.why-note em):not(x-wf) {
  font-family: var(--serif);
        font-style: italic;
        color: var(--red-text);
        font-weight: 500;
}
:where(.why-grid):not(x-wf) {
  flex: 1;
        min-height: 0;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: calc(var(--dot) * 2);
}
:where(.wbox):not(x-wf) {
  position: relative;
        display: flex;
        flex-direction: column;
        padding: clamp(1.25rem, 1.9vw, 2.25rem) clamp(1.25rem, 1.8vw, 2.25rem);
}
:where(.wbox:nth-child(2)):not(x-wf) {
  margin-top: calc(var(--dot) * 2);
}
:where(.wbox:nth-child(3)):not(x-wf) {
  margin-top: calc(var(--dot) * 4);
}
:where(.wbox):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: var(--snap-inset, 0);
        pointer-events: none;
        background: radial-gradient(
          120% 110% at 14% 0%,
          rgba(200, 16, 46, 0.12),
          rgba(200, 16, 46, 0.04) 50%,
          transparent 75%
        );
        opacity: 0;
        transition: opacity 0.5s;
}
:where(.wbox > *):not(x-wf) {
  position: relative;
        z-index: 1;
}
:where(.wrow):not(x-wf) {
  display: flex;
        align-items: center;
        gap: clamp(14px, 1.4vw, 26px);
        margin-bottom: clamp(10px, 1.6svh, 16px);
}
:where(.wnum):not(x-wf) {
  flex: none;
        font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(30px, calc(1.2vw + 1.7svh), 50px);
        line-height: 0.95;
        color: var(--muted-dim);
        transition: color 0.4s;
}
:where(.wicon):not(x-wf) {
  flex: none;
        margin-left: auto;
        display: block;
        width: clamp(26px, calc(1.4vw + 1.2svh), 40px);
        height: clamp(26px, calc(1.4vw + 1.2svh), 40px);
        color: var(--red-text);
        transition:
          color 0.4s,
          transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(.why-icon-image):not(x-wf) {
  width: 100%;
        height: 100%;
        display: block;
        object-fit: contain;
}
:where(.wh):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(28px, calc(1.1vw + 2svh), 44px);
        color: var(--white);
        line-height: 1.06;
        letter-spacing: -0.01em;
        margin: 0 0 clamp(8px, 1svh, 12px);
        transition: color 0.4s;
}
:where(.wt):not(x-wf) {
  font-size: 11px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--red-text);
        font-weight: 500;
        margin: 0 0 clamp(8px, 1svh, 12px);
}
:where(.wd):not(x-wf) {
  font-size: 13.5px;
        color: var(--muted);
        line-height: 1.6;
        max-width: 52ch;
        transition: color 0.4s;
}
:where(.wbox:hover):not(x-wf)::before {
  opacity: 1;
}
:where(.wbox:hover .wnum):not(x-wf) {
  color: var(--muted);
}
:where(.wbox:hover .wicon):not(x-wf) {
  transform: translateX(4px);
}
.js-ready #why .why-head,
.js-ready #why .wbox {
  opacity: 0;
        transform: translateY(22px);
        transition:
          opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
#why .why-head.card-on,
#why .wbox.card-on,
#why.dots-lit .why-head,
#why.dots-lit .wbox {
  opacity: 1;
        transform: none;
}
@media (prefers-reduced-motion: reduce) {
:where(#why .why-head):not(x-wf),
:where(#why .wbox):not(x-wf) {
  transition: none !important;
          transform: none !important;
}
}
@media (max-width: 991.98px) {
:where(.why-head):not(x-wf) {
  grid-template-columns: 1fr;
          gap: 18px;
          align-items: start;
}
:where(.why-grid):not(x-wf) {
  gap: calc(var(--dot) * 1.5);
}
:where(.wbox:nth-child(2)):not(x-wf),
:where(.wbox:nth-child(3)):not(x-wf) {
  margin-top: 0;
}
}
:where(#contact .inner):not(x-wf) {
  justify-content: center;
        text-align: center;
}
:where(.cta-block):not(x-wf) {
  max-width: 720px;
        margin: 0 auto;
}
:where(.cta-block .eyebrow):not(x-wf) {
  justify-content: center;
        margin-bottom: 26px;
}
:where(.cta-block h2):not(x-wf) {
  font-size: clamp(52px, 7vw, 104px);
        line-height: 1.02;
}
:where(.cta-body):not(x-wf) {
  font-size: clamp(15px, 1.4vw, 18px);
        color: var(--muted);
        line-height: 1.85;
        max-width: 54ch;
        margin: 26px auto 38px;
}
:where(.cta-note):not(x-wf) {
  font-family: var(--serif);
        font-style: italic;
        color: var(--muted-dim);
        font-size: 14px;
        margin-top: 24px;
}
:where(.site-footer):not(x-wf) {
  flex: none;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 18px 28px;
        padding: 30px 0;
        margin: 0 calc(-1 * var(--pad-x)); 
        padding-inline: var(--pad-x);
        
        background: transparent;
        margin-top: auto;
}
@media (prefers-reduced-motion: reduce) {
:where(.site-footer):not(x-wf)::before {
  opacity: 1;
          transition: none;
}
}
:where(.site-footer > *):not(x-wf) {
  position: relative;
        z-index: 1;
}
:where(.site-footer .brand):not(x-wf),
:where(.site-footer .brand .eight):not(x-wf),
:where(.site-footer .brand small):not(x-wf) {
  color: #fff;
}
:where(.f-links):not(x-wf) {
  display: flex;
        gap: 24px;
        list-style: none;
        flex-wrap: wrap;
}
:where(.f-links a):not(x-wf) {
  font-size: 11px;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.8);
        transition: color 0.2s;
}
:where(.f-links a:hover):not(x-wf) {
  color: #fff;
}
:where(.f-copy):not(x-wf) {
  font-size: 11px;
        color: rgba(255, 255, 255, 0.7);
        max-width: 44ch;
        line-height: 1.6;
}
:where(.booking-overlay):not(x-wf) {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  background: rgba(5, 5, 7, 0.84);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  color: #f7f4ee;
}
:where(.booking-dialog):not(x-wf) {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, 0.82fr) minmax(420px, 1.18fr);
  width: min(1080px, 100%);
  height: min(720px, calc(100svh - 48px));
  max-height: 88svh;
  overflow: hidden;
  background: #0a0a0b;
  border: 1px solid rgba(247, 244, 238, 0.18);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.55);
}
:where(.booking-info):not(x-wf) {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  padding: clamp(32px, 4vw, 56px);
  overflow: auto;
  border-right: 1px solid rgba(247, 244, 238, 0.16);
  background-image: radial-gradient(
    circle at 1px 1px,
    rgba(200, 16, 46, 0.22) 1px,
    transparent 1.5px
  );
  background-size: 20px 20px;
}
:where(.booking-copy):not(x-wf) {
  margin-block: auto;
}
:where(.booking-eyebrow):not(x-wf) {
  margin-bottom: 16px;
  color: #ef526d;
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
:where(.booking-title):not(x-wf) {
  max-width: 11ch;
  margin: 0 0 22px;
  color: #f7f4ee;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: -0.025em;
}
:where(.booking-title-emphasis):not(x-wf) {
  color: #d70c30;
  font-weight: 500;
}
:where(.booking-description):not(x-wf) {
  max-width: 38ch;
  margin: 0;
  color: #aaa6aa;
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
}
:where(.booking-points):not(x-wf) {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 32px;
}
:where(.booking-point):not(x-wf) {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #c9c5c8;
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  line-height: 1.4;
}
:where(.booking-point-mark):not(x-wf) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: none;
  border: 1px solid rgba(215, 12, 48, 0.65);
  border-radius: 50%;
  color: #ef526d;
  font-size: 12px;
}
:where(.booking-fallback):not(x-wf) {
  margin-top: 24px;
  color: #aaa6aa;
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  text-underline-offset: 3px;
}
:where(.booking-embed):not(x-wf) {
  position: relative;
  min-width: 0;
  min-height: 0;
  background: #fff;
}
:where(.booking-frame):not(x-wf) {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
:where(.booking-loading):not(x-wf) {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #777;
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
:where(.booking-close):not(x-wf) {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  background: rgba(8, 8, 9, 0.72);
  color: #fff;
  cursor: pointer;
}
:where(.booking-close-glyph):not(x-wf) {
  display: block;
  font-family: "DM Sans", sans-serif;
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
}
@media (max-width: 767px) {
:where(.booking-overlay):not(x-wf) {
  align-items: stretch;
    padding: 12px;
}
:where(.booking-dialog):not(x-wf) {
  display: block;
    width: 100%;
    height: calc(100svh - 24px);
    max-height: none;
}
:where(.booking-info):not(x-wf) {
  display: none;
}
:where(.booking-embed):not(x-wf) {
  width: 100%;
    height: 100%;
}
:where(.booking-close):not(x-wf) {
  top: 12px;
    right: 12px;
}
}
:where(#dotfield):not(x-wf) {
  position: fixed;
        inset: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        z-index: 1;
}
:where(.section > .inner):not(x-wf) {
  position: relative;
        z-index: 2;
}
:where(.site-footer):not(x-wf) {
  position: relative;
        z-index: 2;
}
:where(#fieldtint):not(x-wf) {
  position: fixed;
        inset: 0;
        z-index: 0;
        pointer-events: none;
        opacity: var(--redness, 0);
        background: radial-gradient(
          135% 130% at 82% -8%,
          #d11430 0%,
          #93091f 48%,
          #480710 100%
        );
}
:where(.glowfield):not(x-wf) {
  position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        height: 80vh;
        z-index: 1;
        pointer-events: none;
        background: radial-gradient(
          72% 100% at 50% 120%,
          var(--red-glow),
          transparent 72%
        );
        opacity: 0;
        transition:
          opacity 0.8s ease,
          filter 0.8s ease;
}
.glow--off {
  opacity: 0;
}
.glow--soft {
  opacity: 0.55;
}
.glow--bold {
  opacity: 0.9;
        filter: brightness(1.15) saturate(1.08);
}
.glow--deep {
  opacity: 0.6;
        filter: hue-rotate(-6deg) brightness(0.8) saturate(1.15);
}
:where(.nav-toggle):not(x-wf) {
  display: none;
        background: none;
        border: 0;
        color: inherit;
        font: inherit;
        cursor: pointer;
        padding: 12px 8px;
        margin-left: 4px;
        align-items: center;
}
:where(.nav-toggle .bars):not(x-wf) {
  display: inline-block;
        width: 20px;
        height: 2px;
        background: currentColor;
        position: relative;
        transition: background 0.2s ease;
}
:where(.nav-toggle .bars):not(x-wf)::before,
:where(.nav-toggle .bars):not(x-wf)::after {
  content: "";
        position: absolute;
        left: 0;
        width: 20px;
        height: 2px;
        background: currentColor;
        transition: transform 0.2s ease, top 0.2s ease;
}
:where(.nav-toggle .bars):not(x-wf)::before {
  top: -6px;
}
:where(.nav-toggle .bars):not(x-wf)::after {
  top: 6px;
}
:where(#nav.nav-open .nav-toggle .bars):not(x-wf) {
  background: transparent;
}
:where(#nav.nav-open .nav-toggle .bars):not(x-wf)::before {
  top: 0;
        transform: rotate(45deg);
}
:where(#nav.nav-open .nav-toggle .bars):not(x-wf)::after {
  top: 0;
        transform: rotate(-45deg);
}
:where(#nav.nav-open):not(x-wf) {
  background-color: #9a0c1f;
}
@media (max-width: 991.98px) {
:where(#nav .brand):not(x-wf),
:where(#nav .brand small):not(x-wf) {
  font-size: 22px;
}
:where(#nav .brand small):not(x-wf) {
  display: inline;
          margin-left: 6px;
}
:where(#nav .nav-cta):not(x-wf) {
  display: none;
          padding: 9px 14px;
}
:where(#nav .nav-toggle):not(x-wf) {
  display: inline-flex;
}
:where(#nav .nav-links):not(x-wf) {
  display: none;
          position: fixed;
          top: var(--nav-h, 66px);
          left: 0;
          right: 0;
          bottom: 0;
          z-index: 60;
          margin: 0;
          padding: 7vh 28px 28px;
          flex-direction: column;
          gap: 0;
          list-style: none;
          background: #9a0c1f;
}
:where(#nav.nav-open .nav-links):not(x-wf) {
  display: flex;
}
:where(#nav.nav-open .nav-links li):not(x-wf) {
  margin: 0;
}
:where(#nav.nav-open .nav-links a:not(.nav-menu-cta)):not(x-wf) {
  display: block;
          padding: 16px 0;
          font-size: 21px;
          letter-spacing: 0.01em;
          color: #f4f1eb;
          border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
:where(#nav .nav-links > li:has(.nav-menu-cta)):not(x-wf) {
  width: 100%;
          margin-top: auto;
}
:where(#nav .nav-menu-cta):not(x-wf) {
  display: flex;
          width: 100%;
          min-height: 64px;
          margin-top: auto;
          align-items: center;
          justify-content: center;
          padding: 18px 24px;
          border: 1px solid #fff;
          border-radius: 999px;
          background: #fff;
          color: #9a0c1f;
          font-size: 14px;
          font-weight: 600;
          letter-spacing: 0.08em;
          line-height: 1.2;
          text-align: center;
          text-transform: uppercase;
}
}
:where(#hero .inner):not(x-wf) {
  position: relative;
        z-index: 2;
        padding-block: 0;
}
:where(#hero .hero-modern):not(x-wf) {
  position: relative;
        height: 100%;
        min-height: 0;
}
:where(#hero .hero-copy):not(x-wf) {
  position: absolute;
        left: 0;
        top: clamp(84px, 11svh, 124px);
        bottom: clamp(158px, 24svh, 250px);
        width: min(54%, 640px);
        z-index: 3;
        display: flex;
        flex-direction: column;
        justify-content: center;
}
:where(#hero .hero-eyebrow):not(x-wf) {
  margin-bottom: clamp(20px, 3svh, 30px);
}
:where(#hero h1):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(44px, 5.6vw, 86px);
        line-height: 0.98;
        letter-spacing: -0.02em;
        max-width: 15ch;
        color: var(--white);
}
:where(#hero h1 em):not(x-wf) {
  font-style: italic;
        color: #fff;
}
:where(#hero .hero-lede):not(x-wf) {
  margin-top: clamp(18px, 2.6svh, 26px);
        font-size: clamp(16px, 1.4vw, 19px);
        font-weight: 300;
        color: var(--muted);
        max-width: 44ch;
        line-height: 1.7;
}
:where(#hero .hero-lede b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(#hero .hero-actions):not(x-wf) {
  display: flex;
        gap: 14px;
        margin-top: clamp(26px, 4svh, 40px);
        flex-wrap: wrap;
}
:where(#hero .hero-media):not(x-wf) {
  position: absolute;
        top: 0;
        bottom: 0;
        
        right: 0;
        left: round(52vw, var(--dot));
        z-index: 1;
}
:where(#hero .hero-tile):not(x-wf) {
  position: absolute;
        overflow: hidden;
        background: var(--panel);
}
:where(#hero .tile-back):not(x-wf) {
  right: 0;
        top: round(8svh, var(--dot));
        width: round(24vw, var(--dot));
        height: round(38svh, var(--dot));
        z-index: 1;
}
:where(#hero .tile-front):not(x-wf) {
  left: round(3vw, var(--dot));
        top: round(26svh, var(--dot));
        width: round(27vw, var(--dot));
        height: round(52svh, var(--dot));
        z-index: 2;
}
#hero .himg,
:where(#hero .timg):not(x-wf) {
  position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        filter: grayscale(1) contrast(1.06) brightness(0.82);
}
#hero .himg {
  opacity: 0;
        transform: scale(1.06);
        transition:
          opacity 0.9s ease,
          transform 7s ease;
}
#hero .himg.active {
  opacity: 1;
        transform: scale(1);
}
:where(#hero .hero-tile):not(x-wf)::after {
  content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background:
          linear-gradient(180deg, rgba(11, 11, 12, 0.5) 0%, transparent 24%),
          linear-gradient(0deg, rgba(120, 10, 26, 0.42), transparent 48%);
}
:where(#hero .hero-index):not(x-wf) {
  position: absolute;
        left: 0;
        right: auto;
        width: min(80%, 820px);
        bottom: clamp(30px, 6svh, 62px);
        z-index: 4;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
}
:where(#hero .hero-index .hx):not(x-wf) {
  position: relative;
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: baseline;
        column-gap: 11px;
        row-gap: 8px;
        padding: clamp(15px, 2.2svh, 20px) clamp(16px, 1.7vw, 26px)
          clamp(4px, 1svh, 8px);
}
:where(#hero .hero-index .hx + .hx):not(x-wf) {
  border-left: 1px solid rgba(255, 255, 255, 0.16);
}
:where(#hero .hero-index .hx):not(x-wf)::before {
  content: "";
        position: absolute;
        top: -1px;
        left: 0;
        width: 0;
        height: 2px;
        background: #fff;
        transition: width 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
#hero .hero-index .hx.on::before {
  width: 100%;
}
:where(#hero .hero-index .hx):not(x-wf)::after {
  content: "";
        position: absolute;
        right: 0;
        bottom: 0;
        width: 10px;
        height: 10px;
        border-right: 1px solid rgba(255, 255, 255, 0.38);
        border-bottom: 1px solid rgba(255, 255, 255, 0.38);
        pointer-events: none;
        transition:
          width 0.5s cubic-bezier(0.22, 1, 0.36, 1),
          height 0.5s cubic-bezier(0.22, 1, 0.36, 1),
          border-color 0.3s;
}
#hero .hero-index .hx.on::after {
  width: 34px;
        height: 34px;
        border-color: rgba(255, 255, 255, 0.9);
}
:where(#hero .hero-index .hx .hi):not(x-wf) {
  grid-column: 1;
        font-family: var(--serif);
        font-style: italic;
        font-weight: 500;
        font-size: clamp(19px, 1.7vw, 25px);
        line-height: 1;
        color: rgba(255, 255, 255, 0.34);
        transition: color 0.35s;
}
#hero .hero-index .hx.on .hi {
  color: #fff;
}
:where(#hero .hero-index .hx .hl):not(x-wf) {
  grid-column: 2;
        font-size: 10px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.88);
        font-weight: 500;
}
:where(#hero .hero-index .hx .hv):not(x-wf) {
  grid-column: 1 / -1;
        font-size: clamp(12.5px, 1vw, 14px);
        color: var(--muted);
        line-height: 1.5;
        transition: color 0.3s;
}
:where(#hero .hero-index .hx .hv b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
#hero .hero-index .hx.on .hv {
  color: rgba(245, 243, 240, 0.92);
}
@media (min-width: 992px) and (max-height: 780px) {
:where(#hero .hero-copy):not(x-wf) {
  position: static;
          width: min(58%, 640px);
          padding-top: clamp(84px, 12svh, 120px);
          padding-bottom: 24px;
}
:where(#hero .hero-index):not(x-wf) {
  position: static;
          margin-top: 26px;
          right: 0;
}
:where(#hero .hero-media):not(x-wf) {
  display: none;
}
}
@media (max-width: 991.98px) {
:where(#hero .hero-modern):not(x-wf) {
  display: flex;
          height: auto;
          min-height: 0;
          flex: none;
          flex-direction: column;
          justify-content: center;
          gap: 26px;
          padding-top: 104px;
}
:where(#hero .hero-copy):not(x-wf) {
  position: static;
          width: 100%;
}
:where(#hero .hero-media):not(x-wf) {
  position: static;
          width: 100%;
          height: clamp(200px, 34svh, 300px);
          right: 0;
          left: auto;
}
:where(#hero .tile-back):not(x-wf) {
  display: none;
}
:where(#hero .tile-front):not(x-wf) {
  position: static;
          left: auto;
          top: auto;
          width: 100%;
          height: 100%;
}
:where(#hero .hero-index):not(x-wf) {
  position: static;
          right: 0;
          width: 100%;
          grid-template-columns: 1fr;
          gap: 0;
}
:where(#hero .hero-index .hx + .hx):not(x-wf) {
  border-left: 0;
          border-top: 1px solid rgba(255, 255, 255, 0.16);
}
}
@media (max-width: 479.98px) {
:where(#hero .hero-copy):not(x-wf) {
  align-items: center;
          text-align: center;
}
:where(#hero h1):not(x-wf),
:where(#hero .hero-lede):not(x-wf) {
  margin-right: auto;
          margin-left: auto;
          text-align: center;
}
}
:where(#engagements .eng-figside):not(x-wf) {
  position: relative;
        display: flex;
        min-height: 0;
        padding: 0;
}
:where(#engagements .engx-fig):not(x-wf) {
  position: absolute;
        top: clamp(4px, 2svh, 22px);
        bottom: calc(-1 * var(--slide-pad-y));
        
        left: 0;
        right: clamp(14px, 2.4vw, 40px);
        overflow: hidden;
        
        border-radius: 200rem 200rem 0 0;
}
:where(#engagements .engx-fig img):not(x-wf) {
  position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: 0;
        transform: scale(1.04);
        filter: grayscale(0.92) contrast(1.03) brightness(1);
        transition:
          opacity 0.8s ease,
          transform 1.3s cubic-bezier(0.22, 1, 0.36, 1);
}
#engagements .engx-fig img.on {
  opacity: 1;
        transform: scale(1);
}
:where(#engagements .engx-fig):not(x-wf)::after {
  content: "";
        position: absolute;
        inset: 0;
        background:
          linear-gradient(180deg, rgba(11, 11, 12, 0.15), transparent 40%),
          linear-gradient(0deg, rgba(11, 11, 12, 0.82), transparent 55%);
}
:where(#engagements .engx-figcap):not(x-wf) {
  position: absolute;
        left: clamp(18px, 10%, 56px);
        right: clamp(18px, 10%, 56px);
        bottom: 16px;
        z-index: 1;
        font-size: 12.5px;
        line-height: 1.55;
        letter-spacing: 0.02em;
        color: rgba(245, 243, 240, 0.92);
        text-align: center;
}
:where(#engagements .engx-figcap b):not(x-wf) {
  color: var(--red-text);
        font-weight: 500;
        margin-right: 8px;
}
:where(#engagements .eng-right):not(x-wf) {
  display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: 0;
        padding: var(--slide-pad-y) 0;
        gap: clamp(12px, 2.2svh, 24px);
}
:where(#engagements .eng-head):not(x-wf) {
  flex: none;
}
:where(#engagements .eng-head .display):not(x-wf) {
  max-width: 17ch;
        margin-top: 12px;
}
:where(#engagements .eng-sub):not(x-wf) {
  margin-top: 12px;
        font-size: clamp(13px, 1.1vw, 15.5px);
        color: var(--muted);
        line-height: 1.65;
        max-width: 46ch;
}
:where(#engagements .eng-sub b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(#engagements .engx-col):not(x-wf) {
  display: flex;
        flex-direction: column;
        min-height: 0;
        
        gap: clamp(8px, 1.4svh, 16px);
        
        margin-right: calc(-1 * var(--pad-x));
}
:where(#engagements .engx-label):not(x-wf) {
  display: flex;
        align-items: baseline;
        justify-content: space-between;
        padding: 0 var(--pad-x) 12px 0;
        font-size: 10px;
        letter-spacing: 0.24em;
        text-transform: uppercase;
        color: var(--muted-dim);
        font-weight: 500;
}
:where(#engagements .engx-label .engx-count):not(x-wf) {
  font-family: var(--serif);
        font-style: italic;
        font-size: 13px;
        letter-spacing: 0.06em;
        text-transform: none;
        color: var(--muted);
}
:where(#engagements .engx):not(x-wf) {
  position: relative;
}
:where(#engagements .engx-head):not(x-wf) {
  width: 100%;
        display: flex;
        align-items: center;
        gap: clamp(0.8rem, 1.2vw, 1.2rem);
        background: none;
        border: 0;
        color: inherit;
        font: inherit;
        text-align: left;
        cursor: pointer;
        padding: clamp(12px, 1.8svh, 20px) var(--pad-x) clamp(12px, 1.8svh, 20px) 0;
}
:where(#engagements .engx-num):not(x-wf) {
  flex: none;
        width: 1.7em;
        font-size: 11px;
        letter-spacing: 0.18em;
        color: var(--muted-dim);
        font-weight: 500;
        transition: color 0.35s;
}
:where(#engagements .engx.engx-open .engx-num):not(x-wf),
:where(#engagements .engx-head:hover .engx-num):not(x-wf) {
  color: var(--red-text);
}
:where(#engagements .engx-name):not(x-wf) {
  flex: 1;
        font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(21px, calc(1vw + 1.4svh), 31px);
        line-height: 1.08;
        letter-spacing: -0.005em;
        color: var(--white);
        transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(#engagements .engx-head:hover .engx-name):not(x-wf) {
  transform: translateX(6px);
}
:where(#engagements .engx-plus):not(x-wf) {
  flex: none;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: var(--sw) solid var(--strokeColor);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: relative;
        transition:
          background 0.4s,
          border-color 0.4s,
          transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(#engagements .engx-plus-icon):not(x-wf) {
  display: block;
        width: 14px;
        height: 14px;
        object-fit: contain;
        pointer-events: none;
}
:where(#engagements .engx-head:hover .engx-plus):not(x-wf) {
  border-color: var(--red);
}
:where(#engagements .engx-plus.engx-plus-open):not(x-wf) {
  background: var(--red);
        border-color: var(--red);
        transform: rotate(45deg);
}
:where(#engagements .engx-body):not(x-wf) {
  display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(#engagements .engx-body.engx-body-open):not(x-wf) {
  grid-template-rows: 1fr;
}
:where(#engagements .engx-bwrap):not(x-wf) {
  overflow: hidden;
        min-height: 0;
}
:where(#engagements .engx-binner):not(x-wf) {
  padding: 2px var(--pad-x) clamp(16px, 2.4svh, 26px) 0;
        opacity: 0;
        transform: translateY(8px);
        transition:
          opacity 0.5s ease 0.08s,
          transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.08s;
}
:where(#engagements .engx-binner.engx-binner-open):not(x-wf) {
  opacity: 1;
        transform: none;
}
:where(#engagements .engx-vehicles):not(x-wf) {
  list-style: none;
        display: flex;
        flex-wrap: wrap;
        gap: clamp(15px, 2vw, 26px) clamp(18px, 2.2vw, 30px);
        max-width: 720px;
}
:where(#engagements .engx-vehicles li):not(x-wf) {
  flex: 1 1 210px;
        min-width: 0;
}
:where(#engagements .ev):not(x-wf) {
  display: grid;
        grid-template-columns: auto 1fr;
        column-gap: 13px;
        align-content: start;
}
:where(#engagements .ev-ic):not(x-wf) {
  grid-row: 1 / span 3;
        align-self: start;
        margin-top: 1px;
        color: var(--red-text);
}
:where(#engagements .ev-ic svg):not(x-wf) {
  display: block;
        width: 22px;
        height: 22px;
        stroke-width: 1.75;
}
:where(#engagements .ev-name):not(x-wf) {
  display: block;
        font-size: 14.5px;
        font-weight: 500;
        letter-spacing: 0.01em;
        color: var(--white);
}
:where(#engagements .ev-desc):not(x-wf) {
  display: block;
        margin-top: 4px;
        font-size: 12.5px;
        line-height: 1.55;
        color: var(--muted);
}
:where(#engagements .engx-go):not(x-wf) {
  grid-column: 2;
        justify-self: start;
        display: inline-flex;
        align-items: center;
        gap: 9px;
        margin-top: 10px;
        font-size: 11px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--red-text);
        transition: color 0.25s;
}
:where(#engagements .engx-go .engx-arrow):not(x-wf) {
  transition: transform 0.35s;
}
:where(#engagements .ev:hover .engx-go):not(x-wf),
:where(#engagements .ev:focus-visible .engx-go):not(x-wf) {
  color: var(--white);
}
:where(#engagements .ev:hover .engx-arrow):not(x-wf),
:where(#engagements .ev:focus-visible .engx-arrow):not(x-wf) {
  transform: translateX(5px);
}
:where(#engagements .engx-col .exclude):not(x-wf) {
  margin-top: clamp(16px, 2.6svh, 28px);
        padding-top: 18px;
        padding-right: var(--pad-x);
}
:where(#engagements .eng-wwork):not(x-wf) {
  display: inline-flex;
        align-items: center;
        align-self: flex-start;
        gap: 10px;
        margin-top: clamp(14px, 2.2svh, 22px);
        font-size: 11px;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--muted);
        transition: color 0.25s;
}
:where(#engagements .eng-wwork .ej-arrow):not(x-wf) {
  color: var(--red-text);
        transition: transform 0.35s;
}
:where(#engagements .eng-wwork:hover):not(x-wf) {
  color: var(--white);
}
:where(#engagements .eng-wwork:hover .ej-arrow):not(x-wf) {
  transform: translateX(5px);
}
.js-ready #engagements .eng-head,
.js-ready #engagements .engx-fig,
.js-ready #engagements .engx {
  opacity: 0;
        transform: translateY(24px);
        transition:
          opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
#engagements .eng-head.card-on,
#engagements .engx-fig.card-on,
#engagements .engx.card-on,
#engagements.dots-lit .eng-head,
#engagements.dots-lit .engx-fig,
#engagements.dots-lit .engx {
  opacity: 1;
        transform: none;
}
@media (prefers-reduced-motion: reduce) {
:where(#engagements .eng-head):not(x-wf),
:where(#engagements .engx-fig):not(x-wf),
:where(#engagements .engx):not(x-wf) {
  transition: none !important;
          transform: none !important;
}
}
@media (max-width: 991.98px) {
:where(#engagements .eng-figside):not(x-wf) {
  padding-bottom: 0;
}
:where(#engagements .engx-fig):not(x-wf) {
  position: relative;
          inset: auto;
          flex: none;
          height: 220px;
          max-width: 460px;
}
:where(#engagements .engx-col):not(x-wf) {
  margin-right: 0;
}
:where(#engagements .engx-head):not(x-wf),
:where(#engagements .engx-label):not(x-wf),
:where(#engagements .engx-col .exclude):not(x-wf) {
  padding-right: 0;
}
:where(#engagements .engx-binner):not(x-wf) {
  padding-right: 0;
}
}
@media (max-width: 767.98px) {
:where(#engagements .eng-figside):not(x-wf) {
  display: none;
}
}
:where(#work .proc):not(x-wf) {
  position: relative;
        height: 100%;
        min-height: 0;
        display: flex;
        flex-direction: column;
        gap: 4svh;
}
:where(#work .pcard):not(x-wf) {
  position: relative;
        flex: 1 1 0;
        min-height: 0;
        width: round(min(57vw, 760px), var(--dot)); 
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: clamp(14px, 2svh, 26px) clamp(22px, 2.2vw, 38px);
}
:where(#work .pcard):not(x-wf)::before {
  content: "";
        position: absolute;
        inset: var(--snap-inset, 0);
        pointer-events: none;
        background: radial-gradient(
          90% 130% at 0% 50%,
          rgba(200, 16, 46, 0.14),
          rgba(200, 16, 46, 0.04) 55%,
          transparent 78%
        );
        opacity: 0;
        transition: opacity 0.5s;
}
:where(#work .pcard:hover):not(x-wf)::before {
  opacity: 1;
}
:where(#work .prow):not(x-wf) {
  display: flex;
        align-items: center;
        gap: clamp(14px, 1.4vw, 26px);
        margin-bottom: clamp(6px, 1svh, 12px);
}
:where(#work .p1):not(x-wf) {
  margin-left: 0;
        z-index: 1;
}
:where(#work .p2):not(x-wf) {
  margin-left: round(14vw, var(--dot));
        z-index: 2;
}
:where(#work .p3):not(x-wf) {
  margin-left: round(28vw, var(--dot));
        z-index: 3;
}
:where(#work .p4):not(x-wf) {
  margin-left: round(42vw, var(--dot));
        z-index: 4;
}
:where(#work .pnum):not(x-wf) {
  flex: none;
        font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(30px, calc(1.2vw + 1.7svh), 50px);
        line-height: 0.95;
        color: var(--muted-dim);
        transition: color 0.4s;
}
:where(#work .pcard:hover .pnum):not(x-wf) {
  color: var(--muted);
}
:where(#work .picon):not(x-wf) {
  flex: none;
        margin-left: auto;
        display: block;
        width: clamp(26px, calc(1.4vw + 1.2svh), 40px);
        height: clamp(26px, calc(1.4vw + 1.2svh), 40px);
        color: var(--red);
        transition:
          color 0.4s,
          transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
:where(#work .process-icon-image):not(x-wf) {
  width: 100%;
        height: 100%;
        display: block;
        object-fit: contain;
}
:where(#work .pcard:hover .picon):not(x-wf) {
  transform: translateX(4px);
}
:where(#work .ptitle):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(28px, calc(1.1vw + 2svh), 44px);
        line-height: 1.06;
        letter-spacing: -0.01em;
        color: var(--white);
        margin: 0;
}
:where(#work .pkick):not(x-wf) {
  font-size: 11px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--red-text);
        font-weight: 500;
        margin: 0 0 clamp(8px, 1svh, 12px);
}
:where(#work .pdesc):not(x-wf) {
  font-size: 13.5px;
        line-height: 1.6;
        color: var(--muted);
        max-width: 52ch;
}
:where(#work .pdesc b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(#work .pcard .qcta):not(x-wf) {
  margin-left: 0;
        align-self: flex-start;
        margin-top: clamp(10px, 1.6svh, 16px);
        transform: translateY(8px);
}
:where(#work .pcard:hover .qcta):not(x-wf) {
  opacity: 1;
        transform: translateY(0);
}
:where(#work .pcard:hover .qcta .qarrow):not(x-wf) {
  transform: translateX(5px);
}
:where(#work .proc-intro):not(x-wf) {
  position: absolute;
        left: 0;
        bottom: clamp(4px, 1.6svh, 18px);
        width: min(27.5%, 415px);
        z-index: 5;
}
:where(#work .proc-intro .display):not(x-wf) {
  line-height: 1.02;
        margin-top: 12px;
}
:where(#work .proc-sub):not(x-wf) {
  margin-top: 12px;
        font-size: clamp(13.5px, 1.1vw, 15.5px);
        line-height: 1.6;
        color: var(--muted);
}
:where(#work .proc-sub b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(#work .proc-cta):not(x-wf) {
  display: inline-flex;
        align-items: center;
        gap: 9px;
        margin-top: 16px;
        font-size: 11px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--red-text);
        transition: color 0.25s;
}
:where(#work .proc-cta .pca):not(x-wf) {
  transition: transform 0.35s;
}
:where(#work .proc-cta:hover):not(x-wf) {
  color: var(--white);
}
:where(#work .proc-cta:hover .pca):not(x-wf) {
  transform: translateX(5px);
}
.js-ready #work .pcard,
.js-ready #work .proc-intro {
  opacity: 0;
        transform: translateY(24px);
        transition:
          opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
#work .pcard.card-on,
#work .proc-intro.card-on,
#work.dots-lit .pcard,
#work.dots-lit .proc-intro {
  opacity: 1;
        transform: none;
}
@media (prefers-reduced-motion: reduce) {
:where(#work .pcard):not(x-wf),
:where(#work .proc-intro):not(x-wf) {
  transition: none !important;
          transform: none !important;
}
}
@media (min-width: 992px) and (max-height: 948px) {
:where(#work .proc):not(x-wf) {
  display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          grid-template-rows: auto repeat(2, minmax(220px, auto));
          gap: clamp(16px, 2.4svh, 28px) calc(var(--dot) * 2);
          height: auto;
          min-height: 0;
          padding: var(--slide-pad-y) 0;
}
:where(#work .pcard):not(x-wf) {
  position: static;
          width: 100%;
          min-width: 0;
          min-height: 220px;
          margin-left: 0 !important;
}
:where(#work .proc-intro):not(x-wf) {
  position: static;
          width: 100%;
          grid-column: 1 / -1;
          grid-row: 1;
          margin-bottom: 8px;
}
:where(#work .p1):not(x-wf) {
  grid-column: 1;
          grid-row: 2;
}
:where(#work .p2):not(x-wf) {
  grid-column: 2;
          grid-row: 2;
}
:where(#work .p3):not(x-wf) {
  grid-column: 1;
          grid-row: 3;
}
:where(#work .p4):not(x-wf) {
  grid-column: 2;
          grid-row: 3;
}
}
@media (max-width: 991.98px) {
:where(#work .proc):not(x-wf) {
  display: flex;
          flex-direction: column;
          justify-content: flex-start;
          gap: clamp(10px, 1.6svh, 16px);
          height: auto;
          min-height: 0;
          padding: var(--slide-pad-y) 0;
}
:where(#work .pcard):not(x-wf) {
  position: static;
          width: 100%;
          margin-left: 0 !important;
}
:where(#work .proc-intro):not(x-wf) {
  position: static;
          width: 100%;
          order: -1;
          margin-bottom: 6px;
}
}
:where(#industries .ind-wrap):not(x-wf) {
  display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
        gap: clamp(16px, 2.6svh, 30px);
}
:where(#industries .ind-head):not(x-wf) {
  display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        gap: clamp(32px, 5vw, 90px);
        align-items: end;
}
:where(#industries .ind-head .display):not(x-wf) {
  max-width: 17ch;
        margin-top: 10px;
}
:where(#industries .ind-head-right):not(x-wf) {
  display: flex;
        flex-direction: column;
        gap: 10px;
        padding-bottom: 4px;
}
:where(#industries .ind-sub):not(x-wf) {
  font-size: clamp(13px, 1.1vw, 15px);
        color: var(--muted);
        line-height: 1.65;
        max-width: 52ch;
}
:where(#industries .ind-welcome):not(x-wf) {
  font-size: clamp(13px, 1.1vw, 15px);
        color: var(--muted);
        line-height: 1.65;
        max-width: 52ch;
}
:where(#industries .ind-welcome b):not(x-wf) {
  color: var(--white);
        font-weight: 500;
}
:where(#industries .ind-welcome em):not(x-wf) {
  font-family: var(--serif);
        font-style: italic;
        color: var(--red-text);
        font-weight: 500;
}
:where(#industries .ind-grid):not(x-wf) {
  flex: 1;
        min-height: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: minmax(0, 1fr);
        gap: calc(var(--dot) * 2);
}
:where(#industries .ind-cell):not(x-wf) {
  position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        gap: 8px;
        padding: clamp(16px, 2.6svh, 30px) clamp(20px, 1.8vw, 34px);
        min-height: 0;
}
:where(#industries .ind-media):not(x-wf) {
  position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        opacity: 0;
        transform: scale(1.06);
        filter: grayscale(0.85) contrast(1.05) brightness(0.6);
        transition:
          opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
          filter 0.65s;
        pointer-events: none;
}
:where(#industries .ind-shade):not(x-wf) {
  position: absolute;
        inset: 0;
        background: linear-gradient(
          180deg,
          rgba(11, 11, 12, 0.55) 0%,
          rgba(11, 11, 12, 0.38) 45%,
          rgba(72, 7, 16, 0.72) 100%
        );
        opacity: 0;
        transition: opacity 0.55s;
        pointer-events: none;
}
:where(#industries .ind-cell):not(x-wf)::after {
  content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: radial-gradient(
          110% 120% at 12% 0%,
          rgba(200, 16, 46, 0.3),
          rgba(200, 16, 46, 0.08) 48%,
          transparent 74%
        );
        opacity: 0;
        transition: opacity 0.55s;
}
:where(#industries .ind-cell > .ind-idx):not(x-wf),
:where(#industries .ind-cell > .ind-cat):not(x-wf),
:where(#industries .ind-cell > .ind-name):not(x-wf),
:where(#industries .ind-cell > .ind-desc):not(x-wf),
:where(#industries .ind-cell > .qcta):not(x-wf) {
  position: relative;
        z-index: 1;
}
:where(#industries .ind-idx):not(x-wf) {
  display: flex;
        align-items: center;
        gap: 14px;
}
:where(#industries .ind-idx i):not(x-wf) {
  font-family: var(--serif);
        font-style: italic;
        font-weight: 500;
        font-size: clamp(17px, 1.9svh, 21px);
        color: var(--red-text);
        letter-spacing: 0.06em;
        transition: color 0.4s;
}
:where(#industries .ind-idx .rule):not(x-wf) {
  flex: none;
        width: 26px;
        height: 1px;
        background: var(--strokeColor);
        transition: background 0.4s;
}
:where(#industries .ind-cat):not(x-wf) {
  font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--red-text);
        font-weight: 500;
        margin-top: 2px;
}
:where(#industries .ind-name):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        
        font-size: clamp(28px, calc(1.1vw + 2svh), 44px);
        line-height: 1.06;
        letter-spacing: -0.01em;
        color: var(--white);
        transition: color 0.4s;
}
:where(#industries .ind-desc):not(x-wf) {
  font-size: 13px;
        color: var(--muted);
        line-height: 1.55;
        max-width: 52ch;
        transition: color 0.4s;
}
:where(#industries .ind-cell .qcta):not(x-wf) {
  margin-left: 0;
        margin-top: auto;
        transform: translateY(8px);
}
:where(#industries .ind-cell:hover .ind-media):not(x-wf),
:where(#industries .ind-cell:focus-visible .ind-media):not(x-wf) {
  opacity: 0.6;
        transform: scale(1);
        filter: grayscale(0.35) contrast(1.05) brightness(0.72);
}
:where(#industries .ind-cell:hover .ind-shade):not(x-wf),
:where(#industries .ind-cell:focus-visible .ind-shade):not(x-wf) {
  opacity: 1;
}
:where(#industries .ind-cell:hover):not(x-wf)::after,
:where(#industries .ind-cell:focus-visible):not(x-wf)::after {
  opacity: 1;
}
:where(#industries .ind-cell:hover .ind-idx i):not(x-wf),
:where(#industries .ind-cell:focus-visible .ind-idx i):not(x-wf) {
  color: #fff;
}
:where(#industries .ind-cell:hover .ind-idx .rule):not(x-wf),
:where(#industries .ind-cell:focus-visible .ind-idx .rule):not(x-wf) {
  background: rgba(255, 255, 255, 0.55);
}
:where(#industries .ind-cell:hover .ind-cat):not(x-wf),
:where(#industries .ind-cell:focus-visible .ind-cat):not(x-wf) {
  color: rgba(255, 255, 255, 0.9);
}
:where(#industries .ind-cell:hover .ind-desc):not(x-wf),
:where(#industries .ind-cell:focus-visible .ind-desc):not(x-wf) {
  color: rgba(255, 255, 255, 0.92);
}
:where(#industries .ind-cell:hover .qcta):not(x-wf),
:where(#industries .ind-cell:focus-visible .qcta):not(x-wf) {
  opacity: 1;
        transform: translateY(0);
}
:where(#industries .ind-cell:hover .qcta .qarrow):not(x-wf),
:where(#industries .ind-cell:focus-visible .qcta .qarrow):not(x-wf) {
  transform: translateX(5px);
}
@media (hover: none) {
:where(#industries .qcta):not(x-wf) {
  opacity: 1;
          transform: none;
}
:where(#industries .ind-media):not(x-wf) {
  opacity: 0.2;
}
}
@media (max-width: 991.98px) {
:where(#industries .ind-head):not(x-wf) {
  grid-template-columns: 1fr;
          gap: 18px;
          align-items: start;
}
}
@media (max-width: 640px) {
:where(#industries .ind-grid):not(x-wf) {
  grid-template-columns: 1fr;
          gap: var(--dot);
}
:where(#industries .ind-cell):not(x-wf) {
  min-height: 150px;
}
}
.js-ready #industries .ind-head-left,
.js-ready #industries .ind-head-right,
.js-ready #industries .ind-cell {
  opacity: 0;
        transform: translateY(22px);
        transition:
          opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
#industries .ind-head-left.card-on,
#industries .ind-head-right.card-on,
#industries .ind-cell.card-on,
#industries.dots-lit .ind-head-left,
#industries.dots-lit .ind-head-right,
#industries.dots-lit .ind-cell {
  opacity: 1;
        transform: none;
}
@media (prefers-reduced-motion: reduce) {
:where(#industries .ind-head-left):not(x-wf),
:where(#industries .ind-head-right):not(x-wf),
:where(#industries .ind-cell):not(x-wf) {
  transition: none !important;
          transform: none !important;
}
}
#contact.bg-redbold .cta-lead {
  color: rgba(255, 255, 255, 0.88);
}
#contact.bg-redbold .display em {
  color: #fff;
}
#contact.bg-redbold .eyebrow {
  color: rgba(255, 255, 255, 0.82);
}
#contact.bg-redbold .eyebrow .rule {
  background: rgba(255, 255, 255, 0.8);
}
:where(#contact .f-links a[aria-disabled="true"]):not(x-wf) {
  opacity: 0.45;
        cursor: default;
}
:where(#contact .cta-block):not(x-wf),
:where(#contact .fit-strip):not(x-wf),
:where(#contact .site-footer):not(x-wf) {
  opacity: 0;
        transform: translateY(24px);
        transition:
          opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}
#contact.settled .cta-block {
  opacity: 1;
        transform: none;
        transition-delay: 0.18s;
}
#contact.settled .fit-strip {
  opacity: 1;
        transform: none;
        transition-delay: 0.36s;
}
#contact.settled .site-footer {
  opacity: 1;
        transform: none;
        transition-delay: 0.52s;
}
@media (prefers-reduced-motion: reduce) {
:where(#contact .cta-block):not(x-wf),
:where(#contact .fit-strip):not(x-wf),
:where(#contact .site-footer):not(x-wf) {
  transition: none;
}
}
:where(#contact .inner):not(x-wf) {
  justify-content: center;
        text-align: center;
}
:where(#contact .cta-block):not(x-wf) {
  max-width: 900px;
        margin: 0 auto;
}
:where(#contact .cta-block .eyebrow):not(x-wf) {
  justify-content: center;
        margin-bottom: 22px;
}
:where(#contact .cta-lead):not(x-wf) {
  font-size: clamp(15px, 1.35vw, 18px);
        line-height: 1.7;
        color: rgba(255, 255, 255, 0.85);
        max-width: 52ch;
        margin: 22px auto clamp(26px, 4svh, 38px);
}
:where(#contact .cta-big):not(x-wf) {
  font-size: 16px;
        font-weight: 700;
        letter-spacing: 0.04em;
        padding: 23px 50px;
}
:where(#contact .cta-big .arrow):not(x-wf) {
  font-size: 18px;
}
:where(#contact .fit-strip):not(x-wf) {
  display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: clamp(16px, 2.6vw, 40px);
        max-width: 1040px;
        margin: clamp(26px, 4.6svh, 52px) auto 0;
        padding-top: clamp(20px, 3svh, 30px);
        text-align: center;
        border-top: 1px solid rgba(255, 255, 255, 0.24);
}
:where(#contact .fit):not(x-wf) {
  display: flex;
        flex-direction: column;
        align-items: center;
        gap: 5px;
}
:where(#contact .fit .fv):not(x-wf) {
  font-family: var(--serif);
        font-weight: 700;
        font-size: clamp(21px, 2vw, 31px);
        line-height: 1.05;
        color: #fff;
        letter-spacing: -0.01em;
}
:where(#contact .fit .fl):not(x-wf) {
  font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.78);
        font-weight: 500;
}
:where(#contact .fit .fd):not(x-wf) {
  font-size: 12px;
        line-height: 1.5;
        color: rgba(255, 255, 255, 0.68);
        margin-top: 2px;
}
:where(#contact .f-social):not(x-wf) {
  display: flex;
        align-items: center;
        gap: 12px;
        list-style: none;
}
:where(#contact .f-social a):not(x-wf) {
  display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, 0.32);
        color: #fff;
        transition:
          background 0.25s,
          border-color 0.25s,
          transform 0.25s;
}
:where(#contact .f-social a:hover):not(x-wf) {
  background: rgba(255, 255, 255, 0.14);
        border-color: rgba(255, 255, 255, 0.7);
        transform: translateY(-2px);
}
:where(#contact .social-icon-image):not(x-wf) {
  width: 17px;
        height: 17px;
        display: block;
        object-fit: contain;
}
@media (max-width: 760px) {
:where(#contact .fit-strip):not(x-wf) {
  grid-template-columns: repeat(2, 1fr);
          gap: 22px 18px;
          margin-bottom: 56px;
          padding-top: 0;
          border-top: 0;
}
:where(#contact .site-footer):not(x-wf) {
  width: 100%;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          text-align: center;
          gap: 24px;
}
:where(#contact .f-social):not(x-wf),
:where(#contact .f-links):not(x-wf),
:where(#contact .f-copy):not(x-wf) {
  width: 100%;
          justify-content: center;
          margin-right: auto;
          margin-left: auto;
          text-align: center;
}
:where(#contact .f-copy):not(x-wf) {
  max-width: 34ch;
}
}
@media (max-width: 479.98px) {
:where(#contact .cta-big):not(x-wf) {
  min-height: 68px;
          padding: 18px;
          font-size: 18px;
          line-height: 1.15;
}
}

/* ═══ 3. STATE LAYER (native specificity — JS-driven, do not restyle) ═══ */
/* ═══ Elev8 Webflow bundle — system extras ═══
   Appended raw (NATIVE specificity) after the :where()-wrapped parity
   layer. Only rules that must never lose to a Webflow Designer class
   belong here — i.e. the generic reveal states for ATTRIBUTE-registered
   choreography ([data-choreo] / [data-choreo-block], the Webflow path).
   Slide-specific state rules (.js-ready #work …, #contact.settled …,
   nav.solid …) are kept at native specificity automatically by the
   build's KEEP list — do not duplicate them here. */

/* blocks of a sweep slide are hidden until the dot wavefront reaches
   them (.card-on), then land at full opacity; .dots-lit is the redundant
   terminal flag. All states are JS-added under .js-ready, so no-JS /
   no-GSAP / reduced-motion simply show everything. no-sweep sections
   (punch/ticks only) are exempt — their content never hides. */
.js-ready
  [data-choreo]:not([data-choreo*="no-sweep"])
  [data-choreo-block] {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-choreo] [data-choreo-block].card-on,
[data-choreo].dots-lit [data-choreo-block] {
  opacity: 1;
  transform: none;
}
.is-anchor-scrolling {
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
}
.is-anchor-scrolling .section {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

/* Native Webflow section classes retain their theme colours in the Designer,
   where they are useful editing cues. On the published runtime they become
   transparent windows onto the single body field so the palette can transition
   continuously as data-theme ownership moves between sections. */
html.elev8-runtime .section {
  background-color: transparent !important;
  background-image: none !important;
}

/* Legal routes share the site's global code, but they are ordinary paper
   documents rather than themed slides. Keep them outside the homepage field,
   snap, glow, and reveal systems while their visible layout remains owned by
   the native legal-* Webflow classes. */
html.elev8-legal {
  overflow-y: auto !important;
  scroll-snap-type: none !important;
  background: #f4f1eb !important;
}
html.elev8-legal body {
  min-height: 100%;
  overflow-y: auto !important;
  background: #f4f1eb !important;
  color: #15120e !important;
  --field: #f4f1eb !important;
  --white: #15120e !important;
  --muted: #7c746a !important;
  --muted-dim: #7c746a !important;
  --red-text: #c8102e !important;
  --strokeColor: rgba(21, 18, 14, 0.16) !important;
  --redness: 0 !important;
}
html.elev8-legal .legal-page,
html.elev8-legal .legal-nav,
html.elev8-legal .legal-article,
html.elev8-legal .legal-copy {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}
html.elev8-legal .legal-page {
  display: block !important;
  min-height: 100vh !important;
  background: #f4f1eb !important;
  color: #15120e !important;
}
html.elev8-legal #dotfield,
html.elev8-legal #fieldtint,
html.elev8-legal #glowfield {
  display: none !important;
}
@media (prefers-reduced-motion: reduce) {
  [data-choreo] [data-choreo-block] {
    transition: none !important;
    transform: none !important;
  }
}

/* Short desktop viewports cannot safely contain the editorial compositions
   inside one fixed-height snap slide. Switch to ordinary document flow early
   enough for laptop/browser-chrome heights, while preserving the full-screen
   snap experience on tall displays. This lives in the native-specificity
   layer because it must beat the flat Webflow classes that own base layout. */
@media (min-width: 992px) and (max-height: 1000px) {
  html {
    scroll-snap-type: none !important;
    scroll-behavior: auto;
  }
  .section {
    height: auto !important;
    min-height: 100svh !important;
    overflow: visible !important;
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }

  /* Keep the intended desktop Hero composition at ordinary laptop heights.
     Give its absolute layers a stable canvas and let the section grow around
     it; only the extra-short fallback below collapses the imagery. */
  #hero .hero-modern {
    height: auto !important;
    min-height: 900px !important;
  }

  /* Engagements: the right column establishes natural section height; the
     arched image keeps visible breathing room at both ends in short windows. */
  #engagements .serve-layout {
    flex: none !important;
    min-height: 0 !important;
  }
  #engagements .eng-right {
    justify-content: flex-start !important;
  }
  #engagements .engx-fig {
    top: 15svh !important;
    bottom: auto !important;
    height: 70svh !important;
    border-radius: 200rem !important;
  }

  /* Content grids size from their copy instead of shrinking into the old
     viewport-height remainder. */
  #industries .ind-wrap,
  #industries .ind-grid,
  #why .why-grid {
    flex: none !important;
    min-height: 0 !important;
  }
  #industries .ind-grid {
    grid-auto-rows: minmax(240px, auto) !important;
  }
  #why .why-grid {
    grid-auto-rows: minmax(280px, auto) !important;
  }

  /* The final slide can grow, but its footer always owns the real bottom. */
  #contact .inner {
    flex: 1 0 auto !important;
  }
  #contact .site-footer {
    margin-top: auto !important;
  }
}

/* A constrained desktop canvas uses a compact 2×2 process grid. The original
   descending stagger remains intact on wide canvases taller than this. */
@media (min-width: 992px) and (max-height: 948px) {
  #work .proc {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto repeat(2, minmax(220px, auto)) !important;
    gap: clamp(16px, 2.4svh, 28px) calc(var(--dot) * 2) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: var(--slide-pad-y) 0 !important;
  }
  #work .pcard {
    position: static !important;
    flex: none !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 220px !important;
    margin-left: 0 !important;
  }
  #work .proc-intro {
    position: static !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    margin-bottom: 8px !important;
  }
  #work .p1 {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  #work .p2 {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  #work .p3 {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
  #work .p4 {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
}

@media (min-width: 992px) and (max-height: 780px) {
  #hero .hero-modern {
    min-height: 0 !important;
  }
  #hero .hero-copy {
    position: static !important;
    width: min(58%, 640px) !important;
    padding-top: clamp(24px, 4svh, 48px) !important;
    padding-bottom: 24px !important;
  }
  #hero .hero-index {
    position: static !important;
    width: min(80%, 820px) !important;
    margin-top: 26px !important;
  }
  #hero .hero-media {
    display: none !important;
  }
}

/* Tablet/mobile Webflow breakpoint styles previously zeroed the base section
   padding. Keep the same fixed-nav-safe section box when the columns stack. */
@media (max-width: 991.98px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }
  #dotfield {
    width: 100vw !important;
    max-width: 100vw !important;
  }
  #nav,
  #nav.solid {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }
  #nav .nav-desktop-only {
    display: none !important;
  }
  body.nav-menu-open {
    overflow: hidden !important;
  }
  #nav.nav-open .nav-links {
    display: flex !important;
    background-color: #9a0c1f !important;
    color: var(--white) !important;
  }
  #nav.nav-open {
    background-color: #9a0c1f !important;
  }
  /* the open menu paints the bar red on every slide, so the brand red 8 would
     vanish there too — match the nav--red treatment */
  #nav.nav-open .brand .eight {
    color: #fff !important;
  }
  #nav.nav-open .nav-links > a:not(.nav-menu-cta) {
    flex: none;
  }
  #nav.nav-open .nav-menu-cta {
    display: flex !important;
    width: 100% !important;
    min-height: 64px !important;
    margin-top: auto !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px 24px !important;
    border: 1px solid #fff !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #9a0c1f !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    line-height: 1.2 !important;
    text-align: center !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    flex: none !important;
  }
  #nav.nav-open .nav-toggle .bars {
    background: transparent !important;
  }
  #nav.nav-open .nav-toggle .bars::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }
  #nav.nav-open .nav-toggle .bars::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }
  .section {
    height: auto !important;
    min-height: 0 !important;
    max-width: 100% !important;
    padding-top: var(--nav-h) !important;
    overflow-x: hidden !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }
  #hero .inner,
  #hero .hero-modern {
    height: auto !important;
    min-height: 0 !important;
    flex: none !important;
  }
  #engagements .serve-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    flex: none !important;
  }
  #engagements .eng-figside,
  #engagements .engx-fig {
    width: 100% !important;
    height: clamp(280px, 68vw, 360px) !important;
    min-height: 0 !important;
  }
  #engagements .engx-fig {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    max-width: none !important;
    border-radius: 999px 999px 0 0 !important;
  }
  #engagements .engagement-stage-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  #engagements .eng-right {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    justify-content: flex-start !important;
  }
  #industries .ind-media {
    display: block !important;
    opacity: 0.32 !important;
  }
  html.mobile-individual-reveals [data-choreo-block] {
    transition: none !important;
  }
  #work .proc {
    height: auto !important;
    min-height: 0 !important;
    gap: 24px !important;
  }
  #work .pcard {
    position: relative !important;
    flex: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin-left: 0 !important;
  }
  #work .p4 {
    width: 100% !important;
    max-width: none !important;
  }
  #work .proc-intro {
    position: relative !important;
    width: 100% !important;
    left: auto !important;
    bottom: auto !important;
    order: -1 !important;
  }
  #contact .site-footer {
    margin-top: auto !important;
  }
}

/* Match the native Webflow small/tiny breakpoint controls at runtime. These
   selectors only protect the requested responsive values from older
   slide-specific parity rules; the editable source of truth remains the
   corresponding Webflow classes. */
@media (max-width: 767.98px) {
  #engagements .eng-figside {
    display: none !important;
  }
  #contact .fit-strip {
    margin-bottom: 56px !important;
    padding-top: 0 !important;
    border-top: 0 !important;
  }
  #contact .site-footer {
    width: 100% !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    gap: 24px !important;
  }
  #contact .f-social,
  #contact .f-links,
  #contact .f-copy {
    width: 100% !important;
    justify-content: center !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }
  #contact .f-copy {
    max-width: 34ch !important;
  }
}

@media (max-width: 479.98px) {
  #hero .hero-copy {
    align-items: center !important;
    text-align: center !important;
  }
  #hero .hero-heading,
  #hero .hero-lede {
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }
  #contact .cta-big {
    min-height: 68px !important;
    padding: 18px !important;
    font-size: 18px !important;
    line-height: 1.15 !important;
  }
}
/* The native booking modal stays visible in the Designer canvas for editing.
   The published runtime class is added in <head> before first paint. */
html.elev8-runtime .booking-overlay {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

html.elev8-runtime .booking-overlay.is-open {
  visibility: visible;
  pointer-events: auto;
}

/* Industries: the native Webflow image class intentionally remains visible
   in the Designer so editors can select and replace each asset. At runtime,
   the card owns the reveal state and the corner treatment sits above the
   real image element. Strong selectors are required here because Webflow's
   native class declarations correctly outrank the zero-specificity parity
   layer. */
html.elev8-runtime #industries .ind-cell .ind-media {
  opacity: 0 !important;
}

html.elev8-runtime #industries .ind-cell:hover .ind-media,
html.elev8-runtime #industries .ind-cell:focus-visible .ind-media,
html.elev8-runtime #industries .ind-cell:focus-within .ind-media {
  opacity: 0.6 !important;
}

html.elev8-runtime #industries .ind-cell::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  display: block;
  pointer-events: none;
  color: rgba(245, 243, 240, 0.28);
  background:
    linear-gradient(currentColor, currentColor) top left / 36px 1px no-repeat,
    linear-gradient(currentColor, currentColor) top left / 1px 36px no-repeat,
    linear-gradient(currentColor, currentColor) bottom right / 36px 1px no-repeat,
    linear-gradient(currentColor, currentColor) bottom right / 1px 36px no-repeat;
  transition:
    background-size 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    color 0.35s ease;
}

html.elev8-runtime #industries .ind-cell:hover::before,
html.elev8-runtime #industries .ind-cell:focus-visible::before,
html.elev8-runtime #industries .ind-cell:focus-within::before {
  color: rgba(245, 243, 240, 0.52);
  background-size:
    100% 1px,
    1px 100%,
    100% 1px,
    1px 100%;
}

@media (hover: none) {
  html.elev8-runtime #industries .ind-cell .ind-media {
    opacity: 0.32 !important;
  }
}
