
/* ============================================================
   NOVARAMD DESIGN TOKENS  —  every value below is named.
   No raw hex or unscaled padding is permitted in components.
   ============================================================ */
:root{
  /* colour */
  --bg:#F8FAFC; --surface:#FFFFFF; --surface-2:#F1F5F9;
  --primary:#0EA5E9; --primary-ink:#0284C7; --primary-deep:#0C4A6E;
  --accent:#14B8A6; --accent-soft:#CCFBF1;
  --ink:#0F172A; --muted:#64748B; --border:#E2E8F0;
  --on-primary:#FFFFFF;
  /* spacing — 8pt */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px;
  --s6:48px; --s8:64px; --s10:80px; --s12:96px; --s16:128px;
  /* radius */
  --r-btn:8px; --r-card:12px; --r-pill:999px; --r-lg:20px;
  /* shadow */
  --sh-1:0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.06);
  --sh-2:0 4px 6px -1px rgba(15,23,42,.05), 0 2px 4px -2px rgba(15,23,42,.05);
  --sh-3:0 12px 24px -8px rgba(15,23,42,.10), 0 4px 8px -4px rgba(15,23,42,.05);
  --sh-primary:0 8px 20px -6px rgba(14,165,233,.40);
  /* type */
  --f-sans:'Schibsted Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-serif:'Newsreader', Georgia, 'Times New Roman', serif;
  --fs-xs:13px; --fs-sm:14px; --fs-base:16px; --fs-md:18px; --fs-lg:20px;
  --fs-xl:24px; --fs-2xl:32px; --fs-3xl:40px; --fs-4xl:52px; --fs-5xl:64px;
  --lh-tight:1.08; --lh-snug:1.25; --lh-body:1.6;
  --maxw:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--f-sans); font-size:var(--fs-base); line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3,h4{margin:0; font-weight:700; letter-spacing:-.022em; line-height:var(--lh-tight)}
p{margin:0}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
em.ser{font-family:var(--f-serif); font-style:italic; font-weight:400; letter-spacing:-.01em}
.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--s3)}
.eyebrow{font-size:var(--fs-xs); font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--primary-ink)}
.muted{color:var(--muted)}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:var(--s1);
  min-height:48px; padding:0 var(--s3); border-radius:var(--r-btn); border:1px solid transparent;
  font:inherit; font-size:var(--fs-sm); font-weight:600; cursor:pointer;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .18s, background .18s, color .18s; white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary); color:var(--on-primary); box-shadow:var(--sh-primary)}
.btn-primary:hover{background:var(--primary-ink); box-shadow:0 10px 26px -6px rgba(2,132,199,.45); transform:translateY(-1px)}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--border)}
.btn-outline:hover{border-color:var(--primary); color:var(--primary-ink); background:var(--surface)}
.btn-ghost{background:var(--surface-2); color:var(--ink)}
.btn-ghost:hover{background:var(--border)}
.btn-lg{min-height:56px; padding:0 var(--s4); font-size:var(--fs-base)}

/* ---------- marquee (moving text) ---------- */
.marquee{background:var(--primary-deep); color:var(--on-primary); overflow:hidden; padding-block:var(--s1)}
.marquee-track{display:flex; gap:var(--s5); width:max-content; animation:slide 38s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:flex; align-items:center; gap:var(--s5); font-size:var(--fs-sm); font-weight:500; letter-spacing:.03em; opacity:.92}
.marquee-dot{width:5px; height:5px; border-radius:var(--r-pill); background:var(--accent); flex:none}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- nav ---------- */
.nav{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(14px); border-bottom:1px solid transparent; transition:border-color .25s, box-shadow .25s}
.nav.stuck{border-bottom-color:var(--border); box-shadow:var(--sh-1)}
.nav-in{display:flex; align-items:center; justify-content:space-between; gap:var(--s3); min-height:72px}
.logo{display:inline-flex; align-items:center; gap:10px}
.logo .wm{font-size:var(--fs-lg); font-weight:700; letter-spacing:-.035em; color:var(--ink)}
.logo .mk{flex:none; transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.logo:hover .mk{transform:rotate(-6deg) scale(1.05)}
.nav-links{display:flex; align-items:center; gap:var(--s4); font-size:var(--fs-sm); font-weight:500}
.nav-links a{position:relative; padding-block:var(--s1); color:var(--muted); transition:color .18s}
.nav-links a::after{content:''; position:absolute; left:0; right:100%; bottom:2px; height:2px; background:var(--primary); transition:right .25s cubic-bezier(.2,.7,.3,1)}
.nav-links a:hover{color:var(--ink)} .nav-links a:hover::after{right:0}
.nav-cta{display:flex; align-items:center; gap:var(--s2)}
.burger{display:none; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:var(--r-btn); background:var(--surface); cursor:pointer}

.burger svg{transition:transform .25s cubic-bezier(.2,.7,.3,1)}
.burger[aria-expanded="true"] svg{transform:rotate(90deg)}
.mobnav{display:none; border-top:1px solid var(--border); background:var(--surface);
  padding:var(--s2) var(--s3) var(--s4); flex-direction:column}
.mobnav[data-open]{display:flex; animation:drop .26s cubic-bezier(.2,.7,.3,1)}
@keyframes drop{from{opacity:0; transform:translateY(-8px)}to{opacity:1; transform:none}}
.mobnav a{padding:var(--s2) 0; font-size:var(--fs-md); font-weight:600; color:var(--ink);
  border-bottom:1px solid var(--border); min-height:52px; display:flex; align-items:center}
.mobnav-cta{display:flex; gap:var(--s2); margin-top:var(--s3)}
.mobnav-cta .btn{flex:1; border-bottom:none}
.mobnav-cta a{border-bottom:none; padding:0}

/* ---------- hero ---------- */
.hero{position:relative; padding-block:var(--s10) var(--s10); overflow:hidden}
.hero::before{content:''; position:absolute; inset:0;
  background:radial-gradient(1100px 520px at 78% 8%, rgba(14,165,233,.10), transparent 62%),
             radial-gradient(760px 400px at 6% 88%, rgba(20,184,166,.10), transparent 60%);
  pointer-events:none}
.hero-grid{position:relative; display:grid; grid-template-columns:1.03fr .97fr; gap:var(--s8); align-items:center}
.hero h1{font-size:var(--fs-5xl); letter-spacing:-.035em}
.rotator{display:inline-grid; vertical-align:top; color:var(--primary)}
.rotator>span{grid-area:1/1; opacity:0; transform:translateY(14px); animation:rot 12s infinite}
.rotator>span:nth-child(1){animation-delay:0s}.rotator>span:nth-child(2){animation-delay:3s}
.rotator>span:nth-child(3){animation-delay:6s}.rotator>span:nth-child(4){animation-delay:9s}
@keyframes rot{0%{opacity:0;transform:translateY(14px)}4%,22%{opacity:1;transform:translateY(0)}27%,100%{opacity:0;transform:translateY(-14px)}}
.hero-sub{font-size:var(--fs-md); color:var(--muted); max-width:46ch; margin-top:var(--s3)}
.hero-actions{display:flex; flex-wrap:wrap; gap:var(--s2); margin-top:var(--s5)}
.proof{display:inline-flex; align-items:center; gap:var(--s2); margin-top:var(--s5);
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-pill);
  padding:var(--s1) var(--s3) var(--s1) var(--s1); box-shadow:var(--sh-1); font-size:var(--fs-sm)}
.proof-av{display:flex}
.proof-av i{width:28px; height:28px; border-radius:var(--r-pill); border:2px solid var(--surface);
  background:var(--surface-2); display:block; margin-right:-10px; overflow:hidden}
.proof-av i img{width:100%; height:100%; object-fit:cover}
.proof b{font-weight:700}

.hero-calc{position:relative}
.hcalc{position:relative; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--r-lg); box-shadow:var(--sh-3); overflow:hidden}
.hcalc-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.07}
.hcalc-in{position:relative; padding:var(--s5)}
.hcalc-h{font-size:var(--fs-xl); margin:var(--s1) 0 var(--s4)}
.hcalc-out{background:var(--primary-deep); color:var(--on-primary); border-radius:var(--r-card);
  padding:var(--s3); margin-top:var(--s4)}
.hcalc-out>div:first-child span{display:block; font-size:var(--fs-xs); letter-spacing:.1em;
  text-transform:uppercase; opacity:.72; font-weight:600}
.hcalc-out>div:first-child b{font-size:var(--fs-4xl); font-weight:800; letter-spacing:-.03em; line-height:1.05}
.hcalc-split{display:flex; gap:var(--s4); flex-wrap:wrap; margin-top:var(--s3); padding-top:var(--s3);
  border-top:1px solid rgba(255,255,255,.18)}
.hcalc-split span{display:block; font-size:11px; opacity:.7; text-transform:uppercase; letter-spacing:.07em; font-weight:600}
.hcalc-split b{font-size:var(--fs-md); font-weight:700; white-space:nowrap}
.hcalc-split>div{min-width:86px}
.hcalc-note{font-size:11.5px; line-height:1.55; color:var(--muted); margin-top:var(--s2)}

.collage{position:relative; height:520px}
.ph{position:absolute; border-radius:var(--r-lg); overflow:hidden; background:var(--surface);
  box-shadow:var(--sh-3); border:1px solid var(--border)}
.ph img{width:100%; height:100%; object-fit:cover}
.ph-a{width:60%; height:78%; left:0; top:6%; animation:float1 9s ease-in-out infinite}
.ph-b{width:46%; height:44%; right:0; top:0; animation:float2 11s ease-in-out infinite}
.ph-c{width:52%; height:38%; right:2%; bottom:2%; animation:float1 10s ease-in-out infinite reverse}
@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
.badge-float{position:absolute; left:-2%; bottom:8%; z-index:3; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--r-card); box-shadow:var(--sh-3);
  padding:var(--s2) var(--s3); display:flex; align-items:center; gap:var(--s2); animation:float2 8s ease-in-out infinite}
.badge-float .dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft)}

/* ---------- stats ---------- */
.stats{border-block:1px solid var(--border); background:var(--surface)}
.stats-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s4); padding-block:var(--s6)}
.stat b{display:block; font-size:var(--fs-3xl); font-weight:800; letter-spacing:-.03em; color:var(--ink)}
.stat span{font-size:var(--fs-sm); color:var(--muted)}

/* ---------- sections ---------- */
.sec{padding-block:var(--s12)}
.sec-head{max-width:640px; margin-bottom:var(--s8)}
.sec-head h2{font-size:var(--fs-3xl); margin-top:var(--s2)}
.sec-head p{color:var(--muted); font-size:var(--fs-md); margin-top:var(--s2)}

