/* =========================================================================
   CareHub marketing site — site styles.
   Palette + light/dark themes come from brand-tokens.css (loaded first).
   This file adds the non-colour design tokens and every component, all
   consuming the --brand-* tokens so the whole site adapts to the theme.
   ========================================================================= */

/* Self-hosted brand font — Montserrat for the display/brand register only.
   Body text uses the system UI stack (zero bytes, native legibility). */
@font-face{
  font-family:"Montserrat";
  src:url("./Montserrat-Variable.ttf") format("truetype-variations");
  font-weight:100 900; font-style:normal; font-display:swap;
}

:root{
  /* Type — display uses Montserrat; body uses the platform UI face. */
  --font-display:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Semantic text colours (AA/AAA on the current ground). Derived from the palette. */
  --text:#2A3744;        /* body — ~10:1 on white (AAA) */
  --text-2:#4C5763;      /* secondary — ~7:1 on white (AAA large / AA normal) */

  /* A "dark band" (hero-adjacent CTA + footer grounds). Navy on light; an
     elevated surface on dark, so the design intent survives both themes. */
  --band:var(--brand-navy);
  --band-ink:#F4F8FC;
  --band-ink-2:#B9C7D8;
  --band-line:rgba(255,255,255,.14);

  /* Spacing scale (4px base). */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s20:80px; --s24:96px;

  --maxw:1140px;
  --r-card:16px; --r-btn:12px; --r-pill:999px;
  --shadow:0 18px 44px -24px rgba(20,49,92,.30);
  --shadow-sm:0 10px 26px -18px rgba(20,49,92,.34);
  --ring:0 0 0 4px rgba(27,92,153,.32);
}

/* Dark theme: re-point the semantic text + band tokens. Mirrors the exact
   triggers brand-tokens.css uses (explicit toggle OR OS preference). */
:root[data-theme="dark"]{
  --text:#DCE6F1; --text-2:#A6B7C8;
  --band:#0A1A2F; --band-ink:#F4F8FC; --band-ink-2:#9DB0C2;
  --band-line:rgba(255,255,255,.10);
  --shadow:0 18px 44px -24px rgba(0,0,0,.6);
  --shadow-sm:0 10px 26px -18px rgba(0,0,0,.55);
  --ring:0 0 0 4px rgba(61,134,203,.42);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --text:#DCE6F1; --text-2:#A6B7C8;
    --band:#0A1A2F; --band-ink:#F4F8FC; --band-ink-2:#9DB0C2;
    --band-line:rgba(255,255,255,.10);
    --shadow:0 18px 44px -24px rgba(0,0,0,.6);
    --shadow-sm:0 10px 26px -18px rgba(0,0,0,.55);
    --ring:0 0 0 4px rgba(61,134,203,.42);
  }
}

/* ---- base ---- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{
  margin:0;background:var(--brand-bg);color:var(--text);
  font-family:var(--font-body);font-size:18px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,.wordmark{font-family:var(--font-display);color:var(--brand-ink);letter-spacing:-.015em}
a{color:var(--brand-primary)}
img,svg{max-width:100%}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:clamp(20px,5vw,64px)}

/* skip link */
.skip{position:absolute;left:16px;top:-48px;z-index:100;background:var(--brand-primary);
  color:var(--brand-on-primary);padding:10px 16px;border-radius:10px;font-weight:600;
  text-decoration:none;transition:top .15s}
.skip:focus{top:16px}

/* ---- header ---- */
.site{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px clamp(20px,5vw,64px);max-width:var(--maxw);margin:0 auto}
.wordmark{display:inline-flex;align-items:center;gap:11px;text-decoration:none;
  color:var(--brand-ink);font-weight:600;font-size:1.4rem}
.wordmark img{display:block;height:34px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(12px,2.6vw,26px)}
.nav a{color:var(--brand-ink);text-decoration:none;font-weight:500;font-size:1rem}
.nav a:hover{color:var(--brand-primary)}
.nav .nav-cta{padding:9px 16px;background:var(--brand-primary);color:var(--brand-on-primary);
  border-radius:10px;font-weight:600}
