/* ============================================================
   Hardenwell Cybersecurity Advisors — Design System v3 "Circuit Black"
   Dark geometric high-tech language:
   - Near-black #0A0C0A ground with a faint green circuit grid + glow
   - Frosted-glass panes (backdrop blur) on 1px light hairlines
   - NVIDIA green #76B900 accent: CTAs (black text on green), links, focus
   - Inter Tight display, sentence case + periods; IBM Plex Mono labels
   - The one-page risk report deliberately stays light paper (see .report-page)
   - Severity: red/amber steps tuned for dark surfaces; brick red inside the report
   ============================================================ */
:root {
  /* Surfaces */
  --bg: #0A0C0A;
  --dark: #060706;
  --cream: #ECEFEA;                        /* light-ink family; card SURFACES are glass, set below */
  --card-bg: #161A16;
  --tile-bg: #1B201B;
  --border: rgba(255, 255, 255, 0.10);
  --pill-bg: rgba(255, 255, 255, 0.06);
  /* Ink */
  --ink: #ECEFEA;
  --muted: rgba(236, 239, 234, 0.8);
  --faint: rgba(236, 239, 234, 0.55);
  --ink-on-dark: #F2F5EF;
  --muted-on-dark: rgba(240, 244, 238, 0.76);
  --faint-on-dark: rgba(240, 244, 238, 0.58);
  --hairline-on-dark: rgba(255, 255, 255, 0.10);
  /* Accent — NVIDIA green on black */
  --green: #76B900;
  --blue: #76B900;                         /* legacy accent name; resolves to green everywhere */
  --cta-bg: #76B900;                       /* black text on green, ~8:1 */
  --cta-bg-hover: #8FD400;
  --cta-text: #0A0C0A;
  --link: #76B900;                         /* ~7.6:1 on the ground */
  --control-accent: #76B900;
  --focus-ring: rgba(118, 185, 0, 0.7);
  --red: #E4574F;                          /* dark-surface severity step; report restores brick red */
  --orange: #F08A3C;
  --glass: rgba(255, 255, 255, 0.06);
  --glass-border: rgba(255, 255, 255, 0.13);
  --glow: 0 0 24px rgba(118, 185, 0, 0.14);
  --shadow-card: 0 0 0 1px rgba(255, 255, 255, 0.05), 0 10px 30px rgba(0, 0, 0, 0.45);
  --r-sm: 2px;
  --r-md: 6px;
  --r-lg: 10px;
  --r-pill: 100px;
  --ease: cubic-bezier(0.2, 0.7, 0.3, 1);
  --font-display: "Inter Tight", "Inter", system-ui, sans-serif;
  /* The logo lockup's wide, stretched grotesque: Archivo at 125% width */
  --font-logo: "Archivo", "Inter Tight", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, Menlo, monospace;
}


* { margin: 0; padding: 0; box-sizing: border-box; }

/* Author display rules must never override the hidden attribute. */
[hidden] { display: none !important; }

html { scroll-padding-top: 88px; }

main > section { scroll-margin-top: 88px; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  font-family: var(--font-body);
  font-size: 0.9375rem;              /* 15px */
  line-height: 1.6;
  letter-spacing: -0.006em;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Headings follow the logo lockup: wide stretched caps */
h1, h2, .display-lg {
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--ink);
}
h1 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); line-height: 1.14; letter-spacing: 0.015em; }
h2 { font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.18; letter-spacing: 0.02em; }
.display-lg { font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.14; letter-spacing: 0.015em; }
h3 { font-family: var(--font-body); font-size: 1.0625rem; font-weight: 500; line-height: 1.4; color: var(--ink); letter-spacing: -0.01em; }
.title-md { font-size: clamp(1.6rem, 3.2vw, 2.3rem); line-height: 1.12; }

p { color: var(--muted); }
p strong { color: var(--ink); font-weight: 600; }

a { color: var(--link); text-decoration: none; }
a:hover { color: var(--ink); }

::selection { background: rgba(118, 185, 0, 0.32); color: #FFFFFF; }

:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
  border-radius: 3px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--ink);
  color: #fff;
  padding: 12px 20px;
  z-index: 100;
}
.skip-link:focus { left: 0; color: #fff; }

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding-inline: clamp(20px, 4.5vw, 40px);
}

section { padding-block: clamp(64px, 9vw, 100px); }

.section-intro { max-width: 660px; }
.section-intro p { margin-top: 16px; font-size: 1rem; line-height: 1.6; }
.section-intro h1, .section-intro h2 { margin-top: 18px; }
.section-header {
  width: 100%;
  max-width: none;
  margin-inline: auto;
  text-align: center;
}
.section-header h2 {
  max-width: 1180px;
  margin-top: 0;
  margin-inline: auto;
  font-size: clamp(1.65rem, 2.8vw, 2.45rem);
  line-height: 1.08;
  text-wrap: balance;
}
.section-header p {
  max-width: 780px;
  margin: 18px auto 0;
  text-wrap: pretty;
}
.section-header .heading-accent {
  color: var(--green);
  text-shadow: 0 0 24px rgba(118, 185, 0, 0.24);
}
.measure { max-width: 52rem; }

