/* Mulish variable font, self-hosted (subsets: latin, latin-ext, cyrillic, cyrillic-ext) */
@font-face{font-family:'Mulish';font-style:normal;font-weight:200 1000;font-display:swap;src:url(/static/fonts/mulish-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Mulish';font-style:normal;font-weight:200 1000;font-display:swap;src:url(/static/fonts/mulish-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Mulish';font-style:normal;font-weight:200 1000;font-display:swap;src:url(/static/fonts/mulish-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Mulish';font-style:normal;font-weight:200 1000;font-display:swap;src:url(/static/fonts/mulish-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  /* Light-only design: tell the UA so OS dark mode never auto-darkens native
     form controls / the canvas into a broken half-dark state. All surfaces are
     explicit light hex below; this keeps inputs, buttons and scrollbars light. */
  color-scheme:light;
  --bg:#ffffff;--surface:#f5f8f7;--surface-2:#eef3f1;--card:#ffffff;
  --green:#0a9d6e;--green-d:#077a55;--green-dd:#055e41;--green-soft:#e6f5ef;
  /* --green-fill: solid-fill tone for CONTROLS that carry white text/glyphs
     (buttons, search submit, letter grade). The brand mark keeps --green
     (#0a9d6e, 3.46:1 on white) for accents/icons; white-on-green text needs
     4.5:1, so any *filled control with a label* uses --green-d (5.35:1). */
  --amber:#e0951a;--amber-d:#9a6207;--amber-soft:#fcf2df;--red:#d9483b;--red-d:#c23123;--red-soft:#fbeceb;--blue:#2f74c0;--blue-soft:#e9f1fa;--star:#0a9d6e;
  --ink:#16222c;--body:#3f4d57;--mute:#647079;
  --line:#e4eae8;--line-2:#eef2f1;
  --sh1:0 1px 2px rgba(16,34,28,.05);
  --sh2:0 10px 30px -16px rgba(16,34,28,.22);
  --f:"Mulish",system-ui,-apple-system,sans-serif;
  --r:5px;--maxw:1160px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--body);font-family:var(--f);font-size:17px;line-height:1.62;font-weight:400;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--green-d);text-decoration:none}
h1{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}
:where(a,button,summary,input):focus-visible{outline:2.5px solid var(--green);outline-offset:3px;border-radius:var(--r)}
/* skip-link: first tab stop, off-screen until focused, then pinned top-left
   above the sticky header */
