/* Scoped launch-copy refinements. Layout, type, copy, and artwork remain in
   their original page styles; only requested treatments are shared here. */
:root {
  --entry-duration: 680ms;
  --entry-ease: cubic-bezier(.22, .61, .36, 1);
  --shared-glass: linear-gradient(180deg, rgba(255,255,255,.024), rgba(255,255,255,.006));
  --shared-glass-border: rgba(143,179,204,.18);
  --shared-glass-filter: blur(14px) saturate(120%);
  --shared-glass-hover: rgba(255,255,255,.032);
  --shared-glow: 0 0 28px rgba(255,255,255,.14), 0 0 42px rgba(143,179,204,.12);
  --shared-divider: linear-gradient(to right, transparent 0%, rgba(143,179,204,.22) 15%, rgba(143,179,204,.40) 50%, rgba(143,179,204,.22) 85%, transparent 100%);
}

/* Legacy entry classes are visible even if this enhancement cannot run. */
.js :is(.fu, .fu-rise, .fu-scale, .fu-blur) {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  transition-delay: 0s !important;
}
@keyframes lex-entry-rise {
  from { opacity: .3; translate: 0 14px; }
  to { opacity: 1; translate: 0 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .lex-enter { animation: lex-entry-rise var(--entry-duration) var(--entry-ease); }
  body[data-page="home"] .gs .v-mid-content.panel-in {
    animation: lex-entry-rise var(--entry-duration) var(--entry-ease);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lex-enter { animation: none !important; }
}

/* Exact Who We Are glass, shared only by the requested homepage containers. */
body[data-page="home"] :is(.stat-strip, .rs.rs-quote-led .metrics-panel, .why-card, .cs-card) {
  background: var(--shared-glass);
  border-color: var(--shared-glass-border);
  backdrop-filter: var(--shared-glass-filter);
  -webkit-backdrop-filter: var(--shared-glass-filter);
  box-shadow: none;
}
body[data-page="home"] :is(.why-card, .cs-card) {
  transition: transform var(--motion-base) var(--ease), background-color var(--motion-base) ease, border-color var(--motion-base) ease;
  transition-delay: 0s;
}
body[data-page="home"] .cs-grid > .cs-card { transition-delay: 0s; }
body[data-page="home"] :is(.stat-item, .metrics-panel .metric) {
  transition: background-color var(--motion-base) ease;
}
body[data-page="home"] :is(.stat-n, .mval, .wc-new, .cs-title, .cs-value) {
  transition: opacity var(--motion-base) ease, color var(--motion-base) ease, text-shadow var(--motion-base) ease, transform var(--motion-base) var(--ease);
}
body[data-page="home"] :is(.why-card, .cs-card):hover {
  background: var(--shared-glass);
  background-color: var(--shared-glass-hover);
  border-color: var(--shared-glass-border);
}
body[data-page="home"] :is(.why-card, .cs-card):hover { transform: translateY(var(--hover-card-y)); }
body[data-page="home"] :is(.stat-item, .rs.rs-quote-led .metrics-panel .metric):hover {
  background: var(--shared-glass-hover);
  transform: none;
}
body[data-page="home"] :is(.stat-item:hover .stat-n, .rs.rs-quote-led .metric:hover .mval, .why-card:hover .wc-new, .cs-card:hover .cs-title, .cs-card:hover .cs-value) {
  opacity: 1;
  color: #fff;
  transform: translateY(var(--hover-link-y));
  text-shadow: var(--shared-glow);
}
body[data-page="home"] .cs-card:hover .cs-value {
  color: var(--acc-2) !important;
  text-shadow: 0 0 18px rgba(143,179,204,.12);
}
body[data-page="home"] .about-v3-icon .material-symbols-outlined {
  font-size: 20px;
  line-height: 1;
  font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 20;
}
body[data-page="home"] .why-card :is(.wc-old, .wc-desc) {
  transition: color var(--motion-base) ease, opacity var(--motion-base) ease, text-shadow var(--motion-base) ease;
}
body[data-page="home"] .why-card:hover :is(.wc-old, .wc-desc) {
  color: rgba(225,230,239,.78);
  opacity: 1;
  text-shadow: 0 0 18px rgba(143,179,204,.09);
}
body[data-page="home"] .cs-title { color: rgba(255,255,255,.76); }

/* Hero metrics brighten and rise together without moving neighbouring items. */
body[data-page="home"] .rs-stat { transition: transform .4s var(--entry-ease); }
body[data-page="home"] :is(.rs-n, .rs-l) { transition: color .4s ease, text-shadow .4s ease; }
body[data-page="home"] .rs-stat:hover { opacity: 1 !important; transform: translateY(-3px); }
body[data-page="home"] .rs-stat:hover .rs-n { color: #fff; text-shadow: var(--shared-glow); }
body[data-page="home"] .rs-stat:hover .rs-l { color: rgba(225,230,239,.72); }

/* Homepage line treatment, including the service hero and final CTA boundary. */
body:not([data-page="home"]) :is(.section, .consultation)::before {
  left: 0;
  right: 0;
  width: auto;
  transform: none;
  background: var(--shared-divider);
  pointer-events: none;
  z-index: 3;
}
body:not([data-page="home"]) .hero::after { display: none; }
body[data-page="seo"] .ranking-copy .section-title .serif { white-space: normal; }

/* One centered CTA column; keep the old anchor so existing links still work. */
body[data-page="home"] .talk-panel {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  text-align: center;
  gap: 0;
}
body[data-page="home"] .talk-main { width: 100%; max-width: 820px; padding-top: 0; }
body[data-page="home"] .talk-head .eye { justify-content: center; }
body[data-page="home"] .talk-head { text-align: center; }
body[data-page="home"] :is(.talk-h, .talk-copy) { margin-inline: auto; }
body[data-page="home"] .consult-process { max-width: 680px; margin-inline: auto; text-align: left; }
body[data-page="home"] .talk-main > .btn-p { margin-top: var(--gap-body-cta); }

/* Fit content to its actual column instead of letting nowrap text escape it. */
body[data-page="home"] :is(.rs-left, .rs-right, .about-col-left, .about-col-right, .stat-item, .metric) { min-width: 0; }
body[data-page="home"] .rs.rs-quote-led .rs-main-line,
body[data-page="home"] .rs.rs-quote-led .rs-h1 .serif { display: block; white-space: normal; }
body[data-page="home"] :is(.about-b-stats, .rs.rs-quote-led .metrics-panel) { container-type: inline-size; }
body[data-page="home"] .about-b-stats .stat-n { font-size: var(--type-metric-box); white-space: nowrap; }
body[data-page="home"] .rs.rs-quote-led .metrics-panel .mval { font-size: var(--type-metric-box); white-space: nowrap; }
body[data-page="home"] .rs.rs-quote-led .big-num { max-width: 100%; }
/* Compact desktop: keep the composition on zoomed and small laptop screens.
   Size the contents to their columns before switching to the tablet stack. */
@media (min-width: 901px) and (max-width: 1180px) {
  body[data-page="home"] .hero-h1 { font-size: var(--type-h1); }
  body[data-page="home"] .rs.rs-quote-led .divide {
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: clamp(28px, 4vw, 48px);
  }
  body[data-page="home"] .rs.rs-quote-led .rs-left { container-type: inline-size; }
  body[data-page="home"] .rs.rs-quote-led :is(.rs-left, .rs-right) { min-height: 0; }
  body[data-page="home"] .rs.rs-quote-led .rs-h1 { font-size: var(--type-h2); }
  body[data-page="home"] .rs.rs-quote-led .big-num { font-size: var(--type-metric-hero); }
  body[data-page="home"] .rs.rs-quote-led .rs-right .rs-feature-quote { padding-left: clamp(18px, 2.2vw, 26px); }
  body[data-page="home"] .rs.rs-quote-led .metrics-panel .metric { padding: 20px clamp(12px, 1.5vw, 18px); }
  body[data-page="home"] .whyus-live-layout {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: clamp(28px, 4vw, 48px);
  }
  body[data-page="home"] .whyus-live-copy { min-width: 0; }
  body[data-page="home"] .whyus-live-h { font-size: var(--type-h2); }
  body[data-page="home"] .wyu-list { min-width: 0; --wy-row-pad: 18px; --wy-row-idx-w: 26px; }
  body[data-page="home"] .wy-row-t { font-size: var(--type-h3); }
}
@media (max-width: 900px) {
  body[data-page="home"] .rs.rs-quote-led .divide { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  body[data-page="home"] .rs.rs-quote-led :is(.rs-left, .rs-right) { min-height: 0; }
  body[data-page="home"] .rs.rs-quote-led .rs-right { margin-top: 0 !important; gap: 32px; }
  body[data-page="home"] .rs.rs-quote-led .rs-right .rs-feature-quote,
  body[data-page="home"] .rs.rs-quote-led .metrics-panel { margin-top: 0 !important; }
}
@media (max-width: 900px) {
  body[data-page="home"] .about-v3-body-grid { grid-template-columns: minmax(0, 1fr); }
  body[data-page="home"] .about-col-right { padding-top: 0 !important; }
  body[data-page="home"] .about-section-b .about-b-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(106px, 1fr)) !important;
    height: auto !important;
  }
  body[data-page="home"] .about-section-b .about-b-stats .stat-item { border: 0 !important; }
  body[data-page="home"] .about-section-b .about-b-stats .stat-item:not(:nth-child(3n + 1)) { border-left: 1px solid rgba(143,179,204,.14) !important; }
  body[data-page="home"] .about-section-b .about-b-stats .stat-item:nth-child(n + 4) { border-top: 1px solid rgba(143,179,204,.14) !important; }
}
@media (max-width: 820px) {
  body[data-page="home"] .cs-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Primary actions use one responsive footprint, including the desktop nav. */
body[data-page="home"] :is(.btn-p, .site-nav .nav-cta) {
  width: clamp(120px, 9.8vw, 140px);
  min-height: 50px;
  padding: 14px 20px;
}

/* Desktop Growth Stack: a four-up tab row leaves the two information panels
   the full component width below it. */
@media (min-width: 901px) {
  body[data-page="home"] .gs .monolith {
    grid-template-columns: minmax(0, 1.72fr) minmax(240px, .78fr);
    grid-template-areas:
      "tabs tabs"
      "detail scope";
    min-height: 0;
  }
  body[data-page="home"] .gs .v-rail {
    grid-area: tabs;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  body[data-page="home"] .gs .v-rail .tab-btn {
    min-width: 0;
    min-height: 84px;
    padding: 18px clamp(16px, 2vw, 28px);
    border-right: 1px solid var(--border);
    border-bottom: 0;
  }
  body[data-page="home"] .gs .v-rail .tab-btn:last-child { border-right: 0; }
  body[data-page="home"] .gs .v-rail .tb-lbl {
    min-width: 0;
    font-size: clamp(.76rem, 1.15vw, .96rem);
    overflow-wrap: anywhere;
  }
  body[data-page="home"] .gs .v-mid { grid-area: detail; }
  body[data-page="home"] .gs .v-right { grid-area: scope; }
}
/* Reserve the entire marquee inside the first desktop viewport. Its explicit
   height keeps the overlay offset correct at both normal and zoomed sizes. */
@media (min-width: 901px) {
  body[data-page="home"] { --hero-marquee-height: 60px; }
  body[data-page="home"] .marquee-bar {
    height: var(--hero-marquee-height);
    display: flex;
    align-items: center;
  }
  body[data-page="home"] .marq-track { flex: none; }
  body[data-page="home"] .content-overlay { margin-top: calc(100dvh - var(--hero-marquee-height)); }
}
@media (min-width: 901px) and (max-height: 740px) and (min-height: 560px) {
  body[data-page="home"] .hero-fixed { padding-block: 88px 110px; }
  body[data-page="home"] .hero-fixed .hero-h1 { font-size: var(--type-h1); }
  body[data-page="home"] .hero-arrow { bottom: calc(var(--hero-marquee-height) + 14px); }
}
/* Phones and exceptionally short windows still scroll naturally: no clipping
   or forced text scaling when a full first-screen composition cannot fit. */
@media (max-width: 900px) and (max-height: 740px), (max-width: 430px) and (max-height: 800px), (max-height: 559px) {
  body[data-page="home"] .hero-fixed {
    position: relative;
    height: auto;
    min-height: 100svh;
    padding-block: 110px 90px;
  }
  body[data-page="home"] .content-overlay { margin-top: 0; }
}
/* A single metric component, taken from Who We Are. Page-specific legacy
   value/cell classes are intentionally not used by these two panels. */
body[data-page="home"] .lex-metrics {
  --lex-metric-columns: 3;
  --lex-metric-row-height: 134px;
  --lex-metric-padding: clamp(18px, 1.8vw, 26px);
  --lex-metric-value-size: clamp(1.125rem, 2.88vw, var(--type-stat-md));
  --lex-metric-label-size: var(--type-label);
  --lex-metric-label-gap: 10px;
  --lex-metric-line: rgba(143,179,204,.14);
  gap: 0;
  background: var(--shared-glass);
  border: 1px solid var(--shared-glass-border);
  backdrop-filter: var(--shared-glass-filter);
  -webkit-backdrop-filter: var(--shared-glass-filter);
}
body[data-page="home"] .lex-metrics--about { --lex-metric-columns: 2; }
/* One shared cell width, constrained by the narrower available grid. Override
   the old stretch-to-fill rules; row count can differ, cell dimensions cannot. */
body[data-page="home"] :is(.rs.rs-quote-led .metrics-panel, .about-section-b .about-b-stats).lex-metrics {
  width: min(100%, calc(var(--lex-metric-cell-width, 200px) * var(--lex-metric-columns) + 2px)) !important;
  height: auto !important;
  grid-template-columns: repeat(var(--lex-metric-columns), minmax(0, 1fr)) !important;
  grid-template-rows: none !important;
  grid-auto-rows: var(--lex-metric-row-height) !important;
  align-self: start;
}
body[data-page="home"] .lex-metrics .lex-metric {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: 0;
  padding: var(--lex-metric-padding);
  text-align: left;
  transition: background-color var(--motion-base) ease;
}
body[data-page="home"] .lex-metric + .lex-metric { border-left: 1px solid var(--lex-metric-line); }
body[data-page="home"] .lex-metrics--about .lex-metric:nth-child(odd) { border-left: 0; }
body[data-page="home"] .lex-metrics--about .lex-metric:nth-child(n + 3) { border-top: 1px solid var(--lex-metric-line); }
body[data-page="home"] .lex-metric-value {
  font-family: var(--display);
  /* Keep the longest value inside the same padding on both panels. */
  font-size: min(var(--lex-metric-value-size), calc((var(--lex-metric-cell-width, 200px) - 2 * var(--lex-metric-padding) - 1px) / 3.2));
  font-weight: 700;
  line-height: .96;
  letter-spacing: 0;
  white-space: nowrap;
  color: #fff;
  opacity: .68;
  transition: opacity var(--motion-base) ease, text-shadow var(--motion-base) ease, transform var(--motion-base) var(--ease);
}
body[data-page="home"] .lex-metric-label {
  font-family: var(--display);
  font-size: var(--lex-metric-label-size);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: var(--lex-metric-label-gap);
  transition: color var(--motion-base) ease;
}
body[data-page="home"] .lex-metric:hover { background-color: var(--shared-glass-hover); }
body[data-page="home"] .lex-metric:hover .lex-metric-value {
  opacity: 1;
  transform: translateY(var(--hover-link-y));
  text-shadow: var(--shared-glow);
}
body[data-page="home"] .lex-metric:hover .lex-metric-label { color: rgba(225,230,239,.52); }
@media (max-width: 1000px) {
  body[data-page="home"] .lex-metrics { --lex-metric-row-height: 106px; }
}
@media (max-width: 900px) {
  body[data-page="home"] .lex-metrics--about { --lex-metric-columns: 3; }
  body[data-page="home"] .lex-metrics--about .lex-metric { border: 0; }
  body[data-page="home"] .lex-metrics--about .lex-metric:not(:nth-child(3n + 1)) { border-left: 1px solid var(--lex-metric-line); }
  body[data-page="home"] .lex-metrics--about .lex-metric:nth-child(n + 4) { border-top: 1px solid var(--lex-metric-line); }
}
@media (max-width: 720px) {
  body[data-page="home"] .lex-metrics {
    --lex-metric-padding: clamp(12px, 3.4vw, 18px);
    --lex-metric-value-size: clamp(1.125rem, 5.67vw, 1.62rem);
    --lex-metric-label-size: clamp(.387rem, 1.485vw, .504rem);
    --lex-metric-label-gap: 8px;
  }
  body[data-page="home"] .lex-metric-label { line-height: 1.35; overflow-wrap: break-word; }
}

/* Preserve the full desktop choreography on compact laptops, including zoom. */
@media (min-width: 901px) and (max-width: 1180px) {
  body[data-page="home"] .proto-section .pin-inner {
    --proto-left-width: clamp(300px, 34vw, 400px);
    grid-template-columns: var(--proto-left-width) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 48px);
  }
  body[data-page="home"] .proto-section .pin-left { width: var(--proto-left-width); }
  body[data-page="home"] .proto-section .proto-h { font-size: var(--type-h2); }
}
@media (min-width: 901px) and (min-height: 560px) and (max-height: 740px) {
  body[data-page="home"] .proto-section .proto-h { font-size: var(--type-h2); }
  body[data-page="home"] .proto-section .proto-desc { line-height: 1.65; }
  body[data-page="home"] .proto-section .prog { margin-top: 16px; }
  body[data-page="home"] .proto-section .prog-bar { height: clamp(48px, 9vh, 80px); }
  body[data-page="home"] .proto-section .prog-n { font-size: min(var(--type-stat-lg), 9vh); }
}
/* The only alternative is a complete one-column stack, including very short
   desktop windows. Keep this query in sync with stackedProtocol in index.html. */
@media (max-width: 900px), (max-height: 559px) {
  body[data-page="home"] .proto-section .scroll-wrap { height: auto !important; }
  body[data-page="home"] .proto-section .scroll-pin { position: relative; height: auto; overflow: visible; }
  body[data-page="home"] .proto-section .pin-inner { display: block; height: auto; padding-block: var(--section-pad); }
  body[data-page="home"] .proto-section .pin-left { position: static; width: 100%; transform: none; margin-bottom: 40px; }
  body[data-page="home"] .proto-section .pin-right { transform: none !important; padding: 0; }
  body[data-page="home"] .proto-section .pstep { opacity: 1; }
  body[data-page="home"] .proto-section .prog,
  body[data-page="home"] .proto-section .pstep::before,
  body[data-page="home"] .proto-section .pstep::after,
  body[data-page="home"] .proto-section .pin-right::before { display: none; }
  body[data-page="home"] .proto-section .proto-cta { opacity: 1; transform: none; pointer-events: auto; }
}

/* Homepage refinement pass: exact section anchors and clearer Growth Stack UI. */
html { scroll-padding-top: 0 !important; }
body[data-page="home"] :is(section[id], #page-top, #main-content) { scroll-margin-top: 0 !important; }

/* One homepage content-stack rhythm: eyebrow -> title -> paragraph -> UI/action. */
body[data-page="home"] :is(
  .why-head,
  .gs-head,
  .about-intro,
  .pin-left,
  .cs-head,
  .whyus-live-copy,
  .talk-head,
  .faqx-head
) {
  row-gap: 0;
}
body[data-page="home"] :is(
  .why-head,
  .gs-head,
  .about-intro,
  .pin-left,
  .cs-head,
  .whyus-live-copy,
  .talk-head,
  .faqx-head
) > :is(.eye, .h-eye) {
  margin: 0 !important;
}
body[data-page="home"] :is(
  .why-head > .why-mega,
  .gs-head > .gs-h1,
  .about-intro > .about-h,
  .pin-left > .proto-h,
  .cs-head > .cs-h,
  .whyus-live-copy > .whyus-live-h,
  .talk-head > .talk-h,
  .faqx-head > .faqx-h
) {
  margin: var(--home-type-stack-gap) 0 0 !important;
}
body[data-page="home"] :is(
  .gs-head > .gs-copy,
  .about-intro > .about-sub,
  .pin-left > .proto-desc,
  .cs-head > .cs-copy,
  .whyus-live-copy > .whyus-live-sub,
  .faqx-head > .faqx-copy
) {
  margin: var(--home-type-stack-gap) 0 0 !important;
}
body[data-page="home"] .why-head { margin-bottom: var(--space-heading) !important; }
body[data-page="home"] .why-sub { margin: 0 auto var(--space-component) !important; }
body[data-page="home"] :is(.gs-head, .about-intro, .cs-head) {
  margin-bottom: var(--space-component) !important;
}

@media (min-width: 901px) {
  body[data-page="home"] .gs .v-rail .tab-btn {
    min-height: 76px;
    padding-block: 12px;
    gap: clamp(13px, 1.4vw, 18px);
  }
  body[data-page="home"] .gs .v-rail .tb-icon { font-size: clamp(23px, 2vw, 27px); }
  body[data-page="home"] .gs .v-rail .tb-lbl {
    font-size: clamp(.86rem, 1.28vw, 1.04rem);
    overflow-wrap: normal;
  }
}
body[data-page="home"] .gs .monolith .p-desc {
  font-size: var(--body-copy-size);
  line-height: var(--leading-body);
  color: var(--body-copy-color);
}
body[data-page="home"] .rs.rs-quote-led .rs-feature-quote .qbody {
  font-size: var(--type-quote);
  line-height: var(--leading-quote);
}
body[data-page="home"] .cs-card .cs-body {
  font-size: var(--type-paragraph-small);
  line-height: var(--leading-paragraph-small);
}
body[data-page="home"] .faqx-q {
  font-size: var(--type-ui-title);
  line-height: var(--leading-ui);
}

/* Protocol tags use the same compact label component as the case studies. */
body[data-page="home"] .proto-section .ps-pills { gap: 10px; }
body[data-page="home"] .proto-section .pill {
  display: inline-flex;
  padding: 7px 12px;
  border: 1px solid rgba(158,198,223,.16);
  background: rgba(158,198,223,.12);
  font-family: var(--display);
  font-size: var(--type-label);
  font-weight: 700;
  line-height: 1.25;
  color: var(--acc-2);
}
body[data-page="home"] .proto-section .pstep.active .pill {
  border-color: rgba(158,198,223,.16);
  background: rgba(158,198,223,.12);
  color: var(--acc-2);
}

/* Match the service-page FAQ: fixed introduction at left, one accordion column. */
body[data-page="home"] .faqx-shell {
  grid-template-columns: minmax(300px, .72fr) minmax(580px, 1.28fr);
  gap: clamp(60px, 9vw, 148px);
}
body[data-page="home"] .faqx-head {
  position: sticky;
  top: 72px;
  max-width: none;
  margin: 0;
  text-align: left;
}
body[data-page="home"] .faqx-head .eye { justify-content: flex-start; }
body[data-page="home"] .faqx-h { margin-bottom: var(--gap-h-body); }
body[data-page="home"] .faqx-copy { max-width: 46ch; }
body[data-page="home"] .faqx-cta { margin-top: var(--gap-body-cta); }
body[data-page="home"] .faqx-list {
  display: block;
  max-width: none;
  margin: 0;
  border-top: 1px solid rgba(255,255,255,.08);
}
body[data-page="home"] .faqx-col { display: contents; }
body[data-page="home"] .faqx-item {
  border-top: 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

/* The result metrics should breathe after the testimonial attribution. */
@media (max-width: 900px) {
  body[data-page="home"] .rs.rs-quote-led .rs-feature-quote .qbody {
    font-size: var(--type-quote) !important;
  }
  body[data-page="home"] .rs.rs-quote-led .metrics-panel {
    margin-top: clamp(32px, 7vw, 42px) !important;
  }
  body[data-page="home"] .proto-section .proto-cta {
    width: fit-content;
    max-width: 100%;
    margin-top: var(--space-action) !important;
  }
  body[data-page="home"] .proto-section .proto-cta .btn-p { width: auto; }
  body[data-page="home"] .whyus-live-layout {
    gap: var(--space-component) !important;
  }
  body[data-page="home"] .whyus-live-actions {
    width: fit-content !important;
    max-width: 100%;
    margin-top: 0 !important;
    justify-self: start;
  }
}

@media (max-width: 1120px) {
  body[data-page="home"] .faqx-shell {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-component);
  }
  body[data-page="home"] .faqx-head { position: static; }
}

@media (max-width: 720px) {
  body[data-page="home"] .faqx-shell { gap: clamp(26px, 7vw, 34px) !important; }
  body[data-page="home"] .faqx-head { margin-bottom: 0 !important; }
  body[data-page="home"] .faqx-h {
    margin-top: 12px;
    margin-bottom: 16px;
  }
  body[data-page="home"] .faqx-cta { margin-top: 24px; }
  body[data-page="home"] .faqx-q { padding-block: 18px; }
  body[data-page="home"] .faqx-a-inner { padding-bottom: 20px; }
}

/* Accessible case-study dialog. */
.case-study-modal {
  width: min(1120px, calc(100vw - 40px));
  max-width: none;
  max-height: 92dvh;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--shared-glass-border);
  background: transparent;
  color: #fff;
  box-shadow: 0 32px 100px rgba(0,0,0,.78);
}
.case-study-modal::backdrop {
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.case-study-dialog {
  position: relative;
  max-height: 92dvh;
  background: linear-gradient(145deg, rgba(10,13,17,.96), rgba(3,4,5,.94));
  backdrop-filter: var(--shared-glass-filter);
  -webkit-backdrop-filter: var(--shared-glass-filter);
}
.case-study-scroll {
  max-height: 92dvh;
  overflow-y: auto;
  padding: clamp(34px, 5vw, 72px);
  scrollbar-color: rgba(158,198,223,.52) transparent;
}
.case-study-close {
  position: absolute;
  z-index: 2;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(3,4,5,.72);
  cursor: pointer;
}
.case-study-close::before,
.case-study-close::after {
  content: '';
  position: absolute;
  top: 20px;
  left: 11px;
  width: 20px;
  height: 1px;
  background: rgba(255,255,255,.82);
}
.case-study-close::before { transform: rotate(45deg); }
.case-study-close::after { transform: rotate(-45deg); }
.case-study-close:hover { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.06); }
.case-study-label {
  font-family: var(--display);
  font-size: var(--type-eyebrow);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--acc);
}
.case-study-kicker {
  display: inline-flex;
  padding: 7px 12px;
  border: 1px solid rgba(158,198,223,.16);
  background: rgba(158,198,223,.12);
  font-family: var(--display);
  font-size: var(--type-label);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--acc-2);
}
.case-study-title {
  max-width: 900px;
  margin: 20px 0 18px;
  font-family: var(--display);
  font-size: var(--type-h2);
  font-weight: 700;
  line-height: .96;
  text-transform: uppercase;
}
.case-study-lede {
  max-width: 760px;
  font-size: var(--type-paragraph-lead);
  line-height: var(--leading-body);
  color: var(--body-copy-color);
}
.case-study-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(28px, 4vw, 44px);
  border: 1px solid var(--shared-glass-border);
  background: var(--shared-glass);
}
.case-study-metric { padding: clamp(20px, 3vw, 34px); }
.case-study-metric + .case-study-metric { border-left: 1px solid var(--shared-glass-border); }
.case-study-metric-value {
  font-family: var(--display);
  font-size: var(--type-metric-box);
  font-weight: 700;
  line-height: .95;
  color: rgba(255,255,255,.86);
}
.case-study-metric-label {
  margin-top: 10px;
  font-family: var(--display);
  font-size: var(--type-label);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--muted);
}
.case-study-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(34px, 6vw, 82px);
  margin-top: clamp(42px, 6vw, 72px);
}
.case-study-sections p,
.case-study-outcome > p {
  margin-top: 18px;
  font-size: var(--body-copy-size);
  line-height: var(--leading-body);
  color: var(--body-copy-color);
}
.case-study-strategy {
  display: grid;
  gap: 0;
  margin-top: 10px;
  list-style: none;
}
.case-study-strategy li {
  position: relative;
  padding: 16px 0 16px 44px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: var(--body-copy-size);
  line-height: var(--leading-body);
  color: var(--body-copy-color);
}
.case-study-strategy li::before {
  content: attr(data-step);
  position: absolute;
  top: 18px;
  left: 0;
  font-family: var(--display);
  font-size: var(--type-label);
  font-weight: 700;
  color: var(--acc-2);
}
.case-study-outcome {
  margin-top: clamp(42px, 6vw, 72px);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid rgba(255,255,255,.1);
}
.case-study-wins {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 28px;
  list-style: none;
}
.case-study-wins li {
  padding: 18px;
  border: 1px solid rgba(158,198,223,.14);
  background: rgba(158,198,223,.06);
  font-size: var(--type-body-sm);
  line-height: var(--leading-body);
  color: rgba(255,255,255,.76);
}
.case-study-cta { margin-top: 28px; }