/* Mono tag — the labeling voice */
.eyebrow {
  font-family: var(--font-mono);
  font-size: 0.6875rem;              /* 11px */
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ---------- Dark band system ----------
   One class drives every #1A1716 zone: hero, commitments, booking, article CTA. */
.band-dark { background: var(--dark); color: var(--ink-on-dark); }
.band-dark h1, .band-dark h2, .band-dark h3, .band-dark .display-lg { color: var(--ink-on-dark); }
.band-dark p { color: var(--muted-on-dark); }
.band-dark .eyebrow { color: var(--faint-on-dark); }
.band-dark a:not(.btn) { color: var(--ink-on-dark); text-decoration: underline; text-underline-offset: 3px; }
.band-dark a:not(.btn):hover { color: #fff; }

/* ---------- Light band system ----------
   Calm off-white sections separate the long dark homepage into clear chapters. */
.band-light {
  background: #F2F4EF;
  color: #121712;
  border-top: 1px solid rgba(30, 46, 28, 0.12);
  border-bottom: 1px solid rgba(30, 46, 28, 0.12);
}
.band-light h1,
.band-light h2,
.band-light h3,
.band-light h4,
.band-light .display-lg { color: #121712; }
.band-light p { color: #4E594E; }
.band-light p strong { color: #121712; }
.band-light .eyebrow { color: #4D7900; }
.band-light .heading-accent {
  color: #4D7900;
  text-shadow: none;
}
.band-light a:not(.btn) { color: #3F6800; }
.band-light a:not(.btn):hover { color: #121712; }
.band-light .btn-quiet {
  color: #121712;
  border-color: rgba(18, 23, 18, 0.24);
}
.band-light .btn-quiet:hover { border-color: #121712; color: #121712; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  border: none;
  border-radius: 999px;
  padding: 10px 22px;
  cursor: pointer;
}
@media (prefers-reduced-motion: no-preference) {
  .btn { transition: background 0.18s var(--ease), border-color 0.18s var(--ease), color 0.18s var(--ease); }
}
.btn-primary { color: var(--cta-text); background: var(--cta-bg); }
.btn-primary:hover { background: var(--cta-bg-hover); color: var(--cta-text); }
.btn-light { color: var(--ink); background: var(--cream); }
.btn-light:hover { background: #fff; color: var(--ink); }
.btn-quiet { color: var(--ink); background: transparent; border: 1px solid var(--border); }
.btn-quiet:hover { border-color: var(--ink); color: var(--ink); }
.band-dark .btn-quiet { color: var(--ink-on-dark); border-color: rgba(255, 255, 255, 0.3); }
.band-dark .btn-quiet:hover { border-color: var(--ink-on-dark); }
.btn[disabled] { opacity: 0.55; cursor: not-allowed; }
/* Tap-target exception: full-width conversion buttons stay >=44px tall */
.form-nav .btn, .price-block .btn { padding: 12px 18px; }

/* ---------- Header — solid dark bar on every page ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--dark);
  border-bottom: 1px solid var(--hairline-on-dark);
}
.header-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 72px;
  padding-inline: clamp(20px, 4.5vw, 40px);
}
.brand { display: flex; align-items: center; text-decoration: none; flex: none; }
.brand-lockup-img { height: 31px; width: auto; display: block; }
.brand-mark-img { height: 36px; width: auto; display: none; }
@media (max-width: 700px) {
  .brand-lockup-img { display: none; }
  .brand-mark-img { display: block; }
}
.site-nav { margin-left: auto; }
.site-nav ul { display: flex; align-items: center; gap: 26px; list-style: none; }
.site-nav a:not(.btn) {
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  white-space: nowrap;
}
.site-nav a:not(.btn):hover { color: #fff; }
.site-nav .btn { font-size: 0.8125rem; padding: 9px 20px; }
@media (max-width: 940px) {
  .site-nav > ul > li:not(.nav-cta):not(.nav-dropdown) { display: none; }
  .nav-drop-menu { left: auto; right: 0; transform: none; min-width: 260px; }
}

/* Services dropdown */
.nav-dropdown { position: relative; }
.nav-drop-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
  padding: 10px 0;
  white-space: nowrap;
}
.nav-drop-btn:hover { color: #fff; }
.nav-drop-btn .chevron { width: 10px; height: 10px; flex: none; }
.nav-drop-btn .chevron path { stroke: currentColor; }
@media (prefers-reduced-motion: no-preference) {
  .nav-drop-btn .chevron { transition: transform 0.16s var(--ease); }
}
.nav-drop-btn[aria-expanded="true"] .chevron { transform: rotate(180deg); }
.site-nav ul.nav-drop-menu { display: block; }
.nav-drop-menu {
  position: absolute;
  top: calc(100% + 18px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 320px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: 0 12px 32px rgba(26, 23, 22, 0.16), var(--shadow-card);
  list-style: none;
  padding: 6px;
  z-index: 60;
}
.site-nav .nav-drop-menu a {
  display: block;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}
.site-nav .nav-drop-menu a:hover { background: var(--tile-bg); color: var(--ink); }
.site-nav .nav-drop-menu a[aria-current="page"] { background: var(--tile-bg); }
.nav-drop-menu .drop-all { border-top: 1px solid var(--border); margin-top: 6px; padding-top: 6px; }
@media (max-width: 700px) {
  .nav-drop-menu {
    position: fixed;
    top: 70px;
    left: 16px;
    right: 16px;
    width: auto;
    min-width: 0;
    transform: none;
  }
}

/* ---------- Dark split hero (homepage) ---------- */
.hero-dark {
  background: var(--dark);
  color: var(--ink-on-dark);
  padding-block: clamp(64px, 8vw, 96px);
  overflow-x: clip; /* the rack SVG overhangs the container on purpose */
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1px 0.95fr;
  gap: clamp(32px, 4.5vw, 60px);
  align-items: center;
}
.hero-rule { background: var(--hairline-on-dark); align-self: stretch; }
@media (max-width: 940px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-rule { display: none; }
}
.hero-dark .eyebrow { color: var(--faint-on-dark); }
.hero-dark h1 { color: var(--ink-on-dark); margin-top: 20px; max-width: 15ch; }
.hero-lead { margin-top: 24px; font-size: 1rem; line-height: 1.65; color: var(--muted-on-dark); max-width: 34em; }
.hero-cta { margin-top: 32px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.cta-note { font-size: 0.8125rem; line-height: 1.6; color: var(--faint-on-dark); max-width: 30em; }

/* ---------- Trust strip (pill tiles on stone) ---------- */
.hero-badges { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: clamp(36px, 5vw, 60px); }
.trust-label { font-size: 0.8125rem; color: var(--muted-on-dark); }

/* ---------- Fake product-UI kit (the site's imagery) ---------- */
.ui-card {
  background: var(--cream);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  color: var(--ink);
  padding: 20px;
  font-size: 0.8125rem;
  letter-spacing: -0.006em;
}
.ui-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}
.ui-card ul { list-style: none; }
.ui-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 11px 0;
  border-bottom: 1px solid var(--border);
}
.ui-row:last-child { border-bottom: none; }
.ui-row .ui-item { color: var(--ink); font-weight: 500; flex: 1; }
.ui-badge {
  flex: none;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
  padding: 5px 9px;
  border-radius: var(--r-pill);
  background: var(--tile-bg);
  color: var(--ink);
  white-space: nowrap;
}
.ui-badge.is-high { background: rgba(179, 50, 44, 0.1); color: var(--red); }
.ui-badge.is-med { background: rgba(216, 82, 16, 0.1); color: #B34410; } /* --orange darkened to hold AA on the tint */
.ui-badge.is-ok { background: var(--dark); color: var(--cream); }
.ui-foot {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.75rem;
}
.ui-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.ui-dot.is-high { background: var(--red); }
.ui-dot.is-med { background: var(--orange); }
.ui-dot.is-low { background: var(--border); }
.ui-check {
  flex: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--control-accent);
  position: relative;
}
.ui-check::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 4.5px;
  width: 7px;
  height: 4px;
  border-left: 1.5px solid #fff;
  border-bottom: 1.5px solid #fff;
  transform: rotate(-45deg);
}
.ui-check.is-open { background: var(--tile-bg); }
.ui-check.is-open::after { border-color: var(--muted); }
.ui-amount { font-variant-numeric: tabular-nums; font-weight: 500; white-space: nowrap; }

/* The hero report card — carries real content, richer padding */
.report-card { padding: 26px; align-self: center; }
.report-card .footnote { padding-top: 14px; font-size: 0.8125rem; color: var(--muted); }
.report-card .ui-row { padding: 12px 0; }
.report-card .ui-item { font-size: 0.875rem; }

/* ---------- Panels & cards on stone ---------- */
.panel-grid {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.panel-grid.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .panel-grid.grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .panel-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .panel-grid.grid-4 { grid-template-columns: 1fr; } }
.panel {
  background: var(--cream);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  padding: 26px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.panel-num { font-family: var(--font-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.09em; color: var(--muted); }
.panel > .panel-num { display: block; margin-bottom: 8px; }
.panel h3 { font-size: 1rem; font-weight: 500; }
.panel p { margin-top: 8px; font-size: 0.875rem; line-height: 1.6; }
.panel .card-link { margin-top: auto; padding-top: 18px; }
.card-link {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--link);
}
.card-link:hover { color: var(--ink); }
.card-link::after { content: " \2192"; }
/* Fake-UI visual header inside a panel */
.panel-visual { align-self: stretch; margin-bottom: 18px; }
.panel-visual .ui-card { background: rgba(255, 255, 255, 0.05); }

/* Stat row — the big-numbers moment */
.stat-row {
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
@media (max-width: 900px) { .stat-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .stat-row { grid-template-columns: 1fr; } }
.stat-num { font-family: var(--font-display); font-size: clamp(1.9rem, 3.4vw, 2.9rem); line-height: 1.05; letter-spacing: -0.02em; color: var(--ink); }
.stat-label { margin-top: 8px; font-family: var(--font-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted); }

.section-note { margin-top: 18px; font-size: 0.875rem; color: var(--muted); max-width: 640px; }
.panel-links { display: flex; flex-wrap: wrap; gap: 18px; }
.band-dark .stat-row { border-top-color: var(--hairline-on-dark); }
.band-dark .stat-num { color: var(--ink-on-dark); }
.band-dark .stat-label { color: var(--faint-on-dark); }

/* Includes list (deliverables) */
.includes { list-style: none; margin-top: 20px; }
.includes li {
  position: relative;
  padding: 9px 0 9px 28px;
  color: var(--muted);
  font-size: 0.9375rem;
  border-bottom: 1px solid var(--border);
}
.includes li:last-child { border-bottom: none; }
.includes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 15px;
  height: 15px;
  background-color: var(--control-accent);
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="none" stroke="black" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" d="M2.5 8.5 6 12 13.5 4.5"/></svg>') center / contain no-repeat;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="none" stroke="black" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" d="M2.5 8.5 6 12 13.5 4.5"/></svg>') center / contain no-repeat;
}
@supports not (mask: url('')) {
  .includes li::before { content: "\2013"; background: none; color: var(--control-accent); width: auto; height: auto; top: 0.55em; }
}

/* Exclusions list — neutral dashes, not the blue checks */
.excludes-wrap { margin-top: 44px; max-width: 640px; }
.excludes-wrap .eyebrow { margin-bottom: 4px; }
.includes.excludes li::before {
  -webkit-mask: none;
  mask: none;
  background: none;
  background-color: transparent;
  content: "\2014";
  color: var(--faint);
  width: auto;
  height: auto;
  top: 0.05em;
}

/* Thank-you calendar embed (GoHighLevel) */
.calendar-embed { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border); }
.calendar-embed h4 { font-family: var(--font-display); font-size: 1.125rem; font-weight: 400; letter-spacing: -0.015em; margin-bottom: 12px; }
.calendar-embed iframe { width: 100%; min-height: 700px; border: 0; border-radius: var(--r-sm); background: #1a1a1a; }

/* Assessment / two-column money card */
.assessment-card {
  margin-top: 44px;
  background: var(--cream);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  padding: clamp(26px, 4vw, 40px);
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: clamp(28px, 4vw, 56px);
}
@media (max-width: 860px) { .assessment-card { grid-template-columns: 1fr; } }
.price-block { border-left: 1px solid var(--border); padding-left: clamp(24px, 3vw, 44px); }
@media (max-width: 860px) { .price-block { border-left: none; padding-left: 0; border-top: 1px solid var(--border); padding-top: 24px; } }
.price-from { font-family: var(--font-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted); }
.price {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.2vw, 2.5rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.05;
  margin-top: 8px;
}
.price-block .btn { margin-top: 20px; width: 100%; }
.price-block p { font-size: 0.875rem; margin-top: 12px; }
.price-block .price-lead { font-size: 1rem; line-height: 1.55; color: var(--ink); font-weight: 500; margin-top: 10px; }
.price-block .card-link { display: inline-block; margin-top: 14px; }


/* ---------- Enforcement ledger (data stays sacred) ---------- */
.ledger-wrap { max-width: 960px; margin: 44px auto 0; }
.ledger {
  background: var(--cream);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.ledger-title { padding: 24px 28px 18px; border-bottom: 1px solid var(--ink); }
.ledger-title h2, .ledger-title h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.25rem;
  letter-spacing: -0.015em;
  line-height: 1.25;
}
.ledger-source {
  display: block;
  margin-top: 8px;
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.ledger-scroll { overflow-x: auto; }
.ledger table { width: 100%; min-width: 640px; border-collapse: collapse; }
.ledger th {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--muted);
  text-align: left;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  background: var(--tile-bg);
}
.ledger th:first-child, .ledger td:first-child { padding-left: 28px; }
.ledger th:last-child, .ledger td:last-child { padding-right: 28px; text-align: right; }
.ledger td { padding: 16px 18px; border-bottom: 1px solid var(--border); vertical-align: top; font-size: 0.9375rem; color: var(--muted); }
.ledger tr:last-child td { border-bottom: none; }
.ledger .org { color: var(--ink); font-weight: 600; display: block; }
.ledger .org-detail { display: block; font-size: 0.8125rem; font-style: italic; font-weight: 400; color: var(--muted); margin-top: 3px; }
.ledger .amount {
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  color: var(--red);
  white-space: nowrap;
}
.ledger-note { padding: 16px 28px 22px; border-top: 1px solid var(--border); font-size: 0.8125rem; font-style: italic; color: var(--muted); }

/* ---------- Dark commitment cards (compliance pattern) ---------- */
.guarantees { margin-top: 48px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
@media (max-width: 1000px) { .guarantees { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .guarantees { grid-template-columns: 1fr; } }
.guarantee {
  background: rgba(255, 255, 255, 0.05);
  border-radius: var(--r-sm);
  padding: 22px;
  min-height: 280px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 620px) { .guarantee { min-height: 0; } }
.guarantee .g-icon { width: 40px; height: 40px; color: var(--faint-on-dark); margin-bottom: 20px; }
.guarantee .g-icon svg { width: 100%; height: 100%; display: block; }
.guarantee h3 { font-family: var(--font-display); font-size: 1.125rem; font-weight: 400; color: var(--ink-on-dark); margin-top: auto; }
.guarantee p { font-size: 0.875rem; margin-top: 10px; color: var(--muted-on-dark); }

/* ---------- Serif pull-quote ---------- */
.serif-quote {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--ink);
  max-width: 21em;
  margin: 28px auto 0;
}
.quote-attrib { margin-top: 32px; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.avatar-circle {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--tile-bg);
  border: 1px dashed var(--faint);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.quote-name { font-size: 0.9375rem; font-weight: 500; color: var(--ink); }
.quote-role { font-size: 0.8125rem; color: var(--muted); }
.credentials { list-style: none; margin-top: 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.credentials li {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
  background: var(--pill-bg);
  border-radius: 6px;
  padding: 8px 13px;
}

/* ---------- Advisor carousel ---------- */
.carousel { margin-top: 44px; }
.carousel-scroller {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  /* shadow-bleed room: --shadow-card blurs past the card edge */
  padding: 8px;
  margin: -8px;
  scroll-padding-inline-start: 8px;
  scrollbar-width: thin;                    /* visible scrollbar is the no-JS affordance */
  scrollbar-color: var(--border) transparent;
}
.carousel-track { display: flex; gap: 16px; list-style: none; }
/* One card per view (hero carousel); JS adds infinite looping on top */
.carousel-hero { max-width: 860px; }
.carousel-js .carousel-scroller { overflow: hidden; touch-action: pan-y; }
.carousel-js .carousel-track { will-change: transform; }
@media (prefers-reduced-motion: no-preference) {
  .carousel-js .carousel-track { transition: transform 0.45s var(--ease); }
}
.advisor-card {
  flex: 0 0 100%;
  scroll-snap-align: start;
  background: var(--cream);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  padding: clamp(24px, 3.5vw, 36px);
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
}
.advisor-card .avatar-circle { margin-bottom: 16px; }
@media (min-width: 760px) {
  .advisor-card { grid-template-columns: 112px 1fr; column-gap: 28px; }
  .advisor-card > :not(.avatar-circle):not(.cred-row) { grid-column: 2; }
  .advisor-card .avatar-circle { grid-row: 1 / 5; width: 96px; height: 96px; margin-bottom: 0; }
  .advisor-card .cred-row { grid-column: 1 / -1; }
}
.advisor-card .advisor-bio { max-width: 58ch; }
.advisor-name { font-size: 0.9375rem; font-weight: 500; }
.advisor-role {
  margin-top: 4px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}
.advisor-bio { margin-top: 12px; font-size: 0.875rem; line-height: 1.6; }
.advisor-tags { margin-top: 16px; justify-content: flex-start; gap: 6px; }
.cred-row {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  align-self: stretch;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.cred-mark {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  --mark-accent: var(--blue);   /* inherits through the <use> shadow tree */
}
.cred-mark svg { flex: none; }
.cred-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.cred-note {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-left: auto;
}
/* Standalone credential strip on funnel pages (no card border) */
.authority-row { margin-top: 28px; display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.authority-row .cred-mark { gap: 9px; }
.authority-row .cred-mark svg { width: 26px; height: 26px; }
.authority-row .cred-note { margin-left: 0; }
.authority-link { display: inline-block; margin-top: 20px; }
.pricing-cta { margin-top: 28px; }
.carousel-nav { display: flex; align-items: center; gap: 8px; margin-top: 24px; }
.carousel-btn {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--ink);
  cursor: pointer;
}
.carousel-btn:hover { border-color: var(--ink); }
.carousel-btn[disabled] { opacity: 0.4; cursor: default; }
.carousel-btn[disabled]:hover { border-color: var(--border); }
.carousel-btn svg { width: 14px; height: 14px; }
.carousel-count {
  margin-left: 8px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.09em;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.advisor-quote {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--border);
  text-align: center;
}
.advisor-quote .quote-attrib { margin-top: 20px; }
.quote-compact { font-size: clamp(1.35rem, 2.2vw, 1.75rem); margin-top: 0; }

/* Seal badges (trust strip) */
.seals { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(26px, 3.2vw, 44px); list-style: none; }
.seals .seal { width: clamp(84px, 7.5vw, 104px); height: auto; display: block; }
.seal-marquee { width: 100%; }
.seal-marquee.is-animated {
  display: flex;
  gap: clamp(26px, 3.2vw, 44px);
  overflow: hidden;
  /* room for the drop-shadow glow, which overflow: hidden would otherwise clip */
  padding-block: 24px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 22%, #000 78%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 22%, #000 78%, transparent);
}
.seal-marquee.is-animated .seals {
  flex: none;
  flex-wrap: nowrap;
  justify-content: flex-start;
  animation: seal-scroll 48s linear infinite;
}
.seal-marquee.is-animated:hover .seals { animation-play-state: paused; }
@keyframes seal-scroll {
  to { transform: translateX(calc(-100% - clamp(26px, 3.2vw, 44px))); }
}
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Booking form ---------- */
.form-shell {
  margin-top: 40px;
  max-width: 680px;
  background: var(--cream);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-card);
  color: var(--ink);
  padding: clamp(24px, 4vw, 40px);
}
.band-dark .form-shell h3, .form-shell h3 { color: var(--ink); }
.band-dark .form-shell p { color: var(--muted); }
.form-progress { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.progress-dots { display: flex; gap: 7px; }
.progress-dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--border); display: block; }
.progress-dots span.done { background: var(--control-accent); }
.progress-text { font-family: var(--font-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted); }
.form-step legend, .form-step h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 400; letter-spacing: -0.015em; color: var(--ink); margin-bottom: 16px; }
.form-step fieldset { border: none; }
.form-step legend { padding: 0; }
.form-step .sub-legend { margin-top: 24px; }
.opts { display: grid; gap: 8px; }
.opt {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 13px 15px;
  cursor: pointer;
  font-size: 0.9375rem;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.05);
}
@media (prefers-reduced-motion: no-preference) {
  .opt { transition: border-color 0.16s var(--ease), background 0.16s var(--ease); }
}
.opt:hover { border-color: var(--faint); }
.opt input { accent-color: var(--control-accent); width: 18px; height: 18px; flex: none; }
.opt:has(input:checked) { border-color: var(--control-accent); box-shadow: 0 0 0 3px rgba(118, 185, 0, 0.18); }
.field { margin-bottom: 16px; }
.field label { display: block; font-size: 0.875rem; font-weight: 500; color: var(--ink); margin-bottom: 6px; }
.field .optional { font-weight: 400; color: var(--muted); }
.field input,
.field textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 1rem;                 /* 16px — prevents iOS focus zoom */
  color: var(--ink);
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, 0.05);
  outline: none;
}
.field textarea { resize: vertical; min-height: 64px; }
.field input:focus-visible, .field textarea:focus-visible { border-color: var(--control-accent); box-shadow: 0 0 0 3px rgba(118, 185, 0, 0.22); outline: none; }
.field input[aria-invalid="true"] { border-color: var(--red); }
.field-error { display: none; font-size: 0.8125rem; color: var(--red); margin-top: 6px; }
.field-error.show { display: block; }
.hp-field {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.step-error { display: none; font-size: 0.8125rem; color: var(--red); margin-top: 14px; }
.step-error.show { display: block; }
.form-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.form-nav .btn { min-width: 130px; }
.form-note { margin-top: 16px; font-size: 0.875rem; color: var(--muted); }
.form-shell .form-note a, .form-shell a:not(.btn) { color: var(--link); text-decoration: none; }
.form-shell a:not(.btn):hover { color: var(--ink); }
.form-microcopy { margin-top: 14px; font-family: var(--font-mono); font-size: 0.6875rem; line-height: 1.8; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.form-done h3 { font-size: 1.25rem; margin-bottom: 12px; }
.form-done p { font-size: 0.9375rem; }
.form-done p + p { margin-top: 12px; }
.form-fail { border: 1px solid var(--border); border-radius: var(--r-md); background: var(--tile-bg); padding: 18px; margin-top: 22px; }
.form-fail p { font-size: 0.875rem; color: var(--ink); }

/* ---------- About ---------- */
.about-section {
  background:
    radial-gradient(680px 380px at 12% 10%, rgba(118, 185, 0, 0.075), transparent 72%),
    #F7F8F4;
}
.about-section > .container > .section-header { text-align: center; }
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);
  align-items: center;
  gap: clamp(42px, 6vw, 84px);
  margin-top: clamp(38px, 5vw, 58px);
}
.about-copy { max-width: 650px; }
.about-copy .about-lead {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  font-weight: 600;
  line-height: 1.3;
  color: #121712;
}
.about-copy p + p {
  margin-top: 22px;
  max-width: 62ch;
  font-size: 1rem;
  line-height: 1.72;
  color: #4F594F;
}
.about-copy .btn { margin-top: 30px; }
.about-visual {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border: 1px solid rgba(77, 121, 0, 0.28);
  border-radius: var(--r-sm);
  background: #080A08;
  box-shadow: 0 24px 54px rgba(18, 28, 16, 0.16);
}
.about-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.about-commitments {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(44px, 6vw, 72px);
  border-top: 1px solid rgba(18, 23, 18, 0.18);
  border-bottom: 1px solid rgba(18, 23, 18, 0.18);
}
.about-commitments > div {
  min-width: 0;
  padding: 28px clamp(18px, 2.4vw, 30px);
}
.about-commitments > div + div { border-left: 1px solid rgba(18, 23, 18, 0.16); }
.about-commitments dt {
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #4D7900;
}
.about-commitments dd {
  margin-top: 10px;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #4F594F;
}
.about-faq {
  margin-top: clamp(68px, 9vw, 108px);
  padding-top: clamp(58px, 7vw, 82px);
  border-top: 1px solid rgba(18, 23, 18, 0.18);
}
@media (max-width: 900px) {
  .about-layout { grid-template-columns: 1fr; }
  .about-copy { max-width: 720px; }
  .about-visual { width: min(100%, 720px); }
  .about-commitments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-commitments > div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(18, 23, 18, 0.16); }
  .about-commitments > div:nth-child(4) { border-top: 1px solid rgba(18, 23, 18, 0.16); }
}
@media (max-width: 560px) {
  .about-copy .about-lead { font-size: 1.28rem; }
  .about-copy .btn { width: 100%; }
  .about-commitments { grid-template-columns: 1fr; }
  .about-commitments > div { padding: 22px 0; }
  .about-commitments > div + div { border-left: 0; border-top: 1px solid rgba(18, 23, 18, 0.16); }
  .about-faq { margin-top: 58px; padding-top: 50px; }
}

/* ---------- FAQ ---------- */
.faq-list {
  width: min(100%, 840px);
  max-width: 840px;
  margin-inline: auto;
}
#faq .section-header {
  text-align: center;
}
.faq-list {
  text-align: left;
}
.faq-list { margin-top: 36px; border-top: 1px solid var(--border); }
.faq-item { border-bottom: 1px solid var(--border); }
.faq-item h3 { font-size: inherit; }
.faq-q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  background: none;
  border: none;
  text-align: left;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: -0.006em;
  color: var(--ink);
  padding: 18px 4px;
  cursor: pointer;
}
.faq-q .chevron { flex: none; width: 13px; height: 13px; }
.faq-q .chevron path { stroke: var(--ink); }
@media (prefers-reduced-motion: no-preference) {
  .faq-q .chevron { transition: transform 0.16s var(--ease); }
}
.faq-q[aria-expanded="true"] .chevron { transform: rotate(180deg); }
.faq-a { padding: 0 36px 20px 4px; }
.faq-a p { font-size: 0.9375rem; }
.faq-a p + p { margin-top: 12px; }

/* ---------- Breadcrumb ---------- */
.breadcrumb { padding-top: 4px; margin-bottom: 24px; }
.breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.breadcrumb li + li::before { content: "/"; margin-right: 8px; opacity: 0.5; }
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--ink); }
.breadcrumb [aria-current="page"] { font-weight: 500; }
.band-dark .breadcrumb ol, .band-dark .breadcrumb a { color: var(--faint-on-dark); }
.band-dark .breadcrumb a { text-decoration: none; }
.band-dark .breadcrumb a:hover { color: var(--ink-on-dark); }
.band-dark .breadcrumb [aria-current="page"] { color: var(--muted-on-dark); }

/* Dark page hero (service pages) */
.page-hero { padding-block: clamp(48px, 6vw, 72px); }
.page-hero h1 { margin-top: 20px; max-width: 18ch; }
.page-hero .hero-lead { max-width: 40em; }
.page-hero .hero-cta { margin-top: 28px; }

/* ---------- Steps (process) ---------- */
.steps { margin-top: 44px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr; } }
.step { border-top: 1px solid var(--ink); padding-top: 18px; }
.step .panel-num { display: block; margin-bottom: 12px; }
.step h3 { margin-bottom: 8px; font-size: 0.9375rem; }
.step p { font-size: 0.875rem; }

/* ---------- Articles / resources ---------- */
.article-body { max-width: 720px; margin-top: 12px; }
.article-body h2 { font-size: clamp(1.35rem, 2.4vw, 1.75rem); margin-top: 52px; }
.article-body h3 { margin-top: 32px; font-size: 1.0625rem; }
.article-body p { margin-top: 18px; font-size: 1rem; line-height: 1.65; }
.article-body ul, .article-body ol { margin: 18px 0 0 24px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.article-body li { margin-top: 8px; }
.article-body li strong { color: var(--ink); }
.article-meta { font-family: var(--font-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted); margin-top: 18px; }
.article-cta {
  margin-top: 56px;
  max-width: 760px;
  padding: 32px;
  border-radius: var(--r-lg);
  background: var(--dark);
  color: var(--ink-on-dark);
}
.article-cta h2 { color: var(--ink-on-dark); font-size: 1.5rem; }
.article-cta p { color: var(--muted-on-dark); margin-top: 10px; }
.article-cta .btn { margin-top: 20px; }
.article-cta a:not(.btn) { color: var(--ink-on-dark); text-decoration: underline; text-underline-offset: 3px; }
.resource-card h2 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.3;
}

/* ---------- Footer (stone) ---------- */
.site-footer {
  background: var(--bg);
  border-top: 1px solid var(--border);
  color: var(--ink);
  padding-block: 64px 40px;
}
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-logo img { height: 30px; width: auto; display: block; max-width: 100%; }
.footer-tagline {
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}
.footer-contact { margin-top: 16px; font-style: normal; font-size: 0.875rem; color: var(--muted); line-height: 1.9; }
.footer-contact a { color: var(--ink); }
.footer-contact a:hover { color: var(--link); }
.footer-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
@media (max-width: 540px) { .footer-cols { grid-template-columns: 1fr; } }
.footer-heading {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.footer-links { list-style: none; }
.footer-links-stack { display: flex; flex-direction: column; gap: 9px; }
.footer-links a { color: var(--ink); text-decoration: none; font-size: 0.875rem; }
.footer-links a:hover { color: var(--link); }
.footer-legal {
  margin-top: 44px;
  padding-top: 22px;
  border-top: 1px solid var(--border);
  font-size: 0.8125rem;
  color: var(--muted);
}
.footer-copy { margin-top: 14px; font-size: 0.8125rem; color: var(--muted); }

/* ---------- Instant risk snapshot: hero widget ---------- */
.hero-tool { position: relative; }
.hero-rack {
  position: absolute;
  right: -82px; /* half the rack peeks out beside the card; .hero-dark clips the rest */
  top: 50%;
  transform: translateY(-50%);
  width: 150px;
  height: auto;
  color: rgba(118, 185, 0, 0.42);
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 940px) { .hero-rack { display: none; } }
/* Hook-first hero: single centered column, one big CTA */
.hero-solo { max-width: 1400px; margin-inline: auto; text-align: center; padding-block: clamp(28px, 4vw, 56px); }
.hero-dark .hero-solo h1 {
  width: 100%;
  max-width: 1320px;
  margin-inline: auto;
  font-size: clamp(2.5rem, 4vw, 3.55rem);
  text-wrap: balance;
}
.hero-heading-line { display: block; white-space: nowrap; }
.hero-heading-accent {
  color: var(--green);
  text-shadow: 0 0 28px rgba(118, 185, 0, 0.26);
}
@media (max-width: 640px) {
  .hero-heading-line { display: inline; white-space: normal; }
}
.hero-solo .hero-lead { max-width: 52em; margin-inline: auto; font-size: 1.125rem; margin-top: 28px; }
.hero-solo .hero-cta { flex-direction: column; align-items: center; gap: 18px; margin-top: 38px; }
.hero-solo .cta-note { max-width: none; }
.btn-hero {
  padding: 20px 46px;
  font-size: 1.0625rem;
  box-shadow: 0 0 22px rgba(118, 185, 0, 0.4), 0 0 60px rgba(118, 185, 0, 0.18);
}
.btn-hero:hover { box-shadow: 0 0 30px rgba(118, 185, 0, 0.6), 0 0 80px rgba(118, 185, 0, 0.3); }
@media (prefers-reduced-motion: no-preference) {
  .btn-hero { animation: hero-glow 2.6s ease-in-out infinite; }
  .btn-hero:hover { animation: none; }
}
@keyframes hero-glow {
  0%, 100% { box-shadow: 0 0 18px rgba(118, 185, 0, 0.32), 0 0 48px rgba(118, 185, 0, 0.14); }
  50% { box-shadow: 0 0 30px rgba(118, 185, 0, 0.55), 0 0 80px rgba(118, 185, 0, 0.26); }
}
.hero-pitch {
  font-size: clamp(1.1875rem, 1.8vw, 1.4375rem);
  line-height: 1.6;
  color: var(--ink-on-dark);
  max-width: 44em;
}
.hero-cta .btn-hero { flex: none; }
@media (max-width: 560px) {
  .btn-hero { padding: 18px 20px; font-size: 0.9375rem; letter-spacing: 0.05em; }
}

/* Full-screen assessment mode */
.assessment-overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0px, 3vw, 40px);
  background: rgba(6, 7, 6, 0.94);
}
@supports ((-webkit-backdrop-filter: blur(6px)) or (backdrop-filter: blur(6px))) {
  .assessment-overlay { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
}
@media (prefers-reduced-motion: no-preference) {
  .assessment-overlay { animation: overlay-in 0.16s ease-out; }
  @keyframes overlay-in { from { opacity: 0; } to { opacity: 1; } }
}
.assessment-panel { width: 100%; max-width: 640px; max-height: 94vh; display: flex; }
.assessment-panel .snapshot-widget { width: 100%; max-height: 94vh; overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 640px) {
  .assessment-overlay { padding: 0; }
  .assessment-panel, .assessment-panel .snapshot-widget { max-height: 100vh; max-height: 100dvh; height: 100dvh; }
}
body.assessment-open { overflow: hidden; }
.assessment-close {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--muted);
  font-size: 0.875rem;
  line-height: 1;
  padding: 6px 10px;
  cursor: pointer;
}
.assessment-close:hover { color: var(--ink); border-color: var(--green); }
.assessment-close:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.esc-hint { font-family: var(--font-mono); font-size: 0.625rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint); }

