/* ============================================================
   REFRESH 2026-08 — homepage-only overrides.
   Loaded AFTER styles.css on index.html only.
   Sub-pages untouched. Delete this file to revert visuals.
   ============================================================ */

/* ---- HERO: centered (the visible "we updated" change) ---- */
.hero__panel {
  width: 100%;
  justify-content: center;
  background: none;
}
.hero__inner {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  animation-delay: .1s; /* curtain removed; kill the 1s wait */
  padding: 150px 0 110px;
}
.hero__headline { align-items: center; }
.hero__eyebrow { text-align: center; }
.hero__subline {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  max-width: 58ch;
}
.hero__cta { justify-content: center; }
.hero__veil {
  background:
    linear-gradient(90deg, rgba(13,12,12,.65) 0%, rgba(13,12,12,.45) 50%, rgba(13,12,12,.65) 100%),
    linear-gradient(180deg, rgba(13,12,12,.5) 0%, rgba(13,12,12,.25) 30%, rgba(13,12,12,.25) 65%, rgba(13,12,12,.95) 100%);
}
.hero__risk {
  margin: 22px auto 0;
  max-width: 52ch;
  text-align: center;
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--cream-dim);
}
.hero__risk strong { color: var(--cream); }

/* ---- MOTION CLEANUP: content always visible, no scroll theatrics ---- */
.reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
.bs-panel .bs-drop,
[data-bs-panel] .bs-drop {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}
.journey__steps::before { animation: none !important; }

/* ---- DM PATH block (contact section) ---- */
.dm-path {
  margin: 22px 0;
  padding: 16px 18px;
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--orange);
  background: rgba(215, 94, 67, 0.06);
}
.dm-path__head {
  font-family: var(--header);
  font-size: 15px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--cream-2);
  margin: 0 0 6px;
}
.dm-path p { margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--cream-dim); }
.dm-path__link { color: var(--orange-hot); font-weight: 600; }

/* ---- LEDGER TEASE card (report section) ---- */
.ledger-tease {
  margin-top: 28px;
  padding: 20px 22px;
  border: 1px dashed var(--line-strong);
  background: var(--black-2);
}
.ledger-tease__eyebrow {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
  margin: 0 0 8px;
}
.ledger-tease__head {
  font-family: var(--header);
  font-size: clamp(18px, 2.2vw, 22px);
  color: var(--cream-2);
  margin: 0 0 10px;
}
.ledger-tease p { font-size: 14.5px; line-height: 1.75; color: var(--cream-dim); margin: 0 0 10px; }
.ledger-tease p:last-child { margin-bottom: 0; }

/* ---- AI note inside "why tattoo-only" ---- */
.why__ai-note { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--line); }
.why__ai-note h3 {
  font-family: var(--header);
  font-size: clamp(17px, 2vw, 21px);
  color: var(--cream-2);
  margin: 0 0 12px;
}
.why__ai-note p { font-size: 15px; line-height: 1.8; color: var(--cream-dim); margin: 0 0 12px; }

/* ---- TRACKING section: slight tint so it reads as its own beat ---- */
.tracking { background: var(--black-2); }

/* ---- MOBILE STICKY BOTTOM BAR ---- */
.mobile-bar { display: none; }
@media (max-width: 880px) {
  .mobile-bar {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 60;
    gap: 1px;
    background: var(--black-4);
    border-top: 1px solid var(--line-strong);
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  }
  .mobile-bar__apply {
    flex: 1.6;
    text-align: center;
    font-family: var(--header);
    font-size: 15px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--black);
    background: var(--orange);
    padding: 13px 10px;
    text-decoration: none;
  }
  .mobile-bar__dm {
    flex: 1;
    text-align: center;
    font-family: var(--header);
    font-size: 15px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--cream-2);
    background: var(--black-2);
    border: 1px solid var(--line-strong);
    padding: 13px 10px;
    text-decoration: none;
  }
  /* old floating pills replaced by the bar on mobile */
  .sticky-cta, .scroll-top { display: none !important; }
  /* keep page content clear of the bar */
  .footer { padding-bottom: 84px; }
}

/* ---- TIER CARDS: approximate local price for non-NZD visitors ---- */
.tier-card__local {
  display: block;
  margin-top: 2px;
  font-size: 12.5px;
  letter-spacing: .03em;
  color: var(--orange);
}

/* ---- REPORT MOCK: fix pre-existing footer overlap (foot is absolute on a
        fixed-height page; give it a paper background so it sits on top like
        a real page footer instead of colliding with the list) ---- */
.report__page-foot {
  background: #e8e5dc;
  padding-top: 6px;
  box-shadow: 0 -6px 8px rgba(232, 229, 220, 0.9);
}

/* ---- COMPARE table: now 5 columns, needs a wider minimum ---- */
.compare__table { min-width: 860px; }

/* ---- Static countries line (replaces marquee) ---- */
.trust { padding: 26px var(--gutter); }
.trust__caption {
  text-align: center;
  font-size: 13.5px;
  letter-spacing: .04em;
  color: var(--cream-dim);
  margin: 0;
  line-height: 2;
}


/* ============================================================
   REVIEW ROUND 2 (2026-08-25) — design-agent fixes + new
   components + motion package "Full Bleed".
   Motion: delete the MOTION block + the <script id="bd-refresh">
   block in index.html to revert. Everything else is static fixes.
   ============================================================ */

