/* Clarifin — neo-brutalist
   Flat saturated blocks, 3px black outlines, hard offset shadows, pill buttons.
   Display: Poppins 800 · Body: Public Sans · Data/labels: JetBrains Mono
   Light-first; dark variant flips the outlines to bone. No money imagery (§16). */

*,*::before,*::after{box-sizing:border-box}

/* ================= LIGHT (primary) ================= */
:root{
  --bg:#FFFFFF;
  --paper:#FFFFFF;
  --band-teal:#22D3EE;      /* hero band — cyan */
  --band-yellow:#FBBF24;    /* accent band — amber */
  --band-grey:#F1F2F8;

  --ink:#0F1226;
  --ink-2:#3A4060;
  --ink-3:#5C6382;

  --bd:#0F1226;
  --bd-w:3px;
  --bd-thin:2px;

  --indigo:#4F46E5;
  --cyan:#22D3EE;
  --magenta:#C2356F;
  --yellow:#FBBF24;
  --teal:#0B7268;
  --violet:#8748EC;
  --orange:#F26B4E;

  --on-indigo:#FFFFFF; --on-cyan:#0F1226; --on-magenta:#FFFFFF; --on-yellow:#0F1226;
  --on-teal:#FFFFFF; --on-violet:#FFFFFF; --on-orange:#0F1226;

  --sh:5px 5px 0 var(--bd);
  --sh-lg:8px 8px 0 var(--bd);
  --sh-sm:3px 3px 0 var(--bd);

  --fill-bg:#FFE9A8; --fill-ink:#5C4300;
  --dot:#C2870A;          /* wordmark period — deep amber so it reads on white */

  --f-display:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --f-body:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --measure:64ch;
  --pad:clamp(1.25rem,4vw,2.5rem);
  --r:10px;
  --r-lg:14px;
  --pill:999px;
}

/* ================= DARK ================= */
@media (prefers-color-scheme:dark){
 :root:not([data-theme="light"]){
  --bg:#161B33; --paper:#212845; --band-teal:#1D6A78; --band-yellow:#5A4410;
  --band-grey:#2A3254;
  --ink:#F0F2FA; --ink-2:#C2C8E0; --ink-3:#949BBA;
  --bd:#F0F2FA;
  --indigo:#8B84F5; --cyan:#5FE3F8; --magenta:#EE7FAC; --yellow:#FBCE52;
  --teal:#4FCFC0; --violet:#B79BFA; --orange:#F58E74;
  --on-indigo:#10142A; --on-cyan:#10142A; --on-magenta:#10142A; --on-yellow:#10142A;
  --on-teal:#10142A; --on-violet:#10142A; --on-orange:#10142A;
  --sh:5px 5px 0 #080B18; --sh-lg:8px 8px 0 #080B18; --sh-sm:3px 3px 0 #080B18;
  --fill-bg:#4A3708; --fill-ink:#FFDE8A; --dot:#FBCE52;
 }
}
:root[data-theme="dark"]{
  --bg:#161B33; --paper:#212845; --band-teal:#1D6A78; --band-yellow:#5A4410;
  --band-grey:#2A3254;
  --ink:#F0F2FA; --ink-2:#C2C8E0; --ink-3:#949BBA;
  --bd:#F0F2FA;
  --indigo:#8B84F5; --cyan:#5FE3F8; --magenta:#EE7FAC; --yellow:#FBCE52;
  --teal:#4FCFC0; --violet:#B79BFA; --orange:#F58E74;
  --on-indigo:#10142A; --on-cyan:#10142A; --on-magenta:#10142A; --on-yellow:#10142A;
  --on-teal:#10142A; --on-violet:#10142A; --on-orange:#10142A;
  --sh:5px 5px 0 #080B18; --sh-lg:8px 8px 0 #080B18; --sh-sm:3px 3px 0 #080B18;
  --fill-bg:#4A3708; --fill-ink:#FFDE8A; --dot:#FBCE52;
}

html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink-2);font-family:var(--f-body);
  font-size:clamp(1rem,.97rem + .15vw,1.0625rem);line-height:1.65}

/* ---------- type ---------- */
h1,h2,h3,h4{color:var(--ink);font-family:var(--f-display);margin:0;line-height:1.02;
  letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(2.4rem,1.3rem + 4.2vw,4.5rem);font-weight:800}
