/* InhouseHeal — "hot & cold": midnight navy bands, amber heat, ice-blue cool; bold grotesque display, score dials. */
:root{
  --bg:#f5f6f8; --surface:#ffffff; --sunk:#eceff3; --ink:#0e1a2b; --muted:#566377; --line:#dde2e9;
  --brand:#0e1a2b; --brand-2:#17273e; --on-brand:#f2f5f9; --on-brand-muted:#a5b3c6; --brand-line:rgba(255,255,255,.12);
  --amber:#f2a03d; --amber-ink:#1b1306; --amber-text:#a85b06; --heat:#fdecd9;
  --ice:#dcedf7; --ice-ink:#0f4c6e; --good:#2f8a5b;
  --f-display:"Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --f-body:"Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --wrap:1200px; --read:700px; --r:18px;
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem; --s6:2rem; --s7:3rem; --s8:4.5rem;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a111d; --surface:#111a29; --sunk:#172236; --ink:#e7ecf3; --muted:#9aa7ba; --line:#243049;
  --brand:#070d18; --brand-2:#0f1a2c; --on-brand:#eef2f7; --on-brand-muted:#9aa9be; --brand-line:rgba(255,255,255,.1);
  --amber:#f2a645; --amber-ink:#1b1306; --amber-text:#f4b665; --heat:#3a2714; --ice:#12324a; --ice-ink:#a3d6f2; --good:#6fcf98; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a111d; --surface:#111a29; --sunk:#172236; --ink:#e7ecf3; --muted:#9aa7ba; --line:#243049;
  --brand:#070d18; --brand-2:#0f1a2c; --on-brand:#eef2f7; --on-brand-muted:#9aa9be; --brand-line:rgba(255,255,255,.1);
  --amber:#f2a645; --amber-ink:#1b1306; --amber-text:#f4b665; --heat:#3a2714; --ice:#12324a; --ice-ink:#a3d6f2; --good:#6fcf98; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--f-body)}
img{max-width:100%;height:auto;display:block}
a{color:var(--ice-ink);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.08;letter-spacing:-.025em;text-wrap:balance;margin:0}
h1{font-size:clamp(2.1rem,1.4rem + 2.8vw,3.6rem)}
h2{font-size:clamp(1.55rem,1.2rem + 1.2vw,2.25rem)}
h3{font-size:1.2rem;letter-spacing:-.015em}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font:500 .74rem/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:16px;top:16px;z-index:50;background:var(--surface);padding:.5rem 1rem}
.ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- header (dark) ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--brand)}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--brand);color:var(--on-brand);border-bottom:1px solid var(--brand-line)}
.top .wrap{display:flex;align-items:center;gap:var(--s5);min-height:66px}
.logo{display:flex;align-items:center;gap:.55rem;color:inherit;text-decoration:none;font:700 1.32rem/1 var(--f-display);letter-spacing:-.03em;white-space:nowrap}
.logo svg{width:32px;height:32px;flex:none}
.logo span b{color:var(--amber);font-weight:700}
.nav{display:flex;gap:var(--s5);margin-left:auto;align-items:center}
.nav a{color:var(--on-brand);text-decoration:none;font-size:.95rem;font-weight:500;opacity:.88}
.nav a:hover{opacity:1;color:var(--amber)}
.searchbtn,.navbtn{background:rgba(255,255,255,.08);border:1px solid var(--brand-line);color:var(--on-brand);border-radius:12px;height:40px;padding:0 .95rem;display:inline-flex;align-items:center;gap:.45rem;font:500 .9rem var(--f-body);cursor:pointer}
.searchbtn:hover,.navbtn:hover{background:rgba(255,255,255,.14)}
.searchbtn .ico,.navbtn .ico{width:17px;height:17px}
.navbtn{display:none}
.drop{position:relative}
.drop>button{background:none;border:0;font:500 .95rem var(--f-body);color:var(--on-brand);opacity:.88;cursor:pointer;display:flex;gap:.3rem;align-items:center;padding:0}
.drop>button:hover{opacity:1;color:var(--amber)}
.drop-panel{position:absolute;right:-140px;top:calc(100% + 20px);width:min(680px,92vw);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 60px -24px rgba(5,12,24,.45);padding:var(--s3);display:grid;grid-template-columns:1fr 1fr;gap:4px}
.nav .drop-panel a{display:flex;gap:.7rem;align-items:center;padding:.6rem .7rem;border-radius:12px;font-weight:600;font-size:.92rem;color:var(--ink);opacity:1;text-decoration:none}
.drop-panel a .ico{color:var(--amber-text)}
.nav .drop-panel a:hover{background:var(--sunk);color:var(--ink)}
@media (max-width:920px){
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--brand);border-bottom:1px solid var(--brand-line);flex-direction:column;align-items:stretch;gap:0;padding:var(--s3) max(16px,env(safe-area-inset-right,0px)) var(--s4) max(16px,env(safe-area-inset-left,0px))}
  .nav.open{display:flex}
  .nav>a,.drop>button{padding:.75rem 0;border-bottom:1px solid var(--brand-line);width:100%;font-size:1rem}
  .drop-panel{position:static;width:auto;box-shadow:none;border:0;padding:.4rem 0;grid-template-columns:1fr;background:transparent}
  .nav .drop-panel a{color:var(--on-brand)}
  .nav .drop-panel a:hover{background:rgba(255,255,255,.08);color:var(--on-brand)}
  .drop-panel a .ico{color:var(--amber)}
  .searchbtn{margin-left:auto}
  .searchbtn span{display:none}
  .navbtn{display:inline-flex}
}