/* ---------- service cards ---------- */
.cards{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s3)}
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-card);
  padding:var(--s3); display:flex; flex-direction:column; gap:var(--s2);
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s}
.card:hover{transform:translateY(-4px); box-shadow:var(--sh-3); border-color:rgba(14,165,233,.35)}
.card-media{height:150px; border-radius:var(--r-btn); background:var(--surface-2);
  display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative}
.card-media.cover img{height:100%; width:100%; object-fit:cover}
.card-media img{height:88%; width:auto; object-fit:contain; transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.card:hover .card-media img{transform:scale(1.06)}
.card h3{font-size:var(--fs-md)}
.card p{font-size:var(--fs-sm); color:var(--muted); flex:1}
.card-links{display:flex; align-items:center; gap:var(--s2); padding-top:var(--s1)}
.link-more{font-size:var(--fs-sm); font-weight:600; color:var(--primary-ink); display:inline-flex; align-items:center; gap:6px}
.link-more svg{transition:transform .2s}
.link-more:hover svg{transform:translateX(3px)}
.card-book{font-size:var(--fs-xs); font-weight:600; color:var(--muted); border-left:1px solid var(--border); padding-left:var(--s2)}
.card-book:hover{color:var(--accent)}

/* ---------- feature band ---------- */
.band{display:grid; grid-template-columns:1fr 1fr; gap:0; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-2)}
.band-media{position:relative; min-height:420px; overflow:hidden}
.band-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.band.in .band-media img{transform:scale(1.03)}
.band-copy{padding:var(--s10) var(--s8)}
@media (max-width:1024px){.band{grid-template-columns:1fr}.band-media{min-height:300px}.band-copy{padding:var(--s6)}}

/* ---------- calculator ---------- */
.calc-in,.calc-out{min-width:0}
.calc{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--sh-2); overflow:hidden; display:grid; grid-template-columns:1fr 1fr}
.calc-in{padding:var(--s8)}
.calc-out{padding:var(--s8); background:var(--primary-deep); color:var(--on-primary); position:relative; overflow:hidden}
.calc-photo{position:absolute; right:0; bottom:0; width:46%; object-fit:cover; opacity:.20; mix-blend-mode:luminosity; pointer-events:none}
.calc-out::after{content:''; position:absolute; width:320px; height:320px; right:-120px; bottom:-140px;
  border-radius:var(--r-pill); background:radial-gradient(circle, rgba(20,184,166,.30), transparent 70%)}
.field{margin-bottom:var(--s4)}
.field label{display:flex; justify-content:space-between; align-items:baseline;
  font-size:var(--fs-sm); font-weight:600; margin-bottom:var(--s1)}
.field label b{font-size:var(--fs-md); font-weight:700; color:var(--primary-ink)}
input[type=range]{width:100%; height:6px; -webkit-appearance:none; appearance:none;
  background:var(--border); border-radius:var(--r-pill); outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:26px; height:26px; border-radius:var(--r-pill);
  background:var(--primary); border:3px solid var(--surface); box-shadow:var(--sh-2); cursor:pointer; transition:transform .15s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:var(--r-pill);background:var(--primary);
  border:3px solid var(--surface); box-shadow:var(--sh-2); cursor:pointer}
.seg{display:flex; gap:var(--s1); background:var(--surface-2); padding:4px; border-radius:var(--r-btn)}
.seg button{flex:1; min-height:40px; border:none; background:transparent; border-radius:6px;
  font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--muted); cursor:pointer; transition:.18s}
.seg button[aria-pressed=true]{background:var(--surface); color:var(--ink); box-shadow:var(--sh-1)}
.bmi-bar{height:8px; border-radius:var(--r-pill); margin-top:var(--s2); position:relative;
  background:linear-gradient(90deg,#93C5FD 0 18%, var(--accent) 18% 46%, #FCD34D 46% 68%, #FB923C 68% 100%)}
.bmi-pin{position:absolute; top:-5px; width:18px; height:18px; border-radius:var(--r-pill);
  background:var(--surface); border:3px solid var(--ink); transform:translateX(-50%); transition:left .35s cubic-bezier(.2,.7,.3,1)}
.bmi-scale{display:flex; justify-content:space-between; font-size:11px; color:var(--muted); margin-top:6px}
.result-big{font-size:var(--fs-5xl); font-weight:800; letter-spacing:-.04em; line-height:1}
.result-row{display:flex; gap:var(--s6); margin-top:var(--s5); position:relative; z-index:1}
.result-row div span{display:block; font-size:var(--fs-xs); opacity:.75; text-transform:uppercase; letter-spacing:.1em; font-weight:600}
.result-row div b{font-size:var(--fs-xl); font-weight:700}
.calc-note{font-size:var(--fs-xs); opacity:.72; margin-top:var(--s5); position:relative; z-index:1; line-height:1.55}

/* ---------- steps ---------- */
.steps{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s6); counter-reset:st}
.step{position:relative; padding-top:var(--s5)}
.step::before{counter-increment:st; content:'0' counter(st); position:absolute; top:0; left:0;
  font-size:var(--fs-sm); font-weight:800; color:var(--primary); letter-spacing:.08em}
.step h3{font-size:var(--fs-lg); margin-bottom:var(--s1)}
.step p{color:var(--muted); font-size:var(--fs-sm)}
.step-rule{height:2px; background:var(--border); margin-bottom:var(--s3); position:relative; overflow:hidden}
.step-rule i{position:absolute; inset:0; background:var(--primary); transform:scaleX(0); transform-origin:left;
  transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in .step-rule i{transform:scaleX(1)}

.how-wrap{display:grid; grid-template-columns:1.35fr .65fr; gap:var(--s8); align-items:center}
.how-wrap .steps{grid-template-columns:1fr; gap:var(--s5)}
.how-photo{border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-3); aspect-ratio:3/4}
.how-photo img{width:100%; height:100%; object-fit:cover}
@media (max-width:1024px){.how-wrap{grid-template-columns:1fr}.how-photo{aspect-ratio:16/9}}

/* ---------- labs ---------- */
.labs{display:grid; grid-template-columns:1fr 1fr; gap:var(--s8); align-items:center}
.lab-shots{display:grid; grid-template-columns:1fr 1fr; gap:var(--s2)}
.lab-shot{border:1px solid var(--border); border-radius:var(--r-card); background:var(--surface);
  padding:var(--s2); box-shadow:var(--sh-1); transition:transform .25s, box-shadow .25s}
.lab-shot:hover{transform:translateY(-3px); box-shadow:var(--sh-3)}
.lab-shot img{border-radius:6px}
.tick{display:flex; gap:var(--s2); align-items:flex-start; margin-bottom:var(--s2); font-size:var(--fs-sm)}
.tick svg{flex:none; margin-top:3px}

/* ---------- resources ---------- */
.res-feat{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3); margin-bottom:var(--s3)}
.post{display:block; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-card);
  overflow:hidden; transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s}
.post:hover{transform:translateY(-4px); box-shadow:var(--sh-3); border-color:rgba(14,165,233,.35)}
.post-media{height:210px; overflow:hidden; background:var(--surface-2)}
.post-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.post:hover .post-media img{transform:scale(1.045)}
.post-body{padding:var(--s3)}
.post-meta{display:flex; align-items:center; gap:var(--s2); font-size:var(--fs-xs); color:var(--muted); margin-bottom:var(--s1)}
.post-meta b{color:var(--primary-ink); font-weight:700; letter-spacing:.08em; text-transform:uppercase}
.post h3{font-size:var(--fs-lg); margin-bottom:var(--s1)}
.post p{font-size:var(--fs-sm); color:var(--muted)}
.res-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--s6)}
.res-item{display:flex; gap:var(--s3); align-items:center; padding:var(--s3) 0; border-top:1px solid var(--border);
  transition:padding-left .2s}
.res-item:hover{padding-left:var(--s1)}
.res-thumb{width:78px; height:78px; border-radius:var(--r-btn); overflow:hidden; flex:none; background:var(--surface-2)}
.res-thumb img{width:100%; height:100%; object-fit:cover}
.res-item h4{font-size:var(--fs-base); font-weight:600; margin-bottom:4px}
.res-item span{font-size:var(--fs-xs); color:var(--muted)}
@media (max-width:900px){.res-feat,.res-list{grid-template-columns:1fr}}

/* ---------- testimonials ---------- */
.quotes{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3); max-width:900px}
.quote{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-card); padding:var(--s4)}
.quote p{font-size:var(--fs-md); line-height:1.5}
.quote footer{display:flex; align-items:center; gap:var(--s2); margin-top:var(--s3);
  font-size:var(--fs-sm); color:var(--muted)}
.quote footer i{width:36px; height:36px; border-radius:var(--r-pill); background:var(--surface-2); display:block; flex:none}
.slot{color:var(--primary-ink); background:var(--accent-soft); border-radius:4px; padding:0 5px; font-size:var(--fs-xs); font-weight:600}

/* ---------- FAQ ---------- */
.faq{max-width:840px; margin-inline:auto}
.qa{border-bottom:1px solid var(--border)}
.qa button{width:100%; display:flex; justify-content:space-between; align-items:center; gap:var(--s3);
  background:none; border:none; font:inherit; font-size:var(--fs-md); font-weight:600; color:var(--ink);
  text-align:left; padding:var(--s3) 0; min-height:56px; cursor:pointer}
.qa button:hover{color:var(--primary-ink)}
.qa-ico{flex:none; width:24px; height:24px; position:relative}
.qa-ico::before,.qa-ico::after{content:''; position:absolute; inset:50% 2px auto 2px; height:2px;
  background:currentColor; border-radius:2px; transition:transform .28s cubic-bezier(.2,.7,.3,1)}
.qa-ico::after{transform:rotate(90deg)}
.qa[open] .qa-ico::after{transform:rotate(0)}
.qa-body{overflow:hidden; max-height:0; transition:max-height .35s cubic-bezier(.2,.7,.3,1)}
.qa-body p{padding-bottom:var(--s3); color:var(--muted); font-size:var(--fs-sm); max-width:70ch}

/* ---------- CTA ---------- */
.cta{background:var(--primary-deep); color:var(--on-primary); border-radius:var(--r-lg);
  padding:var(--s12) var(--s8); text-align:center; position:relative; overflow:hidden}
.cta::before{content:''; position:absolute; inset:0;
  background:radial-gradient(600px 300px at 20% 0%, rgba(20,184,166,.28), transparent 60%),
             radial-gradient(500px 260px at 85% 100%, rgba(14,165,233,.30), transparent 60%)}