@media (max-width: 720px) {
  .case-study-modal { width: calc(100vw - 20px); max-height: 94dvh; }
  .case-study-dialog,
  .case-study-scroll { max-height: 94dvh; }
  .case-study-scroll { padding: 62px 22px 30px; }
  .case-study-close { top: 12px; right: 12px; }
  .case-study-title { font-size: var(--type-h3); }
  .case-study-metric { padding: 18px 12px; }
  .case-study-metric-value { font-size: var(--type-metric-box); }
  .case-study-metric-label { font-size: var(--type-metric-label); }
  .case-study-sections,
  .case-study-wins { grid-template-columns: minmax(0, 1fr); }
  .case-study-sections { gap: 38px; }
}

/* Homepage consultation dialog. */
.home-consult-dialog {
  color: var(--text);
  background: #0b0e11;
  border: 1px solid var(--shared-glass-border);
  width: min(720px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
}
.home-consult-dialog::backdrop {
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
body.home-dialog-open { overflow: hidden; }
.home-consult-dialog .consult-form {
  min-width: 0;
  margin: 0;
  padding: clamp(24px, 4vw, 40px);
  border: 0;
  background: none;
}
.home-consult-dialog .consult-form-head { padding-right: 22px; }
.home-consult-dialog .dialog-close {
  position: absolute;
  z-index: 2;
  top: 6px;
  right: 6px;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 0;
  background: none;
  color: #fff;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}
.home-consult-dialog .consult-fields { min-width: 0; }
.home-consult-dialog :is(input, select, textarea) {
  max-width: 100%;
  font-size: 16px;
}
.home-consult-dialog .consult-consent-wrap { margin-top: 22px; }
.home-consult-dialog .consult-consent { margin-top: 0; }
.home-consult-dialog .consult-error {
  display: block;
  min-height: 1.2em;
  color: #f3b6b6;
  font-size: var(--type-caption);
  line-height: 1.35;
}
.home-consult-dialog select:invalid:not([aria-invalid="true"]) {
  border-color: rgba(143,179,204,0.2);
}
.home-consult-dialog :is(input, select, textarea)[aria-invalid="true"] {
  border-color: rgba(243,182,182,.78);
}
.home-consult-dialog .consult-privacy a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: .18em;
}
@media (prefers-reduced-motion: no-preference) {
  .home-consult-dialog[open] { animation: lex-entry-rise var(--entry-duration) var(--entry-ease); }
}

/* Stacked hero: one composition from narrow tablets through phones. The
   content reorders visually without duplicating markup, and the marquee stays
   anchored to the bottom edge of the first dynamic viewport. */
@media (max-width: 900px) {
  body[data-page="home"] {
    --hero-stacked-marquee-height: clamp(50px, 6.4dvh, 58px);
    --hero-stacked-content-width: min(100%, 760px);
    --hero-stacked-gap: clamp(13px, 2.2dvh, 22px);
  }

  body[data-page="home"] .hero-fixed {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    min-height: 0;
    padding: 0;
  }

  body[data-page="home"] .hero-content {
    display: flex;
    width: 100%;
    height: calc(100vh - var(--hero-stacked-marquee-height));
    height: calc(100svh - var(--hero-stacked-marquee-height));
    height: calc(100dvh - var(--hero-stacked-marquee-height));
    max-width: none;
    align-items: center;
    justify-content: center;
    padding: clamp(88px, 12dvh, 122px) var(--shell-pad) clamp(16px, 3dvh, 30px);
  }

  body[data-page="home"] .hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: var(--hero-stacked-content-width);
    max-height: 100%;
    margin: 0 auto;
    align-content: center;
    justify-items: center;
    gap: 0;
    text-align: center;
  }

  body[data-page="home"] .hero-left { display: contents; }

  body[data-page="home"] .hero-eye {
    order: 1;
    display: flex;
    max-width: 42ch;
    margin: 0 0 var(--hero-stacked-gap);
    align-items: center;
    justify-content: center;
    justify-self: center;
    text-align: center;
  }

  body[data-page="home"] .hero-h1 {
    order: 2;
    width: 100%;
    margin: 0 0 var(--hero-stacked-gap);
    text-align: center;
    text-wrap: balance;
  }

  body[data-page="home"] .hero-h1 span { width: 100%; }

  body[data-page="home"] .hero-copy {
    order: 3;
    width: min(100%, 42ch);
    max-width: 42ch;
    margin: 0 0 var(--hero-stacked-gap);
    text-align: center;
    text-wrap: pretty;
  }

  body[data-page="home"] .hero-stats {
    order: 4;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(100%, 620px);
    margin: 0;
    padding: 0;
    gap: 0;
    border: 0;
  }

  body[data-page="home"] .hero-stats .rs-stat {
    display: flex;
    min-width: 0;
    min-height: clamp(50px, 7dvh, 66px);
    padding: clamp(3px, .7dvh, 7px) clamp(8px, 2.2vw, 18px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  body[data-page="home"] .hero-stats .rs-stat + .rs-stat {
    border-left: 1px solid rgba(143,179,204,.14);
  }

  body[data-page="home"] .hero-stats .rs-n,
  body[data-page="home"] .hero-stats .rs-l {
    width: 100%;
    text-align: center;
  }

  body[data-page="home"] .hero-left > .btn-p {
    order: 5;
    justify-self: center;
    margin-top: var(--hero-stacked-gap);
  }

  body[data-page="home"] .hero-arrow { display: none; }

  body[data-page="home"] .content-overlay {
    margin-top: calc(100vh - var(--hero-stacked-marquee-height));
    margin-top: calc(100svh - var(--hero-stacked-marquee-height));
    margin-top: calc(100dvh - var(--hero-stacked-marquee-height));
  }

  body[data-page="home"] .marquee-bar {
    display: flex;
    height: var(--hero-stacked-marquee-height);
    padding: 0;
    align-items: center;
  }

  body[data-page="home"] .marq-track { flex: none; }
}

/* Phone-only treatment. Tablets retain the eyebrow rule as part of the wider
   composition, while phones use type alone. */
@media (max-width: 600px) {
  body[data-page="home"] {
    --hero-stacked-content-width: min(100%, 430px);
    --hero-stacked-gap: clamp(10px, 1.8dvh, 17px);
  }

  body[data-page="home"] .hero-content {
    padding-top: clamp(82px, 11.5dvh, 106px);
    padding-bottom: clamp(10px, 2dvh, 20px);
  }

  body[data-page="home"] .hero-eye {
    display: flex;
    max-width: 34ch;
    line-height: 1.35;
  }

  body[data-page="home"] .hero-eye::before {
    content: none;
    display: none;
  }

  body[data-page="home"] .hero-fixed .hero-h1 {
    font-size: clamp(2.75rem, 10.8vw, 3.05rem) !important;
    line-height: .88;
    overflow-wrap: normal;
  }

  body[data-page="home"] .hero-h1 .accent-line { font-size: 1.02em; }

  body[data-page="home"] .hero-copy {
    width: min(100%, 36ch);
    max-width: 36ch;
  }

  body[data-page="home"] .hero-stats { width: 100%; }

  body[data-page="home"] .hero-stats .rs-stat {
    min-height: clamp(48px, 6.6dvh, 60px);
    padding-inline: clamp(6px, 2vw, 12px);
  }

  body[data-page="home"] .hero-stats .rs-n {
    font-size: clamp(1.45rem, 6.7vw, 1.75rem);
    white-space: nowrap;
  }

  body[data-page="home"] .hero-stats .rs-l {
    font-size: clamp(.46rem, 1.95vw, .54rem);
    line-height: 1.25;
    letter-spacing: .045em;
    overflow-wrap: normal;
  }
}

/* Compact-height phones preserve the same order and alignment; only vertical
   rhythm and type compress enough to keep the marquee on the viewport edge. */
@media (max-width: 600px) and (max-height: 720px) {
  body[data-page="home"] {
    --hero-stacked-marquee-height: 48px;
    --hero-stacked-gap: clamp(8px, 1.5dvh, 11px);
  }

  body[data-page="home"] .hero-content {
    padding-top: clamp(72px, 13dvh, 88px);
    padding-bottom: 8px;
  }

  body[data-page="home"] .hero-eye {
    max-width: 32ch;
    font-size: clamp(.61rem, 2.7vw, .69rem);
  }

  body[data-page="home"] .hero-fixed .hero-h1 {
    font-size: clamp(2.3rem, 10.8vw, 2.62rem) !important;
  }

  body[data-page="home"] .hero-copy {
    max-width: 38ch;
    font-size: clamp(.8rem, 3.55vw, .9rem) !important;
    line-height: 1.48;
  }

  body[data-page="home"] .hero-stats .rs-stat { min-height: 46px; }
  body[data-page="home"] .hero-stats .rs-n { font-size: clamp(1.35rem, 6.2vw, 1.58rem); }
  body[data-page="home"] .hero-stats .rs-l { font-size: clamp(.43rem, 1.85vw, .5rem); }

  body[data-page="home"] .hero-left > .btn-p {
    min-height: 46px;
    padding-block: 14px;
  }
}
