/* Layout: a vault-green hero band carrying each practice's live tool, then a paper ledger of sections with mono "file" annotations. Shared across every Vantage page. */
:root{
  --paper:#F1F4EF; --surface:#FBFCF9; --sunk:#E7ECE6;
  --ink:#0F1F1A; --muted:#566862; --faint:#8A9A93; --line:#D3DCD5;
  --vault:#1B4A3C; --brass:#94702C; --brass-soft:#F0E6CE;
  --ok:#2C7A57; --warn:#A86E14; --bad:#A9442F;
  --band:#0E2620; --band-2:#163a30; --band-fg:#EAF1EC; --band-muted:#9DB5AB; --band-line:#2B4D42; --band-brass:#D9B465;
  --f-display:"Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --f-serif:"Newsreader", Georgia, "Times New Roman", serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --r:6px; --wrap:1200px;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --paper:#0B1512; --surface:#111E1A; --sunk:#0E1916;
  --ink:#E4ECE7; --muted:#97A9A1; --faint:#6C7F77; --line:#23352E;
  --vault:#86C7AB; --brass:#D8B36A; --brass-soft:#2A2516;
  --ok:#5DC292; --warn:#E3AB4C; --bad:#E5816F;
  --band:#08130F; --band-2:#0F231C; --band-fg:#E8F0EB; --band-muted:#8EA79C; --band-line:#1F3A31; --band-brass:#DDB86A;
  color-scheme:dark }}
:root[data-theme="dark"]{
  --paper:#0B1512; --surface:#111E1A; --sunk:#0E1916;
  --ink:#E4ECE7; --muted:#97A9A1; --faint:#6C7F77; --line:#23352E;
  --vault:#86C7AB; --brass:#D8B36A; --brass-soft:#2A2516;
  --ok:#5DC292; --warn:#E3AB4C; --bad:#E5816F;
  --band:#08130F; --band-2:#0F231C; --band-fg:#E8F0EB; --band-muted:#8EA79C; --band-line:#1F3A31; --band-brass:#DDB86A;
  color-scheme:dark }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--f-display);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3,h4{text-wrap:balance;margin:0;letter-spacing:-.02em;line-height:1.05}
