/* ===== PV VARIANT D THEME — Variant D, live ===== */
body { background:#141c1d; color:#c9d2c6; }
section.block { background:#141c1d; }
section.block.alt { background:#101718; }
section.block h2, section.block h3, section.block h4 { color:var(--cream); }
section.block p, .lede, section.block li { color:#b7c1b4; }
.lede { color:var(--sage); }
footer { background:#0c1112; }
body { counter-reset:pvxsec; }
section.block .section-eyebrow::before { counter-increment:pvxsec; content:counter(pvxsec, decimal-leading-zero); color:var(--gold); font-weight:700; letter-spacing:2px; margin-right:10px; }
.hero { border-bottom:1px solid rgba(196,127,23,0.35); }
.hero h1 { font-size:clamp(38px,5.6vw,72px); line-height:1.05; letter-spacing:-0.015em; }
@media (prefers-reduced-motion: no-preference) {
  .hero h1, .hero p { opacity:0; transform:translateY(20px); animation:pvxrise .9s ease forwards; }
  .hero p { animation-delay:.25s; }
  @keyframes pvxrise { to { opacity:1; transform:none; } }
  .pvx-reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
  .pvx-reveal.pvx-in { opacity:1; transform:none; }
}
section.block + section.block { border-top:1px solid rgba(196,127,23,0.16); }
/* masthead slim (homepage) */
.home-mast .mast-logo { padding:12px 0 2px; }
.home-mast .mast-logo img { height:112px; }
.home-mast .mast-sub { margin-top:4px; font-size:0.7rem; }
.home-mast .nav-wrap { padding-top:11px; padding-bottom:11px; }

/* ===== CONTRAST FIXES — Variant D dark retrofit =====
   WHY: the per-page "auto dark overrides" block darkens CONTAINERS and sets
   color:#c9d2c6 ON those containers. Any DESCENDANT carrying its own colour
   rule never inherits it — so text written for the old white cards stayed
   charcoal-on-charcoal and went invisible (reported live on /research: the
   substance names in the accordion headers).
   This file loads AFTER each page's inline <style>, so equal specificity wins.
   DELIBERATELY NOT TOUCHED: dark text that sits on a LIGHT surface and is
   therefore correct — .tag-feat and .card .tag (#08201d on bright-teal badges),
   .acc-sub-note and .disclaimer-note (grey on cream callouts). Do not "fix"
   those; they'd become invisible in the other direction.
   Durable fix belongs in the retrofit generator: whatever darkens a container
   must also re-colour that container's descendant text. */

/* accordion headers/bodies — research · legal · library · resources · neurochemistry */
.acc-sub { color:var(--cream); }
.acc-meta { color:var(--sage); }
.acc-body > .evi-sum { color:#b7c1b4; }
.evi-item .find { color:#c9d2c6; }
.evi-item .find strong { color:var(--teal-bright); }
.evi-cite { color:var(--sage-med); }

/* card bodies — integration · sponsors · microdosing · music · preparation · contact · how-we-vet */
.res-card p, .prac-card p, .card p, .learn-card p, .pillar p, .org-card p { color:#b7c1b4; }
.res-card .meta, .card .meta { color:var(--teal-bright); }
.res-card .access { color:var(--sage-med); }

/* study cards — contact · how-we-vet (page rule out-specifies the theme, so match it) */
section.block:not(.alt) .study-card h3 { color:var(--cream); }
section.block:not(.alt) .study-card .blurb { color:#b7c1b4; }

/* service centers */
.center a.name { color:var(--cream); }
.center a.name:hover { color:var(--teal-bright); }
.center .note { color:var(--sage); }

/* membership tiers */
.tier .tprice { color:var(--cream); }
.tier li { color:#b7c1b4; }

/* neurochemistry router panels */
.router-panel .rp-lede { color:#b7c1b4; }

/* ── round 2 — empirical walker findings (2026-07-16) ─────────────────────
   Source: computed-style contrast walk of every live page (WCAG ratio < 3),
   each fix scoped to its measured context. Two classes of root cause:
   (a) descendants with their own colour rules inside darkened containers
       (same bug class as round 1), and
   (b) MISSING CSS VARIABLES: studies.html's :root names the teal variables
       --amber/--amber-soft and defines no --teal/--teal-bright/--line, so the
       site-wide "Continue the path" stepper's var(--teal) resolved to nothing
       → transparent chip, dark-on-dark text. The :root below is a safety net;
       the palette is canonical and uniform, so redefining is safe. */
:root {
  --teal:#2E9387; --teal-bright:#46B6A5; --teal-deep:#1F6E63;
  --amber:#2E9387; --amber-soft:#46B6A5;
  --gold:#C47F17; --cream:#F4E9C8; --sage:#A8B5A2; --sage-med:#7A8F7A;
  --charcoal:#1C2526; --grey:#353839; --rust:#A6482E; --forest:#1C2526;
  --line:rgba(168,181,162,0.25); --white:#fff;
}

/* durable inheritance rule: emphasis follows its container's text colour.
   Fixes charcoal <strong>/<b>/<em> on dark cards AND stays correctly dark
   inside light callouts, in one move. */
section.block strong, section.block b, section.block em { color:inherit; }

/* page ledes whose rule out-specifies the earlier .lede fix */
section.block > .container > p.lede { color:var(--sage); }

/* research + resources — accordion internals & jump links */
.tag-limited { color:#6b4a0e; }              /* dark amber on its light gold tint */
.tag-vet { color:var(--teal-bright); }
.recruit { color:var(--cream); }
p.none { color:#4f5347; }                    /* cream callout keeps dark text */
.res-toc a { color:var(--sage); }
.res-toc a:hover { color:var(--teal-bright); }

/* body text written for white cards, now on dark glass */
.disclaimer p, .flow .step p, .fn-cta p, .role-card, .fn-move p,
.inv-list .v, .router-panel .rp-lede, .rp-evidence { color:#b7c1b4; }
.disclaimer strong, .inv-list .k, .hw-hero h1, .pn-t { color:var(--cream); }

/* teal-deep labels on dark surfaces → teal-bright (teal-deep is a LIGHT-surface
   colour). DELIBERATELY EXCLUDED: .fn-plain .lab — that callout is light by
   design and keeps its dark teal (see round 1 notes). */
.role-healthy h4, .route-group h4, .route-links a, .vet-box h4, .vet-box a,
.cell-strong, .filter-toggle, .fn-pill, .asum, .fc-rail span, .fc-read,
.fn-cta-actions a, .tofeed, .router-tab:hover, .card .tag { color:var(--teal-bright); }
/* Field-note breadcrumb links carry class="tofeed" but the pages' baked CSS has
   .crumb a / .backfeed a { color:var(--teal-deep) } (0,1,1) which beat the .tofeed rule
   above (0,1,0) -> 2.86:1 on the dark #141c1d body. Win it back at (0,2,1). */
.crumb a.tofeed, .backfeed a.tofeed { color:var(--teal-bright); }
/* note: section.block.alt .card .tag{color:#08201d} is MORE specific and still
   wins on the bright-teal badges — the correct dark-on-light stays intact. */

/* field-notes move labels: muted dark-gold → brand gold on dark */
.fn-move .lab { color:var(--gold); }

/* light near-white boxes that aren't cream callouts → dark glass, matching the
   rest of the retrofit (cream callouts like .none / .fn-plain stay light) */
.fn-cta { background:rgba(255,255,255,0.045); border-color:rgba(168,181,162,0.22); }

/* ── GROUPED DROPDOWN NAV — canonical, site-wide.
   Lives HERE (the shared stylesheet every page loads) and not in each page's
   inline <style>. 20 pages each carried a private copy of these rules; the
   study-page generator never got one, so all 28 study-*.html shipped the
   dropdown MARKUP with none of its CSS — the menus rendered permanently
   expanded as raw bullet lists over the header. Caught 2026-07-22 on a page
   the Debrief email links to. Declaring it once here makes the broken state
   unreachable for any future page. */
.nav-dd{position:relative}
.nav-dd>.nav-dd-btn{background:none;border:none;cursor:pointer;font-family:'Inter',sans-serif;font-size:14px;font-weight:500;color:var(--cream);letter-spacing:0.3px;display:inline-flex;align-items:center;gap:5px;padding:0}
.nav-dd>.nav-dd-btn:hover,.nav-dd:hover>.nav-dd-btn{color:var(--teal-bright)}
.nav-caret{font-size:10px;transition:transform .2s}
.nav-dd-menu{position:absolute;top:100%;left:0;min-width:194px;background:var(--charcoal);border:1px solid rgba(46,147,135,0.3);border-radius:8px;padding:8px 0;margin-top:12px;list-style:none;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s,transform .15s,visibility .15s;z-index:120;box-shadow:0 12px 34px rgba(0,0,0,0.32)}
.nav-dd:hover .nav-dd-menu,.nav-dd.open .nav-dd-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dd:hover .nav-caret,.nav-dd.open .nav-caret{transform:rotate(180deg)}
.nav-dd-menu li{width:100%}
.nav-dd-menu a{display:block;padding:9px 18px;font-size:13.5px;color:var(--cream);white-space:nowrap}
.nav-dd-menu a:hover{background:rgba(46,147,135,0.15);color:var(--teal-bright);text-decoration:none}
@media(max-width:900px){.nav-dd{width:100%}.nav-dd>.nav-dd-btn{width:100%;justify-content:space-between;padding:14px 0}
  .nav-dd-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:transparent;margin:0;padding:0 0 6px 14px;display:none}
  .nav-dd.open .nav-dd-menu{display:block}.nav-dd-menu a{padding:11px 0}}

/* ── GROUPED FOOTER SITEMAP — canonical, site-wide.
   Same gap as the dropdown nav above: 19 pages inline these rules, the
   study-page generator never got them, so all 28 study-*.html rendered the
   footer as one centred bulleted column instead of a 5-column grid, with the
   section headings nearly invisible. Declared once here. */
.pvf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:24px 20px;text-align:left;margin:0 0 26px}
.pvf-col h4{font-family:'Inter',-apple-system,sans-serif;font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--teal-bright);margin:0 0 10px}
.pvf-col ul{list-style:none;margin:0;padding:0}
.pvf-col li{margin-bottom:7px}
.pvf-col a{font-size:13px;color:var(--sage)}
.pvf-col a:hover{color:var(--teal-bright);text-decoration:none}
@media(max-width:600px){.pvf-grid{grid-template-columns:repeat(2,1fr)}}

/* active state for the open dropdown button (19 pages inline this) */
.nav-dd>.nav-dd-btn.dd-active{color:var(--teal-bright)}

/* screen-reader-only label utility. Used by the Kit opt-in form
   (<label class="pv-sr">Email address</label>) but never defined anywhere on
   the site — so the label rendered as visible text above the signup input.
   The input carries its own "Email Address" placeholder; this label exists
   for assistive tech only. */
.pv-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── DEBRIEF HEADLINES ON DARK — contrast fix.
   The Debrief template was authored for a LIGHT page: its serif headlines are
   set to color:var(--charcoal) (#1C2526). This stylesheet then retrofits the
   site to a dark body (#141c1d), so those headlines rendered near-black on
   near-black — roughly 1.1:1 contrast, effectively invisible. Reported on the
   live Nº 3 issue, 2026-07-22.

   Only the headlines sitting on TRANSPARENT/dark cards are lifted here.
   .onething .ot-title, .pb-logo and the .mv-feat block keep charcoal on
   purpose — those boxes still have their own light backgrounds (#f6fbf9 /
   #eaf5f2), where dark text is correct. Lifting those too would invert the
   bug instead of fixing it. */
.rec .nm{color:var(--cream)}
.fn .t{color:var(--cream)}
.pn .t{color:var(--cream)}
.issue h3{color:var(--cream)}
.wi-list b{color:var(--cream)}
