/* ================================================================
   Advertorial — Consumer Buying Guide v1
   Chrome:     Classic News (topbar, sitehead, nav, offerbar, footer)
   Colour:     Royal blue (#2563eb) — consumer-trust blue, distinct
               from all prior bundle colours
   Typography: Serif → h1, section headings, criteria titles,
               product card names, editor rec heading, FAQ questions,
               pullquote, brand-mark, modal h3
               Sans  → body, meta, chips, nav, buttons, stat labels,
               verdict chips, score bars, captions
   Layout:     1080px chrome; 720px .prose; footer outside main
   Sections:   1 Hero · 2 Why This Category · 3 Expert Criteria
               4 Product Comparison · 5 Editor Recommendation · 6 FAQ
   ================================================================ */

:root {
  --bg:           #ffffff;
  --ink:          #111111;
  --muted:        #5a5a5a;
  --border:       #e4e4e4;
  --paper:        #f8f9fb;

  --link:         #1d4ed8;
  --link-hover:   #1e40af;

  /* Royal blue CTA */
  --cta:          #2563eb;
  --cta-hover:    #1d4ed8;
  --cta-bg:       #eff6ff;
  --cta-border:   #bfdbfe;

  /* Criteria / badge tints */
  --pass-bg:      #f0fdf4;
  --pass-border:  #86efac;
  --pass-ink:     #166534;
  --fail-bg:      #fef2f2;
  --fail-border:  #fca5a5;
  --fail-ink:     #991b1b;

  /* Star / score */
  --star:         #f59e0b;

  --max:    1080px;
  --prose:   720px;
  --radius:   14px;

  --serif: ui-serif, Georgia, "Times New Roman", Times, serif;
  --sans:  ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

* { box-sizing: border-box }
html, body { height: 100% }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--sans); font-size: 17px; line-height: 1.80;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  padding-bottom: 76px;
}
a { color: var(--link); text-decoration: none }
a:hover { color: var(--link-hover); text-decoration: underline }
img { max-width: 100%; display: block }

.container { width: min(100% - 32px, var(--max)); margin-inline: auto }
.prose { max-width: var(--prose); margin-inline: auto }

