:root{
  --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
  --text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
  --text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-3xl:clamp(2.5rem,1rem + 4vw,4.5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;
  --transition-interactive:180ms cubic-bezier(.16,1,.3,1);
  --font-display:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --content:1200px;
}
:root,[data-theme='light']{
  --color-bg:#F8FAFC;
  --color-surface:#FFFFFF;
  --color-surface-2:#F1F5FB;
  --color-tint:#EEF3FD;
  --color-divider:#E2E8F0;
  --color-border:#D5DDE8;
  --color-text:#0F172A;
  --color-text-muted:#526077;
  --color-text-faint:#94A3B8;
  --color-text-inverse:#FFFFFF;
  --color-primary:#2563EB;
  --color-primary-hover:#1D4ED8;
  --color-primary-active:#1E40AF;
  --color-primary-highlight:#DBE6FE;
  --color-green:#16A34A;
  --color-gold:#F59E0B;
  --color-gold-ink:#92400E;
  --shadow-sm:0 1px 2px rgb(15 23 42 / .06);
  --shadow-md:0 8px 24px rgb(15 23 42 / .08);
  --shadow-lg:0 20px 48px rgb(15 23 42 / .14);
  --band:#0F2A6B;
}
[data-theme='dark']{
  --color-bg:#0B1120;
  --color-surface:#111A2E;
  --color-surface-2:#16213A;
  --color-tint:#0F1830;
  --color-divider:#1F2B45;
  --color-border:#2A3858;
  --color-text:#E5EAF3;
  --color-text-muted:#9AA7BD;
  --color-text-faint:#5B6883;
  --color-text-inverse:#0B1120;
  --color-primary:#6B9BFF;
  --color-primary-hover:#8DB2FF;
  --color-primary-active:#A9C5FF;
  --color-primary-highlight:#1C2C52;
  --color-green:#4ADE80;
  --color-gold:#FBBF24;
  --color-gold-ink:#FCD34D;
  --shadow-sm:0 1px 2px rgb(0 0 0 / .3);
  --shadow-md:0 8px 24px rgb(0 0 0 / .35);
  --shadow-lg:0 20px 48px rgb(0 0 0 / .5);
  --band:#0F1D45;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme]){
    --color-bg:#0B1120;--color-surface:#111A2E;--color-surface-2:#16213A;--color-tint:#0F1830;--color-divider:#1F2B45;--color-border:#2A3858;--color-text:#E5EAF3;--color-text-muted:#9AA7BD;--color-text-faint:#5B6883;--color-text-inverse:#0B1120;--color-primary:#6B9BFF;--color-primary-hover:#8DB2FF;--color-primary-active:#A9C5FF;--color-primary-highlight:#1C2C52;--color-green:#4ADE80;--color-gold:#FBBF24;--color-gold-ink:#FCD34D;--band:#0F1D45;
  }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;scroll-padding-top:var(--space-20)}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg)}
img,svg{display:block;max-width:100%;height:auto}
ul[role='list'],ol[role='list']{list-style:none}
input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance;line-height:1.12;letter-spacing:-.02em}
p,li{text-wrap:pretty}
a{color:var(--color-primary)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
button{cursor:pointer;background:none;border:none}
a,button,input,select,label{transition:color var(--transition-interactive),background var(--transition-interactive),border-color var(--transition-interactive),box-shadow var(--transition-interactive),transform var(--transition-interactive)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.skip{position:absolute;left:-999px;top:0;background:var(--color-primary);color:#fff;padding:var(--space-2) var(--space-4);z-index:100}
.skip:focus{left:var(--space-4)}
.container{width:min(100% - 2*var(--space-6),var(--content));margin-inline:auto}
.narrow{max-width:760px}
.muted{color:var(--color-text-muted)}
.small{font-size:var(--text-sm)}
.fine{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-6)}
.center{text-align:center}

.eyebrow{font-family:var(--font-display);font-weight:700;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}
.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--color-gold)}
.eyebrow.light{color:#FCD34D}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);text-decoration:none;border:1.5px solid transparent;line-height:1.2;text-align:center}
.btn-sm{padding:var(--space-2) var(--space-4)}
.btn-primary{background:var(--color-primary);color:#fff}
[data-theme='dark'] .btn-primary{color:#0B1120}
.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px)}
.btn-ghost{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface)}
.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.full{width:100%}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-full);color:var(--color-text-muted)}
.icon-btn:hover{background:var(--color-surface-2);color:var(--color-text)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 85%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-divider)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:68px}
.brand{display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none;color:var(--color-text)}
.brand-word{font-family:var(--font-display);font-weight:800;font-size:1.2rem;letter-spacing:-.02em}
.brand-word span{color:var(--color-primary)}
.nav{display:flex;gap:var(--space-6)}
.nav a{color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:500}
.nav a:hover{color:var(--color-text)}
.header-actions{display:flex;align-items:center;gap:var(--space-2)}
@media (max-width:860px){.nav{display:none}}