em.s{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
p{margin:0}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.eyebrow{font:500 12px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 15px/1 var(--f-display);padding:15px 22px;border-radius:var(--r);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .15s ease, background .15s ease, border-color .15s}
.btn:hover{transform:translateY(-1px)}
.btn-brass{background:var(--band-brass);color:#1A1406}
.btn-brass:hover{background:#E6C47A}
.btn-ghost{background:transparent;border-color:var(--band-line);color:var(--band-fg)}
.btn-ghost:hover{border-color:var(--band-brass)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-line{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none}
.arrow{transition:transform .2s}
.btn:hover .arrow{transform:translateX(3px)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- header ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--band) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--band-line);color:var(--band-fg)}
.top .bar{display:flex;align-items:center;gap:28px;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 21px/1 var(--f-display);letter-spacing:-.03em;color:var(--band-fg)}
.logo i{width:9px;height:9px;background:var(--band-brass);border-radius:50%;display:inline-block;margin-left:1px;transform:translateY(-1px)}
.logo small{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted);border-left:1px solid var(--band-line);padding-left:10px}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{font-size:14px;font-weight:500;color:var(--band-muted);text-decoration:none;padding:8px 10px;border-radius:5px}
.nav a:hover{color:var(--band-fg);background:var(--band-2)}
.nav a[aria-current]{color:var(--band-fg)}
.nav a[aria-current]::after{content:"";display:block;height:2px;background:var(--band-brass);margin-top:4px;border-radius:2px}
.top-cta{display:flex;align-items:center;gap:14px}
.phone-link{font:500 13px/1.2 var(--f-mono);color:var(--band-fg);text-decoration:none;white-space:nowrap}
.phone-link span{display:block;color:var(--band-muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.top .bar .btn{padding:11px 16px;font-size:14px}
.menu-btn{display:none;background:none;border:1px solid var(--band-line);color:var(--band-fg);border-radius:6px;width:42px;height:42px;cursor:pointer}
.menu-btn span{display:block;width:18px;height:1.5px;background:currentColor;margin:4px auto}
.top .drawer{display:none;border-top:1px solid var(--band-line);padding-block:12px 20px}
.drawer a{display:block;padding:12px 0;color:var(--band-fg);text-decoration:none;font-weight:500;border-bottom:1px solid var(--band-line)}
.drawer a[aria-current]{color:var(--band-brass)}
.drawer .btn{margin-top:16px;width:100%;border-bottom:0;color:#1A1406;padding:15px 22px}
@media (max-width:1120px){.nav{display:none}.top-cta{margin-left:auto}.menu-btn{display:block}.top .drawer.open{display:block}}
@media (max-width:720px){.phone-link,.top-cta .btn-brass{display:none}.logo small{display:none}}

/* ---------- hero ---------- */
.hero{background:var(--band);color:var(--band-fg);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--band-line) 1px,transparent 1px),linear-gradient(90deg,var(--band-line) 1px,transparent 1px);background-size:48px 48px;opacity:.35;mask-image:radial-gradient(ellipse 70% 80% at 75% 40%,#000 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 80% at 75% 40%,#000 0%,transparent 70%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;padding-block:72px 64px;align-items:center}
.hero .eyebrow{color:var(--band-brass)}
.hero h1{font-size:clamp(38px,5.2vw,68px);font-weight:800;margin-top:22px;letter-spacing:-.035em}
.hero h1 em.s{color:var(--band-brass);font-size:1.04em}
.hero .lede{font-size:clamp(17px,1.5vw,19px);color:var(--band-muted);max-width:52ch;margin-top:24px}
.hero .lede b{color:var(--band-fg);font-weight:600}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.re-link{display:inline-flex;align-items:center;gap:8px;margin-top:28px;font-size:14px;color:var(--band-muted);text-decoration:none;border-bottom:1px dashed var(--band-line);padding-bottom:3px}
.re-link:hover{color:var(--band-fg);border-color:var(--band-brass)}
.re-link b{color:var(--band-brass);font-weight:600}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:40px;padding-block:52px 44px}}

/* hero panel (each page's live tool) */
.panel{background:linear-gradient(180deg,var(--band-2),var(--band));border:1px solid var(--band-line);border-radius:10px;box-shadow:0 30px 80px -30px rgba(0,0,0,.6);overflow:hidden;min-width:0;color:var(--band-fg)}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--band-line);font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.live{display:flex;align-items:center;gap:8px;color:var(--band-brass)}
.live i{width:7px;height:7px;border-radius:50%;background:var(--band-brass);animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.panel-body{padding:18px}
.panel-foot{padding:10px 18px;font:400 10.5px/1.4 var(--f-mono);color:var(--band-muted);border-top:1px solid var(--band-line)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{font:500 12px/1 var(--f-mono);background:transparent;color:var(--band-muted);border:1px solid var(--band-line);padding:8px 10px;border-radius:999px;cursor:pointer;transition:.2s}
.chips button:hover{color:var(--band-fg)}
.chips button[aria-pressed="true"]{background:var(--band-brass);border-color:var(--band-brass);color:#1A1406}
.readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--band-line)}
.readout div{padding:14px 18px;border-right:1px solid var(--band-line);min-width:0}
.readout div:last-child{border-right:0}
.readout span{display:block;font:500 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.readout b{display:block;margin-top:8px;font-size:15px;font-weight:600;color:var(--band-fg);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.readout b.big{font-size:24px;letter-spacing:-.02em;color:var(--band-brass)}
@media (max-width:440px){.readout{grid-template-columns:1fr}.readout div{border-right:0;border-bottom:1px solid var(--band-line)}.readout div:last-child{border-bottom:0}}
.panel svg{display:block;width:100%;height:auto}
.panel svg text{font-family:var(--f-mono)}

/* panel inputs */
.pin{display:grid;gap:16px}
.pin .row{display:grid;gap:8px}
.pin .row .lab{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font:500 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted)}
.pin .row .lab output,.pin .row .lab b{font:600 15px/1 var(--f-mono);letter-spacing:0;text-transform:none;color:var(--band-fg)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;margin:0;cursor:pointer;--p:50%}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--band-brass) var(--p),var(--band-line) var(--p))}
input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--band-line)}
input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--band-brass)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--band-fg);border:3px solid var(--band-brass);margin-top:-7px}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--band-fg);border:3px solid var(--band-brass)}
.light input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--brass) var(--p),var(--line) var(--p))}
.light input[type=range]::-moz-range-track{background:var(--line)}
.light input[type=range]::-moz-range-progress{background:var(--brass)}
.light input[type=range]::-webkit-slider-thumb{background:var(--surface);border-color:var(--brass)}
.light input[type=range]::-moz-range-thumb{background:var(--surface);border-color:var(--brass)}