.cta>*{position:relative}
.cta h2{font-size:var(--fs-4xl); max-width:16ch; margin-inline:auto}
.cta p{color:rgba(255,255,255,.78); margin-top:var(--s3); max-width:52ch; margin-inline:auto}
.cta .btn-primary{background:var(--surface); color:var(--primary-deep); box-shadow:var(--sh-3)}
.cta .btn-primary:hover{background:var(--accent-soft); color:var(--primary-deep)}
.cta .btn-outline{color:var(--on-primary); border-color:rgba(255,255,255,.35)}
.cta .btn-outline:hover{background:rgba(255,255,255,.10); color:var(--on-primary); border-color:rgba(255,255,255,.6)}

/* ---------- footer ---------- */
.foot{background:var(--surface); border-top:1px solid var(--border); padding-block:var(--s10) var(--s5); margin-top:var(--s12)}
.foot-top{display:grid; grid-template-columns:250px minmax(0,1fr); gap:var(--s8);
  padding-bottom:var(--s8); border-bottom:1px solid var(--border)}
.foot-social{display:flex; gap:var(--s1); margin-top:var(--s3)}
.foot-social a{width:38px; height:38px; border:1px solid var(--border); border-radius:var(--r-btn);
  display:flex; align-items:center; justify-content:center; color:var(--muted); transition:.18s}
.foot-social a:hover{color:var(--primary-ink); border-color:var(--primary); background:var(--surface-2)}
.foot-cols{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s5) var(--s4)}
.foot-col h4{font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em;
  color:var(--ink); margin-bottom:var(--s2)}
.foot-col a{display:block; font-size:var(--fs-sm); color:var(--muted); padding-block:5px; transition:color .16s}
.foot-col a:hover{color:var(--primary-ink)}
.ls-seal{display:flex; align-items:center; gap:var(--s3); padding-top:var(--s5)}
.ls-seal a{flex:none; display:block; line-height:0; transition:opacity .18s}
.ls-seal a:hover{opacity:.82}
.ls-seal img{width:73px; height:79px; display:block}
.ls-seal p{font-size:var(--fs-sm); color:var(--muted); max-width:52ch}
.ls-seal p b{color:var(--ink); font-weight:600}
@media (max-width:720px){.ls-seal{flex-direction:column; align-items:flex-start}}
.foot-legal{padding-top:var(--s5); display:flex; flex-direction:column; gap:var(--s2); max-width:96ch}
.foot-legal p{font-size:12px; line-height:1.65; color:var(--muted)}
.foot-legal b{color:var(--ink); font-weight:600}
.foot-copy{padding-top:var(--s2)}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1; transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  :root{--fs-5xl:46px; --fs-4xl:38px; --fs-3xl:32px}
  .hero-grid,.calc,.labs{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps,.quotes{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .collage{height:420px}
  .hcalc-in{padding:var(--s4)}
  .calc-in,.calc-out{padding:var(--s6)}
}
@media (max-width:720px){
  :root{--fs-5xl:38px; --fs-4xl:32px; --fs-3xl:27px; --fs-md:17px}
  .nav-links{display:none}
  .burger{display:flex}
  .nav-cta .btn-outline,.nav-cta .btn-primary{display:none}
  .sec{padding-block:var(--s10)}
  .cards{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:1fr}
  .collage{height:360px}
  .hcalc-split{flex-direction:column; gap:var(--s2)}
  .cta{padding:var(--s10) var(--s3)}
  .result-row{flex-direction:column; gap:var(--s3)}
  .calc-in,.calc-out{padding:var(--s4)}
  .bmi-scale{font-size:10px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
  html{scroll-behavior:auto}
}

/* ---------- pillars ---------- */
.pillars{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s3)}
.pillar{display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--r-card); overflow:hidden; text-decoration:none; color:inherit;
  box-shadow:var(--sh-1); transition:transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s, border-color .28s}
.pillar:hover{transform:translateY(-4px); box-shadow:var(--sh-2); border-color:#CBD5E1}
.pillar-media{position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--bg)}
.pillar-media img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pillar:hover .pillar-media img{transform:scale(1.05)}
.pillar-body{padding:var(--s4); display:flex; flex-direction:column; flex:1; gap:var(--s2)}
.pillar-num{font-size:var(--fs-xs); letter-spacing:.16em; font-weight:700; color:var(--accent)}
.pillar-body h3{font-size:var(--fs-xl); line-height:1.25}
.pillar-body p{color:var(--muted); font-size:var(--fs-sm); flex:1}
.pillar .link-more{margin-top:var(--s2)}

/* ---------- category deep-dive ---------- */
.dive-head{display:grid; grid-template-columns:1fr 1fr; gap:var(--s7); align-items:center;
  margin-bottom:var(--s7)}
.dive-head.rev .dive-photo{order:-1}
.dive-photo{border-radius:var(--r-card); overflow:hidden; box-shadow:var(--sh-2); aspect-ratio:4/3}
.dive-photo img{width:100%; height:100%; object-fit:cover; display:block}

/* ---------- product rail ---------- */
.rail{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s2)}
.rail-1{grid-template-columns:1fr; gap:var(--s2)}
.rail-h{font-size:var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--muted); margin-bottom:var(--s3)}
.prod{display:flex; align-items:center; gap:var(--s3); min-width:0;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-card);
  padding:var(--s2) var(--s3) var(--s2) var(--s2); text-decoration:none; color:inherit;
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s}
.prod:hover{transform:translateY(-3px); box-shadow:var(--sh-2); border-color:var(--primary)}
.prod-img{flex:none; width:60px; height:60px; border-radius:10px; overflow:hidden;
  background:var(--bg); display:block}
.prod-img img{width:100%; height:100%; object-fit:contain; display:block}
.prod-txt{display:flex; flex-direction:column; gap:2px; min-width:0; flex:1}
.prod-txt b{font-size:var(--fs-sm); font-weight:650; line-height:1.3}
.prod-txt>span{font-size:var(--fs-xs); color:var(--muted); line-height:1.4}
.prod-price{font-size:var(--fs-xs); font-weight:650; color:var(--primary); margin-top:2px}
.prod-price.muted{color:var(--muted); font-weight:500}
.prod-go{flex:none; color:var(--muted); display:flex; transition:transform .22s, color .22s}
.prod:hover .prod-go{color:var(--primary); transform:translateX(3px)}

.sub2{display:grid; grid-template-columns:1fr 1fr; gap:var(--s6)}

@media (max-width:980px){
  .pillars{grid-template-columns:1fr}
  .dive-head{grid-template-columns:1fr; gap:var(--s5)}
  .dive-head.rev .dive-photo{order:0}
  .rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sub2{grid-template-columns:1fr; gap:var(--s6)}
}
@media (max-width:620px){
  .rail{grid-template-columns:1fr}
  .prod-img{width:52px; height:52px}
}

/* ---------- trajectory chart ---------- */
.calc{grid-template-areas:"in out" "chart chart"}
.calc-in{grid-area:in} .calc-out{grid-area:out}
.traj{grid-area:chart; border-top:1px solid var(--border); padding:var(--s6) var(--s8) var(--s5);
  background:var(--surface); min-width:0}
.traj-head{display:flex; justify-content:space-between; align-items:baseline; gap:var(--s3);
  flex-wrap:wrap; margin-bottom:var(--s3)}
.traj-head h3{font-size:var(--fs-md); font-weight:650}
.traj-head span{font-size:var(--fs-xs); color:var(--muted)}
.traj-plot{position:relative; width:100%}
.traj-plot svg{display:block; width:100%; height:auto; overflow:visible}

.tg-line{stroke:var(--border); stroke-width:1; shape-rendering:crispEdges}
.tg-txt{font-size:11px; fill:var(--muted); font-weight:500}
.tg-txt.x{text-anchor:middle}

.tr-area{fill:var(--primary); opacity:0; transition:opacity .5s ease .5s}
.tr-path{fill:none; stroke:var(--primary); stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.tr-dot{fill:var(--primary); stroke:var(--surface); stroke-width:2; opacity:0;
  transition:opacity .3s ease, r .18s ease}
.tr-end{fill:var(--primary); stroke:var(--surface); stroke-width:2.5}
.tr-lbl{font-size:12px; font-weight:700; fill:var(--ink)}
.tr-lbl-sub{font-size:10.5px; font-weight:600; fill:var(--muted)}

.traj.drawn .tr-area{opacity:.10}
.traj.drawn .tr-dot{opacity:1}

.tr-hit{fill:transparent; cursor:crosshair}
.tr-cross{stroke:var(--muted); stroke-width:1; stroke-dasharray:3 3; opacity:0;
  transition:opacity .12s}
.traj-plot.hot .tr-cross{opacity:.55}
.tr-hov{fill:var(--primary); stroke:var(--surface); stroke-width:2.5; opacity:0;
  transition:opacity .12s}
.traj-plot.hot .tr-hov{opacity:1}
.tr-tip{position:absolute; pointer-events:none; background:var(--ink); color:#fff;
  border-radius:8px; padding:8px 12px; font-size:var(--fs-xs); line-height:1.45;
  white-space:nowrap; opacity:0; transform:translate(-50%,-118%);
  transition:opacity .12s; box-shadow:var(--sh-3); z-index:4; font-weight:600}
.tr-tip b{display:block; font-size:var(--fs-sm); font-weight:700}
.tr-tip span{color:#94A3B8; font-weight:600}
.traj-plot.hot .tr-tip{opacity:1}
.traj-foot{font-size:11.5px; color:var(--muted); line-height:1.55; margin-top:var(--s3); max-width:78ch}

/* ---------- biomarker matrix ---------- */
.bio{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-card);
  padding:var(--s4); box-shadow:var(--sh-1); margin-top:var(--s5)}
.bio-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:var(--s3)}
.bio-head b{font-size:var(--fs-sm); font-weight:650}
.bio-head span{font-size:var(--fs-xs); color:var(--muted); font-variant-numeric:tabular-nums}
.bio-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(13px,1fr)); gap:5px}
.bio-grid i{display:block; aspect-ratio:1; border-radius:3px; background:var(--border);
  transform:scale(.55); opacity:.5}
