/* RaceCost design system, cleanup pass Oct 26, 2026.
   Light by default, dark when the device asks for it (prefers-color-scheme). One accent colour, one type scale,
   8px spacing rhythm, cards and tables share one radius/border. No web fonts (system stack = no layout shift, no extra request). */
:root{color-scheme:light dark;
 --bg:#f7f7f5;--surface:#ffffff;--surface-2:#f1f2f4;--ink:#16181d;--mut:#5b6270;--line:#e2e4e8;
 --acc:#c8361b;--acc-ink:#ffffff;--acc-soft:#fdeee9;--link:#1d4ed8;
 --ok:#137a4a;--ok-soft:#e7f6ee;--warn:#8a5a00;--warn-soft:#fdf3dc;--info:#1d4ed8;--info-soft:#e8efff;
 --r:12px;--r-sm:8px;--shadow:0 1px 2px rgba(16,24,40,.05);
 --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
 --measure:70ch}
@media (prefers-color-scheme:dark){:root{
 --bg:#0f1115;--surface:#171a21;--surface-2:#1d212a;--ink:#e9ecf1;--mut:#a3abb9;--line:#2a2f3a;
 --acc:#ff5a3c;--acc-ink:#140806;--acc-soft:#2a1611;--link:#93b7ff;
 --ok:#4fd69a;--ok-soft:#10261c;--warn:#f5c063;--warn-soft:#2a210d;--info:#93b7ff;--info-soft:#141f36;--shadow:none}}
*{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;font:1rem/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--link);text-underline-offset:2px}a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px;border-radius:4px}
.wrap{max-width:1120px;margin:0 auto;padding:0 var(--s4)}
h1{font-size:clamp(1.65rem,1.2rem + 2vw,2.35rem);line-height:1.15;margin:var(--s5) 0 var(--s3);letter-spacing:-.01em;max-width:28ch}
h2{font-size:clamp(1.3rem,1.15rem + .6vw,1.55rem);line-height:1.25;margin:var(--s7) 0 var(--s3);letter-spacing:-.005em}
h3{font-size:1.1rem;line-height:1.3;margin:var(--s5) 0 var(--s2)}
p,ul,ol{max-width:var(--measure)}li{margin:var(--s1) 0}
[id]{scroll-margin-top:var(--s4)}
.sub{color:var(--mut);font-size:.85rem;line-height:1.5}
.answer{font-size:1.075rem;max-width:var(--measure)}
.nt{color:var(--warn)}
.price{font-weight:700;font-size:1.08rem;font-variant-numeric:tabular-nums}
/* header + nav */
header.site{background:var(--surface);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:var(--s4);min-height:56px}
.logo{font-weight:800;color:var(--ink);text-decoration:none;font-size:1.2rem;letter-spacing:.01em;flex:none}.logo span{color:var(--acc)}
header.site nav{display:flex;gap:var(--s1);overflow-x:auto;scrollbar-width:none;margin-left:auto}
header.site nav::-webkit-scrollbar{display:none}
header.site nav a{color:var(--mut);text-decoration:none;font-size:.93rem;padding:var(--s2) var(--s3);border-radius:99px;white-space:nowrap}
header.site nav a:hover{color:var(--ink);background:var(--surface-2)}
.crumbs{font-size:.85rem;color:var(--mut);margin-top:var(--s4)}.crumbs a{color:var(--mut)}
/* layout with side table of contents (desktop) */
.layout{display:block}
@media (min-width:1080px){
 .layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:var(--s7);align-items:start}
 .layout aside.side{position:sticky;top:var(--s4);margin-top:var(--s6);max-height:calc(100vh - 32px);overflow:auto}
 .toc-m{display:none}
}
@media (max-width:1079px){aside.side{display:none}}
aside.side .toc-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700;margin:0 0 var(--s2)}
aside.side nav a{display:block;color:var(--mut);text-decoration:none;font-size:.9rem;padding:5px 10px;border-left:2px solid var(--line)}
aside.side nav a:hover,aside.side nav a.on{color:var(--ink);border-left-color:var(--acc)}
.toc-m{margin:var(--s4) 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.toc-m summary{cursor:pointer;padding:var(--s3) var(--s4);font-weight:600;list-style-position:inside}
.toc{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0 var(--s4) var(--s4);font-size:.9rem}
.toc a{color:var(--ink);text-decoration:none;background:var(--surface-2);border-radius:99px;padding:6px 12px}
.toc a:hover{background:var(--acc-soft)}
.toplink{font-size:.85rem}
/* cards, grid */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s5);margin:var(--s4) 0;box-shadow:var(--shadow)}
.card>h3:first-child,.card>h2:first-child{margin-top:var(--s1)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--s4)}
.grid .card{margin:0}
.feature{border-color:var(--acc);border-width:1px 1px 1px 4px}
/* at-a-glance summary */
.glance{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s5);margin:var(--s4) 0 var(--s5);box-shadow:var(--shadow)}
.glance dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3) var(--s5);margin:0}
.glance dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700}
.glance dd{margin:2px 0 0;font-weight:600}
.glance .actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
/* buttons */
.btn,button{display:inline-flex;align-items:center;gap:6px;min-height:44px;background:var(--acc);color:var(--acc-ink);border:1px solid var(--acc);border-radius:10px;padding:10px 16px;font-family:inherit;font-weight:600;font-size:.95rem;line-height:1.2;text-decoration:none;cursor:pointer}
.btn:hover,button:hover{filter:brightness(1.07)}
.btn.ghost,button.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover,button.ghost:hover{background:var(--surface-2);filter:none}
/* tables */
table{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:var(--s3) 0}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
th{background:var(--surface-2);color:var(--mut);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}
td.pv{white-space:nowrap}
/* badges (price tiers, status) */
.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 9px;border-radius:99px;border:1px solid var(--line);color:var(--mut);white-space:nowrap;vertical-align:middle}
.badge.t-official,.badge.ok{color:var(--ok);background:var(--ok-soft);border-color:transparent}
.badge.t-reported{color:var(--info);background:var(--info-soft);border-color:transparent}
.badge.t-last_year,.badge.nt{color:var(--warn);background:var(--warn-soft);border-color:transparent}
.badge.fresh{color:var(--ok);background:var(--ok-soft);border-color:transparent}
/* FAQ */
.qa{border-top:1px solid var(--line);padding:var(--s1) 0 var(--s2)}.qa h3{margin:var(--s4) 0 var(--s1)}.qa p{margin-top:0}
details.note{margin-top:4px}details.note summary{cursor:pointer;color:var(--mut);font-size:.8rem}
/* money links: disclosure + partner map slot (fixed height = no layout shift) */
.disclose{font-size:.85rem;color:var(--mut);background:var(--surface-2);border-radius:var(--r-sm);padding:var(--s2) var(--s3);max-width:var(--measure)}
.map-slot{display:block;width:100%;height:420px;contain:layout;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);overflow:hidden;margin:var(--s3) 0;position:relative}
.map-slot .facade{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);text-align:center;padding:var(--s5)}
.map-slot .facade p{margin:0;max-width:44ch}
.map-slot iframe{width:100%;height:100%;border:0;display:block}
/* reserved ad slot, not used. Fixed height so nothing shifts. */
.ad-slot{display:flex;align-items:center;justify-content:center;min-height:100px;margin:var(--s5) 0;background:var(--surface-2);border-radius:var(--r-sm);overflow:hidden}
.ad-slot::before{content:"Advertisement";font-size:.7rem;color:var(--mut);letter-spacing:.06em;text-transform:uppercase}
@media (min-width:800px){.ad-slot{min-height:90px}.ad-slot.rect{min-height:250px}}
/* budget builder */
.budget{border-color:var(--acc)}
.budget .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s3) var(--s4);margin:var(--s3) 0}
.budget label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:600}
.budget label .sub{font-weight:400}
.budget input,.budget select{font:inherit;font-size:1rem;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);width:100%}
.budget fieldset{border:0;padding:0;margin:var(--s4) 0 0}.budget legend{font-weight:700;padding:0;margin-bottom:var(--s1)}
.budget .total{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s2) var(--s5);background:var(--surface-2);border-radius:var(--r-sm);padding:var(--s3) var(--s4);margin:var(--s4) 0 var(--s2)}
.budget .total b{font-size:1.6rem;font-variant-numeric:tabular-nums}
.budget .lines{font-size:.9rem;margin:var(--s2) 0;padding-left:1.1em}
.budget .actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.budget .status{font-size:.85rem;color:var(--ok);min-height:1.3em}
html:not(.js) .js-only{display:none!important}html.js .no-js{display:none!important}
/* disabled alerts form (kept as-is, newsletter parked) */
form.news{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.news fieldset{border:0;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap;width:100%}
form.news input[type=email]{flex:1;min-width:200px;min-height:44px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:1rem}
form.news fieldset[disabled] input,form.news fieldset[disabled] button{opacity:.55;cursor:not-allowed}
.alerts{background:var(--surface-2);box-shadow:none}
/* preview-only markers */
.pend{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;padding:1px 7px;border-radius:99px;background:#5a1f12;color:#ffd2c7;border:1px dashed #ff4d2e;vertical-align:middle;text-transform:uppercase}
.preview-banner{margin:14px 0 0;padding:8px 12px;border:1px dashed var(--acc);border-radius:9px;background:var(--acc-soft);font-size:13px}
/* footer */
footer{margin:var(--s7) 0 0;border-top:1px solid var(--line);background:var(--surface);padding:var(--s5) 0 var(--s6);color:var(--mut);font-size:.85rem}
footer p{max-width:none}footer a{color:var(--mut)}
@media (max-width:640px){
 .hide-sm{display:none}
 .wrap{padding:0 14px}
 header.site .wrap{flex-wrap:wrap;gap:0;padding-top:6px}
 header.site nav{margin-left:-12px;width:calc(100% + 24px);padding:0 0 6px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
 .card,.glance{padding:var(--s4)}
 table.prices{border:0;background:none;overflow:visible}
 table.prices thead{display:none}
 table.prices,table.prices tbody{display:block}
 table.prices tr{display:grid;grid-template-columns:1fr auto;gap:4px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 10px}
 table.prices td{border:0;padding:0}
 table.prices td:first-child{grid-column:1/-1;font-weight:600}
 table.prices td.pv{grid-column:1}table.prices td.tv{grid-column:2;justify-self:end}
 table.prices td.sv{grid-column:1/-1}
 table:not(.prices){display:block;overflow-x:auto}
 .map-slot{height:380px}
}
@media print{
 header.site,footer,aside.side,.toc-m,.alerts,.map-slot,.disclose,.budget .actions,.no-print{display:none!important}
 body{background:#fff;color:#000}.card,.glance,table{box-shadow:none;border-color:#ccc}
 a{color:#000}
 body.print-budget main>*:not(.layout),body.print-budget .layout>article>*:not(#budget-card){display:none!important}
}
/* related races */
.related{margin-top:var(--s6)}
a.card.rel{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
a.card.rel:hover{border-color:var(--acc)}
.feature .actions{display:flex;flex-wrap:wrap;gap:var(--s2)}

/* homepage hero (shipped Oct 26). Text only: no images, no animation, fixed geometry. */
.hero{position:relative;margin:var(--s5) 0 var(--s6);padding:var(--s5) 0 var(--s2)}
.hero h1{margin:0 0 var(--s4);max-width:22ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin:0 0 var(--s4)}
.btn-lg{min-height:48px;padding:12px 20px;font-size:1rem}
@media (max-width:480px){.hero{margin-top:var(--s3)}.hero-cta .btn{flex:1 1 auto;justify-content:center}}
.fx-note{margin-top:var(--s2)}
/* D: big slogan, small keyword H1 */
.hero-d{margin:var(--s6) 0 var(--s5);padding:0 0 var(--s5);border-bottom:1px solid var(--line)}
.hero-d .hero-slogan{margin:0 0 var(--s3);font-size:clamp(2.1rem,1.4rem + 3.2vw,3.4rem);line-height:1.05;font-weight:800;letter-spacing:-.025em;max-width:16ch;color:var(--ink)}
.hero-d h1{margin:0 0 var(--s3);font-size:clamp(1.05rem,.98rem + .4vw,1.25rem);line-height:1.35;font-weight:600;letter-spacing:0;color:var(--mut);max-width:none}
.hero-d h1::before{content:"";display:inline-block;width:24px;height:3px;background:var(--acc);border-radius:2px;vertical-align:middle;margin-right:10px}
.hero-d .hero-cta{margin:0}
.now h2{margin-top:var(--s5)}
.hero-d .nw{white-space:nowrap}
@media (max-width:480px){.hero-d{margin-top:var(--s5)}}
/* clean homepage (shipped Oct 26): one rhythm (32 / 8 / 48), H2s quieter than the slogan, no inline styles */
.hero-clean{margin:var(--s6) 0 0;padding:0 0 var(--s6)}
.hero-clean h1{margin-bottom:var(--s5)}
.hero-clean .hero-cta{align-items:center;gap:var(--s3) var(--s5)}
.cta-link{font-weight:600}
.now h2{margin:var(--s6) 0 var(--s2);font-size:1.15rem;font-weight:700;color:var(--ink)}
.now .lead{margin:0 0 var(--s5);font-size:1.075rem;line-height:1.55}
.facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s4)}
.fact{display:flex;flex-direction:column;gap:var(--s1);margin:0;padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.fact-k{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);text-decoration:none}
.fact-k:hover{color:var(--acc)}
.fact-v{font-size:2rem;line-height:1.1;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:var(--s1) 0}
.fact-d{font-size:.95rem;line-height:1.45;color:var(--ink)}
.fact-s{font-size:.8rem;line-height:1.45;color:var(--mut);margin-top:var(--s1)}
.fact-s a{color:var(--mut)}
.now .updated{margin:var(--s4) 0 0;max-width:var(--measure)}
.blk .card .meta{display:block;margin-top:2px}
.blk .card .topics{margin-top:var(--s2)}
.blk h2{margin:var(--s7) 0 var(--s3);font-size:clamp(1.15rem,1.1rem + .3vw,1.3rem);font-weight:700}
.blk .grid .card{display:flex;flex-direction:column}
.blk .grid .card p{margin:var(--s2) 0 0}
.blk .grid .card .status{margin-top:auto;padding-top:var(--s2)}
.blk .grid .card.feature{grid-column:1/-1}
.blk .grid .card.feature .status{margin-top:var(--s2);padding-top:0}
.blk .card h3{margin:0 0 var(--s1)}
.blk .card .actions{margin-top:var(--s3)}
.show-sm{display:none}
@media (max-width:640px){.show-sm{display:block}}
@media (max-width:480px){.hero-clean{margin-top:var(--s5)}.hero-clean .hero-cta .btn{flex:1 1 100%}}
/* affiliate-readiness: short scannable lists, footer nav rows */
ul.tight{padding-left:1.2rem;max-width:var(--measure)}ul.tight li{margin:.25rem 0}
code{font-size:.9em;background:var(--surface-2);padding:0 .25em;border-radius:3px}
footer .foot-nav{line-height:1.9}

/* ===================== REDESIGN (preview Oct 26, 2026) =====================
   6-step type scale: 13 / 15 / 17 / 20 / 26 / 40-56 px. Section gap 56 (mobile) / 88 (desktop).
   Red only for the primary button and big prices. Pills: Official green, Reported blue, not tracked grey.
   Whole-card links in dark ink. Tap targets >= 44px. Dark mode kept. No web fonts. */
:root{--t1:.8125rem;--t2:.9375rem;--t3:1.0625rem;--t4:1.25rem;--t5:1.625rem;--t6:clamp(2.5rem,1.9rem + 3vw,3.5rem);--gap:56px;--grey:#eef0f3;--grey-ink:#4b5260}
@media (prefers-color-scheme:dark){:root{--grey:#232833;--grey-ink:#b5bcc8}}
@media (min-width:900px){:root{--gap:88px}}
body{font-size:var(--t3);line-height:1.6}
h1{font-size:clamp(var(--t5),1.3rem + 1.6vw,2.5rem);line-height:1.15;max-width:30ch}
h2{font-size:var(--t5);line-height:1.2;margin:var(--gap) 0 var(--s3)}
h3,.h3{font-size:var(--t4);line-height:1.3}
.sub,.src,.crumbs,footer{font-size:var(--t1)}
.answer{font-size:var(--t3)}
th{font-size:var(--t1)}
table{font-size:var(--t2)}
.price{font-size:var(--t4);font-weight:800;color:var(--acc);font-variant-numeric:tabular-nums}
.mutd{color:var(--grey-ink)}
.nt{color:var(--grey-ink)}
.src{color:var(--mut);margin:var(--s2) 0 0;line-height:1.5}.src a{color:var(--mut)}
a.ink,.ink{color:var(--ink);font-weight:700;text-decoration:none}a.ink:hover{text-decoration:underline}
/* pills */
.pill{display:inline-block;font-size:var(--t1);font-weight:700;line-height:1.5;padding:1px 9px;border-radius:99px;white-space:nowrap;vertical-align:baseline;background:var(--grey);color:var(--grey-ink)}
.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.info{background:var(--info-soft);color:var(--info)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.mut{background:var(--grey);color:var(--grey-ink)}
.badge.nt{background:var(--grey);color:var(--grey-ink)}
/* nav: 4 items, fits 390px with no scrolling, 44px targets */
header.site .wrap{min-height:56px}
header.site nav.mainnav{display:flex;gap:2px;margin-left:auto;overflow:visible}
header.site nav.mainnav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;font-size:var(--t2);color:var(--ink);font-weight:600;border-radius:10px;text-align:center}
header.site nav.mainnav a[aria-current]{background:var(--surface-2);box-shadow:inset 0 -2px 0 var(--acc)}
@media (max-width:640px){
 header.site .wrap{flex-wrap:wrap;padding-top:4px;min-height:0}
 header.site .logo{min-height:44px;display:flex;align-items:center}
 header.site nav.mainnav{display:grid;grid-template-columns:auto auto auto auto;justify-content:space-between;width:100%;margin:0 0 4px;-webkit-mask-image:none;mask-image:none}
 header.site nav.mainnav a{padding:0 6px;font-size:var(--t1);white-space:nowrap}
}
/* home hero */
.hero2{margin:var(--s6) 0 0}
.eyebrow{display:inline-block;margin:0 0 var(--s4);font-size:var(--t1);font-weight:600;color:var(--mut);background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:4px 12px}
.hero2 .hero-slogan{margin:0 0 var(--s3);font-size:var(--t6);line-height:1.04;font-weight:800;letter-spacing:-.025em;max-width:15ch}
.hero2 h1{margin:0 0 var(--s3);font-size:var(--t3);line-height:1.4;font-weight:700;color:var(--mut);max-width:none;letter-spacing:0}
.hero2 h1::before{content:"";display:inline-block;width:20px;height:3px;background:var(--acc);border-radius:2px;vertical-align:middle;margin-right:8px}
.hero-sub{font-size:var(--t4);line-height:1.45;margin:0 0 var(--s5);max-width:44ch}
.picker{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:var(--s4);max-width:720px;box-shadow:var(--shadow)}
.picker-h{margin:0 0 var(--s3);font-weight:800;font-size:var(--t4)}
.chips{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s2);max-width:none}
.chips li{margin:0}
.chip{display:flex;flex-direction:column;justify-content:center;min-height:56px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;background:var(--bg)}
.chip b{font-size:var(--t2)}.chip span{font-size:var(--t1);color:var(--mut)}
.chip:hover{border-color:var(--ink)}
.chip.low b{font-weight:600}
@media (max-width:480px){.chips{grid-template-columns:1fr 1fr}}
.btn-block{display:flex;width:100%;justify-content:center;min-height:52px;font-size:var(--t3)}
.updated{margin:var(--s3) 0 0}
.proof{list-style:none;padding:0;margin:var(--s5) 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s2);max-width:none}
.proof li{margin:0}
.proof a{display:flex;flex-direction:column;gap:2px;min-height:44px;padding:10px 14px;border-left:3px solid var(--acc);background:var(--surface);border-radius:0 10px 10px 0;color:var(--ink);text-decoration:none}
.proof b{font-size:var(--t4);font-variant-numeric:tabular-nums}.proof span{font-size:var(--t1);color:var(--mut)}
/* home sections */
.blk{margin:var(--gap) 0 0}.blk>h2:first-child,.blk .sh h2{margin:0}
.blk.first{margin-top:var(--gap)}
.sh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s2) var(--s4);margin:0 0 var(--s3)}
.sh a{font-weight:600;font-size:var(--t2);min-height:44px;display:inline-flex;align-items:center}
.blk h2{font-size:var(--t5);margin:0 0 var(--s3)}
.pcards,.rcards{list-style:none;padding:0;margin:var(--s4) 0 var(--s3);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s3);max-width:none}
.pcards li,.rcards li{margin:0}
.pcard{display:flex;flex-direction:column;gap:2px;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.pc-k{font-size:var(--t1);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);text-decoration:none;min-height:24px}
.pc-v{font-size:2.5rem;line-height:1.1;font-weight:800;color:var(--acc);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pcard.date .pc-v{color:var(--ink)}
.pc-d{font-size:var(--t2)}
.rcards li:first-child{grid-column:1/-1}
.rcard{display:flex;flex-direction:column;gap:4px;height:100%;padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none}
.rcard:hover{border-color:var(--ink)}
.rcard.feature{border-left:4px solid var(--acc)}
.rc-t{font-size:var(--t4)}.rc-p{font-size:var(--t3)}.rc-s{font-size:var(--t1);color:var(--mut)}.rc-o{margin-top:auto;padding-top:4px}
.rank{list-style:none;padding:0;margin:var(--s3) 0;max-width:none}
.rank li{margin:0 0 var(--s2);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.rank>li>a{display:grid;grid-template-columns:36px 1fr auto;gap:var(--s3);align-items:center;min-height:44px}
.rk{width:32px;height:32px;border-radius:99px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-weight:800}
.wn,.wp{display:flex;flex-direction:column}.wp{text-align:right}
.band{margin:var(--gap) 0 0;padding:var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:16px}
.band h2{margin:0 0 var(--s3)}
.how{list-style:none;padding:0;margin:0 0 var(--s3);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s4);max-width:none}
.how li{display:flex;flex-direction:column;gap:2px;margin:0}.how span{color:var(--mut);font-size:var(--t2)}
/* race template */
.cw{margin:var(--s4) 0;padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--acc);border-radius:var(--r);max-width:720px}
.cw p{margin:0}
.cw-k{font-size:var(--t1);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}
.cw-v{font-size:var(--t6);line-height:1.05;font-weight:800;color:var(--acc);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cw-v.small{font-size:var(--t5);color:var(--ink);margin:4px 0}
.cw-l{font-size:var(--t4);color:var(--mut);font-weight:600;margin-left:10px;letter-spacing:0}
.cw-d{font-size:var(--t3);font-weight:600;margin-top:4px!important}
.cw-o{margin-top:var(--s2)!important;font-size:var(--t2)}
.cw-a{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)!important}
.answer.short{line-height:1.7}
.kf{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s2);margin:var(--s4) 0 0;max-width:720px}
.kf div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.kf dt{font-size:var(--t1);font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.kf dd{margin:2px 0 0;font-weight:600;font-size:var(--t2)}
.plist{list-style:none;padding:0;margin:var(--s3) 0;max-width:none;display:grid;gap:var(--s2)}
.pi{margin:0;display:grid;grid-template-columns:1fr auto;gap:2px var(--s4);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.pi-what{display:flex;flex-direction:column}.pi-num{text-align:right;display:flex;flex-direction:column}
.pi .src{grid-column:1/-1;margin:2px 0 0}
.tierkey{margin-top:var(--s2)}
.buy{padding-left:1.2rem}
.steps li{margin:var(--s2) 0}
.qa .more{display:inline-flex;align-items:center;min-height:44px;font-size:var(--t2)}
footer .foot-brand{font-size:var(--t2);color:var(--ink)}footer .foot-brand .logo{margin-right:8px}
footer .foot-nav a{display:inline-block;min-height:32px;line-height:32px}
/* stacked rows on phones (every table) */
@media (max-width:640px){
 table.rl{display:block;border:0;background:none;overflow:visible}
 table.rl thead{display:none}
 table.rl tbody{display:block}
 table.rl tr{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin:0 0 10px}
 table.rl td{display:block;border:0;padding:3px 0}
 table.rl td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-size:var(--t1);font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
 table.rl td:first-child{font-weight:600}
 table.rl td.hide-sm{display:none}
 .pi{grid-template-columns:1fr}.pi-num{text-align:left;flex-direction:row;align-items:baseline;gap:8px}
 .rank>li>a{grid-template-columns:32px 1fr}.wp{grid-column:2;text-align:left}
 .cw{padding:var(--s4)}
}
@media (min-width:1000px){.hero2{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--s4) var(--s7);align-items:center}.hero2 .proof{grid-column:1/-1}.picker{max-width:none}}
@media (max-width:640px){.eyebrow{font-size:12px}}
.proof a{height:100%}
.toc a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px}aside.side nav a{display:flex;align-items:center;min-height:44px;padding:0 10px}header.site .logo{display:flex;align-items:center;min-height:44px}
.oslist{list-style:none;padding:0;margin:var(--s3) 0;max-width:none;display:grid;gap:var(--s2)}.oslist li{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.oslist .osw{font-weight:600}.oslist .sub{flex-basis:100%}
/* ---- fix1 (Chief vet) ---- */
.hero2 h1{font-size:clamp(1.125rem,1rem + .6vw,1.375rem);color:var(--ink);line-height:1.3}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;column-gap:4px}
.crumbs a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 4px}
details.fold{border-top:1px solid var(--line);margin:0}
details.fold>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:44px;padding:var(--s2) 0}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:"+";font-size:1.4rem;font-weight:700;color:var(--acc);flex:none;line-height:1}
details.fold[open]>summary::after{content:"−"}
details.fold>summary h2{margin:0;font-size:1.15rem}
details.fold>.fold-b{padding-bottom:var(--s4)}
details.fold:last-of-type{border-bottom:1px solid var(--line)}