/* hero */
.hero{padding-block:clamp(var(--space-12),7vw,var(--space-24))}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.hero h1{font-size:var(--text-3xl);font-weight:800;margin-bottom:var(--space-6)}
.lede{font-size:var(--text-base);color:var(--color-text-muted);max-width:56ch;margin-bottom:var(--space-8)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-6)}
.hero-trust{display:flex;flex-wrap:wrap;gap:var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted)}
.hero-trust li{display:flex;align-items:center;gap:var(--space-2)}
.hero-trust svg{color:var(--color-green)}
.hero-media{position:relative}
.hero-media img{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);aspect-ratio:4/3.3;object-fit:cover;width:100%}
.float-card{position:absolute;display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-md);font-size:var(--text-sm)}
.float-card strong{display:block;font-family:var(--font-display);font-size:var(--text-sm);line-height:1.3}
.float-card small{color:var(--color-text-muted);font-size:var(--text-xs)}
.float-card.fit{left:calc(-1 * var(--space-8));bottom:var(--space-10)}
.float-card.task{right:calc(-1 * var(--space-4));top:var(--space-8)}
.ring{--p:80;width:48px;height:48px;border-radius:50%;flex:none;background:conic-gradient(var(--color-green) calc(var(--p)*1%),var(--color-divider) 0);display:grid;place-items:center}
.ring span{width:38px;height:38px;border-radius:50%;background:var(--color-surface);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:.75rem;color:var(--color-green)}
.check{width:22px;height:22px;border-radius:6px;border:2px solid var(--color-gold);flex:none}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr}.float-card.fit{left:var(--space-3)}.float-card.task{right:var(--space-3)}}

/* stats */
.stats{border-block:1px solid var(--color-divider);background:var(--color-surface)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);padding-block:var(--space-10)}
.stat-num{font-family:var(--font-display);font-weight:800;font-size:var(--text-xl);color:var(--color-primary);display:block;margin-bottom:var(--space-1)}
.stat p{font-size:var(--text-sm);color:var(--color-text-muted);max-width:36ch}
.stat sup a{text-decoration:none;font-weight:600}
@media (max-width:760px){.stats-grid{grid-template-columns:1fr;gap:var(--space-6)}}

/* sections */
.section{padding-block:clamp(var(--space-12),8vw,var(--space-24))}
.section-tint{background:var(--color-tint)}
.section-head{margin-bottom:var(--space-10)}
.section-head h2,.check-grid h2,.schools-grid h2,.cta-grid h2{font-size:var(--text-2xl);font-weight:800}
.section-head.split{display:flex;justify-content:space-between;align-items:end;gap:var(--space-6);flex-wrap:wrap}
.section-head.center{text-align:center;display:flex;flex-direction:column;align-items:center}
.card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}