.skip{position:absolute;top:8px;left:8px;z-index:60;transform:translateY(-250%);background:var(--ink);color:#fff;font-weight:700;font-size:13.5px;padding:11px 18px;border-radius:var(--r);box-shadow:var(--sh2);transition:transform .15s ease}
.skip:focus-visible{transform:translateY(0);outline-offset:2px}
/* main is a programmatic focus target (skip-link); never show a focus ring on it */
[tabindex="-1"]:focus{outline:none}
::selection{background:var(--green-soft)}
.t-hero,.t-sec{text-transform:uppercase;color:var(--ink);font-weight:800;letter-spacing:-.01em;line-height:1.05}
.t-hero{font-size:clamp(40px,6vw,68px);letter-spacing:-.02em}
.t-sec{font-size:clamp(26px,4vw,40px)}
.t-hero .g,.t-sec .g{color:var(--green)}

/* header */
.head{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.head-in{display:flex;align-items:center;gap:24px;height:68px}
.brand{font-weight:800;font-size:22px;letter-spacing:-.03em;color:var(--ink);display:flex;align-items:center;gap:9px}
.brand .mk{width:24px;height:24px;border-radius:var(--r);background:var(--green);display:grid;place-items:center}
.nav{display:flex;gap:22px;margin-left:6px}
.nav a{font-size:12.5px;color:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.nav a:hover{color:var(--green-d)}
.search{margin-left:auto;display:flex;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:4px 4px 4px 15px;max-width:300px;flex:1}
.search input{border:0;background:transparent;font-size:14px;color:var(--ink);width:100%;padding:8px 0;font-family:var(--f)}
.search input::placeholder{color:var(--mute)}
.search input:focus{outline:none}
.search button{border:0;background:var(--green-d);color:#fff;width:36px;height:36px;border-radius:var(--r);cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.search button:hover{background:var(--green-dd)}
.menu{display:none}

/* hero */
.hero{padding:54px 0 56px;border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green-d);margin:0 0 18px;display:flex;align-items:center;gap:10px}
.eyebrow .ic{width:18px;height:18px;color:var(--green)}
.t-hero{margin:0 0 16px}
.hero-verdict{font-size:19px;line-height:1.5;font-weight:600;color:var(--ink);margin:0 0 10px;max-width:52ch}
.hero-fresh{font-size:13px;color:var(--mute);margin:0 0 20px}
.hero-fresh .fresh-due{color:var(--amber-d);font-weight:700}
.hlead{font-size:18px;color:var(--body);margin:0 0 24px;max-width:48ch;line-height:1.55}
.metarow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.mpill{font-size:12px;font-weight:700;letter-spacing:.02em;padding:7px 13px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);color:var(--body);display:inline-flex;align-items:center;gap:7px}
.mpill .d{width:7px;height:7px;border-radius:50%;background:var(--green)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{font-family:var(--f);font-weight:700;font-size:13.5px;padding:14px 24px;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:9px;text-decoration:none;border-radius:var(--r);text-transform:uppercase;letter-spacing:.03em}
.btn-green{background:var(--green-d);color:#fff}
.btn-green:hover{background:var(--green-dd)}
.btn-line{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn-line:hover{border-color:var(--green);color:var(--green-d)}

/* verdict card */
.vcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh2);overflow:hidden}
.vtop{padding:20px 24px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;gap:14px}
.vt-l{display:flex;align-items:center;gap:11px}
.vt-l .ico{width:38px;height:38px;border-radius:var(--r);background:var(--green-soft);display:grid;place-items:center;flex:0 0 auto}
.vt-l .tt{font-size:11px;color:var(--mute);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.vt-l .dn{font-size:16px;color:var(--ink);font-weight:800;letter-spacing:-.01em}
.vbadge{font-size:11.5px;font-weight:700;padding:7px 12px;border-radius:var(--r);background:var(--green-soft);color:var(--green-d);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}
.vbody{padding:22px 24px}
.vline{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
.vline .l{font-size:11px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.05em}
.vline .v{font-size:14px;font-weight:800;color:var(--green-d)}
.gauges3{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:12px;margin:16px 0 20px}
.g3{text-align:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:16px 8px}
.g3 .ring{width:74px;height:74px;margin:0 auto 10px;position:relative}
.g3 .ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.g3 .ring .trk{fill:none;stroke:var(--line);stroke-width:7}
.g3 .ring .prg{fill:none;stroke-width:7;stroke-linecap:round}
.g3 .ring .ctr{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.g3 .ring .ctr .v{font-size:21px;font-weight:800;color:var(--ink);line-height:1}
.g3 .nm{font-size:10px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}
.vrow{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--line-2);font-size:14px;color:var(--body)}
.vrow .ck{width:20px;height:20px;border-radius:50%;background:var(--green-soft);display:grid;place-items:center;flex:0 0 auto}
.vrow .mut{margin-left:auto;color:var(--mute);font-size:12.5px;font-weight:600}

/* trust strip */
.tstrip{background:var(--surface);border-bottom:1px solid var(--line)}
.tstrip-in{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:26px 0}
.tstrip .s .n{font-size:26px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1;display:flex;align-items:center;gap:6px}
.tstrip .s .l{font-size:11.5px;color:var(--mute);font-weight:600;margin-top:6px;text-transform:uppercase;letter-spacing:.03em}
.tstrip .s .star{color:var(--star)}

/* sections */
section{padding:56px 0;border-bottom:1px solid var(--line)}
.sec-head{margin-bottom:32px;max-width:64ch}
.kicker{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-d);margin:0 0 14px;display:flex;align-items:center;gap:10px}
.kicker .idx{color:var(--mute)}
.t-sec{margin:0 0 14px}
.lead{font-size:18px;color:var(--body);margin:0;line-height:1.55}

.disc{display:flex;gap:13px;background:var(--blue-soft);border:1px solid #cfe1f4;border-left:3px solid var(--blue);border-radius:var(--r);padding:16px 20px;font-size:14.5px;color:var(--body);line-height:1.55;margin-top:30px}
.disc svg{flex:0 0 auto;margin-top:2px}
.disc b{color:var(--ink);font-weight:700}
/* .freshness: staleness indicator (analysis age) + the "Re-check this domain"
   control. The age line is muted; a report past its refresh interval emphasises
   "due for a refresh" in amber. Wraps to its own row on narrow screens. */
.freshness{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:22px}
.fresh-age{font-size:13.5px;color:var(--mute);margin:0}
.fresh-sep{color:var(--line)}
.freshness[data-stale] .fresh-due{color:var(--amber-d);font-weight:700}
.freshness .btn{padding:10px 18px}
/* .tldr: the one-line, verbatim-quotable verdict at the top of #verdict.
   A summary callout (green accent), distinct from the blue .disc notices. */
.tldr{background:var(--green-soft);border:1px solid #c4e7d8;border-left:3px solid var(--green);border-radius:var(--r);padding:15px 20px;margin:6px 0 22px;font-size:16px;color:var(--ink);line-height:1.55}
.tldr b{color:var(--green-d);font-weight:800;text-transform:uppercase;letter-spacing:.02em;font-size:13px}

/* HIGHLIGHTS (ScamAdviser-style pos/neg) */
.highlights{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.hcol{border:1px solid var(--line);border-radius:var(--r);padding:24px;background:var(--card)}
.hcol .hh{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:16px;display:flex;align-items:center;gap:9px}
.hcol.pos .hh{color:var(--green-d)}
.hcol.note .hh{color:var(--amber-d)}
.hcol .hh .hb{width:22px;height:22px;border-radius:var(--r);display:grid;place-items:center}
.hcol.pos .hh .hb{background:var(--green-soft)}
.hcol.note .hh .hb{background:var(--amber-soft)}
.hitem{display:flex;gap:11px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line-2);font-size:14.5px;color:var(--body);line-height:1.45}
.hitem:first-of-type{border-top:0}
.hitem .hk{flex:0 0 auto;width:18px;height:18px;margin-top:1px}

/* lens cards */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.lcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px 24px;box-shadow:var(--sh1)}
.lcard .lh{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.lcard .lh .nm{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.lcard .lh .vb{font-size:11px;font-weight:700;padding:5px 11px;border-radius:var(--r);text-transform:uppercase;letter-spacing:.03em}
.vb.ok{background:var(--green-soft);color:var(--green-d)}
.vb.warn{background:var(--amber-soft);color:var(--amber-d)}
.vb.bad{background:var(--red-soft);color:var(--red-d)}
.lring{width:120px;height:120px;margin:0 auto 20px;position:relative}
.lring svg{width:100%;height:100%;transform:rotate(-90deg)}
.lring .trk{fill:none;stroke:var(--line);stroke-width:9}
.lring .prg{fill:none;stroke-width:9;stroke-linecap:round}
.lring .ctr{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.lring .ctr .v{font-size:36px;font-weight:800;color:var(--ink);line-height:.95}
.lring .ctr .u{font-size:10px;color:var(--mute);font-weight:700;margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.lcard .ld{font-size:14px;color:var(--body);line-height:1.56;margin:0;text-align:center}

/* signal-breakdown radar (SECONDARY to the three headline circles above): honest
   grouped roll-up of the live signals, inline SVG, corporate-tech tokens. Below
   the fold, so it ships only in the full sheet (not the critical inline set). */
.sigbreak{margin-top:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 22px;box-shadow:var(--sh1)}
.sigbreak-head{margin-bottom:16px}
.sigbreak-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin:0 0 6px}
.sigbreak-sub{font-size:13.5px;color:var(--body);margin:0;max-width:64ch;line-height:1.5}
.sigbreak-grid{display:grid;grid-template-columns:minmax(0,318px) 1fr;gap:34px;align-items:center}
.radar{margin:0}
.radar svg{width:100%;height:auto;max-width:340px;display:block;margin:0 auto;overflow:visible}
.rdr-ring{fill:none;stroke:var(--line);stroke-width:1}
.rdr-axis{stroke:var(--line);stroke-width:1}
.rdr-shape{fill:var(--green);fill-opacity:.14;stroke:var(--green-d);stroke-width:1.6;stroke-linejoin:round}
.rdr-dot{fill:var(--green-d)}
.rdr-dot-empty{fill:var(--bg);stroke:var(--mute);stroke-width:1.3}
.rdr-lbl{fill:var(--mute);font-family:var(--f);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.sigbreak-legend{margin:0;display:flex;flex-direction:column;gap:13px}
.sbl-row{display:grid;grid-template-columns:132px 1fr;gap:14px;align-items:center}
.sbl-row dt{font-size:13px;font-weight:700;color:var(--ink)}
.sbl-row dd{margin:0;display:flex;align-items:center;gap:12px}
.sbl-bar{flex:1;min-width:56px;height:7px;background:var(--line);border-radius:var(--r);overflow:hidden}
.sbl-bar i{display:block;height:100%;background:var(--green);border-radius:var(--r)}
.sbl-n{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.sbl-u{font-size:11px;color:var(--mute);font-weight:700}
.sbl-note{font-size:12px;color:var(--mute);font-weight:600;font-style:italic}
.sbl-nodata dt{color:var(--mute)}
.sigbreak-foot{font-size:12px;color:var(--mute);margin:18px 0 0;line-height:1.5}
.sigbreak-muted .radar svg{opacity:.72}
.sigbreak-muted .rdr-shape{fill:var(--mute);fill-opacity:.08;stroke:var(--mute)}
.sigbreak-muted .rdr-dot{fill:var(--mute)}
@media (max-width:640px){.sigbreak-grid{grid-template-columns:1fr;gap:22px}.sbl-row{grid-template-columns:1fr auto}}

/* technical tabs */
.tabs{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.tabbar{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);background:var(--surface)}
.tabbtn{flex:1;min-width:110px;font-family:var(--f);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--mute);background:transparent;border:0;border-right:1px solid var(--line);padding:15px 12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
.tabbtn:last-child{border-right:0}
.tabbtn .d{width:7px;height:7px;border-radius:50%;background:var(--green)}
.tabbtn .d.w{background:var(--amber)}
.tabbtn[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:inset 0 -3px 0 var(--green)}
/* Windows High-Contrast / forced-colors: the colour fill + box-shadow that mark
   the active tab are flattened to system colours, so the selected tab would look
   identical to the rest. A real border survives forced-colors and keeps the
   active state visible (the aria-selected state is already exposed to AT). */
@media (forced-colors:active){
  .tabbtn[aria-selected="true"]{border-bottom:3px solid Highlight}
}
.tabpanel{padding:28px;display:none}
.tabpanel.on{display:block}
.panel-print-title{display:none}
.tgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.tfield{border:1px solid var(--line-2);border-radius:var(--r);padding:16px 18px;background:var(--surface)}
.tfield .k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);margin-bottom:8px;display:flex;align-items:center;gap:7px}
.tfield .val{font-size:16px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:9px}
.tfield .sub{font-size:12.5px;color:var(--mute);margin-top:4px;font-weight:500;line-height:1.45}
.sgrade{width:34px;height:34px;border-radius:var(--r);background:var(--green-d);color:#fff;font-weight:800;font-size:17px;display:grid;place-items:center;flex:0 0 auto}
.timeline{margin-top:6px}
.timeline .bar{height:9px;background:var(--line);border-radius:var(--r);overflow:hidden;position:relative}
.timeline .bar i{position:absolute;left:0;top:0;height:100%;background:var(--green);border-radius:var(--r)}
.timeline .ax{display:flex;justify-content:space-between;font-size:11px;color:var(--mute);margin-top:7px;font-weight:600}
.mmeter{height:7px;background:var(--line);border-radius:var(--r);overflow:hidden;margin-top:9px}
.mmeter i{display:block;height:100%;border-radius:var(--r);background:var(--green)}
.full-row{grid-column:1/-1}

/* SIGNAL ACCORDION */
.sigtable{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.sigacc{border-bottom:1px solid var(--line-2)}
.sigacc:last-child{border-bottom:0}
.sigacc summary{display:grid;grid-template-columns:auto 1.3fr 1.2fr .9fr auto;gap:18px;padding:15px 22px;align-items:center;cursor:pointer;list-style:none}
.sigacc summary::-webkit-details-marker{display:none}
.sigacc summary:hover{background:var(--surface)}
.micon{width:30px;height:30px;border-radius:var(--r);display:grid;place-items:center;flex:0 0 auto}
.micon.ok{background:var(--green-soft)}.micon.warn{background:var(--amber-soft)}.micon.neu{background:var(--surface-2)}
.sigacc .snm{font-weight:700;font-size:15px;color:var(--ink)}
.sigacc .sv{font-size:13.5px;color:var(--mute)}
.tag2{font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.02em}
.tag2 .d{width:8px;height:8px;border-radius:50%}
.tag2.ok{color:var(--green-d)}.tag2.ok .d{background:var(--green)}
.tag2.warn{color:var(--amber-d)}.tag2.warn .d{background:var(--amber)}
.tag2.neu{color:var(--mute)}.tag2.neu .d{background:var(--mute)}
.chev{width:11px;height:11px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg);transition:transform .2s;justify-self:end}
.sigacc[open] .chev{transform:rotate(-135deg)}
.sigexp{padding:0 22px 18px 70px;font-size:14.5px;color:var(--body);line-height:1.6}
@media(max-width:767px){.sigexp{padding-left:22px}}

/* REVIEWS (external aggregation) */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rvcard{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--card);box-shadow:var(--sh1)}
.rvcard .rvh{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.rvcard .rvsrc{font-size:13px;font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:.02em}
.rvcard .rvbadge{font-size:10.5px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.03em}
.rvcard .rvscore{font-size:34px;font-weight:800;color:var(--ink);line-height:1;letter-spacing:-.02em}
.rvcard .rvscore span{font-size:16px;color:var(--mute);font-weight:700}
.stars{display:flex;gap:3px;margin:10px 0 8px}
.stars svg{width:16px;height:16px}
.rvcard .rvcount{font-size:12.5px;color:var(--mute);font-weight:600}

/* prose */
.prose{max-width:70ch}
.prose p{margin:0 0 18px;font-size:17.5px;line-height:1.72;color:var(--body)}
.prose strong{color:var(--ink);font-weight:700}

/* ai checks */
.checks{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.chk{background:var(--card);padding:16px 19px;display:flex;gap:13px;align-items:flex-start}
.chk .st{flex:0 0 auto;width:21px;height:21px;border-radius:var(--r);display:grid;place-items:center;margin-top:1px}
.chk .st.pass{background:var(--green-soft)}
.chk .st.fix{background:var(--amber-soft)}
.chk .cn{font-weight:700;font-size:14.5px;color:var(--ink);line-height:1.3}
.chk .cd{font-size:12.5px;color:var(--mute);margin-top:3px;line-height:1.45}
.lflag{margin-top:18px;font-size:14px;color:var(--body);background:var(--green-soft);border:1px solid #c9e8db;border-left:3px solid var(--green);border-radius:var(--r);padding:15px 18px;line-height:1.6}
.lflag b{color:var(--green-d);font-weight:700}

/* method mini */
.method3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mcard{border:1px solid var(--line);border-radius:var(--r);padding:24px;background:var(--card)}
.mcard .mn{font-size:11px;font-weight:800;color:var(--green-d);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}
.mcard .mt{font-size:16px;font-weight:800;color:var(--ink);margin-bottom:8px;text-transform:uppercase;letter-spacing:-.01em}
.mcard p{margin:0;font-size:14px;color:var(--body);line-height:1.56}

/* claim */
.claim{background:var(--ink);color:#fff;border-radius:var(--r);padding:clamp(32px,5vw,56px);display:grid;grid-template-columns:1.3fr 1fr;gap:42px;align-items:center}
.t-claim{text-transform:uppercase;color:#fff;font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em;font-weight:800;margin:0 0 14px;line-height:1.05}
.claim p{margin:0;font-size:16px;color:rgba(255,255,255,.8);line-height:1.6}
.claim .steps{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:11px}
.claim .steps li{font-size:14px;color:rgba(255,255,255,.92);display:flex;gap:12px;align-items:center}
.claim .steps b{color:#5fd6a8;font-weight:800}
.claim-act{display:flex;flex-direction:column;gap:12px}
.btn-onlight{background:var(--green-d);color:#fff}
.btn-onlight:hover{background:var(--green-dd)}
.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.28);justify-content:center}
.claim-note{font-size:11.5px;color:rgba(255,255,255,.55);line-height:1.55;margin:4px 0 0;text-transform:none;letter-spacing:0}
/* form fields (claim verification): a real visible label + a >=3:1 boundary.
   --mute (#647079, 5.08:1 on white) clears WCAG 1.4.11 non-text contrast; the
   faint --line (1.22:1) is for static dividers, never an interactive field. */
.field{display:grid;gap:5px}
.field-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,.9)}
.field-input{padding:12px;border:1px solid var(--mute);border-radius:var(--r);font-family:var(--f);font-size:15px;color:var(--ink);background:#fff;width:100%}
.field-input:focus-visible{outline:2.5px solid var(--green);outline-offset:2px;border-color:var(--green-d)}
.field-input::placeholder{color:var(--mute)}
/* embeddable trust badge (inbound backlink loop): a light utility card under
   the dark claim block, so the copy-paste code reads as dark-on-white */
.embed{margin-top:26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,34px);display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}
.embed .t-claim{color:var(--ink);font-size:clamp(19px,2.4vw,26px);margin:0 0 10px}
.embed p{margin:0;font-size:14.5px;color:var(--body);line-height:1.6}
.embed p a{color:var(--green-d);font-weight:700}
.embed-preview{margin:16px 0 0;padding:0}
.embed-preview img{max-width:100%;height:auto;margin:0}
.embed-act{display:grid;gap:7px}
.embed .field-label{color:var(--ink)}
.embed-code{padding:12px;border:1px solid var(--mute);border-radius:var(--r);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;color:var(--ink);background:var(--card);width:100%;resize:vertical;line-height:1.55}
.embed-code:focus-visible{outline:2.5px solid var(--green);outline-offset:2px;border-color:var(--green-d)}
.embed-note{font-size:11.5px;color:var(--mute);line-height:1.55;margin:2px 0 0}
.embed-note b{color:var(--body)}

/* faq */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{font-size:18px;font-weight:800;color:var(--ink);padding:22px 46px 22px 0;cursor:pointer;list-style:none;position:relative;letter-spacing:-.01em;text-transform:uppercase}
.faq summary:hover{color:var(--green-d)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:7px;top:26px;width:11px;height:11px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg)}
.faq details[open] summary::after{transform:rotate(-135deg);top:29px}
.faq .ans{padding:0 50px 24px 0;margin:0;font-size:16px;color:var(--body);line-height:1.66}
.faq summary h3{margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}

/* footer */
.foot{background:var(--surface);padding:44px 0 54px}
.foot-in{display:flex;flex-wrap:wrap;gap:22px 40px;justify-content:space-between;align-items:flex-start}
.foot-meta{font-size:12.5px;color:var(--mute);line-height:1.85}
.foot-meta b{color:var(--ink);font-weight:600}
.foot-nav{font-size:12.5px;line-height:1.85;display:flex;flex-wrap:wrap;gap:4px 16px}
.foot-nav a{color:var(--mute);text-decoration:none}
.foot-nav a:hover{color:var(--green-d);text-decoration:underline}

@media(max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .vcard{max-width:520px}
  .highlights{grid-template-columns:1fr}
  .cards3{grid-template-columns:1fr;max-width:420px;margin:0 auto}
  .tgrid{grid-template-columns:1fr}
  .reviews{grid-template-columns:1fr}
  .checks{grid-template-columns:1fr}
  .method3{grid-template-columns:1fr}
  .claim{grid-template-columns:1fr;gap:26px}
  .embed{grid-template-columns:1fr;gap:24px}
  .tstrip-in{grid-template-columns:repeat(2,1fr);gap:24px 20px}
}
@media(max-width:767px){
  body{font-size:16px}
  .search{display:none}
  .menu{display:block;margin-left:auto}
  .menu-btn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);cursor:pointer;list-style:none}
  .menu-btn::-webkit-details-marker{display:none}
  .menu[open] .menu-btn{border-color:var(--green);color:var(--green-d)}
  .nav{display:none;position:absolute;top:calc(100% + 8px);right:26px;flex-direction:column;min-width:210px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh2);padding:8px;gap:2px;z-index:50}
  .menu[open] ~ .nav{display:flex}
  .nav a{padding:11px 14px;font-size:13px}
  section{padding:42px 0}
  .tabbtn{min-width:50%;border-bottom:1px solid var(--line)}
  .sigacc summary{grid-template-columns:auto 1fr auto;gap:12px}
  .sigacc .sv{display:none}
  .tstrip-in{grid-template-columns:1fr 1fr}
}

/* related / internal linking */
.related{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.relcol{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--sh1)}
.relh{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 0 12px}
.rellist{list-style:none;margin:0;padding:0}
.rellist li{border-bottom:1px solid var(--line-2);padding:9px 0;font-size:15px}
.rellist li:last-child{border-bottom:0}
.rellist a{color:var(--green-d);text-decoration:none;font-weight:600}
.rellist a:hover{text-decoration:underline}
.rellist .relmeta{color:var(--mute);font-size:12.5px;margin-left:8px}
/* HTML site map: dense link groups flow into readable columns on wide screens
   (colours inherited from .rellist, so light + dark are already covered), and
   collapse to a single column on narrow ones. break-inside keeps a link + its
   meta on one column. */
.maplist{column-width:22rem;column-gap:40px}
.maplist li{break-inside:avoid}
@media(max-width:767px){.maplist{column-width:auto}}
.crumbs{font-size:12.5px;color:var(--mute);margin:18px 0 0}
.crumbs a{color:var(--mute);text-decoration:none}
.crumbs a:hover{color:var(--green-d)}
.crumbs .sep{margin:0 6px;color:var(--line)}
@media(max-width:767px){.related{grid-template-columns:1fr}}

/* ad slots: reserved height, zero CLS, hidden until enabled */
.ad-slot{min-height:0;margin:26px 0;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface);display:none;align-items:center;justify-content:center;color:var(--mute);font-size:12px}
.ad-slot.enabled{display:flex;min-height:120px}
.ad-slot .ad-label{position:absolute;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);transform:translateY(-64px)}
.affil{background:var(--green-soft);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin:26px 0}
.affil .at{font-weight:800;color:var(--ink);font-size:16px}
.affil .as{color:var(--body);font-size:14px;margin-top:3px}

/* check-progress: functional feedback during on-demand analysis (not decoration) */
.cprog{max-width:520px;margin:22px 0 0;display:none}
.cprog.on{display:block}
.cprog .track{height:6px;background:var(--line);border-radius:var(--r);overflow:hidden}
.cprog .fill{height:100%;width:0;background:var(--green);border-radius:var(--r);transition:width .5s ease}
.cprog .steps{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:12.5px;color:var(--mute);font-weight:600}
.cprog .steps .st{display:flex;align-items:center;gap:7px;opacity:.45;transition:opacity .3s}
.cprog .steps .st.act{opacity:1;color:var(--green-d)}
.cprog .steps .st.done{opacity:1;color:var(--ink)}
.cprog .steps .st .dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex:0 0 auto}
.cprog .steps .st.act .dot{background:var(--green)}
.cprog .steps .st.done .dot{background:var(--green-d)}
.cprog .pct{font-size:12px;color:var(--mute);font-weight:700;margin-top:8px}

/* overall Verdee Score - big, centred, accented headline */
.vscore{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;padding:14px 0 22px;border-bottom:1px solid var(--line-2);margin-bottom:16px}
.vs-ring{position:relative;width:clamp(176px,46vw,212px);height:clamp(176px,46vw,212px)}
.vs-ring svg{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.vs-ring .trk{fill:none;stroke:var(--line);stroke-width:7}
.vs-ring .prg{fill:none;stroke-width:9;stroke-linecap:round;filter:drop-shadow(0 5px 12px rgba(10,157,110,.22))}
.vs-ctr{position:absolute;inset:0;display:grid;place-content:center;gap:2px;text-align:center}
.vs-ctr .vs-n{font-size:clamp(52px,15vw,68px);font-weight:800;color:var(--ink);line-height:.88;letter-spacing:-.03em}
.vs-ctr .vs-u{font-size:11px;color:var(--mute);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.vs-pill{margin-top:16px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:8px 18px;border-radius:var(--r)}
.vs-pill.ok{background:var(--green-soft);color:var(--green-d)}
.vs-pill.warn{background:var(--amber-soft);color:var(--amber-d)}
.vs-pill.bad{background:var(--red-soft);color:var(--red-d)}
.stars5{display:flex;align-items:center;gap:9px;margin-top:14px}
.stars5-row{position:relative;display:inline-block;line-height:0}
.stars5 .s5{display:flex;gap:3px}
.stars5 .s5 svg{width:19px;height:19px}
.stars5 .bg svg{fill:var(--line)}
.stars5 .fg{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap}
.stars5 .fg svg{fill:var(--star)}
.s5-num{font-size:13px;font-weight:800;color:var(--ink)}
.vs-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--mute);margin-top:12px}
.vs-sub{font-size:12.5px;color:var(--mute);line-height:1.5;max-width:30ch;margin-top:3px}

/* long domain / brand names must never break the layout */
.t-hero h1{overflow-wrap:break-word}
/* a long brand/domain drops the hero to a much smaller, tidy size so it is
   never a wall of giant uppercase text */
.t-hero-sm{font-size:clamp(22px,3.4vw,32px)!important;letter-spacing:-.01em}
.t-hero-sm h1{word-break:break-word}
.vt-l{min-width:0}
.vt-l .dn{overflow-wrap:anywhere;word-break:break-word;line-height:1.2}
.head .brand{flex:0 0 auto}
.search input{text-overflow:ellipsis}
.foot-meta{overflow-wrap:anywhere}
/* any heading or text block that can contain the domain must wrap the long
   token, never stretch its grid/flex track */
.t-sec,.t-claim,.lead,.hlead,.prose p,.faq summary,.ans,.crumbs,.ld,.sigexp,
.cd,.relmeta,.rellist a,.vs-sub{overflow-wrap:anywhere;word-break:break-word}
.hero-grid>*,.claim>*,.method3>*,.cards3>*{min-width:0}

/* hero "inside this report" block - balances the left column against the tall
   verdict card and adds in-page navigation + a freshness/sources line */
/* hero 3-block layout. Mobile uses natural DOM order (headline -> SCORE CARD ->
   rest), so the benchmark number is the accent right under the H1. Desktop
   places the card on the right spanning both rows, headline + rest on the left. */
.hero-card .vcard{max-width:none}
@media(min-width:1025px){
  /* row1 hugs the headline (min-content), row2 takes the rest (1fr) so any
     surplus from the tall card lands at the bottom-left under the TOC -
     never as a gap under the H1 */
  .hero-grid{row-gap:0;grid-template-rows:min-content 1fr}
  .hero-head{grid-column:1;grid-row:1}
  .hero-card{grid-column:2;grid-row:1 / span 2;align-self:start}
  .hero-rest{grid-column:1;grid-row:2;margin-top:22px;align-self:start}
}

.hero-toc{margin-top:30px;border-top:1px solid var(--line);padding-top:22px;max-width:46ch}
.htoc-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--mute);margin:0 0 12px}
.hero-toc ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.hero-toc li a{display:flex;gap:12px;align-items:baseline;padding:8px 0;font-size:14.5px;color:var(--body);font-weight:600;border-bottom:1px solid var(--line-2)}
.hero-toc li:last-child a{border-bottom:0}
.hero-toc li a:hover{color:var(--green-d)}
.hero-toc li a .n{font-size:12px;font-weight:800;color:var(--green-d);flex:0 0 auto}
.htoc-meta{font-size:12.5px;color:var(--mute);margin:14px 0 0;line-height:1.5}

/* balance: centre section headers and the reading blocks so no section leans
   to one side (full-width component grids below stay full width) */
.sec-head{max-width:720px;margin-left:auto;margin-right:auto;text-align:center}
.sec-head .kicker{justify-content:center}
.sec-head .lead{margin-left:auto;margin-right:auto}
.prose{margin-left:auto;margin-right:auto}
.disc{max-width:74ch;margin-left:auto;margin-right:auto}

/* site screenshot thumbnail */
.shot{max-width:540px;margin:0 auto 26px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh1);background:var(--surface)}
.shot img{width:100%;height:auto;display:block;border-bottom:1px solid var(--line)}
.shot figcaption{font-size:12.5px;color:var(--mute);padding:10px 16px}

/* safety guidance block (tier-toned) */
.safety{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--r);padding:26px 28px;background:var(--card);max-width:820px;margin:0 auto;text-align:left}
.safety-caution{border-left-color:var(--amber)}
.safety-unsafe{border-left-color:var(--red)}
.safety-h{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}
.safety-ic{flex:0 0 auto;width:40px;height:40px;border-radius:var(--r);display:grid;place-items:center;color:var(--green-d);background:var(--green-soft)}
.safety-caution .safety-ic{color:var(--amber-d);background:var(--amber-soft)}
.safety-unsafe .safety-ic{color:var(--red-d);background:var(--red-soft)}
.safety-t{font-size:18px;font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:-.01em}
.safety-l{margin:5px 0 0;font-size:15px;color:var(--body);line-height:1.55}
.safety-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px}
.safety-list li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--line-2);font-size:14.5px;color:var(--body);line-height:1.5}
.safety-list li .sk{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;margin-top:1px;color:var(--green-d);background:var(--green-soft)}
.safety-caution .safety-list li .sk{color:var(--amber-d);background:var(--amber-soft)}
.safety-unsafe .safety-list li .sk{color:var(--red-d);background:var(--red-soft)}