.bio.on i{animation:bioPop .5s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes bioPop{to{transform:scale(1); opacity:1; background:var(--primary)}}
.bio.on i.a2{animation-name:bioPop2}
@keyframes bioPop2{to{transform:scale(1); opacity:1; background:var(--accent)}}
.bio-key{display:flex; gap:var(--s3); flex-wrap:wrap; margin-top:var(--s3);
  font-size:var(--fs-xs); color:var(--muted)}
.bio-key em{font-style:normal; display:inline-flex; align-items:center; gap:6px}
.bio-key i{width:9px; height:9px; border-radius:2px; display:block}

@media (max-width:900px){
  .calc{grid-template-areas:"in" "out" "chart"}
  .traj{padding:var(--s5) var(--s4) var(--s4)}
}
@media (prefers-reduced-motion:reduce){
  .tr-path{stroke-dasharray:none!important; stroke-dashoffset:0!important}
  .bio.on i{animation:none; transform:scale(1); opacity:1; background:var(--primary)}
  .bio.on i.a2{background:var(--accent)}
}

.marquee-item{text-decoration:none; color:inherit; transition:color .18s}
.marquee-item:hover{color:var(--accent)}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
.marquee-item:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px}

/* ═══ TREATMENTS (scoped) ═══ */
.pg-cat *, .pg-cat *::before, .pg-cat *::after{box-sizing:border-box}
.pg-cat h1, .pg-cat h2, .pg-cat h3, .pg-cat h4{margin:0;font-weight:700;letter-spacing:-.022em;line-height:1.12;text-wrap:balance}
.pg-cat p{margin:0}
.pg-cat img{max-width:100%;display:block}
.pg-cat a{color:inherit;text-decoration:none}
.pg-cat em.ser{font-family:var(--f-serif);font-style:italic;font-weight:400}
.pg-cat :focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}
.pg-cat .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--s3)}
.pg-cat .eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-ink)}
.pg-cat .muted{color:var(--muted)}
.pg-cat .slot{color:var(--primary-ink);background:var(--accent-soft);border-radius:4px;padding:0 6px;font-size:var(--fs-xs);font-weight:700}
.pg-cat .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:48px;padding:0 var(--s3);
  border-radius:var(--r-btn);border:1px solid transparent;font:inherit;font-size:var(--fs-sm);font-weight:600;
  cursor:pointer;white-space:nowrap;transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,background .18s,color .18s}
.pg-cat .btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--sh-primary)}
.pg-cat .btn-primary:hover{background:var(--primary-ink);transform:translateY(-1px)}
.pg-cat .btn-outline{background:transparent;color:var(--ink);border-color:var(--border)}
.pg-cat .btn-outline:hover{border-color:var(--primary);color:var(--primary-ink);background:var(--surface)}
.pg-cat .btn-lg{min-height:56px;padding:0 var(--s4);font-size:var(--fs-base)}
.pg-cat .nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.pg-cat .nav.stuck{border-bottom-color:var(--border);box-shadow:var(--sh-1)}
.pg-cat .nav-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:72px}
.pg-cat .logo{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.pg-cat .logo .wm{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.035em}
.pg-cat .nav-links{display:flex;gap:var(--s4);font-size:var(--fs-sm);font-weight:500}
.pg-cat .nav-links a{color:var(--muted)}
.pg-cat .nav-links a:hover{color:var(--ink)}
.pg-cat .crumb{font-size:var(--fs-xs);color:var(--muted);padding-top:var(--s4)}
.pg-cat .crumb a{cursor:pointer}
.pg-cat .crumb a:hover{color:var(--primary-ink)}
.pg-cat .crumb i{margin-inline:6px;opacity:.5;font-style:normal}
.pg-cat .ihero{padding-block:var(--s10) var(--s6)}
.pg-cat .ihero h1{font-size:var(--fs-4xl);max-width:16ch}
.pg-cat .ihero p{font-size:var(--fs-md);color:var(--muted);max-width:60ch;margin-top:var(--s3)}
.pg-cat .diff{background:var(--primary-deep);color:var(--on-primary);border-radius:var(--r-lg);
  padding:var(--s8);margin-bottom:var(--s10);position:relative;overflow:hidden}
.pg-cat .diff::before{content:'';position:absolute;inset:0;
  background:radial-gradient(600px 300px at 15% 0%,rgba(20,184,166,.26),transparent 60%),
             radial-gradient(500px 260px at 90% 100%,rgba(14,165,233,.28),transparent 60%)}
.pg-cat .diff>*{position:relative}
.pg-cat .diff h2{font-size:var(--fs-3xl);max-width:20ch;color:var(--on-primary)}
.pg-cat .diff .lede{color:rgba(255,255,255,.82);max-width:62ch;margin-top:var(--s3);font-size:var(--fs-md)}
.pg-cat .dsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-top:var(--s8)}
.pg-cat .dstep{border-top:2px solid rgba(255,255,255,.22);padding-top:var(--s3)}
.pg-cat .dstep span{font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;color:var(--accent)}
.pg-cat .dstep h3{font-size:var(--fs-lg);margin:8px 0 8px;color:var(--on-primary)}
.pg-cat .dstep p{font-size:var(--fs-sm);color:rgba(255,255,255,.74)}
.pg-cat .catsec{margin-bottom:var(--s10)}
.pg-cat .cathead{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);margin-bottom:var(--s4);
  padding-bottom:var(--s3);border-bottom:1px solid var(--border)}
.pg-cat .cathead h2{font-size:var(--fs-2xl)}
.pg-cat .cathead p{font-size:var(--fs-sm);color:var(--muted);max-width:48ch;margin-top:6px}
.pg-cat .cathead b{font-size:var(--fs-xs);color:var(--muted);font-weight:600;white-space:nowrap}
.pg-cat .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.pg-cat .pc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);
  display:flex;flex-direction:column;gap:var(--s2);cursor:pointer;
  transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .22s}
.pg-cat .pc:hover{transform:translateY(-4px);box-shadow:var(--sh-3);border-color:rgba(14,165,233,.35)}
.pg-cat .pc-media{height:140px;background:var(--surface-2);border-radius:var(--r-btn);display:flex;align-items:center;
  justify-content:center;overflow:hidden;position:relative}
.pg-cat .pc-media img{height:86%;width:auto;object-fit:contain;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.pg-cat .pc:hover .pc-media img{transform:scale(1.06)}
.pg-cat .pc-flag{position:absolute;top:8px;right:8px;font-size:10px;font-weight:700;letter-spacing:.05em;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px 9px;color:var(--muted)}
.pg-cat .pc h3{font-size:var(--fs-md)}
.pg-cat .pc .form{font-size:var(--fs-xs);color:var(--muted)}
.pg-cat .pc .lede{font-size:var(--fs-sm);color:var(--muted);flex:1}
.pg-cat .pc-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding-top:var(--s1);
  border-top:1px solid var(--border)}
.pg-cat .pc-price{font-size:var(--fs-sm);font-weight:700}
.pg-cat .pc-price small{font-weight:500;color:var(--muted);font-size:var(--fs-xs)}
.pg-cat .pc-more{font-size:var(--fs-sm);font-weight:600;color:var(--primary-ink)}
.pg-cat .phero{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center;padding-block:var(--s5) var(--s10)}
.pg-cat .pshot{background:var(--surface-2);border-radius:var(--r-lg);border:1px solid var(--border);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;padding:var(--s8);position:relative;overflow:hidden}
.pg-cat .pshot img{max-height:100%;width:auto;object-fit:contain}
.pg-cat .ptag{position:absolute;top:var(--s3);left:var(--s3);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-pill);padding:6px 14px;font-size:var(--fs-xs);font-weight:600;box-shadow:var(--sh-1)}
.pg-cat .phero h1{font-size:var(--fs-4xl);margin-top:var(--s2)}
.pg-cat .plede{font-size:var(--fs-md);color:var(--muted);margin-top:var(--s3);max-width:46ch}
.pg-cat .pmeta{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin-top:var(--s4);font-size:var(--fs-sm)}
.pg-cat .pmeta div{display:flex;align-items:center;gap:7px;color:var(--muted)}
.pg-cat .pprice{display:flex;align-items:baseline;gap:10px;margin-top:var(--s5);flex-wrap:wrap}
.pg-cat .pfrom{font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.pg-cat .pprice b{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.03em}
.pg-cat .pactions{display:flex;gap:var(--s2);margin-top:var(--s4);flex-wrap:wrap}
.pg-cat .pnote{font-size:var(--fs-xs);color:var(--muted);margin-top:var(--s3);max-width:50ch}
.pg-cat .sec{padding-block:var(--s10)}
.pg-cat .sec-head{max-width:640px;margin-bottom:var(--s6)}
.pg-cat .sec-head h2{font-size:var(--fs-3xl);margin-top:var(--s2)}
.pg-cat .sec-head p{color:var(--muted);font-size:var(--fs-md);margin-top:var(--s2)}
.pg-cat .body{max-width:70ch;color:var(--muted)}
.pg-cat .body p+p{margin-top:var(--s3)}
.pg-cat .body b{color:var(--ink)}
.pg-cat .split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}
.pg-cat .split-fig{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);border:1px solid var(--border);margin:0}
.pg-cat .split-fig svg{width:100%;height:auto;display:block}
.pg-cat .split-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);aspect-ratio:4/3}
.pg-cat .split-img img{width:100%;height:100%;object-fit:cover}
.pg-cat .tw{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.pg-cat table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.pg-cat th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:14px 18px;border-bottom:1px solid var(--border);white-space:nowrap}
.pg-cat td{padding:14px 18px;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:top}
.pg-cat tr:last-child td{border-bottom:none}
.pg-cat td b{color:var(--ink);font-weight:600}
.pg-cat .tl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.pg-cat .tl-item{padding-top:var(--s4);border-top:2px solid var(--border);position:relative}
.pg-cat .tl-item::before{content:'';position:absolute;top:-5px;left:0;width:8px;height:8px;border-radius:var(--r-pill);background:var(--primary)}
.pg-cat .tl-item span{font-size:var(--fs-xs);font-weight:700;color:var(--primary-ink);letter-spacing:.06em;text-transform:uppercase}
.pg-cat .tl-item h3{font-size:var(--fs-md);margin:6px 0}
.pg-cat .tl-item p{font-size:var(--fs-sm);color:var(--muted)}
.pg-cat .safety{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);
  border-radius:var(--r-card);padding:var(--s5)}
.pg-cat .safety h3{font-size:var(--fs-lg);margin-bottom:var(--s2)}
.pg-cat .safety ul{margin:var(--s2) 0 0;padding-left:1.1em;color:var(--muted);font-size:var(--fs-sm)}
.pg-cat .safety li{margin-bottom:8px}
.pg-cat .safety li::marker{color:var(--primary)}
.pg-cat .faq{max-width:840px}
.pg-cat .qa{border-bottom:1px solid var(--border)}
.pg-cat .qa button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--s3);background:none;
  border:none;font:inherit;font-size:var(--fs-md);font-weight:600;color:var(--ink);text-align:left;
  padding:var(--s3) 0;min-height:56px;cursor:pointer}
