/* ============================================================
   Stock the School — Vashon PTO
   Design system from Claude Design handoff ("Stock the School Final").
   Pacific-NW line-art, Spectral serif + Mulish sans, pine on cream,
   terracotta/amber warm accent.
   ============================================================ */

:root{
  --pine:#2e5a47;
  --pine-deep:#21422f;
  --pine-ink:#1c3527;
  --sage:#6f8c7b;
  --sage-tint:#e7eee7;
  --sage-line:#cdddcf;
  --cream:#f4f1e8;
  --paper:#fbf9f2;
  --card:#ffffff;
  --terra:#bf6a3c;
  --terra-deep:#a4562d;
  --amber:#d99a5b;
  --amber-tint:#f4e6cf;
  --amber-line:#e7cfa6;
  --ink:#243027;
  --muted:#5e6b60;
  --muted-soft:#8a948b;
  --serif:"Spectral",Georgia,serif;
  --sans:"Mulish",system-ui,sans-serif;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{display:block;}
[hidden]{display:none !important;}

/* ---------- nav (light) ---------- */
header.nav{background:var(--cream);border-bottom:1px solid #e4dfd0;position:sticky;top:0;z-index:20;}
.nav-inner{max-width:1080px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;background:none;border:none;padding:0;cursor:pointer;}
.brand img{height:42px;width:auto;}
.brand .wm{font-family:var(--serif);font-weight:600;font-size:21px;color:var(--pine-ink);line-height:1.05;white-space:nowrap;text-align:left;}
.brand .wm small{display:block;font-family:var(--sans);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-top:4px;white-space:nowrap;}
.nav-link{font-family:var(--sans);text-decoration:none;font-weight:800;font-size:14px;color:#fff;background:var(--pine);padding:10px 20px;border-radius:8px;white-space:nowrap;border:none;cursor:pointer;transition:background .16s ease;}
.nav-link:hover{background:var(--pine-deep);}

/* ---------- hero (deep green poster) ---------- */
.hero{background:var(--pine-deep);color:var(--cream);position:relative;overflow:hidden;}
.hero .frame{position:absolute;inset:18px;border:1px solid rgba(244,241,232,.18);border-radius:6px;pointer-events:none;}
.hero .horizon{position:absolute;left:0;right:0;bottom:0;width:100%;height:42%;color:#fff;opacity:.07;pointer-events:none;}
.hero-inner{position:relative;max-width:720px;margin:0 auto;padding:56px 40px 66px;text-align:center;}
.medallion{width:72px;height:72px;margin:0 auto 22px;border-radius:50%;border:1.5px solid rgba(244,241,232,.35);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.04);}
.medallion img{height:46px;width:auto;}
.eyebrow{font-weight:800;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--amber);margin:0 0 18px;}
.eyebrow .dot{opacity:.5;margin:0 7px;}
h1{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5.2vw,54px);line-height:1.1;letter-spacing:-.005em;color:#fff;margin:0 auto;max-width:15ch;text-wrap:balance;}
h1 em{font-style:italic;color:#f0d9bf;font-weight:400;}
.lede{font-size:17.5px;color:#cdddd0;margin:24px auto 0;max-width:54ch;text-wrap:pretty;}
.lede strong{color:#fff;font-weight:600;}
.cta-row{margin-top:32px;display:flex;flex-direction:column;align-items:center;gap:13px;}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:800;font-size:16.5px;color:#3a2414;background:var(--amber);border:none;border-radius:10px;padding:16px 32px;text-decoration:none;cursor:pointer;transition:transform .16s ease,background .16s ease;}
.btn:hover{background:#e7ab6c;transform:translateY(-2px);}
.btn .arrow{transition:transform .18s ease;}
.btn:hover .arrow{transform:translateX(4px);}
.btn:disabled{background:#d9cdb5;color:#8a7d63;cursor:not-allowed;transform:none;}
.btn-sm{font-size:15px;padding:13px 24px;}
.deadline{font-size:14.5px;color:#a9c0ad;}
.deadline strong{color:#fff;font-weight:800;}

/* ---------- landing body layout ---------- */
.landing-main{max-width:920px;margin:0 auto;padding:0 28px 96px;}

/* ---------- steps ---------- */
.steps-head{display:flex;align-items:center;gap:18px;margin:64px 0 22px;}
.steps-head .line{flex:1;height:1.5px;background:var(--sage-line);}
.steps-head h2{font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin:0;}
.steps{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.step{position:relative;background:var(--card);border:1px solid #ece8db;border-radius:18px;padding:26px 26px 24px;
  box-shadow:0 1px 0 #efece0,0 14px 30px -24px rgba(36,48,39,.4);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.step:hover{transform:translateY(-3px);box-shadow:0 1px 0 #efece0,0 22px 38px -26px rgba(36,48,39,.5);border-color:var(--sage-line);}
.step .num{position:absolute;top:20px;right:24px;font-family:var(--serif);font-style:italic;font-size:30px;color:#e4ddca;font-weight:500;line-height:1;}
.ic{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--sage-tint);color:var(--pine);margin-bottom:18px;}
.ic svg{width:26px;height:26px;}
.step h3{font-size:18.5px;font-weight:800;color:var(--pine-ink);margin:0 0 5px;letter-spacing:-.01em;}
.step p{margin:0;color:var(--muted);font-size:15.5px;}

/* ---------- why panel ---------- */
.why{margin-top:40px;background:var(--sage-tint);border:1px solid var(--sage-line);border-radius:22px;padding:48px 44px 40px;position:relative;overflow:hidden;}
.why .motif{position:absolute;inset:auto 0 0 0;width:100%;height:60px;color:#cfe0d2;opacity:.7;}
.why h2{font-family:var(--serif);font-weight:600;text-align:center;font-size:30px;color:var(--pine-deep);margin:0 0 34px;letter-spacing:-.01em;}
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.reason{text-align:center;}
.reason .ric{width:54px;height:54px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fbfaf3;border:1.5px solid var(--sage-line);color:var(--pine);}
.reason .ric svg{width:28px;height:28px;}
.reason h3{font-family:var(--serif);font-weight:600;font-size:19px;color:var(--pine-ink);margin:0 0 7px;}
.reason p{margin:0;font-size:14.5px;color:#52624f;text-wrap:pretty;}
.why-foot{position:relative;margin:36px auto 0;max-width:62ch;text-align:center;font-size:16px;color:#3c4a3d;padding-top:26px;border-top:1.5px solid var(--sage-line);}
.why-foot strong{color:var(--pine-deep);font-weight:800;}

/* ---------- meal banner ---------- */
.meal{margin-top:26px;background:var(--amber-tint);border:1px solid var(--amber-line);border-radius:18px;padding:24px 28px;display:flex;gap:18px;align-items:flex-start;}
.meal .micon{flex:0 0 auto;width:44px;height:44px;border-radius:12px;background:#fbf2e0;border:1.5px solid var(--amber-line);display:flex;align-items:center;justify-content:center;color:var(--terra-deep);}
.meal .micon svg{width:26px;height:26px;}
.meal p{margin:0;font-size:15.5px;color:#5a4a35;text-wrap:pretty;}
.meal strong{font-family:var(--serif);font-weight:600;color:var(--terra-deep);}

/* ---------- footer ---------- */
footer{text-align:center;padding:46px 28px 28px;color:var(--muted-soft);font-size:14.5px;}
footer a{color:var(--pine);font-weight:700;text-underline-offset:3px;}

/* ============================================================
   WIZARD — same design language applied to the order flow
   ============================================================ */
.wizard-main{max-width:720px;margin:0 auto;padding:30px 28px 60px;}

.progress{display:flex;gap:6px;margin:4px 0 26px;}
.progress .dot{flex:1;height:6px;border-radius:99px;background:var(--sage-line);transition:background .2s;}
.progress .dot.done{background:var(--amber);}
.progress .dot.current{background:var(--pine);}

.step-head h2{font-family:var(--serif);font-weight:600;font-size:30px;color:var(--pine-deep);margin:0 0 4px;letter-spacing:-.01em;line-height:1.12;}
.step-head .sub{color:var(--muted);margin:0 0 24px;font-size:15.5px;}

/* kid blocks */
.kid-block{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--sage-line);}
.kid-block:last-child{border-bottom:none;}
.kid-h{font-family:var(--serif);font-weight:600;margin:0 0 14px;font-size:20px;color:var(--pine-ink);}

/* grade grid */
.grade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:10px;}
.grade-pill{background:var(--card);border:1.5px solid #e4ddca;border-radius:13px;padding:14px 10px;text-align:center;cursor:pointer;
  transition:border-color .15s,background .15s,transform .12s;box-shadow:0 10px 22px -20px rgba(36,48,39,.5);}
.grade-pill:hover{border-color:var(--sage);transform:translateY(-2px);}
.grade-pill.selected{border-color:var(--pine);background:var(--sage-tint);}
.grade-pill .g{font-weight:800;font-size:15px;color:var(--pine-ink);}

/* tier cards */
.tier-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}
.tier-card{position:relative;background:var(--card);border:1.5px solid #ece8db;border-radius:16px;padding:18px;cursor:pointer;
  transition:border-color .15s,background .15s,transform .12s;box-shadow:0 14px 30px -24px rgba(36,48,39,.4);}
.tier-card:hover{border-color:var(--sage);transform:translateY(-2px);}
.tier-card.selected{border-color:var(--pine);background:var(--sage-tint);}
.tier-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.tier-name{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--pine-ink);}
.tier-price{font-weight:800;color:var(--pine-deep);font-size:18px;}
.tier-blurb{margin:9px 0 0;color:var(--muted);font-size:14px;}
.rec-tag{position:absolute;top:-11px;left:16px;background:var(--terra);color:#fff;font-family:var(--sans);font-size:10.5px;font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:999px;}
.provides{margin:14px 0 0;color:var(--muted);font-size:14px;background:var(--paper);border:1px solid #ece8db;border-radius:11px;padding:11px 14px;}

/* form fields (child name, contact details) */
.field{margin:0 0 16px;}
.field label{display:block;font-weight:700;font-size:14px;color:var(--pine-ink);margin:0 0 6px;}
.field input{width:100%;font-family:var(--sans);font-size:16px;color:var(--ink);background:var(--card);
  border:1.5px solid #e4ddca;border-radius:11px;padding:12px 14px;outline:none;transition:border-color .15s;}
.field input::placeholder{color:#a9b0a6;}
.field input:focus{border-color:var(--pine);}
.provides strong{color:var(--pine-ink);}

/* kid count stepper */
.stepper{display:flex;align-items:center;justify-content:center;gap:22px;margin:34px 0;}
.stepper button{width:58px;height:58px;border-radius:50%;border:1.5px solid var(--pine);background:var(--card);color:var(--pine);font-size:1.7rem;font-weight:800;cursor:pointer;transition:background .15s;}
.stepper button:hover:not(:disabled){background:var(--sage-tint);}
.stepper button:disabled{opacity:.35;cursor:not-allowed;}
.stepper .count{font-family:var(--serif);font-size:3.4rem;font-weight:600;min-width:78px;text-align:center;color:var(--pine-ink);}

/* funds */
.pif-card{background:var(--card);border:1px solid #ece8db;border-radius:18px;padding:24px;box-shadow:0 14px 30px -24px rgba(36,48,39,.4);}
.pif-card h3{font-family:var(--serif);font-weight:600;font-size:21px;color:var(--pine-ink);margin:0 0 5px;display:flex;align-items:center;gap:9px;}
.pif-card h3 .hic{width:28px;height:28px;color:var(--terra-deep);flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.pif-card h3 .hic svg{width:26px;height:26px;display:block;}
.pif-card>p{margin:0 0 16px;color:var(--muted);font-size:15px;}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;}
.tier{background:var(--card);border:1.5px solid #e4ddca;border-radius:12px;padding:13px 6px;cursor:pointer;
  transition:border-color .15s,background .15s,transform .12s;display:flex;flex-direction:column;align-items:center;gap:2px;}
.tier:hover{border-color:var(--amber);transform:translateY(-2px);}
.tier .tier-amt{font-family:var(--serif);font-weight:600;font-size:1.3rem;color:var(--pine-ink);}
.tier .tier-lbl{font-size:.78rem;color:var(--muted);font-weight:700;}
.tier.selected{border-color:var(--terra);background:var(--amber-tint);}
.tier.selected .tier-amt{color:var(--terra-deep);}
.custom-amount{display:flex;align-items:center;gap:4px;margin-top:14px;border:1.5px solid var(--terra);border-radius:12px;padding:10px 14px;max-width:190px;background:var(--amber-tint);}
.custom-amount .dollar{font-family:var(--serif);font-weight:600;font-size:1.3rem;color:var(--terra-deep);}
.custom-amount input{border:none;background:transparent;font-family:var(--serif);font-size:1.4rem;font-weight:600;width:100%;outline:none;color:var(--pine-ink);}
.pif-clear{background:none;border:none;color:var(--muted);font-size:.85rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-top:14px;padding:0;display:block;}

/* review */
.review-list{list-style:none;padding:0;margin:0 0 6px;}
.review-list li{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--sage-line);}
.review-list .ri-label{color:var(--ink);}
.review-list .ri-sub{display:block;color:var(--muted-soft);font-size:.85rem;}
.review-list li span:last-child{font-weight:800;color:var(--pine-deep);white-space:nowrap;}
.review-total{display:flex;justify-content:space-between;font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--pine-deep);padding:18px 0;}
.review-section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);margin:22px 0 2px;font-weight:800;}

/* wizard nav */
.wizard-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid var(--sage-line);
  position:sticky;bottom:0;background:var(--cream);padding-bottom:14px;}
.running-total{font-weight:800;color:var(--pine-deep);font-size:1.05rem;}
.btn-ghost{background:none;border:none;font-family:var(--sans);font-weight:700;color:var(--muted);font-size:15px;padding:12px 6px;cursor:pointer;}
.btn-ghost:hover{color:var(--ink);}
#nextBtn{background:var(--pine);color:#fff;}
#nextBtn:hover:not(:disabled){background:var(--pine-deep);}
#nextBtn:disabled{background:#bcc6bd;color:#eef2ee;}

/* prototype helpers */
.proto-note{background:var(--amber-tint);border:1px dashed var(--amber-line);color:#7a5a16;border-radius:11px;padding:11px 15px;font-size:.86rem;margin:20px 0;}
pre.debug{background:#16241c;color:#bfe9cf;border-radius:11px;padding:16px;overflow:auto;font-size:.8rem;line-height:1.5;}
.pay-error{margin-top:16px;background:#fbeae4;border:1px solid #e7bca8;color:#8a3b1e;border-radius:11px;padding:12px 16px;font-size:.92rem;}

@media (max-width:680px){
  .steps{grid-template-columns:1fr;}
  .reasons{grid-template-columns:1fr;gap:26px;}
  .why{padding:38px 24px 32px;}
  .brand .wm small{display:none;}
  .tier-cards{grid-template-columns:1fr;}
  .step-head h2,.why h2{font-size:25px;}
}