@media (prefers-reduced-motion: no-preference) {
  .rack-led { animation: led-pulse 2.8s ease-in-out infinite; }
  .rack-led.is-2 { animation-delay: 0.5s; }
  .rack-led.is-3 { animation-delay: 1s; }
  .rack-led.is-4 { animation-delay: 1.4s; }
  .rack-led.is-5 { animation-delay: 1.9s; }
  .rack-led.is-6 { animation-delay: 2.3s; }
  @keyframes led-pulse { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }
}
.snapshot-widget {
  position: relative;
  z-index: 1;
  padding: 22px;
  min-height: 470px;
  display: flex;
  flex-direction: column;
}
.snapshot-widget form { display: flex; flex-direction: column; flex: 1; }
.snapshot-widget .form-nav { margin-top: auto; padding-top: 16px; }
.snap-progress { margin: 12px 0 4px; }
.snap-step legend {
  font-family: var(--font-display);
  font-size: 1.0625rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 10px 0 10px;
  padding: 0;
}
.snap-step fieldset { border: none; }
.snap-step .sub-legend { margin-top: 16px; }
.snap-opts { grid-template-columns: 1fr 1fr; gap: 6px; }
.snap-opts .opt { padding: 9px 10px; font-size: 0.8125rem; gap: 8px; }
.snap-opts .opt input { width: 15px; height: 15px; }
.snap-nav .btn { min-width: 110px; }

/* ---------- Instant risk snapshot: rendered report ---------- */
#snapshot-report { padding-top: clamp(48px, 6vw, 72px); }
/* ---------- Model flow: focused five-step journey ---------- */
#model {
  position: relative;
  overflow: hidden;
}
#model::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(700px 440px at 12% 32%, rgba(118, 185, 0, 0.13), transparent 72%),
    radial-gradient(760px 480px at 88% 68%, rgba(118, 185, 0, 0.08), transparent 74%);
}
#model .container {
  position: relative;
  z-index: 1;
  max-width: 1240px;
}
.process-intro { max-width: none; }
.process-intro p { max-width: 720px; color: var(--muted); }
.work-steps {
  width: min(100%, 1080px);
  margin: clamp(38px, 5vw, 58px) auto 0;
  list-style: none;
  border-top: 1px solid rgba(118, 185, 0, 0.52);
}
.work-step {
  display: grid;
  grid-template-columns: 64px minmax(240px, 0.72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(20px, 3.2vw, 46px);
  padding: clamp(24px, 3vw, 34px) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.13);
}
.work-step-number {
  font-family: var(--font-logo);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--green);
}
.work-step h3 {
  font-family: var(--font-body);
  font-size: 1.08rem;
  font-weight: 650;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--ink);
}
.work-step p {
  max-width: 620px;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--muted);
}
@media (max-width: 900px) {
  .work-step {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 10px 20px;
  }
  .work-step h3,
  .work-step p { grid-column: 2; }
  .work-step p { margin-top: 2px; }
}
@media (max-width: 640px) {
  .work-steps { margin-top: 32px; }
  .work-step { grid-template-columns: 42px minmax(0, 1fr); padding-block: 22px; gap: 8px 12px; }
  .work-step-number { font-size: 1.15rem; }
  .work-step h3 { font-size: 1rem; }
  .work-step p { font-size: 0.9rem; line-height: 1.58; }
}
.journey-explorer {
  margin-top: clamp(38px, 5vw, 58px);
  border-top: 1px solid rgba(118, 185, 0, 0.5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(5, 7, 5, 0.72);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(8px);
}
.journey-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.journey-tab {
  position: relative;
  min-width: 0;
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 20px clamp(14px, 2vw, 24px);
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: var(--muted);
  text-align: left;
  cursor: pointer;
}
.journey-tab:last-child { border-right: 0; }
.journey-tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--green);
  box-shadow: 0 0 18px rgba(118, 185, 0, 0.52);
  transform: scaleX(0);
  transform-origin: left;
}
.journey-tab-num {
  flex: none;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.38);
}
.journey-tab-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
  white-space: nowrap;
}
.journey-tab:hover,
.journey-tab:focus-visible { color: var(--ink); background: rgba(255, 255, 255, 0.025); }
.journey-tab:focus-visible { outline: 2px solid var(--green); outline-offset: -3px; }
.journey-tab.is-active { color: var(--green); background: rgba(118, 185, 0, 0.055); }
.journey-tab.is-active::after { transform: scaleX(1); }
.journey-tab.is-active .journey-tab-num { color: var(--green); }
.journey-stage { position: relative; }
.journey-progress {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
}
.journey-progress span {
  display: block;
  width: 20%;
  height: 100%;
  background: var(--green);
  box-shadow: 0 0 12px rgba(118, 185, 0, 0.56);
}
.journey-panel {
  min-height: 330px;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.75fr);
  align-items: center;
  gap: clamp(42px, 7vw, 92px);
  padding: clamp(42px, 5vw, 68px);
}
.journey-panel[hidden] { display: none; }
.journey-focus { min-width: 0; max-width: 720px; }
.journey-kicker,
.journey-proof-label,
.journey-choice-label,
.journey-cta-kicker {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--green);
}
.journey-focus h3 {
  margin-top: 12px;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 3.2vw, 3rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.journey-focus > p:not(.journey-kicker) {
  margin-top: 20px;
  max-width: 690px;
  font-size: clamp(1rem, 1.3vw, 1.08rem);
  line-height: 1.7;
  color: var(--muted);
}
.journey-time {
  margin-left: 8px;
  color: var(--muted);
  letter-spacing: 0.06em;
}
.journey-proof {
  min-width: 0;
  padding-left: clamp(26px, 4vw, 46px);
  border-left: 1px solid rgba(118, 185, 0, 0.3);
}
.journey-proof-label { color: rgba(255, 255, 255, 0.55); }
.journey-proof ul { margin-top: 18px; list-style: none; }
.journey-proof li {
  position: relative;
  padding: 12px 0 12px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--ink);
}
.journey-proof li:last-child { border-bottom: 0; }
.journey-proof li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 19px;
  width: 7px;
  height: 2px;
  background: var(--green);
}
.journey-nav {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px clamp(22px, 5vw, 68px);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.journey-count {
  display: flex;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.journey-count [data-journey-current] { color: var(--green); }
.journey-controls { display: flex; gap: 8px; }
.journey-control {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.035);
  color: var(--ink);
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}
.journey-control:hover:not(:disabled),
.journey-control:focus-visible { border-color: var(--green); color: var(--green); }
.journey-control:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.journey-control:disabled { opacity: 0.25; cursor: default; }
.journey-choice {
  margin-top: clamp(42px, 6vw, 66px);
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(42px, 7vw, 94px);
  align-items: start;
  padding-top: clamp(30px, 4vw, 44px);
  border-top: 1px solid rgba(118, 185, 0, 0.34);
}
.journey-choice-intro h3 {
  margin-top: 9px;
  max-width: 430px;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: clamp(1.45rem, 2.4vw, 2.15rem);
  font-weight: 600;
  line-height: 1.1;
  text-transform: uppercase;
}
.journey-lanes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  min-width: 0;
}
.journey-lane { min-width: 0; padding-right: clamp(24px, 4vw, 46px); }
.journey-lane + .journey-lane {
  padding-right: 0;
  padding-left: clamp(24px, 4vw, 46px);
  border-left: 1px solid rgba(255, 255, 255, 0.13);
}
.fork-label {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.journey-lane.is-continue .fork-label { color: var(--green); }
.journey-lane h4 {
  margin-top: 8px;
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ink);
}
.journey-lane h4 + p {
  margin-top: 10px;
  font-size: 0.9375rem;
  line-height: 1.62;
}
.journey-lane .card-link { display: inline-block; margin-top: 15px; }
.journey-cta {
  margin-top: clamp(34px, 5vw, 52px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(24px, 5vw, 64px);
  padding: clamp(24px, 3vw, 32px) clamp(24px, 4vw, 46px);
  border: 1px solid rgba(118, 185, 0, 0.36);
  background: linear-gradient(90deg, rgba(118, 185, 0, 0.08), rgba(5, 7, 5, 0.42));
}
.journey-cta-copy { max-width: 680px; }
.journey-cta-copy p:not(.journey-cta-kicker) {
  margin-top: 7px;
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}
.journey-cta-action { display: flex; align-items: center; justify-content: flex-end; }
.journey-cta .btn {
  min-width: 190px;
  padding: 14px 32px;
  box-shadow: 0 0 28px rgba(118, 185, 0, 0.3);
}
@media (prefers-reduced-motion: no-preference) {
  .journey-tab,
  .journey-tab::after,
  .journey-progress span,
  .journey-control { transition: color 0.18s var(--ease), border-color 0.18s var(--ease), background 0.18s var(--ease), transform 0.25s var(--ease), width 0.35s var(--ease); }
  .journey-panel:not([hidden]) { animation: journey-panel-in 0.34s var(--ease); }
  @keyframes journey-panel-in {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: none; }
  }
}
@media (max-width: 900px) {
  .journey-tabs { overflow-x: auto; grid-template-columns: repeat(5, minmax(155px, 1fr)); scrollbar-width: none; }
  .journey-tabs::-webkit-scrollbar { display: none; }
  .journey-panel { grid-template-columns: 1fr; gap: 32px; min-height: 440px; }
  .journey-proof { padding-left: 0; padding-top: 26px; border-left: 0; border-top: 1px solid rgba(118, 185, 0, 0.3); }
  .journey-proof ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .journey-proof li { border-bottom: 0; }
  .journey-choice { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 640px) {
  #model .container { padding-inline: 20px; }
  .process-intro p { max-width: 330px; }
  .journey-explorer { margin-top: 32px; margin-inline: -20px; }
  .journey-tabs { padding-left: 8px; grid-template-columns: repeat(5, 138px); }
  .journey-tab { min-height: 78px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 13px 14px; gap: 7px; }
  .journey-tab-label { overflow: visible; text-overflow: clip; font-size: 0.625rem; }
  .journey-panel { min-height: 0; padding: 34px 20px 28px; gap: 28px; }
  .journey-focus h3 { font-size: 1.85rem; }
  .journey-focus > p:not(.journey-kicker) { margin-top: 16px; font-size: 0.9625rem; line-height: 1.62; }
  .journey-proof { padding-top: 22px; }
  .journey-proof ul { grid-template-columns: 1fr; gap: 0; margin-top: 12px; }
  .journey-proof li { padding-block: 9px; }
  .journey-proof li::before { top: 16px; }
  .journey-nav { padding-inline: 20px; }
  .journey-choice { margin-top: 42px; padding-top: 30px; }
  .journey-lanes { grid-template-columns: 1fr; gap: 24px; }
  .journey-lane { padding-right: 0; }
  .journey-lane + .journey-lane { padding: 24px 0 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.13); }
  .journey-cta { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px; }
  .journey-cta-action { width: 100%; }
  .journey-cta .btn { width: 100%; min-width: 0; }
}

