:root{
  --primary: #1F3C4D;
  --secondary: #325F7D;
  --accent: #597AA0;
  --highlight: #64B8B2;
  --bg: #F9FAFB;
  --card: #FFFFFF;
  --ink: #22323C;
  --ink-soft: #5B6B74;
  --ink-faint: #8E9AA1;
  --line: #E7EAEC;
  --line-strong: #D2D9DD;
  --heading: #1F3C4D;
  --radius: 20px;
  --max: 1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Inter',sans-serif; font-weight:300; font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; }
p{ font-weight:300; color:var(--ink-soft); }
img{ max-width:100%; display:block; }
.serif{ font-family:'DM Serif Display',serif; font-weight:400; }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 clamp(20px,4vw,40px); }
.eyebrow{ font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--primary); color:#fff; padding:10px 16px; z-index:1000;
  border-radius:0 0 6px 0; font-size:14px;
}
.skip-link:focus{ left:0; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:2px solid var(--highlight); outline-offset:2px;
}

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Inter',sans-serif; font-size:14px; font-weight:500;
  padding:13px 24px; border-radius:9px; text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition: transform .25s cubic-bezier(.2,.7,.2,1), background .25s ease, box-shadow .25s ease, color .25s ease;
  min-height:46px;
}
.btn-primary{ background:var(--primary); color:#fff; }
.btn-primary:hover{ background:#16303e; transform:translateY(-2px); box-shadow:0 12px 26px rgba(31,60,77,0.22); }
.btn-primary:active{ transform:translateY(0); }
.btn-ghost{ border-color:var(--line-strong); color:var(--heading); background:transparent; }
.btn-ghost:hover{ border-color:var(--secondary); background:rgba(89,122,160,0.06); transform:translateY(-2px); }
.btn-ghost:disabled{ opacity:.35; cursor:not-allowed; transform:none; }
.btn-lg{ padding:17px 32px; font-size:15.5px; }
.btn-nav{ padding:10px 18px; font-size:13.5px; }

/* ---------------- Nav ---------------- */
header{
  position:sticky; top:0; z-index:100; background:rgba(249,250,251,0.85); backdrop-filter:blur(14px);
  border-bottom:1px solid transparent; transition: border-color .3s ease, padding .3s ease, box-shadow .3s ease;
}
header.scrolled{ border-bottom-color:var(--line); box-shadow:0 1px 0 rgba(31,60,77,0.02); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:22px 0; transition:padding .3s ease; }
header.scrolled .nav{ padding:14px 0; }
.brand img{ height:26px; width:auto; }
.nav-links{ display:flex; align-items:center; gap:36px; }
.nav-links a:not(.btn){ font-size:14px; font-weight:500; color:var(--ink-soft); text-decoration:none; transition:color .2s ease; }
.nav-links a:not(.btn):hover{ color:var(--heading); }

.hamburger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; background:none; border:none; cursor:pointer; padding:0;
}
.hamburger span{ display:block; width:22px; height:2px; background:var(--heading); margin:0 auto; transition: transform .25s ease, opacity .25s ease; }
.hamburger[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hamburger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

@media (max-width:900px){
  .hamburger{ display:flex; }
  .nav-links{
    position:fixed; top:0; right:0; height:100vh; width:min(320px,80vw);
    background:var(--card); flex-direction:column; align-items:flex-start; gap:0;
    padding:88px 28px 28px; box-shadow:-8px 0 30px rgba(0,0,0,0.08);
    transform: translateX(100%); transition: transform .35s cubic-bezier(.2,.7,.2,1); z-index:99;
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-links a:not(.btn){ padding:16px 0; width:100%; border-bottom:1px solid var(--line); font-size:16px; }
  .nav-links .btn-nav{ margin-top:22px; width:100%; }
}

/* ---------------- Section shell ---------------- */
.section{ padding:clamp(80px,11vw,144px) 0; }
.divider{ border:none; border-top:1px solid var(--line); margin:0; }
.section-head{ max-width:640px; margin-bottom:clamp(40px,6vw,64px); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head .eyebrow{ display:block; margin-bottom:18px; }
.section-head h2{ font-size:clamp(28px,3.8vw,44px); color:var(--heading); margin:0 0 16px; line-height:1.16; letter-spacing:-.01em; }
.section-head p{ font-size:16.5px; margin:0 0 8px; max-width:56ch; }
.section-head.center p{ margin-left:auto; margin-right:auto; }
.time-estimate{
  display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:500; color:var(--accent);
  margin-top:12px;
}
.time-estimate svg{ width:15px; height:15px; }

.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------------- Hero ---------------- */
.hero{ position:relative; min-height:92vh; display:flex; align-items:center; padding:120px 0 80px; overflow:hidden; background:var(--primary); }
.hero-bg{ position:absolute; inset:0; background: radial-gradient(130% 100% at 18% 0%, #2A4A5D 0%, #1B3140 58%, #0F1E27 100%); }
.hero-bg svg{ position:absolute; bottom:0; left:0; width:100%; height:100%; }
.hero-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center; width:100%; }
@media (max-width:980px){ .hero-grid{ grid-template-columns:1fr; gap:48px; } }
.hero-copy{ max-width:640px; }
.hero-copy .eyebrow{ color: var(--highlight); display:block; margin-bottom:24px; }
.hero-copy h1{ font-size:clamp(34px,5.8vw,60px); color:#fff; line-height:1.1; margin:0 0 24px; letter-spacing:-0.015em; }
.hero-copy .lede{ font-size:18.5px; color:rgba(255,255,255,0.76); max-width:50ch; margin:0 0 38px; font-weight:300; }
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; }
.hero .btn-ghost{ border-color:rgba(255,255,255,0.32); color:#fff; }
.hero .btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,0.08); }

.hero-visual{ display:flex; justify-content:center; will-change:transform; }
.profile-card{
  width:100%; max-width:370px;
  background: rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.16);
  backdrop-filter: blur(18px); border-radius:22px; padding:32px 30px 28px; color:#fff;
  box-shadow:0 30px 70px rgba(8,16,22,0.4);
}
.pc-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:26px; }
.pc-label{ font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,0.55); }
.pc-status{
  font-size:10.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  background:rgba(100,184,178,0.18); color:var(--highlight); padding:5px 11px; border-radius:20px;
  border:1px solid rgba(100,184,178,0.4);
}
.pc-score{ display:flex; align-items:center; gap:20px; margin-bottom:26px; padding-bottom:24px; border-bottom:1px solid rgba(255,255,255,0.14); }
.pc-ring{
  --size:74px;
  width:var(--size); height:var(--size); border-radius:50%; flex-shrink:0;
  background: conic-gradient(var(--highlight) calc(var(--pct)*1%), rgba(255,255,255,0.14) 0);
  display:flex; align-items:center; justify-content:center; position:relative;
}
.pc-ring::before{ content:''; position:absolute; inset:6px; border-radius:50%; background:#1B3140; }
.pc-ring-val{ position:relative; font-family:'DM Serif Display',serif; font-size:22px; }
.pc-score-meta{ display:flex; flex-direction:column; gap:4px; }
.pc-score-meta .k{ font-size:11px; color:rgba(255,255,255,0.5); letter-spacing:.05em; text-transform:uppercase; }
.pc-score-meta .v{ font-family:'DM Serif Display',serif; font-size:20px; }
.pc-rows{ display:flex; flex-direction:column; gap:13px; margin-bottom:24px; }
.pc-row{ display:flex; justify-content:space-between; font-size:14px; }
.pc-row .k{ color:rgba(255,255,255,0.55); }
.pc-row .v{ color:#fff; font-weight:500; }
.pc-foot{ padding-top:18px; border-top:1px solid rgba(255,255,255,0.14); font-size:11.5px; color:rgba(255,255,255,0.42); line-height:1.5; }

/* ---------------- Comparison ---------------- */
.compare{ display:grid; grid-template-columns:1fr auto 1fr; gap:0; align-items:stretch; max-width:900px; margin:0 auto; }
@media (max-width:760px){ .compare{ grid-template-columns:1fr; gap:20px; } }
.compare-col{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:36px 32px; }
.compare-col.polaris{ border-color:var(--primary); box-shadow:0 20px 50px rgba(31,60,77,0.1); }
.compare-head{ margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.ch-label{ font-family:'DM Serif Display',serif; font-size:19px; color:var(--ink-faint); }
.compare-col.polaris .ch-label{ color:var(--heading); }
.compare-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.compare-list li{ display:flex; align-items:flex-start; gap:12px; font-size:14.5px; color:var(--ink-soft); }
.compare-col.polaris .compare-list li{ color:var(--ink); font-weight:400; }
.compare-list .x{ color:#B5615A; font-weight:600; flex-shrink:0; }
.compare-list .check{ color:var(--highlight); font-weight:700; flex-shrink:0; }
.compare-divider{
  display:flex; align-items:center; justify-content:center; width:64px;
}
.compare-divider span{
  writing-mode:horizontal-tb; font-family:'DM Serif Display',serif; font-size:15px; color:var(--ink-faint);
  background:var(--bg); border:1px solid var(--line); border-radius:50%; width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
}
@media (max-width:760px){ .compare-divider{ display:none; } }

/* ---------------- Panels (Why Polaris / Trust) ---------------- */
.panel-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
@media (max-width:760px){ .panel-grid{ grid-template-columns:1fr; } }
.panel{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:40px 36px;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.panel:hover{ transform:translateY(-4px); box-shadow:0 24px 50px rgba(31,60,77,0.09); border-color:var(--line-strong); }
.panel-icon{
  width:52px; height:52px; border-radius:14px; background:var(--bg); display:flex; align-items:center; justify-content:center;
  color:var(--highlight); margin-bottom:26px;
}
.panel-icon svg{ width:24px; height:24px; }
.panel h3{ font-family:'DM Serif Display',serif; font-size:22px; color:var(--heading); margin:0 0 12px; font-weight:400; }
.panel p{ font-size:14.5px; margin:0; max-width:42ch; }

.trust-section{ background:var(--card); }

/* ---------------- Process (How It Works) ---------------- */
.process{ position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
@media (max-width:980px){ .process{ grid-template-columns:1fr; gap:0; } }
.process-line{ position:absolute; top:9px; left:2%; right:2%; height:1px; background:var(--line-strong); }
.process-line-fill{ position:absolute; top:0; left:0; height:100%; width:0%; background:var(--highlight); transition:width 1.2s cubic-bezier(.2,.7,.2,1); }
@media (max-width:980px){
  .process-line{ top:0; bottom:0; left:9px; right:auto; width:1px; height:auto; }
  .process-line-fill{ width:1px; height:0%; transition:height 1.2s cubic-bezier(.2,.7,.2,1); }
}
.process-node{ position:relative; padding-top:28px; }
.process-node::before{
  content:''; position:absolute; top:5px; left:0; width:9px; height:9px; border-radius:50%;
  background:var(--card); border:2px solid var(--secondary); z-index:1;
}
.process-node:first-child::before{ background:var(--primary); border-color:var(--primary); }
@media (max-width:980px){
  .process-node{ padding:0 0 32px 30px; }
  .process-node::before{ top:5px; left:0; }
}
.pn-idx{ display:block; font-family:'DM Serif Display',serif; font-size:13px; color:var(--ink-faint); margin-bottom:10px; }
.process-node h4{ font-size:15.5px; color:var(--heading); margin:0 0 8px; font-weight:600; line-height:1.35; }
.process-node p{ font-size:13.5px; margin:0; }

/* ---------------- Assessment form ---------------- */
.assessment-section{ background:var(--card); }
.form-shell{
  background:var(--bg); border:1px solid var(--line); border-radius:28px; padding:clamp(28px,5vw,52px);
  max-width:760px; margin:0 auto; box-shadow:0 30px 70px rgba(31,60,77,0.06);
}
.progress-track{ height:5px; background:var(--line); border-radius:6px; overflow:hidden; margin-bottom:26px; }
.progress-fill{ height:100%; width:20%; background: linear-gradient(90deg, var(--accent), var(--highlight)); transition: width .45s cubic-bezier(.2,.7,.2,1); }
.step-labels{ display:flex; justify-content:space-between; margin-bottom:38px; flex-wrap:wrap; gap:6px; }
.step-label{ font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; transition:color .3s ease; }
.step-label.active{ color:var(--heading); }

fieldset{ border:none; margin:0; padding:0; display:none; }
fieldset.active{ display:block; animation: stepin .4s cubic-bezier(.2,.7,.2,1); }
@keyframes stepin{ from{ opacity:0; transform:translateX(14px); } to{ opacity:1; transform:translateX(0); } }
legend{ font-family:'DM Serif Display',serif; font-size:24px; color:var(--heading); margin-bottom:26px; padding:0; }

.field-row{ display:grid; gap:22px; margin-bottom:22px; }
.field-row.two{ grid-template-columns:1fr 1fr; }
@media (max-width:560px){ .field-row.two{ grid-template-columns:1fr; } }
.field{ margin-bottom:22px; }
.field-row .field{ margin-bottom:0; }

.field.float{ position:relative; }
.field.float input, .field.float select, .field.float textarea{
  font-family:'Inter',sans-serif; font-size:15.5px; padding:20px 16px 8px; border:1px solid var(--line-strong);
  border-radius:12px; background:#fff; color:var(--ink); width:100%; min-height:58px; transition:border-color .2s ease, box-shadow .2s ease;
}
.field.float textarea{ resize:vertical; min-height:76px; padding-top:22px; }
.field.float input:focus, .field.float select:focus, .field.float textarea:focus{
  border-color:var(--highlight); box-shadow:0 0 0 4px rgba(100,184,178,0.12); outline:none;
}
.field.float label{
  position:absolute; left:17px; top:19px; font-size:15px; color:var(--ink-faint); pointer-events:none;
  transition: transform .18s ease, font-size .18s ease, color .18s ease, top .18s ease; transform-origin:left top;
  background:transparent;
}
.field.float input:focus + label,
.field.float input:not(:placeholder-shown) + label,
.field.float select + label,
.field.float textarea:focus + label,
.field.float textarea:not(:placeholder-shown) + label{
  top:9px; font-size:11px; color:var(--secondary); font-weight:600; letter-spacing:.02em;
}
.field.float select{ appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6B74' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; }
.field.float select:required:invalid{ color: var(--ink-faint); }

.form-nav{ display:flex; justify-content:space-between; align-items:center; margin-top:32px; gap:12px; }

.review-note{ font-size:14.5px; margin:0 0 22px; }
.review-summary{ display:flex; flex-direction:column; gap:0; border:1px solid #E7EAEC; border-radius:14px; overflow:hidden; margin-bottom:20px; background:#fff; }
.review-row{ display:flex; justify-content:space-between; gap:16px; padding:13px 18px; font-size:13.5px; border-bottom:1px solid #E7EAEC; }
.review-row:last-child{ border-bottom:none; }
.review-row .rk{ color:#8E9AA1; }
.review-row .rv{ color:#1F3C4D; font-weight:500; text-align:right; }
.privacy-note{ font-size:12.5px; color:var(--ink-faint); margin:0; }

.form-success{ text-align:center; padding:50px 20px; }
.form-success .success-icon{
  width:60px; height:60px; border-radius:50%; background:rgba(100,184,178,0.15); color:var(--highlight);
  display:flex; align-items:center; justify-content:center; margin:0 auto 22px;
}
.form-success .success-icon svg{ width:28px; height:28px; }
.form-success h3{ font-size:24px; color:var(--heading); margin:0 0 10px; }
.form-success p{ font-size:15px; margin:0; max-width:40ch; margin-left:auto; margin-right:auto; }

/* ---------------- What Happens Next diagram ---------------- */
.diagram{ position:relative; display:grid; grid-template-columns:repeat(6,1fr); gap:16px; max-width:1000px; margin:0 auto; }
@media (max-width:900px){ .diagram{ grid-template-columns:1fr; gap:0; max-width:420px; } }
.diagram-line{ position:absolute; top:9px; left:4%; right:4%; height:1px; background:var(--line-strong); }
.diagram-line-fill{ position:absolute; top:0; left:0; height:100%; width:0%; background:var(--highlight); transition:width 1.4s cubic-bezier(.2,.7,.2,1); }
@media (max-width:900px){
  .diagram-line{ top:0; bottom:0; left:9px; right:auto; width:1px; height:auto; }
  .diagram-line-fill{ width:1px; height:0%; transition:height 1.4s cubic-bezier(.2,.7,.2,1); }
}
.diagram-node{ position:relative; display:flex; flex-direction:column; align-items:center; gap:14px; padding-top:0; text-align:center; }
.dn-dot{ width:11px; height:11px; border-radius:50%; background:var(--card); border:2px solid var(--secondary); z-index:1; }
.diagram-node:first-child .dn-dot{ background:var(--primary); border-color:var(--primary); }
.dn-label{ font-size:12.5px; font-weight:500; color:var(--ink-soft); max-width:14ch; }
@media (max-width:900px){
  .diagram-node{ flex-direction:row; align-items:center; text-align:left; padding:0 0 30px 0; justify-content:flex-start; }
  .dn-label{ max-width:none; margin-left:24px; }
}

/* ---------------- FAQ ---------------- */
.faq-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:920px; margin:0 auto; align-items:start; }
@media (max-width:760px){ .faq-grid{ grid-template-columns:1fr; } }
.faq-item{
  background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.faq-item[open]{ box-shadow:0 12px 30px rgba(31,60,77,0.07); border-color:var(--line-strong); }
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 24px; display:flex; justify-content:space-between; align-items:center;
  font-size:15px; font-weight:500; color:var(--heading); gap:16px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-toggle{ position:relative; width:18px; height:18px; flex-shrink:0; }
.faq-toggle::before, .faq-toggle::after{ content:''; position:absolute; background:var(--secondary); transition:transform .25s ease; }
.faq-toggle::before{ width:100%; height:2px; top:50%; left:0; transform:translateY(-50%); }
.faq-toggle::after{ height:100%; width:2px; left:50%; top:0; transform:translateX(-50%); }
.faq-item[open] .faq-toggle::after{ transform:translateX(-50%) scaleY(0); }
.faq-body{ padding:0 24px 24px; }
.faq-body p{ margin:0; font-size:14.5px; }

/* ---------------- Final CTA ---------------- */
.final{ position:relative; text-align:center; padding:clamp(90px,12vw,160px) 0; overflow:hidden; }
.final-bg{ position:absolute; inset:0; background: radial-gradient(120% 100% at 50% 0%, #2A4A5D 0%, #1B3140 55%, #0F1E27 100%); }
.final .wrap{ position:relative; z-index:2; }
.final .eyebrow{ display:block; margin-bottom:20px; color:var(--highlight); }
.final h2{ font-size:clamp(28px,4.4vw,46px); color:#fff; max-width:22ch; margin:0 auto 18px; line-height:1.22; }
.final p{ max-width:44ch; margin:0 auto 34px; font-size:16.5px; color:rgba(255,255,255,0.72); }

/* ---------------- Sticky mobile CTA ---------------- */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:90; padding:12px 16px;
  background:rgba(249,250,251,0.96); backdrop-filter:blur(10px); border-top:1px solid var(--line);
  display:none;
}
.sticky-cta .btn{ width:100%; }
@media (max-width:760px){ .sticky-cta{ display:block; } body{ padding-bottom:76px; } }

/* ---------------- Footer ---------------- */
footer{ background:var(--primary); color:rgba(255,255,255,0.7); padding:52px 0 32px; }
.foot-top{ display:flex; justify-content:space-between; gap:36px; flex-wrap:wrap; padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,0.14); }
.foot-brand{ max-width:380px; }
.foot-brand img{ height:20px; margin-bottom:16px; }
.foot-brand p{ font-size:13.5px; color:rgba(255,255,255,0.58); margin:0; }
.foot-links{ display:flex; gap:28px; flex-wrap:wrap; align-items:flex-start; }
.foot-links a{ font-size:13.5px; color:rgba(255,255,255,0.72); text-decoration:none; }
.foot-links a:hover{ color:#fff; }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:24px; font-size:12px; color:rgba(255,255,255,0.4); }
.foot-bottom a{ color:rgba(255,255,255,0.55); text-decoration:none; }

/* ---------------- Dark mode ---------------- */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0F1B22; --card:#16262F; --ink:#E7EDF0; --ink-soft:#A9B7BE; --ink-faint:#71828A;
    --line:#233541; --line-strong:#324755; --heading:#EAF2F5;
  }
  header{ background:rgba(15,27,34,0.88); }
  .brand img{ filter:invert(1) brightness(1.4); }
  .field.float input, .field.float select, .field.float textarea{ background:#101C24; color:var(--ink); border-color:var(--line-strong); }
  .sticky-cta{ background:rgba(15,27,34,0.96); }
}

/* ---------------- Print ---------------- */
@media print{
  header, .sticky-cta, .hero-bg, .final-bg, .form-nav, .hamburger{ display:none !important; }
  body{ background:#fff; color:#000; }
  .hero{ background:none; color:#000; padding:20px 0; min-height:auto; }
  .hero-copy h1, .hero-copy .lede{ color:#000; }
  a{ text-decoration:underline; }
}

/* ---------------- Legal pages ---------------- */
.legal-hero{ padding:clamp(120px,14vw,180px) 0 clamp(48px,6vw,72px); background:var(--card); border-bottom:1px solid var(--line); }
.legal-hero .eyebrow{ display:block; margin-bottom:18px; }
.legal-hero h1{ font-size:clamp(30px,4.4vw,46px); color:var(--heading); margin:0 0 14px; line-height:1.16; }
.legal-hero .updated{ font-size:13.5px; color:var(--ink-faint); }

.legal-body{ padding:clamp(48px,7vw,80px) 0 clamp(80px,10vw,120px); }
.legal-layout{ display:grid; grid-template-columns:240px 1fr; gap:56px; align-items:start; }
@media (max-width:860px){ .legal-layout{ grid-template-columns:1fr; gap:32px; } }

.legal-toc{ position:sticky; top:100px; display:flex; flex-direction:column; gap:2px; }
@media (max-width:860px){ .legal-toc{ position:static; flex-direction:row; flex-wrap:wrap; gap:8px 18px; padding-bottom:20px; border-bottom:1px solid var(--line); } }
.legal-toc a{ font-size:13.5px; color:var(--ink-faint); text-decoration:none; padding:7px 0; border-left:2px solid transparent; padding-left:14px; transition:color .2s ease, border-color .2s ease; }
.legal-toc a:hover{ color:var(--heading); }
@media (max-width:860px){ .legal-toc a{ border-left:none; padding-left:0; border-bottom:2px solid transparent; padding-bottom:4px; } }

.legal-content{ max-width:70ch; }
.legal-content h2{ font-family:'DM Serif Display',serif; font-weight:400; font-size:22px; color:var(--heading); margin:44px 0 14px; scroll-margin-top:100px; }
.legal-content h2:first-child{ margin-top:0; }
.legal-content h3{ font-size:15.5px; font-weight:600; color:var(--heading); margin:26px 0 10px; }
.legal-content p{ font-size:15px; line-height:1.75; margin:0 0 16px; }
.legal-content ul{ margin:0 0 16px; padding-left:20px; }
.legal-content li{ font-size:15px; line-height:1.75; color:var(--ink-soft); margin-bottom:8px; }
.legal-content li::marker{ color:var(--highlight); }
.legal-content strong{ color:var(--heading); font-weight:600; }
.legal-content a{ color:var(--secondary); text-decoration:underline; text-underline-offset:2px; }
.legal-content .law-tag{
  display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.04em;
  background:var(--bg); border:1px solid var(--line-strong); color:var(--secondary);
  padding:3px 9px; border-radius:5px; margin:0 0 16px;
}
.legal-content .callout{
  background:var(--bg); border-left:3px solid var(--highlight); border-radius:0 10px 10px 0;
  padding:18px 22px; margin:20px 0; font-size:14.5px; color:var(--ink-soft);
}
.legal-content table{ width:100%; border-collapse:collapse; margin:16px 0 24px; font-size:14px; }
.legal-content th{ text-align:left; font-weight:600; color:var(--heading); padding:10px 14px; border-bottom:2px solid var(--line-strong); }
.legal-content td{ padding:10px 14px; border-bottom:1px solid var(--line); color:var(--ink-soft); vertical-align:top; }
.legal-content hr{ border:none; border-top:1px solid var(--line); margin:40px 0; }