.pg-cat .qa button:hover{color:var(--primary-ink)}
.pg-cat .qa-ico{flex:none;width:22px;height:22px;position:relative}
.pg-cat .qa-ico::before, .pg-cat .qa-ico::after{content:'';position:absolute;inset:50% 1px auto 1px;height:2px;background:currentColor;
  border-radius:2px;transition:transform .28s cubic-bezier(.2,.7,.3,1)}
.pg-cat .qa-ico::after{transform:rotate(90deg)}
.pg-cat .qa[open] .qa-ico::after{transform:rotate(0)}
.pg-cat .qa-body{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(.2,.7,.3,1)}
.pg-cat .qa-body p{padding-bottom:var(--s3);color:var(--muted);font-size:var(--fs-sm);max-width:70ch}
.pg-cat .rel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.pg-cat .cta{background:var(--primary-deep);color:var(--on-primary);border-radius:var(--r-lg);padding:var(--s10) var(--s8);
  text-align:center;position:relative;overflow:hidden}
.pg-cat .cta::before{content:'';position:absolute;inset:0;
  background:radial-gradient(600px 300px at 20% 0%,rgba(20,184,166,.28),transparent 60%),
             radial-gradient(500px 260px at 85% 100%,rgba(14,165,233,.30),transparent 60%)}
.pg-cat .cta>*{position:relative}
.pg-cat .cta h2{font-size:var(--fs-3xl);max-width:20ch;margin-inline:auto;color:var(--on-primary)}
.pg-cat .cta p{color:rgba(255,255,255,.78);margin-top:var(--s3);max-width:54ch;margin-inline:auto}
.pg-cat .cta .btn-primary{background:var(--surface);color:var(--primary-deep)}
.pg-cat .cta .btn-outline{color:var(--on-primary);border-color:rgba(255,255,255,.35)}
.pg-cat .foot{background:var(--surface);border-top:1px solid var(--border);padding-block:var(--s8) var(--s5);margin-top:var(--s12)}
.pg-cat .ls-seal{display:flex;align-items:center;gap:var(--s3);padding-bottom:var(--s5);margin-bottom:var(--s5);
  border-bottom:1px solid var(--border)}
.pg-cat .ls-seal a{flex:none;display:block;line-height:0;transition:opacity .18s}
.pg-cat .ls-seal a:hover{opacity:.82}
.pg-cat .ls-seal img{width:73px;height:79px;display:block}
.pg-cat .ls-seal p{font-size:var(--fs-sm);color:var(--muted);max-width:52ch}
.pg-cat .ls-seal p b{color:var(--ink);font-weight:600}
@media (max-width:720px){.pg-cat .ls-seal{flex-direction:column;align-items:flex-start}}
.pg-cat .foot-legal p{font-size:12px;line-height:1.65;color:var(--muted);max-width:96ch}
.pg-cat .foot-legal p+p{margin-top:var(--s2)}
.pg-cat .foot-legal b{color:var(--ink);font-weight:600}
.pg-cat .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.pg-cat .reveal.in{opacity:1;transform:none}
.pg-cat .reveal[data-d="1"]{transition-delay:.06s}
.pg-cat .reveal[data-d="2"]{transition-delay:.12s}
.pg-cat .reveal[data-d="3"]{transition-delay:.18s}
@media (max-width:1024px){.pg-cat .phero, .pg-cat .split{grid-template-columns:1fr}
.pg-cat .grid, .pg-cat .rel, .pg-cat .tl{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-cat .dsteps{grid-template-columns:1fr}
.pg-cat .diff{padding:var(--s6)}}
@media (max-width:720px){.pg-cat .nav-links{display:none}
.pg-cat .nav-in .btn-outline{display:none}
.pg-cat .nav-in .btn-primary{padding:0 var(--s2);font-size:var(--fs-xs)}
.pg-cat .nav-in{gap:var(--s2)}
.pg-cat .logo .wm{font-size:var(--fs-base)}
.pg-cat .grid, .pg-cat .rel, .pg-cat .tl{grid-template-columns:1fr}
.pg-cat .sec{padding-block:var(--s8)}
.pg-cat .cta{padding:var(--s8) var(--s3)}
.pg-cat .cathead{flex-direction:column;align-items:flex-start}
.pg-cat .pshot{aspect-ratio:4/3;padding:var(--s4)}}
@media (prefers-reduced-motion:reduce){.pg-cat *{animation:none!important;transition:none!important}}
.pg-cat .ladder{display:grid;gap:2px;margin-bottom:var(--s4);
  grid-template-columns:minmax(88px,auto) minmax(0,1fr) minmax(74px,auto)}
.pg-cat .ladder-row{display:contents}
.pg-cat .ld-ph{display:flex;align-items:center;gap:8px;padding:12px var(--s2) 12px 0;
  font-size:var(--fs-sm);font-weight:650;min-width:0}
.pg-cat .ld-ph i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--border);
  transition:background .3s ease}
.pg-cat .ladder.on .ld-ph i{background:var(--primary)}
.pg-cat .ladder.on .ld-ph.pk i{background:var(--accent)}
.pg-cat .ld-track{position:relative;display:flex;align-items:center;padding:12px 0;min-width:0}
.pg-cat .ld-track::before{content:'';position:absolute;left:0;right:0;height:1px;background:var(--border)}
.pg-cat .ld-bar{position:relative;height:14px;border-radius:0 4px 4px 0;background:var(--primary);
  width:0;transition:width .7s cubic-bezier(.25,.8,.35,1)}
.pg-cat .ld-bar.pk{background:var(--accent)}
.pg-cat .ladder.on .ld-bar{width:var(--w)}
.pg-cat .ld-dose{position:absolute;left:calc(var(--w) + 10px);top:50%;transform:translateY(-50%);
  font-size:var(--fs-xs);font-weight:700;color:var(--ink);white-space:nowrap;
  opacity:0;transition:opacity .3s ease}
.pg-cat .ladder.on .ld-dose{opacity:1}
.pg-cat .ld-wk{display:flex;align-items:center;justify-content:flex-end;padding:12px 0;
  font-size:var(--fs-xs);color:var(--muted);font-weight:600;white-space:nowrap}
.pg-cat .ld-cap{font-size:var(--fs-xs);color:var(--muted);margin-bottom:var(--s3);
  display:flex;gap:var(--s3);flex-wrap:wrap}
.pg-cat .ld-cap em{font-style:normal;display:inline-flex;align-items:center;gap:6px}
.pg-cat .ld-cap b{width:9px;height:9px;border-radius:2px;display:block}
@media (max-width:640px){.pg-cat .ladder{grid-template-columns:minmax(70px,auto) minmax(0,1fr)}
.pg-cat .ld-wk{display:none}
.pg-cat .ld-dose{position:static;transform:none;margin-left:8px;opacity:1}}
@media (prefers-reduced-motion:reduce){.pg-cat .ld-bar{transition:none}
.pg-cat .ld-dose{transition:none}}
.pg-cat .catsec{scroll-margin-top:88px}
.pg-cat .fig{display:block;width:100%;height:auto;background:var(--surface-2)}
.pg-cat .fig .gb{transform-origin:bottom;transform:scaleY(0);
  transition:transform .7s cubic-bezier(.25,.8,.35,1) var(--d,0ms)}
.pg-cat .fig .gw{transform-origin:left;transform:scaleX(0);
  transition:transform .7s cubic-bezier(.25,.8,.35,1) var(--d,0ms)}
.pg-cat .fig .gp, .pg-cat .fig .gc, .pg-cat .fig .ga, .pg-cat .fig .gd, .pg-cat .fig .gk{opacity:0;transition:opacity .5s ease var(--d,0ms)}
.pg-cat .fig .gd{transform:scale(.4);transform-origin:center;
  transition:opacity .4s ease var(--d,0ms),transform .5s cubic-bezier(.2,1.4,.4,1) var(--d,0ms)}
.pg-cat .fig .gl{stroke-dasharray:1400;stroke-dashoffset:1400;
  transition:stroke-dashoffset 1.5s cubic-bezier(.3,.8,.4,1) var(--d,0ms)}
.pg-cat .in .fig .gb, .pg-cat .figlive .gb{transform:scaleY(1)}
.pg-cat .in .fig .gw, .pg-cat .figlive .gw{transform:scaleX(1)}
.pg-cat .in .fig .gp, .pg-cat .figlive .gp, .pg-cat .in .fig .gc, .pg-cat .figlive .gc, .pg-cat .in .fig .ga, .pg-cat .figlive .ga, .pg-cat .in .fig .gk, .pg-cat .figlive .gk{opacity:1}
.pg-cat .in .fig .gd, .pg-cat .figlive .gd{opacity:1;transform:scale(1)}
.pg-cat .in .fig .gl, .pg-cat .figlive .gl{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.pg-cat .fig .gb{transform:scaleY(1)}
.pg-cat .fig .gw{transform:scaleX(1)}
.pg-cat .fig .gp, .pg-cat .fig .gc, .pg-cat .fig .ga, .pg-cat .fig .gk{opacity:1}
.pg-cat .fig .gd{opacity:1;transform:scale(1)}
.pg-cat .fig .gl{stroke-dashoffset:0}}
/* ═══ RESOURCES (scoped) ═══ */
.pg-res *, .pg-res *::before, .pg-res *::after{box-sizing:border-box}
.pg-res h1, .pg-res h2, .pg-res h3, .pg-res h4{margin:0;font-weight:700;letter-spacing:-.022em;line-height:1.12;text-wrap:balance}
.pg-res p{margin:0}
.pg-res img{max-width:100%;display:block}
.pg-res a{color:inherit;text-decoration:none}
.pg-res em.ser{font-family:var(--f-serif);font-style:italic;font-weight:400}
.pg-res :focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}
.pg-res .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--s3)}
.pg-res .eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-ink)}
.pg-res .muted{color:var(--muted)}
.pg-res .slot{color:var(--primary-ink);background:var(--accent-soft);border-radius:4px;padding:0 6px;font-size:var(--fs-xs);font-weight:700}
.pg-res .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:48px;padding:0 var(--s3);
  border-radius:var(--r-btn);border:1px solid transparent;font:inherit;font-size:var(--fs-sm);font-weight:600;
  cursor:pointer;white-space:nowrap;transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,background .18s,color .18s}
