:root{
  --green-900:#07302a; --green-800:#0b3b32; --green-700:#0f5a4a; --green-600:#14705c;
  --gold:#f5b841; --gold-dark:#d99a24;
  --ink:#111c22; --ink-2:#465560; --ink-3:#77878f;
  --cream:#fdfbf7; --line:#e6ebe9; --white:#fff;
  --r:16px; --r-lg:24px;
  --font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --shadow:0 4px 24px rgba(7,48,42,.07);
  --shadow-lg:0 18px 50px rgba(7,48,42,.13);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--white);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.narrow{max-width:780px;margin:0 auto}
a{color:var(--green-700);text-decoration:none}
img{max-width:100%}

h1,h2,h3,h4{letter-spacing:-.03em;line-height:1.15;margin:0}
h2{font-size:40px;font-weight:800}
h3{font-size:20px;font-weight:700}
p{margin:0 0 16px;color:var(--ink-2)}
@media(max-width:700px){h2{font-size:30px}}

.eyebrow{display:inline-block;background:rgba(20,112,92,.09);color:var(--green-700);font-size:13px;font-weight:700;letter-spacing:.04em;padding:6px 16px;border-radius:30px;margin-bottom:16px}
.eyebrow.on-dark{background:rgba(255,255,255,.14);color:#cfe9e0}

/* Gold marker underline, drawn with CSS — no image needed */



.btn{display:inline-flex;align-items:center;gap:9px;background:var(--gold);color:var(--green-900);font-family:var(--font);font-weight:700;font-size:16px;padding:15px 28px;border:none;border-radius:10px;cursor:pointer;transition:.18s;white-space:nowrap}
.btn:hover{background:var(--gold-dark);transform:translateY(-1px)}
.btn-green{background:var(--green-700);color:#fff}
.btn-green:hover{background:var(--green-600)}
.btn-sm{padding:10px 18px;font-size:14px;border-radius:8px}
.btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost:hover{background:var(--cream);border-color:var(--green-700)}

/* ---------- FTC disclosure. Above the fold, plain, never a link ---------- */
.disclosure{background:#fff8e6;border-bottom:1px solid #f2e3bd;color:#7a5f16;font-size:13.5px;padding:10px 0;text-align:center}

/* ---------- Top bar + nav ---------- */
.topbar{background:var(--green-900);color:#9fc4b8;font-size:13.5px;padding:9px 0}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.topbar strong{color:#fff;font-weight:600}
@media(max-width:640px){.topbar{display:none}}

header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0}
.logo{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.03em}
.logo-mark{width:40px;height:40px;display:grid;place-items:center;flex:0 0 40px}
.logo em{font-style:normal;color:var(--green-700)}
.nav-links{display:flex;gap:28px;font-size:15px;font-weight:600}
.nav-links a{color:var(--ink-2)}
.nav-links a:hover{color:var(--green-700)}
@media(max-width:900px){.nav-links{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--green-800);color:#fff;overflow:hidden;padding:76px 0 96px}
.hero::before{content:"";position:absolute;top:-160px;right:-140px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(20,112,92,.85),rgba(11,59,50,0) 70%)}
.hero::after{content:"";position:absolute;bottom:-200px;left:-120px;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(245,184,65,.16),rgba(11,59,50,0) 68%)}
.hero .wrap{position:relative;z-index:2}

@media(max-width:980px){}
.hero h1{font-size:56px;font-weight:800;margin-bottom:20px}
@media(max-width:980px){.hero h1{font-size:42px}}
@media(max-width:520px){.hero h1{font-size:34px}}
.hero .sub{color:#bcd8cf;font-size:19px;max-width:520px;margin-bottom:28px}
.hero 
.hero h1 

.trust-row{display:flex;gap:26px;flex-wrap:wrap;margin-top:30px;font-size:14.5px;color:#a8cabf}
.trust-row span{display:flex;align-items:center;gap:8px}

/* Selector card — the primary conversion element */
.finder{background:#fff;border-radius:var(--r-lg);padding:30px;box-shadow:var(--shadow-lg);color:var(--ink)}
.finder h3{font-size:21px;margin-bottom:6px}
.finder p{font-size:14.5px;color:var(--ink-3);margin-bottom:20px}
.finder label{display:block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:8px}
.finder select{width:100%;padding:15px 16px;font-size:16px;font-family:var(--font);font-weight:600;color:var(--ink);border:1.5px solid var(--line);border-radius:11px;background:var(--cream);margin-bottom:14px;cursor:pointer}
.finder select:focus{outline:none;border-color:var(--green-700)}
.finder .btn{width:100%;justify-content:center}
.finder .foot{margin:16px 0 0;font-size:13px;color:var(--ink-3);text-align:center}

/* Floating stat chips */
.chips{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.chip{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:13px;padding:12px 18px;backdrop-filter:blur(6px)}
.chip b{display:block;font-size:22px;font-weight:800;color:#fff;letter-spacing:-.02em}
.chip span{font-size:12.5px;color:#9fc4b8}

/* ---------- Sections ---------- */
section{padding:84px 0}
.sec-cream{background:var(--cream)}
.sec-head{text-align:center;max-width:660px;margin:0 auto 48px}
.sec-head p{font-size:17.5px;margin-top:14px}

/* ---------- School cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:900px){.cards{grid-template-columns:1fr;max-width:460px;margin:0 auto}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 28px;position:relative;transition:.2s;display:flex;flex-direction:column}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.card.featured{border-color:var(--green-700);border-width:2px}
.ribbon{position:absolute;top:-13px;left:28px;background:var(--green-700);color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em;padding:5px 14px;border-radius:20px}
.card .rank{font-size:13px;font-weight:700;color:var(--ink-3);letter-spacing:.05em}
.card h3{font-size:23px;margin:6px 0 2px}
.score{display:flex;align-items:baseline;gap:7px;margin:12px 0 4px}
.score b{font-size:34px;font-weight:800;color:var(--green-700);letter-spacing:-.03em;line-height:1}
.score span{font-size:13.5px;color:var(--ink-3)}
.stars{color:var(--gold);font-size:15px;letter-spacing:2px;margin-bottom:14px}
.card .price{font-size:15px;color:var(--ink-2);padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px}
.card .price b{color:var(--ink);font-size:21px;font-weight:800}
.feat{list-style:none;padding:0;margin:0 0 22px;font-size:15px;color:var(--ink-2);flex:1}
.feat li{padding:6px 0 6px 26px;position:relative}
.feat li::before{content:"";position:absolute;left:0;top:13px;width:15px;height:8px;border-left:2.5px solid var(--green-700);border-bottom:2.5px solid var(--green-700);transform:rotate(-45deg)}
.card .btn{width:100%;justify-content:center}
/* FTC: "affiliate link" is inadequate per FTC guidance — "Paid link" is what they named acceptable */
.paid{display:block;text-align:center;font-size:11.5px;color:var(--ink-3);margin-top:9px}

/* ---------- Feature trio ---------- */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:860px){.trio{grid-template-columns:1fr}}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px 28px}
.ico{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;margin-bottom:18px}
.ico-g{background:rgba(20,112,92,.1)}
.ico-y{background:rgba(245,184,65,.2)}
.ico-b{background:rgba(59,130,246,.1)}
.tile p{font-size:15.5px;margin:0}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.stp{display:flex;gap:18px}
.stp .n{flex:0 0 44px;height:44px;border-radius:13px;background:var(--green-800);color:var(--gold);display:grid;place-items:center;font-weight:800;font-size:17px}
.stp h3{font-size:18px;margin-bottom:5px}
.stp p{font-size:15px;margin:0}

/* ---------- Photo slot ---------- */
.photo-slot{border-radius:var(--r-lg);background:linear-gradient(135deg,var(--green-700),var(--green-900));min-height:340px;display:grid;place-items:center;color:rgba(255,255,255,.5);font-size:13.5px;text-align:center;padding:24px;position:relative;overflow:hidden}
.photo-slot::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 25%,rgba(245,184,65,.22),transparent 60%)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:32px}}

/* ---------- States ---------- */
.state-grid{columns:5;column-gap:14px}
@media(max-width:980px){.state-grid{columns:3}}
@media(max-width:620px){.state-grid{columns:2}}
.state-grid a,.state-grid span{display:block;padding:11px 15px;border-radius:10px;font-size:14.5px;font-weight:600;margin-bottom:9px;break-inside:avoid}
.state-grid a{background:#fff;border:1px solid var(--line);color:var(--ink)}
.state-grid a:hover{border-color:var(--green-700);color:var(--green-700)}
.state-grid span{color:#a9b6bb;border:1px dashed var(--line)}

/* ---------- FAQ ---------- */
.faq{max-width:780px;margin:0 auto}
details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden}
summary{cursor:pointer;font-weight:700;font-size:17px;padding:20px 24px;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--green-700);font-size:24px;font-weight:600;line-height:1}
details[open] summary::after{content:"–"}
details p{padding:0 24px 22px;margin:0;font-size:15.5px}

/* ---------- Trust band ---------- */
.band{background:var(--green-800);color:#fff;border-radius:var(--r-lg);padding:44px;display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:center}
@media(max-width:820px){.band{grid-template-columns:1fr;padding:32px}}
.band h2{font-size:30px;margin-bottom:12px}
.band p{color:#bcd8cf;font-size:15.5px;margin:0}

footer{background:var(--green-900);color:#8fb5a9;padding:56px 0 40px;font-size:14px;margin-top:0}
footer h4{color:#fff;font-size:15px;margin-bottom:14px}
footer a{color:#b9d4ca}
footer a:hover{color:#fff}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:36px}
@media(max-width:760px){.fgrid{grid-template-columns:1fr;gap:28px}}
.fgrid ul{list-style:none;padding:0;margin:0}
.fgrid li{margin-bottom:9px}
.legal{border-top:1px solid rgba(255,255,255,.11);padding-top:26px;font-size:13px;line-height:1.7}
.legal strong{color:#dbe9e4}

/* ================= HERO PHOTO =================
   Added when the licensed hero cutout was wired in.
   The subject sits in its own column; chips float over it. */

.hero-media img{display:block;width:100%;height:auto;filter:drop-shadow(0 24px 44px rgba(0,0,0,.32))}
/* Soft gold halo behind the subject so she doesn't float on flat green */

.hero-media img{position:relative;z-index:1}
@media(max-width:980px){}

/* Three-column hero: copy · finder · photo */

@media(max-width:1180px){
  .hero-grid.with-photo }
@media(max-width:980px){}

/* Floating card over the photo, echoing the stat-card pattern */
.float-card{position:absolute;z-index:2;background:#fff;border-radius:14px;padding:13px 17px;box-shadow:0 12px 30px rgba(0,0,0,.20);display:flex;align-items:center;gap:12px}
.float-card b{display:block;font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1.2}
.float-card span{font-size:12px;color:var(--ink-3)}
.float-card .fi{width:34px;height:34px;border-radius:10px;background:rgba(20,112,92,.11);display:grid;place-items:center;flex:0 0 34px}



/* Real photo replaces the .photo-slot placeholder in the steps section */
.photo-frame{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);position:relative}
.photo-frame img{display:block;width:100%;height:auto}
/* Warm tint tying the photo to the palette */
.photo-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(245,184,65,.10),rgba(11,59,50,.14));pointer-events:none}


/* ================= HERO v2 — two columns + full-width finder bar =================
   The earlier three-column layout squeezed the headline into a narrow
   ribbon and cropped the photo. Copy and photo now split the row; the
   state finder gets its own full-width bar underneath. */
.wrap{max-width:1200px}
.hero{padding:64px 0 78px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-copy h1{font-size:clamp(34px,4.2vw,58px);line-height:1.08;margin-bottom:18px;max-width:15ch}
.hero-copy .sub{max-width:50ch}

.hero-media{position:relative;justify-self:center;width:100%;max-width:430px}
.hero-media::before{content:"";position:absolute;left:50%;top:6%;transform:translateX(-50%);
  width:112%;padding-bottom:112%;border-radius:50%;
  background:radial-gradient(circle,rgba(245,184,65,.22),rgba(245,184,65,0) 62%);z-index:0}
.hero-media img{position:relative;z-index:1;display:block;width:100%;height:auto;
  filter:drop-shadow(0 26px 46px rgba(0,0,0,.34))}
.fc-1{left:-26px;top:24%}
.fc-2{right:-22px;bottom:18%}

/* Finder bar */
.finder-bar{margin-top:52px;background:#fff;border-radius:18px;padding:22px 26px;
  box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}
.fb-label b{display:block;font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.fb-label span{font-size:14.5px;color:var(--ink-3)}
.fb-controls{display:flex;gap:12px}
.fb-controls select{min-width:250px;padding:14px 16px;font-size:16px;font-family:var(--font);
  font-weight:600;color:var(--ink);border:1.5px solid var(--line);border-radius:10px;
  background:var(--cream);cursor:pointer}
.fb-controls select:focus{outline:none;border-color:var(--green-700)}

@media(max-width:1040px){
  .hero-grid{grid-template-columns:1fr;gap:8px}
  .hero-media{display:none}
  .hero-copy h1{max-width:20ch}
}
@media(max-width:820px){
  .finder-bar{grid-template-columns:1fr;gap:16px}
  .fb-controls{flex-direction:column}
  .fb-controls select,.fb-controls .btn{width:100%;justify-content:center}
}


/* Gold marker underline — painted as the span's own background so it always
   sits behind the glyphs regardless of stacking context. */
.mark{
  background-image:linear-gradient(to top,rgba(245,184,65,.55) 0 .28em,transparent .28em);
  background-repeat:no-repeat;background-position:0 .04em;
}
.hero .mark{background-image:linear-gradient(to top,rgba(245,184,65,.75) 0 .26em,transparent .26em)}

/* Hero photo: fade the bottom edge so she doesn't end on a hard horizontal cut */
.hero-media img{
  -webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent 99%);
          mask-image:linear-gradient(to bottom,#000 78%,transparent 99%);
}
/* Float cards clear of her face */
.fc-1{left:-34px;top:16%}
.fc-2{right:-26px;bottom:26%}

/* Soften the decorative glow so its edge isn't visible as a seam */
.hero::before{background:radial-gradient(circle at 40% 40%,rgba(20,112,92,.55),rgba(11,59,50,0) 72%)}

/* Final hero tuning: cards clear of her face, slightly bolder marker, larger photo */
.hero-media{max-width:460px}
.fc-1{left:-78px;top:11%}
.fc-2{right:-44px;bottom:24%}
.hero .mark{background-image:linear-gradient(to top,rgba(245,184,65,.72) 0 .34em,transparent .34em);background-position:0 .02em}
@media(max-width:1240px){.fc-1{left:-20px}.fc-2{right:-10px}}

/* Mobile header: the logo was wrapping to three lines next to the CTA */
@media(max-width:640px){
  .nav{padding:12px 0;gap:12px}
  .logo{font-size:15px;white-space:nowrap;gap:8px}
  .logo-mark{width:40px;height:40px;display:grid;place-items:center;flex:0 0 40px}
  .logo-mark svg{width:16px;height:16px}
  .nav .btn-sm{padding:9px 13px;font-size:13px}
}
@media(max-width:400px){
  .nav .btn-sm{display:none}
  .logo{font-size:16px}
}

/* ================= State page header ================= */
.page-head{background:var(--green-800);color:#fff;padding:52px 0 46px;position:relative;overflow:hidden}
.page-head::before{content:"";position:absolute;top:-180px;right:-120px;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle at 40% 40%,rgba(20,112,92,.5),rgba(11,59,50,0) 72%)}
.page-head .wrap{position:relative;z-index:2}
.page-head h1{font-size:clamp(30px,3.6vw,46px);font-weight:800;line-height:1.12;margin-bottom:16px;max-width:20ch}
.page-head .sub{color:#bcd8cf;font-size:18px;max-width:60ch;margin-bottom:22px}
.page-head .sub strong{color:#fff}
.byline.on-dark{border-bottom:none;padding-bottom:0;margin-bottom:0;color:#8fb5a9;font-size:14px}
.byline.on-dark strong{color:#dbe9e4}
.byline.on-dark .dot{color:#4a7a6c}


/* Logo mark is a full-colour SVG, so it needs no tile behind it */
.logo-mark svg{width:100%;height:100%;display:block}
footer .logo-mark svg .cap-body,footer .logo-mark svg{}

/* Footer sits on dark green, so recolour the mark's green shapes to white.
   The gold key already has enough contrast and stays as-is. */
footer .logo-mark svg path[fill="#0f5a4a"]{fill:#fff}
footer .logo-mark svg path[stroke="#fff"]{stroke:#07302a}

/* ================= Prose / policy pages ================= */
.doc{max-width:760px;margin:0 auto;padding:0 24px}
.doc h2{font-size:26px;margin:44px 0 14px}
.doc h3{font-size:19px;margin:30px 0 8px}
.doc p{font-size:17px;margin:0 0 18px}
.doc ul,.doc ol{margin:0 0 18px;padding-left:22px;color:var(--ink-2);font-size:16.5px}
.doc li{margin-bottom:9px}
.doc .lede{font-size:19.5px;color:var(--ink-2);margin-bottom:8px}
.doc table{margin:22px 0}
.doc .note{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:26px 0}
.doc .note p:last-child{margin-bottom:0}
.doc a{text-decoration:underline;text-underline-offset:2px}
.updated{font-size:14px;color:var(--ink-3);border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:30px}