/* ---------- shared bits ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--amber);color:var(--amber-ink);text-decoration:none;font:700 1rem/1 var(--f-body);padding:1rem 1.4rem;border-radius:12px;border:0;cursor:pointer;transition:transform .15s ease,filter .15s ease;white-space:nowrap}
.btn:hover{filter:brightness(1.05);transform:translateY(-1px);text-decoration:none}
.btn .ico{width:17px;height:17px}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.chip{display:inline-flex;align-items:center;gap:.4rem;font:600 .74rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ice-ink);background:var(--ice);padding:.45rem .65rem;border-radius:8px;text-decoration:none;white-space:nowrap}
.chip .ico{width:14px;height:14px}
.dark-band .chip{background:rgba(255,255,255,.1);color:var(--on-brand)}
.dark-band .chip .ico{color:var(--amber)}
/* score dial: conic ring, value inside */
.dial{--p:80;--sz:54px;width:var(--sz);height:var(--sz);flex:none;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(closest-side,var(--surface) 79%,transparent 81% 100%),conic-gradient(var(--amber) calc(var(--p)*1%),var(--sunk) 0);
  font:700 calc(var(--sz)*.3)/1 var(--f-display);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.dial.lg{--sz:104px;font-size:1.9rem}
.dial.lg span{display:grid;justify-items:center;gap:.2rem}
.dial.lg small{font:500 .62rem/1 var(--f-mono);letter-spacing:.06em;color:var(--muted)}

/* ---------- home hero (dark band, hot/cold/light trio) ---------- */
.dark-band{background:var(--brand);color:var(--on-brand);position:relative;overflow:hidden}
.dark-band::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 400px at 6% 115%,rgba(242,160,61,.24),transparent 70%),radial-gradient(560px 380px at 96% -12%,rgba(120,190,235,.2),transparent 70%)}
.dark-band>.wrap{position:relative}
.hero{padding-block:var(--s7) var(--s8)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s7);align-items:center}
.hero-grid>*,.cathead>*,.rv-head>*{min-width:0}
.hero h1{font-size:clamp(2.4rem,1.5rem + 3.6vw,4.4rem);line-height:.98;letter-spacing:-.04em;margin-top:var(--s4)}
.hero h1 .hl{color:var(--amber)}
.hero .eyebrow{color:var(--on-brand-muted)}
.hero p.lead{font-size:1.15rem;color:var(--on-brand-muted);max-width:33rem;margin-top:var(--s5)}
.hero-search{margin-top:var(--s6);display:flex;gap:.5rem;max-width:33rem;background:var(--surface);border-radius:14px;padding:.4rem .4rem .4rem 1rem;align-items:center;box-shadow:0 20px 40px -20px rgba(0,0,0,.5)}
.hero-search .ico{color:var(--muted)}
.hero-search input{flex:1;min-width:0;border:0;background:transparent;font:400 1rem var(--f-body);color:var(--ink);outline:none;padding:.5rem 0}
.hero-search .btn{padding:.8rem 1.15rem}
.hero-stats{display:flex;gap:var(--s6);margin-top:var(--s6);flex-wrap:wrap}
.hero-stats div{font:500 .74rem/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--on-brand-muted)}
.hero-stats b{display:block;font:700 2rem/1 var(--f-display);letter-spacing:-.03em;text-transform:none;color:var(--on-brand);margin-bottom:.35rem}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end}
.trio a{position:relative;border-radius:20px;overflow:hidden;display:block;color:#fff;text-decoration:none;background:var(--brand-2)}
.trio a:nth-child(1){aspect-ratio:3/4.6}.trio a:nth-child(2){aspect-ratio:3/5.4}.trio a:nth-child(3){aspect-ratio:3/4.2}
.trio img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.trio a:hover img{transform:scale(1.05)}
.trio a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,10,20,.8))}
.trio span{position:absolute;z-index:1;left:12px;right:12px;bottom:12px;font:700 1.05rem/1.1 var(--f-display);letter-spacing:-.02em}
.trio span small{display:block;font:500 .64rem/1 var(--f-mono);letter-spacing:.12em;margin-bottom:.4rem;color:var(--amber)}
@media (max-width:920px){.hero-grid{grid-template-columns:1fr;gap:var(--s6)}.trio a:nth-child(n){aspect-ratio:3/4}}