.nav .nav-cta:hover{background:var(--brand-blue-hover);color:#fff}
:root[data-theme="dark"] .nav .nav-cta:hover{color:var(--brand-on-primary)}
.theme-toggle{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;
  background:transparent;border:1.5px solid var(--brand-line);border-radius:10px;color:var(--brand-ink);
  cursor:pointer}
.theme-toggle:hover{border-color:var(--brand-primary);color:var(--brand-primary)}
.theme-toggle svg{width:20px;height:20px}
.theme-toggle .moon{display:none}
:root[data-theme="dark"] .theme-toggle .sun{display:none}
:root[data-theme="dark"] .theme-toggle .moon{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-toggle .sun{display:none}
  :root:not([data-theme="light"]) .theme-toggle .moon{display:block}
}
@media (max-width:640px){ .nav a:not(.nav-cta){display:none} }

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 24px;font:inherit;font-weight:600;border-radius:var(--r-btn);
  text-decoration:none;cursor:pointer;border:1.5px solid var(--brand-primary);
  background:var(--brand-primary);color:var(--brand-on-primary);
  transition:background .15s,transform .12s,box-shadow .15s;box-shadow:0 12px 24px -14px rgba(27,92,153,.8)}
.btn:hover{background:var(--brand-blue-hover);border-color:var(--brand-blue-hover);transform:translateY(-1px);color:#fff}
:root[data-theme="dark"] .btn:hover{color:var(--brand-on-primary)}
.btn:active{transform:translateY(0)}
.btn[disabled]{opacity:.6;cursor:progress;transform:none}
.btn.ghost{background:transparent;color:var(--brand-primary);box-shadow:none}
.btn.ghost:hover{background:var(--brand-blue-subtle);color:var(--brand-primary);transform:none}
.btn.on-band{background:#fff;color:var(--brand-navy);border-color:#fff;box-shadow:none}
.btn.on-band:hover{background:#EAF1F8;color:var(--brand-navy)}

/* ---- eyebrow + section headings ---- */
.eyebrow{margin:0 0 16px;color:var(--brand-primary);font-weight:700;font-size:.8rem;
  letter-spacing:.13em;text-transform:uppercase;font-family:var(--font-display)}
.section{padding-block:clamp(48px,7vw,88px)}
.section-head{max-width:640px;margin:0 auto clamp(28px,4vw,44px);text-align:center}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;margin:0 0 12px}
.section-head p{color:var(--text-2);margin:0;font-size:1.08rem}
h2{font-weight:700}

/* ---- forms (waitlist + partner share this) ---- */
.signup{max-width:520px}
.field-row{display:flex;gap:10px;flex-wrap:wrap}
.input,.select,.textarea{
  width:100%;padding:14px 16px;font:inherit;color:var(--brand-ink);background:var(--brand-bg);
  border:1.5px solid var(--brand-line);border-radius:var(--r-btn);
  transition:border-color .15s,box-shadow .15s}
.field-row .input{flex:1 1 220px;min-width:0}
.textarea{min-height:96px;resize:vertical}
.input::placeholder,.textarea::placeholder{color:var(--brand-muted)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{
  outline:none;border-color:var(--brand-primary);box-shadow:var(--ring)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field > span{font-weight:600;font-size:.95rem;color:var(--brand-ink)}
.field .opt{color:var(--brand-muted);font-weight:500}
.microcopy{margin:14px 2px 0;font-size:.9rem;color:var(--text-2)}
.status{margin:12px 2px 0;font-size:.96rem;font-weight:600;min-height:1.2em}
.status.ok{color:var(--brand-green-hover)}
.status.err{color:#C0553B}
:root[data-theme="dark"] .status.err{color:#F0A28C}
form.done .field-row,form.done .field,form.done .microcopy,form.done .btn{display:none}
/* Keep the live region present (so it still announces) but clipped, letting the
   .done-note be the single visible confirmation. */
form.done .status{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.done-note{display:none;margin:0;font-size:1.05rem;font-weight:600;color:var(--brand-green-hover)}
form.done .done-note{display:block}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);
  align-items:center;padding-block:clamp(28px,6vw,72px) clamp(40px,7vw,88px)}
.hero h1{font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.08;font-weight:700;
  margin:0;text-wrap:balance}
.hero .lede{margin:22px 0 28px;font-size:clamp(1.06rem,1.7vw,1.22rem);color:var(--text-2);max-width:40ch}
.hero-visual{position:relative;display:flex;justify-content:center}

/* Reserved human-photo slot: illustrated brand placeholder until a real shot lands. */
.photo-slot{position:absolute;left:-6%;bottom:-4%;width:44%;max-width:220px;
  aspect-ratio:4/5;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);
  border:1px solid var(--brand-line);background:var(--brand-blue-subtle);display:none}
@media (min-width:900px){ .photo-slot{display:block} }

/* Phone frame — houses the vignettes; structured so a real screenshot drops in. */
.phone{width:clamp(230px,30vw,272px);aspect-ratio:9/18.6;background:var(--brand-bg);
  border:2px solid var(--brand-line);border-radius:34px;box-shadow:var(--shadow);
  padding:14px 12px;position:relative;overflow:hidden}
.phone::before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);
  width:78px;height:6px;border-radius:99px;background:var(--brand-line)}
.phone-screen{height:100%;padding-top:20px;display:flex;flex-direction:column;gap:10px}

/* A vignette "card" inside the phone. */
.vig{background:var(--brand-surface);border:1px solid var(--brand-line);border-radius:12px;
  padding:11px 12px;display:flex;align-items:center;gap:10px}
.vig .vig-ic{flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:var(--brand-blue-subtle);
  display:grid;place-items:center;color:var(--brand-primary)}
.vig .vig-ic svg{width:17px;height:17px}
.vig .vig-body{min-width:0}
.vig .vig-t{font-weight:700;font-size:.82rem;color:var(--brand-ink);font-family:var(--font-display)}
.vig .vig-s{font-size:.72rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Checklist vignette = the SIGNATURE + the one orchestrated motion. */
.vig-check{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--brand-surface);
  border:1px solid var(--brand-line);border-radius:12px}
.check-token{flex:0 0 auto;width:22px;height:22px;border-radius:7px;border:2px solid var(--brand-line);
  background:var(--brand-bg);display:grid;place-items:center;position:relative}
.check-token svg{width:13px;height:13px;color:#fff;opacity:0}
.vig-check.done .check-token{background:var(--brand-green);border-color:var(--brand-green)}
.vig-check.done .check-token svg{opacity:1}
.vig-check .lbl{font-size:.82rem;color:var(--brand-ink);font-weight:600}
.vig-check.done .lbl{color:var(--text-2)}
.avatars{margin-left:auto;display:flex}
.avatars i{width:20px;height:20px;border-radius:50%;border:2px solid var(--brand-surface);
  margin-left:-7px;display:block;font-style:normal}
.avatars i:nth-child(1){background:var(--brand-primary)}
.avatars i:nth-child(2){background:var(--brand-green)}

/* Motion: the checklist checks off on load (JS adds .done in sequence). */
.checklist-vig{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.animate .vig-check{opacity:0;transform:translateY(6px);animation:vigin .5s ease forwards}
.animate .vig-check:nth-child(1){animation-delay:.10s}
.animate .vig-check:nth-child(2){animation-delay:.28s}
.animate .vig-check:nth-child(3){animation-delay:.46s}
.vig-check.done .check-token{animation:tokpop .4s ease}
.vig-check .check-token{transition:background .25s ease,border-color .25s ease}
.vig-check .check-token svg{transition:opacity .25s ease}
@keyframes vigin{to{opacity:1;transform:none}}
@keyframes tokpop{0%{transform:scale(.6)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .animate .vig-check{opacity:1;transform:none;animation:none}
  .animate .vig-check .check-token{animation:none}
}

@media (max-width:820px){
  .hero{grid-template-columns:1fr;text-align:left}
  .hero-visual{order:-1;margin-bottom:8px}
  .photo-slot{display:none}
  .hero h1{font-size:clamp(2rem,8vw,2.6rem)}
}

/* =========================================================================
   FEATURES (vignette-supported row) — the signature check-token as bullets
   ========================================================================= */
.features{border-top:1px solid var(--brand-line)}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px 28px}
.feat{display:flex;flex-direction:column;gap:8px}
.feat-ic{width:44px;height:44px;border-radius:12px;background:var(--brand-blue-subtle);
  display:grid;place-items:center;color:var(--brand-primary);margin-bottom:4px}
.feat-ic svg{width:24px;height:24px}
.feat h3{margin:0;font-size:1.15rem;font-weight:700}
.feat p{margin:0;color:var(--text-2);font-size:.98rem}

/* check-token list (used in plans + resources) */
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.check-list li{position:relative;padding-left:32px;color:var(--text);line-height:1.5}
.check-list li::before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;
  border-radius:6px;background:var(--brand-green);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/13px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/13px no-repeat}

/* =========================================================================
   PLANS — one Premium plan + Add-ons (Mail Q4 2026 / Legal after launch)
   ========================================================================= */
.plans{border-top:1px solid var(--brand-line)}
.plan-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:start;max-width:960px;margin:0 auto}
.plan{position:relative;background:var(--brand-bg);border:1.5px solid var(--brand-primary);
  border-radius:18px;padding:30px 28px;box-shadow:var(--shadow-sm)}
.plan .badge{position:absolute;top:-13px;left:28px;background:var(--brand-primary);
  color:var(--brand-on-primary);font-size:.72rem;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill);font-family:var(--font-display)}
.plan h3{margin:0 0 6px;font-size:1.5rem;font-weight:700}
.plan .plan-sub{margin:0 0 20px;color:var(--text-2)}
.plan .btn{width:100%;margin-top:22px}

.addons{display:flex;flex-direction:column;gap:16px}
.addon{background:var(--brand-surface);border:1px solid var(--brand-line);border-radius:16px;padding:20px 22px}
.addon-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.addon-head h3{margin:0;font-size:1.12rem;font-weight:700}
.tag-soon{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 9px;border-radius:var(--r-pill);background:var(--brand-blue-subtle);
  color:var(--brand-primary);font-family:var(--font-display);white-space:nowrap}
.addon p{margin:0;color:var(--text-2);font-size:.96rem}
.addon .req{margin-top:8px;font-size:.84rem;color:var(--brand-muted)}
.plans-note{text-align:center;color:var(--text-2);font-size:.95rem;margin:28px auto 0;max-width:560px}
@media (max-width:820px){ .plan-wrap{grid-template-columns:1fr;max-width:460px} }

/* =========================================================================
   DARK BANDS (secondary CTA → /partners, and generic bands)
   ========================================================================= */
.band{background:var(--band);color:var(--band-ink)}
.band h2,.band h3{color:var(--band-ink)}
.band p{color:var(--band-ink-2)}
.band a:not(.btn){color:#fff;text-decoration:underline}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;
  flex-wrap:wrap;padding-block:clamp(32px,5vw,48px)}
.cta-band .cta-copy{max-width:60ch}
.cta-band h2{margin:0 0 6px;font-size:clamp(1.3rem,2.6vw,1.7rem)}
.cta-band p{margin:0}

/* =========================================================================
   FAQ
   ========================================================================= */
.faq{border-top:1px solid var(--brand-line)}
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq details{border:1px solid var(--brand-line);border-radius:12px;background:var(--brand-bg);overflow:hidden}
.faq summary{cursor:pointer;list-style:none;padding:16px 20px;font-weight:700;color:var(--brand-ink);
  font-family:var(--font-display);display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--brand-primary);font-weight:700;font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:0;padding:0 20px 18px;color:var(--text);line-height:1.6}