/* ---------- Risk snapshot report: one-page dashboard ----------
   Severity palette (validated for CVD separation on the cream surface):
   low #3E7C46 / elevated #D9A50D / high #B3322C / critical #7E211C.
   Every colored mark carries a visible count or label. */
.report-page {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 24px 60px rgba(26, 23, 22, 0.14);
  max-width: 900px;
  margin-inline: auto;
  padding: clamp(24px, 4.5vw, 46px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
}
@media (min-width: 700px) {
  .report-page { aspect-ratio: 8.5 / 11; }
}
.rp-brand {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
}
.rp-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-top: 12px; }
.rp-title h2 { font-size: clamp(1.6rem, 3vw, 2.375rem); letter-spacing: -0.02em; overflow-wrap: anywhere; }
.snap-meta {
  margin-top: 8px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.snap-chip {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 9px 20px;
  border-radius: 6px;
  text-align: center;
  max-width: 250px;
}
.snap-chip.is-high { background: rgba(179, 50, 44, 0.08); border: 1px solid rgba(179, 50, 44, 0.35); }
.snap-chip.is-med { background: rgba(217, 165, 13, 0.12); border: 1px solid rgba(217, 165, 13, 0.55); }
.rp-verdict-label {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.rp-verdict { font-family: var(--font-display); font-weight: 500; font-size: 1.75rem; line-height: 1.05; letter-spacing: -0.02em; }
.snap-chip.is-high .rp-verdict { color: var(--red); }
.snap-chip.is-med .rp-verdict { color: #7A5D00; }
.rp-verdict-sub { font-size: 0.71875rem; line-height: 1.35; color: var(--muted); }

.rp-stats { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--border); }
.rp-stat { padding: 9px 14px; display: flex; flex-direction: column; gap: 2px; }
.rp-stat + .rp-stat { border-left: 1px solid var(--border); }
.rp-stat strong { font-family: var(--font-display); font-weight: 500; font-size: 1.625rem; letter-spacing: -0.02em; line-height: 1.1; }
.rp-stat span { font-size: 0.75rem; line-height: 1.4; color: var(--muted); }

.rp-sec-label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 8px;
}
.rp-sec-sub { color: var(--muted); font-weight: 400; text-align: right; }

.rp-charts { display: grid; grid-template-columns: 1.5fr 1fr; gap: 32px; align-items: start; }
.rp-matrix { display: grid; grid-template-columns: 64px repeat(3, 1fr); gap: 4px; }
.rp-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 2.55 / 1;
  border-radius: 4px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.25rem;
}
.rp-cell.is-low { background: #3E7C46; color: var(--cream); }
.rp-cell.is-med { background: #D9A50D; color: var(--ink); }
.rp-cell.is-high { background: var(--red); color: var(--cream); }
.rp-cell.is-crit { background: #7E211C; color: var(--cream); }
.rp-cell.is-empty { color: rgba(247, 247, 244, 0.55); }
.rp-cell.is-med.is-empty { color: rgba(30, 30, 30, 0.4); }
.rp-axis {
  display: flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}
.rp-axis-y { justify-content: flex-end; text-align: right; padding-right: 10px; }
.rp-axis-x { justify-content: center; padding-top: 8px; }

.rp-donut-wrap svg { display: block; width: 132px; height: 132px; margin-inline: auto; }
.rp-arc { fill: none; stroke-width: 14; }
.rp-arc-high { stroke: var(--red); }
.rp-arc-med { stroke: #D9A50D; }
.rp-donut-num { font-family: var(--font-display); font-weight: 500; font-size: 30px; fill: var(--ink); }
.rp-donut-cap { font-family: var(--font-mono); font-size: 6.5px; letter-spacing: 0.03em; text-transform: uppercase; fill: rgba(30, 30, 30, 0.62); }
.rp-sev { list-style: none; margin-top: 10px; }
.rp-sev li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 6px 0; border-top: 1px solid var(--border); font-size: 0.875rem; }
.rp-sev-count { min-width: 36px; text-align: center; border-radius: 4px; padding: 2px 8px; font-family: var(--font-display); font-weight: 500; }
.rp-sev-count.is-high { background: var(--red); color: var(--cream); }
.rp-sev-count.is-med { background: #D9A50D; color: var(--ink); }

.rp-legend { list-style: none; }
.rp-legend li { display: flex; align-items: center; gap: 12px; padding: 5px 0; border-top: 1px solid var(--border); }
.rp-legend li:first-child { border-top: none; }
.rp-num {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--dark);
  color: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
}
.rp-threat { flex: 1; font-size: 0.90625rem; font-weight: 500; letter-spacing: -0.01em; }

.rp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.rp-list { list-style: none; }
.rp-list li { display: flex; align-items: baseline; gap: 9px; padding: 4px 0; border-top: 1px solid var(--border); font-size: 0.84375rem; line-height: 1.4; }
.rp-list li:first-child { border-top: none; }
.rp-dot { flex-shrink: 0; width: 8px; height: 8px; border-radius: 50%; transform: translateY(-1px); }
.rp-dot.is-high { background: var(--red); }
.rp-dot.is-med { background: #D9A50D; }

.rp-foot { border-top: 1px solid var(--border); padding-top: 11px; display: flex; flex-direction: column; gap: 7px; }
.rp-fallout { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.rp-foot-label {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 3px;
}
.rp-chips { display: contents; }
.rp-chip {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 3px 11px;
  background: rgba(255, 255, 255, 0.65);
  font-size: 0.71875rem;
  line-height: 1.45;
}
.rp-regline { font-size: 0.8125rem; }
.rp-regline .card-link { font-size: 0.8125rem; margin-left: 4px; }
.rp-scope { font-size: 0.71875rem; font-style: italic; line-height: 1.55; color: var(--muted); }
.snap-email-note { font-size: 0.8125rem; color: var(--red); }
.snap-cta { margin-top: 24px; max-width: none; }

@media (max-width: 700px) {
  .rp-title { flex-direction: column; gap: 14px; }
  .snap-chip { max-width: none; align-self: stretch; }
  .rp-stats { grid-template-columns: 1fr 1fr; }
  .rp-stat:nth-child(odd) { border-left: none; }
  .rp-stat:nth-child(n+3) { border-top: 1px solid var(--border); }
  .rp-charts { grid-template-columns: 1fr; gap: 24px; }
  .rp-matrix { grid-template-columns: 56px repeat(3, 1fr); }
  .rp-cols { grid-template-columns: 1fr; gap: 18px; }
}

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

/* ---------- Scroll reveal (motion-safe only) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(12px); transition: opacity 0.5s var(--ease), transform 0.5s var(--ease); }
  .reveal.in { opacity: 1; transform: none; }
}

/* ============================================================
   V3 SKIN LAYER — Circuit Black surfaces & interactions
   (Appended overrides; layout rules above are untouched.)
   ============================================================ */
body { background-color: var(--bg); }
.eyebrow, .band-dark .eyebrow, .hero-dark .eyebrow { color: var(--green); }

/* Header: black glass bar */
.site-header {
  background: rgba(8, 10, 8, 0.92);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

/* Section rhythm: deep-black bands get a green hairline edge */
.band-dark { background: var(--dark); border-top: 1px solid rgba(118, 185, 0, 0.26); }
.article-cta { border: 1px solid var(--glass-border); }

/* Interactive hero: cursor spotlight + drifting glow (motion-safe) */
.hero-dark { position: relative; border-bottom: 1px solid rgba(118, 185, 0, 0.26); }
.hero-dark::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(560px 380px at var(--mx, 72%) var(--my, 28%), rgba(118, 185, 0, 0.12), transparent 70%);
}
.hero-dark .container { position: relative; z-index: 1; }
/* Frosted-glass pane kit */
.nav-drop-menu, .ui-card, .panel, .assessment-card, .ledger, .form-shell,
.advisor-card, .guarantee, .service-card {
  background: var(--glass);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  backdrop-filter: blur(14px) saturate(1.15);
  border: 1px solid var(--glass-border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .nav-drop-menu, .ui-card, .panel, .assessment-card, .ledger, .form-shell,
  .advisor-card, .guarantee, .service-card { background: #131513; }
}
.panel-visual .ui-card { background: rgba(255, 255, 255, 0.03); }
.nav-drop-menu { background: rgba(12, 14, 12, 0.92); }

/* Hover glow on interactive cards */
@media (prefers-reduced-motion: no-preference) {
  .panel, .advisor-card { transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease); }
}
.panel:hover, .advisor-card:hover {
  border-color: rgba(118, 185, 0, 0.45);
  box-shadow: var(--glow), 0 10px 30px rgba(0, 0, 0, 0.4);
}

/* Buttons: green primary, glass secondary */
.btn-light { background: var(--cta-bg); color: var(--cta-text); }
.btn-light:hover { background: var(--cta-bg-hover); color: var(--cta-text); }

/* Severity pills tuned for dark glass (the report restores its own below) */
.ui-badge.is-high { background: rgba(228, 87, 79, 0.16); color: #F0928C; }
.ui-badge.is-med { background: rgba(240, 138, 60, 0.16); color: #F5A96A; }
.ui-badge.is-ok { background: rgba(118, 185, 0, 0.18); color: #A8D95A; }

/* Journey: bold green step numbers */
.journey-num { background: none; border: 0; color: var(--green); }

/* Footer */
.site-footer { background: var(--dark); }

/* Seals get a whisper of glow so the dark discs sit off the ground */
.seal { filter: drop-shadow(0 0 16px rgba(118, 185, 0, 0.12)); }
.seal-link { display: block; border-radius: 50%; }
.seal-link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
.seal-link:hover .seal, .seal-link:focus-visible .seal {
  filter: drop-shadow(0 0 22px rgba(118, 185, 0, 0.45));
  transform: scale(1.06);
}
@media (prefers-reduced-motion: no-preference) {
  .seal-link .seal { transition: filter 0.2s var(--ease), transform 0.2s var(--ease); }
}

/* ---------- Exception: the risk report stays light paper ----------
   Scoped token reset; every rp-* rule above inherits these. */
.report-page {
  --bg: #EFEDEB;
  --dark: #1A1716;
  --cream: #F7F7F4;
  --card-bg: #E8E5E3;
  --tile-bg: #E4E1DF;
  --border: #D9D7D5;
  --pill-bg: rgba(84, 82, 82, 0.07);
  --ink: #1E1E1E;
  --muted: rgba(30, 30, 30, 0.72);
  --faint: rgba(30, 30, 30, 0.55);
  --red: #B3322C;
  --orange: #D85210;
  --link: #1650B8;
  background: var(--cream);
  color: var(--ink); /* re-resolve inherited text through the scoped light tokens */
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
}
.report-page .ui-badge.is-high { background: rgba(179, 50, 44, 0.1); color: var(--red); }
.report-page .ui-badge.is-med { background: rgba(216, 82, 16, 0.1); color: #B34410; }

/* ---------- V3.1: hero tuned to the approved mockups ---------- */
.hero-dark {
  background-color: var(--dark);
  background-image:
    linear-gradient(90deg, rgba(5, 6, 5, 0.55), rgba(5, 6, 5, 0.14) 46%, rgba(5, 6, 5, 0.32)),
    url("/assets/bg-hero.jpg");
  background-size: cover;
  background-position: center, right center;
  background-repeat: no-repeat;
}
.hero-dark h1 {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: clamp(2rem, 4.6vw, 3.4rem);
  line-height: 1.14;
  max-width: 30ch;
}
.hero-rack { display: none; }

/* Snapshot widget: corner bracket, green header, segmented progress, tile options */
.snapshot-widget { position: relative; }
.snapshot-widget::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  width: 16px;
  height: 16px;
  border-top: 2px solid var(--green);
  border-left: 2px solid var(--green);
  pointer-events: none;
}
.snapshot-widget .ui-head > span:first-child { color: var(--green); }
.ui-badge.snap-free { background: transparent; border: 1px solid var(--green); color: var(--green); }
.snap-bar { display: flex; gap: 6px; margin-top: 14px; }
.snap-bar span { height: 3px; flex: 1; border-radius: 2px; background: rgba(255, 255, 255, 0.14); }
.snap-bar span.done { background: var(--green); }
/* Single fill bar for the long scorecard flow */
.snap-bar-fill { display: block; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, 0.14); overflow: hidden; }
.snap-bar-fill span { display: block; width: 0; height: 100%; border-radius: 2px; background: var(--green); }
@media (prefers-reduced-motion: no-preference) {
  .snap-bar-fill span { transition: width 0.3s var(--ease); }
}

/* Terminal loading state */
.snap-loading { padding: 26px 0 30px; }
.term-line {
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  letter-spacing: 0.03em;
  color: rgba(236, 239, 234, 0.55);
  margin-top: 10px;
}
.term-line.is-on { color: var(--green); }
.term-line.is-on::after {
  content: "\2588";
  margin-left: 6px;
}
@media (prefers-reduced-motion: no-preference) {
  .term-line { animation: term-in 0.18s ease-out; }
  .term-line.is-on::after { animation: term-blink 0.85s steps(1) infinite; }
  @keyframes term-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
  @keyframes term-blink { 50% { opacity: 0; } }
}

/* In-widget result reveal */
.snap-result { outline: none; padding-top: 6px; }
.snap-thanks-head { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; letter-spacing: -0.015em; margin-top: 12px; }

/* ---------- 16-question assessment: views ---------- */
.snap-view { margin-top: 6px; }
.snap-view-title {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.35;
  color: var(--ink);
  outline: none;
  margin-top: 4px;
}
.snap-view-sub { margin-top: 10px; font-size: 0.9063rem; line-height: 1.55; color: var(--muted); }
.snap-view-note { margin-top: 8px; font-size: 0.8125rem; line-height: 1.5; color: var(--faint); }
.snap-kicker {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: 8px;
}
.snap-view .opts { margin-top: 16px; }
.snap-opts.is-stack { grid-template-columns: 1fr; }
.snap-opts.is-stack .opt { justify-content: flex-start; text-align: left; min-height: 46px; }
.snap-view .field { margin-top: 14px; }
.field select {
  width: 100%;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--ink);
  padding: 12px 38px 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background-color: rgba(255, 255, 255, 0.05);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%2376B900' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
}
.field select:focus-visible { border-color: var(--control-accent); box-shadow: 0 0 0 3px rgba(118, 185, 0, 0.22); }
.field select option { background: #131513; color: var(--ink); }
.field select[aria-invalid="true"] { border-color: var(--red); }
.snap-privacy, .snap-caution { margin-top: 12px; font-size: 0.75rem; line-height: 1.5; color: var(--faint); }
.snap-char-count { margin-top: 6px; font-family: var(--font-mono); font-size: 0.6875rem; color: var(--faint); text-align: right; }
.snap-progress-block { margin: 10px 0 2px; }
.snap-progress-block .progress-text { margin: 2px 0 0; }
.snap-progress-section { color: var(--green); }

/* ---------- 16-question assessment: results ---------- */
.snap-results { outline: none; padding-top: 6px; }
.snap-result-explain { margin-top: 14px; font-size: 0.9063rem; line-height: 1.6; color: var(--muted); }
.snap-sub-head {
  margin-top: 22px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--faint);
}
.snap-findings { list-style: none; margin-top: 10px; counter-reset: fnd; border-top: 1px solid var(--border); }
.snap-findings li { counter-increment: fnd; padding: 12px 0 12px 30px; border-bottom: 1px solid var(--border); position: relative; }
.snap-findings li::before {
  content: counter(fnd, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 14px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  color: var(--green);
}
.snap-findings strong { font-size: 0.9375rem; color: var(--ink); }
.snap-findings li > p { margin-top: 5px; font-size: 0.8438rem; line-height: 1.55; color: var(--muted); }
.snap-fw { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.snap-fw span {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.04em;
  color: var(--faint);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: 2px 7px;
  white-space: nowrap;
}
.snap-recommend { margin-top: 22px; border-left: 2px solid var(--green); padding: 4px 0 4px 16px; }
.snap-recommend-title { margin-top: 6px; font-family: var(--font-display); font-size: 1.0625rem; font-weight: 500; }
.snap-recommend-title a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.snap-recommend-title a:hover { color: var(--green); }
.snap-recommend > p:last-child { margin-top: 6px; font-size: 0.875rem; line-height: 1.55; color: var(--muted); }
.snap-chip.is-strong { background: rgba(118, 185, 0, 0.12); color: var(--green); border: 1px solid rgba(118, 185, 0, 0.4); }
.snap-chip.is-dev { background: rgba(240, 138, 60, 0.12); color: var(--orange); border: 1px solid rgba(240, 138, 60, 0.4); }
.snap-disclaimer { margin-top: 16px; font-size: 0.6875rem; font-style: italic; line-height: 1.5; color: var(--faint); }
/* The report's closing CTA: one big full-width button */
.snap-cta .btn {
  display: flex;
  width: 100%;
  justify-content: center;
  padding: 18px 28px;
  font-size: 1.0625rem;
  margin-top: 22px;
}

.snap-result-kicker {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--green);
}
.snap-result-score { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.snap-score-num {
  font-family: var(--font-display);
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--ink);
}
.snap-score-label { font-size: 0.875rem; color: var(--muted); max-width: 12em; }
.snap-chip { margin-left: auto; font-family: var(--font-mono); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.snap-chip.is-high { background: rgba(228, 87, 79, 0.14); color: var(--red); border: 1px solid rgba(228, 87, 79, 0.4); }
.snap-chip.is-med { background: rgba(240, 138, 60, 0.12); color: var(--orange); border: 1px solid rgba(240, 138, 60, 0.4); }
.snap-insights { list-style: none; margin-top: 18px; border-top: 1px solid var(--border); }
.snap-insights li {
  padding: 11px 0 11px 22px;
  border-bottom: 1px solid var(--border);
  font-size: 0.9063rem;
  color: var(--ink);
  position: relative;
}
.snap-insights li::before { content: "\203A"; position: absolute; left: 4px; color: var(--green); }
.snap-result-email { margin-top: 16px; font-size: 0.875rem; color: var(--muted); }
.snap-result-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.snap-result-actions .btn-primary { flex: 1 1 auto; justify-content: center; }
.link-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.snap-progress { margin: 10px 0 2px; }
.snap-opts .opt {
  position: relative;
  justify-content: center;
  text-align: center;
  min-height: 52px;
  padding: 10px 12px;
}
.snap-opts .opt input { position: absolute; opacity: 0; }
.snap-opts .opt:has(input:checked) {
  border-color: var(--green);
  background: rgba(118, 185, 0, 0.10);
  box-shadow: 0 0 0 1px var(--green);
}
.snap-opts .opt:has(input:focus-visible) { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.snap-nav .btn-primary { flex: 1; }
.snap-nav { display: flex; gap: 10px; }

/* ---------- Funnel components (v3.2) ---------- */
main > section:not(.band-dark):not(.hero-dark) + section:not(.band-dark) { border-top: 1px solid var(--border); }
.worked-with { margin: 40px auto 0; text-align: center; }
.worked-with-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}
.logo-row { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 14px; width: 100%; }
.logo-row li {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--faint);
  border: 1px dashed rgba(255, 255, 255, 0.22);
  border-radius: var(--r-sm);
  padding: 9px 16px;
}
.service-cards { margin-top: 44px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 860px) { .service-cards { grid-template-columns: 1fr; } }
.service-card {
  position: relative;
  border-radius: var(--r-md);
  padding: clamp(24px, 3vw, 32px);
  display: flex;
  flex-direction: column;
}
.service-card h3 { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; letter-spacing: -0.015em; margin-top: 10px; }
.service-card h3 + p { margin-top: 8px; }
.service-card .includes { margin-top: 14px; }
.service-card .includes li { font-size: 0.875rem; padding-block: 7px; }
.service-price { margin-top: 14px; font-size: 0.8125rem; color: var(--muted); }
.service-actions { margin-top: auto; padding-top: 18px; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
/* ---------- Section variety (v3.3): each section wears its own layout ---------- */
.section-intro.is-center { margin-inline: auto; text-align: center; }

/* Outcomes: scroll-led proof story */
#outcomes {
  position: relative;
  overflow: hidden;
  padding-bottom: clamp(72px, 7vw, 104px);
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(15, 27, 10, 0.58) 0%, rgba(6, 7, 6, 0.94) 16%, rgba(8, 15, 7, 0.88) 55%, rgba(6, 7, 6, 0.98) 100%);
}
#outcomes::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(720px 380px at 82% 8%, rgba(118, 185, 0, 0.13), transparent 72%),
    radial-gradient(620px 360px at 12% 48%, rgba(118, 185, 0, 0.075), transparent 70%),
    radial-gradient(760px 420px at 84% 88%, rgba(118, 185, 0, 0.09), transparent 72%);
}
#outcomes .container {
  position: relative;
  z-index: 1;
  max-width: 1540px;
}
#outcomes .section-intro {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}
#outcomes .section-intro h2 {
  max-width: none;
  margin-inline: auto;
  text-align: center;
  font-size: clamp(1.65rem, 2.8vw, 2.45rem);
  line-height: 1.08;
  white-space: nowrap;
}
#outcomes .heading-accent {
  color: var(--green);
  text-shadow: 0 0 24px rgba(118, 185, 0, 0.24);
}
.outcome-flow {
  margin-top: clamp(40px, 4.5vw, 64px);
  position: relative;
}
.outcome-flow::before {
  content: "";
  position: absolute;
  top: 2%;
  bottom: 3%;
  left: 50%;
  z-index: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(118, 185, 0, 0.22), transparent);
  box-shadow: 0 0 30px rgba(118, 185, 0, 0.12);
  pointer-events: none;
}
.outcome {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(500px, 0.92fr);
  gap: clamp(40px, 4.6vw, 68px);
  align-items: center;
  min-height: 0;
  padding-block: clamp(50px, 5vw, 72px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.outcome:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.outcome::before {
  content: "";
  position: absolute;
  inset: 10% -4%;
  z-index: -1;
  background: radial-gradient(ellipse at 26% 50%, rgba(118, 185, 0, 0.07), transparent 58%);
  opacity: 0.86;
  pointer-events: none;
}
.outcome.is-reverse::before {
  background: radial-gradient(ellipse at 74% 50%, rgba(118, 185, 0, 0.07), transparent 58%);
}
.outcome-copy {
  --outcome-copy-offset: 0px;
  max-width: none;
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  padding: 0;
}
.outcome.is-reverse {
  grid-template-columns: minmax(500px, 0.92fr) minmax(0, 1fr);
}
.outcome-media {
  grid-column: 2;
  grid-row: 1;
}
.outcome-copy,
.outcome.is-reverse .outcome-copy {
  grid-column: 1;
  grid-row: 1;
  padding: 0;
}
.outcome.is-reverse .outcome-copy {
  grid-column: 2;
}
.outcome.is-reverse .outcome-media {
  grid-column: 1;
  grid-row: 1;
}
.outcome-media {
  position: relative;
  aspect-ratio: 16 / 9;
  margin: 0;
  overflow: hidden;
  border-radius: var(--r-md);
  background: var(--dark);
  border: 1px solid rgba(118, 185, 0, 0.20);
  box-shadow:
    0 24px 54px rgba(0, 0, 0, 0.34),
    0 0 42px rgba(118, 185, 0, 0.08);
}
.outcome-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 44%, rgba(6, 7, 6, 0.22) 100%),
    radial-gradient(420px 180px at 50% 100%, rgba(118, 185, 0, 0.14), transparent 70%);
  pointer-events: none;
}
.outcome-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.outcome-title {
  grid-column: 1;
  display: flex;
  align-items: center;
  min-width: 0;
}
.outcome-stat {
  grid-column: 1;
  grid-row: auto;
  margin-top: clamp(14px, 1.6vw, 20px);
  margin-left: var(--outcome-copy-offset);
  display: inline-grid;
  grid-template-columns: max-content 1px max-content;
  width: fit-content;
  align-items: center;
  column-gap: clamp(14px, 1.45vw, 22px);
  padding-block: 2px;
}
.outcome-stat strong,
.outcome-stat-label {
  display: flex;
  align-items: center;
  font-family: var(--font-display);
  line-height: 0.95;
  color: var(--green);
  text-shadow: 0 0 22px rgba(118, 185, 0, 0.18);
  text-transform: uppercase;
}
.outcome-stat strong {
  font-size: clamp(2.1rem, 2.7vw, 3.15rem);
  letter-spacing: 0;
  white-space: nowrap;
}
.outcome-stat-divider {
  display: block;
  width: 1px;
  height: clamp(38px, 3.65vw, 56px);
  background: linear-gradient(180deg, rgba(118, 185, 0, 0.08), rgba(118, 185, 0, 0.74), rgba(118, 185, 0, 0.08));
  box-shadow: 0 0 16px rgba(118, 185, 0, 0.22);
}
.outcome-stat-label {
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: clamp(0.82rem, 0.92vw, 1.05rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.16;
  white-space: nowrap;
}
.outcome h3 {
  grid-column: 1;
  grid-row: auto;
  max-width: none;
  margin-top: 0;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: clamp(1.28rem, 1.55vw, 1.72rem);
  line-height: 1.12;
  font-weight: 600;
  letter-spacing: 0.018em;
  text-transform: uppercase;
  white-space: nowrap;
}
.outcome p {
  grid-column: 1;
  margin-top: clamp(16px, 1.8vw, 22px);
  margin-left: var(--outcome-copy-offset);
  max-width: 76em;
  font-size: 1rem;
  line-height: 1.58;
}
.outcome-points {
  grid-column: 1;
  margin-top: 18px;
  margin-left: var(--outcome-copy-offset);
  display: grid;
  gap: 9px;
  list-style: none;
}
.outcome-points li {
  position: relative;
  padding-left: 22px;
  font-size: 0.92rem;
  line-height: 1.48;
  color: var(--muted-on-dark);
}
.outcome-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.68em;
  width: 10px;
  height: 1px;
  background: var(--green);
  box-shadow: 0 0 12px rgba(118, 185, 0, 0.42);
}
.outcome-note {
  max-width: 760px;
  margin-top: 28px;
  margin-left: 0;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  line-height: 1.7;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(244, 246, 241, 0.58);
}
@media (prefers-reduced-motion: no-preference) {
  .outcome-media img { transition: transform 0.6s var(--ease), filter 0.6s var(--ease); }
  .outcome:hover .outcome-media img { transform: scale(1.035); filter: saturate(1.08); }
}
@media (max-width: 1180px) {
  #outcomes .section-intro h2,
  .outcome h3 {
    white-space: normal;
  }
  #outcomes .section-intro h2 {
    font-size: clamp(1.65rem, 4.3vw, 2.35rem);
  }
  .outcome,
  .outcome.is-reverse {
    grid-template-columns: minmax(0, 1fr) minmax(390px, 0.76fr);
    gap: 36px;
    min-height: 0;
    padding-block: 52px;
  }
  .outcome.is-reverse {
    grid-template-columns: minmax(390px, 0.76fr) minmax(0, 1fr);
  }
  .outcome-copy {
    --outcome-copy-offset: 0px;
    grid-template-columns: 1fr;
  }
  .outcome-stat strong { font-size: 2.75rem; }
  .outcome h3 { font-size: 1.45rem; }
}
@media (max-width: 860px) {
  #outcomes { padding-bottom: clamp(72px, 14vw, 100px); }
  #outcomes .section-intro h2 {
    font-size: clamp(1.55rem, 8vw, 2.2rem);
  }
  .outcome-flow {
    margin-top: 42px;
  }
  .outcome-flow::before {
    display: none;
  }
  .outcome,
  .outcome.is-reverse {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 26px;
    padding-block: 44px;
  }
  .outcome-copy,
  .outcome.is-reverse .outcome-copy {
    --outcome-copy-offset: 0px;
    display: grid;
    grid-column: 1;
    grid-row: 1;
    grid-template-columns: 1fr;
    order: 1;
    margin-left: 0;
  }
  .outcome-media,
  .outcome.is-reverse .outcome-media {
    grid-column: 1;
    grid-row: 2;
    order: 2;
    margin-left: 0;
  }
.outcome h3,
.outcome-title,
.outcome p,
.outcome-points,
.outcome-stat {
  grid-column: 1;
  grid-row: auto;
  }
  .outcome-title {
    align-items: flex-start;
  }
  .outcome-stat {
    margin-top: 16px;
    margin-left: 0;
    grid-template-columns: max-content 1px minmax(0, max-content);
  }
  .outcome-stat strong { font-size: 2.85rem; }
  .outcome-stat-label {
    min-height: 46px;
    max-width: 16ch;
    font-size: 0.82rem;
    white-space: normal;
  }
  .outcome h3 {
    max-width: none;
    font-size: 1.35rem;
    white-space: normal;
  }
  .outcome p,
  .outcome-points {
    margin-left: 0;
  }
  .outcome-note {
    margin-top: 22px;
    margin-left: 0;
  }
}