/* visually-hidden (accessible-name only): kept in the a11y tree, off-screen */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* multi-source safety grid: independent, licence-clean abuse/phishing sources,
   one row each - CLEAN / FLAGGED / (unavailable). Neutral by construction. */
.sgrid{border:1px solid var(--line);border-radius:var(--r);background:var(--card);max-width:820px;margin:20px auto 0;overflow:hidden}
.sgrid-h{padding:20px 24px 16px}
.sgrid-k{margin:0 0 4px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green-dd)}
.sgrid-flagged .sgrid-k{color:var(--red-d)}
.sgrid-sum{margin:0;font-size:14.5px;color:var(--body);line-height:1.55}
.sgrid-t{width:100%;border-collapse:collapse;font-size:14px}
.sgrid-t th,.sgrid-t td{text-align:left;vertical-align:top;padding:13px 24px;border-top:1px solid var(--line-2)}
.sgrid-t thead th{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);background:var(--surface);padding-top:9px;padding-bottom:9px}
.sgrid-src{width:33%}
.sgrid-name{display:block;font-weight:700;color:var(--ink)}
.sgrid-lic{display:block;margin-top:3px;font-size:11.5px;font-weight:400;color:var(--mute)}
.sgrid-what{color:var(--body);line-height:1.5}
.sgrid-res{white-space:normal}
.sgrid-badge{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--line)}
.sgrid-b-clear{color:var(--green-dd);background:var(--green-soft);border-color:transparent}
.sgrid-b-flagged{color:var(--red-d);background:var(--red-soft);border-color:transparent}
.sgrid-b-unavailable{color:var(--mute);background:var(--surface-2);border-color:transparent}
.sgrid-detail{display:block;margin-top:6px;font-size:13px;color:var(--body);line-height:1.5}
.sgrid-r-flagged{background:var(--red-soft)}
.sgrid-r-flagged .sgrid-detail{color:var(--red-d);font-weight:600}
.sgrid-foot{margin:0;padding:14px 24px 18px;font-size:12.5px;color:var(--mute);line-height:1.55;border-top:1px solid var(--line-2)}
.sgrid-foot a{color:var(--green-d)}
@media(max-width:640px){
  .sgrid-t,.sgrid-t tbody,.sgrid-t tr{display:block}
  .sgrid-t thead{display:none}
  .sgrid-t td,.sgrid-t th{display:block;padding:4px 20px;border-top:0}
  .sgrid-row{padding:12px 0;border-top:1px solid var(--line-2)}
  .sgrid-src{width:auto;padding-top:10px}
  .sgrid-res{padding-bottom:10px}
}