.faq details p a{color:var(--brand-primary)}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-foot{background:var(--band);color:var(--band-ink-2)}
.site-foot .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;
  flex-wrap:wrap;padding-block:32px}
.site-foot .foot-brand{display:flex;align-items:center;gap:10px;color:var(--band-ink);font-weight:600;
  font-family:var(--font-display)}
.site-foot .foot-brand img{height:26px}
.site-foot nav{display:flex;gap:22px;flex-wrap:wrap}
.site-foot a{color:var(--band-ink-2);text-decoration:none}
.site-foot a:hover{color:#fff}
.site-foot .foot-note{width:100%;color:var(--band-ink-2);font-size:.86rem;opacity:.85;
  border-top:1px solid var(--band-line);padding-top:16px;margin-top:4px}

/* =========================================================================
   PARTNERS page
   ========================================================================= */
.partner-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.pcard{background:var(--brand-bg);border:1px solid var(--brand-line);border-radius:18px;
  padding:28px 26px;box-shadow:var(--shadow-sm);height:100%}
.pcard.referral{border-top:4px solid var(--brand-green)}
.pcard.professional{border-top:4px solid var(--brand-primary)}
.pcard h3{margin:0 0 6px;font-size:1.3rem}
.pcard .who{color:var(--text-2);font-size:.95rem;margin:0 0 16px}
.pcard .lead-note{background:var(--brand-blue-subtle);color:var(--brand-ink);border-radius:12px;
  padding:12px 14px;font-size:.92rem;font-weight:600;margin:0 0 16px}
.form-card{max-width:640px;margin:0 auto;background:var(--brand-surface);
  border:1px solid var(--brand-line);border-radius:18px;padding:clamp(24px,4vw,36px)}
@media (max-width:760px){ .partner-cols{grid-template-columns:1fr} }

/* =========================================================================
   DOC pages (privacy / terms) — plain, readable
   ========================================================================= */
.doc{max-width:720px;margin:0 auto;padding:clamp(28px,6vw,64px) clamp(20px,5vw,40px)}
.doc h1{font-size:clamp(1.8rem,5vw,2.6rem);margin:0 0 10px}
.doc h2{font-size:1.25rem;margin:32px 0 10px}
.doc p,.doc li{color:var(--text-2);margin:0 0 16px;line-height:1.7}
.doc a{color:var(--brand-primary)}
.doc .back{display:inline-block;margin-bottom:24px;color:var(--brand-primary);text-decoration:none;font-weight:600}
.doc .placeholder{background:var(--brand-surface);border:1px dashed var(--brand-line);
  border-radius:12px;padding:16px 18px;color:var(--brand-muted);font-size:.95rem}

/* =========================================================================
   RESOURCES — index cards + checklist articles
   ========================================================================= */
.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.resource-card{display:flex;flex-direction:column;background:var(--brand-bg);border:1px solid var(--brand-line);
  border-radius:16px;padding:24px;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;
  transition:transform .12s,box-shadow .15s}
.resource-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.resource-card h3{margin:0 0 8px;font-size:1.2rem;color:var(--brand-ink)}
.resource-card p{margin:0 0 16px;color:var(--text-2);font-size:.96rem}
.resource-card .go{margin-top:auto;color:var(--brand-primary);font-weight:600}

.breadcrumb{font-size:.9rem;color:var(--text-2);margin:0 0 14px}
.breadcrumb a{color:var(--brand-primary);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.article{max-width:760px;margin:0 auto}
.article h1{font-size:clamp(1.9rem,4.5vw,2.7rem);line-height:1.12;margin:0 0 14px}
.article .standfirst{font-size:1.16rem;color:var(--text-2);margin:0 0 22px;line-height:1.55}
.article h2{font-size:clamp(1.3rem,2.6vw,1.6rem);margin:38px 0 14px}
.article h3{font-size:1.1rem;margin:24px 0 10px}
.article > p{color:var(--text);line-height:1.7;margin:0 0 16px}

/* Actionable checklist: EMPTY squares the reader ticks (on screen or on paper),
   distinct from the green "done" check-token used for features. */
.todo-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:12px}
.todo-list li{position:relative;padding-left:38px;color:var(--text);line-height:1.55}
.todo-list li::before{content:"";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:6px;
  border:2px solid var(--brand-primary);background:transparent}
.todo-list li strong{color:var(--brand-ink)}

.disclaimer{display:flex;gap:10px;align-items:flex-start;background:var(--brand-surface);
  border:1px solid var(--brand-line);border-radius:12px;padding:12px 16px;font-size:.92rem;
  color:var(--text-2);margin:0 0 26px}
.disclaimer svg{flex:0 0 auto;width:20px;height:20px;color:var(--brand-primary);margin-top:1px}

.download-slot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--brand-blue-subtle);border:1px solid var(--brand-line);border-radius:14px;
  padding:16px 20px;margin:30px 0}
.download-slot .dl-copy{font-size:.95rem;color:var(--brand-ink)}
.download-slot .dl-copy .opt{color:var(--brand-muted);font-weight:500}

.print-only{display:none}

/* =========================================================================
   PRINT (base + resource articles)
   ========================================================================= */
@media print{
  .site,.site-foot,.theme-toggle,.cta-band,.breadcrumb,.download-slot,.no-print{display:none !important}
  body{color:#000;background:#fff;font-size:12pt}
  a{color:#000;text-decoration:none}
  .check-list li::before{background:#000}
  .todo-list li::before{border-color:#000}
  .disclaimer{border-color:#000;color:#000;background:#fff}
  .print-only{display:block;margin-top:24px;padding-top:12px;border-top:1px solid #000;font-size:10pt;color:#000}
}
