/* ===========================================================================
   INSIDE MEDSPA — soft, clean, luxe medical-spa editorial. Mobile-first.
   Calm warm-cream palette · airy whitespace · Fraunces serif + Inter sans.
   =========================================================================== */
:root {
  --soft: #F3ECDF;      /* warm cream panel */
  --soft2: #F8F2E8;     /* lighter cream */
  --deep: #423A2F;      /* soft warm taupe (rare, never harsh black) */
  --up: #5b8a6b;
  --down: #c08a82;
  --maxw: 1200px;
  --read: 760px;        /* comfortable reading measure */
  --gold-deep: #957C4C; /* richer gold for hovers / emphasis */
  --forest: #1E3A30;    /* deep emerald — the one bold jewel tone */
  --forest-2: #244A3C;  /* lighter emerald for depth */
  --gold-bright: #C9A85F; /* brighter gold for use ON dark green */
  --hair: rgba(61,55,48,.09);
  --shadow: 0 1px 1px rgba(45,40,33,.03), 0 12px 34px -10px rgba(45,40,33,.11);
  --shadow-lift: 0 3px 6px rgba(45,40,33,.05), 0 28px 56px -16px rgba(45,40,33,.20);
  --ease: cubic-bezier(.2,.7,.2,1);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--ink); background: var(--bg);
  font-size: 17px; line-height: 1.72; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  letter-spacing: 0.003em; font-feature-settings: "kern","liga","calt";
}
::selection { background: var(--accentSoft); color: var(--ink); }
::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar-thumb { background: var(--accentSoft); border-radius: 10px; border: 3px solid var(--bg); }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; line-height: 1.08; letter-spacing: 0; color: var(--ink); font-optical-sizing: auto; }

.kicker, .cat-tag, .front-title {
  font-size: 10px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--accent);
}

/* ---------- buttons (atelier — rectangular, letter-spaced, invert on hover) ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--ink); color: #fff !important;
  padding: 16px 38px; border-radius: 2px; text-decoration: none; font-family: 'Inter', system-ui, sans-serif; font-weight: 500; font-size: 11.5px; letter-spacing: 0.22em; text-transform: uppercase;
  border: 1px solid var(--ink); transition: background .4s var(--ease), color .4s var(--ease), border-color .4s; box-shadow: none;
}
.btn:hover { background: transparent; color: var(--ink) !important; }
.btn-gold { background: var(--accent); border-color: var(--accent); color: #fff !important; }
.btn-gold:hover { background: var(--ink); border-color: var(--ink); color: #fff !important; }
.btn-ghost { background: transparent; color: var(--ink) !important; border: 1px solid var(--ink); box-shadow: none; }
.btn-ghost:hover { background: var(--ink); color: #fff !important; }
.btn-sm { padding: 11px 24px; font-size: 10.5px; letter-spacing: 0.2em; }

/* ---------- utility strip (editorial dateline: date · tagline · subscribe) ---------- */
.util-bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; max-width: var(--maxw); margin: 0 auto; padding: 11px 22px; font-size: 11px; color: var(--muted); border-bottom: 1px solid var(--line); }
.util-date { letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; justify-self: start; }
.util-tag { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 500; font-size: 16px; color: var(--ink); justify-self: center; white-space: nowrap; }
.util-cta { justify-self: end; color: var(--accent); text-decoration: none; letter-spacing: 0.13em; text-transform: uppercase; font-size: 10px; font-weight: 600; white-space: nowrap; transition: color .25s; }
.util-cta:hover { color: var(--ink); }
.live-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); margin-right: 7px; flex-shrink: 0; }

/* ---------- masthead + nav ---------- */
.masthead-wrap { text-align: center; padding: 30px 16px 16px; max-width: var(--maxw); margin: 0 auto; }
.site-head { text-decoration: none; display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: 15px; }
.masthead-mark { height: 40px; width: auto; display: block; flex-shrink: 0; }
.wordmark { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: clamp(33px, 5vw, 52px); letter-spacing: 0; color: var(--ink); line-height: 1; }
.masthead-rule { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 16px auto 0; max-width: 540px; }
.masthead-rule .r { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--accent) 60%); opacity: .5; }
.masthead-rule .r:last-child { background: linear-gradient(270deg, transparent, var(--accent) 60%); }
.masthead-tag { font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--accent); white-space: nowrap; }
/* sticky emerald nav bar — monogram (left) · links + subscribe (true-centered via balanced flex zones) */
.topline { height: 3px; background: linear-gradient(90deg, var(--forest), var(--gold-bright) 50%, var(--forest)); }
/* live signals ticker — sticky just below the nav: recalls, new FDA clearances, market moves */
.ticker { position: sticky; top: 58px; z-index: 40; display: flex; align-items: stretch; background: var(--forest); background-image: radial-gradient(120% 300% at 0% 0%, var(--forest-2), var(--forest) 60%); color: #EFE7D6; overflow: hidden; border-bottom: 1px solid rgba(201,168,95,.22); box-shadow: 0 8px 16px -14px rgba(0,0,0,.5); }
.ticker-label { flex-shrink: 0; display: flex; align-items: center; gap: 7px; background: var(--gold-bright); color: var(--forest); font-weight: 700; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; padding: 0 16px; }
.tk-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--forest); animation: tkpulse 1.6s infinite; }
@keyframes tkpulse { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }
.ticker-viewport { overflow: hidden; flex: 1; min-width: 0; }
.ticker-track { display: inline-flex; white-space: nowrap; animation: ticker-scroll 80s linear infinite; }
.ticker:hover .ticker-track { animation-play-state: paused; }
.ticker-item { display: inline-flex; align-items: center; gap: 9px; padding: 8px 26px; color: rgba(239,231,214,.9); text-decoration: none; border-right: 1px solid rgba(239,231,214,.1); font-family: 'Cormorant Garamond', Georgia, serif; font-size: 15.5px; }
.ticker-item:hover { color: #fff; }
.tk-tag { font-family: 'Inter', system-ui, sans-serif; font-size: 8.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; flex-shrink: 0; }
.tk-tag.recall { background: rgba(190,90,90,.22); color: #E8A9A9; }
.tk-tag.fda { background: rgba(201,168,95,.2); color: var(--gold-bright); }
.tk-tag.up { background: rgba(143,203,166,.18); color: #9FD3B0; }
.tk-tag.down { background: rgba(190,90,90,.22); color: #E8A9A9; }
@keyframes ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 760px) { .ticker { top: 49px; } }
@media (prefers-reduced-motion: reduce) { .ticker-track { animation: none; } .ticker-viewport { overflow-x: auto; } }
.cat-nav { position: sticky; top: 0; z-index: 60; background: var(--forest); background-image: radial-gradient(130% 200% at 50% -60%, var(--forest-2), var(--forest) 70%); box-shadow: inset 0 1px 0 rgba(201,168,95,.16), 0 6px 18px -12px rgba(0,0,0,.55); transition: box-shadow .35s var(--ease); }
.nav-row { display: flex; align-items: center; gap: 16px; max-width: var(--maxw); margin: 0 auto; padding: 0 22px; min-height: 58px; }
/* equal flex zones each side keep the link cluster dead-centered regardless of brand/button width */
.nav-brand { flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: flex-start; gap: 9px; text-decoration: none; }
.nav-brand img { height: 23px; width: auto; filter: brightness(0) invert(1); opacity: .92; }
.nav-brand span { display: none; }
.nav-spacer { flex: 1 1 0; }
.nav-links { flex: 0 1 auto; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; }
.cat-nav a { position: relative; text-decoration: none; color: rgba(243,234,214,.78); font-size: 11.5px; letter-spacing: 0.13em; text-transform: uppercase; transition: color .25s; white-space: nowrap; padding-bottom: 3px; }
.cat-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--gold-bright); transform: scaleX(0); transition: transform .35s var(--ease); }
.cat-nav a:hover { color: var(--gold-bright); }
.cat-nav a:hover::after { transform: scaleX(1); }
.cat-nav .nav-cta { margin-left: 6px; background: var(--gold-bright); border-color: var(--gold-bright); color: var(--forest) !important; box-shadow: 0 5px 16px -5px rgba(201,168,95,.55); }
.cat-nav .nav-cta::after { display: none; }
.cat-nav .nav-cta:hover { background: #fff; border-color: #fff; color: var(--forest) !important; box-shadow: 0 9px 22px -6px rgba(201,168,95,.7); }
/* desktop: one tight row; secondary items live in the mobile menu + footer */
@media (min-width: 761px) {
  .nav-links { flex-wrap: nowrap; gap: 20px; }
  .nav-more { display: none; }
  .nav-brand { opacity: 0; transform: translateX(-6px); pointer-events: none; transition: opacity .4s var(--ease), transform .4s var(--ease); }
  .cat-nav.nav-stuck .nav-brand { opacity: 1; transform: translateX(0); pointer-events: auto; }
  .cat-nav.nav-stuck { box-shadow: inset 0 1px 0 rgba(201,168,95,.22), 0 14px 30px -14px rgba(0,0,0,.6); }
}
/* hamburger (mobile only) */
.nav-burger { display: none; flex-direction: row; align-items: center; gap: 11px; cursor: pointer; padding: 11px 20px; margin: 0 auto; width: max-content;
  border: 1px solid var(--line); border-radius: 999px; background: var(--panel); box-shadow: var(--shadow); user-select: none; }
.nav-burger .bars { display: flex; flex-direction: column; justify-content: center; gap: 4px; width: 20px; }
.nav-burger .bars i { display: block; width: 100%; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .25s ease, opacity .2s; }
.nav-burger em { font-style: normal; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); font-weight: 600; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--ink); color: #fff; padding: 10px 16px; z-index: 100; border-radius: 0 0 8px 0; }
.skip-link:focus { left: 0; }

/* ---------- front page ---------- */
.front { max-width: var(--maxw); margin: 0 auto; padding: 56px 22px 8px; }
.front-title { display: flex; align-items: center; gap: 16px; color: var(--accent); margin-bottom: 32px; }
.front-title::before { content: ""; width: 6px; height: 6px; background: var(--accent); transform: rotate(45deg); flex: none; }
.front-title::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--accent), var(--line) 30%, transparent); opacity: .6; }
.ai-badge { background: var(--ink); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: 0.16em; padding: 5px 10px; border-radius: 999px; }