h2{font-size:clamp(1.75rem,1.2rem + 2.2vw,2.9rem);font-weight:800}
h3{font-size:clamp(1.2rem,1.06rem + .6vw,1.55rem);font-weight:700;letter-spacing:-.028em}
h4{font-size:1.0625rem;font-weight:700;letter-spacing:-.02em;font-family:var(--f-display)}
p{margin:0}
a{color:var(--ink);text-decoration-thickness:2px;text-underline-offset:.2em;
  text-decoration-color:var(--indigo)}
a:hover{color:var(--indigo)}
:focus-visible{outline:3px solid var(--indigo);outline-offset:3px;border-radius:4px}
strong{color:var(--ink);font-weight:700}
hr{border:0;height:var(--bd-thin);background:var(--bd);margin:0}

/* sticker label */
.eyebrow{font-family:var(--f-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--on-yellow);
  /* inline-block still gets stretched inside a flex column — pin it */
  display:inline-block;align-self:flex-start;width:fit-content;
  background:var(--yellow);
  border:var(--bd-thin) solid var(--bd);border-radius:var(--pill);
  padding:.35rem .85rem;box-shadow:var(--sh-sm)}
.eyebrow.c-violet{background:var(--violet);color:var(--on-violet)}
.eyebrow.c-coral{background:var(--orange);color:var(--on-orange)}
.eyebrow.c-amber{background:var(--yellow);color:var(--on-yellow)}
.eyebrow.c-teal{background:var(--teal);color:var(--on-teal)}
.eyebrow.c-pink{background:var(--magenta);color:var(--on-magenta)}

.lede{font-size:clamp(1.0625rem,1rem + .5vw,1.3125rem);color:var(--ink-2);line-height:1.55}
.muted{color:var(--ink-3);font-size:.9375rem}
.tiny{font-size:.8125rem;color:var(--ink-3);line-height:1.6}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.hl{color:var(--indigo)}

.fill{background:var(--fill-bg);color:var(--fill-ink);font-family:var(--f-mono);
  font-size:.82em;font-weight:500;padding:.14em .45em;border-radius:4px;
  overflow-wrap:anywhere;border:2px solid var(--bd)}

/* ---------- shell ---------- */
.wrap{width:100%;max-width:1160px;margin-inline:auto;padding-inline:var(--pad)}
.prose{max-width:var(--measure)}
.stack{display:flex;flex-direction:column}
.stack-xs{gap:.5rem}.stack-sm{gap:.875rem}.stack-md{gap:1.5rem}
.stack-lg{gap:2.5rem}.stack-xl{gap:4rem}

header.site{position:sticky;top:0;z-index:50;background:var(--paper);
  border-bottom:var(--bd-w) solid var(--bd)}