/* home hero + live sample card (above the fold) */
.hhero{display:grid;grid-template-columns:1.06fr .94fr;gap:48px;align-items:center}
.hhero-copy{min-width:0}
.hform{display:flex;align-items:center;gap:8px;max-width:480px;margin:0 0 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:6px 6px 6px 15px}
.hform:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.hform .pfx{display:grid;place-items:center;color:var(--mute);flex:0 0 auto}
.hform input{flex:1;min-width:0;border:0;background:transparent;font-family:var(--f);font-size:15px;color:var(--ink);padding:11px 0}
.hform input::placeholder{color:var(--mute)}
.hform input:focus{outline:none}
.hform button{flex:0 0 auto;border:0;background:var(--green-d);color:#fff;font-family:var(--f);font-weight:700;font-size:13.5px;text-transform:uppercase;letter-spacing:.03em;padding:12px 20px;border-radius:var(--r);cursor:pointer;white-space:nowrap}
.hform button:hover{background:var(--green-dd)}
.hsample .vbody{padding:20px 22px}
.hs-top{display:flex;align-items:center;gap:18px}
.hs-ring{position:relative;width:118px;height:118px;flex:0 0 auto}
.hs-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.hs-ring .trk{fill:none;stroke:var(--line);stroke-width:8}
.hs-ring .prg{fill:none;stroke-width:8;stroke-linecap:round}
.hs-ring .ctr{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.hs-ring .ctr .v{font-size:34px;font-weight:800;color:var(--ink);line-height:.9}
.hs-ring .ctr .u{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);margin-top:4px}
.hs-vd{font-size:14px;color:var(--body);line-height:1.5;margin:0}
.hsmini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.hsmini div{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:11px 12px;display:flex;flex-direction:column;gap:4px}
.hsmini .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mute)}
.hsmini .n{font-size:19px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.hs-link{display:inline-block;margin-top:16px;font-size:13px;font-weight:700;color:var(--green-d);text-transform:uppercase;letter-spacing:.02em}
.hs-link:hover{text-decoration:underline}
@media(max-width:1024px){.hhero{grid-template-columns:1fr;gap:34px}.hsample{max-width:520px}}

/* home stats strip */
.hstats-in{display:flex;flex-wrap:wrap;justify-content:space-around;gap:22px 40px;padding:26px 0}
.hstat{text-align:center}
.hstat .n{font-size:28px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.hstat .l{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);margin-top:6px}

/* home recently-analysed rows (built on .related/.relcol) */
.hrows{list-style:none;margin:0;padding:0}
.hrows li{border-top:1px solid var(--line-2)}
.hrows li:first-child{border-top:0}
.hrows a{display:flex;align-items:center;gap:12px;padding:12px 2px;color:var(--body);font-weight:600;font-size:14.5px}
.hrows a:hover{color:var(--green-d)}
.hrows a .dm{overflow-wrap:anywhere;word-break:break-word}
.hempty{padding:12px 2px;color:var(--mute);font-size:14px}
.relscore{margin-left:auto;flex:0 0 auto;font-weight:800;font-size:12.5px;padding:3px 9px;border-radius:var(--r);font-variant-numeric:tabular-nums}
.relscore.hi{color:var(--green-d);background:var(--green-soft)}
.relscore.mid{color:var(--amber-d);background:var(--amber-soft)}
.relscore.lo{color:var(--red-d);background:var(--red-soft)}

/* home why-it's-different split */
.hwhy{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.hpoints{list-style:none;margin:0;padding:0}
.hpoints li{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line)}
.hpoints li:last-child{border-bottom:1px solid var(--line)}
.hpoints .ic{flex:0 0 auto;width:32px;height:32px;border-radius:var(--r);background:var(--green-soft);display:grid;place-items:center}
.hpoints b{display:block;font-size:15.5px;font-weight:800;color:var(--ink);margin-bottom:3px}
.hpoints span{font-size:14px;color:var(--body);line-height:1.5}

/* home full-width dark closing CTA */
.hcta{background:var(--ink);padding:74px 0;border-bottom:1px solid var(--line);text-align:center}
.hcta .hcta-h{color:#fff}
.hcta .hcta-h .g{color:#5fd6a8}
.hcta p{max-width:46ch;margin:14px auto 0;color:rgba(255,255,255,.72);font-size:16px;line-height:1.6}
.hcta .hform{margin:24px auto 0;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.hcta .hform input{color:#fff}
.hcta .hform input::placeholder{color:rgba(255,255,255,.5)}
@media(max-width:860px){.hwhy{grid-template-columns:1fr;gap:28px}}
@media(max-width:767px){.hstats-in{gap:20px 24px}.hsmini{gap:8px}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* mobile touch targets: dense text-link groups (footer nav, internal links,
   breadcrumbs, in-page TOC) get a >=44px tap height and a little horizontal
   breathing room so adjacent links are not a single ambiguous strip. Scoped to
   coarse pointers + small screens so the desktop layout is untouched. */
@media (max-width:767px) and (pointer:coarse){
  .foot-nav{gap:2px 8px}
  .foot-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;margin:0 -6px}
  .rellist li{padding:0}
  .rellist a{display:inline-flex;align-items:center;min-height:44px}
  .rellist li:has(.relmeta) a{min-height:0;padding:13px 0}
  .crumbs{line-height:2.6}
  .crumbs a{display:inline-block;padding:9px 0}
  .hero-toc li a{min-height:44px}
}

/* PRINT / "Save as PDF": reports are routinely printed. Drop the interactive
   chrome (sticky header, search, nav, ads, claim CTA, consent, skip link,
   in-page TOC), expand every tab panel and accordion so nothing is hidden on
   paper, and strip backgrounds/shadows for legible, ink-light output. */
@media print{
  :root{--bg:#fff;--surface:#fff;--surface-2:#fff;--card:#fff}
  html{scroll-behavior:auto}
  body{font-size:11pt;line-height:1.45;color:#000;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .skip,.head .search,.head .nav,.foot-nav,.claim,.embed,.affil,.ad-slot,.vc,
  .hero-toc,.crumbs,.cprog,.related{display:none!important}
  /* keep the header as a simple non-sticky brand line */
  .head{position:static;background:#fff;border-bottom:1px solid #ccc;backdrop-filter:none}
  a{color:#000;text-decoration:none}
  /* show every tab panel stacked, with its tab name as a heading */
  .tabbar{display:none!important}
  .tabpanel,.tabpanel[hidden]{display:block!important}
  .panel-print-title{display:block!important;font-weight:800;font-size:12pt;margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid #000;break-after:avoid}
  /* open all accordions / FAQ so the full evidence prints */
  details:not([open])>*:not(summary){display:revert!important}
  .sigexp{display:block!important}
  /* lighten heavy fills; keep borders as thin grey rules */
  .vcard,.lcard,.mcard,.hcol,.rvcard,.tabs,.sigtable,.safety,.sgrid,.shot,
  .tfield,.tstrip,.disc,.tldr,.lflag,.checks,.chk{box-shadow:none!important;background:#fff!important}
  .sgrid-r-flagged{background:#fff!important}
  /* keep the TL;DR distinguishable in print via a grey rule, since its fill drops out */
  .tldr{border:1px solid #ccc!important;border-left:3px solid #000!important;color:#000!important}
  .tldr b{color:#000!important}
  section,.hero{border-color:#ccc}
  /* avoid orphaned headings and card splits across page breaks */
  h1,.t-hero,.t-sec,.kicker,.sec-head{break-after:avoid}
  .lcard,.mcard,.hcol,.rvcard,.g3,.tfield,.safety,.sgrid,.sigacc,.faq details{break-inside:avoid}
  .vcard{break-inside:avoid}
}

/* ---- CSP hardening: constant styles lifted out of inline style="" ------- *
   The strict style-src (self + sha256 of the inline <style>) does NOT cover
   inline style ATTRIBUTES under CSP3, so every former per-element style="" on
   a served page is expressed as a class here (constant values) or, for the
   dynamic gauge fill, as an SVG presentation attribute in the template. */
.hero.pb-34{padding-bottom:34px}
.wrap.pad-article{padding:44px 26px}
.mt-18{margin-top:18px}
.mt-20{margin-top:20px}
.mt-22{margin-top:22px}
.mt-26{margin-top:26px}
.mt-34{margin-top:34px}
.mb-18{margin-bottom:18px}
.mb-20{margin-bottom:20px}
.pt-36{padding-top:36px}
.ovx{overflow-x:auto}
.cmp{width:100%;border-collapse:collapse}
.related.rel-21{grid-template-columns:2fr 1fr}
.lead-c{text-align:center;margin-top:26px;font-size:15px}
.disc.disc-amber{background:var(--amber-soft);border-color:#f1dca5;border-left-color:var(--amber)}
.claim-note{font-size:14px;color:var(--mute)}
.claim-grid{display:grid;gap:10px}
.ico-sep{margin-right:2px}
.stat-sfx{font-size:14px;color:var(--mute);font-weight:700}
.tval-ok{color:var(--green-d)}
.tval-warn{color:var(--amber-d)}
.tval-bad{color:var(--red-d)}
/* dynamic progress-bar / ring-fill widths: bounded 0-100 utility set so a
   per-element percentage never needs an inline style attribute (CSP3) */
.pw-0{width:0%}
.pw-1{width:1%}
.pw-2{width:2%}
.pw-3{width:3%}
.pw-4{width:4%}
.pw-5{width:5%}
.pw-6{width:6%}
.pw-7{width:7%}
.pw-8{width:8%}
.pw-9{width:9%}
.pw-10{width:10%}
.pw-11{width:11%}
.pw-12{width:12%}
.pw-13{width:13%}
.pw-14{width:14%}
.pw-15{width:15%}
.pw-16{width:16%}
.pw-17{width:17%}
.pw-18{width:18%}
.pw-19{width:19%}
.pw-20{width:20%}
.pw-21{width:21%}
.pw-22{width:22%}
.pw-23{width:23%}
.pw-24{width:24%}
.pw-25{width:25%}
.pw-26{width:26%}
.pw-27{width:27%}
.pw-28{width:28%}
.pw-29{width:29%}
.pw-30{width:30%}
.pw-31{width:31%}
.pw-32{width:32%}
.pw-33{width:33%}
.pw-34{width:34%}
.pw-35{width:35%}
.pw-36{width:36%}
.pw-37{width:37%}
.pw-38{width:38%}
.pw-39{width:39%}
.pw-40{width:40%}
.pw-41{width:41%}
.pw-42{width:42%}
.pw-43{width:43%}
.pw-44{width:44%}
.pw-45{width:45%}
.pw-46{width:46%}
.pw-47{width:47%}
.pw-48{width:48%}
.pw-49{width:49%}
.pw-50{width:50%}
.pw-51{width:51%}
.pw-52{width:52%}
.pw-53{width:53%}
.pw-54{width:54%}
.pw-55{width:55%}
.pw-56{width:56%}
.pw-57{width:57%}
.pw-58{width:58%}
.pw-59{width:59%}
.pw-60{width:60%}
.pw-61{width:61%}
.pw-62{width:62%}
.pw-63{width:63%}
.pw-64{width:64%}
.pw-65{width:65%}
.pw-66{width:66%}
.pw-67{width:67%}
.pw-68{width:68%}
.pw-69{width:69%}
.pw-70{width:70%}
.pw-71{width:71%}
.pw-72{width:72%}
.pw-73{width:73%}
.pw-74{width:74%}
.pw-75{width:75%}
.pw-76{width:76%}
.pw-77{width:77%}
.pw-78{width:78%}
.pw-79{width:79%}
.pw-80{width:80%}
.pw-81{width:81%}
.pw-82{width:82%}
.pw-83{width:83%}
.pw-84{width:84%}
.pw-85{width:85%}
.pw-86{width:86%}
.pw-87{width:87%}
.pw-88{width:88%}
.pw-89{width:89%}
.pw-90{width:90%}
.pw-91{width:91%}
.pw-92{width:92%}
.pw-93{width:93%}
.pw-94{width:94%}
.pw-95{width:95%}
.pw-96{width:96%}
.pw-97{width:97%}
.pw-98{width:98%}
.pw-99{width:99%}
.pw-100{width:100%}