.pg-res .btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--sh-primary)}
.pg-res .btn-primary:hover{background:var(--primary-ink);transform:translateY(-1px)}
.pg-res .btn-outline{background:transparent;color:var(--ink);border-color:var(--border)}
.pg-res .btn-outline:hover{border-color:var(--primary);color:var(--primary-ink);background:var(--surface)}
.pg-res .btn-lg{min-height:56px;padding:0 var(--s4);font-size:var(--fs-base)}
.pg-res .nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.pg-res .nav.stuck{border-bottom-color:var(--border);box-shadow:var(--sh-1)}
.pg-res .nav-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:72px}
.pg-res .logo{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.pg-res .logo .wm{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.035em}
.pg-res .nav-links{display:flex;gap:var(--s4);font-size:var(--fs-sm);font-weight:500}
.pg-res .nav-links a{color:var(--muted)}
.pg-res .nav-links a:hover{color:var(--ink)}
.pg-res .crumb{font-size:var(--fs-xs);color:var(--muted);padding-top:var(--s4)}
.pg-res .crumb a{cursor:pointer}
.pg-res .crumb a:hover{color:var(--primary-ink)}
.pg-res .crumb i{margin-inline:6px;opacity:.5;font-style:normal}
.pg-res .ihero{padding-block:var(--s10) var(--s6)}
.pg-res .ihero h1{font-size:var(--fs-4xl);max-width:16ch}
.pg-res .ihero p{font-size:var(--fs-md);color:var(--muted);max-width:60ch;margin-top:var(--s3)}
.pg-res .diff{background:var(--primary-deep);color:var(--on-primary);border-radius:var(--r-lg);
  padding:var(--s8);margin-bottom:var(--s10);position:relative;overflow:hidden}
.pg-res .diff::before{content:'';position:absolute;inset:0;
  background:radial-gradient(600px 300px at 15% 0%,rgba(20,184,166,.26),transparent 60%),
             radial-gradient(500px 260px at 90% 100%,rgba(14,165,233,.28),transparent 60%)}
.pg-res .diff>*{position:relative}
.pg-res .diff h2{font-size:var(--fs-3xl);max-width:20ch;color:var(--on-primary)}
.pg-res .diff .lede{color:rgba(255,255,255,.82);max-width:62ch;margin-top:var(--s3);font-size:var(--fs-md)}
.pg-res .dsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-top:var(--s8)}
.pg-res .dstep{border-top:2px solid rgba(255,255,255,.22);padding-top:var(--s3)}
.pg-res .dstep span{font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;color:var(--accent)}
.pg-res .dstep h3{font-size:var(--fs-lg);margin:8px 0 8px;color:var(--on-primary)}
.pg-res .dstep p{font-size:var(--fs-sm);color:rgba(255,255,255,.74)}
.pg-res .catsec{margin-bottom:var(--s10)}
.pg-res .cathead{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);margin-bottom:var(--s4);
  padding-bottom:var(--s3);border-bottom:1px solid var(--border)}
.pg-res .cathead h2{font-size:var(--fs-2xl)}
.pg-res .cathead p{font-size:var(--fs-sm);color:var(--muted);max-width:48ch;margin-top:6px}
.pg-res .cathead b{font-size:var(--fs-xs);color:var(--muted);font-weight:600;white-space:nowrap}
.pg-res .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.pg-res .pc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);
  display:flex;flex-direction:column;gap:var(--s2);cursor:pointer;
  transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .22s}
.pg-res .pc:hover{transform:translateY(-4px);box-shadow:var(--sh-3);border-color:rgba(14,165,233,.35)}
.pg-res .pc-media{height:140px;background:var(--surface-2);border-radius:var(--r-btn);display:flex;align-items:center;
  justify-content:center;overflow:hidden;position:relative}
.pg-res .pc-media img{height:86%;width:auto;object-fit:contain;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.pg-res .pc:hover .pc-media img{transform:scale(1.06)}
.pg-res .pc-flag{position:absolute;top:8px;right:8px;font-size:10px;font-weight:700;letter-spacing:.05em;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px 9px;color:var(--muted)}
.pg-res .pc h3{font-size:var(--fs-md)}
.pg-res .pc .form{font-size:var(--fs-xs);color:var(--muted)}
.pg-res .pc .lede{font-size:var(--fs-sm);color:var(--muted);flex:1}
.pg-res .pc-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding-top:var(--s1);
  border-top:1px solid var(--border)}
.pg-res .pc-price{font-size:var(--fs-sm);font-weight:700}
.pg-res .pc-price small{font-weight:500;color:var(--muted);font-size:var(--fs-xs)}
.pg-res .pc-more{font-size:var(--fs-sm);font-weight:600;color:var(--primary-ink)}
.pg-res .phero{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center;padding-block:var(--s5) var(--s10)}
.pg-res .pshot{background:var(--surface-2);border-radius:var(--r-lg);border:1px solid var(--border);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;padding:var(--s8);position:relative;overflow:hidden}
.pg-res .pshot img{max-height:100%;width:auto;object-fit:contain}
.pg-res .ptag{position:absolute;top:var(--s3);left:var(--s3);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-pill);padding:6px 14px;font-size:var(--fs-xs);font-weight:600;box-shadow:var(--sh-1)}
.pg-res .phero h1{font-size:var(--fs-4xl);margin-top:var(--s2)}
.pg-res .plede{font-size:var(--fs-md);color:var(--muted);margin-top:var(--s3);max-width:46ch}
.pg-res .pmeta{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin-top:var(--s4);font-size:var(--fs-sm)}
.pg-res .pmeta div{display:flex;align-items:center;gap:7px;color:var(--muted)}
.pg-res .pprice{display:flex;align-items:baseline;gap:10px;margin-top:var(--s5);flex-wrap:wrap}
.pg-res .pfrom{font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.pg-res .pprice b{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.03em}
.pg-res .pactions{display:flex;gap:var(--s2);margin-top:var(--s4);flex-wrap:wrap}
.pg-res .pnote{font-size:var(--fs-xs);color:var(--muted);margin-top:var(--s3);max-width:50ch}
.pg-res .sec{padding-block:var(--s10)}
.pg-res .sec-head{max-width:640px;margin-bottom:var(--s6)}
.pg-res .sec-head h2{font-size:var(--fs-3xl);margin-top:var(--s2)}
.pg-res .sec-head p{color:var(--muted);font-size:var(--fs-md);margin-top:var(--s2)}
.pg-res .body{max-width:70ch;color:var(--muted)}
.pg-res .body p+p{margin-top:var(--s3)}
.pg-res .body b{color:var(--ink)}
.pg-res .split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}
.pg-res .split-fig{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);border:1px solid var(--border);margin:0}
.pg-res .split-fig svg{width:100%;height:auto;display:block}
.pg-res .split-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);aspect-ratio:4/3}
.pg-res .split-img img{width:100%;height:100%;object-fit:cover}
.pg-res .tw{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.pg-res table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.pg-res th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:14px 18px;border-bottom:1px solid var(--border);white-space:nowrap}
.pg-res td{padding:14px 18px;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:top}
.pg-res tr:last-child td{border-bottom:none}
.pg-res td b{color:var(--ink);font-weight:600}
.pg-res .tl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.pg-res .tl-item{padding-top:var(--s4);border-top:2px solid var(--border);position:relative}
.pg-res .tl-item::before{content:'';position:absolute;top:-5px;left:0;width:8px;height:8px;border-radius:var(--r-pill);background:var(--primary)}
.pg-res .tl-item span{font-size:var(--fs-xs);font-weight:700;color:var(--primary-ink);letter-spacing:.06em;text-transform:uppercase}
.pg-res .tl-item h3{font-size:var(--fs-md);margin:6px 0}
.pg-res .tl-item p{font-size:var(--fs-sm);color:var(--muted)}
.pg-res .safety{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);
  border-radius:var(--r-card);padding:var(--s5)}
.pg-res .safety h3{font-size:var(--fs-lg);margin-bottom:var(--s2)}
.pg-res .safety ul{margin:var(--s2) 0 0;padding-left:1.1em;color:var(--muted);font-size:var(--fs-sm)}
.pg-res .safety li{margin-bottom:8px}
.pg-res .safety li::marker{color:var(--primary)}
.pg-res .faq{max-width:840px}
.pg-res .qa{border-bottom:1px solid var(--border)}
.pg-res .qa button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--s3);background:none;
  border:none;font:inherit;font-size:var(--fs-md);font-weight:600;color:var(--ink);text-align:left;
  padding:var(--s3) 0;min-height:56px;cursor:pointer}
.pg-res .qa button:hover{color:var(--primary-ink)}
.pg-res .qa-ico{flex:none;width:22px;height:22px;position:relative}
.pg-res .qa-ico::before, .pg-res .qa-ico::after{content:'';position:absolute;inset:50% 1px auto 1px;height:2px;background:currentColor;
  border-radius:2px;transition:transform .28s cubic-bezier(.2,.7,.3,1)}
.pg-res .qa-ico::after{transform:rotate(90deg)}
.pg-res .qa[open] .qa-ico::after{transform:rotate(0)}
.pg-res .qa-body{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(.2,.7,.3,1)}
.pg-res .qa-body p{padding-bottom:var(--s3);color:var(--muted);font-size:var(--fs-sm);max-width:70ch}
.pg-res .rel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.pg-res .cta{background:var(--primary-deep);color:var(--on-primary);border-radius:var(--r-lg);padding:var(--s10) var(--s8);
  text-align:center;position:relative;overflow:hidden}
.pg-res .cta::before{content:'';position:absolute;inset:0;
  background:radial-gradient(600px 300px at 20% 0%,rgba(20,184,166,.28),transparent 60%),
             radial-gradient(500px 260px at 85% 100%,rgba(14,165,233,.30),transparent 60%)}
.pg-res .cta>*{position:relative}
.pg-res .cta h2{font-size:var(--fs-3xl);max-width:20ch;margin-inline:auto;color:var(--on-primary)}
.pg-res .cta p{color:rgba(255,255,255,.78);margin-top:var(--s3);max-width:54ch;margin-inline:auto}
.pg-res .cta .btn-primary{background:var(--surface);color:var(--primary-deep)}
.pg-res .cta .btn-outline{color:var(--on-primary);border-color:rgba(255,255,255,.35)}
.pg-res .foot{background:var(--surface);border-top:1px solid var(--border);padding-block:var(--s8) var(--s5);margin-top:var(--s12)}
.pg-res .ls-seal{display:flex;align-items:center;gap:var(--s3);padding-bottom:var(--s5);margin-bottom:var(--s5);
  border-bottom:1px solid var(--border)}