.bar{display:flex;align-items:center;gap:1.5rem;min-height:76px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.brandmark{width:38px;height:38px;flex:none;display:block}
.brandtext{display:flex;flex-direction:column;gap:.12rem}
.brandtext b{font-family:var(--f-display);font-size:1.35rem;font-weight:800;
  color:var(--ink);letter-spacing:-.045em;line-height:1}
.brandtext b .dot{color:var(--dot)}
.brandtext b .tld{color:var(--indigo)}
.brandtext>span{font-family:var(--f-mono);font-size:.5rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500;line-height:1}
nav.main{display:flex;gap:.4rem;flex-wrap:wrap;margin-left:auto;align-items:center}
nav.main a{font-family:var(--f-mono);font-size:.75rem;font-weight:500;letter-spacing:.04em;
  color:var(--ink);text-decoration:none;padding:.45rem .8rem;border-radius:var(--pill);
  border:var(--bd-thin) solid transparent}
nav.main a:hover{border-color:var(--bd);background:var(--cyan);color:var(--on-cyan)}
nav.main a[aria-current="page"]{border-color:var(--bd);background:var(--indigo);
  color:var(--on-indigo);box-shadow:var(--sh-sm)}

section.band{padding-block:clamp(3rem,7vw,5.5rem);position:relative}
section.band.tight{padding-block:clamp(2.25rem,5vw,3.5rem)}
section.band.alt{background:var(--band-grey);border-block:var(--bd-w) solid var(--bd)}
section.band.line{border-top:var(--bd-w) solid var(--bd)}

/* ---------- hero ---------- */
.hero{padding-block:clamp(3rem,8vw,6rem);background:var(--band-teal);
  border-bottom:var(--bd-w) solid var(--bd);position:relative;overflow:hidden}
.hero>.wrap{position:relative}
.hero h1{max-width:19ch}
.hero .lede{max-width:52ch;margin-top:1.6rem;color:var(--ink)}
.hero-art{position:absolute;right:clamp(1rem,3vw,3rem);top:50%;transform:translateY(-50%);
  width:min(30vw,340px);pointer-events:none;display:none}
@media (min-width:1080px){.hero{min-height:25rem;display:flex;align-items:center}
  .hero>.wrap{width:100%}}
@media (min-width:1080px){.hero-art{display:block}}
@media (min-width:1080px){.hero h1,.hero .lede,.hero .chain,.hero .btn-row{max-width:min(56ch,58%)}}

.chain{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.5rem}
.chain span{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;
  text-transform:uppercase;padding:.42rem .85rem;border-radius:var(--pill);font-weight:700;
  border:var(--bd-thin) solid var(--bd);box-shadow:var(--sh-sm);color:var(--ink)}
/* Neutral steps, accent only on the last — the product chain reads as one
   sequence, and the cashback is visibly the extra on the end (Guide §2). */
.chain span{background:var(--paper);color:var(--ink)}
.chain span:last-child{background:var(--violet);color:var(--on-violet)}

/* ---------- buttons: pills with hard shadows ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--f-display);font-size:.875rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:.9rem 1.8rem;border-radius:var(--pill);
  border:var(--bd-w) solid var(--bd);text-decoration:none;cursor:pointer;
  box-shadow:var(--sh);transition:transform .12s,box-shadow .12s,background .12s}
.btn:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--bd)}
.btn-primary{background:var(--indigo);color:var(--on-indigo)}
.btn-primary:hover{background:var(--indigo);color:var(--on-indigo)}
.btn-ghost{background:var(--paper);color:var(--ink)}
.btn-ghost:hover{background:var(--cyan);color:var(--on-cyan)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;
  box-shadow:var(--sh-sm);transform:none;background:var(--band-grey);color:var(--ink-3)}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.5rem}

/* ---------- panels ---------- */
.panel,.card,.note,.mod,.qa>div,.tablewrap,.summary,.plan,.disclose{
  background:var(--paper);border:var(--bd-w) solid var(--bd);border-radius:var(--r);
  box-shadow:var(--sh)}
.disclose{padding:clamp(1.6rem,3vw,2.4rem);background:var(--cyan);border-radius:var(--r-lg)}
/* Surfaces painted with a fixed light accent must set EVERY text colour from
   --on-*, links included. Inheriting the global link colour breaks in dark
   mode, where --ink flips to near-white and lands on light cyan. */
.disclose h3,.disclose p,.disclose li,.disclose strong{color:var(--on-cyan)}
.disclose a{color:var(--on-cyan);text-decoration-color:var(--on-cyan);
  text-decoration-thickness:2px}
.disclose a:hover{color:var(--on-cyan);text-decoration-thickness:3px}
.summary-head h3,.summary-head p{color:var(--on-cyan)}
.summary-head a{color:var(--on-cyan);text-decoration-color:var(--on-cyan)}
.plan-head a,.plan-cash a{color:var(--on-tier,var(--ink))}
caption a{color:var(--on-yellow)}
.disclose p{margin-top:.95rem;max-width:62ch}
.note{padding:1.3rem 1.6rem;box-shadow:var(--sh-sm)}

.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1.5rem}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.35rem}
.card{padding:1.6rem;display:flex;flex-direction:column;gap:.6rem;position:relative}
.card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.card{transition:transform .12s,box-shadow .12s}
.card p{font-size:.9375rem}
.card .ico{width:40px;height:40px;border-radius:var(--pill);display:grid;place-items:center;
  font-family:var(--f-mono);font-size:.75rem;font-weight:700;margin-bottom:.4rem;
  border:var(--bd-thin) solid var(--bd);color:var(--ink)}

/* ---------- curriculum ---------- */
.outline{display:flex;flex-direction:column;gap:.85rem}
.mod{display:grid;grid-template-columns:2.9rem 1fr auto;gap:1rem 1.3rem;align-items:start;
  padding:1.2rem 1.4rem;transition:transform .12s,box-shadow .12s}
.mod:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.mod-n{width:2.9rem;height:2.9rem;border-radius:var(--pill);display:grid;place-items:center;
  font-family:var(--f-mono);font-size:.8125rem;font-weight:700;
  background:var(--indigo);color:var(--on-indigo);
  border:var(--bd-thin) solid var(--bd)}