/* -- D-H1: tier local price legible on cream cards -- */
.tier-card__local { letter-spacing: 1px; color: #8f3a24; }
.tier-card.is-active .tier-card__local { color: var(--orange); }

/* -- D-H2: mirror the eyebrow dash so the centered hero is optically centered -- */
.hero__eyebrow::after { content: ""; width: 30px; height: 1px; background: var(--orange); }

/* -- D-H3: restore the mobile hero refinements the overrides clobbered -- */
@media (max-width: 920px) {
  .hero__panel { background: linear-gradient(180deg, rgba(13,12,12,.6) 0%, rgba(13,12,12,.85) 100%); }
}
@media (max-width: 640px) {
  .hero__inner { padding: 120px 0 80px; }
  .hero__subline { max-width: 34ch; }
}

/* -- D-H4 (revised): compare table.
      >1040px: normal 5-col table.
      721-1040px: horizontal scroll with sticky row labels.
      <=720px: the table CANNOT work as columns on a phone — each row
      becomes a stacked card (topic title + four contenders, Bonehead
      highlighted). Same markup, data-col labels supply the headers. -- */
@media (min-width: 901px) {
  .compare__table { min-width: 920px; }
  .compare__table td:first-child,
  .compare__table th:first-child { width: 18%; }
  .compare__table th, .compare__table td { padding: 16px 14px; }
}
@media (min-width: 901px) and (max-width: 1040px) {
  .compare__wrap {
    -webkit-overflow-scrolling: touch;
    padding: 0 !important;      /* gutter as padding lets scrolled columns peek through beside the sticky labels */
    margin: 0 var(--gutter);    /* gutter lives outside the scrollport instead */
  }
  .compare__table th:first-child,
  .compare__table td:first-child {
    position: sticky; left: 0;
    background: var(--black-3) !important;
    z-index: 1;
    box-shadow: 2px 0 8px rgba(0,0,0,.4);
  }
}
@media (max-width: 900px) {
  .compare__wrap { overflow-x: visible; }
  .compare__table { min-width: 0 !important; width: 100%; display: block; }
  .compare__table thead { display: none; }
  .compare__table tbody { display: block; }
  .compare__table tr {
    display: block;
    margin-bottom: 14px;
    border: 1px solid var(--line-strong) !important;
    background: var(--black-2);
  }
  .compare__table th[scope="row"] {
    display: block;
    width: auto !important;
    padding: 12px 14px 10px !important;
    border-bottom: 1px solid var(--line) !important;
    background: var(--black-3) !important;
    position: static !important;
    box-shadow: none !important;
    text-align: left;
  }
  .compare__table td {
    display: block;
    width: auto !important;
    padding: 9px 14px !important;
    border: none !important;
    font-size: 13.5px;
    line-height: 1.6;
  }
  .compare__table td::before {
    content: attr(data-col);
    display: block;
    font-size: 10.5px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--cream-dim); /* cream-faint was ~2.5:1 on the card background */
    margin-bottom: 2px;
  }
  .compare__table td.is-us {
    border-left: 3px solid var(--orange) !important;
    background: rgba(215, 94, 67, 0.07) !important;
    padding-left: 11px !important;
  }
  .compare__table td.is-us::before { color: var(--orange); }
}

/* -- D-M1/M2: new Anton heads uppercase; tease eyebrow matches system -- */
.ledger-tease__head { text-transform: uppercase; letter-spacing: .5px; }
.why__ai-note h3   { text-transform: uppercase; letter-spacing: .5px; }
.ledger-tease__eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  letter-spacing: 3px; font-weight: 500;
}
.ledger-tease__eyebrow::before { content: ""; width: 24px; height: 1px; background: var(--orange); }

/* -- Stats-strip caption (absorbed the old countries line) -- */
.numbers-strip__caption {
  text-align: center;
  font-size: 12px;
  letter-spacing: 1.5px;
  color: var(--cream-dim);
  line-height: 2;
  margin: 14px auto 0;
  max-width: 900px;
  padding: 0 var(--gutter);
}

/* -- Studio banner (absorbed the old studios teaser) -- */
.studio-banner {
  max-width: var(--max);
  margin: 26px auto 0;
  padding: 16px 20px;
  border: 1px solid rgba(21, 20, 20, 0.25);
  background: rgba(21, 20, 20, 0.05);
}
.studio-banner p { margin: 0; font-size: 14.5px; line-height: 1.7; color: #2a2828; }
.studio-banner strong { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; }
.studio-banner a { color: #8f3a24; font-weight: 600; }

/* -- D-M4: mobile bar button boxes + tracking + safe-area clearance -- */
@media (max-width: 880px) {
  .mobile-bar__apply, .mobile-bar__dm {
    display: flex; align-items: center; justify-content: center;
    letter-spacing: 1.5px;
  }
  .mobile-bar { gap: 3px; }
  .footer { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
}
/* hides while the contact section is on screen (JS toggles) */
.mobile-bar--hidden { transform: translateY(110%); }
.mobile-bar { transition: transform .35s var(--ease); }

/* -- D-M5: dm-path aligns with the timeline-note precedent -- */
.dm-path { border: none; border-left: 2px solid var(--orange); }
.dm-path__head { letter-spacing: 1px; }

/* -- D-L2: token instead of hex -- */
.report__page-foot { background: var(--cream-2); }

/* -- WHY-META compressed stat band -- */
.why-meta--band { padding: 40px var(--gutter); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--black-2); }
.why-meta--band .why-meta__inner { max-width: var(--max); margin: 0 auto; }
.why-meta__band {
  margin: 0; text-align: center;
  font-size: 15px; line-height: 1.8; color: var(--cream-dim);
  max-width: 72ch; margin-left: auto; margin-right: auto;
}
.why-meta__band-num {
  font-family: var(--display);
  font-size: clamp(26px, 3.4vw, 40px);
  color: var(--orange);
  margin-right: 8px;
  vertical-align: middle;
}
.why-meta__band a { color: var(--cream); }

/* -- Mid-page CTA inside tracking section -- */
.tracking .trial__inline-cta { margin-top: 30px; text-align: left; }

/* -- MOBILE INLINE EXPRESS (hidden on desktop; desktop has the modal) -- */
.express-inline { display: none; }
.express-inline__thanks { display: none; }
@media (max-width: 880px) {
  .express-inline {
    display: block;
    margin-bottom: 26px;
    padding: 20px 18px;
    border: 1px solid var(--line-strong);
    border-left: 3px solid var(--orange);
    background: var(--black-2);
  }
  .express-inline__thanks[hidden] { display: none; }
  .express-inline__thanks:not([hidden]) {
    display: block;
    margin-bottom: 26px;
    padding: 20px 18px;
    border: 1px solid var(--line-strong);
    background: var(--black-2);
  }
  .express-inline__thanks h3 { font-family: var(--header); text-transform: uppercase; color: var(--cream-2); margin: 0 0 8px; }
  .express-inline__thanks p { color: var(--cream-dim); font-size: 14px; margin: 0; }
  .express-inline__head {
    font-family: var(--header);
    text-transform: uppercase;
    letter-spacing: .5px;
    font-size: 17px;
    color: var(--cream-2);
    margin: 0 0 6px;
  }
  .express-inline__sub { font-size: 13.5px; line-height: 1.65; color: var(--cream-dim); margin: 0 0 16px; }
  .express-inline label { display: block; margin-bottom: 12px; }
  .express-inline label span { display: block; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--cream-dim); margin-bottom: 5px; }
  .express-inline input {
    width: 100%; padding: 12px;
    background: var(--black); border: 1px solid var(--line-strong);
    color: var(--cream); font-family: var(--body); font-size: 15px;
  }
  .express-inline input:focus { outline: none; border-color: var(--orange); }
  .express-inline__fine { font-size: 12px; line-height: 1.6; color: var(--cream-faint); margin: 0 0 14px; }
}

/* -- A11Y: hidden floating controls leave the tab order; gate ticks don't strike through -- */
.sticky-cta:not(.is-visible), .scroll-top:not(.is-visible) { visibility: hidden; }
.fit-gate__check span { text-decoration: none !important; }

/* -- Reduced motion: no smooth scrolling -- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ============================================================
   MOTION 2026-08 — one-shot entrances, JS-gated ("Full Bleed").
   Gating: JS sets html[data-motion="ok"] ONLY when JS runs and
   prefers-reduced-motion is off. No JS / reduced motion = static,
   fully visible page.
   ============================================================ */

/* -- 1. CASE-REPORT INK WIPE: the page is printed and static (matching the
      monthly-report mock); only the orange takeaway band inks in once,
      left to right, when the band itself scrolls into view. -- */
html[data-motion="ok"] .report__page--case[data-settle] .case-takeaway {
  position: relative;
  overflow: hidden;
}
html[data-motion="ok"] .report__page--case[data-settle] .case-takeaway::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--cream-2);
}
html[data-motion="ok"] .report__page--case[data-settle].is-settled .case-takeaway::after {
  transform: translateX(101%);
  transition: transform 400ms var(--ease) 120ms;
}

