/* WarmGearReport: shared styles for every page (tokens, chrome, components). Page-only styles live in
   assets/pages/<page>.css. Built from the approved homepage mockup of 2026-10-18. */
:root{
  --ground:#f4f7fa; --frost:#e8eff6; --frost-2:#d7e4ef; --surface:#fff;
  --ink:#172131; --text:#3a4556; --muted:#5b6678; --line:#dfe6ee; --line-2:#cfdae6;
  --ember:#ea6a33; --ember-600:#c2410c; --ember-700:#9f3509; --ember-text:#b23c0c; --ember-tint:#fdeee6;
  --glow:#ffb547; --glow-tint:#fff3e0;
  --night:#121a29; --night-2:#1b2539; --night-3:#24304a; --night-line:#2e3b55; --night-text:#eef2f8; --night-muted:#aab7ca; --ice:#9ccbec;
  --ok:#17784c; --ok-tint:#e5f4ec; --bad:#b42318; --bad-tint:#fdecea; --focus:#2563eb;
  --display:'Bricolage Grotesque','Segoe UI',system-ui,sans-serif; --body:'Manrope','Segoe UI',system-ui,sans-serif;
  --shell:76rem; --gut:clamp(1rem,.4rem + 2.4vw,2rem); --sec:clamp(3.5rem,2.2rem + 4vw,6rem);
  --r-s:12px; --r-m:18px; --r-l:24px; --r-xl:30px;
  --sh-1:0 1px 2px rgb(23 33 49/.05),0 12px 30px -16px rgb(23 33 49/.28);
  --sh-2:0 2px 8px rgb(23 33 49/.06),0 28px 56px -26px rgb(23 33 49/.45);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--text);font:400 1rem/1.6 var(--body);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--display);color:var(--ink);font-weight:700;letter-spacing:-.015em;line-height:1.12}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.wrap{max-width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic--sm{width:1rem;height:1rem}.ic--lg{width:1.6rem;height:1.6rem}

/* buttons, pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.75rem;padding:.6rem 1.15rem;border-radius:999px;border:1.5px solid transparent;font:700 .95rem/1.1 var(--body);text-decoration:none;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}
.btn--fire{background:var(--ember-600);color:#fff;box-shadow:0 10px 22px -12px rgb(194 65 12/.8)}
.btn--fire:hover{background:var(--ember-700);transform:translateY(-1px)}
.btn--line{border-color:var(--line-2);background:#fff;color:var(--ink)}
.btn--line:hover{border-color:var(--ink)}
.btn--ink{background:var(--ink);color:#fff}
.btn--sm{min-height:2.4rem;padding:.45rem .95rem;font-size:.875rem}
.btn--block{width:100%}
.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;border-radius:999px;background:var(--ember-tint);color:var(--ember-text);font-size:.82rem;font-weight:700}
.pill--frost{background:var(--frost);color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:8px;background:var(--frost);color:var(--ink);font-size:.76rem;font-weight:650;line-height:1.35}
.more-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--ember-text);font-weight:750;font-size:.95rem;text-decoration:none;white-space:nowrap}
.more-link:hover{text-decoration:underline}

/* section heads */
.sec{padding-block:var(--sec)}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 2rem;margin-bottom:clamp(1.5rem,1rem + 1.5vw,2.25rem)}
.head h2{margin-top:.7rem;font-size:clamp(1.75rem,1.3rem + 1.6vw,2.6rem)}
.head p.lede{margin-top:.5rem;max-width:36rem;color:var(--muted)}