/* goal rail under hero */
.rail{background:var(--surface);border-bottom:1px solid var(--line)}
.rail .wrap{display:flex;gap:.5rem;overflow-x:auto;padding-block:.9rem;scrollbar-width:none}
.rail .wrap::-webkit-scrollbar{display:none}
.rail a{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;padding:.55rem .85rem;border-radius:999px;background:var(--sunk);color:var(--ink);text-decoration:none;font-weight:600;font-size:.88rem}
.rail a .ico{width:16px;height:16px;color:var(--amber-text)}
.rail a:hover{background:var(--ice);color:var(--ice-ink)}

.section{padding-block:var(--s7)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap}
.section-head p{color:var(--muted);max-width:40rem;margin-top:.45rem}
.section-head a{font-weight:700;text-decoration:none;white-space:nowrap;color:var(--ink);border-bottom:2px solid var(--amber);padding-bottom:2px}

/* bento categories */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:.8rem;min-height:130px;padding:var(--s4) var(--s5) var(--s5);border-radius:var(--r);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:border-color .15s ease,transform .15s ease}
.tile:hover{border-color:var(--amber);transform:translateY(-2px)}
.tile .ico{width:28px;height:28px;color:var(--amber-text)}
.tile b{display:block;font:700 1.12rem/1.15 var(--f-display);letter-spacing:-.02em;margin-top:.3rem}
.tile small{font:500 .7rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tile.photo{grid-row:span 2;color:#fff;border:0;overflow:hidden;justify-content:flex-end;min-height:276px}
.tile.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.tile.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,10,20,.05) 30%,rgba(5,10,20,.82))}
.tile.photo:hover img{transform:scale(1.04)}
.tile.photo>span{position:relative;z-index:1}
.tile.photo small{color:var(--amber)}
.tile.photo b{font-size:1.5rem}
@media (max-width:980px){.bento{grid-template-columns:repeat(2,1fr)}.tile.photo{grid-row:span 1;min-height:220px}.tile.photo:first-child{grid-column:span 2}}
@media (max-width:460px){.bento{grid-template-columns:1fr}.tile.photo:first-child{grid-column:auto}}

