:root{
  --text:#1a1a1a; --muted:#444; --bg:#ffffff; --soft:#f3f6fb; --brand:#0b3d91; --brand-dark:#082b66;
  --accent:#fff3c4; --border:#9aa7bd; --warn-bg:#fff4e5; --warn-border:#8a4b00; --ok-bg:#e8f5ec; --ok-border:#1b5e20;
}
*{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:1.25rem;line-height:1.7;color:var(--text);background:var(--bg)}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.75rem 1rem;z-index:100;font-size:1.1rem}
.skip:focus{left:0}
a{color:#0b3d91;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
a:hover{color:#082b66;background:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:4px solid #ffbf00;outline-offset:3px}
.wrap{max-width:60rem;margin:0 auto;padding:0 1.25rem}
header.site{background:var(--brand);color:#fff;border-bottom:6px solid #ffbf00}
header.site .wrap{padding-top:1rem;padding-bottom:1rem}
.brand{display:inline-block;color:#fff;font-size:1.75rem;font-weight:800;text-decoration:none;padding:.25rem 0}
.brand:hover{color:#fff;background:transparent;text-decoration:underline}
.tagline{margin:.1rem 0 .75rem;font-size:1.05rem;color:#fff}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
nav.main a{display:block;min-height:48px;padding:.6rem 1rem;background:#fff;color:var(--brand-dark);font-weight:700;font-size:1.1rem;border-radius:8px;text-decoration:none;border:2px solid #fff}
nav.main a:hover{background:var(--accent);color:#000}
nav.main a[aria-current="page"]{background:#ffbf00;color:#000;border-color:#000}
main{padding:2rem 0 3rem}
h1{font-size:2.4rem;line-height:1.2;margin:0 0 1rem;color:var(--brand-dark)}
h2{font-size:1.8rem;line-height:1.3;margin:2.5rem 0 .75rem;color:var(--brand-dark)}
h3{font-size:1.45rem;line-height:1.3;margin:1.75rem 0 .5rem}
p,li{max-width:46rem}
li{margin-bottom:.5rem}
.lead{font-size:1.4rem;color:#222}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem;margin:1.5rem 0}
.card{background:var(--soft);border:2px solid var(--border);border-radius:12px;padding:1.25rem}
.card h2,.card h3{margin-top:0}
.btn{display:inline-block;min-height:52px;padding:.8rem 1.5rem;background:var(--brand);color:#fff;font-weight:700;font-size:1.2rem;border-radius:10px;text-decoration:none;border:3px solid var(--brand);cursor:pointer;font-family:inherit}
.btn:hover{background:var(--brand-dark);color:#fff}
.btn.secondary{background:#fff;color:var(--brand-dark)}
.btn.secondary:hover{background:var(--accent);color:#000}
.btn[disabled],.btn[aria-disabled="true"]{background:#e2e6ee;color:#333;border-color:#6b7280;cursor:not-allowed}
.notice{border-left:10px solid var(--warn-border);background:var(--warn-bg);padding:1rem 1.25rem;margin:1.5rem 0;border-radius:6px}
.notice.ok{border-left-color:var(--ok-border);background:var(--ok-bg)}
.notice p{margin:.4rem 0}
.pending{display:inline-block;background:#000;color:#fff;font-weight:800;padding:.1rem .6rem;border-radius:6px;font-size:1rem;letter-spacing:.03em}
.checklist{list-style:none;padding:0}
.checklist li{padding:.75rem 1rem .75rem 3rem;position:relative;background:var(--soft);border:2px solid var(--border);border-radius:8px;margin-bottom:.75rem}
.checklist li::before{content:"\2713";position:absolute;left:1rem;top:.55rem;font-weight:800;color:var(--ok-border);font-size:1.4rem}
.steps{padding-left:1.6rem}
.steps li{padding-left:.4rem}
.prompt{background:#101828;color:#fff;padding:1rem 1.25rem;border-radius:8px;font-size:1.15rem;margin:.75rem 0}
details{border:2px solid var(--border);border-radius:10px;margin:1rem 0;background:#fff}
summary{cursor:pointer;font-weight:700;font-size:1.3rem;padding:1rem 1.25rem;min-height:56px}
details>div{padding:0 1.25rem 1rem}
dl dt{font-weight:800;margin-top:1rem}
dl dd{margin:0 0 .5rem 0}
.meta{color:var(--muted);font-size:1.05rem}
.crumbs{font-size:1.05rem;margin-bottom:1rem}
form label{display:block;font-weight:700;margin:1rem 0 .3rem}
form input,form textarea{width:100%;max-width:32rem;font-size:1.2rem;padding:.75rem;border:3px solid #444;border-radius:8px;font-family:inherit;background:#fff;color:#000}
form input:disabled,form textarea:disabled{background:#eceff4;color:#222;border-color:#777}
footer.site{background:#10203f;color:#fff;padding:2rem 0;font-size:1.1rem}
footer.site a{color:#fff}
footer.site a:hover{color:#000}
footer.site ul{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
footer.site li{margin:0}
footer.site a{display:inline-block;min-height:44px;padding:.5rem 0}
@media (max-width:600px){h1{font-size:2rem}h2{font-size:1.55rem}nav.main a{flex:1 1 auto;text-align:center}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---- Guides, Stuck box, share box ---- */
.stuck{border:3px solid var(--brand);background:var(--soft);border-radius:12px;padding:1rem 1.25rem;margin:2rem 0}
.stuck h2,.stuck h3{margin:0 0 .5rem;font-size:1.5rem}
.share{border:3px dashed var(--brand);background:#fff;border-radius:12px;padding:1rem 1.25rem;margin:2rem 0}
.share h2,.share h3{margin:0 0 .5rem;font-size:1.5rem}
.guide-steps{counter-reset:s;list-style:none;padding:0}
.guide-steps li{counter-increment:s;position:relative;padding:.75rem 1rem .75rem 4rem;margin-bottom:.75rem;background:#fff;border:2px solid var(--border);border-radius:10px;max-width:46rem}
.guide-steps li::before{content:counter(s);position:absolute;left:.75rem;top:.6rem;width:2.4rem;height:2.4rem;line-height:2.4rem;text-align:center;font-weight:800;font-size:1.3rem;color:#fff;background:var(--brand);border-radius:50%}
.figure{margin:1.5rem 0;max-width:30rem}
.figure img{width:100%;height:auto;border:2px solid var(--border);border-radius:10px}
.print-only{display:none}
.sources li{overflow-wrap:anywhere}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}
@media print{
  @page{margin:.7in}
  body{font-size:16pt;line-height:1.5;color:#000;background:#fff}
  header.site,footer.site,nav.main,.skip,.crumbs,.no-print,.btn,.card .btn{display:none!important}
  main{padding:0}
  .wrap{max-width:none;padding:0}
  h1{font-size:26pt} h2{font-size:20pt;margin-top:1.2rem} h3{font-size:17pt}
  h1,h2,h3{color:#000;break-after:avoid}
  p,li{max-width:none}
  a{color:#000;text-decoration:underline}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:12pt;overflow-wrap:anywhere}
  .visually-hidden{display:none}
  .notice,.stuck,.share,.guide-steps li,.prompt,.card{break-inside:avoid;background:#fff!important;color:#000!important;border:2px solid #000!important}
  .prompt{font-weight:700}
  .guide-steps li::before{background:#fff;color:#000;border:2px solid #000}
  .print-only{display:block;margin-top:1rem;font-size:13pt}
  .figure img{border:1px solid #000}
}

/* ---- Kit intake form ---- */
.intake-form{max-width:40rem;margin:2rem 0}
.intake-form .q{margin:0 0 2.25rem;padding:0;border:0}
.intake-form fieldset.q{min-width:0}
.intake-form label,.intake-form legend{display:block;font-weight:700;font-size:1.2rem;margin:0 0 .35rem;padding:0}
.intake-form .help{margin:0 0 .6rem;color:var(--muted);font-size:1.05rem}
.intake-form .req{font-weight:400;color:var(--muted);font-size:1rem}
.intake-form input[type=text],.intake-form input[type=email],.intake-form textarea,.intake-form select{display:block;width:100%;max-width:40rem;box-sizing:border-box;font-size:1.2rem;padding:.75rem;border:3px solid #444;border-radius:8px;font-family:inherit;background:#fff;color:#000}
.intake-form select{min-height:3.2rem}
.intake-form textarea{min-height:7rem;resize:vertical}
.intake-form .choices{display:grid;gap:.5rem}
.intake-form label.choice{display:flex;align-items:flex-start;gap:.7rem;font-weight:400;font-size:1.15rem;margin:0;padding:.65rem .8rem;border:2px solid var(--border);border-radius:8px;background:var(--soft);cursor:pointer}
.intake-form label.choice input{width:1.5rem;height:1.5rem;margin:.1rem 0 0;flex:none;accent-color:var(--brand)}
.intake-form label.choice:has(input:checked){border-color:var(--brand);background:#e6edf9}
.intake-form .invalid input[type=text],.intake-form .invalid input[type=email],.intake-form .invalid textarea,.intake-form .invalid .choices{outline:3px solid #b00020;outline-offset:3px}
.intake-form .field-error{color:#b00020;font-weight:700;margin:.4rem 0 0}
.intake-form .submit-row{margin-top:1rem}
.intake-form .submit-row .btn{font-size:1.25rem;padding:.9rem 1.6rem;width:100%;max-width:24rem}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.notice.warn{background:var(--warn-bg);border-color:var(--warn-border)}
.copybox{display:block;width:100%;max-width:40rem;box-sizing:border-box;font-size:1.1rem;padding:.75rem;margin-top:.5rem;font-family:inherit}
.alt-email{margin:2rem 0}