/* Services spotlight band: two clear entry options */
.service-card.is-start { border-color: rgba(118, 185, 0, 0.55); }
.service-card.is-advisor { border-color: rgba(118, 185, 0, 0.32); }
.svc-tag {
  position: absolute;
  top: -11px;
  left: 22px;
  font-family: var(--font-mono);
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--cta-text);
  background: var(--green);
  border-radius: var(--r-sm);
  padding: 4px 10px;
}

/* Industries: scannable rows, not boxes */
.industry-rows { list-style: none; margin-top: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(32px, 5vw, 72px); }
@media (max-width: 860px) { .industry-rows { grid-template-columns: 1fr; } }
.industry-rows li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 0;
  border-top: 1px solid var(--border);
}
.industry-rows h3 { font-family: var(--font-display); font-size: 1.125rem; font-weight: 500; letter-spacing: -0.01em; }
.industry-rows p { margin-top: 5px; font-size: 0.875rem; max-width: 34em; }
.industry-rows .card-link { flex: none; white-space: nowrap; }
@media (max-width: 540px) { .industry-rows li { flex-direction: column; gap: 8px; } }

/* Reviews: draggable selector carousel */
#reviews {
  overflow: hidden;
}
#reviews .section-intro h2 {
  margin-top: 0;
}
.review-carousel {
  position: relative;
  margin-top: clamp(42px, 5vw, 62px);
  padding-inline: clamp(46px, 5vw, 70px);
}
.review-carousel-head {
  position: absolute;
  inset: 50% 0 auto;
  z-index: 4;
  transform: translateY(-50%);
  pointer-events: none;
}
.review-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}
.review-nav .carousel-btn {
  pointer-events: auto;
  background: rgba(8, 10, 8, 0.76);
  border-color: rgba(118, 185, 0, 0.32);
  color: var(--ink);
  box-shadow: 0 0 20px rgba(118, 185, 0, 0.12);
}
.review-nav .carousel-btn:hover {
  border-color: var(--green);
  color: var(--green);
}
.review-scroller {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  perspective: 1200px;
  perspective-origin: 50% 50%;
}
.review-scroller:focus-visible {
  outline: none;
}
.review-scroller:focus-visible .review-card.is-current {
  box-shadow: 0 0 0 2px var(--green), 0 0 34px rgba(118, 185, 0, 0.22), var(--shadow-card);
}
.review-scroller::-webkit-scrollbar { display: none; }
.review-carousel.is-ready .review-scroller {
  overflow: hidden;
  touch-action: pan-y;
  cursor: grab;
}
.review-carousel.is-dragging .review-scroller { cursor: grabbing; }
.review-track {
  display: flex;
  gap: 16px;
  list-style: none;
}
.review-carousel.is-ready .review-track { will-change: transform; }
.review-carousel.is-dragging .review-track { transition: none !important; }
@media (prefers-reduced-motion: no-preference) {
  .review-carousel.is-ready .review-track { transition: transform 0.52s cubic-bezier(0.18, 0.78, 0.22, 1); }
}
.review-card {
  --review-tilt: 0deg;
  flex: 0 0 calc((100% - 32px) / 3);
  scroll-snap-align: start;
  min-height: 430px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  border: 1px solid var(--glass-border);
  border-radius: var(--r-md);
  padding: clamp(18px, 2.2vw, 24px);
  background: rgba(255, 255, 255, 0.055);
  box-shadow: var(--shadow-card);
  opacity: 0.72;
  filter: saturate(0.82) brightness(0.86);
  transform: translateY(10px) scale(0.955) rotateY(var(--review-tilt));
  transform-origin: center;
  backface-visibility: hidden;
}
.review-card.is-left {
  --review-tilt: 7deg;
  transform-origin: right center;
}
.review-card.is-right {
  --review-tilt: -7deg;
  transform-origin: left center;
}
.review-card.is-near {
  opacity: 0.88;
  filter: saturate(0.94) brightness(0.94);
  transform: translateY(2px) scale(0.985) rotateY(var(--review-tilt));
}
.review-card.is-current {
  --review-tilt: 0deg;
  border-color: rgba(118, 185, 0, 0.66);
  box-shadow: 0 0 0 1px rgba(118, 185, 0, 0.16), 0 0 34px rgba(118, 185, 0, 0.20), var(--shadow-card);
  opacity: 1;
  filter: none;
  transform: translateY(-10px) scale(1.03);
}
.review-carousel.is-dragging .review-card {
  transition-duration: 0s !important;
}
@media (prefers-reduced-motion: no-preference) {
  .review-card {
    transition:
      transform 0.36s var(--ease),
      opacity 0.36s var(--ease),
      filter 0.36s var(--ease),
      border-color 0.36s var(--ease),
      box-shadow 0.36s var(--ease);
  }
}
.review-bottom-cta {
  display: flex;
  justify-content: center;
  margin-top: clamp(34px, 5vw, 58px);
}
.review-bottom-cta .btn {
  min-width: 190px;
}
@media (max-width: 900px) { .review-card { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 680px) {
  .review-carousel {
    margin-top: 32px;
    padding-inline: 0;
  }
  .review-carousel-head {
    position: static;
    transform: none;
    margin-bottom: 16px;
    pointer-events: auto;
  }
  .review-nav {
    justify-content: center;
  }
  .review-track { gap: 0; }
  .review-card {
    flex-basis: 100%;
    max-width: 100%;
    min-height: 0;
  }
  .review-card,
  .review-card.is-left,
  .review-card.is-right,
  .review-card.is-near,
  .review-card.is-current {
    --review-tilt: 0deg;
    transform: none;
    opacity: 1;
    filter: none;
  }
}
.review-card-top {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}
.review-logo-wrap {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
}
.review-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
}
.review-logo-fallback {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--cta-text);
  background: var(--green);
}
.review-company {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink);
}
.review-stars {
  margin-top: 6px;
  font-size: 0.875rem;
  line-height: 1;
  letter-spacing: 0;
  color: var(--green);
}
.review-card blockquote {
  flex: 1;
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  line-height: 1.45;
  color: var(--ink);
}
.review-card footer {
  padding-top: 2px;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}