/* stats ledger */
.ledger{background:var(--band);color:var(--band-fg);border-top:1px solid var(--band-line)}
.ledger .wrap{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
.stat{padding-block:30px 34px;padding-inline:0 24px;border-right:1px solid var(--band-line);min-width:0}
.stat+.stat{padding-left:28px}
.stat:last-child{border-right:0}
.stat b{display:block;font:700 clamp(32px,4vw,48px)/1 var(--f-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat b sup{font-size:.5em;color:var(--band-brass);vertical-align:.7em;margin-left:2px}
.stat span{display:block;margin-top:10px;font-size:14px;color:var(--band-muted);max-width:24ch}
@media (max-width:900px){.ledger .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(2n){border-right:0}.stat:nth-child(2n+1){padding-left:0}.stat:not(:nth-last-child(-n+2)){border-bottom:1px solid var(--band-line)}}
@media (max-width:900px){.ledger.n3 .wrap{grid-template-columns:1fr}.ledger.n3 .stat{border-right:0;padding-left:0;border-bottom:1px solid var(--band-line)}.ledger.n3 .stat:last-child{border-bottom:0}}

/* ---------- sections ---------- */
section.sec{padding-block:clamp(72px,9vw,120px)}
section.sec.tight{padding-top:0}
.alt-bg{background:var(--surface);border-block:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:end;margin-bottom:56px}
.sec-head h2{font-size:clamp(32px,4.2vw,52px);font-weight:800;margin-top:18px}
.sec-head p{color:var(--muted);font-size:17px;max-width:56ch}
@media (max-width:820px){.sec-head{grid-template-columns:1fr;gap:18px;margin-bottom:40px}}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* trust / commitments grid */
.trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.trust.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.trust article{padding:34px 36px 38px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;min-width:0}
.trust:not(.c3) article:nth-child(odd){border-right:1px solid var(--line)}
.trust:not(.c3) article:nth-child(even){padding-left:36px}
.trust.c3 article{grid-template-columns:1fr;gap:14px;padding:30px 30px 34px}
.trust.c3 article:first-child{padding-left:0}
.trust.c3 article:not(:last-child){border-right:1px solid var(--line)}
.trust .tag{font:500 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brass);padding-top:7px;width:84px}
.trust h3{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.trust p{color:var(--muted);margin-top:12px;max-width:52ch}
.trust ul{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:8px;font-size:15px}
.trust ul li{display:flex;gap:10px}
.trust ul li::before{content:"";flex:none;width:5px;height:5px;margin-top:10px;background:var(--brass);transform:rotate(45deg)}
@media (max-width:900px){.trust.c3{grid-template-columns:1fr}.trust.c3 article{padding:28px 0!important;border-right:0!important}}
@media (max-width:820px){.trust{grid-template-columns:1fr}.trust article,.trust:not(.c3) article:nth-child(even){padding:28px 0;border-right:0!important}.trust article{grid-template-columns:1fr;gap:10px}}

/* compare table */
.compare-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.compare-wrap.mt{margin-top:64px}
table.compare{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.compare th,.compare td{text-align:left;padding:16px 22px;border-bottom:1px solid var(--line);vertical-align:top}
.compare tr:last-child td{border-bottom:0}
.compare thead th{font:500 11px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--sunk)}
.compare thead th.us{color:var(--vault)}
.compare td:first-child{font-weight:600;width:28%}
.compare td.them{color:var(--muted)}
.mark{display:inline-flex;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;font-size:11px;font-weight:800;margin-right:9px;vertical-align:-3px}
.mark.y{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.mark.n{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}

/* tabbed explorer */
.inst{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper)}
.inst-tabs{display:flex;flex-direction:column;border-right:1px solid var(--line)}
.inst-tabs button{all:unset;cursor:pointer;padding:22px 26px;border-bottom:1px solid var(--line);display:grid;gap:6px;transition:background .2s}
.inst-tabs button:last-child{border-bottom:0}
.inst-tabs button:hover{background:var(--sunk)}
.inst-tabs button[aria-selected="true"]{background:var(--surface);box-shadow:inset 3px 0 0 var(--brass)}
.inst-tabs button:focus-visible{outline:2px solid var(--brass);outline-offset:-2px}
.inst-tabs .k{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.inst-tabs [aria-selected="true"] .k{color:var(--brass)}
.inst-tabs .n{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.25}
.inst-panel{padding:40px 44px;min-width:0;background:var(--surface)}
.inst-panel h3{font-size:clamp(26px,3vw,34px);font-weight:800}
.inst-panel .lead{color:var(--muted);margin-top:14px;font-size:17px;max-width:58ch}
.spec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:30px}
.spec div{background:var(--surface);padding:18px 20px;min-width:0}
.spec span{display:block;font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.spec b{display:block;margin-top:9px;font-size:15px;font-weight:600;line-height:1.35}
.fit{margin-top:28px;display:grid;gap:10px;padding:0;list-style:none}
.fit li{display:flex;gap:12px}
.fit li::before{content:"";flex:none;width:6px;height:6px;margin-top:10px;background:var(--brass);transform:rotate(45deg)}
@media (max-width:860px){.inst{grid-template-columns:1fr}.inst-tabs{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.inst-tabs button{flex:1 0 auto;max-width:240px;border-bottom:0;border-right:1px solid var(--line);padding:16px 18px}.inst-tabs .n{font-size:16px}.inst-tabs button[aria-selected="true"]{box-shadow:inset 0 -3px 0 var(--brass)}.inst-panel{padding:28px 22px}.spec{grid-template-columns:1fr}}

/* process */
.steps{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr))}
.step{padding:0 22px 0 0;position:relative;min-width:0}
.step .dot{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.step .dot b{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font:600 13px/1 var(--f-mono);background:var(--paper);position:relative;z-index:1}
.alt-bg .step .dot b{background:var(--surface)}
.step .dot::after{content:"";flex:1;height:1px;background:var(--line)}
.step:last-child .dot::after{display:none}
.step.end .dot b{border-color:var(--brass);color:var(--brass)}
.step h3{font-size:19px;font-weight:700;letter-spacing:-.015em;line-height:1.25}
.step p{color:var(--muted);font-size:15px;margin-top:10px}
.step .when{display:inline-block;margin-top:14px;font:500 11px/1 var(--f-mono);letter-spacing:.08em;color:var(--vault);background:color-mix(in srgb,var(--vault) 10%,transparent);padding:6px 8px;border-radius:4px}
@media (max-width:980px){.steps{grid-template-columns:1fr}.step{display:grid;grid-template-columns:38px minmax(0,1fr);gap:0 20px;padding:0 0 30px}.step .dot{grid-row:span 3;flex-direction:column;margin:0;align-self:stretch}.step .dot::after{width:1px;height:auto;flex:1}.step h3{padding-top:7px}}

/* small data tiles */
.tiles{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:16px}
.tl{border:1px solid var(--line);border-radius:10px;padding:24px 26px;background:var(--surface);min-width:0}
.alt-bg .tl{background:var(--paper)}
.tl span{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tl b{display:block;font-size:28px;font-weight:800;letter-spacing:-.03em;margin-top:10px;font-variant-numeric:tabular-nums}
.tl p{color:var(--muted);margin-top:6px;font-size:15px}
.tl .bar{height:8px;border-radius:4px;background:var(--sunk);margin-top:18px;position:relative;overflow:hidden}
.tl .bar i{position:absolute;inset:0 auto 0 0;background:var(--vault);border-radius:4px}
.tl .scale{display:flex;justify-content:space-between;font:400 11px/1 var(--f-mono);color:var(--faint);margin-top:8px}
@media (max-width:820px){.tiles{grid-template-columns:1fr}}

/* quiz */
.band-sec{background:var(--band);color:var(--band-fg)}
.band-sec .eyebrow{color:var(--band-brass)}
.band-sec .sec-head p{color:var(--band-muted)}
.ready{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:24px;align-items:start}
.quiz{background:var(--surface);color:var(--ink);border-radius:12px;overflow:hidden;min-width:0;box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.quiz-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 28px;border-bottom:1px solid var(--line);font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.progress{display:flex;gap:5px}
.progress i{width:24px;height:4px;border-radius:2px;background:var(--line);transition:background .3s}
.progress i.done{background:var(--brass)}
.quiz-body{padding:32px 28px 28px}
.q-label{font:500 12px/1 var(--f-mono);color:var(--brass);letter-spacing:.1em;text-transform:uppercase}
.q-title{font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.025em;margin-top:12px;line-height:1.15}
.q-help{color:var(--muted);margin-top:8px;font-size:15px}
.opts{display:grid;gap:8px;margin-top:24px}
.opt{display:flex;align-items:center;gap:14px;padding:15px 18px;border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s, background .15s;background:var(--paper)}
.opt:hover{border-color:var(--faint)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--faint);flex:none;display:grid;place-items:center}
.opt .radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--brass);transform:scale(0);transition:transform .15s}
.opt:has(input:checked){border-color:var(--brass);background:var(--brass-soft)}
.opt:has(input:checked) .radio{border-color:var(--brass)}
.opt:has(input:checked) .radio::after{transform:scale(1)}
.opt:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:2px}
.opt .t{font-weight:500}
.quiz-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px;flex-wrap:wrap}
.quiz-nav .note{font:400 12px/1.4 var(--f-mono);color:var(--faint);max-width:34ch}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}
.field{display:grid;gap:7px;min-width:0;align-content:start}
.field.full{grid-column:1/-1}
.field label{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{font:400 16px/1.4 var(--f-display);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:13px 14px;width:100%;transition:border-color .15s}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px color-mix(in srgb,var(--brass) 20%,transparent)}
.field .err{font-size:13px;color:var(--bad)}
.field .err:empty{display:none}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
.disclose{font:400 12px/1.5 var(--f-mono);color:var(--faint);margin-top:18px}
.result{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:center}
.gauge{position:relative;width:220px;max-width:100%}
.gauge svg{display:block;width:100%;height:auto}
.gauge .g-bg{fill:none;stroke:var(--sunk);stroke-width:14;stroke-linecap:round}
.gauge .g-fg{fill:none;stroke-width:14;stroke-linecap:round;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1)}
.gauge .g-num{position:absolute;left:0;right:0;bottom:6px;text-align:center}
.gauge .g-num b{font:800 54px/1 var(--f-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.gauge .g-num span{display:block;font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;color:var(--faint);margin-top:6px}
.tier-pill{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:999px}
.tier-pill i{width:8px;height:8px;border-radius:50%;background:currentColor}
.t-good{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}
.t-mid{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
.t-low{color:var(--bad);background:color-mix(in srgb,var(--bad) 13%,transparent)}
.result h3{font-size:26px;font-weight:800;letter-spacing:-.025em;margin-top:14px}
.result .r-copy{color:var(--muted);margin-top:8px}
.factors{display:grid;gap:12px;margin-top:28px;grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px}
.factor{display:grid;grid-template-columns:150px minmax(0,1fr) 120px;align-items:center;gap:16px;font-size:14px}
.factor .fb{height:6px;background:var(--sunk);border-radius:3px;overflow:hidden}
.factor .fb i{display:block;height:100%;border-radius:3px;transition:width 1s ease}
.factor .fv{font:500 12px/1.3 var(--f-mono);color:var(--muted);text-align:right}
@media (max-width:640px){.result{grid-template-columns:1fr;justify-items:start}.factor{grid-template-columns:96px minmax(0,1fr) 90px;gap:10px}}
.tiers{display:grid;gap:10px;min-width:0}
.tier{border:1px solid var(--band-line);border-radius:10px;padding:20px 22px;transition:.3s}
.tier.active{background:var(--band-2);border-color:var(--band-brass)}
.tier .head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tier h4{font-size:18px;font-weight:700;letter-spacing:-.01em}
.tier .rng{font:500 11px/1 var(--f-mono);color:var(--band-muted)}
.tier p{color:var(--band-muted);font-size:14px;margin-top:8px}
.tier .sw{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px}
.tiers .disc{font:400 11.5px/1.5 var(--f-mono);color:var(--band-muted);padding:6px 4px}
@media (max-width:900px){.ready{grid-template-columns:1fr}}

/* cards & forms */
.contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:34px 32px;min-width:0}
.alt-bg .card{background:var(--paper)}
.card h3{font-size:26px;font-weight:800;letter-spacing:-.025em}
.card>p{color:var(--muted);margin-top:10px}
.card .btn{margin-top:22px}
.days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:24px}
.days button,.slots button,.seg button{all:unset;cursor:pointer;border:1px solid var(--line);border-radius:7px;text-align:center;padding:12px 4px;background:var(--paper);transition:.15s}
.days button:hover,.slots button:hover,.seg button:hover{border-color:var(--faint)}
.days button span{display:block;font:500 10.5px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.days button b{display:block;font-size:20px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}
.days button small{display:block;font:400 10.5px/1 var(--f-mono);color:var(--faint);margin-top:4px}
.days button[aria-pressed="true"],.slots button[aria-pressed="true"],.seg button[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.days button[aria-pressed="true"] span,.days button[aria-pressed="true"] small{color:color-mix(in srgb,var(--paper) 70%,transparent)}
.days button:focus-visible,.slots button:focus-visible,.seg button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.slots button{padding:12px 8px;font-size:14px;font-weight:600}
.slots button small{display:block;font:400 11px/1 var(--f-mono);opacity:.7;margin-top:5px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{padding:10px 14px;font-size:14px;font-weight:500}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
@media (max-width:480px){.days{grid-template-columns:repeat(3,minmax(0,1fr))}.card{padding:26px 20px}}
.confirm{margin-top:22px;padding:18px 20px;border-radius:8px;background:color-mix(in srgb,var(--ok) 10%,transparent);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}
.confirm.warn{background:color-mix(in srgb,var(--warn) 10%,transparent);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}
.confirm b{display:block;font-size:16px}
.confirm p{color:var(--muted);font-size:14px;margin-top:6px}
.phone-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.phone-row .num{font:600 18px/1 var(--f-mono);user-select:all;text-decoration:none}
.phone-row .lbl{font:500 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.copy{font:500 12px/1 var(--f-mono);background:transparent;border:1px solid var(--line);color:var(--muted);padding:8px 10px;border-radius:5px;cursor:pointer}
.copy:hover{color:var(--ink);border-color:var(--ink)}

/* light calculator block (on paper) */
.calc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.calc-in{padding:32px;border-right:1px solid var(--line);display:grid;gap:22px;align-content:start}
.calc-in .row{display:grid;gap:9px}
.calc-in .lab{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font:500 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.calc-in .lab output{font:600 16px/1 var(--f-mono);letter-spacing:0;text-transform:none;color:var(--ink)}
.calc-out{padding:32px;background:var(--paper);min-width:0;display:grid;gap:22px;align-content:start}
.calc-out .big{font:800 clamp(40px,5vw,60px)/1 var(--f-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.calc-out .big small{font-size:.4em;color:var(--muted);letter-spacing:0;font-weight:600;margin-left:6px}
.calc-out .lbl{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.calc-out .sub{color:var(--muted);font-size:15px;max-width:52ch}
.stack{display:flex;height:34px;border-radius:6px;overflow:hidden;background:var(--sunk)}
.stack i{display:block;height:100%;transition:width .5s ease;min-width:0}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend span i{width:10px;height:10px;border-radius:2px;display:inline-block}
.kv{display:grid;gap:0;border-top:1px solid var(--line)}
.kv div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.kv div b{font-family:var(--f-mono);font-weight:600;font-variant-numeric:tabular-nums}
.kv div.total{font-weight:700}
.kv div.total b{color:var(--vault)}
.calc .note{font:400 12px/1.5 var(--f-mono);color:var(--faint)}
@media (max-width:860px){.calc{grid-template-columns:1fr}.calc-in{border-right:0;border-bottom:1px solid var(--line);padding:26px 22px}.calc-out{padding:26px 22px}}
.num-in{font:600 16px/1 var(--f-mono);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:11px 12px;width:100%}
.num-in:focus{outline:none;border-color:var(--brass)}

/* practice cards */
.practices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.pr{background:var(--surface);padding:30px 30px 28px;display:grid;gap:12px;align-content:start;text-decoration:none;color:var(--ink);transition:background .2s;min-width:0}
.pr:hover{background:var(--paper)}
.pr .k{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.pr h3{font-size:26px;font-weight:800;letter-spacing:-.03em}
.pr p{color:var(--muted);font-size:15px}
.pr .go{margin-top:8px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}
.pr:hover .go .arrow{transform:translateX(4px)}
.pr.feature{background:var(--band);color:var(--band-fg)}
.pr.feature p{color:var(--band-muted)}
.pr.feature .k{color:var(--band-brass)}
.pr.feature:hover{background:var(--band-2)}
@media (max-width:900px){.practices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.practices{grid-template-columns:1fr}}

/* pricing */
.pricing{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.price{border:1px solid var(--line);border-radius:12px;padding:30px 28px;background:var(--surface);display:grid;gap:14px;align-content:start;position:relative;transition:border-color .3s, box-shadow .3s;min-width:0}
.price.best{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}
.price .flag{position:absolute;top:-11px;left:24px;font:600 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;background:var(--brass);color:var(--paper);padding:6px 9px;border-radius:4px}
.price h3{font-size:22px;font-weight:800}
.price .amt{font:800 44px/1 var(--f-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.price .amt small{font-size:16px;color:var(--muted);font-weight:500;letter-spacing:0}
.price .meta{font:500 12px/1.5 var(--f-mono);color:var(--muted)}
.price ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:15px;border-top:1px solid var(--line);padding-top:16px}
.price ul li{display:flex;gap:10px}
.price ul li::before{content:"✓";color:var(--ok);font-weight:700}
.price .est{font:600 13px/1.3 var(--f-mono);color:var(--vault);background:color-mix(in srgb,var(--vault) 9%,transparent);padding:9px 11px;border-radius:6px}
@media (max-width:900px){.pricing{grid-template-columns:1fr}}

/* faq */
.faq{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:56px}
.faq-side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 100px);align-self:start}
.faq-side h2{font-size:clamp(32px,4vw,48px);font-weight:800;margin-top:18px}
.faq-side p{color:var(--muted);margin-top:16px}
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:1px solid var(--ink)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-size:19px;font-weight:600;letter-spacing:-.015em}
summary::-webkit-details-marker{display:none}
summary .pm{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;position:relative;transition:.25s}
summary .pm::before,summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%)}
summary .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:.25s}
details[open] summary .pm{border-color:var(--brass);background:var(--brass)}
details[open] summary .pm::before,details[open] summary .pm::after{background:var(--paper)}
details[open] summary .pm::after{transform:translate(-50%,-50%) rotate(0)}
details .ans{padding:0 50px 24px 0;color:var(--muted);font-size:16.5px;max-width:64ch}
details .ans ul{margin:10px 0 0;padding-left:18px}
.faq-group{font:500 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin:40px 0 14px}
.faq-group:first-child{margin-top:0}
@media (max-width:860px){.faq{grid-template-columns:1fr;gap:28px}.faq-side{position:static}summary{font-size:17px}details .ans{padding-right:0}}

/* advisor band + closing */
.advisor{border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;padding:36px 40px;background:var(--surface)}
.advisor .eyebrow{color:var(--vault)}
.advisor h3{font-size:clamp(24px,3vw,32px);font-weight:800;margin-top:14px}
.advisor p{color:var(--muted);margin-top:10px;max-width:60ch}
.advisor .acts{display:flex;flex-direction:column;gap:10px}
@media (max-width:760px){.advisor{grid-template-columns:1fr;padding:28px 22px}.advisor .acts{flex-direction:row;flex-wrap:wrap}}
.closing{background:var(--band);color:var(--band-fg)}
.closing .wrap{padding-block:clamp(72px,9vw,112px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end}
.closing h2{font-size:clamp(36px,5.2vw,70px);font-weight:800;letter-spacing:-.04em}
.closing h2 em.s{color:var(--band-brass)}
.closing p{color:var(--band-muted);margin-top:18px;font-size:18px}
.closing .acts{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:820px){.closing .wrap{grid-template-columns:1fr}}

/* cross-practice strip */
.xp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.xp a{border:1px solid var(--line);border-radius:10px;padding:20px 22px;text-decoration:none;display:grid;gap:6px;transition:border-color .2s, background .2s;background:var(--surface);min-width:0}
.xp a:hover{border-color:var(--ink)}
.xp a span{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.xp a b{font-size:17px;letter-spacing:-.01em}
.xp a small{color:var(--muted);font-size:14px}
@media (max-width:900px){.xp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.xp{grid-template-columns:1fr}}

/* footer */
footer{background:var(--band);color:var(--band-muted);border-top:1px solid var(--band-line);font-size:14px}
footer .wrap{padding-block:56px 36px}
.f-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,2fr);gap:40px}
footer h5{font:500 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--band-fg);margin:0 0 16px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
footer a{color:var(--band-muted);text-decoration:none}
footer a:hover{color:var(--band-fg)}
footer .about{margin-top:14px;max-width:30ch}
.discl p{font-size:12.5px;line-height:1.55;margin-bottom:10px}
.f-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:44px;padding-top:22px;border-top:1px solid var(--band-line);font:400 12px/1 var(--f-mono)}
.f-bot div{display:flex;gap:18px}
@media (max-width:900px){.f-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.f-grid{grid-template-columns:1fr}}
.sticky-call{display:none}
@media (max-width:720px){
  .sticky-call{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--band);border-top:1px solid var(--band-line)}
  .sticky-call .btn{flex:1;padding:13px 10px;font-size:14px}
  footer .wrap{padding-bottom:110px}
}