/* review cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:20px}
.card{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 1px 2px rgba(14,26,43,.06),0 10px 30px -18px rgba(14,26,43,.28);transition:transform .18s ease,box-shadow .18s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(14,26,43,.06),0 18px 40px -18px rgba(14,26,43,.38)}
.card .ph{aspect-ratio:3/2;background:var(--sunk);position:relative}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .ph .dial{position:absolute;right:14px;bottom:-24px;--sz:52px;box-shadow:0 6px 16px -6px rgba(0,0,0,.35)}
.card .body{padding:var(--s4) var(--s5) var(--s5);display:flex;flex-direction:column;gap:.4rem;flex:1}
.card .eyebrow{font-size:.68rem;color:var(--amber-text);padding-right:56px}
.card h3{font-size:1.22rem;padding-right:40px}
.card p{color:var(--muted);font-size:.93rem;line-height:1.5}
.card .more{margin-top:auto;padding-top:.5rem;font-weight:700;font-size:.88rem;color:var(--ink)}

/* score recipe */
.recipe{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s5);border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.recipe div{padding:var(--s5);border-right:1px solid var(--line);position:relative}
.recipe div:last-child{border-right:0}
.recipe div::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--amber)}
.recipe div:nth-child(2)::before{background:#e07b3c}.recipe div:nth-child(3)::before{background:#7cb8de}.recipe div:nth-child(4)::before{background:#2f6f9a}
.recipe .w{font:700 2rem/1 var(--f-display);letter-spacing:-.03em}
.recipe h3{margin:.6rem 0 .35rem}
.recipe p{color:var(--muted);font-size:.93rem}
@media (max-width:900px){.recipe{grid-template-columns:1fr 1fr}.recipe div:nth-child(2){border-right:0}.recipe div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:520px){.recipe{grid-template-columns:1fr}.recipe div{border-right:0;border-bottom:1px solid var(--line)}}

/* guides list */
.guides{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.guide{display:grid;grid-template-columns:96px 1fr;gap:var(--s4);align-items:center;text-decoration:none;color:var(--ink);padding:var(--s3);border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.guide img{width:96px;height:96px;object-fit:cover;border-radius:12px}
.guide h3{font-size:1.06rem;margin-top:.3rem}
.guide:hover{border-color:var(--amber)}
.guide .eyebrow{color:var(--amber-text);font-size:.68rem}
@media (max-width:420px){.guides{grid-template-columns:1fr}.guide{grid-template-columns:72px 1fr}.guide img{width:72px;height:72px}}

/* ---------- page heads ---------- */
.crumbs{font-size:.85rem;color:var(--muted);display:flex;gap:.45rem;flex-wrap:wrap;padding-top:var(--s5)}
.crumbs a{color:inherit;text-decoration:none}.crumbs a:hover{color:var(--amber)}
.dark-band .crumbs{color:var(--on-brand-muted)}
.phead{padding-block:0 var(--s7)}
.phead p.dek{font-size:1.18rem;color:var(--on-brand-muted);max-width:44rem;margin-top:var(--s4)}
.phead h1{margin-top:var(--s5)}
.cathead{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s7);align-items:center;padding-block:var(--s5) var(--s8)}
.cathead h1{margin-top:var(--s4)}
.cathead .dek{color:var(--on-brand-muted);font-size:1.15rem;margin-top:var(--s4);max-width:40rem}
.cathead .gl{display:inline-block;margin-top:var(--s5);color:var(--amber);font-weight:700;text-decoration:none}
.cathead img{border-radius:22px;aspect-ratio:5/4;object-fit:cover;width:100%}
.lookfor{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5) var(--s6);margin-block:calc(var(--s7) * -1) var(--s6);position:relative;box-shadow:0 18px 40px -26px rgba(14,26,43,.35)}
.lookfor ul{margin:.8rem 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.6rem 2rem;font-size:.95rem}
.lookfor li{display:grid;grid-template-columns:22px 1fr;gap:.4rem}
.lookfor li::before{content:"✓";font-weight:700;color:var(--amber-text)}
@media (max-width:820px){.cathead{grid-template-columns:1fr;gap:var(--s5)}}
.toolbar{display:flex;gap:var(--s3);align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:var(--s5)}
.toolbar select,.toolbar input{font:400 .95rem var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.65rem 1rem;min-width:0}
.toolbar input{flex:1;max-width:380px}

/* ---------- review ---------- */
.rv-band{padding-bottom:calc(var(--s8) + 2.5rem)}
.rv-head{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s7);align-items:start;margin-top:var(--s5)}
.rv-head h1{font-size:clamp(1.95rem,1.4rem + 2vw,3rem);margin-top:var(--s4)}
.rv-head .dek{color:var(--on-brand-muted);font-size:1.15rem;margin-top:var(--s4);max-width:42rem}
.rv-meta{display:flex;gap:.5rem .9rem;flex-wrap:wrap;align-items:center;margin-top:var(--s5);font-size:.86rem;color:var(--on-brand-muted)}
.rv-meta .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}
.panel{background:var(--surface);color:var(--ink);border-radius:22px;padding:var(--s5);display:flex;flex-direction:column;gap:var(--s4);box-shadow:0 30px 60px -30px rgba(0,0,0,.55);position:relative;z-index:3}
.panel-top{display:flex;align-items:center;gap:var(--s4)}
.panel-top b{display:block;font:700 1.25rem/1.15 var(--f-display);letter-spacing:-.02em}
.panel-top span{font-size:.85rem;color:var(--muted)}
.panel dl{margin:0;display:grid;gap:.7rem;border-top:1px solid var(--line);padding-top:var(--s4)}
.panel dt{font:500 .66rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}
.panel dd{margin:0;font-size:.92rem;line-height:1.45}
.panel .btn{width:100%}
.panel .fine{font-size:.75rem;color:var(--muted);text-align:center}
.rv-photo{margin-top:calc(-1 * (var(--s8) + 1rem));position:relative;z-index:2}
.rv-hero{border-radius:22px;overflow:hidden;aspect-ratio:21/8;background:var(--sunk);box-shadow:0 30px 60px -36px rgba(0,0,0,.6);max-width:calc(100% - 340px - var(--s7))}
.rv-hero img{width:100%;height:100%;object-fit:cover}
.credit{font-size:.75rem;color:var(--muted);margin-top:.5rem}
@media (max-width:1000px){.rv-head{grid-template-columns:1fr;gap:var(--s5)}.rv-band{padding-bottom:calc(var(--s8) + 1rem)}.rv-hero{aspect-ratio:16/9;max-width:none}}