.pg-res .ls-seal a{flex:none;display:block;line-height:0;transition:opacity .18s}
.pg-res .ls-seal a:hover{opacity:.82}
.pg-res .ls-seal img{width:73px;height:79px;display:block}
.pg-res .ls-seal p{font-size:var(--fs-sm);color:var(--muted);max-width:52ch}
.pg-res .ls-seal p b{color:var(--ink);font-weight:600}
@media (max-width:720px){.pg-res .ls-seal{flex-direction:column;align-items:flex-start}}
.pg-res .foot-legal p{font-size:12px;line-height:1.65;color:var(--muted);max-width:96ch}
.pg-res .foot-legal p+p{margin-top:var(--s2)}
.pg-res .foot-legal b{color:var(--ink);font-weight:600}
.pg-res .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.pg-res .reveal.in{opacity:1;transform:none}
.pg-res .reveal[data-d="1"]{transition-delay:.06s}
.pg-res .reveal[data-d="2"]{transition-delay:.12s}
.pg-res .reveal[data-d="3"]{transition-delay:.18s}
@media (max-width:1024px){.pg-res .phero, .pg-res .split{grid-template-columns:1fr}
.pg-res .grid, .pg-res .rel, .pg-res .tl{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-res .dsteps{grid-template-columns:1fr}
.pg-res .diff{padding:var(--s6)}}
@media (max-width:720px){.pg-res .nav-links{display:none}
.pg-res .nav-in .btn-outline{display:none}
.pg-res .nav-in .btn-primary{padding:0 var(--s2);font-size:var(--fs-xs)}
.pg-res .nav-in{gap:var(--s2)}
.pg-res .logo .wm{font-size:var(--fs-base)}
.pg-res .grid, .pg-res .rel, .pg-res .tl{grid-template-columns:1fr}
.pg-res .sec{padding-block:var(--s8)}
.pg-res .cta{padding:var(--s8) var(--s3)}
.pg-res .cathead{flex-direction:column;align-items:flex-start}
.pg-res .pshot{aspect-ratio:4/3;padding:var(--s4)}}
@media (prefers-reduced-motion:reduce){.pg-res *{animation:none!important;transition:none!important}}
.pg-res .ladder{display:grid;gap:2px;margin-bottom:var(--s4);
  grid-template-columns:minmax(88px,auto) minmax(0,1fr) minmax(74px,auto)}
.pg-res .ladder-row{display:contents}
.pg-res .ld-ph{display:flex;align-items:center;gap:8px;padding:12px var(--s2) 12px 0;
  font-size:var(--fs-sm);font-weight:650;min-width:0}
.pg-res .ld-ph i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--border);
  transition:background .3s ease}
.pg-res .ladder.on .ld-ph i{background:var(--primary)}
.pg-res .ladder.on .ld-ph.pk i{background:var(--accent)}
.pg-res .ld-track{position:relative;display:flex;align-items:center;padding:12px 0;min-width:0}
.pg-res .ld-track::before{content:'';position:absolute;left:0;right:0;height:1px;background:var(--border)}
.pg-res .ld-bar{position:relative;height:14px;border-radius:0 4px 4px 0;background:var(--primary);
  width:0;transition:width .7s cubic-bezier(.25,.8,.35,1)}
.pg-res .ld-bar.pk{background:var(--accent)}
.pg-res .ladder.on .ld-bar{width:var(--w)}
.pg-res .ld-dose{position:absolute;left:calc(var(--w) + 10px);top:50%;transform:translateY(-50%);
  font-size:var(--fs-xs);font-weight:700;color:var(--ink);white-space:nowrap;
  opacity:0;transition:opacity .3s ease}
.pg-res .ladder.on .ld-dose{opacity:1}
.pg-res .ld-wk{display:flex;align-items:center;justify-content:flex-end;padding:12px 0;
  font-size:var(--fs-xs);color:var(--muted);font-weight:600;white-space:nowrap}
.pg-res .ld-cap{font-size:var(--fs-xs);color:var(--muted);margin-bottom:var(--s3);
  display:flex;gap:var(--s3);flex-wrap:wrap}
.pg-res .ld-cap em{font-style:normal;display:inline-flex;align-items:center;gap:6px}
.pg-res .ld-cap b{width:9px;height:9px;border-radius:2px;display:block}
@media (max-width:640px){.pg-res .ladder{grid-template-columns:minmax(70px,auto) minmax(0,1fr)}
.pg-res .ld-wk{display:none}
.pg-res .ld-dose{position:static;transform:none;margin-left:8px;opacity:1}}
@media (prefers-reduced-motion:reduce){.pg-res .ld-bar{transition:none}
.pg-res .ld-dose{transition:none}}
.pg-res .catsec{scroll-margin-top:88px}
.pg-res .fig{display:block;width:100%;height:auto;background:var(--surface-2)}
.pg-res .fig .gb{transform-origin:bottom;transform:scaleY(0);
  transition:transform .7s cubic-bezier(.25,.8,.35,1) var(--d,0ms)}
.pg-res .fig .gw{transform-origin:left;transform:scaleX(0);
  transition:transform .7s cubic-bezier(.25,.8,.35,1) var(--d,0ms)}
.pg-res .fig .gp, .pg-res .fig .gc, .pg-res .fig .ga, .pg-res .fig .gd, .pg-res .fig .gk{opacity:0;transition:opacity .5s ease var(--d,0ms)}
.pg-res .fig .gd{transform:scale(.4);transform-origin:center;
  transition:opacity .4s ease var(--d,0ms),transform .5s cubic-bezier(.2,1.4,.4,1) var(--d,0ms)}
.pg-res .fig .gl{stroke-dasharray:1400;stroke-dashoffset:1400;
  transition:stroke-dashoffset 1.5s cubic-bezier(.3,.8,.4,1) var(--d,0ms)}
.pg-res .in .fig .gb, .pg-res .figlive .gb{transform:scaleY(1)}
.pg-res .in .fig .gw, .pg-res .figlive .gw{transform:scaleX(1)}
.pg-res .in .fig .gp, .pg-res .figlive .gp, .pg-res .in .fig .gc, .pg-res .figlive .gc, .pg-res .in .fig .ga, .pg-res .figlive .ga, .pg-res .in .fig .gk, .pg-res .figlive .gk{opacity:1}
.pg-res .in .fig .gd, .pg-res .figlive .gd{opacity:1;transform:scale(1)}
.pg-res .in .fig .gl, .pg-res .figlive .gl{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.pg-res .fig .gb{transform:scaleY(1)}
.pg-res .fig .gw{transform:scaleX(1)}
.pg-res .fig .gp, .pg-res .fig .gc, .pg-res .fig .ga, .pg-res .fig .gk{opacity:1}
.pg-res .fig .gd{opacity:1;transform:scale(1)}
.pg-res .fig .gl{stroke-dashoffset:0}}
.pg-res .fig-media{aspect-ratio:12/5!important;background:var(--surface-2);display:block;overflow:hidden}
.pg-res .fig-media svg{width:100%;height:100%;display:block;transition:none}
.pg-res .nx-cat{flex:none;width:48px;height:48px;border-radius:8px;background:var(--accent-soft);
  color:var(--primary-deep);display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;letter-spacing:.04em}
.pg-res .art-fig{margin:var(--s6) 0 0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);border:1px solid var(--border);background:var(--surface-2)}
.pg-res .fig{display:block;width:100%;height:auto;background:var(--surface-2)}
.pg-res .fig .gb{transform-origin:bottom;transform:scaleY(0);
  transition:transform .7s cubic-bezier(.25,.8,.35,1) var(--d,0ms)}
.pg-res .fig .gw{transform-origin:left;transform:scaleX(0);
  transition:transform .7s cubic-bezier(.25,.8,.35,1) var(--d,0ms)}
.pg-res .fig .gp, .pg-res .fig .gc, .pg-res .fig .ga, .pg-res .fig .gd, .pg-res .fig .gk{opacity:0;transition:opacity .5s ease var(--d,0ms)}
.pg-res .fig .gd{transform:scale(.4);transform-origin:center;
  transition:opacity .4s ease var(--d,0ms),transform .5s cubic-bezier(.2,1.4,.4,1) var(--d,0ms)}
.pg-res .fig .gl{stroke-dasharray:1400;stroke-dashoffset:1400;
  transition:stroke-dashoffset 1.5s cubic-bezier(.3,.8,.4,1) var(--d,0ms)}
.pg-res .in .fig .gb, .pg-res .figlive .gb{transform:scaleY(1)}
.pg-res .in .fig .gw, .pg-res .figlive .gw{transform:scaleX(1)}
.pg-res .in .fig .gp, .pg-res .figlive .gp, .pg-res .in .fig .gc, .pg-res .figlive .gc, .pg-res .in .fig .ga, .pg-res .figlive .ga, .pg-res .in .fig .gk, .pg-res .figlive .gk{opacity:1}
.pg-res .in .fig .gd, .pg-res .figlive .gd{opacity:1;transform:scale(1)}
.pg-res .in .fig .gl, .pg-res .figlive .gl{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.pg-res .fig .gb{transform:scaleY(1)}
.pg-res .fig .gw{transform:scaleX(1)}
.pg-res .fig .gp, .pg-res .fig .gc, .pg-res .fig .ga, .pg-res .fig .gk{opacity:1}
.pg-res .fig .gd{opacity:1;transform:scale(1)}
.pg-res .fig .gl{stroke-dashoffset:0}}
.pg-res .rhero{padding:var(--s10) 0 var(--s8);border-bottom:1px solid var(--border);background:var(--surface)}
.pg-res .rhero h1{font-size:var(--fs-4xl);margin-top:var(--s2);max-width:18ch}
.pg-res .rhero p.lede{color:var(--muted);font-size:var(--fs-md);margin-top:var(--s3);max-width:62ch}
.pg-res .chips{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s5)}
.pg-res .chip{display:inline-flex;align-items:center;min-height:38px;padding:0 var(--s2);border-radius:var(--r-pill);
  border:1px solid var(--border);background:var(--surface);font-size:var(--fs-sm);font-weight:600;
  color:var(--muted);cursor:pointer;transition:all .18s}
.pg-res .chip:hover{border-color:var(--primary);color:var(--primary-ink)}
.pg-res .chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.pg-res .feat2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-bottom:var(--s6)}
.pg-res .post{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);
  transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s,border-color .28s}