/* -- 7. SUCCESS SETTLE: express + modal thanks panels appear by [hidden]
      removal (display snap). One 350ms settle on the confirmation.
      display:none->block re-renders, so the keyframe fires once, on reveal. -- */
html[data-motion="ok"] .express-inline__thanks:not([hidden]),
html[data-motion="ok"] .modal__thanks:not([hidden]) {
  animation: bdThanksIn .35s var(--ease) both;
}
@keyframes bdThanksIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

/* -- CASE-REPORT PAGE: the 90-day result in report clothes -- */
.artists-deep__visual { flex-direction: column; gap: 12px; }
.artists-deep__visual .report__note { width: 100%; text-align: center; margin: 0; }
.report__page--case {
  width: 100% !important;
  max-width: 470px !important;
  margin: 0 auto !important;
  transform: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  padding-bottom: 6px !important;
}
.report__page--case .report__page-inner { position: static; }
.report__page-grid--case {
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}
.case-num {
  font-family: var(--display);
  font-size: clamp(17px, 1.9vw, 21px);
  letter-spacing: .3px;
  color: #2a2828;
  display: block;
}
.case-arrow { color: #8f3a24; font-family: var(--body); font-size: .8em; }
.report__page--case .case-takeaway {
  margin: 14px 0 12px !important;
  padding: 9px 12px !important;
  background: var(--orange) !important;
  color: var(--black) !important;
  font-family: var(--header) !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  font-size: 14px !important;
  text-align: center !important;
}
.report__page-foot--case {
  position: static;
  margin-top: 12px;
  box-shadow: none;
  background: transparent;
}

/* -- 2. HERO: tighten the curtain-era entrance (1.1s/28px -> .6s/14px) -- */
.hero__inner {
  animation: bdHeroIn .6s var(--ease) both;
  animation-delay: .05s;
}
@keyframes bdHeroIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

/* -- 3. MICRO: press feedback (the only feedback phones get) -- */
.btn { transition: background .18s var(--ease), color .18s var(--ease),
                   box-shadow .18s var(--ease), transform .12s var(--ease); }
.btn:active,
.inline-cta__btn:active,
.mobile-bar__apply:active { transform: translateY(1px); }

/* -- 4. MICRO: FAQ answers glide open where supported (progressive) -- */
:root { interpolate-size: allow-keywords; }
.faq__item::details-content,
.price-fine::details-content {
  opacity: 0;
  block-size: 0;
  overflow-y: clip;
  transition: content-visibility .3s allow-discrete,
              opacity .3s var(--ease),
              block-size .3s var(--ease);
}
.faq__item[open]::details-content,
.price-fine[open]::details-content {
  opacity: 1;
  block-size: auto;
}

/* -- 5. MOBILE BAR: slides up once the hero CTA scrolls away, then stays -- */
html[data-motion="ok"] .mobile-bar[data-barwait]:not(.is-on):not(.mobile-bar--hidden) { transform: translateY(110%); }

/* -- 6. JOURNEY LINE: one-shot left-to-right draw (desktop only) -- */
html[data-motion="ok"] .journey__steps[data-linedraw]::before {
  transform: scaleX(0);
  transform-origin: left center;
}
html[data-motion="ok"] .journey__steps[data-linedraw].is-drawn::before {
  transform: scaleX(1);
  transition: transform .7s var(--ease);
}


/* -- CASE-REPORT on narrow phones: stats stack single-column (must sit after
      the base 2-col !important rule to win the cascade tie) -- */
@media (max-width: 600px) {
  .report__page-grid--case { grid-template-columns: 1fr !important; }
  .report__page--case .report__page-stat { min-height: 0; }
}

/* ============================================================
   THE 60-SECOND AD CHECK — ungated diagnostic (2026-08).
   Delete this block + section#ad-check + <script id="bd-adcheck">
   to remove the feature.
   ============================================================ */
.adcheck { background: var(--black-4); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: var(--section-y) var(--gutter); }
.adcheck__inner { max-width: 720px; margin: 0 auto; }
.adcheck__lede { font-size: 15.5px; line-height: 1.8; color: var(--cream-dim); margin: 14px 0 26px; }
.adcheck__static p { font-size: 15px; line-height: 1.8; color: var(--cream-dim); }
.adcheck__progress { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--cream-faint); margin: 0 0 14px; }
.adcheck__q { border: none; margin: 0; padding: 0; }
.adcheck__q legend { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; font-size: clamp(17px, 2vw, 21px); color: var(--cream-2); margin-bottom: 16px; }
.adcheck__q legend small { display: block; font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 12px; color: var(--cream-faint); margin-top: 4px; }
.adcheck__q label {
  display: flex; align-items: center; gap: 12px;
  min-height: 48px;
  padding: 12px 14px;
  margin-bottom: 8px;
  border: 1px solid var(--line-strong);
  background: var(--black-2);
  cursor: pointer;
  transition: border-color .15s var(--ease), background .15s var(--ease);
}
.adcheck__q label:hover { border-color: var(--orange); }
.adcheck__q label:has(input:checked) { border-color: var(--orange); background: rgba(215, 94, 67, 0.08); }
.adcheck__q input[type="radio"] { accent-color: var(--orange); width: 16px; height: 16px; flex: none; }
.adcheck__q label span { font-size: 14.5px; line-height: 1.5; color: var(--cream); }
.adcheck__back { margin: 14px 0 0; }
.adcheck__back a { font-size: 13px; color: var(--cream-dim); }
.adcheck__result { margin-top: 8px; padding: 22px 20px; border: 1px solid var(--line-strong); border-left: 3px solid var(--orange); background: var(--black-2); }
.adcheck__result-eyebrow { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: var(--orange); margin: 0 0 8px; }
.adcheck__result-head { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; font-size: clamp(18px, 2.4vw, 24px); color: var(--cream-2); margin: 0 0 12px; outline: none; }
.adcheck__result-body { font-size: 14.5px; line-height: 1.8; color: var(--cream-dim); margin: 0 0 14px; }
.adcheck__result-also { list-style: none; margin: 0 0 16px; padding: 12px 14px; border: 1px dashed var(--line-strong); }
.adcheck__result-also li { font-size: 13.5px; line-height: 1.7; color: var(--cream-dim); }
.adcheck__also-lead { font-size: 11px !important; letter-spacing: 1.5px; text-transform: uppercase; color: var(--cream-faint) !important; margin-bottom: 4px; }
.adcheck__result-offer { font-size: 14.5px; line-height: 1.75; color: var(--cream); margin: 0 0 16px; }
.adcheck__result-cta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 0 0 12px; }
.adcheck__result-dm { font-size: 13.5px; color: var(--cream-dim); }
.adcheck__restart { margin: 0; }
.adcheck__restart a { font-size: 12px; color: var(--cream-faint); }

