/* PodiumStay. Type: Newsreader (headlines) + Archivo (labels, numbers, body), self-hosted, OFL, latin subset.
   Palette: Carbon / Graphite / Line / Bone / Stone / Ash + Champagne used sparingly (one filled button per screen, fine rules). */
@font-face{font-family:"Newsreader";src:url(/fonts/newsreader.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(/fonts/newsreader-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Archivo";src:url(/fonts/archivo-var.woff2) format("woff2");font-weight:400 600;font-stretch:100% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"PS Serif Fallback";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("Tinos");size-adjust:104.2%;ascent-override:70.6%;descent-override:25.4%;line-gap-override:0%}
@font-face{font-family:"PS Sans Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");size-adjust:98.6%;ascent-override:89.1%;descent-override:21.3%;line-gap-override:0%}
:root{
 --carbon:#0B0C0E;--graphite:#16171A;--line:#2A2B2F;--bone:#F2EEE6;--stone:#B8B3A8;--ash:#8E8A82;--champ:#C9A86A;
 --bg:var(--carbon);--bg2:var(--graphite);--bg3:#1D1E22;--rule:var(--line);--rule2:#3A3B40;
 --ink:var(--bone);--ink2:var(--stone);--ink3:var(--ash);--acc:var(--champ);--acc-text:var(--champ);--acc-ink:var(--carbon);
 --serif:"Newsreader","PS Serif Fallback",Georgia,"Times New Roman",serif;
 --sans:"Archivo","PS Sans Fallback",Arial,system-ui,sans-serif;
 --w:1200px;--g:clamp(20px,4vw,40px);--r:2px
}
/* light editorial sections: ink on Bone */
.paper{--bg:var(--bone);--bg2:#E9E4DA;--bg3:#E0DACE;--rule:#D3CCBF;--rule2:#B9B1A3;--ink:#0B0C0E;--ink2:#2E2B27;--ink3:#5E5A53;--acc-text:#6F5420;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
@media(min-width:1000px){body{font-size:18px}}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration-color:var(--acc);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.paper :focus-visible{outline-color:var(--carbon)}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:12px;top:12px;background:var(--bone);color:var(--carbon);padding:12px 16px;z-index:99}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--g)}
.narrow{max-width:760px}
/* shared label style: Archivo 600, 12px, wdth 112, caps, .16em */
.eyebrow,.hero .meta,.ts-h,.ts th,.stat span,.card .k,.card .go,.crumbs,.toc a,.kv dt,.gs-h .px small,.sn,.pay h2 small,label.l,.tz dt,.st,.nav a,.btn,.tlink,.locks li,.restore summary,.price small,.bar .t b{font-family:var(--sans);font-weight:600;font-size:12px;font-stretch:112%;letter-spacing:.16em;text-transform:uppercase}
/* header */
.hdr{position:sticky;top:0;z-index:20;background:rgba(11,12,14,.9);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;min-height:60px;gap:12px}
.logo{display:inline-flex;align-items:center;text-decoration:none;min-height:44px;color:var(--bone)}
.logo b{font:400 24px/1 var(--serif);letter-spacing:-.01em;font-weight:400}
.logo b i{font-style:italic;color:var(--champ)}
.hdr .wrap{flex-wrap:wrap;row-gap:0}.nav{display:flex;align-items:center;gap:2px;min-width:0;max-width:100%}.nav .nl{display:flex;flex-wrap:wrap;align-items:center;gap:0 2px;min-width:0}.nav .lang{flex:none}
.nav a{white-space:nowrap;line-height:1;text-decoration:none;color:var(--stone);padding:0 10px;min-height:44px;display:inline-flex;align-items:center}
.nav a:hover,.nav a[aria-current]{color:var(--bone)}
.nav a[aria-current]{box-shadow:inset 0 -1px 0 var(--champ)}
.nav .lang{border:1px solid var(--rule2);margin-left:6px;min-width:44px;justify-content:center;letter-spacing:.12em}
.nav .hide-s{display:none}
@media(min-width:900px){.nav .hide-s{display:inline-flex}}
/* type scale (390 -> 1280) */
.eyebrow{line-height:1.2;color:var(--ink3);display:flex;align-items:center;gap:10px;margin:0 0 18px}
.eyebrow:before{content:"";width:18px;height:1px;background:var(--acc)}
h1,h2,h3{font-weight:400;margin:0}
h1{font:400 clamp(36px,calc(3.15vw + 23.7px),64px)/1.02 var(--serif);letter-spacing:-.015em}
body[data-ptype=home] .hero h1{font-size:clamp(44px,calc(4.94vw + 24.7px),88px);line-height:.98}
h1 em,h2 em{font-style:italic;color:var(--acc-text)}
.paper h1 em,.paper h2 em{color:var(--ink3)}
h2{font:400 clamp(28px,calc(1.8vw + 21px),44px)/1.08 var(--serif);letter-spacing:-.01em;margin-bottom:18px}
h3{font:400 clamp(22px,calc(.674vw + 19.4px),28px)/1.15 var(--serif);margin-bottom:10px}
p{margin:0 0 14px;color:var(--ink2)}
.lede{font-size:clamp(17px,calc(.45vw + 15.2px),21px);line-height:1.5;color:var(--ink2);max-width:42ch}
strong{color:var(--ink);font-weight:600}
.num,.stat b,.gs-h .px,.pay h2 .ownprice,.price .ownprice{font-family:var(--sans);font-stretch:125%;font-weight:600;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}
/* hero */
.hero{position:relative;border-bottom:1px solid var(--line);overflow:hidden;background:var(--carbon)}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;filter:saturate(.7) contrast(1.05)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,12,14,.45) 0%,rgba(11,12,14,.72) 55%,var(--carbon) 100%)}
.hero .wrap{position:relative;z-index:1;padding-top:clamp(64px,12vw,150px);padding-bottom:clamp(40px,7vw,80px)}
.hero .lede{margin-top:22px}
.hero.short .wrap{padding-top:clamp(48px,8vw,110px)}
.hero h1{max-width:15ch}
.hero .meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:28px;line-height:1.4;color:var(--stone)}
.hero .meta span{display:inline-flex;gap:8px;align-items:center}
.hero .meta svg{width:16px;height:16px;color:var(--champ)}
.hero .btns{margin-top:30px;align-items:center;gap:8px 24px}
/* sections */
section.s{padding:clamp(56px,9vw,112px) 0;border-bottom:1px solid var(--rule)}
section.s.tight{padding:clamp(40px,6vw,72px) 0}
section.paper{border-bottom-color:#D3CCBF}
.grid{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.grid>*{background:var(--bg)}
@media(min-width:720px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.g4{grid-template-columns:repeat(4,1fr)}}
@media(min-width:720px) and (max-width:999px){.g4{grid-template-columns:1fr 1fr}}
.cell{padding:clamp(22px,3vw,34px)}
.cell p:last-child{margin-bottom:0}
.split{display:grid;gap:28px}
.split>*,.grid>*{min-width:0}
@media(min-width:900px){.split{grid-template-columns:5fr 7fr;gap:64px}.split.rev{grid-template-columns:7fr 5fr}}
@media(min-width:900px){.sticky{position:sticky;top:90px;align-self:start}}
/* timing-screen tables */
.ts{border:1px solid var(--rule);background:var(--bg2)}
.ts-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:12px 16px;border-bottom:1px solid var(--rule);line-height:1.3;color:var(--ink3)}
.ts-h .live{display:inline-flex;align-items:center;gap:8px;color:var(--ink2)}
.ts-h .live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc)}
.ts table{width:100%;border-collapse:collapse;font-size:15px}
.ts th{line-height:1.3;color:var(--ink3);text-align:left;padding:10px 16px;border-bottom:1px solid var(--rule)}
.ts td{padding:12px 16px;border-bottom:1px solid var(--rule);color:var(--ink);vertical-align:top;font-variant-numeric:tabular-nums}
.ts tr:last-child td{border-bottom:0}
.ts td.n{text-align:right;white-space:nowrap;font-size:16px;font-weight:600;font-stretch:112%}
.ts td .sub{display:block;color:var(--ink3);font-size:13px;margin-top:2px;font-weight:400;font-stretch:100%}
.ts td.pos{color:var(--ink3);width:3em;text-align:left;font-size:13px;font-weight:600}
.ts-f{padding:10px 16px;border-top:1px solid var(--rule);font:400 13px/1.5 var(--sans);color:var(--ink3)}
.ts-f a{color:var(--ink2)}
/* scroll container with a visible cue when it overflows */
.ts-scroll{overflow-x:auto;background:linear-gradient(90deg,var(--bg2) 30%,rgba(22,23,26,0)) left/40px 100% no-repeat local,linear-gradient(270deg,var(--bg2) 30%,rgba(22,23,26,0)) right/40px 100% no-repeat local,linear-gradient(270deg,rgba(201,168,106,.35),rgba(201,168,106,0)) right/14px 100% no-repeat scroll,var(--bg2)}
/* stacked cards whenever the table's own box is under 560px (phones, and the narrow split column on tablets) */
.ts{container:ts/inline-size}
@container ts (max-width:559px){
 .ts-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .ts-stack table,.ts-stack tbody{display:block}
 .ts-stack tr{display:block;position:relative;padding:12px 16px 12px calc(16px + 2.4em);border-bottom:1px solid var(--rule)}
 .ts-stack tr:last-child{border-bottom:0}
 .ts-stack td{display:block;padding:0;border:0}
 .ts-stack td.pos{position:absolute;left:16px;top:12px;width:auto}
 .ts-stack td.n{display:inline-block;margin:6px 18px 0 0;text-align:left;white-space:normal}
 .ts-stack td.n .sub{display:inline;margin-left:6px}
 .ts-stack td:nth-child(4):not(.n){margin-top:8px;color:var(--ink2);font-size:15px}
 /* label/value cards for every other wide table */
 .ts-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .ts-cards table,.ts-cards tbody{display:block}
 .ts-cards tr{display:flex;flex-direction:column;padding:12px 16px;border-bottom:1px solid var(--rule)}
 .ts-cards tr:last-child{border-bottom:0}
 .ts-cards td,.ts-cards td.n{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:3px 0;border:0;text-align:right;white-space:normal;min-width:0}
 .ts-cards td::before{content:attr(data-label);flex:none;max-width:45%;text-align:left;color:var(--ink3);font:600 12px/1.4 var(--sans);font-stretch:112%;letter-spacing:.12em;text-transform:uppercase}
 .ts-cards td.tt{order:-1;display:block;text-align:left;padding:0 0 6px;font-weight:600}
 .ts-cards td.tt::before{content:none}
 .ts-cards td .sub{font-weight:400}
 .ts-cards td:has(sup.c){padding:10px 0}
}
.stat{display:flex;flex-direction:column;gap:8px;padding:20px 16px}
.stat b{font-size:clamp(28px,calc(1.35vw + 22.7px),40px);line-height:1;color:var(--ink)}
.stat b small{font-size:12px;color:var(--ink3);margin-left:4px;letter-spacing:.12em;font-stretch:112%}
.stat span{line-height:1.4;color:var(--ink3)}
/* cards / links */
.card{display:flex;flex-direction:column;gap:10px;text-decoration:none;padding:clamp(22px,3vw,32px);min-height:100%;transition:background .25s}
a.card:hover{background:var(--bg3)}
.card .k{line-height:1;color:var(--ink3)}
.card .t{font:400 clamp(22px,calc(.674vw + 19.4px),28px)/1.1 var(--serif);color:var(--ink)}
.card .d{color:var(--ink2);font-size:15px;line-height:1.5}
.card .go{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:8px;line-height:1;color:var(--ink)}
.card .go svg{width:18px;height:18px;transition:transform .25s;color:var(--acc-text)}
a.card:hover .go svg{transform:translateX(4px)}
.ico{width:28px;height:28px;color:var(--acc-text);flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border:1px solid var(--rule2);background:transparent;color:var(--ink);line-height:1;text-decoration:none;border-radius:var(--r);cursor:pointer}
.btn:hover{border-color:var(--ink)}
.btn.solid{background:var(--champ);border-color:var(--champ);color:var(--carbon)}
.btn.solid:hover{background:#D6B97F;border-color:#D6B97F}
.paper .btn.solid{background:var(--carbon);border-color:var(--carbon);color:var(--bone)}
.btn svg{width:18px;height:18px}
.tlink{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--acc);text-underline-offset:6px}
.tlink svg{width:16px;height:16px}
button.tlink{background:none;border:0;padding:0;cursor:pointer;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-align:left}
.btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.aff{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:14px 18px;text-decoration:none;border-top:1px solid var(--rule)}
.aff:first-child{border-top:0}
.aff span{display:flex;flex-direction:column;gap:2px}
.aff span b{font-weight:600;font-size:15px;color:var(--ink)}
.aff span i{font-style:normal;font-size:13px;color:var(--ink3)}
.aff svg{width:18px;height:18px;color:var(--acc-text);flex:none}
.aff:hover{background:var(--bg3)}
.disc{font-size:13px;color:var(--ink3);margin-top:10px}
ul.clean,ol.clean{list-style:none;padding:0;margin:0}
.prose{max-width:68ch}
.prose h2{margin-top:56px}
.prose h3{margin-top:28px}
.prose ul{padding-left:20px;color:var(--ink2)}
.prose li{margin:6px 0}
/* citations: 12px numerals, 44x44 hit area; negative margins keep the line and word spacing intact */
sup.c{font:600 12px/0 var(--sans);margin-left:1px;vertical-align:super}
sup.c a,.stat sup a,.psec sup a{color:var(--ink3);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-16px 0;font:600 12px/1 var(--sans)}
/* PS-27: footnote hit area 44x44 on touch layouts; negative margins keep the margin box 12px so line spacing is unchanged */
sup.c a,.stat sup a,.psec sup a{margin-left:-14px;margin-right:-14px}
sup.c.nl a{margin-left:0}
sup.c.nr a{margin-right:0}
sup.c a:hover{color:var(--ink)}
.note{border-left:1px solid var(--acc);padding:4px 0 4px 16px;color:var(--ink2);font-size:15px;margin:18px 0}
/* guide status: dot + word */
.st{display:inline-flex;align-items:center;gap:8px;line-height:1;color:var(--ink2);text-decoration:none;min-height:24px}
a.st{min-height:44px;color:var(--ink)}
.st-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--ink3);flex:none}
.st-full .st-dot{background:var(--champ);border-color:var(--champ)}
.st-basics .st-dot{background:var(--stone);border-color:var(--stone)}
.st-none{color:var(--ink3)}
.sub.stl{margin-top:4px}
.tag{display:inline-flex;align-items:center;min-height:44px;font:600 12px/1 var(--sans);font-stretch:112%;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);border:1px solid var(--rule);padding:8px 10px}
/* sources */
.sources{font-size:13px;color:var(--ink3)}
.sources ol{padding-left:22px;margin:0}
.sources li{margin:8px 0;color:var(--ink3)}
.sources a{color:var(--ink2);word-break:break-word}
/* forms */
.form{display:flex;flex-wrap:wrap;gap:10px;max-width:560px}
.form input[type=email],.form input[type=text],select{flex:1 1 240px;min-height:48px;background:var(--bg);border:1px solid var(--rule2);color:var(--ink);padding:0 14px;font:400 16px var(--sans);border-radius:var(--r)}
.form input:focus,select:focus{border-color:var(--ink)}
.form input::placeholder{color:var(--ink3);opacity:1}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{width:100%;font-size:15px;color:var(--ink2);min-height:1.4em;margin:0}
label.l{display:block;width:100%;line-height:1.3;color:var(--ink3);margin:0}
.hint{width:100%;font-size:13px;color:var(--ink3);margin:-4px 0 4px}
/* footer */
.ftr{padding:56px 0 40px;color:var(--ink3);font-size:15px}
.ftr .cols{display:grid;gap:28px}
@media(min-width:800px){.ftr .cols{grid-template-columns:2fr 1fr 1fr}}
.ftr a{color:var(--ink2);text-decoration:none;display:inline-flex;min-height:44px;align-items:center}
.ftr a:hover{color:var(--ink)}
.ftr ul{list-style:none;padding:0;margin:0}
.ftr .ind{border-top:1px solid var(--rule);margin-top:32px;padding-top:20px;font-size:13px;line-height:1.6}
/* motion */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
.js-motion .line-in:before{width:0;transition:width .9s cubic-bezier(.2,.7,.2,1) .1s}
.js-motion .line-in.in:before{width:18px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}
/* breadcrumbs + guide tabs */
.crumbs{line-height:1.4;color:var(--ash);margin-bottom:20px}
.crumbs a{color:var(--ash);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.crumbs a:hover{color:var(--bone)}
.tocbar{border-bottom:1px solid var(--rule);position:relative;z-index:1;background:var(--carbon)}
.tocbar .wrap{position:relative}
.toc{display:flex;overflow-x:auto;scrollbar-width:none;border-left:1px solid var(--line)}
.toc::-webkit-scrollbar{display:none}
.toc a{flex:none;white-space:nowrap;line-height:1;color:var(--stone);text-decoration:none;padding:0 16px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;border-right:1px solid var(--line)}
.toc a[aria-current]{color:var(--bone);box-shadow:inset 0 -2px 0 var(--champ)}
.toc a:hover{color:var(--bone);background:var(--graphite)}
.toc .tsh{display:none}
.tocbar.more .wrap:after{content:"";position:absolute;right:var(--g);top:0;bottom:0;width:36px;pointer-events:none;background:linear-gradient(90deg,rgba(11,12,14,0),var(--carbon))}
@media(max-width:420px){.toc a{flex:1 1 0;padding:0 5px;letter-spacing:.06em}.toc .tl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.toc .tsh{display:inline}}
.kv{display:grid;grid-template-columns:auto 1fr;gap:0}
.kv dt,.kv dd{margin:0;padding:12px 0;border-top:1px solid var(--rule)}
.kv dt{line-height:1.6;color:var(--ink3);padding-right:20px}
.kv dd{color:var(--ink2)}
figure{margin:0}
figcaption{font-size:13px;color:var(--ink3);margin-top:8px}
.gs-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--rule)}
.gs-h h3{font-size:clamp(28px,calc(1.35vw + 22.7px),36px);line-height:1.05;margin:0}
.gs-h .px{font-size:clamp(28px,calc(1.35vw + 22.7px),40px);line-height:1;color:var(--ink);white-space:nowrap;text-align:right}
.gs-h .px small{display:block;color:var(--ink3);margin-top:6px;text-align:right}
/* home Companion band */
.band{background:var(--graphite)}
.band .price{margin:0 0 8px}
.band .price .ownprice{font-size:clamp(40px,calc(2.7vw + 29.5px),64px);color:var(--bone);line-height:1}
.band .price small{display:block;color:var(--ash);margin-top:10px}
/* companion */
.cmp{display:grid;gap:28px}
.step{border:0;padding:0;margin:0}
.step legend{font:400 clamp(22px,calc(.674vw + 19.4px),28px)/1.15 var(--serif);margin-bottom:14px;display:flex;gap:14px;align-items:baseline}
.sn{line-height:1;color:var(--champ)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:flex;flex-direction:column;justify-content:center;min-height:48px;padding:10px 16px;border:1px solid var(--line);background:var(--graphite);font:500 15px/1.25 var(--sans);color:var(--stone);transition:border-color .2s,color .2s}
.chip small{font:400 13px/1.3 var(--sans);color:var(--ash);margin-top:3px}
.chip input:checked+span{border-color:var(--champ);color:var(--bone);box-shadow:inset 3px 0 0 var(--champ)}
.chip input:focus-visible+span{outline:2px solid var(--champ);outline-offset:2px}
.chip:hover span{border-color:#4A4B50}
.locks{list-style:none;margin:0;padding:6px 0}
.locks li{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--rule);color:var(--ink2);line-height:1.3}
.locks li:last-child{border-bottom:0}
.locks .ico{width:18px;height:18px;flex:none}
.pay .upd{display:flex;gap:10px;align-items:flex-start;color:var(--bone);font-size:15px;border-left:1px solid var(--champ);padding-left:12px}
.pay .upd .ico{width:18px;height:18px;margin-top:3px}
.pay .anchor{font-size:15px;color:var(--stone);margin:12px 0 4px}
.pay .anchor b{color:var(--bone);font-weight:600;font-stretch:112%;font-variant-numeric:tabular-nums}
.pay .anchor a{color:var(--stone)}
.pay h2{margin:14px 0 6px}
.pay h2 .ownprice{font-size:clamp(44px,calc(2.7vw + 33.5px),64px);line-height:1}
.pay h2 small{display:block;color:var(--ash);margin-top:10px}
.pay .indep-s{font-size:13px;color:var(--ash)}
.pay .refund{width:100%;display:flex;gap:8px;align-items:flex-start;font-size:15px;color:var(--stone);margin:2px 0 0}
.pay .refund .ico{width:16px;height:16px;margin-top:4px}
.pay .form .btn{width:100%}
.stubnote{border:1px solid var(--rule2);border-left:2px solid var(--champ);background:var(--bg2);padding:12px 14px;color:var(--bone);font-size:15px}
.pay.stub .form-msg{color:var(--ink);border-left:2px solid var(--acc);padding-left:12px}
.pay.stub .form-msg:empty{border:0;padding:0}
.restore{margin-top:18px;border-top:1px solid var(--rule);padding-top:14px}
.restore summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ink2)}
/* teaser: one real line, the rest blurred */
.teaser .tz-line{padding:18px 16px 6px}
.teaser .real{color:var(--bone);font-size:17px;margin:0}
.teaser .srcl{font-size:13px;color:var(--stone);white-space:nowrap;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;margin:-12px -4px}
.blurwrap{position:relative;padding:8px 16px 18px}
.lockmsg{position:relative;margin:10px 0 0;color:var(--stone);font-size:15px}
.plan-h{border-bottom:1px solid var(--rule);padding-bottom:24px;margin-bottom:8px}
.plan-h .form{margin-top:16px}
.psec{padding:32px 0;border-bottom:1px solid var(--rule)}
.psec h3{font-size:clamp(24px,calc(.9vw + 20.5px),32px);margin:0 0 18px;display:flex;gap:12px;align-items:center}
.psec .dot{width:8px;height:8px;background:var(--acc);display:inline-block}
.ticks,.crosses{list-style:none;padding:0;margin:0}
.ticks li,.crosses li{padding:10px 0 10px 26px;border-bottom:1px solid var(--rule);position:relative;color:var(--ink2)}
.ticks li:before{content:"";position:absolute;left:2px;top:17px;width:10px;height:5px;border-left:1.5px solid var(--acc);border-bottom:1.5px solid var(--acc);transform:rotate(-45deg)}
.crosses li:before,.crosses li:after{content:"";position:absolute;left:2px;top:19px;width:12px;height:1.5px;background:var(--ink3);transform:rotate(45deg)}
.crosses li:after{transform:rotate(-45deg)}
.mono{font-family:var(--sans);font-variant-numeric:tabular-nums;font-stretch:112%;font-weight:600;letter-spacing:.08em}
.kvl{margin:0 0 10px}
[hidden]{display:none!important}
.h1s{font:400 clamp(36px,calc(3.15vw + 23.7px),64px)/1.02 var(--serif);margin:0 0 28px}
.narrow h2{margin-top:44px}
.credits{list-style:none;padding:0;margin:0}
.credits li{display:flex;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--rule);color:var(--ink2);font-size:15px}
.credits img{width:120px;height:68px;object-fit:cover;flex:none}
.form select{flex:1 1 220px;width:auto}
footer li a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.skip{min-height:44px;display:inline-flex;align-items:center}
/* sticky CTA bar on Miami guide pages (mobile) */
.bar{display:none}
@media(max-width:899px){
 .bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:15;gap:12px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(11,12,14,.96);border-top:1px solid var(--line)}
 .bar .t{flex:1;min-width:0;font-size:13px;line-height:1.35;color:var(--stone);margin:0}
 .bar .t b{display:block;color:var(--bone)}
 .bar .btn{min-height:44px;padding:0 16px;flex:none}
 body.has-bar{padding-bottom:72px}
}
.ts .acc{color:var(--acc-text)}
.tag.acc{border-color:var(--acc);color:var(--acc-text)}
.cal td.when{white-space:nowrap}
[style*="display:grid"]>*{min-width:0}