/* ladder */
.ladder{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);counter-reset:s}
.ladder li{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-divider);position:relative}
.ladder li:nth-child(4){background:var(--band);color:#fff;border-color:transparent}
.ladder li:nth-child(4) p{color:#C7D4F2}
.ladder li:nth-child(4) .step{color:#FCD34D}
.step{font-family:var(--font-display);font-weight:800;font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.08em}
.ladder h3{font-size:var(--text-lg);margin:var(--space-2) 0}
.ladder p{font-size:var(--text-sm);color:var(--color-text-muted)}
@media (max-width:900px){.ladder{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.ladder{grid-template-columns:1fr}}

/* quiz */
.check-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--space-12);align-items:start}
.check-grid h2{margin-bottom:var(--space-4)}
@media (max-width:900px){.check-grid{grid-template-columns:1fr;gap:var(--space-8)}}
.quiz{padding:var(--space-8);min-height:420px;display:flex;flex-direction:column}
.quiz-progress{height:6px;border-radius:var(--radius-full);background:var(--color-divider);overflow:hidden;margin-bottom:var(--space-6)}
.quiz-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--color-primary),var(--color-green));transition:width 300ms cubic-bezier(.16,1,.3,1)}
.q{display:none;border:0;flex:1}
.q.active{display:block;animation:fade 280ms ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.q legend{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);margin-bottom:var(--space-4)}
.opts{display:grid;gap:var(--space-2)}
.opts label{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:500}
.opts label:hover{border-color:var(--color-primary)}
.opts input{accent-color:var(--color-primary);width:18px;height:18px}
.opts label:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-highlight)}
.quiz-nav{display:flex;justify-content:space-between;margin-top:var(--space-6)}
.result h3{font-size:var(--text-lg);margin-bottom:var(--space-2)}
.result ol{padding-left:var(--space-5);display:grid;gap:var(--space-2);margin:var(--space-4) 0;font-size:var(--text-sm)}
.rec{display:flex;gap:var(--space-4);align-items:center;justify-content:space-between;flex-wrap:wrap;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-divider)}
.rec strong{font-family:var(--font-display)}
.rec small{display:block;color:var(--color-text-muted);font-size:var(--text-xs)}

/* products */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
@media (max-width:960px){.product-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.product-grid{grid-template-columns:1fr}}
.product{display:flex;flex-direction:column;padding:var(--space-6);gap:var(--space-3)}
.product .cover{height:140px;border-radius:var(--radius-md);display:flex;align-items:flex-end;padding:var(--space-4);position:relative;overflow:hidden;color:#fff}
.product .cover::after{content:"";position:absolute;right:-30px;top:-30px;width:140px;height:140px;background:radial-gradient(circle,rgb(255 255 255 / .28),transparent 65%)}
.product .cover svg{position:absolute;right:var(--space-4);top:var(--space-4);width:40px;height:40px;opacity:.95}
.product .cover span{font-family:var(--font-display);font-weight:800;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;background:rgb(0 0 0 / .18);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}
.product h3{font-size:var(--text-lg)}
.product p{font-size:var(--text-sm);color:var(--color-text-muted);flex:1}
.product .row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.product .p{font-family:var(--font-display);font-weight:800;font-size:var(--text-lg)}
.product .p s{color:var(--color-text-faint);font-weight:600;font-size:var(--text-sm);margin-left:var(--space-1)}
.product.bundle{border:2px solid var(--color-gold)}

/* tiers */
.billing{display:inline-flex;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:4px;margin-top:var(--space-6)}
.seg{padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);font-weight:600;font-size:var(--text-sm);color:var(--color-text-muted)}
.seg em{font-style:normal;font-size:var(--text-xs);color:var(--color-green);margin-left:var(--space-1);font-weight:700}
.seg.active{background:var(--color-primary);color:#fff}
.seg.active em{color:#D1FAE5}
[data-theme='dark'] .seg.active{color:#0B1120}
[data-theme='dark'] .seg.active em{color:#065F46}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);align-items:stretch}
@media (max-width:900px){.tiers{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
.tier{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-xl);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-2);position:relative}
.tier.featured{border:2px solid var(--color-primary);box-shadow:var(--shadow-lg)}
.badge{position:absolute;top:calc(-1 * var(--space-3));left:var(--space-8);background:var(--color-gold);color:#422006;font-family:var(--font-display);font-weight:800;font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}
.tier h3{font-size:var(--text-lg)}
.price{display:flex;align-items:baseline;gap:var(--space-1)}
.amt{font-family:var(--font-display);font-weight:800;font-size:var(--text-2xl);letter-spacing:-.03em}
.per{color:var(--color-text-muted);font-size:var(--text-sm)}
.tier ul{display:grid;gap:var(--space-2);margin:var(--space-4) 0 var(--space-6);flex:1}
.tier li{font-size:var(--text-sm);padding-left:var(--space-6);position:relative}
.tier li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:7px;border-left:2px solid var(--color-green);border-bottom:2px solid var(--color-green);transform:rotate(-45deg)}

/* schools */
.schools-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.schools-grid h2{margin-bottom:var(--space-4)}
.schools-media img{border-radius:var(--radius-xl);box-shadow:var(--shadow-md);aspect-ratio:4/5;object-fit:cover;width:100%}
@media (max-width:900px){.schools-grid{grid-template-columns:1fr}.schools-media img{aspect-ratio:4/3}}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin:var(--space-8) 0 var(--space-6)}
@media (max-width:600px){.plans{grid-template-columns:1fr}}
.plan{padding:var(--space-5);border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface)}
.plan h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary)}
.plan-price{font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);margin:var(--space-1) 0 var(--space-2)}
.plan-price small{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600}
.compliance{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}
.compliance li{font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:color-mix(in oklab,var(--color-green) 14%,transparent);color:var(--color-text)}