.rv-body{display:grid;grid-template-columns:230px minmax(0,var(--read));gap:var(--s8);padding-block:var(--s7)}
.toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + 96px);align-self:start;font-size:.88rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.toc ol{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:.1rem;counter-reset:t}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:1.7rem 1fr;padding:.35rem .3rem;color:var(--muted);text-decoration:none;border-radius:8px;line-height:1.35}
.toc a::before{content:counter(t,decimal-leading-zero);font:500 .72rem/1.65 var(--f-mono);color:var(--amber-text)}
.toc a:hover{color:var(--ink);background:var(--sunk)}
@media (max-width:1000px){.rv-body{grid-template-columns:minmax(0,1fr);gap:0}.toc{display:none}}

.prose{min-width:0}
.prose>*+*{margin-top:1.15rem}
.prose h2{margin-top:2.8rem;scroll-margin-top:96px;font-size:clamp(1.45rem,1.15rem + 1vw,1.95rem)}
.prose h3{margin-top:1.6rem}
.prose ul,.prose ol{padding-left:1.2rem}
.prose li+li{margin-top:.35rem}
.prose li::marker{color:var(--amber-text)}
.prose .intro p:first-child{font-size:1.17rem;line-height:1.6}
.prose .intro p+p{margin-top:1.1rem}
.quick{background:var(--ice);color:var(--ink);border-radius:var(--r);padding:var(--s5) var(--s6);border-left:6px solid var(--ice-ink)}
.quick .eyebrow{color:var(--ice-ink)}
.quick p{margin-top:.45rem;font-size:1.06rem}
.quick ol{margin:.6rem 0 0}
.pc{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.pc>div{border-radius:var(--r);padding:var(--s5)}
.pc .plus{background:var(--surface);border:1px solid var(--line)}
.pc .minus{background:var(--heat)}
.pc h3{font:600 .74rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .9rem;color:var(--muted)}
.pc ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;font-size:.95rem}
.pc li{display:grid;grid-template-columns:20px 1fr;gap:.55rem;line-height:1.45}
.pc li::before{font:700 1rem/1.45 var(--f-body)}
.pc .plus li::before{content:"+";color:var(--good)}
.pc .minus li::before{content:"−";color:var(--amber-text)}
@media (max-width:640px){.pc{grid-template-columns:1fr}}
.tablewrap{overflow-x:auto;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
table.products{width:100%;border-collapse:collapse;font-size:.94rem}
table.products th{font:600 .68rem/1 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--on-brand);text-align:left;padding:.95rem 1rem;background:var(--brand)}
table.products td{padding:.9rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
table.products tr:nth-child(even) td{background:var(--bg)}
table.products tr:last-child td{border-bottom:0}
table.products td:first-child{font-weight:700;min-width:150px}
table.products td:last-child{white-space:nowrap;font:600 .86rem var(--f-mono);color:var(--amber-text)}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.95rem 1.1rem}
.faq details+details{margin-top:.6rem}
.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--sunk);font:600 1rem/1 var(--f-mono);color:var(--ink)}
.faq details[open] summary::after{content:"−";background:var(--amber);color:var(--amber-ink)}
.faq details p{margin-top:.6rem;color:var(--muted)}
.note{background:var(--heat);border-radius:var(--r);padding:var(--s4) var(--s5);font-size:.93rem}
.note b{display:block;font:600 .7rem/1 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.5rem;color:var(--amber-text)}
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;background:var(--brand);color:var(--on-brand);border-radius:var(--r);padding:var(--s5) var(--s6)}
.cta-band .eyebrow{color:var(--on-brand-muted)}
.cta-band b{font:700 1.22rem/1.2 var(--f-display);letter-spacing:-.02em}
.sticky-cta{display:none}
@media (max-width:1000px){
  .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:15;gap:.8rem;align-items:center;justify-content:space-between;background:var(--brand);color:var(--on-brand);padding:.7rem max(16px,env(safe-area-inset-right,0px)) calc(.7rem + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
  .sticky-cta .btn{padding:.75rem 1.1rem;font-size:.95rem}
  .sticky-cta b{font:700 .95rem var(--f-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.has-sticky{padding-bottom:76px}
}

/* ---------- guide picks ---------- */
.pick{display:grid;grid-template-columns:250px minmax(0,1fr);gap:var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:var(--s4);margin-top:var(--s6);position:relative}
.pick .rank{position:absolute;left:-12px;top:-12px;width:40px;height:40px;border-radius:12px;background:var(--brand);color:var(--amber);display:grid;place-items:center;font:700 1.1rem/1 var(--f-display);z-index:1}
.pick img{border-radius:14px;aspect-ratio:4/3;object-fit:cover;width:100%}
.pick .award{font:600 .7rem/1 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--amber-text)}
.pick h3{font-size:1.5rem;margin:.45rem 0 .55rem}
.pick .meta{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-bottom:.7rem}
.pick .why p+p{margin-top:.6rem}
.pick .acts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:var(--s4)}
.pick .acts .btn{padding:.75rem 1.05rem;font-size:.93rem}
@media (max-width:720px){.pick{grid-template-columns:1fr}.pick .rank{left:10px;top:10px}}
.g-head{max-width:860px;padding-block:var(--s5) calc(var(--s8) + 1rem)}
.g-head h1{margin-top:var(--s4)}
.g-head .dek{color:var(--on-brand-muted);font-size:1.2rem;margin-top:var(--s4)}
.g-photo{max-width:860px;margin-top:calc(-1 * var(--s8));position:relative;z-index:2}
.g-photo .rv-hero{max-width:none;aspect-ratio:21/9}
.g-body{max-width:860px;padding-block:var(--s6) var(--s7)}

/* ---------- static + A–Z ---------- */
.page{max-width:var(--read);padding-block:var(--s7) var(--s8)}
.page h2{margin-top:2.4rem}
.page>*+*{margin-top:1rem}
.az{columns:3 260px;column-gap:var(--s6)}
.az a{display:flex;justify-content:space-between;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);break-inside:avoid;font-weight:500}
.az a span{color:var(--amber-text);font:600 .8rem var(--f-mono);white-space:nowrap}
.az a:hover{color:var(--ice-ink)}
.az-group h2{margin:2.4rem 0 .8rem;font-size:1.35rem;display:flex;align-items:center;gap:.6rem}
.az-group h2 a{color:inherit;text-decoration:none}
.az-group h2 .ico{color:var(--amber-text)}