/* ── Topbar ─────────────────────────────────────────────────── */
.topbar { position: sticky; top: 0; z-index: 50; background: #111; color: #fff; border-bottom: 1px solid #222 }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0 }
.adv-badge { display: inline-flex; align-items: center; gap: 8px; font-family: var(--sans); font-weight: 650; letter-spacing: .08em; text-transform: uppercase; font-size: 12px }
.adv-dot { width: 8px; height: 8px; border-radius: 50%; background: #ffcc00; flex-shrink: 0 }
.topbar-right { font-family: var(--sans); font-size: 12px; color: #cfcfcf; white-space: nowrap }
.topbar-right a { color: #cfcfcf; text-decoration: underline; text-underline-offset: 2px }
.topbar-right a:hover { color: #fff }

/* ── Sitehead ───────────────────────────────────────────────── */
.sitehead { border-bottom: 1px solid var(--border); background: #fff }
.sitehead-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 0; flex-wrap: nowrap }
.brand { display: flex; align-items: baseline; gap: 10px; flex-shrink: 0 }
.brand-mark { display: flex; align-items: center; gap: 10px; font-family: var(--serif); font-weight: 800; font-size: 24px; letter-spacing: -.02em; white-space: nowrap; color: #0d0d0d }
.brand-icon { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 999px; background: rgba(0,0,0,.06); color: var(--cta); flex-shrink: 0 }
.brand-tag { font-family: var(--sans); font-size: 12px; color: var(--muted); white-space: nowrap }

/* ── Nav ────────────────────────────────────────────────────── */
.nav { display: flex; gap: 4px; align-items: center; font-family: var(--sans); flex-shrink: 0; flex-wrap: nowrap }
.nav a { font-size: 13px; color: #333; padding: 6px 9px; border-radius: 10px; text-decoration: none; white-space: nowrap }
.nav a:hover { background: var(--paper); color: #111; text-decoration: none }
.nav a.nav-cta { background: var(--cta); color: #fff !important; padding: 7px 15px; border-radius: 999px; font-weight: 750; margin-left: 6px }
.nav a.nav-cta:hover { background: var(--cta-hover) }
@media (max-width: 680px) { .nav { display: none } }

/* ── Page ───────────────────────────────────────────────────── */
.main { padding: 26px 0 0 }
.breadcrumb { font-family: var(--sans); font-size: 12px; color: var(--muted); margin: 0 0 14px }
.breadcrumb span { color: #bbb }

/* ── Section wrapper ────────────────────────────────────────── */
.section { padding: 32px 0 }
.section + .section { border-top: 1px solid var(--border) }
.section:first-child { padding-top: 0 }

/* Section kicker + heading */
.section-kicker { font-family: var(--sans); font-weight: 800; letter-spacing: .13em; text-transform: uppercase; font-size: 11px; color: var(--cta); margin: 0 0 6px }
.section-heading { font-family: var(--serif); font-weight: 700; font-size: 28px; line-height: 1.15; letter-spacing: -.02em; color: #0d0d0d; margin: 0 0 16px }
.section-heading.sm { font-size: 22px }

/* ── Hero headline ──────────────────────────────────────────── */
h1 { font-family: var(--serif); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; font-size: clamp(30px, 3.8vw, 50px); margin: 8px 0 14px; color: #0d0d0d }
.subhead { font-family: var(--sans); font-size: 17px; font-weight: 400; color: #444; line-height: 1.65; margin: 0 0 16px }

/* ── Meta / byline chips ────────────────────────────────────── */
.meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; font-family: var(--sans); font-size: 12px; color: var(--muted); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 10px 0 }
.chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); background: var(--paper); padding: 4px 10px; border-radius: 999px; font-family: var(--sans); font-size: 12px }
.chip .pin { color: var(--cta); display: inline-flex; align-items: center; width: 14px; height: 14px }
.chip .pin svg { display: block }
.chip strong { color: #222; font-weight: 650 }
.guide-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--cta); color: #fff; padding: 4px 11px; border-radius: 999px; font-family: var(--sans); font-weight: 800; font-size: 11px; letter-spacing: .06em; text-transform: uppercase }

/* ── Hero image ─────────────────────────────────────────────── */
.hero { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--paper); margin-bottom: 0 }
.hero img { width: 100%; height: auto; display: block }
.caption { padding: 9px 12px; border-top: 1px solid var(--border); font-family: var(--sans); font-size: 12px; color: var(--muted) }

/* ── Body copy ──────────────────────────────────────────────── */
p { font-family: var(--sans); font-size: 16.5px; line-height: 1.82; color: #252525; margin: 0 0 14px }
p:last-child { margin-bottom: 0 }
.lede { font-size: 17.5px; color: #1a1a1a; line-height: 1.72; margin-bottom: 16px }
.small { font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.5 }

/* ── Pullquote ──────────────────────────────────────────────── */
.pullquote { border-left: 4px solid var(--cta); padding: 8px 0 8px 18px; margin: 22px 0; font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1.38; color: #111 }
.pullquote cite { display: block; margin-top: 8px; font-family: var(--sans); font-size: 12px; font-style: normal; font-weight: 400; color: var(--muted) }

/* ── Callout ────────────────────────────────────────────────── */
.callout { border: 1px solid var(--border); background: var(--paper); border-radius: var(--radius); padding: 14px 16px; margin: 0 0 22px }
.callout strong { display: block; font-family: var(--sans); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #333; font-weight: 800; margin-bottom: 7px }
.callout p { font-size: 13.5px; color: var(--muted); line-height: 1.60; margin: 0 }

/* ── Stat row — section 2 ───────────────────────────────────── */
/* 2–3 data point cards in a horizontal row */
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 22px 0 }
@media (max-width: 560px) { .stat-row { grid-template-columns: 1fr 1fr } }
.stat-card { border: 1px solid var(--border); background: var(--paper); border-radius: var(--radius); padding: 16px 14px; text-align: center }
.stat-num { font-family: var(--serif); font-weight: 800; font-size: 32px; color: var(--cta); line-height: 1; margin-bottom: 5px; letter-spacing: -.02em }
.stat-label { font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.4 }

/* ── Criteria list — section 3 ──────────────────────────────── */
/* Numbered expert-criteria cards */
.criteria-list { display: flex; flex-direction: column; gap: 12px; margin-top: 20px }
.criterion { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: #fff }
.criterion-head { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px 13px; background: var(--paper); border-bottom: 1px solid var(--border) }
.crit-num { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--cta-bg); border: 1px solid var(--cta-border); font-family: var(--serif); font-weight: 800; font-size: 18px; color: var(--cta); flex-shrink: 0 }
.crit-title { font-family: var(--serif); font-weight: 700; font-size: 17px; line-height: 1.22; letter-spacing: -.01em; color: #0d0d0d; margin: 0 0 2px }
.crit-deck { font-family: var(--sans); font-size: 13px; color: var(--muted); margin: 0 }
.criterion-body { padding: 12px 16px 14px }
.criterion-body p { font-family: var(--sans); font-size: 15px; line-height: 1.75; color: #222; margin: 0 0 10px }
.criterion-body p:last-child { margin-bottom: 0 }
/* Pass / fail / neutral verdict chips */
.verdict-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px }
.verdict { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-family: var(--sans); font-size: 12px; font-weight: 700; white-space: nowrap }
.verdict.pass { background: var(--pass-bg); border: 1px solid var(--pass-border); color: var(--pass-ink) }
.verdict.fail { background: var(--fail-bg); border: 1px solid var(--fail-border); color: var(--fail-ink) }
.verdict.note { background: var(--paper); border: 1px solid var(--border); color: var(--muted) }

/* ── Product comparison cards — section 4 ───────────────────── */
.product-grid { display: flex; flex-direction: column; gap: 16px; margin-top: 20px }
.product-card { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: #fff; position: relative }
/* Top-pick card gets a blue top border */
.product-card.top-pick { border-color: var(--cta); border-top-width: 3px }
.top-pick-badge { position: absolute; top: 14px; right: 14px; background: var(--cta); color: #fff; font-family: var(--sans); font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px }
.product-head { display: flex; gap: 16px; align-items: flex-start; padding: 16px 16px 14px; border-bottom: 1px solid var(--border) }
.product-rank { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 10px; background: var(--paper); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-weight: 800; font-size: 16px; color: #444; flex-shrink: 0 }
.product-card.top-pick .product-rank { background: var(--cta-bg); border-color: var(--cta-border); color: var(--cta) }
.product-name { font-family: var(--serif); font-weight: 700; font-size: 18px; letter-spacing: -.01em; color: #0d0d0d; margin: 0 0 3px }
.product-tagline { font-family: var(--sans); font-size: 13px; color: var(--muted); margin: 0 }
/* Score bar */
.product-score { padding: 12px 16px; border-bottom: 1px solid var(--border); background: var(--paper) }
.score-label { font-family: var(--sans); font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; display: flex; justify-content: space-between }
.score-label strong { font-family: var(--serif); font-size: 15px; color: var(--cta); font-weight: 800; text-transform: none; letter-spacing: 0 }
.score-track { height: 8px; background: var(--border); border-radius: 999px; overflow: hidden }
.score-fill { height: 100%; background: var(--cta); border-radius: 999px; transition: width .4s ease }
/* Product body */
.product-body { padding: 14px 16px 16px }
.product-body p { font-family: var(--sans); font-size: 15px; line-height: 1.75; color: #222; margin: 0 0 12px }
.product-body p:last-child { margin-bottom: 0 }
/* Criteria verdict tags on each product */
.product-verdicts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px }

/* ── CTA box ────────────────────────────────────────────────── */
.cta-box { border: 1px solid var(--cta-border); background: var(--cta-bg); border-radius: calc(var(--radius) + 2px); padding: 16px 18px; margin: 20px 0 }
.cta-box h3 { font-family: var(--serif); font-weight: 700; font-size: 16px; letter-spacing: -.01em; color: #1e3a8a; margin: 0 0 8px }
.cta-row { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap }
.cta-row > p { font-family: var(--sans); font-size: 14.5px; color: #333; line-height: 1.55; margin: 0; flex: 1 }
.cta-row strong { color: #111 }

/* ── Button ─────────────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 20px; border-radius: 999px; border: 1px solid transparent; background: var(--cta); color: #fff !important; font-family: var(--sans); font-weight: 750; font-size: 14px; letter-spacing: .01em; text-decoration: none !important; white-space: nowrap; cursor: pointer; flex-shrink: 0; transition: background .12s ease, transform .08s ease }
.btn:hover { background: var(--cta-hover); color: #fff !important }
.btn:active { transform: translateY(1px) }
.btn.secondary { background: transparent; color: var(--cta) !important; border: 1px solid var(--cta-border) }
.btn.secondary:hover { background: var(--cta-bg) }
.btn-full { width: 100%; justify-content: center }

/* ── Editor recommendation — section 5 ──────────────────────── */
.editor-rec { border: 1px solid var(--cta-border); background: var(--cta-bg); border-radius: var(--radius); overflow: hidden; margin: 20px 0 }
.editor-rec-head { padding: 16px 18px 14px; border-bottom: 1px solid var(--cta-border); display: flex; align-items: center; gap: 14px }
.editor-avatar { width: 46px; height: 46px; border-radius: 999px; background: var(--cta-bg); border: 2px solid var(--cta-border); display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-weight: 800; font-size: 16px; color: var(--cta); flex-shrink: 0 }
.editor-name { font-family: var(--sans); font-weight: 700; font-size: 13px; color: #111 }
.editor-role { font-family: var(--sans); font-size: 12px; color: var(--muted); margin-top: 1px }
.star-row { display: flex; gap: 2px; margin-top: 4px }
.star-row span { color: var(--star); font-size: 14px }
.star-row span.empty { color: var(--border) }
.editor-rec-body { padding: 16px 18px }
.editor-rec-body p { font-family: var(--sans); font-size: 15.5px; line-height: 1.78; color: #222; margin: 0 0 12px }
.editor-rec-name { font-family: var(--serif); font-weight: 700; font-size: 22px; letter-spacing: -.015em; color: #0d0d0d; margin: 0 0 8px }
.score-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 16px 0 }
@media (max-width: 540px) { .score-grid { grid-template-columns: 1fr 1fr } }
.score-cell { background: #fff; border: 1px solid var(--cta-border); border-radius: 10px; padding: 10px 12px; text-align: center }
.score-cell .sc-num { font-family: var(--serif); font-weight: 800; font-size: 22px; color: var(--cta); line-height: 1 }
.score-cell .sc-label { font-family: var(--sans); font-size: 11px; color: var(--muted); margin-top: 3px }

/* ── FAQ — section 6 ────────────────────────────────────────── */
.faq { display: flex; flex-direction: column; gap: 0; margin-top: 20px }
.faq-item { border-bottom: 1px solid var(--border); padding: 18px 0 }
.faq-item:first-child { border-top: 1px solid var(--border) }
.faq-q { font-family: var(--serif); font-weight: 700; font-size: 17px; line-height: 1.28; letter-spacing: -.01em; color: #0d0d0d; margin: 0 0 10px }
.faq-a p { font-family: var(--sans); font-size: 15.5px; line-height: 1.78; color: #333; margin: 0 0 10px }
.faq-a p:last-child { margin-bottom: 0 }

/* ── Offer bar ──────────────────────────────────────────────── */
.offerbar { position: fixed; left: 0; right: 0; bottom: 0; background: rgba(255,255,255,.96); border-top: 1px solid var(--border); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 70; transition: transform .22s ease; padding: 10px 0 }
.offerbar.hide { transform: translateY(100%) }
.offerbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 14px }
.offerbar-txt { font-family: var(--sans); font-size: 13px; color: #333; line-height: 1.25 }
.offerbar-txt strong { color: #111 }
@media (max-width: 480px) { .offerbar-txt { font-size: 12px } }

/* ── Footer ─────────────────────────────────────────────────── */
.footer { border-top: 1px solid var(--border); padding: 22px 0 34px; color: var(--muted); font-family: var(--sans); font-size: 12px }
.footer .cols { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center }
.footer a { color: var(--muted); text-decoration: underline; text-underline-offset: 2px }
.footer a:hover { color: #111 }

/* ── Modal ──────────────────────────────────────────────────── */
.modal-backdrop { position: fixed; inset: 0; background: rgba(6,6,12,.55); display: none; z-index: 80; align-items: center; justify-content: center; padding: 18px }
.modal-backdrop.open { display: flex }
.modal { width: min(520px, 100%); background: #fff; border: 1px solid var(--border); border-radius: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.18); padding: 24px 22px 20px }
.modal-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px }
.modal-brand { display: flex; align-items: center; gap: 10px; font-family: var(--serif); font-weight: 800; font-size: 17px; letter-spacing: -.01em }
.modal-brand .brand-icon { color: var(--cta) }
.modal h3 { font-family: var(--serif); margin: 10px 0 6px; font-size: 19px; font-weight: 700; letter-spacing: -.01em; color: #111 }
.modal p { margin: 0 0 14px; font-family: var(--sans); color: var(--muted); font-size: 14px; line-height: 1.55 }
.progress { height: 10px; background: rgba(37,99,235,.09); border-radius: 999px; overflow: hidden; border: 1px solid rgba(37,99,235,.18) }
.bar { width: 0%; height: 100%; background: var(--cta); border-radius: 999px; transition: width .08s linear }
.modal-steps { margin-top: 12px; font-family: var(--sans); font-weight: 700; font-size: 14px; color: #222 }
.modal-actions { margin-top: 14px; display: flex; justify-content: flex-end }

/* ── Availability page ──────────────────────────────────────── */
.av-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px }
.av-card { width: min(520px, 100%); border: 1px solid var(--border); border-radius: 18px; background: var(--bg); padding: 24px 22px 20px; box-shadow: 0 8px 30px rgba(0,0,0,.07) }