/* single-column Q&A box (Straight answers) */
.qa p{margin:0;padding:12px 0;border-top:1px solid var(--rule);color:var(--ink2)}
.qa p:first-child{border-top:0;padding-top:0}
.qa strong{display:block;color:var(--ink);margin-bottom:2px}
/* grandstand jump list */
.jump{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}
.jump a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--rule2);color:var(--ink);text-decoration:none;font:600 13px/1.2 var(--sans);font-stretch:112%;letter-spacing:.06em}
.jump a:hover{border-color:var(--acc)}
.jump a small{color:var(--ink3);margin-left:8px;font-weight:600}
.jumpnav{padding-top:28px;padding-bottom:4px}
.cell[id],#stands{scroll-margin-top:84px}
.totop{margin:14px 0 0}
.totop a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink3);font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
@media(max-width:599px){.kv{grid-template-columns:1fr}.kv dt{padding-bottom:0}.kv dd{border-top:0;padding-top:4px}}
@media(min-width:600px){.ts td:first-child:not(.pos){min-width:7.5em}}
details.stand>summary{list-style:none;cursor:pointer;min-height:44px}
details.stand>summary::-webkit-details-marker{display:none}
details.stand>summary .gs-h .tg::after{content:"+";margin-left:10px;color:var(--ink3);font-weight:400}
details.stand[open]>summary .gs-h .tg::after{content:"\2013"}
@media(min-width:600px){.stand-hint{display:none}}
.split>.lockbox{align-self:start}
/* in-page jumps (footnotes, sources, jump list) clear the sticky header and the mobile bar */
/* PS-44: anchor targets clear the sticky header at its real height; site.js sets --hdr-h from a ResizeObserver.
   No-JS fallback: 76px (one row) on wide screens, 136px on phones where the header can wrap to three rows. */