.mod h4{margin-bottom:.22rem}
.mod-meta{font-family:var(--f-mono);font-size:.75rem;color:var(--ink-3);white-space:nowrap;
  font-variant-numeric:tabular-nums;padding-top:.8rem;letter-spacing:.04em}
@media (max-width:620px){
  .mod{grid-template-columns:2.9rem 1fr}
  .mod-meta{grid-column:2;padding-top:.25rem;white-space:normal}
}

/* ---------- plan cards ---------- */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17.5rem),1fr));gap:1.5rem}
.plan{overflow:hidden;display:flex;flex-direction:column;padding:0;
  transition:transform .14s,box-shadow .14s}
.plan:hover{transform:translate(-4px,-4px);box-shadow:var(--sh-lg)}
.plan-head{padding:1.3rem 1.5rem 1.15rem;background:var(--tier);
  border-bottom:var(--bd-w) solid var(--bd)}
.plan-head h3{color:var(--on-tier)}
.plan-head .tiny{color:var(--on-tier)}
.plan-price{padding:1.35rem 1.5rem;border-bottom:var(--bd-thin) solid var(--bd)}
.plan-price .amt{font-family:var(--f-display);font-size:2.1rem;font-weight:800;color:var(--ink);
  letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums;display:block}
.plan-price .per{font-family:var(--f-mono);font-size:.6875rem;color:var(--ink-3);
  display:block;margin-top:.55rem;letter-spacing:.03em}
.plan-body{padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.plan-body ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.65rem}
.plan-body li{font-size:.875rem;padding-left:1.5rem;position:relative;color:var(--ink-2)}
.plan-body li::before{content:"";position:absolute;left:0;top:.42rem;width:.7rem;height:.7rem;
  border-radius:2px;background:var(--tier);border:2px solid var(--bd)}
.plan-cash{margin-top:auto;padding:1.1rem 1.5rem;border-top:var(--bd-w) solid var(--bd);
  background:var(--band-yellow)}
.plan-cash b{font-family:var(--f-display);font-size:1.15rem;color:var(--ink);font-weight:800;
  font-variant-numeric:tabular-nums;display:block;letter-spacing:-.03em}
.plan-cash span{font-family:var(--f-mono);font-size:.5625rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);font-weight:700}
.tier-amber{--tier:var(--yellow);--on-tier:var(--on-yellow)}
.tier-coral{--tier:var(--orange);--on-tier:var(--on-orange)}
.tier-pink{--tier:var(--magenta);--on-tier:var(--on-magenta)}
.tier-violet{--tier:var(--violet);--on-tier:var(--on-violet)}
.tier-brand{--tier:var(--indigo);--on-tier:var(--on-indigo)}
.tier-teal{--tier:var(--teal);--on-tier:var(--on-teal)}

/* ---------- tables ---------- */
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:700px;font-size:.9375rem}
caption{text-align:left;padding:1.1rem 1.4rem;font-family:var(--f-mono);font-size:.6875rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--on-yellow);font-weight:700;
  border-bottom:var(--bd-w) solid var(--bd);background:var(--yellow)}
th,td{text-align:left;padding:.95rem 1.4rem;border-bottom:var(--bd-thin) solid var(--bd);
  vertical-align:top}
thead th{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);font-weight:700;white-space:nowrap;background:var(--band-grey)}
tbody th{color:var(--ink);font-weight:700;white-space:nowrap;font-size:.9375rem;
  font-family:var(--f-display)}
td.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}

/* ---------- FAQ ---------- */
.qa{display:flex;flex-direction:column;gap:1rem}
.qa>div{padding:1.55rem 1.7rem}
.qa h3{margin-bottom:.8rem}
.qa p{max-width:62ch;margin-top:.8rem}
.qa p:first-of-type{margin-top:0}

/* ---------- order summary ---------- */
.summary{overflow:hidden;max-width:46rem;box-shadow:var(--sh-lg)}
.summary-head{padding:1.6rem;border-bottom:var(--bd-w) solid var(--bd);background:var(--cyan)}
.summary-head .eyebrow{background:var(--paper);color:var(--ink)}
.summary-head h3{color:var(--on-cyan)}
.summary-body{padding:1.7rem;display:flex;flex-direction:column;gap:1.9rem}
.sgroup{display:flex;flex-direction:column;gap:.6rem}
.line{display:flex;justify-content:space-between;gap:1.5rem;align-items:baseline;font-size:.9375rem}
.line dt{color:var(--ink-2);margin:0}
.line dd{margin:0;font-family:var(--f-mono);font-variant-numeric:tabular-nums;
  color:var(--ink);text-align:right}