/* ---------- Section backgrounds (v3.3): same colorway, different vibe ---------- */
#model {
  background-color: var(--bg);
  background-image:
    linear-gradient(180deg, rgba(8, 10, 8, 0.86) 0%, rgba(8, 10, 8, 0.72) 55%, rgba(8, 10, 8, 0.8) 100%),
    url("/assets/bg-journey.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
#services {
  background-color: var(--dark);
  background-image:
    linear-gradient(180deg, rgba(6, 7, 6, 0.88) 0%, rgba(6, 7, 6, 0.55) 45%, rgba(6, 7, 6, 0.4) 100%),
    url("/assets/bg-services.jpg");
  background-size: cover;
  background-position: center, center 30%;
  background-repeat: no-repeat;
  border-bottom: 1px solid rgba(118, 185, 0, 0.26);
}
#industries {
  background-color: #0D0F0C;
  background-image:
    linear-gradient(180deg, rgba(13, 15, 12, 0.9) 0%, rgba(13, 15, 12, 0.42) 100%),
    url("/assets/bg-industries.jpg");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
}
#reviews {
  background:
    radial-gradient(760px 440px at 50% 12%, rgba(118, 185, 0, 0.09), transparent 65%),
    var(--bg);
}
#reviews.band-light {
  background:
    radial-gradient(760px 440px at 50% 12%, rgba(118, 185, 0, 0.10), transparent 66%),
    linear-gradient(180deg, #F7F8F4 0%, #EEF2EB 100%);
}
#reviews.band-light .review-card {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(30, 46, 28, 0.18);
  box-shadow: 0 16px 38px rgba(22, 30, 20, 0.12);
}
#reviews.band-light .review-card.is-current {
  border-color: rgba(77, 121, 0, 0.68);
  box-shadow: 0 0 0 1px rgba(77, 121, 0, 0.12), 0 16px 42px rgba(22, 30, 20, 0.16);
}
#reviews.band-light .review-company,
#reviews.band-light .review-card blockquote,
#reviews.band-light .quote-name { color: #121712; }
#reviews.band-light .quote-role { color: #596359; }
#reviews.band-light .review-stars { color: #4D7900; }
#reviews.band-light .review-card footer { border-color: rgba(18, 23, 18, 0.13); }
#reviews.band-light .review-nav .carousel-btn {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(77, 121, 0, 0.36);
  color: #121712;
  box-shadow: 0 10px 26px rgba(22, 30, 20, 0.12);
}
#reviews.band-light .review-nav .carousel-btn:hover {
  border-color: #4D7900;
  color: #4D7900;
}
#book {
  background-color: var(--dark);
  background-image:
    linear-gradient(180deg, rgba(5, 6, 5, 0.6), rgba(5, 6, 5, 0.44)),
    url("/assets/bg-book.jpg");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
}

/* ---------- Homepage light chapters ---------- */
#outcomes.band-light {
  background:
    radial-gradient(760px 420px at 86% 4%, rgba(118, 185, 0, 0.09), transparent 72%),
    radial-gradient(640px 360px at 8% 56%, rgba(67, 104, 36, 0.055), transparent 72%),
    linear-gradient(180deg, #F7F8F4 0%, #EEF2EB 54%, #F7F8F4 100%);
}
#outcomes.band-light::before {
  background:
    radial-gradient(720px 380px at 82% 8%, rgba(118, 185, 0, 0.08), transparent 72%),
    radial-gradient(620px 360px at 12% 48%, rgba(42, 74, 28, 0.045), transparent 70%),
    radial-gradient(760px 420px at 84% 88%, rgba(118, 185, 0, 0.055), transparent 72%);
}
#outcomes.band-light .outcome-flow::before {
  background: linear-gradient(180deg, transparent, rgba(77, 121, 0, 0.24), transparent);
  box-shadow: 0 0 30px rgba(77, 121, 0, 0.08);
}
#outcomes.band-light .outcome,
#outcomes.band-light .outcome:last-child {
  border-color: rgba(18, 23, 18, 0.13);
}
#outcomes.band-light .outcome::before {
  background: radial-gradient(ellipse at 26% 50%, rgba(118, 185, 0, 0.065), transparent 58%);
}
#outcomes.band-light .outcome.is-reverse::before {
  background: radial-gradient(ellipse at 74% 50%, rgba(118, 185, 0, 0.065), transparent 58%);
}
#outcomes.band-light .outcome-stat strong,
#outcomes.band-light .outcome-stat-label {
  color: #4D7900;
  text-shadow: none;
}
#outcomes.band-light .outcome-stat-divider {
  background: linear-gradient(180deg, rgba(77, 121, 0, 0.08), rgba(77, 121, 0, 0.72), rgba(77, 121, 0, 0.08));
  box-shadow: none;
}
#outcomes.band-light .outcome p,
#outcomes.band-light .outcome-points li { color: #4E594E; }
#outcomes.band-light .outcome-note { color: #687268; }
#outcomes.band-light .outcome-media {
  border-color: rgba(77, 121, 0, 0.34);
  box-shadow: 0 24px 54px rgba(22, 30, 20, 0.17), 0 0 42px rgba(118, 185, 0, 0.08);
}

#services.band-light {
  background-color: #F7F8F4;
  background-image:
    radial-gradient(680px 380px at 8% 18%, rgba(118, 185, 0, 0.08), transparent 72%),
    linear-gradient(180deg, #F7F8F4 0%, #EEF2EB 100%);
  border-bottom-color: rgba(30, 46, 28, 0.12);
}
#services.band-light .service-card {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(30, 46, 28, 0.18);
  box-shadow: 0 16px 40px rgba(22, 30, 20, 0.08);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
#services.band-light .service-card:hover {
  border-color: rgba(77, 121, 0, 0.48);
  box-shadow: 0 18px 42px rgba(22, 30, 20, 0.11);
}
#services.band-light .service-card .includes li {
  color: #4E594E;
  border-color: rgba(18, 23, 18, 0.11);
}
#services.band-light .svc-tag,
#services.band-light .card-link { color: #4D7900; }
#services.band-light .service-price,
#services.band-light .section-note { color: #687268; }

#industries.band-light {
  background-color: #F1F4EE;
  background-image:
    radial-gradient(760px 420px at 92% 86%, rgba(118, 185, 0, 0.08), transparent 72%),
    linear-gradient(180deg, #F7F8F4 0%, #EEF2EB 100%);
}
#industries.band-light .industry-rows li { border-color: rgba(18, 23, 18, 0.14); }
#industries.band-light .industry-rows p { color: #596359; }
#industries.band-light .industry-rows .card-link { color: #4D7900; }

#faq.about-faq .faq-list {
  width: min(100%, 920px);
  max-width: 920px;
  margin-top: 42px;
  border-color: rgba(18, 23, 18, 0.22);
}
#faq.about-faq .faq-item { border-color: rgba(18, 23, 18, 0.18); }
#faq.about-faq .faq-q {
  padding: 22px 2px;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  color: #101510;
}
#faq.about-faq .faq-q:hover { color: #4D7900; }
#faq.about-faq .faq-q[aria-expanded="true"] { color: #3F6800; }
#faq.about-faq .faq-q .chevron { width: 16px; height: 16px; }
#faq.about-faq .faq-q .chevron path { stroke: #4D7900; }
#faq.about-faq .faq-a { padding: 0 48px 24px 2px; }
#faq.about-faq .faq-a p {
  max-width: 760px;
  font-size: 1rem;
  line-height: 1.72;
  color: #3F493F;
}

/* Booking panel (homepage: contact context left, calendar right) */
.book-left {
  width: min(100%, 520px);
  margin-inline: auto;
}
#book .book-left .section-header { text-align: left; }
#book .book-left .section-header h2 {
  max-width: 11ch;
  margin-inline: 0;
  text-align: left;
}
.book-copy {
  width: 100%;
  margin-top: 28px;
  margin-inline: 0;
}
.book-copy h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0;
}
.book-copy > p { margin-top: 12px; font-size: 0.9375rem; line-height: 1.6; }
.book-copy .book-contact-label { margin-top: 28px; color: var(--ink-on-dark); font-weight: 500; }
.calendar-shell { margin-top: 0; }
.calendar-shell.has-calendar iframe { width: 100%; height: 700px; min-width: 0; border: 0; border-radius: var(--r-sm); background: #1a1a1a; }
.book-actions {
  display: grid;
  gap: 10px;
  justify-items: start;
  margin-top: 14px;
}
#book .book-actions .btn {
  width: min(100%, 320px);
  min-height: 46px;
}
#book .form-shell {
  padding: clamp(18px, 2vw, 26px);
}

/* Book: one aligned copy block left, calendar right on wide screens. */
@media (min-width: 1024px) {
  #book .container {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(520px, 1.15fr);
    column-gap: clamp(48px, 6vw, 110px);
    align-items: center;
  }
  #book .book-left { grid-column: 1; margin-inline: 0; }
  #book .form-shell { grid-column: 2; margin-top: 0; }
}

@media (max-width: 1023px) {
  #book .form-shell { margin-top: 36px; }
}

@media (max-width: 640px) {
  #faq.about-faq .faq-list { margin-top: 32px; }
  #faq.about-faq .faq-q { padding: 19px 0; font-size: 0.98rem; }
  #faq.about-faq .faq-a { padding: 0 24px 22px 0; }
  #faq.about-faq .faq-a p { font-size: 0.94rem; }
}

@media (max-width: 520px) {
  #book .book-actions {
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
  }
  #book .book-actions .btn {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 360px) {
  .site-nav ul { gap: 14px; }
  .site-nav .btn {
    padding-inline: 12px;
    font-size: 0.75rem;
    line-height: 1.2;
  }
  .outcome-stat {
    width: 100%;
    column-gap: 10px;
    grid-template-columns: max-content 1px minmax(0, 1fr);
  }
  .outcome-stat strong { font-size: 2.25rem; }
  .outcome-stat-label {
    min-width: 0;
    max-width: none;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
  }
}

/* Carousel arrows on dark glass */
.carousel-btn { background: var(--glass); color: var(--ink); }
.carousel-btn:hover { border-color: var(--green); color: var(--green); }

/* ---------- Service launch pages ---------- */
.service-page main > section:not(.page-hero) {
  padding-block: clamp(58px, 7vw, 84px);
}
.service-page .page-hero {
  padding-block: clamp(42px, 5vw, 64px) clamp(54px, 7vw, 82px);
  overflow: hidden;
  background:
    radial-gradient(720px 440px at 84% 42%, rgba(118, 185, 0, 0.13), transparent 72%),
    #060706;
}
.service-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(420px, 1.06fr);
  align-items: center;
  gap: clamp(38px, 6vw, 84px);
  margin-top: clamp(32px, 4vw, 48px);
}
.service-page .page-hero .measure { max-width: 640px; }
.service-page .page-hero h1 {
  max-width: 15ch;
  margin-top: 18px;
  font-size: clamp(2rem, 3.7vw, 3.35rem);
  line-height: 1.08;
}
.service-page .page-hero .hero-lead {
  max-width: 38em;
  margin-top: 22px;
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.65;
}
.service-hero-visual {
  min-width: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border: 1px solid rgba(118, 185, 0, 0.32);
  border-radius: var(--r-sm);
  background: #050705;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.46), 0 0 46px rgba(118, 185, 0, 0.1);
}
.service-hero-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.service-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(38px, 5vw, 58px);
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.service-facts li { min-width: 0; padding: 20px clamp(14px, 2vw, 24px); }
.service-facts li + li { border-left: 1px solid rgba(255, 255, 255, 0.12); }
.service-facts strong {
  display: block;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green);
}
.service-facts span { display: block; margin-top: 7px; font-size: 0.82rem; line-height: 1.45; color: var(--faint-on-dark); }