/* mockup strip + SEO notes */
.mock{background:#fff7d6;color:#4a3800;font-size:.85rem;border-bottom:1px solid #f1df9a}
.mock .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;justify-content:space-between;padding-block:.45rem}
.mock button{font:700 .8rem var(--body);border:1px solid #c9a52a;background:#fff;color:#4a3800;border-radius:999px;padding:.3rem .8rem;cursor:pointer}
[data-seo]{position:relative}
html.notes [data-seo]{outline:2px dashed #d4a017;outline-offset:-2px}
html.notes [data-seo]::before{content:attr(data-seo);position:absolute;z-index:60;top:.4rem;left:.4rem;max-width:min(30rem,calc(100% - .8rem));padding:.4rem .6rem;border-radius:8px;background:#fff3b0;color:#3d2e00;font:600 .78rem/1.4 var(--body);box-shadow:0 6px 18px rgb(0 0 0/.18);pointer-events:none}
/* Sample chip ("Sample picks", "Sample figures", "Demo guides"): marks sample content in the mockup. Always
   with data-mock, so the audit treats it as mockup chrome. A sample quote carries no chip (owner, 2026-10-18),
   only the hidden data-sample-quote attribute, until real archived buyers' words replace it. */
.sample-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.14rem .55rem;border-radius:999px;border:1px dashed #c9a52a;background:#fff7d6;color:#5c4700;font:700 .75rem/1.35 var(--body);white-space:nowrap;vertical-align:middle}
.sample-chip::before{content:"";width:.4rem;height:.4rem;border-radius:999px;background:#c9a52a}
.say>blockquote:first-child{margin-top:0}

/* topbar + masthead */
.topbar{background:var(--night);color:var(--night-text);font-size:.85rem}
.topbar .wrap{display:flex;gap:1rem;align-items:center;justify-content:space-between;min-height:2.4rem}
.topbar p{display:flex;align-items:center;gap:.5rem}
.topbar a{color:var(--glow);font-weight:700;text-decoration:none}
.topbar__side{display:none;gap:1.25rem}
.tb-long,.topbar p a{display:none}
.topbar__side a{color:var(--night-muted);font-weight:600}
.masthead{position:sticky;top:0;z-index:40;background:rgb(255 255 255/.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.masthead .wrap{position:relative;display:flex;align-items:center;gap:1rem;min-height:4.25rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;flex:none}
.brand__mark{width:2.4rem;height:2.4rem}
.brand__name{font:800 1.28rem/1 var(--display);color:var(--ink);letter-spacing:-.02em}
.brand__name b{color:var(--ember-600);font-weight:700}
.nav{display:none;margin-left:auto}
.nav>ul{display:flex;gap:.25rem}
.nav__item{position:static}
.nav__top{display:inline-flex;align-items:center;gap:.25rem;padding:.6rem .8rem;border-radius:10px;color:var(--ink);font-weight:700;font-size:.95rem;text-decoration:none}
.nav__top:hover,.nav__item:focus-within .nav__top{background:var(--frost)}
.nav__top .ic{width:.9rem;height:.9rem;transition:transform .2s}
/* The panel hangs from the header bar, centred, so it never runs off a 1024 px screen. It stays open for a
   quarter second after the pointer leaves, and ::before bridges the gap down from the menu item. */
.mega{position:absolute;top:calc(100% + .35rem);left:50%;display:grid;grid-template-columns:1fr 1fr 12rem;gap:1.25rem;width:min(44rem,calc(100% - 2 * var(--gut)));padding:1.25rem;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-2);border:1px solid var(--line);visibility:hidden;opacity:0;transform:translate(-50%,6px);transition:opacity .16s ease,transform .16s ease,visibility 0s linear .25s}
.mega::before{content:"";position:absolute;left:0;right:0;top:-1.6rem;height:1.6rem}
.nav__item:hover .mega,.nav__item:focus-within .mega{visibility:visible;opacity:1;transform:translate(-50%,0);transition-delay:0s}
@media (prefers-reduced-motion:reduce){.mega{transition:visibility 0s linear .25s}}
.mega h4{font:700 .78rem var(--body);color:var(--muted);margin-bottom:.5rem}
.mega li a{display:flex;align-items:center;gap:.6rem;padding:.45rem .5rem;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:650;font-size:.93rem}
.mega li a:hover{background:var(--ground)}
.mega li small{display:block;color:var(--muted);font-weight:500;font-size:.78rem}
.mega__ico{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:10px;background:var(--ember-tint);color:var(--ember-600)}
.mega__promo{position:relative;border-radius:var(--r-m);overflow:hidden;background:var(--night);color:#fff;text-decoration:none;display:flex;align-items:flex-end;min-height:12rem}
.mega__promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}
.mega__promo span{position:relative;padding:.9rem;font:700 1rem/1.25 var(--display)}
.mast__actions{display:flex;align-items:center;gap:.4rem;margin-left:auto}
.icon-btn{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.mast__cta{display:none}
.burger{position:relative}
.burger summary{list-style:none}
.burger summary::-webkit-details-marker{display:none}
.burger__panel{position:absolute;right:0;top:calc(100% + .5rem);width:min(20rem,calc(100vw - 2rem));padding:.75rem;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-2);border:1px solid var(--line)}
.burger__panel a{display:flex;align-items:center;gap:.6rem;padding:.65rem .6rem;border-radius:10px;color:var(--ink);font-weight:700;text-decoration:none}
.burger__panel a:hover{background:var(--ground)}
.burger__panel h4{font:700 .78rem var(--body);color:var(--muted);padding:.6rem .6rem .2rem}
/* header search: the icon opens a small form that sends q to search.html. The panel hangs from the
   header bar (not from the icon), so it never runs off a phone screen. */
.qsearch summary{list-style:none}
.qsearch summary::-webkit-details-marker{display:none}
.qsearch[open] summary{background:var(--frost);border-color:var(--line-2)}
.qsearch:not([open]) .qsearch__panel{display:none}
.qsearch__panel{position:absolute;right:var(--gut);top:calc(100% + .5rem);z-index:45;width:min(26rem,calc(100% - 2 * var(--gut)));padding:.6rem;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-2);border:1px solid var(--line)}
.qsearch__panel .finder{margin-top:0;max-width:none;box-shadow:none;background:var(--ground)}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#eaf1f8 0%,#f4f7fa 100%)}
.hero__lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
/* the isotherm lines stay clear of the text column: faded out on the left, where headings and ledes sit */
.hero__lines{-webkit-mask-image:linear-gradient(90deg,transparent 0,transparent 48%,#000 78%);mask-image:linear-gradient(90deg,transparent 0,transparent 48%,#000 78%)}
@media (max-width:63.99rem){.hero__lines{opacity:.45}}
.hero__grid{position:relative;display:grid;gap:2.5rem;padding-block:clamp(2.25rem,1.4rem + 3.5vw,4.5rem) clamp(5rem,4rem + 3vw,7rem)}
.hero h1{margin-top:1rem;font-size:clamp(2.3rem,1.5rem + 2.9vw,3.8rem);line-height:1.04;letter-spacing:-.03em;font-weight:800;max-width:17ch}
.hero__lede{margin-top:1.1rem;max-width:30rem;font-size:1.13rem;color:var(--muted)}
.finder{display:flex;align-items:center;gap:.5rem;margin-top:1.6rem;max-width:34rem;padding:.4rem .4rem .4rem 1rem;border-radius:999px;background:#fff;box-shadow:var(--sh-1);border:1px solid var(--line)}
.finder .ic{color:var(--muted)}
.finder input{flex:1;min-width:0;border:0;background:none;font:500 1rem var(--body);color:var(--ink);padding:.55rem 0}
.finder input:focus{outline:none}
.finder:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.popular{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:1rem;font-size:.88rem}
.popular span{color:var(--muted);font-weight:650;margin-right:.15rem}
.popular a{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .75rem;border-radius:999px;background:rgb(255 255 255/.75);border:1px solid var(--line);color:var(--ink);font-weight:650;text-decoration:none}
.popular a:hover{border-color:var(--ember);color:var(--ember-text)}
.popular a .ic{color:var(--ember-600)}
.stage{position:relative}
.stage__glow{position:absolute;inset:-12% -10% -6% 6%;background:radial-gradient(closest-side,rgb(255 181 71/.45),rgb(234 106 51/.12) 60%,transparent 75%);filter:blur(10px)}
.stage__photo{position:relative;aspect-ratio:4/3;border-radius:var(--r-xl);overflow:hidden;background:var(--frost-2);box-shadow:var(--sh-2)}
.stage__photo img{width:100%;height:100%;object-fit:cover}
.stage__tag{position:absolute;top:1rem;right:1rem;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:999px;background:rgb(18 26 41/.72);color:#fff;font-size:.8rem;font-weight:700;backdrop-filter:blur(6px)}
.spot{position:relative;margin:-3.5rem .75rem 0;padding:1.15rem 1.2rem 1.1rem;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-2)}
.spot__flag{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;border-radius:999px;background:linear-gradient(90deg,var(--ember-600),#e0582a);color:#fff;font-size:.78rem;font-weight:800}
.spot__main{display:grid;grid-template-columns:5.5rem 1fr;gap:.9rem;align-items:center;margin-top:.85rem}
.spot__img{aspect-ratio:1;border-radius:var(--r-m);overflow:hidden;background:var(--frost)}
.spot__img img{width:100%;height:100%;object-fit:cover}
.spot__rank{font-size:.8rem;font-weight:750;color:var(--ember-text)}
.spot__name{margin-top:.15rem;font-size:1.25rem;line-height:1.18}
.spot__name a{text-decoration:none}
.spot__name a:hover{text-decoration:underline}
.spot__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}

/* runtime meter: battery hours per heat setting */
.meter{margin-top:.85rem}
.meter__label{display:flex;justify-content:space-between;font-size:.75rem;font-weight:700;color:var(--muted)}
.meter__bars{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-top:.35rem}
.meter__bar{display:grid;gap:.25rem}
.meter__track{height:.45rem;border-radius:999px;background:var(--frost);overflow:hidden}
.meter__fill{display:block;height:100%;width:calc(var(--h)/12*100%);border-radius:inherit}
.meter__bar:nth-child(1) .meter__fill{background:#f6b04d}
.meter__bar:nth-child(2) .meter__fill{background:#ef7f3a}
.meter__bar:nth-child(3) .meter__fill{background:#d94a1f}
.meter__bar small{font-size:.75rem;font-weight:650;color:var(--text);white-space:nowrap}
.meter__bar small b{color:var(--ink)}

/* trust strip */
.trust{position:relative;z-index:3;margin-top:-3rem}
.trust dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-2);overflow:hidden}
.trust__item{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust__item:nth-child(2n){border-right:0}
.trust__ico{display:grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border-radius:14px;background:var(--ember-tint);color:var(--ember-600)}
.trust dd{font:800 1.35rem/1 var(--display);color:var(--ink)}
.trust dt{font-size:.82rem;line-height:1.3;color:var(--muted);font-weight:600;margin-top:.2rem}

/* body map + categories */
.zones{display:grid;gap:2rem;align-items:center}
.thermal{position:relative;width:100%;max-width:24rem;margin-inline:auto;aspect-ratio:22/26}
.thermal__card{position:absolute;inset:6% 10%;border-radius:var(--r-xl);background:radial-gradient(circle at 50% 40%,#22304b,#121a29 70%);box-shadow:var(--sh-2)}
.thermal svg{position:absolute;top:4%;left:50%;height:92%;width:auto;transform:translateX(-50%)}
.thermal__scale{display:flex;max-width:16rem;margin:1rem auto 0;align-items:center;gap:.4rem;font-size:.75rem;font-weight:700;color:var(--muted)}
.thermal__scale i{flex:1;height:.35rem;border-radius:999px;background:linear-gradient(90deg,#3a7bd5,#6656c9,#b2457a,#f0612e,#ff9a3c,#ffd36b)}
.spotlabel{position:absolute;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem .3rem .35rem;border-radius:999px;background:#fff;color:var(--ink);font-size:.75rem;font-weight:750;text-decoration:none;box-shadow:var(--sh-1);white-space:nowrap;transform:translateY(-50%)}
.spotlabel:hover{color:var(--ember-text)}
.spotlabel i{display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:999px;background:var(--ember-600);color:#fff;font:800 .75rem/1 var(--body);font-style:normal}
.spotlabel--l{left:0}.spotlabel--r{right:0}
.pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none;opacity:.5}}
.zones__note{margin-top:1rem;text-align:center;font-size:.85rem;color:var(--muted)}
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.cat{display:flex;flex-direction:column;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-1);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
.cat:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.cat__img{position:relative;aspect-ratio:4/3;background:var(--frost)}
.cat__img img{width:100%;height:100%;object-fit:cover}
.cat__where{position:absolute;left:.55rem;top:.55rem}
.cat__body{padding:.75rem .85rem .9rem}
.cat__body h3{font-size:1.02rem;line-height:1.2}
.cat__body small{display:block;margin-top:.25rem;color:var(--muted);font-size:.78rem;font-weight:600}

/* situations */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(16.5rem,78%);gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem 1rem;margin-inline:-.25rem;scrollbar-width:thin}
.rail>*{scroll-snap-align:start}
.sit{display:flex;flex-direction:column;gap:.75rem;padding:1.1rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .2s}
.sit:hover{border-color:var(--ember);box-shadow:var(--sh-1);transform:translateY(-2px)}
.sit__ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:linear-gradient(135deg,var(--glow-tint),var(--ember-tint));color:var(--ember-600)}
.sit h3{font-size:1.1rem}
.sit__pick{display:grid;grid-template-columns:3rem 1fr;gap:.6rem;align-items:center;margin-top:auto;padding-top:.75rem;border-top:1px dashed var(--line-2)}
.sit__pick img{width:3rem;height:3rem;border-radius:10px;object-fit:cover;background:var(--frost)}
.sit__pick small{display:block;font-size:.75rem;font-weight:700;color:var(--ember-text)}
.sit__pick b{display:block;font-size:.86rem;line-height:1.25}

/* top picks tabs */
.tabs input{position:absolute;opacity:0;pointer-events:none}
.tabs__bar{display:inline-flex;flex-wrap:wrap;gap:.35rem;padding:.35rem;border-radius:999px;background:#fff;border:1px solid var(--line);margin-bottom:1.5rem}
.tabs__bar label{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:999px;font-weight:750;font-size:.92rem;color:var(--muted);cursor:pointer}
#tab-wear:checked~.tabs__bar label[for=tab-wear],#tab-home:checked~.tabs__bar label[for=tab-home],#tab-out:checked~.tabs__bar label[for=tab-out]{background:var(--ink);color:#fff}
#tab-wear:focus-visible~.tabs__bar label[for=tab-wear],#tab-home:focus-visible~.tabs__bar label[for=tab-home],#tab-out:focus-visible~.tabs__bar label[for=tab-out]{outline:3px solid var(--focus)}
.panels .panel{display:none}
#tab-wear:checked~.panels .panel--wear,#tab-home:checked~.panels .panel--home,#tab-out:checked~.panels .panel--out{display:grid}
.grid4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.prod{display:flex;flex-direction:column;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-1);overflow:hidden}
.prod__media{position:relative;aspect-ratio:5/4;background:var(--frost)}
.prod__media img{width:100%;height:100%;object-fit:cover}
.prod__rank{position:absolute;left:.6rem;top:.6rem;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:999px;background:#fff;color:var(--ink);font:800 1.05rem/1 var(--display);box-shadow:var(--sh-1)}
.prod__rank--one{background:var(--ember-600);color:#fff}
.prod__award{position:absolute;left:.6rem;bottom:.6rem;right:.6rem;display:flex}
.prod__award span{padding:.28rem .6rem;border-radius:8px;background:rgb(18 26 41/.82);color:#fff;font-size:.75rem;font-weight:750;backdrop-filter:blur(4px)}
.prod__store{position:absolute;right:.6rem;top:.6rem;padding:.25rem .55rem;border-radius:8px;background:var(--glow-tint);color:#6b3b00;border:1px solid #f3c887;font-size:.75rem;font-weight:800}
.prod__body{display:flex;flex-direction:column;flex:1;padding:.85rem .9rem 1rem}
.prod__type{font-size:.75rem;font-weight:700;color:var(--muted)}
.prod__body h3{margin-top:.2rem;font-size:1.02rem;line-height:1.22}
.prod__chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.7rem}
.prod__facts{display:grid;gap:.3rem;margin-top:.8rem;font-size:.78rem;font-weight:650;color:var(--text)}
.prod__facts li{display:flex;align-items:center;gap:.4rem}
.prod__facts .ic{width:.95rem;height:.95rem;color:var(--ember-600)}
.prod__actions{display:grid;gap:.4rem;margin-top:auto;padding-top:.95rem}
.prod__why{justify-self:center;font-size:.84rem}

/* featured guides */
.mag{display:grid;gap:1.25rem}
.story{display:flex;flex-direction:column;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);overflow:hidden}
.story__media{position:relative;aspect-ratio:16/9;background:var(--frost)}
.story__media img{width:100%;height:100%;object-fit:cover}
.story__media .pill{position:absolute;left:1rem;top:1rem;background:rgb(255 255 255/.92);color:var(--ink)}
.story__body{padding:1.25rem 1.3rem 1.4rem}
.story__body h3{font-size:clamp(1.35rem,1.1rem + .9vw,1.8rem)}
.story__body h3 a{text-decoration:none}
.story__body h3 a:hover{text-decoration:underline}
.story__dek{margin-top:.5rem;color:var(--muted)}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:1.1rem}
.podium a{position:relative;display:grid;gap:.45rem;padding:.55rem;border-radius:var(--r-s);background:var(--ground);text-decoration:none;color:var(--ink);font-size:.8rem;font-weight:700;line-height:1.25}
.podium img{width:100%;aspect-ratio:1;border-radius:9px;object-fit:cover;background:var(--frost)}
.podium i{position:absolute;left:.25rem;top:.25rem;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:999px;background:#fff;font:800 .8rem/1 var(--display);font-style:normal;box-shadow:var(--sh-1)}
.podium a:first-child i{background:var(--ember-600);color:#fff}
.story__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted);font-weight:600}
.sides{display:grid;gap:.85rem;align-content:start}
.side{display:grid;grid-template-columns:6.5rem 1fr;gap:.9rem;align-items:center;padding:.6rem;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-1);text-decoration:none;color:var(--ink);transition:transform .2s}
.side:hover{transform:translateX(3px)}
.side img{width:6.5rem;aspect-ratio:1;border-radius:var(--r-s);object-fit:cover;background:var(--frost)}
.side h3{margin-top:.35rem;font-size:1rem;line-height:1.25}
.side p{margin-top:.3rem;font-size:.8rem;color:var(--muted);font-weight:600}
.kind{display:inline-flex;padding:.15rem .5rem;border-radius:6px;font-size:.75rem;font-weight:800;background:var(--ember-tint);color:var(--ember-text)}
.kind--how{background:var(--ok-tint);color:var(--ok)}
.kind--vs{background:var(--frost);color:#24477a}
.showmore{margin-top:1.25rem}
.showmore summary{list-style:none;display:flex;justify-content:center}
.showmore summary::-webkit-details-marker{display:none}
.showmore summary>span{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.2rem;border-radius:999px;border:1.5px solid var(--line-2);background:#fff;color:var(--ink);font-weight:750;cursor:pointer}
.showmore[open] summary .when-closed,.showmore:not([open]) summary .when-open{display:none}
.showmore__body{display:grid;gap:.85rem;margin-top:1rem}

/* promo banners */
.promos{display:grid;gap:1rem}
.promo{position:relative;display:flex;align-items:flex-end;min-height:15rem;border-radius:var(--r-l);overflow:hidden;color:#fff;text-decoration:none;isolation:isolate}
.promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.promo::before{content:"";position:absolute;inset:0;z-index:-1}
.promo--gift::before{background:linear-gradient(100deg,rgb(120 34 6/.92) 0%,rgb(194 65 12/.7) 45%,rgb(194 65 12/0) 85%)}
.promo--ice::before{background:linear-gradient(100deg,rgb(18 26 41/.94) 0%,rgb(27 37 57/.72) 45%,rgb(27 37 57/0) 85%)}
.promo__body{padding:1.5rem;max-width:22rem}
.promo__body .pill{background:rgb(255 255 255/.18);color:#fff}
.promo h3{margin-top:.7rem;color:#fff;font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem)}
.promo p{margin-top:.4rem;color:rgb(255 255 255/.9);font-size:.95rem}
.promo .btn{margin-top:1rem;background:#fff;color:var(--ink)}

/* safety */
.safety{display:grid;gap:2rem;align-items:center}
.safety__media{position:relative}
.safety__photo{aspect-ratio:5/4;border-radius:var(--r-xl);overflow:hidden;background:var(--frost);box-shadow:var(--sh-1)}
.safety__photo img{width:100%;height:100%;object-fit:cover}
.recall{position:relative;margin:-3rem .75rem 0;padding:1rem 1.1rem;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-2);display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;align-items:center}
.recall__ico{grid-row:span 2;display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:var(--ok-tint);color:var(--ok)}
.recall b{font:700 1.02rem/1.25 var(--display);color:var(--ink)}
.recall small{font-size:.82rem;color:var(--muted);font-weight:600}
.checks{display:grid;gap:.7rem;margin-top:1.5rem}
.check{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:center;padding:.85rem 1rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--line)}
.check__ico{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:13px;background:var(--ember-tint);color:var(--ember-600)}
.check b{display:block;color:var(--ink);font-size:.98rem}
.check div>span{display:block;font-size:.85rem;color:var(--muted)}

/* owners band */
.band{position:relative;overflow:hidden;background:var(--night);color:var(--night-text)}
.band__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}
.band__lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.55}
.band .wrap{position:relative}
.band h2{color:#fff}
.band .pill{background:rgb(255 181 71/.16);color:var(--glow)}
.band .lede{color:var(--night-muted)}
.wall{display:grid;gap:1rem}
.say{position:relative;display:flex;flex-direction:column;padding:1.4rem;border-radius:var(--r-l);background:var(--night-2);border:1px solid var(--night-line)}
.say--lead{padding:clamp(1.5rem,1rem + 2vw,2.5rem);background:linear-gradient(160deg,var(--night-3),var(--night-2))}
.say__mark{font:800 4.5rem/.6 var(--display);color:var(--ember);height:2.2rem}
.say blockquote{margin-top:.6rem;color:#fff;font:500 1.05rem/1.55 var(--body)}
.say--lead blockquote{font:600 clamp(1.25rem,1rem + .9vw,1.6rem)/1.4 var(--display);letter-spacing:-.01em}
.say__ctx{display:inline-flex;align-self:flex-start;align-items:center;gap:.35rem;margin-top:1rem;padding:.3rem .65rem;border-radius:999px;background:rgb(156 203 236/.14);color:var(--ice);font-size:.78rem;font-weight:750}
.say figcaption{display:grid;grid-template-columns:2.75rem 1fr;gap:.75rem;align-items:center;margin-top:auto;padding-top:1.1rem}
.say figcaption img{width:2.75rem;height:2.75rem;border-radius:10px;object-fit:cover;background:var(--night-3)}
.say figcaption b{display:block;color:#fff;font-size:.9rem}
.say figcaption span{display:block;color:var(--night-muted);font-size:.8rem}
.say figcaption a{color:var(--glow);font-weight:700}
.say__stack{display:grid;gap:1rem}
.band__note{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.85rem;color:var(--night-muted)}
.band__note .ic{color:var(--glow)}

/* method */
.steps{position:relative;display:grid;gap:1rem;counter-reset:s}
.step{position:relative;padding:1.3rem 1.2rem;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-1)}
.step__top{display:flex;align-items:center;justify-content:space-between}
.step__ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:var(--ink);color:var(--glow)}
.step__no{font:800 2.3rem/1 var(--display);color:var(--frost-2)}
.step h3{margin-top:1rem;font-size:1.12rem}
.step p{margin-top:.35rem;font-size:.9rem;color:var(--muted)}
.money{display:grid;gap:1rem;align-items:center;margin-top:1.25rem;padding:1.25rem 1.3rem;border-radius:var(--r-l);background:var(--glow-tint);border:1px solid #f6d7a6}
.money__ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:#fff;color:var(--ember-600)}
.money b{font:700 1.08rem/1.25 var(--display);color:var(--ink)}
.money p{margin-top:.25rem;font-size:.9rem;color:#5a4120}

/* mistakes */
.slips{display:grid;gap:.85rem}
.slip{display:grid;grid-template-columns:auto 1fr;gap:.9rem;padding:1.1rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--line)}
.slip__ico{position:relative;display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:var(--bad-tint);color:var(--bad)}
.slip__ico::after{content:"";position:absolute;right:-4px;top:-4px;width:1.1rem;height:1.1rem;border-radius:999px;background:var(--bad) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center/62% no-repeat;border:2px solid #fff}
.slip b{display:block;color:var(--ink);line-height:1.3}
.slip p{margin-top:.25rem;font-size:.88rem;color:var(--muted)}
.slip a{display:inline-block;margin-top:.5rem;font-size:.8rem;font-weight:750;color:var(--ember-text);text-decoration:none}
.slip a:hover{text-decoration:underline}

/* cold calendar */
.cal .rail{grid-auto-columns:min(14rem,70%)}
.month{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.15rem;border-radius:var(--r-m);background:linear-gradient(180deg,#fff 0%,#f7fafd 100%);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.month--now{border:2px solid var(--ember);background:linear-gradient(180deg,#fff 0%,var(--glow-tint) 100%)}
.month__top{display:flex;align-items:center;justify-content:space-between}
.month__name{font:800 1.5rem/1 var(--display);color:var(--ink)}
.month__now{padding:.18rem .5rem;border-radius:6px;background:var(--ember-600);color:#fff;font-size:.75rem;font-weight:800}
.month__ico{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin-block:.35rem;border-radius:999px;background:var(--frost);color:#24477a}
.month--now .month__ico{background:var(--ember-tint);color:var(--ember-600)}
.month h3{font-size:1.05rem}
.month p{font-size:.84rem;color:var(--muted)}
.month span.more-link{margin-top:auto;padding-top:.4rem;font-size:.84rem}

/* faq */
.faqwrap{display:grid;gap:1.25rem;align-items:start}
.faq{border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);padding:.5rem 1.25rem}
.faq details{border-bottom:1px solid var(--line)}
.faq details:last-child{border-bottom:0}
.faq summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.05rem 0;font-weight:750;color:var(--ink);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{flex:none;color:var(--ember-600);transition:transform .2s}
.faq details[open] summary .ic{transform:rotate(45deg)}
.faq details p{padding:0 0 1.1rem;color:var(--text);font-size:.95rem;max-width:44rem}
.ask{position:relative;overflow:hidden;border-radius:var(--r-l);background:var(--ink);color:#fff;padding:1.5rem}
.ask__ico{display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:16px;background:rgb(255 181 71/.16);color:var(--glow)}
.ask h3{margin-top:1rem;color:#fff;font-size:1.35rem}
.ask p{margin-top:.4rem;color:var(--night-muted);font-size:.92rem}
.ask .btn{margin-top:1.1rem}
.ask svg.ask__flake{position:absolute;right:-2rem;bottom:-2rem;width:9rem;height:9rem;color:rgb(156 203 236/.12);stroke-width:1.2}

/* newsletter */
.signup{position:relative;overflow:hidden;display:grid;gap:1.25rem;align-items:center;padding:clamp(1.5rem,1rem + 2.5vw,3rem);border-radius:var(--r-xl);background:linear-gradient(115deg,#ffe6c7 0%,#ffd2a3 55%,#ffbf86 100%)}
.signup h2{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem)}
.signup p{margin-top:.5rem;color:#5a3a17;font-weight:600}
.signup form{display:flex;flex-wrap:wrap;gap:.5rem}
.signup input{flex:1 1 14rem;min-width:0;min-height:3rem;padding:.6rem 1.1rem;border-radius:999px;border:1.5px solid rgb(23 33 49/.15);background:#fff;font:500 1rem var(--body)}
.signup__art{position:absolute;right:-2rem;bottom:-3rem;width:10rem;height:10rem;color:rgb(194 65 12/.14);stroke-width:1.3}

/* footer */
.foot{margin-top:var(--sec);background:var(--night);color:var(--night-muted);font-size:.92rem}
.foot__top{display:grid;gap:2rem;padding-block:3.25rem 2.25rem}
.foot .brand__name{color:#fff}
.foot__about p{margin-top:.9rem;max-width:22rem}
.foot__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.foot h4{color:#fff;font:700 .95rem var(--body);margin-bottom:.7rem}
.foot li+li{margin-top:.45rem}
.foot a{color:var(--night-muted);text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot__base{position:relative;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;padding-block:1.25rem 1.75rem;font-size:.84rem}
.foot__base::before{content:"";position:absolute;top:0;left:var(--gut);right:var(--gut);height:1px;background:var(--night-line)}

@media (max-width:39.99rem){
  .trust__item{flex-direction:column;align-items:flex-start;gap:.55rem}
  .trust__ico{width:2.4rem;height:2.4rem;border-radius:12px}
  .slips{grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem 1rem;margin-inline:-.25rem}
  .slips>*{scroll-snap-align:start}
}
/* a fixed-ratio frame never grows to a tall photo */
.stage__photo,.spot__img,.cat__img,.prod__media,.story__media,.safety__photo{position:relative}
.stage__photo>img,.spot__img>img,.cat__img>img,.prod__media>img,.story__media>img,.safety__photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* lower sections: skipped until near the viewport */
.cv{content-visibility:auto;contain-intrinsic-size:auto 900px}

@media (min-width:40rem){
  .trust dl{grid-template-columns:repeat(4,minmax(0,1fr))}
  .trust__item{border-bottom:0}
  .trust__item:nth-child(2n){border-right:1px solid var(--line)}
  .trust__item:last-child{border-right:0}
  .promos{grid-template-columns:1fr 1fr}
  .slips{grid-template-columns:1fr 1fr}
  .foot__cols{grid-template-columns:repeat(4,minmax(0,1fr))}
  .money{grid-template-columns:auto 1fr auto}
  .spot{margin-inline:1.5rem}
}
@media (min-width:48rem){
  .cats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .grid4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid4 .prod:nth-child(4){display:none}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .signup{grid-template-columns:1.1fr 1fr}
}
@media (min-width:64rem){
  .topbar__side{display:flex}
  .tb-long,.topbar p a{display:inline}
  .nav{display:block}
  .nav~.mast__actions{margin-left:.5rem}
  .mast__cta{display:inline-flex}
  .burger{display:none}
  .hero__grid{grid-template-columns:1.02fr 1fr;align-items:center;gap:3.5rem}
  .stage{padding-left:1rem}
  .spot{position:absolute;left:-2.5rem;bottom:-3.25rem;width:23rem;margin:0}
  .zones{grid-template-columns:22rem 1fr;gap:3rem}
  .rail{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;padding:0;margin:0}
  .cal .rail{grid-template-columns:repeat(5,minmax(0,1fr))}
  .grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .grid4 .prod:nth-child(4){display:flex}
  .mag{grid-template-columns:1.25fr 1fr;align-items:start}
  .showmore__body{grid-template-columns:1fr 1fr}
  .safety{grid-template-columns:1fr 1fr;gap:4rem}
  .recall{position:absolute;left:-1.5rem;bottom:-1.75rem;width:21rem;margin:0}
  .wall{grid-template-columns:1.25fr 1fr}
  .steps{grid-template-columns:repeat(4,minmax(0,1fr))}
  .steps::before{content:"";position:absolute;left:6%;right:6%;top:2.8rem;height:2px;background:repeating-linear-gradient(90deg,var(--line-2) 0 8px,transparent 8px 14px);z-index:0}
  .step{z-index:1}
  .slips{grid-template-columns:repeat(3,minmax(0,1fr))}
  .faqwrap{grid-template-columns:1.6fr 1fr}
  .ask{position:sticky;top:6rem}
  .foot__top{grid-template-columns:1fr 2fr}
}


/* ===== v2: editorial homepage (reviews, top lists, blog) ===== */
.intro{position:relative;overflow:hidden;background:linear-gradient(180deg,#eaf1f8 0%,#f4f7fa 100%)}
.intro .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;padding-block:clamp(1.75rem,1.2rem + 2vw,2.75rem) clamp(1.5rem,1rem + 1.5vw,2.25rem)}
.intro h1{margin-top:.8rem;font-size:clamp(2rem,1.35rem + 2.4vw,3.2rem);line-height:1.05;letter-spacing:-.03em;font-weight:800;max-width:22ch}
.intro__lede{margin-top:.6rem;max-width:34rem;color:var(--muted);font-size:1.05rem}
.intro .finder{margin-top:0}
.intro .popular{margin-top:.75rem}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font-size:.8rem;font-weight:600;color:var(--muted)}
.byline__mark{width:1.5rem;height:1.5rem;flex:none}
.byline b{color:var(--ink)}
.byline .rt{display:inline-flex;align-items:center;gap:.3rem}

/* front: cover story + new and re-checked */
.front{display:grid;gap:1rem;margin-top:1.25rem}
.cover{position:relative;display:flex;flex-direction:column;border-radius:var(--r-xl);overflow:hidden;background:var(--night);color:#fff;box-shadow:var(--sh-2);isolation:isolate}
.cover__media{position:relative;aspect-ratio:16/10}
.cover__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover__body{position:relative;padding:1.25rem 1.25rem 1.35rem}
.cover__tags{display:flex;flex-wrap:wrap;gap:.4rem}
.cover__tags .pill{background:var(--ember-600);color:#fff}
.cover__tags .pill--frost{background:var(--frost);color:var(--ink)}
.cover__tags .pill--glass{background:rgb(255 255 255/.16);color:#fff;backdrop-filter:blur(6px)}
.cover h2{margin-top:.8rem;color:#fff;font-size:clamp(1.55rem,1.1rem + 1.8vw,2.5rem);line-height:1.08;max-width:24ch}
.cover h2 a{text-decoration:none}
.cover h2 a:hover{text-decoration:underline}
.cover__dek{margin-top:.55rem;max-width:36rem;color:rgb(255 255 255/.86)}
.cover .byline{margin-top:.8rem;color:rgb(255 255 255/.78)}
.cover .byline b{color:#fff}
.cover__picks{display:grid;gap:.5rem;margin-top:1.1rem}
.cpick{display:grid;grid-template-columns:auto 2.75rem 1fr auto;gap:.65rem;align-items:center;padding:.5rem .6rem;border-radius:16px;background:rgb(255 255 255/.1);backdrop-filter:blur(8px);border:1px solid rgb(255 255 255/.14)}
.cpick__no{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:999px;background:#fff;color:var(--ink);font:800 .85rem/1 var(--display)}
.cpick:first-child .cpick__no{background:var(--ember-600);color:#fff}
.cpick img{width:2.75rem;height:2.75rem;border-radius:10px;object-fit:cover}
.cpick b{display:block;font-size:.88rem;line-height:1.2;color:#fff}
.cpick small{display:block;font-size:.75rem;color:rgb(255 255 255/.75);font-weight:650}
.cpick .btn{min-height:2.2rem;padding:.35rem .8rem;font-size:.8rem;background:#fff;color:var(--ink)}
.fresh{border-radius:var(--r-xl);background:#fff;box-shadow:var(--sh-1);padding:1.2rem 1.25rem}
.fresh__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.fresh__head h2{font-size:1.2rem}
.fresh ol{margin-top:.6rem}
.fresh li+li{border-top:1px solid var(--line)}
.fresh ol a{display:grid;grid-template-columns:3.1rem 1fr;gap:.8rem;align-items:center;padding:.75rem 0;text-decoration:none;color:var(--ink)}
.fresh ol a:hover h3{text-decoration:underline}
.fresh time{display:grid;justify-items:center;padding:.35rem 0;border-radius:var(--r-s);background:var(--frost);color:var(--muted);font-size:.75rem;font-weight:800;line-height:1.1;text-transform:uppercase}
.fresh time b{font:800 1.15rem/1 var(--display);color:var(--ink)}
.fresh h3{font-size:.95rem;line-height:1.28}
.fresh__meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.2rem;font-size:.75rem;font-weight:700;color:var(--muted)}
.fresh__state{color:var(--ok)}

/* top lists */
.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin:-.5rem 0 1.4rem}
.filters a{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:700;font-size:.86rem;text-decoration:none}
.filters a:hover{border-color:var(--ember)}
.filters a[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}
.filters .ic{color:var(--ember-600)}
.filters a[aria-current] .ic{color:var(--glow)}
.lists{display:grid;gap:1rem}
.tl{display:flex;flex-direction:column;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);overflow:hidden}
.tl__media{position:relative;aspect-ratio:16/9;background:var(--frost)}
.tl__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tl__media .pill{position:absolute;left:.8rem;top:.8rem;background:rgb(255 255 255/.94);color:var(--ink)}
.tl__upd{position:absolute;right:.8rem;bottom:.8rem;padding:.25rem .6rem;border-radius:8px;background:rgb(18 26 41/.78);color:#fff;font-size:.75rem;font-weight:750;backdrop-filter:blur(4px)}
.tl__body{display:flex;flex-direction:column;flex:1;padding:1.05rem 1.1rem 1.15rem}
.tl__body h3{font-size:1.15rem;line-height:1.22}
.tl__body h3 a{text-decoration:none}
.tl__body h3 a:hover{text-decoration:underline}
.ranks{display:grid;gap:.15rem;margin-top:.8rem}
.rank{display:grid;grid-template-columns:1.6rem 2.6rem 1fr auto;gap:.6rem;align-items:center;padding:.45rem 0;border-top:1px solid var(--line)}
.rank__no{font:800 1.15rem/1 var(--display);color:var(--muted);text-align:center}
.rank:first-child .rank__no{color:var(--ember)}
.rank img{width:2.6rem;height:2.6rem;border-radius:9px;object-fit:cover;background:var(--frost)}
.rank b{display:block;font-size:.86rem;line-height:1.22;color:var(--ink)}
.rank small{display:block;font-size:.75rem;font-weight:700;color:var(--ember-text)}
.rank .btn{min-height:2.1rem;padding:.3rem .7rem;font-size:.76rem}
.tl__foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;margin-top:auto;padding-top:.85rem;font-size:.8rem;font-weight:650;color:var(--muted)}

/* reviews */
.rv-lead{display:grid;border-radius:var(--r-xl);background:#fff;box-shadow:var(--sh-1);overflow:hidden}
.rv-lead__media{position:relative;aspect-ratio:4/3;background:var(--frost)}
.rv-lead__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.seal{position:absolute;right:1rem;bottom:1rem;display:grid;place-items:center;width:8.4rem;height:8.4rem;border-radius:999px;background:#fff;box-shadow:var(--sh-2);text-align:center;border:3px solid var(--ok)}
.seal small{display:block;font-size:.75rem;font-weight:800;color:var(--muted)}
.seal b{display:block;font:800 .9rem/1.1 var(--display);color:var(--ok)}
.seal .ic{margin:0 auto .15rem;color:var(--ok)}
.rv-lead__body{padding:clamp(1.25rem,1rem + 1.5vw,2.25rem)}
.rv-lead__body h3{margin-top:.75rem;font-size:clamp(1.45rem,1.1rem + 1.2vw,2.1rem);line-height:1.12}
.rv-lead__body h3 a{text-decoration:none}
.rv-lead__body h3 a:hover{text-decoration:underline}
.rv-lead__verdict{margin-top:.6rem;color:var(--text)}
.pc{display:grid;gap:.75rem;margin-top:1rem}
.pc__col{padding:.85rem 1rem;border-radius:var(--r-m);background:var(--ground)}
.pc__col h4{display:flex;align-items:center;gap:.4rem;font:800 .82rem var(--body);color:var(--ink);margin-bottom:.45rem}
.pc__col li{display:flex;gap:.45rem;align-items:flex-start;font-size:.86rem;line-height:1.4}
.pc__col li+li{margin-top:.35rem}
.pc__col li .ic{width:1rem;height:1rem;margin-top:.12rem}
.pc__col--pro .ic{color:var(--ok)}
.pc__col--con .ic{color:var(--bad)}
.rv-lead .meter{max-width:24rem}
.rv-lead__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.rv-lead .byline{margin-top:1rem}
.reviews{display:grid;gap:1rem;margin-top:1rem}
.rv{display:flex;flex-direction:column;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);overflow:hidden}
.rv__media{position:relative;aspect-ratio:4/3;background:var(--frost)}
.rv__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.verdict{position:absolute;left:.75rem;bottom:.75rem;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:999px;font-size:.75rem;font-weight:800;background:#fff;box-shadow:var(--sh-1)}
.verdict--yes{color:var(--ok)}
.verdict--mixed{color:#8a5300}
.verdict--no{color:var(--bad)}
.rv__body{display:flex;flex-direction:column;flex:1;padding:1rem 1.05rem 1.1rem}
.rv__body h3{margin-top:.2rem;font-size:1.08rem;line-height:1.24}
.rv__body h3 a{text-decoration:none}
.rv__body h3 a:hover{text-decoration:underline}
.rv__body p{margin-top:.4rem;font-size:.88rem;color:var(--muted)}
.rv__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .9rem;margin-top:auto;padding-top:1rem}

/* comparisons */
.vsgrid{display:grid;gap:1rem}
.vs{display:flex;flex-direction:column;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);overflow:hidden;text-decoration:none;color:var(--ink)}
.vs__pair{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--line)}
.vs__pair span{position:relative;aspect-ratio:1;background:var(--frost)}
.vs__pair img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vs__pair em{position:absolute;left:.6rem;bottom:.6rem;padding:.22rem .5rem;border-radius:7px;background:rgb(18 26 41/.8);color:#fff;font-size:.75rem;font-weight:750;font-style:normal}
.vs__badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:999px;background:var(--ember-600);color:#fff;font:800 1rem/1 var(--display);border:4px solid #fff;box-shadow:var(--sh-2)}
.vs__body{padding:1rem 1.1rem 1.15rem}
.vs__body h3{font-size:1.06rem;line-height:1.25}
.score{margin-top:.75rem}
.score__bar{display:flex;height:.5rem;border-radius:999px;overflow:hidden;background:var(--frost)}
.score__bar i{display:block;background:var(--ember)}
.score p{display:flex;justify-content:space-between;margin-top:.35rem;font-size:.76rem;font-weight:700;color:var(--muted)}
.vs .more-link{margin-top:.75rem}

/* blog */
.blog{display:grid;gap:1.5rem;align-items:start}
.posts{display:grid;gap:1rem}
.post-lead{display:grid;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);overflow:hidden}
.post-lead__media{position:relative;aspect-ratio:16/9;background:var(--frost)}
.post-lead__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post-lead__body{padding:1.15rem 1.25rem 1.3rem}
.post-lead__body h3{margin-top:.55rem;font-size:clamp(1.3rem,1.05rem + .9vw,1.7rem);line-height:1.15}
.post-lead__body p{margin-top:.45rem;color:var(--muted)}
.post-lead .byline,.post .byline{margin-top:.75rem}
.post{display:grid;grid-template-columns:7rem 1fr;gap:1rem;align-items:start;padding:.75rem;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-1)}
.post img{width:7rem;aspect-ratio:1;border-radius:var(--r-s);object-fit:cover;background:var(--frost)}
.post h3{margin-top:.35rem;font-size:1rem;line-height:1.26}
.post p:not(.byline){display:none;margin-top:.3rem;font-size:.86rem;color:var(--muted)}
.post h3 a,.post-lead h3 a{text-decoration:none}
.post h3 a:hover,.post-lead h3 a:hover{text-decoration:underline}
.kind--news{background:#fdecea;color:var(--bad)}
.kind--tip{background:var(--glow-tint);color:#7a4600}
.aside{display:grid;gap:1rem}
.widget{padding:1.15rem 1.2rem;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1)}
.widget h3{display:flex;align-items:center;gap:.45rem;font-size:1.05rem}
.widget h3 .ic{color:var(--ember-600)}
.most{margin-top:.5rem;counter-reset:m}
.most li{counter-increment:m}
.most li+li{border-top:1px solid var(--line)}
.most a{display:grid;grid-template-columns:1.8rem 1fr;gap:.6rem;align-items:baseline;padding:.6rem 0;text-decoration:none;color:var(--ink);font-weight:700;font-size:.9rem;line-height:1.3}
.most a::before{content:counter(m);font:800 1.3rem/1 var(--display);color:var(--muted)}
.most li:first-child a::before{color:var(--ember)}
.most a:hover{text-decoration:underline}
.widget--month{border:2px solid var(--ember);background:linear-gradient(180deg,#fff 0%,var(--glow-tint) 100%)}
.widget--month .month__top{margin-bottom:.4rem}
.widget--month p{font-size:.88rem;color:var(--muted);margin-top:.3rem}
.soon{display:grid;gap:.35rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #f0c9a0;font-size:.82rem;font-weight:650}
.soon li{display:flex;gap:.5rem;align-items:center}
.soon b{display:inline-grid;place-items:center;min-width:2.4rem;padding:.12rem .3rem;border-radius:6px;background:#fff;color:var(--ink);font-size:.75rem;border:1px solid var(--line)}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.tags a{padding:.3rem .65rem;border-radius:999px;background:var(--frost);color:var(--ink);font-size:.8rem;font-weight:700;text-decoration:none}
.tags a:hover{background:var(--ember-tint);color:var(--ember-text)}
.widget--mail{background:var(--ink);color:#fff}
.widget--mail h3{color:#fff}
.widget--mail h3 .ic{color:var(--glow)}
.widget--mail p{margin-top:.35rem;font-size:.86rem;color:var(--night-muted)}
.widget--mail form{display:grid;gap:.5rem;margin-top:.8rem}
.widget--mail input{min-height:2.75rem;padding:.5rem 1rem;border-radius:999px;border:0;font:500 .95rem var(--body)}

.season-badge{display:inline-flex;align-items:center;gap:.3rem;color:var(--ok);font-weight:750}
.cover .season-badge{color:var(--glow)}
.tl__upd{display:inline-flex;align-items:center;gap:.3rem}
.fresh__ico{display:grid;place-items:center;width:3.1rem;height:3.1rem;border-radius:var(--r-s);background:var(--frost);color:#24477a}
.fresh__ico--trophy{background:var(--ember-tint);color:var(--ember-600)}
.fresh__ico--book{background:var(--ok-tint);color:var(--ok)}
.fresh__ico--shield{background:var(--bad-tint);color:var(--bad)}
.disclose{display:flex;align-items:center;gap:.4rem;margin-top:.7rem;font-size:.84rem;font-weight:600;color:var(--muted)}
.disclose a{color:var(--ember-text);font-weight:750}
.disclose .ic{color:var(--ember-600)}
/* trust bar, slim (no hero edge to sit on in v2) */
.trust--slim{margin-top:1.25rem}

/* method + promises */
.promises{display:grid;gap:1rem;margin-top:1.25rem}
.promises .money,.promises .recall{margin:0}
.promises .recall{position:static;width:auto;box-shadow:var(--sh-1);border-radius:var(--r-l);padding:1.25rem 1.3rem;grid-template-columns:auto 1fr;align-content:center}
.promises .recall .more-link{grid-column:2;margin-top:.35rem}

.yr{font-style:normal}
.btn{white-space:nowrap}
.cpick{gap:.55rem;padding:.5rem .55rem}
.foot{margin-top:0}
@media (max-width:47.99rem){
  .seal{width:auto;height:auto;right:.75rem;bottom:.75rem;padding:.4rem .85rem .4rem .6rem;border-width:2px}
  .seal>span{display:flex;align-items:center;gap:.35rem}
  .seal .ic{margin:0}
  .seal small{display:none}
  .rv-lead__actions{display:grid}
  .score p span:last-child:not(:only-child){display:none}
  .steps{grid-template-columns:1fr 1fr;gap:.75rem}
  .step{padding:1rem .95rem}
  .step__ico{width:2.6rem;height:2.6rem;border-radius:14px}
  .step__no{font-size:1.7rem}
  .step h3{font-size:1rem;margin-top:.75rem}
  .step p{font-size:.84rem}
  .cat__img{aspect-ratio:3/2}
  .filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.4rem;scrollbar-width:none}
  .filters a{flex:none}
  .reviews,.vsgrid{grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem 1rem;margin-inline:-.25rem}
  .reviews>*,.vsgrid>*{scroll-snap-align:start}
  .fresh li:nth-child(n+4){display:none}
}
@media (min-width:40rem){
  .pc{grid-template-columns:1fr 1fr}
  .post p:not(.byline){display:block}
  .post{grid-template-columns:9rem 1fr}
  .post img{width:9rem}
}
@media (min-width:48rem){
  .lists,.showmore__body.lists{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reviews,.vsgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rv-lead{grid-template-columns:1fr 1.1fr}
  .rv-lead__media{aspect-ratio:auto;min-height:100%}
  .promises{grid-template-columns:1fr 1fr}
  .promises .money{grid-template-columns:auto 1fr}
  .promises .money .btn{grid-column:2;justify-self:start}
}
@media (min-width:64rem){
  .intro .wrap{grid-template-columns:1.25fr 1fr;align-items:end;gap:2.5rem}
  .front{grid-template-columns:1.9fr 1fr;align-items:stretch}
  .cover{min-height:36rem;justify-content:flex-end}
  .cover__media{position:absolute;inset:0;aspect-ratio:auto;z-index:-1}
  .cover__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgb(18 26 41/.96) 0%,rgb(18 26 41/.78) 42%,rgb(18 26 41/.1) 75%,transparent 100%)}
  .cover__body{padding:2rem 2rem 1.75rem}
  .cover__picks{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cpick{grid-template-columns:auto 2.6rem 1fr;grid-template-rows:auto auto}
  .cpick .btn{grid-column:1/-1;width:100%}
  .lists,.showmore__body.lists{grid-template-columns:repeat(3,minmax(0,1fr))}
  .blog{grid-template-columns:1.85fr 1fr}
  .post-lead{grid-template-columns:1.1fr 1fr}
  .post-lead__media{aspect-ratio:auto;min-height:100%}
  .post-lead__body{padding:1.5rem 1.6rem}
  .aside{position:sticky;top:5.5rem}
}

/* ===== v3: parts every inner page shares (breadcrumb, "on this page" box, sticky rail).
   Article pages also link assets/article.css; index, hub and static pages link assets/listing.css. ===== */
.crumbs{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}
.crumbs ol{display:flex;align-items:center;gap:0 .35rem;font-size:.84rem;font-weight:650;color:var(--muted)}
.crumbs li{display:inline-flex;align-items:center;gap:.35rem;flex:none;min-width:0}
.crumbs li:last-child{flex:0 1 auto}
.crumbs li+li::before{content:"";flex:none;width:.85rem;height:.85rem;background:var(--muted);-webkit-mask:var(--chev) center/contain no-repeat;mask:var(--chev) center/contain no-repeat}
.crumbs a{display:inline-flex;align-items:center;gap:.3rem;min-height:2rem;color:var(--ink);text-decoration:none}
.crumbs a:hover{color:var(--ember-text);text-decoration:underline}
.crumbs a .ic{width:1rem;height:1rem;color:var(--ember-600)}
.crumbs [aria-current]{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.toc{border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-1);padding:1rem 1.1rem}
.toc__head{display:flex;align-items:center;gap:.5rem;font:700 1rem/1.2 var(--display);color:var(--ink)}
.toc__head .ic{color:var(--ember-600)}
.toc ol{display:grid;gap:.1rem;margin-top:.6rem;counter-reset:toc}
.toc li{counter-increment:toc}
.toc li a{display:grid;grid-template-columns:1.7rem 1fr;gap:.35rem;align-items:baseline;padding:.45rem .55rem;border-radius:10px;color:var(--text);font-size:.9rem;font-weight:650;line-height:1.3;text-decoration:none}
.toc li a::before{content:counter(toc,decimal-leading-zero);font:800 .78rem/1 var(--display);color:var(--muted)}
.toc li a:hover{background:var(--ground);color:var(--ink)}
.toc li a:hover::before{color:var(--ember-text)}
/* phones and tablets: a folded <details class="toc toc--fold"> above the article; desktop: a
   <nav class="toc toc--rail"> in the side rail, inside a .stick wrapper */
details.toc{padding:0}
details.toc summary{min-height:3.25rem;padding:.4rem 1.1rem;cursor:pointer;list-style:none}
details.toc summary::-webkit-details-marker{display:none}
.toc__n{margin-left:auto}
details.toc summary>.ic:last-child{color:var(--muted);transition:transform .2s}
details.toc[open] summary>.ic:last-child{transform:rotate(180deg)}
details.toc ol{margin:0;padding:0 .55rem .75rem}
.toc--rail{display:none}
@media (min-width:64rem){
  .toc--fold{display:none}
  .toc--rail{display:block}
  .stick{position:sticky;top:5.75rem}
}
/* anchor jumps land below the sticky masthead (builder 4, review round 1) */
section[id],article[id]{scroll-margin-top:5.5rem}