.pg-res .post:hover{transform:translateY(-4px);box-shadow:var(--sh-3);border-color:#CBD5E1}
.pg-res .post-media{aspect-ratio:16/9;overflow:hidden;background:var(--bg)}
.pg-res .post-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pg-res .post:hover .post-media img{transform:scale(1.05)}
.pg-res .post-body{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2);flex:1}
.pg-res .post-meta{display:flex;gap:var(--s1);align-items:center;font-size:var(--fs-xs);color:var(--muted)}
.pg-res .post-meta b{color:var(--primary-ink);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pg-res .post-body h3{font-size:var(--fs-xl);line-height:1.22}
.pg-res .post-body p{color:var(--muted);font-size:var(--fs-sm);flex:1}
.pg-res .rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.pg-res .rcard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);
  transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s,border-color .28s}
.pg-res .rcard:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:#CBD5E1}
.pg-res .rcard-media{aspect-ratio:16/10;overflow:hidden;background:var(--bg)}
.pg-res .rcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pg-res .rcard:hover .rcard-media img{transform:scale(1.05)}
.pg-res .rcard-body{padding:var(--s3);display:flex;flex-direction:column;gap:var(--s1);flex:1}
.pg-res .rcard-body h3{font-size:var(--fs-md);line-height:1.28}
.pg-res .rcard-body p{color:var(--muted);font-size:var(--fs-sm);flex:1}
.pg-res .crumb{display:flex;gap:var(--s1);align-items:center;font-size:var(--fs-xs);color:var(--muted);
  padding:var(--s4) 0 0;flex-wrap:wrap}
.pg-res .crumb a:hover{color:var(--primary-ink)}
.pg-res .art-head{padding:var(--s5) 0 var(--s6);border-bottom:1px solid var(--border)}
.pg-res .art-head h1{font-size:var(--fs-4xl);margin-top:var(--s3);max-width:22ch}
.pg-res .art-head .dek{color:var(--muted);font-size:var(--fs-md);margin-top:var(--s3);max-width:64ch}
.pg-res .art-hero{margin:var(--s6) 0 0;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:21/9;box-shadow:var(--sh-3)}
.pg-res .art-hero img{width:100%;height:100%;object-fit:cover}
.pg-res .art-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--s10);
  padding:var(--s8) 0 var(--s10);align-items:start}
.pg-res .prose{max-width:68ch;font-size:var(--fs-md);line-height:1.75}
.pg-res .prose p{margin:0 0 var(--s3)}
.pg-res .prose h2{font-size:var(--fs-2xl);margin:var(--s8) 0 var(--s3);letter-spacing:-.02em}
.pg-res .prose ul, .pg-res .prose ol{margin:0 0 var(--s3);padding-left:var(--s3);color:var(--ink)}
.pg-res .prose li{margin-bottom:var(--s1)}
.pg-res .prose li::marker{color:var(--primary)}
.pg-res .prose b{font-weight:650}
.pg-res .prose .callout{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 var(--r-card) var(--r-card) 0;
  padding:var(--s3) var(--s4);margin:0 0 var(--s4);font-size:var(--fs-base);color:var(--primary-deep)}
.pg-res .tbl-scroll{overflow-x:auto;margin:0 0 var(--s4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.pg-res .prose table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);min-width:520px}
.pg-res .prose th, .pg-res .prose td{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--border);vertical-align:top}
.pg-res .prose th{background:var(--surface-2);font-weight:700;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pg-res .prose tr:last-child td{border-bottom:none}
.pg-res .aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:var(--s3)}
.pg-res .aside-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s4)}
.pg-res .aside-box h3{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s2)}
.pg-res .aside-box p{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--s3)}
.pg-res .toc a{display:block;font-size:var(--fs-sm);color:var(--muted);padding:6px 0;border-left:2px solid var(--border);
  padding-left:var(--s2);transition:all .18s}
.pg-res .toc a:hover{color:var(--primary-ink);border-left-color:var(--primary)}
.pg-res .nextup a{display:flex;gap:var(--s2);align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--border)}
.pg-res .nextup a:last-child{border-bottom:none}
.pg-res .nextup i{flex:none;width:48px;height:48px;border-radius:8px;overflow:hidden;background:var(--bg)}
.pg-res .nextup i img{width:100%;height:100%;object-fit:cover}
.pg-res .nextup span{font-size:var(--fs-sm);font-weight:600;line-height:1.35}
.pg-res .nextup a:hover span{color:var(--primary-ink)}
.pg-res .art-cta{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:var(--s8) var(--s6);text-align:center;
  margin-bottom:var(--s10)}
.pg-res .art-cta h2{font-size:var(--fs-2xl);color:#fff}
.pg-res .art-cta p{color:#CBD5E1;margin-top:var(--s2);max-width:56ch;margin-inline:auto;font-size:var(--fs-sm)}
.pg-res .art-cta .btn-outline{color:#fff;border-color:rgba(255,255,255,.28)}
.pg-res .art-cta .btn-outline:hover{background:rgba(255,255,255,.08);color:#fff;border-color:#fff}
.pg-res .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.pg-res .reveal.in{opacity:1;transform:none}
@media (max-width:1020px){.pg-res .art-wrap{grid-template-columns:minmax(0,1fr);gap:var(--s6)}
.pg-res .aside{position:static;flex-direction:row;flex-wrap:wrap}
.pg-res .aside-box{flex:1;min-width:260px}
.pg-res .rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.pg-res .feat2{grid-template-columns:1fr}
.pg-res .rhero h1, .pg-res .art-head h1{font-size:var(--fs-3xl)}
.pg-res .art-hero{aspect-ratio:16/9}}
@media (max-width:620px){.pg-res .rgrid{grid-template-columns:1fr}
.pg-res .prose{font-size:var(--fs-base)}
.pg-res .aside-box{min-width:0}}
@media (prefers-reduced-motion:reduce){.pg-res *{animation:none!important;transition:none!important}
.pg-res .reveal{opacity:1;transform:none}}
.pg-res .grid-h{font-size:var(--fs-xl);margin:0 0 var(--s3)}
.pg-res .art-wrap,.pg-res .prose,.pg-res .tbl-scroll{min-width:0;max-width:100%}
/* the sidebar boxes keep a 260px floor from the tablet rule; below that the
   row cannot wrap small enough and pushes the whole grid past the viewport */
@media (max-width:760px){
  .pg-res .aside{flex-direction:column}
  .pg-res .aside-box{min-width:0;width:100%;flex:none}
  .pg-res .art-wrap{grid-template-columns:minmax(0,1fr)}
}


/* ---------- router shell ---------- */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;
  padding:12px 20px;border-radius:0 0 var(--r-btn) 0;font-weight:650;font-size:var(--fs-sm)}
.skip:focus{left:0}
#app{min-height:60vh}
#app:focus{outline:none}
.nav-links a[aria-current="page"]{color:var(--primary-ink);font-weight:650}

/* ---------- book / start ---------- */
.book-hero{padding:var(--s10) 0 var(--s8);background:var(--surface);border-bottom:1px solid var(--border)}
.book-hero h1{font-size:var(--fs-4xl);margin-top:var(--s2);max-width:16ch}
.book-hero p{color:var(--muted);font-size:var(--fs-md);margin-top:var(--s3);max-width:60ch}
.book-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s8);
  padding:var(--s8) 0 var(--s10);align-items:start}
.book-steps{counter-reset:bk;min-width:0}
.book-step{position:relative;padding-left:56px;padding-bottom:var(--s6)}
.book-step:last-child{padding-bottom:0}
.book-step::before{counter-increment:bk;content:counter(bk);position:absolute;left:0;top:0;
  width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-sm)}
.book-step::after{content:'';position:absolute;left:17.5px;top:44px;bottom:8px;width:1px;background:var(--border)}
.book-step:last-child::after{display:none}
.book-step h2{font-size:var(--fs-lg)}
.book-step p{color:var(--muted);font-size:var(--fs-sm);margin-top:6px;max-width:56ch}
.book-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
  padding:var(--s5);box-shadow:var(--sh-2);position:sticky;top:96px}
.book-card h2{font-size:var(--fs-lg)}
.book-card p{color:var(--muted);font-size:var(--fs-sm);margin:var(--s2) 0 var(--s4)}
.book-slot{border:2px dashed var(--border);border-radius:var(--r-card);padding:var(--s5);
  text-align:center;background:var(--bg)}
.book-slot b{display:block;font-size:var(--fs-sm);margin-bottom:6px}
.book-slot span{font-size:var(--fs-xs);color:var(--muted);line-height:1.6;display:block}
.book-facts{list-style:none;padding:0;margin:var(--s4) 0 0;border-top:1px solid var(--border)}
.book-facts li{display:flex;justify-content:space-between;gap:var(--s2);padding:12px 0;
  border-bottom:1px solid var(--border);font-size:var(--fs-sm)}
.book-facts li span{color:var(--muted)}
.book-facts li b{font-weight:650;text-align:right}

/* ---------- lead form ---------- */
.lead{display:flex;flex-direction:column;gap:var(--s3)}
.lead label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);font-weight:650;color:var(--ink)}
/* inputs default to a content-based intrinsic width that ignores the
   parent; without border-box + min-width:0 the form pushes the page wide */
.lead,.lead label,.lead-check{min-width:0;max-width:100%}
.lead input,.lead select,.lead button{box-sizing:border-box;max-width:100%;min-width:0}
.lead input[type=text],.lead input[type=email],.lead input[type=tel],.lead select{
  font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--ink);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-btn);padding:12px 14px;min-height:48px;
  transition:border-color .18s,box-shadow .18s;width:100%}
.lead input:focus,.lead select:focus{outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(14,165,233,.14)}
.lead input:user-invalid,.lead select:user-invalid{border-color:#DC2626}
.lead-check{flex-direction:row!important;align-items:flex-start;gap:10px;font-weight:500;
  font-size:var(--fs-xs);color:var(--muted);line-height:1.5}
.lead-check input{margin-top:2px;width:17px;height:17px;accent-color:var(--primary);flex:none}
.lead-phi{font-size:11.5px;line-height:1.55;color:var(--muted);background:var(--bg);
  border-left:3px solid var(--accent);border-radius:0 6px 6px 0;padding:10px 12px;margin:0}
.lead input[name=_honey]{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lead-status{font-size:var(--fs-xs);margin:0;min-height:1em}
.lead-status.bad{color:#DC2626;font-weight:600}
.lead-done{text-align:center;padding:var(--s4) 0}
.lead-done h3{font-size:var(--fs-lg);margin:var(--s3) 0 var(--s2)}
.lead-done p{font-size:var(--fs-sm);color:var(--muted);line-height:1.6}
.lead-done a{color:var(--primary-ink);font-weight:650}

@media (max-width:900px){
  .book-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6)}
  .book-steps,.book-step{min-width:0}
  .book-step{padding-left:46px}
  .book-card{position:static}
  .book-hero h1{font-size:var(--fs-3xl)}
}