:root{--hdr-h:76px}@media(max-width:480px){:root{--hdr-h:136px}}html{scroll-padding-top:calc(var(--hdr-h) + 8px)}
[id^="src-"],[id^="cmp-src-"],.sources li{scroll-margin-top:84px;scroll-margin-bottom:96px}
@media(max-width:899px){html:has(body.has-bar){scroll-padding-bottom:84px}.bar{transition:transform .2s,visibility .2s}.bar.off{transform:translateY(110%);visibility:hidden}}
@media(prefers-reduced-motion:reduce){.bar{transition:none!important}}
/* two-column layout (>=900px): WCAG 2.5.8 24px footnote targets, since 44px boxes on adjacent prose lines overlap; phones keep 44px */
@media(min-width:900px){sup.c a,.stat sup a,.psec sup a{min-width:24px;min-height:24px;margin:-6px -4px}sup.c.nl a{margin-left:0}sup.c.nr a{margin-right:0}}
/* split columns are size containers so key/value lists stack when their column is narrow (tablet two-column) */
.split>*{container-type:inline-size}
@container (max-width:419px){.kv{grid-template-columns:1fr}.kv dt{padding-bottom:0}.kv dd{border-top:0;padding-top:4px}}

/* ---- Race week: home hero, race picker, live preview strip ---- */
.hero.home .wrap{padding-top:clamp(28px,7vw,110px);padding-bottom:clamp(20px,4vw,48px)}
body[data-ptype=home] .hero.home h1{font-size:clamp(40px,calc(4.6vw + 22px),84px)}
.hero.home .lede{margin-top:14px;max-width:46ch}
.picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:22px;max-width:760px}
@media(min-width:720px){.picker{grid-template-columns:repeat(4,minmax(0,1fr))}}
.rp{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:56px;padding:10px 14px;border:1px solid var(--rule2);background:rgba(22,23,26,.82);text-decoration:none;color:var(--bone);border-radius:var(--r)}
.paper .rp{background:var(--bg2);color:var(--ink)}
.rp b{font:400 20px/1.1 var(--serif)}
.rp i{font:600 12px/1.2 var(--sans);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-text)}
.rp.soon i{color:var(--ink3)}
.rp:hover{border-color:var(--champ)}
.hero.home .btns{margin-top:20px}
.strip{border-bottom:1px solid var(--line);padding:14px 0 22px;background:var(--carbon)}
.strip-h{display:flex;justify-content:space-between;align-items:center;gap:12px}
.strip-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,78%);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin-top:4px}
@media(min-width:900px){.strip-row{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}}
.strip-row .it{scroll-snap-align:start}
.strip-hint{font-size:12px;color:var(--ink2);margin:6px 0 0;text-align:right}
@media(min-width:900px){.strip-hint{display:none}}
/* ---- item cards (guide, Companion explore, timeline) ---- */
.cards{display:grid;gap:10px}
@media(min-width:720px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.it{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;border:1px solid var(--rule);background:var(--bg2);padding:14px 16px;min-width:0}
.it[hidden],.exg[hidden]{display:none}
.it-b{min-width:0;flex:1}
.it-n{font:400 20px/1.2 var(--serif);color:var(--ink);margin:0}
.it-s{font-size:13px;color:var(--ink3);margin:4px 0 0;line-height:1.4}
.it-d{font-size:15px;line-height:1.5;color:var(--ink2);margin:8px 0 0}
.it-src{font-size:13px;color:var(--ink3);margin:6px 0 0;line-height:1.4}
.tag-s{font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--acc-text);border:1px solid var(--rule2);padding:3px 5px;vertical-align:middle;white-space:nowrap}
.bdg{display:inline-block;font:600 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:5px 7px;margin:8px 6px 0 0;border:1px solid var(--rule2);color:var(--ink2)}
.bdg.a-free{border-color:#5f8f6a;color:#9fd0a9}.paper .bdg.a-free{color:#2f6b3c}
.bdg.a-ticket{border-color:var(--champ);color:var(--acc-text)}
.bdg.a-paid{border-color:#8a7a9e;color:#c6b8d8}.paper .bdg.a-paid{color:#5a4870}
.bdg.a-unconfirmed{border-style:dashed;color:var(--ink2)}
.bdg.s-expected{color:var(--ink3)}.bdg.s-confirmed{color:var(--ink);border-color:var(--ink3)}.bdg.s-one-off{color:var(--ink3);text-decoration:line-through;text-decoration-thickness:1px}
.srcl{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;margin:-12px -4px;color:inherit}
@media(min-width:900px){.srcl{min-height:24px;margin:-2px -4px}}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 12px}
.fchip,.bm{min-height:44px;padding:0 14px;border:1px solid var(--rule2);background:transparent;color:var(--ink2);font:500 14px/1 var(--sans);cursor:pointer;border-radius:var(--r)}
.fchip[aria-pressed=true],.bm[aria-pressed=true]{border-color:var(--champ);color:var(--ink);box-shadow:inset 0 -2px 0 var(--champ)}
.bm{flex:none;font-size:13px;padding:0 12px}
.fchip:focus-visible,.bm:focus-visible,.rp:focus-visible{outline:2px solid var(--champ);outline-offset:2px}
.exg{margin-top:28px}.exg .it{margin-top:8px}
.exl{margin-top:8px}
.h3s{font:400 clamp(24px,2.4vw,30px)/1.15 var(--serif);margin:0 0 12px}.h3s .n{font:600 13px/1 var(--sans);color:var(--ink3);letter-spacing:.1em;margin-left:6px}
.nrs{gap:10px;background:none;border:0}
.nr{border:1px solid var(--rule);background:var(--bg2);padding:16px}
.nr .tlink{font-size:12px;padding:0;background:none;border:0;cursor:pointer;margin-top:4px;font-family:var(--sans);font-weight:600;letter-spacing:.14em;text-transform:uppercase}
@media(min-width:1000px){.g5{grid-template-columns:repeat(5,1fr)}}
@media(min-width:720px) and (max-width:999px){.g5{grid-template-columns:1fr 1fr}}
/* ---- Companion: mini-plan, dates, timeline ---- */
.mini{margin-top:20px}.mini:empty{display:none}
.mini-g{display:grid;gap:14px;padding:14px 16px}
@media(min-width:900px){.mini-g{grid-template-columns:1fr 1fr}}
.mini-it .eyebrow{margin:0 0 8px}.mini-it .it{margin-bottom:8px}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:520px}
.dates input{min-height:48px;width:100%;padding:0 12px;background:var(--graphite);border:1px solid var(--line);color:var(--bone);font:500 16px var(--sans);color-scheme:dark}
label.l.sub{display:block;margin-top:14px;color:var(--ink3)}
.tl{list-style:none;margin:0;padding:0}
.tl-day{border-top:1px solid var(--rule);padding:16px}
.tl-h{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.tl-d{font:400 22px/1.15 var(--serif);color:var(--ink)}
.tl-k{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--acc-text)}
.tl-items{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.tl-it{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:start}
.tl-it.race .it{border-color:var(--champ)}
.tl-t{font:600 13px/1.6 var(--sans);color:var(--ink2);font-variant-numeric:tabular-nums;padding-top:12px}
.tl-lock{font-size:14px;color:var(--ink3);margin:8px 0 0}
.tl-day.locked .tl-d{color:var(--ink2)}
.tl-aff{margin-top:10px}
@media(max-width:480px){.tl-it{grid-template-columns:1fr}.tl-t{padding-top:0}}
.hero.rwh .wrap{padding-top:clamp(20px,4vw,64px);padding-bottom:clamp(24px,3vw,44px)}.hero.rwh .lede{margin-top:12px}.hero.rwh .btns{margin-top:18px}
#events{padding-top:clamp(28px,4vw,56px)}.rwnotes{margin-top:24px;max-width:70ch;color:var(--ink2)}
.disc.nt{color:var(--ink2)}.nt-h{margin:14px 0 0;font-size:13px;line-height:1.45;color:var(--stone);max-width:60ch}
.it-f{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:var(--ink2)}.it-f li{margin:2px 0}.it-f b{font-weight:600;color:var(--ink);margin-right:4px}
.it-f .sugg b::after{content:" ·";font-weight:400;color:var(--ink3)}.it-x{font-size:12px;color:var(--ink3);margin:4px 0 0}
.flt-more{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:8px 0 16px;background:var(--bg2)}.flt-more p{margin:0 0 6px}.flt-more .btns{margin:6px 0;gap:6px 16px;flex-wrap:wrap}
/* Michelin citation sits under the source line: keep the two 44px hit areas apart on touch */
.it-src.it-mich{margin-top:28px}
@media(min-width:900px){.it-src.it-mich{margin-top:8px}}
.exg-more{display:flex;margin:10px 0 4px;min-height:44px;background:none;border:0;padding:0;cursor:pointer;font:inherit;font-weight:600}
/* SEO layer: quick answer, updated line, FAQ, more race weekends */
.qa-band{padding-top:28px;padding-bottom:8px}
.qbox{border-left:3px solid var(--ink);padding:4px 0 4px 18px;margin:0 0 14px}
.qbox .eyebrow{margin-bottom:6px}
.qbox .qa-t{font-size:18px;line-height:1.55;margin:0}
.upd{font-family:var(--sans);font-size:13px;color:var(--ink2);margin:0}
#faq .fq{border-top:1px solid var(--rule);padding:18px 0 4px}
#faq .fq h3{font-size:19px;margin:0 0 8px}
#faq .fq p{margin:0 0 10px}
.more-races ul.mr{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:0 28px}
.more-races ul.mr a{display:flex;align-items:center;min-height:44px;font-weight:600}
@media(min-width:900px){.more-races ul.mr{grid-template-columns:1fr 1fr}}

.teaser .ts-f .nt{margin:10px 0 0;flex-basis:100%}
.code-once{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.code-once p{margin:0}
.ts td.tt a[href^="#"]{display:inline-block;min-width:44px;padding:14px 0;margin:-11px 0}
@media(max-width:360px){.bar{gap:8px;padding-left:12px;padding-right:12px}.bar .btn{padding:0 12px}.bar .t b{letter-spacing:.1em}.gs-h{gap:10px}.gs-h h3{font-size:24px;min-width:0}.gs-h .px{font-size:24px}}
.toc a{position:relative}
.cmp-bad{margin:0 0 10px;padding:10px 12px;border-left:3px solid var(--acc);background:var(--bg2);color:var(--ink);font-size:15px;line-height:1.45}