/* lead */
.lead-story { display: grid; grid-template-columns: 1.55fr 1fr; gap: 56px; padding-bottom: 52px; margin-bottom: 48px; border-bottom: 1px solid var(--line); }
.lead-main a { text-decoration: none; color: inherit; }
.lead-img { width: 100%; aspect-ratio: 16/10; max-height: 420px; object-fit: cover; border-radius: 16px; margin-bottom: 22px; box-shadow: var(--shadow); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.lead-main a:hover .lead-img { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.lead-main .cat-tag { margin-bottom: 16px; display: inline-block; }
.lead-main h2 { font-size: clamp(37px, 5.2vw, 66px); margin-bottom: 20px; font-weight: 600; letter-spacing: 0; line-height: 1.02; }
.lead-main a:hover h2 { color: var(--accent); }
.lead-main .dek { font-size: 19px; color: var(--muted); line-height: 1.58; max-width: 42ch; }
.lead-side { display: flex; flex-direction: column; }
.lead-side a { text-decoration: none; color: inherit; padding: 18px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 84px; gap: 18px; align-items: start; transition: opacity .25s; }
.lead-side a:first-child { border-top: none; padding-top: 0; }
.lead-side h3 { font-size: 21px; line-height: 1.18; margin: 5px 0; font-weight: 600; transition: color .25s; }
.lead-side a:hover h3 { color: var(--accent); }
.lead-side-img { width: 84px; aspect-ratio: 1/1; object-fit: cover; border-radius: 12px; box-shadow: var(--shadow); }

/* email capture form */
.ec .ec-form { display: flex; gap: 10px; max-width: 460px; margin: 8px auto 0; flex-wrap: wrap; }
.ec .ec-form input { flex: 1 1 240px; padding: 14px 18px; border-radius: 999px; border: 1px solid var(--line); font-size: 15px; background: #fff; font-family: inherit; }
.ec .ec-form input:focus { outline: none; border-color: var(--accent); }
.ec .ec-msg { margin-top: 14px; color: var(--accent); font-size: 13.5px; }
.ec-fine { margin-top: 13px; font-size: 11.5px; color: var(--muted); letter-spacing: .01em; }
.ec-fine a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }

/* inline variant — left-aligned band inside long-form pages */
.ec-inline-wrap { margin: 46px 0; }
.ec.ec--inline { text-align: left; padding: 32px clamp(22px,3vw,34px); background: var(--soft); }
.ec.ec--inline .ec-title { font-size: clamp(22px,2.6vw,27px); margin: 9px 0 8px; font-weight: 600; line-height: 1.12; }
.ec.ec--inline .ec-blurb { color: var(--muted); max-width: 560px; margin: 0 0 18px; }
.ec.ec--inline .ec-form { margin: 0; max-width: 540px; }
.ec.ec--inline .ec-msg, .ec.ec--inline .ec-fine { text-align: left; }

/* rail variant — compact card, the soft step above the emerald Pro card */
.ec-rail-wrap { display: contents; }
.ec.ec--rail { text-align: left; padding: 20px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line); box-shadow: var(--shadow); }
.ec.ec--rail .eyebrow { font-size: 9.5px; }
.ec.ec--rail .ec-title { font-size: 19px; font-weight: 600; line-height: 1.1; margin: 8px 0 6px; }
.ec.ec--rail .ec-blurb { font-size: 13px; color: var(--muted); margin: 0 0 14px; line-height: 1.5; }
.ec.ec--rail .ec-form { flex-direction: column; gap: 8px; max-width: none; margin: 0; }
.ec.ec--rail .ec-form input { flex: 1 1 auto; width: 100%; border-radius: 10px; padding: 12px 14px; }
.ec.ec--rail .btn { width: 100%; border-radius: 10px; }
.ec.ec--rail .ec-msg { margin-top: 10px; font-size: 12.5px; }
.ec.ec--rail .ec-fine { margin-top: 10px; font-size: 10.5px; }

/* "The Brief" — soft cream rail */
.brief-rail { background: var(--soft); border: 1px solid var(--line); border-radius: 18px; padding: 42px clamp(22px,4vw,50px); margin: 36px auto; max-width: var(--maxw); }
.brief-rail .rail-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 10px; border-bottom: 1px solid var(--line); padding-bottom: 18px; margin-bottom: 6px; }
.brief-rail .rail-head h2 { font-size: clamp(26px,3vw,38px); font-weight: 600; }
.rail-item { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.rail-item:last-of-type { border-bottom: none; }
.rail-item .n { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 30px; color: var(--accent); line-height: 1; font-weight: 500; }
.rail-item h3 { font-size: 21px; margin-bottom: 7px; font-weight: 600; }
.rail-item p { color: var(--muted); font-size: 15px; line-height: 1.6; }
.rail-why { color: #5b5147 !important; margin-top: 8px; }
.rail-why .lbl-soft { color: var(--accent); font-weight: 600; }
.rail-lock { color: var(--accent); font-size: 12px; letter-spacing: .04em; margin-top: 8px; opacity: .85; }
.brief-rail .rail-cta { margin-top: 26px; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.brief-rail .rail-cta .more { color: var(--accent); font-size: 13.5px; text-decoration: none; border-bottom: 1px solid rgba(176,151,111,.4); }

/* latest grid */
.latest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 54px 40px; }
.card { display: block; text-decoration: none; color: inherit; }
.card-img { width: 100%; aspect-ratio: 3/2; object-fit: cover; border-radius: 14px; margin-bottom: 17px; box-shadow: var(--shadow); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.card:hover .card-img { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.card .cat-tag { display: inline-block; margin-bottom: 10px; }
.card h3 { font-size: 25px; line-height: 1.14; margin-bottom: 10px; font-weight: 600; letter-spacing: 0; transition: color .25s; }
.card:hover h3 { color: var(--accent); }
.card .dek { font-size: 14.5px; color: var(--muted); line-height: 1.6; }
.meta { font-size: 11px; color: var(--muted); letter-spacing: .1em; text-transform: uppercase; margin-top: 12px; }
.meta .dot { margin: 0 6px; color: var(--accent); }

/* pro band — second emerald moment (bookends the deep showcase) */
.pro-band { background: var(--forest); background-image: radial-gradient(130% 150% at 12% 0%, var(--forest-2), var(--forest) 62%); border: none; border-radius: 22px; padding: clamp(42px,5vw,70px); margin: 80px auto; max-width: var(--maxw); display: grid; grid-template-columns: 1.25fr 1fr; gap: 56px; align-items: center; box-shadow: var(--shadow-lift); color: #EFE7D6; }
.pro-band .kicker { color: var(--gold-bright); }
.pro-band h2 { font-size: clamp(30px,4vw,48px); margin: 14px 0; font-weight: 600; line-height: 1.03; color: #FBF7EE; }
.pro-band p { color: rgba(239,231,214,.78); }
.pro-band .pts { list-style: none; display: grid; gap: 12px; margin-top: 20px; }
.pro-band .pts li { padding-left: 26px; position: relative; color: rgba(239,231,214,.88); font-size: 15px; }
.pro-band .pts li::before { content: ""; position: absolute; left: 0; top: 11px; width: 12px; height: 1px; background: var(--gold-bright); }
.pro-band .cta { text-align: center; border-left: 1px solid rgba(201,168,95,.28); padding-left: 48px; }
.pro-band .price-big { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 84px; line-height: .92; color: var(--gold-bright); font-weight: 600; }
.pro-band .price-big small { font-size: 19px; color: rgba(239,231,214,.7); font-family: 'Inter', sans-serif; }
.pro-band .cta p { color: rgba(239,231,214,.65) !important; }
.pro-band .cta .btn-gold { background: var(--gold-bright); border-color: var(--gold-bright); color: var(--forest) !important; }
.pro-band .cta .btn-gold:hover { background: #fff; border-color: #fff; color: var(--forest) !important; }

/* ---------- article ---------- */
.article { max-width: 720px; margin: 0 auto; padding: 58px 22px; }
.article-cat { margin-bottom: 20px; }
.article h1 { font-size: clamp(37px,5.4vw,62px); margin-bottom: 22px; font-weight: 600; letter-spacing: 0; line-height: 1.04; }
.article .dek { font-size: 20px; color: #5a5346; line-height: 1.55; margin-bottom: 26px; font-family: 'Inter', system-ui, sans-serif; font-weight: 400; font-style: normal; }
.article-hero { width: 100%; aspect-ratio: 3/2; object-fit: cover; border-radius: 14px; margin: 6px 0 8px; box-shadow: var(--shadow); }
.hero-credit, .credit { font-size: 11px; color: var(--muted); text-align: right; margin-bottom: 26px; letter-spacing: .04em; }
.byline { font-size: 11.5px; color: var(--muted); letter-spacing: .1em; text-transform: uppercase; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 0; margin-bottom: 30px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.article-body p { font-size: 18.5px; line-height: 1.84; color: #463f37; margin-bottom: 24px; }
.lead-body > p:first-child::first-letter { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: 3.5em; line-height: .82; float: left; margin: 8px 12px 0 0; color: var(--accent); }
.article-body h2 { font-size: 30px; margin: 40px 0 12px; font-weight: 600; }
.article-body h3 { font-size: 24px; margin: 30px 0 10px; font-weight: 600; }
.article-body strong { font-weight: 600; color: var(--ink); }
.article-body ul, .article-body ol { margin: 0 0 22px 1.1em; }
.article-body li { font-size: 18px; line-height: 1.7; color: #4a443c; margin-bottom: 8px; padding-left: 4px; }
.article-body a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.source-note { font-size: 12.5px; color: var(--muted); margin-top: 20px; }
.pullquote { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(23px, 3.1vw, 31px); line-height: 1.32; font-weight: 600; font-style: italic; color: var(--ink); margin: 36px 0; padding: 6px 0 6px 26px; border-left: 3px solid var(--accent); }

/* stat callouts + charts */
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 26px 0; }
.stat { background: var(--soft); border: 1px solid var(--line); border-radius: 14px; padding: 22px; text-align: center; }
.stat .v { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(30px, 4vw, 44px); line-height: 1; color: var(--ink); }
.stat .v.up { color: var(--up); } .stat .v.down { color: var(--down); }
.stat .l { font-size: 12px; color: var(--muted); letter-spacing: .04em; margin-top: 8px; }
.chart-wrap { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 24px clamp(16px,3vw,28px); box-shadow: var(--shadow); margin-bottom: 28px; }
.chart-wrap h3 { font-size: 20px; margin-bottom: 4px; font-weight: 600; }
.chart-wrap .sub { font-size: 12.5px; color: var(--muted); margin-bottom: 16px; }
.bar-row-t { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 14px; fill: var(--ink); }
.bar-row-v { font-size: 12px; }
.data-chart { margin: 26px 0 30px; }
.data-chart .ax-x { font-size: 11px; fill: var(--muted); }
.data-chart .ax-y { font-size: 11px; fill: var(--muted); }
.chart-legend { display: flex; gap: 20px; margin-top: 12px; font-size: 12.5px; color: var(--muted); }
.chart-legend span { display: inline-flex; align-items: center; gap: 7px; }
.chart-legend .sw { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
@media (max-width: 560px) { .stat-row { grid-template-columns: 1fr; } .data-chart .ax-x { font-size: 9px; } }
.banner { width: 100%; aspect-ratio: 21/8; object-fit: cover; border-radius: 14px; margin: 14px 0; box-shadow: var(--shadow); }

/* inline pro */
.inline-pro { background: var(--soft); border: 1px solid var(--line); border-radius: 18px; padding: 40px 34px; margin: 44px 0; text-align: center; }
.inline-pro h3 { font-size: 27px; margin-bottom: 10px; font-weight: 600; line-height: 1.12; }
.inline-pro p { color: var(--muted); margin-bottom: 20px; }

/* cat / guide head */
.cat-head { max-width: var(--maxw); margin: 0 auto; padding: 62px 22px 12px; }
.cat-head h1 { font-size: clamp(37px,5.2vw,64px); margin: 16px 0; font-weight: 600; letter-spacing: 0; line-height: 1.04; }
.cat-head p { color: var(--muted); max-width: 62ch; font-size: 18px; line-height: 1.6; }

/* prose (about) */
.prose { max-width: 720px; margin: 0 auto; padding: 60px 22px; }
.prose h1 { font-size: clamp(34px,5.2vw,52px); margin-bottom: 24px; font-weight: 600; }
.prose .lead { font-size: 21px; color: #5a5346; font-family: 'Inter', system-ui, sans-serif; font-weight: 400; line-height: 1.6; }
.prose p { font-size: 18px; color: #4a443c; margin-bottom: 20px; }
/* legal pages (privacy / terms) */
.legal h2 { font-size: 23px; font-weight: 600; margin: 38px 0 12px; }
.legal .legal-meta { font-size: 13px; color: var(--muted); margin: -8px 0 8px; letter-spacing: .01em; }
.legal ul { margin: 0 0 20px; padding-left: 22px; }
.legal li { font-size: 17px; color: #4a443c; line-height: 1.6; margin-bottom: 10px; }
.legal a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.legal strong { color: var(--ink); }
.legal .legal-foot { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 16px; }
.legal .legal-foot a { font-weight: 600; }

/* subscriber login — premium centered card */
.login-wrap { max-width: 540px; margin: 0 auto; padding: 64px 22px 90px; text-align: center; }
.login-card { position: relative; background: var(--panel); border: 1px solid var(--line); border-radius: 22px; padding: 54px 44px 40px; box-shadow: var(--shadow-lift); overflow: hidden; }
.login-rule { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--forest), var(--gold-bright) 50%, var(--forest)); }
.login-mark { height: 30px; width: auto; margin-bottom: 16px; opacity: .92; }
.login-card .eyebrow { display: block; }
.login-card h1 { font-size: clamp(34px,5vw,48px); font-weight: 600; line-height: 1.04; margin: 10px 0 14px; }
.login-sub { color: var(--muted); font-size: 16px; line-height: 1.55; max-width: 400px; margin: 0 auto 26px; }
.login-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; max-width: 440px; margin: 0 auto; }
.login-form input { flex: 1 1 230px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 10px; font-size: 15px; font-family: inherit; background: #fff; min-width: 0; }
.login-form input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(164,130,63,.12); }
.login-form .btn { border-radius: 10px; white-space: nowrap; }
.login-msg { margin: 18px auto 0; font-size: 14px; color: var(--accent); max-width: 400px; }
.login-msg.ok { color: var(--forest-2); }
.login-msg a { color: var(--accent); text-decoration: underline; }
.login-perks { list-style: none; padding: 24px 0 0; margin: 28px auto 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; max-width: 440px; border-top: 1px solid var(--line); }
.login-perks li { position: relative; padding-left: 18px; font-size: 12.5px; color: var(--muted); }
.login-perks li::before { content: "\2713"; position: absolute; left: 0; color: var(--accent); font-weight: 700; }
.login-foot { margin-top: 24px; font-size: 14px; color: var(--muted); }
.login-foot a { color: var(--accent); font-weight: 600; text-decoration: none; }
.login-foot a:hover { text-decoration: underline; }

/* ---------- calculators ---------- */
.calc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 920px; margin: 0 auto; }
.calc-card { display: block; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 26px; text-decoration: none; color: inherit; box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s; }
.calc-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.calc-card h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 24px; margin: 10px 0 8px; color: var(--ink); }
.calc-card p { color: var(--muted); font-size: 14.5px; line-height: 1.5; margin-bottom: 14px; }
.calc-go { color: var(--accent); font-weight: 600; font-size: 13px; letter-spacing: .02em; }
.calc-page { max-width: 780px; }
.calc { display: grid; grid-template-columns: 1.1fr .9fr; gap: 24px; margin: 26px 0 14px; align-items: start; }
.calc-inputs { display: flex; flex-direction: column; gap: 14px; }
.calc-field { display: flex; flex-direction: column; gap: 6px; }
.cf-label { font-size: 13px; color: var(--ink); font-weight: 500; }
.cf-input { display: flex; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: #fff; overflow: hidden; }
.cf-input:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(164,130,63,.1); }
.cf-affix { padding: 0 4px 0 12px; color: var(--muted); font-size: 14px; }
.cf-affix.suf { padding: 0 12px 0 4px; }
.cf-input input { flex: 1; min-width: 0; border: none; outline: none; padding: 11px 12px; font-size: 15px; font-family: inherit; background: transparent; }
.calc-areas { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--soft2); }
.calc-areas-h { font-size: 12px; color: var(--muted); margin: 0 0 8px; } .calc-areas-h span { font-weight: 400; }
.calc-area { display: grid; grid-template-columns: auto 1fr 60px auto; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--line); font-size: 13.5px; cursor: pointer; }
.calc-area:first-of-type { border-top: none; }
.calc-area input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--forest); }
.calc-area .ca-label { color: var(--ink); }
.calc-area input[type=number] { width: 60px; border: 1px solid var(--line); border-radius: 7px; padding: 6px 8px; font-size: 13px; font-family: inherit; text-align: right; }
.calc-area .ca-u { font-size: 11px; color: var(--muted); }
.calc-results { position: sticky; top: 76px; background: var(--forest); background-image: radial-gradient(130% 160% at 50% -30%, var(--forest-2), var(--forest) 68%); border-radius: 16px; padding: 22px; display: flex; flex-direction: column; gap: 2px; box-shadow: var(--shadow-lift); }
.calc-out { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 9px 0; border-top: 1px solid rgba(239,231,214,.14); }
.calc-out:first-child { border-top: none; }
.co-label { font-size: 12.5px; color: rgba(239,231,214,.72); }
.co-val { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 20px; color: #FBF7EE; white-space: nowrap; }
.calc-out.big { padding: 12px 0; }
.calc-out.big .co-label { color: var(--gold-bright); font-weight: 600; }
.calc-out.big .co-val { font-size: 30px; color: var(--gold-bright); }
.calc-note { font-size: 12.5px; color: var(--muted); background: var(--soft); border-left: 3px solid var(--accent); border-radius: 8px; padding: 11px 14px; margin: 6px 0 24px; line-height: 1.5; }
.calc-note strong { color: var(--ink); }
.calc-related { margin: 28px 0; }
.calc-related h3 { font-size: 18px; font-weight: 600; margin-bottom: 10px; }
.calc-related ul { list-style: none; padding: 0; display: grid; gap: 8px; }
.calc-related a { color: var(--accent); text-decoration: none; font-size: 15px; }
.calc-related a:hover { text-decoration: underline; }
.calc-viz { margin: 4px 0 22px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 20px; box-shadow: var(--shadow); }
.cv-h { font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 14px; }
.cv-barwrap { height: 26px; border-radius: 6px; overflow: hidden; background: var(--soft); }
.cv-barwrap svg { display: block; width: 100%; height: 26px; }
.cv-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 14px; }
.cv-leg { font-size: 12.5px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.cv-leg i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; flex-shrink: 0; }
.cv-leg b { color: var(--ink); font-weight: 600; }
.cv-vbars, .cv-line { width: 100%; height: auto; display: block; }
.cv-vbars .cv-bv { font-size: 11px; fill: var(--ink); font-weight: 600; text-anchor: middle; font-family: 'Inter', system-ui, sans-serif; }
.cv-vbars .cv-bl { font-size: 10px; fill: var(--muted); text-anchor: middle; font-family: 'Inter', system-ui, sans-serif; }
.cv-line .cv-bv { font-size: 8px; fill: var(--gold-deep); font-weight: 600; font-family: 'Inter', system-ui, sans-serif; }
@media (max-width: 700px) {
  .calc-grid { grid-template-columns: 1fr; }
  .calc { grid-template-columns: 1fr; }
  .calc-results { position: static; }
}
/* ---------- ingredient glossary ---------- */
.ing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 980px; margin: 0 auto; }
.ing-card { display: block; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 20px; text-decoration: none; color: inherit; box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s; }
.ing-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.ing-cat { font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.ing-card h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 21px; margin: 6px 0 6px; color: var(--ink); }
.ing-card p { color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.ing-aka { font-size: 14px; color: var(--muted); margin-top: -2px; }
.ing-aka strong { color: var(--ink); }
@media (max-width: 820px) { .ing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .ing-grid { grid-template-columns: 1fr; } }
/* ---------- safety signals (FAERS/MAUDE) ---------- */
.safety-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: 920px; margin: 0 auto; }
.safety-card { border: 1px solid var(--line); border-radius: 14px; padding: 20px; background: var(--panel); box-shadow: var(--shadow); }
.sfc-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.sfc-head h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 21px; color: var(--ink); }
.sfc-src { font-size: 9px; font-weight: 700; letter-spacing: .1em; color: var(--accent); background: var(--soft); padding: 3px 8px; border-radius: 999px; flex-shrink: 0; }
.sfc-nums { display: flex; gap: 26px; margin: 12px 0 14px; }
.sfc-n { display: flex; flex-direction: column; }
.sfc-v { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 28px; color: var(--ink); line-height: 1; }
.sfc-l { font-size: 11px; color: var(--muted); margin-top: 4px; letter-spacing: .03em; }
.sfc-top { border-top: 1px solid var(--line); padding-top: 12px; }
.sfc-toph { font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 8px; }
.sfc-row { display: grid; grid-template-columns: 1fr 64px auto; align-items: center; gap: 8px; margin-bottom: 5px; font-size: 12.5px; }
.sfc-rt { color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sfc-rb { height: 6px; background: var(--soft); border-radius: 999px; overflow: hidden; }
.sfc-rb i { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.sfc-rn { color: var(--muted); font-size: 11.5px; text-align: right; }
@media (max-width: 640px) { .safety-grid { grid-template-columns: 1fr; } }
/* ---------- pricing / go-pro ---------- */
.pricing { max-width: 1080px; margin: 0 auto; padding: 56px 22px 84px; }
.pricing-head { text-align: center; max-width: 740px; margin: 0 auto 44px; }
.pricing-head h1 { font-size: clamp(34px,5vw,54px); font-weight: 600; line-height: 1.04; margin: 12px 0 16px; }
.pricing-head .lead { font-size: 19px; color: var(--muted); line-height: 1.6; }
.pricing-head .lead strong { color: var(--ink); }
.pricing-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 44px; align-items: start; }
.pv-price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 22px; }
.pv-amt { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 62px; line-height: 1; color: var(--ink); }
.pv-per { font-size: 18px; color: var(--muted); }
.pv-list { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 15px; }
.pv-list li { position: relative; padding-left: 30px; }
.pv-list li::before { content: "\2713"; position: absolute; left: 0; top: 1px; color: var(--accent); font-weight: 700; }
.pv-list strong { display: block; color: var(--ink); font-size: 15.5px; margin-bottom: 3px; }
.pv-list span { color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.pv-fine { font-size: 12.5px; color: var(--muted); margin-top: 8px; }
.pv-login { font-size: 14px; margin-top: 14px; }
.pv-login a { color: var(--accent); font-weight: 600; text-decoration: none; }
.pricing-checkout { position: sticky; top: 100px; }
.pc-card { background: var(--panel); border: 1px solid var(--line); border-radius: 18px; padding: 28px; box-shadow: var(--shadow-lift); }
.pc-card h2 { font-size: 22px; font-weight: 600; margin-bottom: 18px; }
#checkout { min-height: 40px; }
.pc-fb-sub { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
.pc-fb-btn { width: 100%; }
.pc-fb-note { font-size: 12px; color: var(--muted); text-align: center; margin-top: 12px; }
@media (max-width: 860px) { .pricing-grid { grid-template-columns: 1fr; gap: 28px; } .pricing-checkout { position: static; } }
.eyebrow { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); font-weight: 600; }

/* ---------- stock watch ---------- */
.watch-table { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--panel); box-shadow: var(--shadow); }
.watch-row { display: grid; grid-template-columns: 210px 140px 1fr; gap: 18px; padding: 20px 22px; border-bottom: 1px solid var(--line); align-items: center; }
.watch-row:last-child { border-bottom: none; }
.watch-tk strong { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 19px; display: block; font-weight: 600; }
.watch-name { font-size: 12px; color: var(--muted); }
.watch-price .px { font-weight: 600; font-size: 16px; margin-right: 8px; }
.watch-price .chg { font-size: 12px; padding: 3px 8px; border-radius: 999px; }
.watch-price .chg.up { color: var(--up); background: #eef4ef; } .watch-price .chg.down { color: var(--down); background: #f7eeec; }
.watch-na { font-size: 12px; color: var(--muted); font-style: italic; }
.watch-why { font-size: 14px; color: #4a443c; }
.watch-evt { display: block; margin-top: 6px; font-size: 11.5px; color: var(--accent); text-decoration: none; }

/* ---------- brief teaser (/brief) ---------- */
.brief { max-width: 760px; margin: 0 auto; padding: 50px 22px; }
.brief-head { text-align: center; margin-bottom: 42px; }
.brief-head h1 { font-size: clamp(30px,4.6vw,46px); margin: 12px 0 14px; font-weight: 600; }
.brief-sub { color: var(--muted); max-width: 560px; margin: 0 auto; }
.brief-item { border: 1px solid var(--line); border-radius: 16px; padding: 28px; margin-bottom: 20px; background: var(--panel); box-shadow: var(--shadow); }
.brief-item h2 { font-size: 22px; line-height: 1.28; margin-bottom: 14px; display: flex; gap: 12px; align-items: baseline; font-weight: 600; }
.brief-item h2 .idx { font-family: 'Cormorant Garamond', Georgia, serif; color: var(--accent); font-size: 24px; flex: none; font-weight: 500; }
.brief-item .what { color: #4a443c; font-size: 16px; }
.lbl { display: block; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.lbl.gold { color: var(--accent); }
.locked { position: relative; margin-top: 18px; padding: 20px; border-radius: 12px; background: var(--soft); border: 1px dashed var(--accent); overflow: hidden; }
.lock-row { margin-bottom: 12px; }
.bar { display: inline-block; height: 10px; width: 100%; border-radius: 999px; background: repeating-linear-gradient(90deg,#e8e0d2,#e8e0d2 16px,#f0e9dc 16px,#f0e9dc 28px); filter: blur(1px); }
.bar.short { width: 60%; margin-top: 7px; }
.lock-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 10px; align-items: center; justify-content: center; background: rgba(244,238,228,0.55); backdrop-filter: blur(2px); }
.lock-ico { font-size: 20px; }
.brief-foot-cta { margin-top: 36px; }

/* ---------- marketplace ---------- */
.mk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.mk-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 24px; transition: transform .2s ease, box-shadow .2s; box-shadow: var(--shadow); }
.mk-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(61,55,48,.05), 0 14px 36px rgba(61,55,48,.08); }
.mk-card h3 { font-size: 20px; margin-bottom: 7px; font-weight: 600; }
.mk-card p { font-size: 14px; color: var(--muted); flex: 1; }
.mk-visit { margin-top: 14px; color: var(--accent); font-size: 13px; letter-spacing: .04em; }
.mk-feature { background: var(--soft); border-style: dashed; border-color: var(--accent); }
.mk-feature .cat-tag { margin-bottom: 10px; }
@media (max-width: 820px) { .mk-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .mk-grid { grid-template-columns: 1fr; } }

/* ---------- archive ---------- */
.archive-list { list-style: none; }
.archive-list li { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.archive-list a { text-decoration: none; color: var(--ink); font-family: 'Cormorant Garamond', Georgia, serif; font-size: 19px; font-weight: 600; transition: color .2s; }
.archive-list a:hover { color: var(--accent); }
.archive-date { color: var(--muted); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }

/* ---------- footer (editorial, structured) ---------- */
.site-foot { border-top: 1px solid var(--line); margin-top: 84px; background: var(--soft2); }
.foot-top { max-width: var(--maxw); margin: 0 auto; padding: 64px 22px 50px; display: grid; grid-template-columns: 1.25fr 2fr; gap: 60px; }
.foot-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.foot-logo img { height: 30px; width: auto; }
.foot-logo span { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 25px; font-weight: 600; color: var(--ink); letter-spacing: -0.03em; }
.foot-tag { color: var(--accent); font-size: 10px; letter-spacing: .28em; text-transform: uppercase; margin: 16px 0 16px; }
.foot-blurb { color: var(--muted); font-size: 14px; line-height: 1.65; max-width: 38ch; margin-bottom: 24px; }
.foot-cta { display: inline-flex; }
.foot-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 28px; }
.foot-col h4 { font-family: 'Inter', sans-serif; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-bottom: 16px; }
.foot-col a { display: block; text-decoration: none; color: var(--ink); font-size: 14px; padding: 6px 0; opacity: .75; transition: color .2s, opacity .2s, padding-left .2s; }
.foot-col a:hover { color: var(--accent); opacity: 1; padding-left: 4px; }
.foot-bottom { border-top: 1px solid var(--line); max-width: var(--maxw); margin: 0 auto; padding: 26px 22px 46px; }
.disclaimer { color: var(--muted); font-size: 11.5px; max-width: 820px; line-height: 1.6; margin-bottom: 10px; }
.foot-legal { color: var(--muted); font-size: 11.5px; letter-spacing: .02em; }
.foot-legal a { color: var(--accent); }
.foot-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 12px; font-size: 12px; }
.foot-links a { color: var(--ink); text-decoration: none; opacity: .85; }
.foot-links a:hover { color: var(--accent); opacity: 1; }
.foot-links .sep { color: var(--line); }
@media (max-width: 820px) {
  .foot-top { grid-template-columns: 1fr; gap: 44px; padding: 52px 22px 38px; }
  .foot-cols { grid-template-columns: 1fr 1fr 1fr; gap: 30px 20px; }
}
@media (max-width: 520px) { .foot-cols { grid-template-columns: 1fr 1fr; } }

/* ---------- responsive ---------- */
@media (max-width: 880px) {
  .lead-story { grid-template-columns: 1fr; gap: 28px; }
  .latest-grid { grid-template-columns: 1fr 1fr; gap: 32px 26px; }
  .pro-band { grid-template-columns: 1fr; gap: 28px; }
  .pro-band .cta { border-left: none; border-top: 1px solid rgba(201,168,95,.28); padding-left: 0; padding-top: 28px; }
  .watch-row { grid-template-columns: 1fr; gap: 7px; }
}
@media (max-width: 560px) {
  .latest-grid { grid-template-columns: 1fr; gap: 32px; }
  .front { padding: 30px 18px 8px; }
  .lead-side a { grid-template-columns: 1fr 72px; }
  .lead-side-img { width: 72px; }
  .brief-rail { padding: 30px 20px; }
}

/* legacy (about/welcome) */
.hero { max-width: 820px; margin: 0 auto; padding: 64px 22px 30px; text-align: center; }
.hero h1 { font-size: clamp(40px,7vw,70px); margin-bottom: 22px; font-weight: 600; }
.hero .lead { font-size: 20px; color: var(--muted); max-width: 620px; margin: 0 auto 30px; }
.band { max-width: var(--maxw); margin: 0 auto; padding: 52px 22px; }
.section-title { text-align: center; font-size: clamp(26px,4vw,38px); margin-bottom: 12px; font-weight: 600; }
.section-sub { text-align: center; color: var(--muted); max-width: 560px; margin: 0 auto 36px; }
.tiers { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 760px; margin: 0 auto; }
.tier { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 32px; position: relative; box-shadow: var(--shadow); }
.tier.featured { border-color: var(--accent); }
.tier .badge { position: absolute; top: -11px; left: 28px; background: var(--accent); color: #fff; font-size: 10px; letter-spacing:.1em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.tier h3 { font-size: 22px; } .tier .price { font-size: 32px; font-family: 'Cormorant Garamond', Georgia, serif; margin-bottom: 16px; font-weight: 500; }
.tier ul { list-style: none; display: grid; gap: 9px; margin-bottom: 22px; } .tier li { padding-left: 22px; position: relative; color: var(--muted); font-size: 14.5px; }
.tier li::before { content: ""; position: absolute; left: 0; top: 10px; width: 10px; height: 1px; background: var(--accent); }
.capture { background: var(--soft2); border: 1px solid var(--line); border-radius: 18px; padding: 50px 30px; text-align: center; }
.capture h2 { font-size: clamp(26px,4vw,38px); margin-bottom: 12px; font-weight: 600; } .capture p { color: var(--muted); max-width: 520px; margin: 0 auto 22px; }
.capture .note { margin-top: 14px; font-size: 12.5px; color: var(--muted); } .capture .note a { color: var(--accent); }
.steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; } .step { border: 1px solid var(--line); border-radius: 16px; padding: 28px; background: var(--panel); box-shadow: var(--shadow); }
.step .num { font-family:'Cormorant Garamond',Georgia,serif; font-size: 28px; color: var(--accent); margin-bottom: 8px; font-weight: 500; } .step h3 { font-size: 19px; margin-bottom: 8px; } .step p { color: var(--muted); font-size: 14.5px; }
.proof { font-size: 13px; color: var(--muted); letter-spacing:.04em; margin-top: 20px; }
.cta-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 760px){ .tiers,.steps{ grid-template-columns: 1fr; } }

/* ---------- breadcrumbs + related + FAQ (SEO) ---------- */
.breadcrumbs { max-width: 760px; margin: 22px auto 0; padding: 0 20px; font-size: 12.5px; letter-spacing: .01em; color: var(--muted); }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 0; margin: 0; }
.breadcrumbs a { color: var(--muted); text-decoration: none; transition: color .2s; }
.breadcrumbs a:hover { color: var(--accent); }
.breadcrumbs .sep { opacity: .4; }
.breadcrumbs li:not([aria-current]) > span, .breadcrumbs a { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.breadcrumbs li[aria-current] { color: var(--ink); max-width: 100%; }
.related { max-width: 760px; margin: 40px auto 0; padding: 28px 20px 0; border-top: 1px solid var(--line); }
.related h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 22px; margin-bottom: 18px; }
.related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 26px; }
.related-card { text-decoration: none; display: block; }
.related-card .rc-cat { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.related-card .rc-h { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 17px; line-height: 1.28; color: var(--ink); margin-top: 4px; transition: color .2s; }
.related-card:hover .rc-h { color: var(--accent); }
.faq { max-width: 760px; margin: 40px auto 0; padding: 0 20px; }
.faq h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 26px; margin-bottom: 6px; }
.faq .faq-sub { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
.faq details { border-bottom: 1px solid var(--line); padding: 16px 0; }
.faq summary { cursor: pointer; font-weight: 600; font-size: 16.5px; color: var(--ink); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; color: var(--accent); font-size: 22px; line-height: 1; transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--muted); font-size: 15px; line-height: 1.65; margin-top: 10px; }

/* ---------- mobile header: tight bar, logo left + menu right ---------- */
@media (max-width: 760px) {
  /* strip the clutter — no utility strip, no tagline rule on mobile */
  .util-bar, .masthead-rule { display: none; }
  .masthead-wrap { position: sticky; top: 0; z-index: 60; background: var(--bg); display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 18px; border-bottom: 1px solid var(--line); box-shadow: 0 6px 16px -14px rgba(0,0,0,.45); }
  .site-head { gap: 10px; }
  .masthead-mark { height: 25px; }
  .wordmark { font-size: 24px; }
  .nav-burger { display: inline-flex; padding: 9px 15px; gap: 9px; flex-shrink: 0; }
  .nav-burger em { font-size: 11px; }
  /* mobile: nav is the hamburger dropdown, not the emerald bar — neutralize the sticky/green */
  .cat-nav { position: static; background: none; box-shadow: none; padding: 0; border-bottom: none; }
  .nav-row { display: block; max-width: none; padding: 0; min-height: 0; gap: 0; }
  .nav-brand, .nav-spacer { display: none; }
  .nav-links { display: none; flex-direction: column; align-items: stretch; gap: 0; }
  .nav-toggle:checked ~ .cat-nav .nav-links { display: flex; padding: 4px 16px 16px; background: var(--bg); border-bottom: 1px solid var(--line); box-shadow: 0 14px 24px -16px rgba(0,0,0,.4); position: relative; z-index: 59; }
  .nav-links .nav-cta { margin: 14px auto 2px; border-bottom: none; align-self: center; padding: 13px 34px; }
  .nav-toggle:checked ~ .masthead-wrap .nav-burger .bars i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle:checked ~ .masthead-wrap .nav-burger .bars i:nth-child(2) { opacity: 0; }
  .nav-toggle:checked ~ .masthead-wrap .nav-burger .bars i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .nav-links a { padding: 13px 6px; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--ink); opacity: .85; text-align: center; }
  .nav-links a::after { display: none; }
  .related-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ---------- topic hub + footer nav (internal linking) ---------- */
.hub-block { margin-bottom: 34px; }
.hub-list { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 40px; }
.hub-list li { break-inside: avoid; padding: 7px 0; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.hub-list a { text-decoration: none; color: var(--ink); font-size: 15px; transition: color .2s; }
.hub-list a:hover { color: var(--accent); }
.hub-count { font-size: 11px; color: var(--muted); background: var(--soft); border-radius: 999px; padding: 1px 9px; flex-shrink: 0; }
.foot-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin: 18px auto 22px; max-width: 640px; }
.foot-nav a { text-decoration: none; color: var(--muted); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; transition: color .2s; }
.foot-nav a:hover { color: var(--accent); }
@media (max-width: 560px) { .hub-list { columns: 1; } }

/* ---------- comparison table (X vs Y articles) ---------- */
.cmp-table { margin: 28px 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); background: var(--panel); }
.cmp-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.cmp-table thead th { background: var(--soft); font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: 16px; color: var(--ink); text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.cmp-table thead th:first-child { color: var(--accent); font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.cmp-table tbody th.cmp-attr { text-align: left; font-weight: 600; color: var(--ink); background: var(--soft2); width: 32%; }
.cmp-table td, .cmp-table tbody th { padding: 13px 18px; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--ink); }
.cmp-table tbody tr:last-child td, .cmp-table tbody tr:last-child th { border-bottom: none; }
.cmp-table figcaption { padding: 14px 18px; font-size: 14px; color: var(--muted); background: var(--soft2); border-top: 1px solid var(--line); }
.cmp-table figcaption strong { color: var(--ink); }
@media (max-width: 560px) { .cmp-table table { font-size: 13.5px; } .cmp-table td, .cmp-table tbody th { padding: 10px 12px; } .cmp-table thead th { padding: 11px 12px; } }

/* ---------- state regulation tracker ---------- */
.disclaimer-band { background: var(--soft); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 12px; padding: 14px 18px; font-size: 13.5px; color: var(--muted); line-height: 1.55; max-width: 920px; margin: 0 auto 22px; }
.disclaimer-band strong { color: var(--ink); }
/* national rollup stat band */
.state-stats { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; max-width: 920px; margin: 0 auto 26px; }
.state-stats .ss { flex: 1 1 132px; min-width: 124px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 16px 12px; text-align: center; box-shadow: var(--shadow); }
.ss-n { display: block; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 34px; line-height: 1; color: var(--ink); }
.ss-n.strict { color: #A2566A; } .ss-n.moderate { color: var(--gold-deep); } .ss-n.lenient { color: var(--forest-2); }
.ss-l { display: block; font-size: 11.5px; color: var(--muted); margin-top: 7px; letter-spacing: .02em; line-height: 1.3; }
.state-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; max-width: 920px; margin: 0 auto 18px; }
.state-tools input { flex: 1 1 240px; max-width: 340px; padding: 12px 18px; border-radius: 999px; border: 1px solid var(--line); font-size: 15px; background: #fff; font-family: inherit; }
.state-tools input:focus { outline: none; border-color: var(--accent); }
.state-filters { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.sf { font-family: inherit; font-size: 11.5px; letter-spacing: .04em; padding: 8px 15px; border: 1px solid var(--line); background: var(--panel); border-radius: 999px; cursor: pointer; color: var(--muted); transition: background .2s, color .2s, border-color .2s; }
.sf:hover { border-color: var(--accent); color: var(--ink); }
.sf.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.state-count { font-size: 13px; color: var(--muted); white-space: nowrap; }
.state-count b { color: var(--ink); }
.strict-badge { font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; flex-shrink: 0; white-space: nowrap; }
.strict-badge.s-strict { background: #F6E9EC; color: #A2566A; }
.strict-badge.s-moderate { background: #F4ECDB; color: var(--gold-deep); }
.strict-badge.s-lenient { background: #E7F0E9; color: var(--forest-2); }
.article-cat .strict-badge { margin-left: 10px; vertical-align: middle; }
.state-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 920px; margin: 0 auto; }
.state-card { border: 1px solid var(--line); border-radius: 16px; padding: 22px 22px 18px; background: var(--panel); box-shadow: var(--shadow); }
.sc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.sc-head h3 { margin-bottom: 0 !important; }
.state-card h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: 22px; margin-bottom: 14px; color: var(--ink); }
.state-card dl { margin: 0; }
.state-card dl > div { padding: 9px 0; border-top: 1px solid var(--line); }
.state-card dl > div:first-child { border-top: none; padding-top: 0; }
.state-card dt { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 3px; }
.state-card dd { margin: 0; font-size: 14px; color: var(--ink); line-height: 1.5; }
.state-action { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--ink); line-height: 1.5; }
.state-action span { display: inline-block; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin-right: 8px; }
.no-results { text-align: center; color: var(--muted); padding: 30px; }
@media (max-width: 700px) { .state-grid { grid-template-columns: 1fr; } .state-tools { flex-direction: column; align-items: stretch; } .state-tools input { max-width: none; } }

/* ---------- methodology source list ---------- */
.src-list { list-style: none; padding: 0; margin: 14px 0 18px; }
.src-list li { position: relative; padding: 10px 0 10px 26px; border-bottom: 1px solid var(--line); font-size: 15.5px; line-height: 1.55; color: var(--ink); }
.src-list li::before { content: ''; position: absolute; left: 4px; top: 18px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.src-list li:last-child { border-bottom: none; }
.src-list a { color: var(--accent); text-decoration: none; border-bottom: 1px solid rgba(176,151,111,.4); }

/* ---------- sticky mobile Go Pro CTA — clean checkout-style bar ---------- */
.mobile-cta { display: none; }
@media (max-width: 760px) {
  .mobile-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    background: var(--ink); color: #fff !important; text-decoration: none; padding: 10px 14px 10px 18px; box-shadow: 0 -6px 26px rgba(42,36,29,.24); }
  .mc-label { font-family: 'Inter', system-ui, sans-serif; font-size: 12.5px; font-weight: 400; color: rgba(255,255,255,.72); letter-spacing: .01em; line-height: 1.25; }
  .mc-go { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; background: var(--accent); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .02em; padding: 10px 17px; border-radius: 2px; white-space: nowrap; }
  .mc-go .mc-arrow { font-weight: 600; }
  body { padding-bottom: 58px; }
}
@media (max-width: 380px) { .mc-label { display: none; } .mobile-cta { justify-content: center; } }

/* ---------- M&A consolidator tracker (table like the watch page) ---------- */
.ma-table { display: grid; gap: 0; max-width: 960px; margin: 0 auto; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); background: var(--panel); }
.ma-row { display: grid; grid-template-columns: 1.1fr 1fr 1.4fr; gap: 18px; padding: 18px 22px; border-top: 1px solid var(--line); }
.ma-row:first-child { border-top: none; }
.ma-name { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: 18px; color: var(--ink); }
.ma-name .ma-sub { display: block; font-family: 'Inter', sans-serif; font-size: 12px; color: var(--muted); font-weight: 400; margin-top: 3px; letter-spacing: .02em; }
.ma-mid { font-size: 13.5px; color: var(--ink); }
.ma-mid .ma-k { display: block; font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 2px; }
.ma-mid .ma-recent { margin-top: 9px; }
.ma-take { font-size: 13.5px; color: var(--ink); line-height: 1.5; border-left: 2px solid var(--accentSoft); padding-left: 14px; }
.ma-take .ma-k { display: block; font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 3px; }
@media (max-width: 700px) { .ma-row { grid-template-columns: 1fr; gap: 12px; } .ma-take { border-left: none; padding-left: 0; border-top: 1px solid var(--line); padding-top: 12px; } }

/* ---------- per-state page ---------- */
.state-detail { max-width: 760px; margin: 0 auto; padding: 0 20px; }
.state-facts { display: grid; gap: 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--panel); box-shadow: var(--shadow); margin: 24px 0; }
.state-facts > div { padding: 16px 20px; border-top: 1px solid var(--line); }
.state-facts > div:first-child { border-top: none; }
.state-facts dt { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 4px; }
.state-facts dd { margin: 0; font-size: 15.5px; color: var(--ink); line-height: 1.5; }
.state-nav { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0; }
.state-nav a { font-size: 12.5px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--ink); transition: border-color .2s, color .2s; }
.state-nav a:hover { border-color: var(--accent); color: var(--accent); }

.pro-microcopy { font-size: 12px; color: var(--muted); margin-top: 12px; letter-spacing: .01em; }

/* ---------- intelligence showcase — full-bleed deep-emerald value band ---------- */
.showcase { background: var(--forest); background-image: radial-gradient(120% 140% at 85% 0%, var(--forest-2), var(--forest) 60%); color: #EFE7D6; margin: 64px 0; padding: 0; position: relative; overflow: hidden; }
.showcase::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 80% at 10% 110%, rgba(201,168,95,.10), transparent 60%); pointer-events: none; }
.showcase-inner { max-width: 980px; margin: 0 auto; padding: clamp(54px,6vw,84px) 22px; position: relative; }
.sc-kicker { display: inline-block; font-size: 10.5px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 18px; }
.showcase h2 { font-family: 'Cormorant Garamond', Georgia, serif; color: #FBF7EE; font-weight: 600; font-size: clamp(34px,5vw,58px); line-height: 1.02; letter-spacing: 0; max-width: 16ch; }
.sc-sub { color: rgba(239,231,214,.78); font-size: 17px; line-height: 1.65; max-width: 56ch; margin: 20px 0 8px; }
.sc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin: 40px 0 38px; background: rgba(201,168,95,.18); border: 1px solid rgba(201,168,95,.18); border-radius: 16px; overflow: hidden; }
.sc-stat { background: var(--forest); padding: 28px 26px; transition: background .35s var(--ease); }
.sc-stat:hover { background: var(--forest-2); }
.sc-n { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: clamp(40px,5vw,58px); line-height: 1; color: var(--gold-bright); }
.sc-l { font-size: 13px; line-height: 1.45; color: rgba(239,231,214,.72); margin-top: 8px; letter-spacing: .01em; }
.sc-cta { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.sc-cta .btn-gold { background: var(--gold-bright); border-color: var(--gold-bright); color: var(--forest) !important; }
.sc-cta .btn-gold:hover { background: #fff; border-color: #fff; color: var(--forest) !important; }
.sc-more { color: var(--gold-bright); text-decoration: none; font-size: 13px; letter-spacing: .06em; border-bottom: 1px solid rgba(201,168,95,.4); transition: color .2s, border-color .2s; }
.sc-more:hover { color: #fff; border-color: #fff; }
@media (max-width: 760px) {
  .showcase { margin: 40px 0; }
  .sc-grid { grid-template-columns: 1fr 1fr; }
  .sc-stat { padding: 22px 18px; }
}
@media (max-width: 420px) { .sc-grid { grid-template-columns: 1fr 1fr; } .sc-cta { gap: 16px; } }

/* ---------- tinted section bands (rhythm) ---------- */
.band { width: 100%; }
.band-soft { background: var(--soft2); }
.band-mint { background: #EDF2EC; }          /* whisper of emerald */
.band-forest { background: var(--forest); background-image: radial-gradient(120% 140% at 88% 0%, var(--forest-2), var(--forest) 62%); }
.band-soft .front, .band-mint .front, .band-forest .front { padding-top: 54px; padding-bottom: 56px; }

/* ---------- live intelligence panel (contained emerald, white data cards) ---------- */
.pulse-panel { background: var(--forest); background-image: radial-gradient(130% 150% at 85% -20%, var(--forest-2), var(--forest) 60%); color: #EFE7D6; border-radius: 22px; padding: clamp(34px,4vw,52px); box-shadow: var(--shadow-lift); margin-top: 8px; }
.pulse-intro { margin-bottom: 30px; max-width: 60ch; }
.pulse-kick { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 14px; }
.pulse-live { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: #8FCBA6; font-weight: 700; }
.pulse-panel h2 { color: #FBF7EE; font-weight: 600; font-size: clamp(28px,3.6vw,44px); line-height: 1.04; }
.pulse-panel > .pulse-intro p { color: rgba(239,231,214,.76); font-size: 16px; line-height: 1.6; margin-top: 12px; }
.pulse-grid { display: grid; grid-template-columns: 1fr 1.32fr; gap: 24px; align-items: stretch; }
.pulse-card { background: var(--panel); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; padding: 26px 26px 22px; box-shadow: 0 20px 50px -20px rgba(0,0,0,.45); }
.pulse-h { font-size: 23px; font-weight: 600; }
.pulse-note { color: var(--muted); font-size: 13px; margin: 5px 0 16px; line-height: 1.5; }
.pulse-movers { display: grid; }
.mv { display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); text-decoration: none; color: inherit; transition: padding-left .2s; }
.mv:first-child { border-top: none; }
.mv:hover { padding-left: 4px; }
.mv-co { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mv-name { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 18px; color: var(--ink); line-height: 1.12; }
.mv-sym { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.mv-p { font-weight: 600; font-size: 14px; padding: 4px 11px; border-radius: 999px; white-space: nowrap; }
.mv-p.up { color: var(--up); background: #e9f1ea; }
.mv-p.down { color: var(--down); background: #f6ebe9; }
.pulse-more { display: inline-block; margin-top: 16px; color: var(--accent); font-size: 12.5px; letter-spacing: .04em; text-decoration: none; border-bottom: 1px solid rgba(164,130,63,.4); transition: color .2s; }
.pulse-more:hover { color: var(--ink); }
.pulse-chart { display: flex; flex-direction: column; align-items: flex-start; }
.pulse-chart > .chart-wrap { margin-bottom: 14px; width: 100%; }
.pulse-chart .pulse-more { color: var(--gold-bright); border-color: rgba(201,168,95,.4); }
.pulse-chart .pulse-more:hover { color: #fff; border-color: #fff; }
@media (max-width: 820px) { .pulse-grid { grid-template-columns: 1fr; gap: 18px; } }

/* ---------- refined category colors (muted jewel tones — movement, not rainbow) ---------- */
.cat-tag[data-cat="injectables"]   { color: #A2566A; }   /* muted rose */
.cat-tag[data-cat="devices-tech"]  { color: #3C7A71; }   /* teal */
.cat-tag[data-cat="business-m-a"]  { color: #2E6A4D; }   /* emerald */
.cat-tag[data-cat="market"]        { color: #AE7B2C; }   /* amber */
.cat-tag[data-cat="compliance"]    { color: #5A6A8A; }   /* slate */
.cat-tag[data-cat="regulatory"]    { color: #7C5778; }   /* plum */
.cat-tag[data-cat="tracker"]       { color: #2E6A4D; }   /* emerald */

/* ---------- global Pro CTA (every page, before footer) ---------- */
.global-cta { background: var(--forest); background-image: radial-gradient(130% 160% at 12% -25%, var(--forest-2), var(--forest) 62%); color: #EFE7D6; max-width: var(--maxw); margin: 84px auto; border-radius: 22px; padding: clamp(48px,6vw,76px) 24px; text-align: center; box-shadow: var(--shadow-lift); }
.gcta-inner { max-width: 620px; margin: 0 auto; }
.gcta-kick { display: inline-block; font-size: 10px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 16px; }
.global-cta h2 { color: #FBF7EE; font-weight: 600; font-size: clamp(32px,4.4vw,54px); line-height: 1.0; }
.global-cta p { color: rgba(239,231,214,.8); font-size: 17px; line-height: 1.6; margin: 16px auto 30px; max-width: 50ch; }
.global-cta .btn-gold { background: var(--gold-bright); border-color: var(--gold-bright); color: var(--forest) !important; }
.global-cta .btn-gold:hover { background: #fff; border-color: #fff; color: var(--forest) !important; }
.gcta-fine { display: block; margin-top: 18px; font-size: 12px; letter-spacing: .04em; color: rgba(239,231,214,.55); }
@media (max-width: 760px) { .global-cta { margin: 52px 0 0; border-radius: 0; } }

/* ---------- article two-column shell + sticky Pro rail ---------- */
.article-shell { max-width: 1080px; margin: 0 auto; padding: 0 22px; display: grid; grid-template-columns: minmax(0,1fr) 304px; gap: 54px; align-items: start; }
.article-main { min-width: 0; }
.article-shell .article { max-width: none; margin: 0; padding: 28px 0 36px; }
.article-shell .breadcrumbs { max-width: none; margin: 24px 0 0; padding: 0; }
.article-shell .related, .article-shell .faq { max-width: none; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
.prorail { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 18px; margin-top: 60px; }
.pr-card { border-radius: 16px; padding: 24px; }
.pr-unlock { background: var(--forest); background-image: radial-gradient(130% 150% at 90% -10%, var(--forest-2), var(--forest) 62%); color: #EFE7D6; box-shadow: var(--shadow-lift); }
.pr-kick { display: inline-flex; align-items: center; gap: 7px; font-size: 9.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 12px; }
.pr-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-bright); flex-shrink: 0; }
.pr-dot.live { background: #8FCBA6; animation: prpulse 2s infinite; }
@keyframes prpulse { 0% { box-shadow: 0 0 0 0 rgba(143,203,166,.5); } 70% { box-shadow: 0 0 0 6px rgba(143,203,166,0); } 100% { box-shadow: 0 0 0 0 rgba(143,203,166,0); } }
.pr-unlock h3 { color: #FBF7EE; font-size: 27px; font-weight: 600; line-height: 1.05; margin-bottom: 10px; }
.pr-unlock p { color: rgba(239,231,214,.82); font-size: 14px; line-height: 1.6; margin-bottom: 20px; }
.pr-unlock p strong { color: #fff; }
.pr-unlock .btn-gold { width: 100%; background: var(--gold-bright); border-color: var(--gold-bright); color: var(--forest) !important; }
.pr-unlock .btn-gold:hover { background: #fff; border-color: #fff; color: var(--forest) !important; }
.pr-fine { display: block; margin-top: 12px; font-size: 11px; color: rgba(239,231,214,.55); text-align: center; letter-spacing: .02em; }
.pr-movers { background: var(--panel); border: 1px solid var(--line); box-shadow: var(--shadow); }
.pr-label { display: inline-flex; align-items: center; gap: 7px; font-size: 9.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.pr-mv-list { display: grid; grid-template-columns: minmax(0, 1fr); }
.pr-mv { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); text-decoration: none; color: inherit; }
.pr-mv:first-child { border-top: none; }
.pr-mv-n { flex: 1 1 auto; min-width: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 15.5px; color: var(--ink); line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-mv-p { font-weight: 600; font-size: 12px; padding: 2px 9px; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
.pr-mv-p.up { color: var(--up); background: #e9f1ea; }
.pr-mv-p.down { color: var(--down); background: #f6ebe9; }
.pr-more { display: inline-block; margin-top: 13px; color: var(--accent); font-size: 12px; letter-spacing: .03em; text-decoration: none; border-bottom: 1px solid rgba(164,130,63,.4); }
.pr-more:hover { color: var(--ink); }
/* FDA chart as a sidebar card — compact */
.pr-chart .chart-wrap { padding: 18px 16px; margin: 0; }
.pr-chart .chart-wrap h3 { font-size: 16px; }
.pr-chart .chart-wrap .sub { font-size: 11.5px; margin-bottom: 8px; }
.pr-chart .chart-legend { font-size: 10.5px; gap: 12px; }
.pr-chart .pr-more { display: inline-block; margin-top: 12px; }
@media (max-width: 980px) {
  .article-shell { grid-template-columns: 1fr; max-width: 720px; }
  .prorail { display: none; }
}

/* ---------- metered paywall (edge-gated) ---------- */
/* the wall sits where [data-premium] used to be; a fade bleeds the last free lines into it */
.paywall { position: relative; margin: -40px auto 0; max-width: 760px; }
.pw-fade { position: absolute; left: 0; right: 0; top: -120px; height: 120px; background: linear-gradient(to bottom, rgba(246,240,230,0), var(--bg)); pointer-events: none; }
.pw-card { background: var(--forest); background-image: radial-gradient(130% 160% at 50% -30%, var(--forest-2), var(--forest) 68%); border-radius: 20px; padding: clamp(34px,5vw,52px); text-align: center; color: #EFE7D6; box-shadow: var(--shadow-lift); }
.pw-kick { display: inline-block; font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 14px; }
.pw-card h2 { font-size: clamp(27px,4vw,40px); font-weight: 600; line-height: 1.08; color: #FBF7EE; margin-bottom: 12px; }
.pw-card > p { color: rgba(239,231,214,.84); max-width: 520px; margin: 0 auto 22px; font-size: 16px; line-height: 1.6; }
.pw-perks { list-style: none; padding: 0; margin: 0 auto 26px; max-width: 420px; text-align: left; display: grid; gap: 10px; }
.pw-perks li { position: relative; padding-left: 28px; color: rgba(239,231,214,.92); font-size: 14.5px; line-height: 1.4; }
.pw-perks li::before { content: "✓"; position: absolute; left: 0; top: -1px; color: var(--gold-bright); font-weight: 700; }
.pw-card .pw-go { background: var(--gold-bright); border-color: var(--gold-bright); color: var(--forest) !important; box-shadow: 0 6px 20px -6px rgba(201,168,95,.6); }
.pw-card .pw-go:hover { background: #fff; border-color: #fff; color: var(--forest) !important; }
.pw-login { margin-top: 16px; font-size: 13px; color: rgba(239,231,214,.6); }
.pw-login a { color: var(--gold-bright); text-decoration: underline; text-underline-offset: 2px; }
/* metered countdown bar — injected at the top of #main on free article reads */
.meter-bar { position: sticky; top: 91px; z-index: 45; background: var(--soft); border-bottom: 1px solid var(--line); box-shadow: 0 6px 14px -12px rgba(0,0,0,.35); }
.meter-bar .mb-inner { max-width: var(--maxw); margin: 0 auto; padding: 11px 22px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13.5px; line-height: 1.4; color: var(--ink); }
.meter-bar .mb-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.meter-bar b { font-weight: 600; }
.meter-bar .mb-cta { margin-left: auto; color: var(--accent); font-weight: 600; text-decoration: none; white-space: nowrap; letter-spacing: .02em; }
.meter-bar .mb-cta:hover { text-decoration: underline; }
.meter-bar--last { background: var(--forest); background-image: radial-gradient(120% 180% at 50% -40%, var(--forest-2), var(--forest) 70%); border-bottom: none; }
.meter-bar--last .mb-inner { color: rgba(239,231,214,.9); }
.meter-bar--last .mb-dot { background: var(--gold-bright); }
.meter-bar--last b { color: #fff; }
.meter-bar--last .mb-cta { color: var(--gold-bright); }
@media (max-width: 560px) { .meter-bar .mb-cta { margin-left: 0; } }

/* tracker teaser: locked rows under the free preview get a soft lock veil (server keeps real data out) */
.locked-veil { position: relative; text-align: center; padding: 26px 20px; margin-top: 10px; border: 1px dashed var(--line); border-radius: 14px; background: var(--soft2); color: var(--muted); font-size: 14px; }
.locked-veil .lock-ico { display: block; font-size: 20px; margin-bottom: 8px; opacity: .7; }
.locked-veil a { color: var(--accent); font-weight: 600; text-decoration: underline; }