/* -- Anti-slop pledge badge (What we don't do) -- */
.dont__pledge {
  max-width: 520px;
  margin: 26px auto 0;
  padding: 14px 18px;
  border: 1px solid var(--orange);
  text-align: center;
  font-family: var(--header);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 15px;
  color: var(--cream-2);
}

/* -- Pricing fineprint collapse (Tom's ask): the honest numbers live behind
      one tap; the billing one-liner stays visible -- */
.price-fine { margin: 10px 0 16px; border-top: 1px solid rgba(21,20,20,.2); padding-top: 10px; }
.price-fine summary {
  cursor: pointer;
  font-size: 13px;
  letter-spacing: .5px;
  font-weight: 600;
  color: #8f3a24;
  list-style-position: inside;
}
.price-fine[open] summary { margin-bottom: 8px; }
.price-fine p { font-size: 12.5px; line-height: 1.7; color: #2a2828; margin: 0; }

/* -- Hero -> divider: hairline so the skull band reads as a deliberate
      break at desktop (the hero fade and band tones are close) -- */
.hero + .divider { border-top: 1px solid rgba(207, 204, 195, 0.08); }

/* ============================================================
   DESIGN SWEEP FIXES (final visual pass)
   ============================================================ */
/* 1. Mobile report mockup: A4 aspect ratio collides text on phones */
@media (max-width: 640px) {
  .report .report__page:not(.report__page--case) { aspect-ratio: auto !important; height: auto !important; min-height: 0 !important; transform: none !important; }
  .report .report__page:not(.report__page--case) .report__page-foot { position: static !important; margin-top: 16px; box-shadow: none; }
}
/* 2. 70% band: number + copy on one clean axis */
.why-meta__band {
  display: flex;
  align-items: baseline;
  gap: 18px;
  text-align: left;
  max-width: 640px;
  margin: 26px auto 0;
}
.why-meta__band-num { flex: none; margin-right: 0; }
@media (max-width: 640px) {
  .why-meta__band { flex-direction: column; gap: 6px; }
}
/* 3. Journey cards: kill the desktop rail width on stacked mobile cards */
@media (max-width: 960px) {
  .journey__step p { max-width: none !important; }
}
/* 4. Flags caption: keep flag+code pairs together */
.nowrap { white-space: nowrap; }
.nowrap-line { display: inline-block; }
/* 5. Trial CTA follows the section's left axis, inside the content column
      (mirrors .section__head: max-width + gutters, not the viewport edge) */
.trial .trial__inline-cta {
  text-align: left;
  max-width: var(--max);
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--gutter);
}
/* 6. Studio banner matches the pricing column */
@media (min-width: 900px) {
  .studio-banner { max-width: 810px; }
}
/* 7. Tier tiles: fixed subtitle slot so prices share a baseline */
.tier-card__sub { min-height: 2.6em; }
/* 8. Compare table: row labels top-aligned with their cells */
@media (min-width: 901px) {
  .compare__table th[scope="row"] { vertical-align: top; padding-top: 20px; }
}
/* 9a. FAQ blackletter h2 legible on mobile */
@media (max-width: 640px) {
  .faq .h2-img { width: min(82vw, 320px); }
}
/* 9b. Modal fineprint: sentence case for legibility */
#apply-modal .modal__fineprint { text-transform: none; letter-spacing: .3px; }
/* 9c. Currency select: match the card instead of OS chrome */
#currency {
  appearance: none;
  -webkit-appearance: none;
  background: transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='6'%3E%3Cpath d='M0 0l4 6 4-6z' fill='%238f3a24'/%3E%3C/svg%3E") no-repeat right 8px center;
  border: 1px solid rgba(21, 20, 20, 0.35);
  padding: 3px 22px 3px 8px;
  font-family: var(--body);
  font-size: 12px;
  color: #2a2828;
  cursor: pointer;
}
/* 9d. Blog promo: 2x2 on desktop so no orphan card */
@media (min-width: 900px) {
  .blog-promo__articles { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   ROUND 4 (2026-09-16) — cut-down homepage. Tom's approved list in
   research/round4/08-TOM-DECISIONS.md. Everything below is additive.
   ============================================================ */

/* -- D1: proportional body face for long copy; mono stays on labels,
      numbers, forms and the paper mocks -- */
.hero__subline, .hero__risk, .lede, .artists-deep__points li, .how__col p,
.timeline__list p, .fit__col li, .fit__close, .fit__promise li,
.price-card__includes li, .price-card__allin, .price-fine p, .tier-cards__note,
.quote blockquote, .compare__table td, .dont__list--compact li, .why__ai-note p,
.faq__item p, .faq__ul li, .contact .lede, .dm-path p,
.express-inline__sub, .ledger-tease p, .report__bullets li,
.adcheck__lede, .adcheck__q label span, .adcheck__result-body, .adcheck__result-offer,
.adcheck__static p, .studio-banner p, .pricing__standard-note, .ukeu-note, .proof__note,
.numbers-strip__caption, .modal__sub, .modal__fineprint, .express-inline__fine {
  font-family: var(--body-sans);
}
.lede { font-size: 17px; line-height: 1.7; }

/* -- H1 wraps the headline PNGs (alt text = the picture) -- */
h1.hero__headline { margin: 0 0 clamp(16px, 3vw, 28px); }

/* -- Cream bands (How it works, Pricing, Report) -- */
.band--cream { background: var(--cream-2); color: var(--black-4); }
.band--cream .h2 { color: var(--black-4); }
.band--cream .h2 .accent { color: var(--orange); }
.band--cream .eyebrow { color: var(--orange); }
.band--cream .eyebrow::before { background: var(--orange); }
.band--cream .lede { color: #2a2828; }
.btn--dark { border: 1px solid var(--black-4); color: var(--black-4); }
.btn--dark:hover { background: var(--black-4); color: var(--cream-2); }
.section__head--flush { margin-bottom: 40px; }

/* -- HOW IT WORKS: three columns, one screen -- */
.how { padding: var(--section-y) 0; border-top: 1px solid rgba(21,20,20,.12); border-bottom: 1px solid rgba(21,20,20,.12); }
.how__inner { max-width: var(--max); margin: 0 auto; padding: 0; }
.how__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.how__col { display: grid; gap: 12px; align-content: start; padding-top: 18px; border-top: 2px solid var(--black-4); }
.how__num { font-family: var(--body); font-size: 12px; letter-spacing: 2px; color: #8f3a24; }
.how__col h3 { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; font-size: clamp(20px, 2.2vw, 26px); color: var(--black-4); margin: 0; }
.how__col p { margin: 0; font-size: 15.5px; line-height: 1.7; color: #2a2828; max-width: 42ch; }
.how__art { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.chip { font-family: var(--body); font-size: 11.5px; letter-spacing: 1px; text-transform: uppercase; padding: 5px 9px; border: 1px solid var(--black-4); color: var(--black-4); }
.chip--x { text-decoration: line-through; opacity: .55; }
.how__art--steps span { font-family: var(--body); font-size: 11.5px; letter-spacing: 1px; text-transform: uppercase; padding: 5px 9px; background: rgba(21,20,20,.08); color: #2a2828; position: relative; }
.how__art--steps span + span::before { content: "→"; position: absolute; left: -12px; top: 5px; color: #8f3a24; font-size: 11px; }
.how__art--steps { gap: 12px; }
.how__art--steps .is-hot { background: var(--orange); color: var(--black); }
.how__more { max-width: var(--max); margin: 44px auto 0; padding: 0 var(--gutter); }
@media (max-width: 900px) { .how__cols { grid-template-columns: 1fr; gap: 30px; } }

/* -- Conor under the 90-day card -- */
.quote--case { width: 100%; max-width: 470px; margin: 8px auto 0; min-height: 0; padding: 26px 24px; }
.quote--case blockquote { font-size: 15px; }

/* -- UK/EU note (shown by JS when the currency guess is GBP/EUR/CHF) -- */
.ukeu-note { margin: 18px 0 22px; padding: 12px 14px; border-left: 2px solid var(--orange); font-size: 14px; line-height: 1.65; color: var(--cream-dim); max-width: 62ch; }
.ukeu-note strong { color: var(--cream); }
.ukeu-note--dark { color: #2a2828; margin: 16px auto 0; }
.ukeu-note--dark strong { color: var(--black-4); }

/* -- TRIAL: copy beside the 4-beat timeline -- */
.trial__grid { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.trial__copy .lede { margin: 18px 0 0; max-width: 56ch; color: var(--cream-dim); }
.trial .trial__inline-cta { padding: 0; margin: 26px 0 0; max-width: none; }
.trial .timeline { margin: 8px 0 0; padding: 0; max-width: none; }
.timeline__decide { margin-left: 0; margin-right: -20px; padding: 22px 20px 22px 32px !important; border-left: none; background: rgba(215, 94, 67, .07); }
.timeline__decide::before { display: block !important; box-shadow: 0 0 0 4px rgba(215, 94, 67, .25); }
.timeline__list p strong { color: var(--cream); }
@media (max-width: 960px) { .trial__grid { grid-template-columns: 1fr; gap: 40px; } .timeline__decide { margin-right: 0; } }

/* -- FIT: the written promises -- */
.fit__promise { max-width: 720px; margin: 34px auto 0; padding: 0 var(--gutter); }
.fit__promise .fit__close { font-style: normal; text-align: left; padding: 0; margin: 0 0 14px; color: var(--cream); }
.fit__promise ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fit__promise li { position: relative; padding-left: 26px; font-size: 15px; line-height: 1.6; color: var(--cream-dim); }
.fit__promise li::before { content: ""; position: absolute; left: 0; top: 9px; width: 14px; height: 2px; background: var(--orange); }

/* -- PROOF: three quotes before the price -- */
.proof__grid--three { grid-template-columns: repeat(3, 1fr); max-width: 1100px; }
.proof__grid--three .quote { min-height: 0; }
@media (max-width: 900px) { .proof__grid--three { grid-template-columns: 1fr; } }
.proof__note { text-align: center; font-size: 13.5px; color: var(--cream-dim); max-width: 60ch; margin: 26px auto 0; padding: 0 var(--gutter); }

/* -- PRICING: price shown once, on the tiles; currency in the row header -- */
.tier-row-head { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin: 0 0 12px; font-size: 12.5px; letter-spacing: .5px; color: rgba(0,0,0,.6); }
.tier-cards__note { max-width: 62ch; margin: 14px 0 0; font-size: 14px; line-height: 1.65; color: #2a2828; }
.price-card__other { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; font-size: clamp(18px, 2vw, 22px); color: var(--black-4); margin: 0 0 10px; }
.price-card__allin { font-size: 15px; line-height: 1.7; color: #2a2828; margin: 0 0 22px; max-width: 62ch; }
.price-card__allin strong { color: var(--black-4); }
.fx-line { color: #8f3a24; font-weight: 600; }
.pricing--light .price-card { padding-top: 28px; }
.tier-card__sub { min-height: 3.2em; line-height: 1.6; text-transform: none; letter-spacing: .3px; font-size: 12px; }

/* -- WHY US: argument, table, don't-list, AI note, one section -- */
.why .compare__wrap { margin-top: 44px; margin-bottom: 44px; }
.why .compare__table td { font-size: 14px; }
.dont__title { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; font-size: clamp(20px, 2.2vw, 24px); color: var(--cream-2); margin: 0 0 8px; padding-top: 26px; border-top: 1px solid var(--line); }
.dont__list--compact { max-width: none; margin: 0; padding: 0; }
.dont__list--compact li { font-family: var(--body-sans); font-size: 15.5px; text-transform: none; letter-spacing: 0; line-height: 1.6; color: var(--cream-dim); padding: 14px 0 14px 34px; }
.dont__list--compact li::before { top: 22px; width: 18px; }
.dont__list--compact li:hover { color: var(--cream); padding-left: 34px; }
.dont__list--compact li:hover::before { width: 18px; }
.why .dont__pledge { margin-top: 30px; }

/* -- REPORT on cream -- */
.report.band--cream .report__bullets li { color: #2a2828; }
.report.band--cream .report__bullets li::before { color: var(--orange); }
.report.band--cream .report__note { color: rgba(0,0,0,.55); }
.report.band--cream .ledger-tease { border: 1px dashed rgba(21,20,20,.35); background: rgba(21,20,20,.04); margin-top: 34px; }
.report.band--cream .ledger-tease__head { color: var(--black-4); }
.report.band--cream .report__page { box-shadow: 0 18px 40px rgba(0,0,0,.18); }
/* the page foot sits below the list at every width (was absolute over it) */
.report__page-foot { position: static; margin-top: 16px; box-shadow: none; background: transparent; padding-top: 8px; }
.report .report__page:not(.report__page--case) { aspect-ratio: auto !important; height: auto !important; min-height: 0 !important; }

/* -- Tiny type up to a legal minimum -- */
.report__page-foot, .report__page-foot--case { font-size: 11px; opacity: .7; }
.report__page-note { font-size: 11.5px; }
.adcheck__progress, .adcheck__restart a { font-size: 12px; color: var(--cream-dim); }
.adcheck__q legend small { color: var(--cream-dim); }
.tier-card__excl { font-size: 11px; }

/* -- FAQ: 8 visible + toggle -- */
.faq__ul { margin: 8px 0 12px 18px; padding: 0; color: var(--cream-dim); font-size: 14.5px; line-height: 1.7; }
.faq__toggle-wrap { margin: 26px 0 0; }
.faq__toggle { font-family: var(--header); text-transform: uppercase; letter-spacing: 1px; font-size: 14px; color: var(--cream-2); border: 1px solid var(--cream); padding: 12px 18px; }
.faq__toggle:hover { background: var(--cream); color: var(--black); }
.faq__toggle-count { font-family: var(--body); font-size: 12px; letter-spacing: 1px; color: var(--cream-dim); margin-left: 6px; }
.faq__toggle:hover .faq__toggle-count { color: var(--black); }
.faq__more { margin-top: 26px; }

/* -- CONTACT: express form visible at every width; hint text; gate -- */
.express-inline { display: block; margin-bottom: 26px; padding: 22px 20px; border: 1px solid var(--line-strong); border-left: 3px solid var(--orange); background: var(--black-2); }
.express-inline__head { font-family: var(--header); text-transform: uppercase; letter-spacing: .5px; font-size: 17px; color: var(--cream-2); margin: 0 0 6px; }
.express-inline__sub { font-size: 13.5px; line-height: 1.65; color: var(--cream-dim); margin: 0 0 16px; }
.express-inline label { display: block; margin-bottom: 12px; }
.express-inline label span { display: block; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--cream-dim); margin-bottom: 5px; }
.express-inline input { width: 100%; padding: 12px; background: var(--black); border: 1px solid var(--line-strong); color: var(--cream); font-family: var(--body); font-size: 15px; }
.express-inline input:focus { outline: none; border-color: var(--orange); }
.express-inline__fine { font-size: 12px; line-height: 1.6; color: var(--cream-dim); margin: 0 0 14px; }
.express-inline__thanks:not([hidden]) { display: block; margin-bottom: 26px; padding: 20px 18px; border: 1px solid var(--line-strong); background: var(--black-2); }
.express-inline__thanks h3 { font-family: var(--header); text-transform: uppercase; color: var(--cream-2); margin: 0 0 8px; }
.express-inline__thanks p { color: var(--cream-dim); font-size: 14px; margin: 0; }
.form-hint { display: block; font-size: 13px; color: var(--cream); opacity: .65; margin: 2px 0 8px; }

/* -- Tap targets (44px floor) -- */
@media (max-width: 720px) {
  .faq__item summary { min-height: 48px; padding-block: 10px; }
  #currency { min-height: 40px; padding-top: 8px; padding-bottom: 8px; }
  .price-fine summary { min-height: 40px; display: flex; align-items: center; }
  .quote__handle { display: inline-block; padding: 8px 0; }
  .tier-row-head { justify-content: flex-start; }
}

/* -- FOOTER (Tom, 16 Sep): three even columns, brand column carries contact, legal on the bottom line -- */
.footer { padding-top: 64px; }
.footer__inner { grid-template-columns: 220px 1fr; gap: 64px; align-items: start; }
.footer__brand img { width: 120px; height: auto; margin-bottom: 18px; }
.footer__contact { margin-top: 18px !important; font-family: var(--body) !important; font-size: 13px !important; letter-spacing: .3px !important; text-transform: none !important; line-height: 1.9 !important; }
.footer__contact a { color: var(--cream-dim); }
.footer__contact a:hover { color: var(--orange); }
.footer__cols { grid-template-columns: repeat(3, 1fr); gap: 32px; }
.footer__cols ul { gap: 10px; }
.footer__legal a { color: var(--cream-faint); }
.footer__legal a:hover { color: var(--orange); }
@media (max-width: 880px) { .footer__inner { grid-template-columns: 1fr; gap: 36px; } }

/* -- FLOW PASS (16 Sep): mobile compare table shows the Bonehead column only until tapped; ledger tease full width -- */
.compare__toggle-wrap { display: none; margin: 14px 0 0; }
@media (max-width: 900px) {
  .compare__toggle-wrap { display: block; }
  .compare__table.is-collapsed td:not(.is-us) { display: none; }
  .compare__toggle { font-family: var(--body); font-size: 12.5px; letter-spacing: .5px; color: var(--cream-dim); border: 1px solid var(--line-strong); padding: 10px 14px; text-align: left; width: 100%; }
  .compare__toggle:hover { color: var(--orange); border-color: var(--orange); }
}
.report__inner .ledger-tease { grid-column: 1 / -1; width: 100%; margin-top: 40px; }
.fit__cap { font-style: normal; margin-top: 18px; color: var(--cream-dim); }

/* ============================================================
   VISUAL POLISH (16 Sep, report 09): axis, rhythm, leaks
   ============================================================ */
.how__art--steps span + span::before { content: none; }
.how__art--steps span:not(:last-child)::after { content: "→"; position: absolute; right: -11px; top: 5px; color: #8f3a24; font-size: 11px; }
.how__art--steps { column-gap: 12px; row-gap: 8px; }
.contact__response, .about__pull { font-family: var(--header); }
.tier-cards__note { max-width: 62ch; margin: 16px auto 30px; text-align: center; }
.price-fine { width: 100%; max-width: 460px; text-align: left; }
.proof .section__head { max-width: 1100px; }
.faq .section__head { max-width: 900px; }
.proof { background: var(--black-2); border-top: 1px solid var(--line); }
.about__more .about__manifesto-btn { color: var(--cream); border: 1px solid var(--cream); padding: 14px 24px; font-size: 15px; letter-spacing: 1.5px; margin-top: 12px; }
.about__more .about__manifesto-btn:hover { background: var(--cream); color: var(--black); }
@media (max-width: 640px) {
  .hero__cta { flex-direction: column; align-items: stretch; width: min(100%, 300px); margin: 0 auto; }
  .hero__cta .btn { width: 100%; }
  .hero__veil { background: linear-gradient(180deg, rgba(13,12,12,.98) 0%, rgba(13,12,12,.85) 18%, rgba(13,12,12,.35) 40%, rgba(13,12,12,.3) 65%, rgba(13,12,12,.95) 100%); }
}
:root { --section-y: clamp(72px, 9vw, 116px); }
.section__head { margin-bottom: 48px; }
.fit > .fit__close { text-align: left; width: min(720px, 100% - 2 * var(--gutter)); padding: 0 28px; margin: 36px auto 0; }
.fit > .fit__cap { margin-top: 16px; }
.fit__promise { width: min(720px, 100% - 2 * var(--gutter)); margin: 20px auto 0; padding: 24px 28px; border: 1px solid var(--line-strong); border-left: 2px solid var(--orange); background: var(--black-2); }
.proof__grid--three .quote { justify-content: flex-start; }
.hero__risk, .pricing__standard-note, .proof__note, .numbers-strip__caption, .tier-cards__note { text-wrap: balance; }

/* -- REPORT SECTION rebuild (Tom, 16 Sep): straight mock, copy and mock top-aligned, Ledger tease as a dark two-column card -- */
.report__inner { align-items: start; gap: 72px; }
.report__copy { padding-top: 6px; }
.report.band--cream .report__page { transform: none; max-width: 420px; border: 1px solid rgba(21,20,20,.18); box-shadow: 0 24px 48px -16px rgba(0,0,0,.35), 0 8px 16px -8px rgba(0,0,0,.2); }
.report.band--cream .report__page:hover { transform: none; }
.report__visual { perspective: none; gap: 16px; }
.report__inner .ledger-tease {
  grid-column: 1 / -1; width: 100%; margin-top: 56px;
  display: grid; grid-template-columns: minmax(240px, 1fr) 2fr; gap: 40px 56px; align-items: start;
  padding: 36px 40px; border: none; background: var(--black-4); color: var(--cream);
}
.report.band--cream .ledger-tease { border: none; background: var(--black-4); }
.report.band--cream .ledger-tease__head { color: var(--cream-2); font-size: clamp(22px, 2.4vw, 28px); margin: 0 0 12px; }
.report.band--cream .ledger-tease__eyebrow { color: var(--orange); }
.ledger-tease__sub { font-family: var(--body); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--cream-dim) !important; margin: 0 !important; }
.report.band--cream .ledger-tease__body p { color: var(--cream-dim); font-size: 15.5px; line-height: 1.75; margin: 0 0 12px; max-width: 62ch; }
.report.band--cream .ledger-tease__body p:last-child { margin-bottom: 0; }
@media (max-width: 880px) {
  .report__inner .ledger-tease { grid-template-columns: 1fr; gap: 20px; padding: 28px 22px; margin-top: 40px; }
}

/* ============================================================
   BALANCE PASS (16 Sep, report 11): eleven verified rules
   ============================================================ */
.artists-deep { padding-left: 0; padding-right: 0; }
.artists-deep__inner { padding: 0 var(--gutter); gap: clamp(40px, 4vw, 48px); }
.pricing .studio-banner { width: calc(min(920px, 100%) - 2 * var(--gutter)); max-width: none; margin: 26px auto 0; box-sizing: border-box; }
.report .report__page-stat-label { min-height: 2.8em; }
.adcheck .h2 .accent, .proof .h2 .accent { white-space: nowrap; }
.report__inner > * { min-width: 0; }
.how .h2 { text-wrap: balance; }
.adcheck .eyebrow { display: block; }
.adcheck .eyebrow::before { display: inline-block; vertical-align: middle; margin-right: 10px; }
.faq { background: var(--black-2); border-top: 1px solid var(--line); }
.report.band--cream .report__inner .ledger-tease { margin-top: 16px; }
@media (min-width: 881px) { .report__inner .ledger-tease { grid-template-columns: minmax(310px, 1fr) 2fr; } }

/* two collapsed rows in the price card sit as one stack */
.price-fine { margin: 10px 0 0; }
.price-fine + .price-fine { margin-top: 0; border-top: 1px solid rgba(21,20,20,.2); }
.price-fine[open] { padding-bottom: 6px; }
.price-card > .btn--primary { margin-top: 22px; }


/* -- REPORT: the real cover in front of the sample page -- */
.report__stack { position: relative; width: 100%; max-width: 520px; margin: 0 auto; padding: 0 0 0 140px; min-height: 0; }
.report__cover { position: absolute; left: 0; top: 34px; width: 250px; height: auto; z-index: 2; border: 1px solid rgba(21,20,20,.25); box-shadow: 0 24px 48px -16px rgba(0,0,0,.45), 0 8px 16px -8px rgba(0,0,0,.25); transform: rotate(-3deg); }
.report__stack .report__page { max-width: 380px; margin-left: auto; }
@media (max-width: 1100px) { .report__stack { padding-left: 110px; } .report__cover { width: 210px; } }
@media (max-width: 880px) { .report__stack { padding-left: 0; } .report__cover { position: static; width: min(62%, 260px); margin: 0 auto 18px; transform: rotate(-2deg); display: block; } .report__stack .report__page { margin: 0 auto; } }
/* cover stack: less overlap on the sample page */
.report__stack { max-width: 560px; padding-left: 176px; }
.report__cover { width: 236px; top: 44px; }
@media (max-width: 1100px) { .report__stack { padding-left: 140px; } .report__cover { width: 200px; } }
.report__stack { max-width: 560px; padding-left: 196px; }
.report__cover { width: 214px; top: 40px; }
@media (max-width: 1100px) { .report__stack { padding-left: 150px; } .report__cover { width: 170px; } }

/* ============================================================
   ROUND 4b (17 Sep): artist-led panel changes
   ============================================================ */
.num-item--price .num-item__value small { font-size: .38em; letter-spacing: 1px; color: var(--cream-dim); margin-left: 4px; }
.numbers-strip__caption a { color: var(--cream); }
.numbers-strip__caption a:hover { color: var(--orange); }
.fit__ifnot { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14.5px; line-height: 1.65; color: var(--cream-dim); font-family: var(--body-sans); }
.fit__ifnot strong { color: var(--cream); }
.fit__cta { display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; margin: 30px auto 0; padding: 0 var(--gutter); }
.fit__cta span { font-size: 14px; color: var(--cream-dim); font-family: var(--body-sans); }
.fit__cta span a { color: var(--cream); }
.compare__foot { max-width: var(--max); margin: 10px auto 0; padding: 0 var(--gutter); font-size: 11.5px; letter-spacing: .3px; color: var(--cream-faint); }
.proof__note a, .express-inline__sub a { color: var(--cream); }
.proof__note a:hover, .express-inline__sub a:hover { color: var(--orange); }
.report.band--cream .ledger-tease__body p { max-width: 68ch; }
/* phones: cover above the page, no stack offset (must come after the tablet stack rules) */
@media (max-width: 880px) {
  .report__stack { padding-left: 0; max-width: 420px; }
  .report__cover { position: static; width: min(62%, 240px); margin: 0 auto 18px; transform: rotate(-2deg); display: block; }
  .report__stack .report__page { margin: 0 auto; }
}

/* -- PROOF: Google reviews row under the three Instagram quotes (17 Sep) -- */
.proof__google-head { max-width: 1100px; margin: 44px auto 20px; padding: 0 var(--gutter); display: flex; align-items: baseline; justify-content: space-between; gap: 10px 24px; flex-wrap: wrap; }
.proof__google-rating { margin: 0; font-family: var(--body-sans); font-size: 15px; color: var(--cream-dim); }
.proof__google-rating strong { color: var(--cream); font-weight: 600; }
.proof__stars { color: var(--orange); letter-spacing: 2px; margin-right: 8px; font-size: 15px; }
.proof__google-link { font-family: var(--body); font-size: 12.5px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--cream); border-bottom: 1px solid var(--line-strong); padding-bottom: 2px; }
.proof__google-link:hover { color: var(--orange); border-color: var(--orange); }
.quote__sub { font-family: var(--body); font-size: 12px; letter-spacing: .5px; color: var(--cream-dim); line-height: 1.5; }
.proof__grid--google .quote blockquote { font-size: 14.5px; }

/* ============================================================
   FINAL PRE-DEPLOY PASS (17 Sep 2026): visual review fixes
   ============================================================ */
/* D1 price contrast on the grey (inactive) tier cards */
.tier-card:not(.is-active) .tier-card__price { color: var(--black-4); }
.tier-card:not(.is-active) .tier-card__price small { color: #2a2828; }
.tier-card:not(.is-active) .tier-card__local { color: #8f3a24; }
/* D2 eyebrows on cream bands */
.eyebrow--dark { color: #a8452c; }
.eyebrow--dark::before { background: #a8452c; }
/* D7 dim meta text lifted to ~4.5:1 on near-black */
:root { --cream-faint: #8a8781; }
/* D3 compare footnote lines up with the table's inner edge */
.compare__foot { margin-top: 14px; }
/* D5/M6 step chips: arrow travels with the chip that follows it, so a wrapped chip keeps its arrow */
.how__art--steps span:not(:last-child)::after { content: none; }
.how__art--steps span + span::before { content: "\2192"; position: absolute; left: -13px; top: 5px; color: #8f3a24; font-size: 11px; }
.how__art--steps { padding-left: 14px; margin-left: -14px; }
.how__art--steps span { white-space: nowrap; }
/* D6 artists quote card sits at the top of its column, not floating mid-height */
.artists-deep__visual { justify-content: flex-start; align-items: stretch; padding-top: 6px; }
.quote--case { margin: 0 0 0 auto; }
@media (max-width: 960px) { .quote--case { max-width: none; margin: 0; } }
/* T1 pricing keeps three columns down to tablet widths */
@media (min-width: 761px) and (max-width: 920px) {
  .tier-cards { grid-template-columns: repeat(3, 1fr); }
  .tier-card { border-right: none; border-bottom: 1px solid rgba(0,0,0,.12); }
  .tier-card:last-child { border-right: 1px solid rgba(0,0,0,.12); }
  .tier-card:not(:last-child) { border-bottom: 1px solid rgba(0,0,0,.12); }
}
/* T2 how-it-works steps: two columns on tablet, copy allowed to run wider */
@media (min-width: 701px) and (max-width: 900px) {
  .how__cols { grid-template-columns: 1fr 1fr; }
  .how__cols > :last-child { grid-column: 1 / -1; }
  .how__cols p { max-width: 62ch; }
}
/* T3 hero: no 100vh dead space on portrait tablets */
@media (min-width: 700px) and (max-width: 1024px) and (orientation: portrait) {
  .hero, .hero__panel { min-height: min(100vh, 900px); }
}
/* T6 proof cards: two columns on tablet */
@media (min-width: 641px) and (max-width: 900px) {
  .proof__grid--three { grid-template-columns: 1fr 1fr; }
  .proof__grid--three > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
/* M1 open menu: scrim below the panel, mobile bar hidden while open */
@media (max-width: 920px) {
  .nav__links.is-open { box-shadow: 0 100vh 0 100vh rgba(13,12,12,.9); }
  .nav__links.is-open a { min-height: 44px; display: flex; align-items: center; }
  body:has(.nav__links.is-open) .mobile-bar { transform: translateY(110%); }
  .nav__burger { padding: 11px 8px; box-sizing: content-box; margin-right: -8px; }
}
/* M2 pricing disclosures keep an expand marker when summary is flex */
@media (max-width: 880px) {
  .price-fine summary { list-style: none; align-items: flex-start; }
  .price-fine summary::-webkit-details-marker { display: none; }
  .price-fine summary::before { content: "+"; margin-right: 8px; font-weight: 700; }
  .price-fine[open] summary::before { content: "\2212"; }
}
/* M4 about heading: blackletter needs more size on phones to outrank the pull-quote */
@media (max-width: 640px) { .about__inner .h2 { font-size: 48px; } }

/* -- THE LEADS PROBLEM block (why us, before the compare table), 17 Sep -- */
.why .leads, .why .offers { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--line); }
.leads__h { font-size: clamp(30px, 4vw, 46px); }
.why .leads .lede { max-width: 66ch; }
.why .leads__pledge { margin-top: 26px; }
@media (max-width: 640px) { .why .leads, .why .offers { margin-top: 44px; padding-top: 36px; } }
.why .offers { margin-top: 56px; }
