/* ================================================================
   Advertorial — Listicle Review v2
   Chrome:     Classic News (topbar, sitehead, nav, offerbar, footer)
   Colour:     Slate teal (#0e7490) — distinct from green (#16a34a),
               indigo (#4f46e5), crimson (#be123c), amber (#b45309)
   Typography: Serif → h1, .h2, .item-title, .pullquote, brand, modal h3
               Sans  → body, chips, nav, buttons, badge numerals, meta
   Layout:     1080px chrome; 740px .prose for article content
   ================================================================ */

:root {
  --bg:           #ffffff;
  --ink:          #111111;
  --muted:        #5a5a5a;
  --border:       #e4e4e4;
  --paper:        #f8fafb;
  --link:         #0e7490;
  --link-hover:   #0a5c72;
  --cta:          #0e7490;
  --cta-hover:    #0a5c72;
  --cta-bg:       #ecfeff;
  --cta-border:   #a5d8e0;
  --badge-bg:     #cff0f6;
  --badge-border: #7dd4e0;
  --badge-ink:    #0a4a58;
  --max:    1080px;
  --prose:   740px;
  --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 }
@media (max-width: 600px) { .topbar-detail { display: none } }

/* ── 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 }
@media (max-width: 600px) { .sitehead-inner { justify-content: center } }
.brand { display: flex; align-items: baseline; gap: 10px; flex-shrink: 0 }
@media (max-width: 600px) { .brand { flex-direction: column; align-items: center; gap: 2px } }
.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: #222; 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: 600px) { .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 }

h1 { font-family: var(--serif); font-weight: 800; letter-spacing: -.025em; line-height: 1.08; font-size: clamp(30px, 3.8vw, 48px); margin: 8px 0 12px; color: #0d0d0d }
.subhead { font-family: var(--sans); font-size: 17px; font-weight: 400; color: #444; line-height: 1.65; margin: 0 0 16px }

/* ── Meta ───────────────────────────────────────────────────── */
.meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; 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 }

/* ── Hero ───────────────────────────────────────────────────── */
.hero { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--paper); margin-bottom: 26px }
.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) }

/* ── Sections ───────────────────────────────────────────────── */
.section { padding: 4px 0 22px }
.section + .section { border-top: 1px solid var(--border); padding-top: 22px }

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; margin-bottom: 16px }

.h2 { font-family: var(--serif); font-weight: 700; font-size: 26px; line-height: 1.18; letter-spacing: -.015em; color: #0d0d0d; margin: 0 0 14px }

/* ── Callout ────────────────────────────────────────────────── */
.callout { border: 1px solid var(--border); background: var(--paper); border-radius: var(--radius); padding: 14px 16px; margin: 0 0 20px }
.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 }

/* ── 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 }

/* ── 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: #0a4a58; 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 }

/* ── Buttons ────────────────────────────────────────────────── */
.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 }

/* ── Listicle items ─────────────────────────────────────────── */
.listicle { display: flex; flex-direction: column; gap: 16px; margin-top: 18px }
.item { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: #fff }
.item-head { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px 13px; border-bottom: 1px solid var(--border); background: var(--paper) }
.badge { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--badge-bg); border: 1px solid var(--badge-border); font-family: var(--serif); font-weight: 800; font-size: 20px; color: var(--badge-ink); line-height: 1; flex-shrink: 0 }
.item-title { font-family: var(--serif); font-weight: 700; font-size: 18px; line-height: 1.22; letter-spacing: -.01em; color: #0d0d0d; margin: 0 0 3px }
.item-deck { font-family: var(--sans); font-size: 13px; color: var(--muted); line-height: 1.45; margin: 0 }
.item-body { padding: 14px 16px 16px }
.item-body p { font-family: var(--sans); font-size: 15.5px; line-height: 1.78; color: #222; margin: 0 0 12px }
.item-body p:last-child { margin-bottom: 0 }

/* Inline image */
.inline-img { margin: 12px 0; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--paper) }
.inline-img img { width: 100%; height: auto; display: block }
.inline-img .img-cap { padding: 7px 10px; border-top: 1px solid var(--border); font-family: var(--sans); font-size: 12px; color: var(--muted) }

/* Before/after grid */
.ba { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 }
@media (max-width: 520px) { .ba { grid-template-columns: 1fr } }
.ba .panel { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: #fff }
.ba .panel img { width: 100%; height: auto; display: block }
.ba .panel .panel-label { padding: 6px 10px; border-bottom: 1px solid var(--border); font-family: var(--sans); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: #555 }

/* Reader quotes */
.quotes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 }
@media (max-width: 520px) { .quotes { grid-template-columns: 1fr } }
.qcard { border: 1px solid var(--border); border-radius: 12px; background: var(--paper); padding: 13px 14px }
.qcard .stars { color: var(--cta); font-size: 11px; letter-spacing: 2px; margin-bottom: 6px }
.qcard .qtext { font-family: var(--sans); font-size: 14px; color: #222; line-height: 1.62; font-style: italic; margin: 0 0 8px }
.qcard .qauthor { font-family: var(--sans); font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em }

/* ── 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 }
.small { font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.5 }

/* ── Modal ──────────────────────────────────────────────────── */
.modal-backdrop { position: fixed; inset: 0; background: rgba(6,10,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(14,116,144,.09); border-radius: 999px; overflow: hidden; border: 1px solid rgba(14,116,144,.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) }