.service-page .band-light .panel,
.service-page .band-light .assessment-card,
.service-page .band-light .guarantee {
  color: #121712;
  background: rgba(255, 255, 255, 0.74);
  border-color: rgba(18, 23, 18, 0.16);
  box-shadow: 0 18px 38px rgba(30, 46, 28, 0.08);
}
.service-page .band-light .panel h3,
.service-page .band-light .assessment-card h3 { color: #121712; }
.service-page .band-light .panel p,
.service-page .band-light .assessment-card p { color: #536053; }
.service-page .band-light .panel-num { color: #4D7900; }

.artifact-preview {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid rgba(118, 185, 0, 0.35);
  border-radius: var(--r-sm);
  background: #0D110D;
  box-shadow: var(--glow);
}
.artifact-label,
.artifact-title span,
.artifact-row b {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  line-height: 1.45;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.artifact-label { color: var(--green); }
.artifact-title { margin-top: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.artifact-title span { display: block; color: var(--faint); }
.artifact-title strong { display: block; margin-top: 7px; font-size: 1.15rem; color: var(--ink); }
.artifact-row {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) max-content;
  align-items: center;
  gap: 12px;
  padding-block: 15px;
  border-bottom: 1px solid var(--border);
  font-size: 0.83rem;
  color: var(--muted);
}
.artifact-row b { color: var(--faint); font-weight: 500; }
.artifact-severity { font-family: var(--font-mono); font-size: 0.65rem; font-weight: 500; text-transform: uppercase; }
.artifact-severity.high { color: #FF7168; }
.artifact-severity.medium { color: #F6A557; }
.artifact-severity.planned { color: var(--green); }
.artifact-note { margin-top: 18px; font-size: 0.77rem; line-height: 1.55; color: var(--faint); }
.artifact-preview .btn { align-self: flex-start; margin-top: auto; transform: translateY(12px); }

.scope-boundary {
  max-width: 880px;
  margin-top: 28px;
  padding: 20px 22px;
  border-left: 3px solid #4D7900;
  background: rgba(255, 255, 255, 0.62);
}

.buyer-fit {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 34px;
  border-top: 1px solid rgba(19, 36, 29, 0.18);
  border-bottom: 1px solid rgba(19, 36, 29, 0.18);
}

.buyer-fit p {
  margin: 0;
  padding: 22px 26px 22px 0;
  color: #314238;
}

.buyer-fit p + p {
  padding-left: 26px;
  border-left: 1px solid rgba(19, 36, 29, 0.18);
}

.buyer-fit strong {
  color: #152a20;
}
.scope-boundary p + p { margin-top: 8px; font-size: 0.9rem; line-height: 1.6; }

.proof-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 38px;
}
.proof-quote {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid rgba(18, 23, 18, 0.16);
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 38px rgba(30, 46, 28, 0.08);
}
.proof-quote img { width: 112px; height: 56px; object-fit: contain; object-position: left center; }
.proof-quote blockquote {
  margin-top: 24px;
  font-family: var(--font-serif);
  font-size: clamp(1.15rem, 1.7vw, 1.4rem);
  line-height: 1.45;
  color: #172017;
}
.proof-quote figcaption { display: grid; gap: 2px; margin-top: auto; padding-top: 26px; }
.proof-quote figcaption strong { color: #121712; }
.proof-quote figcaption span { font-size: 0.8rem; color: #657065; }

.source-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 34px; list-style: none; border-top: 1px solid rgba(18, 23, 18, 0.16); }
.source-links li { display: grid; align-content: start; gap: 7px; padding: 22px 20px; border-bottom: 1px solid rgba(18, 23, 18, 0.16); }
.source-links li:nth-child(even) { border-left: 1px solid rgba(18, 23, 18, 0.16); }
.source-links a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.source-links span { font-size: 0.82rem; color: #657065; }
.source-updated { margin-top: 18px; font-size: 0.76rem; color: #687268; }
.booking-privacy { margin-top: 22px !important; font-size: 0.78rem !important; color: var(--faint-on-dark) !important; }
.booking-privacy a { color: var(--green) !important; }

.legal-main { background: #F2F4EF; color: #121712; }
.legal-page { padding-block: clamp(64px, 8vw, 100px); }
.legal-page h1 { max-width: 18ch; color: #121712; }
.legal-page .legal-updated { margin-top: 12px; color: #657065; }
.legal-copy { max-width: 820px; margin-top: 44px; }
.legal-copy h2 { margin-top: 38px; color: #121712; font-size: 1.25rem; }
.legal-copy p,
.legal-copy li { color: #465146; }
.legal-copy p { margin-top: 12px; }
.legal-copy ul { margin: 14px 0 0 20px; }
.legal-copy li + li { margin-top: 8px; }

@media (max-width: 980px) {
  .service-hero-grid { grid-template-columns: 1fr; }
  .service-page .page-hero .measure { max-width: 760px; }
  .service-hero-visual { width: min(100%, 760px); }
  .service-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-facts li:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.12); }
  .service-facts li:nth-child(4) { border-top: 1px solid rgba(255, 255, 255, 0.12); }
}
@media (max-width: 680px) {
  .buyer-fit { grid-template-columns: 1fr; }
  .buyer-fit p { padding: 18px 0; }
  .buyer-fit p + p { padding-left: 0; border-top: 1px solid rgba(19, 36, 29, 0.18); border-left: 0; }
  .service-page .page-hero h1 { max-width: none; font-size: clamp(1.9rem, 9vw, 2.55rem); }
  .service-page main > section { padding-block: 52px; }
  .service-page .page-hero { padding-top: 34px; padding-bottom: 52px; }
  .service-page .section-intro { margin-bottom: 26px; }
  .service-page .panel-grid,
  .service-page .steps { gap: 14px; }
  .service-page .panel,
  .service-page .step { padding: 22px; }
  .service-page .hero-cta .btn { width: 100%; }
  .service-facts { grid-template-columns: 1fr; }
  .service-facts li { padding-inline: 0; }
  .service-facts li + li { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.12); }
  .proof-grid,
  .source-links { grid-template-columns: 1fr; }
  .source-links li:nth-child(even) { border-left: 0; }
  .artifact-row { grid-template-columns: 46px minmax(0, 1fr); }
  .artifact-row b { grid-column: 2; }
  .service-page #book .calendar-shell.has-calendar iframe { height: 640px; }
}


/* ---------- Print ---------- */
@media print {
  * { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  body { background-image: none !important; }
  .panel, .ui-card, .assessment-card, .ledger, .form-shell,
  .advisor-card, .guarantee, .site-footer { background: #fff !important; color: #000 !important; border-color: #ccc !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .site-header, .btn, .carousel-nav, .review-nav, .carousel-track [data-clone], .review-track [data-clone],
  .snapshot-widget, .hero-rack { display: none !important; }
  .carousel-scroller, .review-scroller { overflow: visible; }
  .carousel-track, .review-track { flex-wrap: wrap; transform: none !important; }
  .band-dark, .hero-dark, .article-cta { background: #fff !important; color: #000 !important; }
  .band-dark h1, .band-dark h2, .band-dark h3, .band-dark p,
  .band-dark .eyebrow, .band-dark .breadcrumb ol, .band-dark .breadcrumb a,
  .guarantee .g-icon,
  .hero-dark h1, .hero-dark p, .article-cta h2, .article-cta p { color: #000 !important; }
  .ui-badge.is-ok { background: #fff !important; color: #000 !important; }
  body { font-size: 12pt; color: #000; background: #fff; }
  section { padding-block: 24px; }
  /* Once a snapshot is rendered, printing produces just the one-page report. */
  body.snap-rendered .site-header, body.snap-rendered .site-footer,
  body.snap-rendered section:not(#snapshot-report), body.snap-rendered .snap-cta { display: none !important; }
  /* A silently rendered report (Download my copy) prints even while hidden on screen */
  body.snap-rendered #snapshot-report[hidden] { display: block !important; }
  body.snap-rendered #snapshot-report { padding-block: 0; }
  body.snap-rendered #snapshot-report .container { padding-inline: 0; max-width: none; }
  body.snap-rendered .report-page { border: none; box-shadow: none; max-width: none; padding: 0; aspect-ratio: auto; zoom: 0.73; }
  .report-page, .rp-cell, .rp-sev-count, .rp-num, .snap-chip {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}
@page { size: Letter portrait; margin: 14mm; }

/* Hover polish: journey columns + industry rows (motion-safe) */
@media (prefers-reduced-motion: no-preference) {
  .journey-node, .industry-rows li { transition: background 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease); }
}
.journey-node:hover { background: rgba(118, 185, 0, 0.05); }
.journey-node:hover .journey-num { color: #A5E43C; }
.industry-rows li:hover { background: rgba(118, 185, 0, 0.05); border-color: rgba(118, 185, 0, 0.35); }

/* ==================================================================
   Assessment restyle: rounded corners, clear selection, readable
   ================================================================== */
.snapshot-widget::before { content: none; }
.assessment-panel, .assessment-panel .snapshot-widget { border-radius: 20px; }
.assessment-panel .snapshot-widget { padding: 26px 26px 24px; }
@media (max-width: 640px) {
  .assessment-panel, .assessment-panel .snapshot-widget { border-radius: 0; }
}

.snap-view-title, .snap-step legend { font-size: 1.25rem; }
.snap-view-sub { font-size: 0.9375rem; }

.opt { border-radius: 14px; background: rgba(255, 255, 255, 0.04); }
.opt:hover { border-color: rgba(118, 185, 0, 0.55); background: rgba(118, 185, 0, 0.06); }
.opt:has(input:checked) {
  border-color: var(--green);
  background: rgba(118, 185, 0, 0.12);
  box-shadow: inset 0 0 0 1px var(--green);
}
.opt input:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }

.snap-opts { gap: 10px; }
.snap-opts .opt {
  padding: 13px 15px;
  font-size: 0.9375rem;
  gap: 10px;
  justify-content: flex-start;
  text-align: left;
  border-radius: 14px;
}
.snap-opts .opt input { width: 18px; height: 18px; }
@media (max-width: 640px) {
  .snap-opts { grid-template-columns: 1fr; }
  .snap-opts .opt { padding: 14px 16px; }
}

.snapshot-widget .field input,
.snapshot-widget .field select,
.snapshot-widget .field textarea { border-radius: 12px; }

.snap-bar-fill, .snap-bar-fill span { height: 6px; border-radius: 999px; }
.assessment-close { border-radius: 999px; padding: 7px 14px; }
.snap-nav .btn { min-width: 132px; }

/* ---- Outcomes as a numbered four-step journey ---- */
#outcomes .outcome-copy .outcome-stat { margin-top: 0; }
#outcomes .outcome-copy .outcome-title { margin-top: clamp(14px, 1.6vw, 20px); }
#outcomes .outcome h3 { white-space: normal; max-width: 30ch; text-wrap: balance; }
#outcomes .outcome-stat strong {
  font-size: clamp(1.9rem, 2.3vw, 2.6rem);
  letter-spacing: 0.04em;
}
#outcomes .outcome-stat-label { white-space: normal; max-width: 36ch; }

/* ---- Browsing polish pass ---- */
/* Hero: tighten the quiet zone between the CTA note and the seal strip */
.hero-solo { padding-block: clamp(28px, 4vw, 56px) clamp(14px, 1.8vw, 26px); }
.hero-badges { margin-top: clamp(18px, 2.4vw, 30px); }

/* The About link joins the dropdown only when the top bar hides it */
.nav-drop-menu .drop-mobile { display: none; }
@media (max-width: 940px) { .nav-drop-menu .drop-mobile { display: block; } }

/* About: lift the corridor photo out of the shadows */
.about-visual img { filter: none; }
.about-visual {
  border-color: rgba(77, 121, 0, 0.42);
  box-shadow: 0 24px 54px rgba(18, 28, 16, 0.16), 0 0 36px rgba(118, 185, 0, 0.14);
}

/* Booking headline: three balanced lines instead of four */
#book .book-left .section-header h2 { max-width: 14ch; text-wrap: balance; }

/* FAQ: hand the unanswered question somewhere useful */
.faq-more { margin-top: 26px; font-size: 0.95rem; }

/* The credo: certificate mills exist, this is not one */
.outcome-credo {
  margin-top: clamp(40px, 5vw, 60px);
  padding: clamp(26px, 3.2vw, 42px) clamp(22px, 3vw, 46px);
  border: 1px solid rgba(77, 121, 0, 0.42);
  border-radius: var(--r-md);
  background: rgba(118, 185, 0, 0.07);
  text-align: center;
}
.credo-kicker {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #4D7900;
}
.outcome-credo .credo-line {
  margin-top: 14px;
  margin-inline: auto;
  max-width: 38ch;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-weight: 600;
  font-size: clamp(1.2rem, 2vw, 1.62rem);
  line-height: 1.22;
  text-transform: uppercase;
  letter-spacing: 0.018em;
  color: #121712;
  text-wrap: balance;
}
.outcome-credo .credo-sub {
  margin-top: 14px;
  margin-inline: auto;
  max-width: 58em;
  font-size: 0.98rem;
  line-height: 1.6;
}

/* ---- Assessment v2: quiet chrome, tap-to-advance, gauge, one CTA ---- */
.snap-progress-block { margin: 14px 0 4px; }
.snap-nav { justify-content: space-between; }
.snap-nav:not(:has(button:not([hidden]))) { display: none; }
#snap-next[hidden], #snap-back[hidden] { display: none; }

.snap-gauge { position: relative; width: min(230px, 66vw); margin: 20px auto 0; }
.snap-gauge-svg { display: block; width: 100%; height: auto; }
.snap-gauge-track { stroke: rgba(255, 255, 255, 0.1); }
@media (prefers-reduced-motion: no-preference) {
  .snap-gauge-value { transition: stroke-dashoffset 950ms cubic-bezier(0.22, 0.61, 0.36, 1); }
}
.snap-gauge-num { position: absolute; left: 0; right: 0; bottom: 2px; text-align: center; }
.snap-gauge-num .snap-score-num {
  display: block;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-weight: 700;
  font-size: 3rem;
  line-height: 1;
  color: var(--ink);
}
.snap-gauge-num .snap-score-label {
  display: block;
  max-width: none;
  margin-top: 5px;
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.snap-gauge-chip { margin-top: 14px; text-align: center; }
.snap-results .snap-result-explain { margin-top: 14px; text-align: center; max-width: 46em; margin-inline: auto; }
.snap-results .snap-sub-head { margin-top: 28px; }
.snap-findings li { padding-block: 14px; }
.snap-result-actions { margin-top: 24px; }
.snap-cta-big { width: 100%; justify-content: center; text-align: center; }
.snap-results .snap-result-email { text-align: center; }
.snap-results .snap-disclaimer { margin-top: 18px; }
.snap-gauge-chip .snap-chip { display: inline-flex; margin-left: 0; }
.snap-gauge-num { width: 100%; }

/* ---- Resource center: illustrated guide cards ---- */
.resources-index .section-intro.section-header { max-width: 720px; }
.resources-index .heading-accent {
  color: var(--green);
  text-shadow: 0 0 24px rgba(118, 185, 0, 0.24);
}
.resource-grid { margin-top: clamp(34px, 4vw, 48px); }
.resource-card {
  position: relative;
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
}
.resource-media {
  margin: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--dark);
  border-bottom: 1px solid rgba(118, 185, 0, 0.24);
}
.resource-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.resource-body { display: flex; flex-direction: column; flex: 1; width: 100%; padding: 20px 22px 22px; }
.resource-tag {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--green);
}
.resource-card h2 { margin-top: 10px; }
.resource-card h2 a { color: inherit; text-decoration: none; }
.resource-card h2 a::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }
.resource-card h2 a:focus-visible::after { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.resource-body > p:not(.resource-tag):not(.resource-meta) { margin-top: 10px; }
.panel .resource-body p.resource-meta {
  margin-top: auto;
  padding-top: 18px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted-on-dark);
}
.resource-go { color: var(--green); white-space: nowrap; }
.resource-go::after { content: " \2192"; }
@media (prefers-reduced-motion: no-preference) {
  .resource-card { transition: transform 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease); }
  .resource-card .resource-media img { transition: transform 0.5s var(--ease); }
}
.resource-card:hover {
  transform: translateY(-4px);
  border-color: rgba(118, 185, 0, 0.55);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35), 0 0 30px rgba(118, 185, 0, 0.1);
}
.resource-card:hover .resource-media img { transform: scale(1.04); }
.resource-grid { align-items: stretch; }
.resource-grid .resource-card { height: 100%; }
.resources-cta { margin-top: clamp(40px, 5vw, 60px); margin-inline: auto; text-align: center; }

/* ---- Trimmed services menu + bad-score warning ---- */
.nav-drop-menu .drop-mobile { border-top: 1px solid var(--border); margin-top: 6px; padding-top: 6px; }
.snap-warning {
  margin: 22px auto 0;
  padding: 20px 22px 22px;
  max-width: 620px;
  border: 1px solid rgba(228, 87, 79, 0.5);
  border-radius: 14px;
  background: rgba(228, 87, 79, 0.09);
  text-align: center;
}
.snap-warning-kicker {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--red, #E4574F);
}
.snap-warning-line {
  margin: 10px auto 0;
  max-width: 30ch;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--ink);
  text-wrap: balance;
}
.snap-warning-body { margin: 10px auto 0; max-width: 48em; font-size: 0.9rem; line-height: 1.6; color: var(--muted); }
.snap-results .snap-result-actions { display: block; text-align: center; }
.snap-urgency {
  margin-bottom: 12px;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--red, #E4574F);
}
.snap-cta-sub {
  margin-top: 12px;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.snap-results .snap-disclaimer { text-align: center; }

/* ---- Service pages: homepage design language ---- */
.service-page section:not(.band-light) .heading-accent {
  color: var(--green);
  text-shadow: 0 0 24px rgba(118, 185, 0, 0.24);
}
.service-page .section-intro.is-center { max-width: 720px; }
.service-page .section-intro.is-center .eyebrow { margin-bottom: 4px; }
.service-page .panel-num {
  font-family: var(--font-mono);
  font-size: 1.15rem;
  letter-spacing: 0.06em;
  color: var(--green);
  text-shadow: 0 0 16px rgba(118, 185, 0, 0.25);
}
.service-page .step { border-top: 1px solid rgba(118, 185, 0, 0.4); }
.service-page .steps { gap: clamp(24px, 3vw, 40px); }
.service-page .step h3 { font-size: 1.05rem; }
@media (prefers-reduced-motion: no-preference) {
  .service-page .band-light .panel { transition: transform 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease); }
  .service-page .band-light .panel:hover { transform: translateY(-4px); }
}
.service-page .band-light .panel-num { color: #4D7900; text-shadow: none; }

/* ---- How we work: circuit timeline ---- */
.work-steps { position: relative; border-top: 0; width: min(100%, 840px); }
.work-steps::before {
  content: "";
  position: absolute;
  top: 30px;
  bottom: 34px;
  left: 26px;
  width: 1px;
  background: linear-gradient(180deg, rgba(118, 185, 0, 0.05), rgba(118, 185, 0, 0.55), rgba(118, 185, 0, 0.05));
  box-shadow: 0 0 22px rgba(118, 185, 0, 0.18);
  pointer-events: none;
}
.work-step {
  position: relative;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: clamp(18px, 2.4vw, 30px);
  padding: clamp(18px, 2.2vw, 26px) 0;
  border-bottom: 0;
}
.work-step-node {
  position: relative;
  z-index: 1;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(10, 12, 10, 0.92);
  border: 1px solid rgba(118, 185, 0, 0.5);
  box-shadow: 0 0 20px rgba(118, 185, 0, 0.14), inset 0 0 12px rgba(118, 185, 0, 0.06);
}
.ws-icon { width: 24px; height: 24px; color: var(--green); }
.work-step-copy { max-width: 640px; }
.work-step-kicker {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--green);
}
.work-step-copy h3 { margin-top: 6px; }
.work-step-copy p { margin-top: 6px; max-width: none; }
@media (prefers-reduced-motion: no-preference) {
  .work-step-node { transition: box-shadow 0.25s var(--ease), border-color 0.25s var(--ease); }
  .work-step h3 { transition: color 0.25s var(--ease); }
}
.work-step:hover .work-step-node {
  border-color: var(--green);
  box-shadow: 0 0 30px rgba(118, 185, 0, 0.32), inset 0 0 14px rgba(118, 185, 0, 0.1);
}
.work-step:hover h3 { color: #CDE9A0; }
@media (max-width: 640px) {
  .work-steps::before { left: 20px; top: 26px; bottom: 30px; }
  .work-step { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
  .work-step-node { width: 40px; height: 40px; }
  .ws-icon { width: 19px; height: 19px; }
}

/* Option A / B as cards, recommended lane highlighted */
.journey-lanes { gap: clamp(16px, 2.2vw, 24px); }
.journey-lane {
  padding: clamp(20px, 2.6vw, 28px) clamp(20px, 2.6vw, 30px);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.02);
}
.journey-lane + .journey-lane { border-left: 1px solid rgba(255, 255, 255, 0.13); padding-left: clamp(20px, 2.6vw, 30px); }
.journey-lane.is-continue {
  border-color: rgba(118, 185, 0, 0.5);
  background: rgba(118, 185, 0, 0.06);
  box-shadow: 0 0 26px rgba(118, 185, 0, 0.08);
}
@media (prefers-reduced-motion: no-preference) {
  .journey-lane { transition: transform 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease); }
  .journey-lane:hover { transform: translateY(-3px); border-color: rgba(118, 185, 0, 0.55); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3), 0 0 24px rgba(118, 185, 0, 0.1); }
}

/* ---- Step 06: choice folded into the timeline ---- */
.work-step-choice .journey-lane { margin-top: 14px; max-width: 580px; }
.work-step-choice h4 { margin-top: 6px; }
.choice-branch {
  position: relative;
  margin-left: clamp(22px, 4vw, 52px);
}
.choice-branch::before {
  content: "";
  position: absolute;
  left: -22px;
  top: -6px;
  width: 20px;
  height: 46px;
  border-left: 1px solid rgba(118, 185, 0, 0.4);
  border-bottom: 1px solid rgba(118, 185, 0, 0.4);
  border-bottom-left-radius: 12px;
  pointer-events: none;
}
.choice-secondary {
  border-color: rgba(255, 255, 255, 0.13);
  background: rgba(255, 255, 255, 0.02);
}
.choice-secondary .fork-label { color: var(--muted-on-dark); }
.journey-book { margin-top: clamp(28px, 4vw, 42px); text-align: center; }
.journey-book .btn { min-width: min(420px, 100%); justify-content: center; }
@media (max-width: 640px) {
  .choice-branch { margin-left: 16px; }
  .choice-branch::before { left: -14px; width: 12px; }
}

/* ---- Spine fills with scroll; nodes ignite as it passes ---- */
.work-steps::before {
  background: linear-gradient(180deg, rgba(118, 185, 0, 0.04), rgba(118, 185, 0, 0.18), rgba(118, 185, 0, 0.04));
  box-shadow: none;
}
.work-steps::after {
  content: "";
  position: absolute;
  left: 26px;
  top: var(--spine-top, 30px);
  width: 1px;
  height: var(--spine-fill, 0px);
  background: linear-gradient(180deg, rgba(118, 185, 0, 0.35), var(--green));
  box-shadow: 0 0 18px rgba(118, 185, 0, 0.45);
  pointer-events: none;
}
.work-steps.spine-static::after { height: calc(100% - 64px); }
@media (max-width: 640px) {
  .work-steps::after { left: 20px; }
}
.work-step-node { border-color: rgba(118, 185, 0, 0.22); box-shadow: none; }
.ws-icon { color: rgba(118, 185, 0, 0.4); }
@media (prefers-reduced-motion: no-preference) {
  .work-step-node { transition: box-shadow 0.35s var(--ease), border-color 0.35s var(--ease); }
  .ws-icon { transition: color 0.35s var(--ease); }
}
.work-step-node.is-lit {
  border-color: rgba(118, 185, 0, 0.85);
  box-shadow: 0 0 26px rgba(118, 185, 0, 0.3), inset 0 0 12px rgba(118, 185, 0, 0.1);
}
.work-step-node.is-lit .ws-icon { color: var(--green); }
@media (prefers-reduced-motion: no-preference) {
  .work-step-node.is-lit { animation: node-ignite 0.5s var(--ease); }
}
@keyframes node-ignite {
  0% { transform: scale(1); }
  45% { transform: scale(1.14); }
  100% { transform: scale(1); }
}

/* Step 06 options: side by side, primary vs quiet */
.work-step-choice .work-step-copy { max-width: none; }
.choice-lanes {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(14px, 2vw, 22px);
  align-items: stretch;
  margin-top: 16px;
  max-width: 960px;
}
.choice-lanes .journey-lane { margin-top: 0; max-width: none; height: 100%; }
@media (max-width: 820px) {
  .choice-lanes { grid-template-columns: 1fr; }
}

/* ---- Section footnote lines: centered everywhere ---- */
.outcome-note,
.faq-more,
.section-note,
.booking-privacy {
  margin-inline: auto !important;
  text-align: center;
}
.outcome-note { max-width: 760px; }
.section-note { max-width: 640px; }
.pricing-cta { text-align: center; }

/* ---- Smooth interaction motion (motion-safe) ---- */
/* FAQ: height animates via grid rows, no measurement needed */
.faq-a {
  display: grid;
  grid-template-rows: 0fr;
  padding-top: 0 !important;
  padding-bottom: 0;
}
.faq-a .faq-a-inner {
  overflow: hidden;
  min-height: 0;
  opacity: 0;
}
.faq-a.open { grid-template-rows: 1fr; padding-bottom: 20px; }
#faq.about-faq .faq-a.open { padding-bottom: 24px; }
.faq-a.open .faq-a-inner { opacity: 1; }
.faq-a[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .faq-a { transition: grid-template-rows 0.34s var(--ease), padding-bottom 0.34s var(--ease); }
  .faq-a .faq-a-inner { transition: opacity 0.3s var(--ease) 0.06s; }
  .faq-q .chevron { transition: transform 0.3s var(--ease); }
}

/* Dropdown and assessment overlay glide in */
@media (prefers-reduced-motion: no-preference) {
  .nav-drop-menu:not([hidden]) { animation: drop-in 0.2s var(--ease); }
  .assessment-overlay:not([hidden]) { animation: fade-in 0.24s var(--ease); }
  .assessment-overlay:not([hidden]) .assessment-panel { animation: panel-in 0.3s var(--ease); }
  .snap-view.view-in, .snap-results.view-in { animation: view-in 0.24s var(--ease); }
}
@keyframes drop-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes panel-in {
  from { opacity: 0; transform: scale(0.985) translateY(8px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes view-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Micro-motion on the small interactive pieces */
@media (prefers-reduced-motion: no-preference) {
  .btn { transition: transform 0.18s var(--ease), box-shadow 0.25s var(--ease), background-color 0.2s var(--ease), border-color 0.2s var(--ease), color 0.2s var(--ease); }
  .btn-primary:hover { transform: translateY(-1px); }
  .card-link { display: inline-block; transition: color 0.18s var(--ease), transform 0.18s var(--ease); }
  .card-link:hover { transform: translateX(3px); }
  .faq-q, .site-nav a, .footer-links a, .nav-drop-menu a { transition: color 0.18s var(--ease); }
}

/* ---- The well keeps giving (about section) ---- */
.well-note {
  margin-top: clamp(40px, 5vw, 64px);
  padding: clamp(24px, 3vw, 38px) clamp(22px, 3vw, 44px);
  border-left: 3px solid var(--green);
  border-radius: 0 14px 14px 0;
  background: rgba(118, 185, 0, 0.07);
}
.well-note h3 {
  margin-top: 10px;
  font-family: var(--font-logo);
  font-stretch: 125%;
  font-weight: 600;
  font-size: clamp(1.2rem, 1.9vw, 1.55rem);
  line-height: 1.2;
  letter-spacing: 0.018em;
  text-transform: uppercase;
  color: #121712;
}
.well-note p:not(.eyebrow) {
  margin-top: 10px;
  max-width: 66em;
  font-size: 0.98rem;
  line-height: 1.62;
}
.well-note-link { margin-top: 14px; }

/* Well mark beside the well note */
.well-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(150px, 16vw, 220px);
  gap: clamp(18px, 3vw, 40px);
  align-items: center;
}
.well-note-mark { margin: 0; }
.well-note-mark img { width: 100%; height: auto; display: block; }
@media (max-width: 700px) {
  .well-note { grid-template-columns: 1fr; }
  .well-note-mark { order: -1; width: 120px; margin-inline: auto; }
}

/* ==================================================================
   Industries: companies-served buckets (balls in a bucket)
   ================================================================== */
.industry-rows li:has(.industry-bucket) { align-items: center; }
.industry-bucket { flex: none; display: flex; flex-direction: column; align-items: center; gap: 7px; }
.bucket-well {
  position: relative;
  display: flex;
  flex-wrap: wrap-reverse;
  align-content: flex-start;
  justify-content: center;
  gap: 3px;
  width: 118px;
  min-height: 46px;
  padding: 8px 10px 10px;
  border: 1px solid var(--border);
  border-top: 0;
  border-radius: 3px 3px 16px 16px;
  background: linear-gradient(180deg, rgba(118, 185, 0, 0.03), rgba(118, 185, 0, 0.10));
}
/* Rim ticks so the open top reads as a bucket lip */
.bucket-well::before,
.bucket-well::after {
  content: "";
  position: absolute;
  top: -1px;
  width: 7px;
  height: 1px;
  background: var(--border);
}
.bucket-well::before { left: -5px; }
.bucket-well::after { right: -5px; }
.bucket-ball {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #A5E43C, #76B900 55%, #4D7900);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.bucket-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  white-space: nowrap;
}
@media (max-width: 540px) {
  .industry-bucket { flex-direction: row; gap: 12px; }
}
@media (prefers-reduced-motion: no-preference) {
  .reveal.in .bucket-ball { animation: ball-drop 0.55s var(--ease) backwards; }
}
@keyframes ball-drop {
  from { transform: translateY(-30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* ==================================================================
   Pricing funnel: hero step strip, headcount slider, estimate block
   ================================================================== */
/* Hero: 1-2-3 how-it-works strip. The number is the hero of each card. */
.hero-steps {
  list-style: none;
  margin: 30px auto 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: clamp(26px, 3vw, 38px);
  flex-wrap: wrap;
}
.hero-steps li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  border: 1px solid var(--glass-border);
  border-radius: var(--r-md);
  background: var(--glass);
}
/* Chevron connector between steps */
.hero-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(-1 * clamp(26px, 3vw, 38px) / 2 - 6px);
  width: 11px;
  height: 11px;
  border-top: 3px solid #76B900;
  border-right: 3px solid #76B900;
  transform: translateY(-50%) rotate(45deg);
}
.hero-steps .hero-step-num {
  order: -1;
  font-family: var(--font-logo);
  font-weight: 700;
  font-size: clamp(1.375rem, 2.25vw, 1.875rem);
  line-height: 1;
  color: #76B900;
  flex: none;
}
.hero-steps .hero-step-icon svg {
  display: block;
  width: 30px;
  height: 30px;
  color: var(--green, #76B900);
  stroke: currentColor;
}
.hero-steps b {
  font-weight: 700;
  font-size: 0.9375rem;
  letter-spacing: 0.005em;
  white-space: nowrap;
}
@media (max-width: 760px) {
  .hero-steps { flex-direction: column; align-items: stretch; max-width: 340px; gap: 26px; }
  .hero-steps b { white-space: normal; text-align: left; }
  .hero-steps li:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: -19px;
    left: 50%;
    transform: translateX(-50%) rotate(135deg);
  }
}

/* Headcount slider */
.snap-slider { margin-top: 18px; }
.snap-slider-readout { text-align: center; margin-bottom: 14px; }
.snap-slider-num {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #A5E43C;
}
.snap-slider-unit { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.6); margin-left: 6px; }
.snap-slider input[type="range"] {
  --slider-pct: 40%;
  width: 100%;
  height: 26px;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
}
.snap-slider input[type="range"]::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 3px;
  background: linear-gradient(90deg, #76B900 var(--slider-pct), rgba(255, 255, 255, 0.14) var(--slider-pct));
}
.snap-slider input[type="range"]::-moz-range-track {
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.14);
}
.snap-slider input[type="range"]::-moz-range-progress {
  height: 6px;
  border-radius: 3px;
  background: #76B900;
}
.snap-slider input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  margin-top: -8px;
  border-radius: 50%;
  border: 2px solid #0A0C0A;
  background: radial-gradient(circle at 35% 30%, #A5E43C, #76B900 60%, #4D7900);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
.snap-slider input[type="range"]::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #0A0C0A;
  background: #76B900;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
.snap-slider input[type="range"]:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 4px; border-radius: 4px; }
.snap-slider-ends { display: flex; justify-content: space-between; margin-top: 6px; font-family: var(--font-mono); font-size: 0.6875rem; color: rgba(255, 255, 255, 0.45); }

/* Estimated investment block on results */
.snap-estimate {
  margin-top: 22px;
  padding: 20px 22px;
  border: 1px solid rgba(118, 185, 0, 0.4);
  border-radius: var(--r-md);
  background: rgba(118, 185, 0, 0.06);
  text-align: center;
}
.snap-estimate-range {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: #A5E43C;
  margin-top: 6px;
}
.snap-estimate-basis { margin-top: 6px; font-size: 0.875rem; color: rgba(255, 255, 255, 0.75); }
.snap-estimate-note { margin-top: 10px; font-size: 0.8125rem; font-weight: 600; color: rgba(255, 255, 255, 0.85); }

/* ==================================================================
   Services mega-menu: two grouped columns
   ================================================================== */
.site-nav ul.nav-drop-menu.is-mega {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 2px 22px;
  min-width: 640px;
  padding: 14px;
}
.nav-drop-menu .drop-col { min-width: 0; }
.site-nav .nav-drop-menu .drop-col > ul { display: block; list-style: none; margin: 0; padding: 0; gap: 0; }
.site-nav .nav-drop-menu .drop-col > ul > li { display: block; }
.site-nav .nav-drop-menu a.drop-group-label {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green, #76B900);
  padding: 8px 12px 6px;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  margin-bottom: 4px;
}
.site-nav .nav-drop-menu a.drop-group-label:hover { background: none; color: var(--green, #76B900); text-decoration: underline; text-underline-offset: 3px; }
.nav-drop-menu.is-mega .drop-mobile.drop-all { grid-column: 1 / -1; }
@media (max-width: 940px) {
  .site-nav ul.nav-drop-menu.is-mega { min-width: 520px; }
}
@media (max-width: 700px) {
  .site-nav ul.nav-drop-menu.is-mega {
    display: block;
    min-width: 0;
    max-height: min(70vh, 560px);
    overflow-y: auto;
  }
  .nav-drop-menu.is-mega .drop-col + .drop-col { margin-top: 8px; }
}