/* cta band */
.cta-band{background:var(--band);color:#fff}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:center}
.cta-grid h2{margin-bottom:var(--space-4)}
.cta-grid > div p{color:#C7D4F2;max-width:48ch}
@media (max-width:900px){.cta-grid{grid-template-columns:1fr}}
.lead{padding:var(--space-8);display:grid;gap:var(--space-2);color:var(--color-text)}
.lead label{font-size:var(--text-sm);font-weight:600;margin-top:var(--space-2)}
.lead input:not([type=checkbox]),.lead select{padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%}
.lead input:focus,.lead select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-highlight)}
.lead .consent{display:flex;gap:var(--space-2);align-items:flex-start;font-weight:400;color:var(--color-text-muted);font-size:var(--text-xs);margin:var(--space-2) 0}
.lead .consent input{margin-top:3px;accent-color:var(--color-primary)}
.lead button{margin-top:var(--space-2)}
.form-msg{font-size:var(--text-sm);min-height:1.4em}
.form-msg.err{color:#DC2626}
.form-msg.ok{color:var(--color-green)}
[aria-invalid=true]{border-color:#DC2626!important}

/* faq */
details{border-bottom:1px solid var(--color-divider);padding-block:var(--space-5)}
summary{cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:var(--text-base);list-style:none;display:flex;justify-content:space-between;gap:var(--space-4)}
summary::after{content:"+";color:var(--color-primary);font-size:1.4rem;line-height:1}
details[open] summary::after{content:"–"}
details p{margin-top:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}

/* footer */
.site-footer{border-top:1px solid var(--color-divider);padding-block:var(--space-12) var(--space-8);background:var(--color-surface)}
.footer-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--space-8)}
.footer-grid .brand{margin-bottom:var(--space-2)}
.sources{padding-left:var(--space-5);display:grid;gap:var(--space-2)}
.footer-base{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-divider)}
@media (max-width:700px){.footer-grid{grid-template-columns:1fr}}

.toast{position:fixed;left:50%;bottom:var(--space-6);transform:translate(-50%,150%);background:var(--color-text);color:var(--color-bg);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;box-shadow:var(--shadow-lg);z-index:90;transition:transform 300ms cubic-bezier(.16,1,.3,1);max-width:calc(100% - 2rem);text-align:center}
.toast.show{transform:translate(-50%,0)}
.toast:empty{visibility:hidden}
.toast{visibility:hidden}.toast.show{visibility:visible}
.plan-price small{display:block;margin-top:2px}
.header-actions .btn{white-space:nowrap}
@media (max-width:600px){.float-card.task{display:none}}