/* ---------- search overlay ---------- */
.so{position:fixed;inset:0;z-index:40;background:rgba(5,10,20,.6);display:flex;justify-content:center;align-items:flex-start;padding:calc(env(safe-area-inset-top,0px) + 80px) max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px))}
.so-box{width:min(640px,100%);background:var(--surface);border-radius:20px;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}
.so-box input{width:100%;border:0;border-bottom:1px solid var(--line);padding:1.15rem 1.25rem;font:400 1.1rem var(--f-body);background:transparent;color:var(--ink);outline:none}
.so-res{max-height:60vh;overflow:auto}
.so-res a{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.so-res a:hover{background:var(--sunk)}
.so-res span{color:var(--amber-text);font:500 .78rem var(--f-mono);white-space:nowrap}
.so-empty{padding:1rem 1.25rem;color:var(--muted)}

/* ---------- footer (dark) ---------- */
.foot{background:var(--brand);color:var(--on-brand);margin-top:var(--s7);padding-block:var(--s7) var(--s5);font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s6)}
.foot h4{font:600 .7rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin:0 0 1rem}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.foot a{color:var(--on-brand);text-decoration:none;opacity:.85}.foot a:hover{opacity:1;color:var(--amber)}
.foot .about{color:var(--on-brand-muted);margin-top:1rem;max-width:22rem}
.foot .fine{border-top:1px solid var(--brand-line);margin-top:var(--s6);padding-top:var(--s5);color:var(--on-brand-muted);font-size:.8rem;display:grid;gap:.5rem}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* brand product photos (white-background shots) */
.card .ph.contain{background:#fff}
.card .ph.contain img{object-fit:contain;padding:14px}
.rv-hero.contain{background:#fff;aspect-ratio:16/9;max-height:470px}
.rv-hero.contain img{object-fit:contain;padding:18px}
.pick-ph{display:block}
.pick-ph.contain img{object-fit:contain;background:#fff;padding:10px}