.line.total{border-top:var(--bd-w) solid var(--bd);padding-top:.9rem;margin-top:.4rem}
.line.total dt{color:var(--ink);font-weight:700;font-family:var(--f-display)}
.line.total dd{font-size:1.2rem;font-weight:700;font-family:var(--f-display)}
dl{margin:0;display:flex;flex-direction:column;gap:.5rem}
.check{display:flex;gap:.85rem;align-items:flex-start;font-size:.9375rem;cursor:pointer}
.check input{margin-top:.25rem;width:1.2rem;height:1.2rem;accent-color:var(--indigo);
  flex:none;cursor:pointer}

/* ---------- legal docs ---------- */
.doc{display:grid;grid-template-columns:minmax(0,1fr);gap:3rem;
  padding-block:clamp(2.5rem,6vw,4rem)}
@media (min-width:980px){
  .doc{grid-template-columns:16rem minmax(0,1fr);gap:4rem}
  .doc-nav{position:sticky;top:6.5rem;align-self:start;max-height:calc(100vh - 9.5rem);
    overflow-y:auto}
}
.doc-nav{background:var(--paper);border:var(--bd-w) solid var(--bd);border-radius:var(--r);
  padding:1rem;box-shadow:var(--sh-sm)}
.doc-nav ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}
.doc-nav a{font-family:var(--f-mono);font-size:.75rem;color:var(--ink);text-decoration:none;
  display:block;padding:.45rem .7rem;border-radius:var(--pill);
  border:var(--bd-thin) solid transparent}
.doc-nav a:hover{background:var(--yellow);color:var(--on-yellow);border-color:var(--bd)}
.doc-body{max-width:var(--measure)}
.doc-body h2{margin-top:2.9rem;padding-top:1.8rem;font-size:1.6rem;scroll-margin-top:7rem;
  border-top:var(--bd-w) solid var(--bd)}
.doc-body h2:first-child{margin-top:0;padding-top:0;border-top:0}
.doc-body h2 .cl{font-family:var(--f-mono);font-size:.625rem;color:var(--on-yellow);display:inline-block;
  letter-spacing:.14em;margin-bottom:.7rem;font-weight:700;text-transform:uppercase;
  background:var(--yellow);border:2px solid var(--bd);border-radius:var(--pill);padding:.25rem .7rem}
.doc-body h3{margin-top:1.8rem;font-size:1.0625rem}
.doc-body p,.doc-body ul,.doc-body ol{margin-top:1rem}
.doc-body ul,.doc-body ol{padding-left:1.35rem;display:flex;flex-direction:column;gap:.5rem}
.doc-body li{padding-left:.2rem}
.doc-body table{min-width:0;margin-top:1.3rem;border:var(--bd-w) solid var(--bd);
  border-radius:var(--r);display:block;overflow-x:auto;white-space:nowrap;box-shadow:var(--sh-sm)}
.doc-body table th,.doc-body table td{white-space:nowrap}

/* ---------- footer ---------- */
footer.site{padding-block:3.5rem;border-top:var(--bd-w) solid var(--bd);background:var(--band-grey)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:2.5rem}
.fcol{display:flex;flex-direction:column;gap:.55rem}
.fcol .eyebrow{margin-bottom:.6rem;align-self:flex-start;
  background:transparent;border-color:transparent;box-shadow:none;
  padding:0;color:var(--ink-3);letter-spacing:.18em}
.fcol a{font-size:.875rem;color:var(--ink-2);text-decoration:none}
.fcol a:hover{color:var(--indigo);text-decoration:underline;text-decoration-thickness:2px}
.fcol p{font-size:.875rem;color:var(--ink-2)}
.legal-line{margin-top:2.75rem;padding-top:1.9rem;border-top:var(--bd-thin) solid var(--bd);
  max-width:78ch}

.field{display:flex;flex-direction:column;gap:.45rem}
.field label{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);font-weight:700}
.field input,.field select,.field textarea{font-family:var(--f-body);font-size:.9375rem;
  padding:.75rem .9rem;border:var(--bd-thin) solid var(--bd);border-radius:8px;
  background:var(--paper);color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--indigo);outline:none;box-shadow:var(--sh-sm)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .btn:hover,.card:hover,.mod:hover,.plan:hover{transform:none}
}
