/* ═══════════════════════════════════════════
   THEME: GOLD & VIOLET — FLAT TYPE  (LIVE)
   The site palette. Gold leads on dark, violet
   on light; no text is filled with a gradient.
   Injected on every page by server.js.
═══════════════════════════════════════════ */
:root {
  --dark-0: #0B0710;
  --dark-1: #110B18;
  --dark-2: #180F22;
  --dark-3: #21152E;

  --cream-0: #FDFCFF;
  --cream-1: #F6F2FA;
  --cream-2: #EDE7F3;
  --cream-3: #E2DAEA;

  /* Purple flame body + gold flame core */
  --fire:    #9B30E8;
  --fire-hi: #B85CFF;
  --gold:    #FFB627;
  --ember:   #5B1A8A;

  --text-light:  #F2ECF8;
  --muted-light: rgba(242,236,248,0.5);
  --text-dark:   #170A21;
  --muted-dark:  rgba(23,10,33,0.58);
}

/* ── Buttons ─────────────────────────────── */
.btn-fire {
  background: linear-gradient(140deg, #6A16B0 0%, var(--fire) 55%, #C55CFF 100%);
  box-shadow: 0 8px 32px rgba(155,48,232,.45), inset 0 1px 0 rgba(255,255,255,.15);
}
.btn-fire:hover {
  box-shadow: 0 14px 48px rgba(155,48,232,.65), inset 0 1px 0 rgba(255,255,255,.18);
}
.btn-ghost { border-color: rgba(242,236,248,.28); }

/* ── Navigation ──────────────────────────── */
#nav.scrolled {
  background: rgba(11,7,16,0.93);
  border-bottom: 1px solid rgba(155,48,232,.12);
}
.nav-links a { color: rgba(242,236,248,0.55); }
.nav-book { border-color: rgba(155,48,232,.6); }
.nav-book:hover { box-shadow: 0 0 24px rgba(155,48,232,.5); }
.nav-hamburger:hover { background: rgba(155,48,232,.12); }
.mobile-menu {
  background: rgba(11,7,16,0.97);
  border-bottom: 1px solid rgba(155,48,232,.16);
}
.mobile-menu-links li,
.mobile-menu-links li:first-child { border-color: rgba(242,236,248,0.07); }
.mobile-menu-links a { color: rgba(242,236,248,0.72); }

/* ── Hero ─────────────────────────────────── */
.hero-glow {
  background: radial-gradient(ellipse 70% 100% at 65% 100%, rgba(155,48,232,.26) 0%, rgba(255,182,39,.07) 45%, transparent 70%);
}
.hero-bg-word { -webkit-text-stroke: 1px rgba(155,48,232,.07); }
.hero-headline .line2 { -webkit-text-stroke: 1px rgba(242,236,248,.35); }
.hero-divider { background: rgba(242,236,248,.08); }
.h-stat-lbl   { color: rgba(242,236,248,0.58); }
.hero-portrait-ring {
  background: radial-gradient(ellipse, rgba(155,48,232,.38) 0%, rgba(255,182,39,.10) 55%, transparent 72%);
}
.hero-portrait-img { filter: drop-shadow(0 0 80px rgba(155,48,232,.45)); }
.hero-badge-float {
  background: rgba(11,7,16,0.8);
  border-color: rgba(155,48,232,.36);
}
.hero-badge-float span { color: rgba(242,236,248,0.72); }

/* ── Hero particles ──────────────────────── */
.hp.fire { background: radial-gradient(circle, rgba(155,48,232,.85) 0%, rgba(155,48,232,0) 70%); }
.hp.gold { background: radial-gradient(circle, rgba(255,182,39,.85) 0%, rgba(255,182,39,0) 70%); }

/* ── Stats grid ──────────────────────────── */
#stats::before {
  background: radial-gradient(ellipse 55% 70% at 50% 0%, rgba(155,48,232,.09) 0%, transparent 70%);
}
.stats-grid { border-color: rgba(242,236,248,.06); }
.stat-cell {
  border-right-color: rgba(242,236,248,.05);
  background: rgba(242,236,248,.015);
}
.stat-cell:hover { background: rgba(155,48,232,.08); }

/* ── Services bento ─────────────────────── */
#services::after { -webkit-text-stroke: 1px rgba(155,48,232,.06); }
.bento-card {
  background: rgba(242,236,248,.025);
  border-color: rgba(242,236,248,.07);
}
.bento-card:hover {
  background: rgba(155,48,232,.08);
  border-color: rgba(155,48,232,.32);
  box-shadow: 0 24px 64px rgba(0,0,0,.45), 0 0 0 1px rgba(155,48,232,.14);
}
.bento-card::before {
  background: radial-gradient(ellipse 70% 80% at top right, rgba(155,48,232,.12) 0%, transparent 60%);
}
.bento-featured {
  border-color: rgba(155,48,232,.48);
  box-shadow: 0 0 0 1px rgba(155,48,232,.2), 0 8px 40px rgba(155,48,232,.2);
}
.bento-featured:hover {
  box-shadow: 0 0 0 1px rgba(155,48,232,.38), 0 24px 64px rgba(155,48,232,.3);
}
.bento-card.accent { border-top-color: rgba(155,48,232,.38); }
.bento-tag  { border-color: rgba(155,48,232,.32); }
.bento-icon { background: rgba(155,48,232,.12); }

/* ── Process steps ──────────────────────── */
.step:hover {
  box-shadow: 0 20px 52px rgba(155,48,232,.16), 0 4px 12px rgba(0,0,0,.06);
}
.step-icon { box-shadow: 0 6px 20px rgba(155,48,232,.32); }
.step:hover .step-icon { box-shadow: 0 10px 30px rgba(155,48,232,.45); }
#pull-quote::before { -webkit-text-stroke: 1px rgba(155,48,232,.05); }

/* ── Testimonials ───────────────────────── */
.t-card:hover { border-color: rgba(155,48,232,.22); }

/* ── Gallery hover wash ─────────────────── */
.gi::after {
  background: linear-gradient(to top, rgba(155,48,232,.6) 0%, rgba(0,0,0,.2) 45%, transparent 75%);
}

/* ── CTA fire banner ────────────────────── */
#cta-fire {
  background: linear-gradient(135deg, #350A5C 0%, #7A1FC4 40%, var(--fire) 70%, #C55CFF 100%);
}
#cta-fire::before {
  background: radial-gradient(ellipse 65% 95% at 50% 100%, rgba(255,182,39,.34) 0%, rgba(255,182,39,.07) 45%, transparent 68%);
}

/* ── Booking form ───────────────────────── */
.urgency-bar {
  background: rgba(155,48,232,.08);
  border-color: rgba(155,48,232,.22);
  color: rgba(91,26,138,.95);
}
.fg input:focus, .fg select:focus, .fg textarea:focus {
  box-shadow: 0 0 0 3px rgba(155,48,232,.12);
}

/* ── Temperature dial ───────────────────── */
.td-dot { box-shadow: 0 0 8px rgba(155,48,232,.7); }
@keyframes tempOscillate {
  0%, 100% { left: calc(80% - 5px); background: var(--fire); box-shadow: 0 0 8px rgba(155,48,232,.7); }
  50%      { left: calc(12% - 5px); background: var(--cold); box-shadow: 0 0 8px rgba(120,144,156,.7); }
}
@keyframes tempHot {
  0%, 100% { left: calc(87% - 5px); background: var(--fire); box-shadow: 0 0 14px rgba(155,48,232,.9); }
  50%      { left: calc(73% - 5px); background: var(--gold); box-shadow: 0 0 8px rgba(255,182,39,.65); }
}

/* ── Stories badges ─────────────────────── */
.st-card.hot .st-badge,
.st-moment.hot .st-badge { background: rgba(155,48,232,.18); color: #B85CFF; }
.st-moment.hot { border-left-color: rgba(155,48,232,.5); }

/* ── Footer ──────────────────────────────── */
footer { border-top-color: rgba(242,236,248,.04); }
.f-soc {
  background: rgba(242,236,248,.055);
  border-color: rgba(242,236,248,.08);
  color: rgba(242,236,248,0.55);
}
.footer-col h4      { color: rgba(242,236,248,.28); }
.footer-col ul li a { color: rgba(242,236,248,.45); }
.footer-bottom      { border-top-color: rgba(242,236,248,.05); }
.footer-bottom p    { color: rgba(242,236,248,.22); }

/* ═══════════════════════════════════════════
   VIOLET & GOLD — the two jobs, split.
   Violet is the BRAND colour. Gold is the
   TEMPERATURE colour. Wherever the page is
   literally arguing hot-vs-cold, gold does the
   talking — so the metaphor survives the move
   away from orange.
═══════════════════════════════════════════ */

/* ── Cold, pushed properly cold ──────────────
   #78909C (hue 200, grey-blue) → #6BA8D8 (hue 206,
   icy). Lands ~166° from the gold: near-complementary,
   so hot and cold read apart instead of both reading
   "cool". Contrast on dark-1 also rises 5.78 → 7.57. */
:root {
  --cold:       #6BA8D8;
  --cold-light: #A8CDE8;
  --cold-bg:    #EAF3FA;
}

/* ── Accent violet: one value per ground ─────
   #9B30E8 manages only 3.5-3.8:1 on the near-black
   grounds and the accent labels are 9-13px bold, so
   they need 4.5. Rather than chase each rule, scope the
   TOKEN: dark is the majority, so --fire defaults to the
   lighter #B85CFF (5.3-5.7 on dark) and the cream
   sections take the deeper violet back, where #9B30E8
   is the one that passes (4.77) and #B85CFF would not
   (3.16). Anything using var(--fire) is then correct for
   its ground automatically. */
:root { --fire: #B85CFF; }
#problem, #process, #testimonials, #about, #booking, #quiz-teaser,
#hl-testimonials, #hl-faq,
body[data-calendly-url] { --fire: #9B30E8; }

/* The marquee paints --fire as a full-bleed background with white
   text on it, so it needs the deeper violet regardless of ground. */
#marquee { background: #7A1FC4; }

/* ── Temperature dial: the hot end is gold ─── */
.td-dot { background: var(--gold); box-shadow: 0 0 8px rgba(255,182,39,.75); }
.td-track {
  background: linear-gradient(90deg, var(--cold) 0%, rgba(155,48,232,.3) 50%, var(--gold) 100%);
}
@keyframes tempOscillate {
  0%, 100% { left: calc(80% - 5px); background: var(--gold); box-shadow: 0 0 8px rgba(255,182,39,.75); }
  50%      { left: calc(12% - 5px); background: var(--cold); box-shadow: 0 0 8px rgba(107,168,216,.75); }
}
@keyframes tempHot {
  0%, 100% { left: calc(87% - 5px); background: var(--gold); box-shadow: 0 0 14px rgba(255,182,39,.9); }
  50%      { left: calc(73% - 5px); background: #FFD07A; box-shadow: 0 0 8px rgba(255,208,122,.65); }
}

/* ── Hot side of the comparison: foregrounds too ──
   The generated overrides only caught literal oranges;
   these were written as var(--fire), so the card kept a
   violet heading and icon over a gold-washed panel. On
   the side of the page that IS the heat argument, the
   text and icons go gold as well. */
.tc-heading.hot,
.tc-heading-icon.hot,
.tc-icon.hot,
.tc-sl-label.right { color: var(--gold); }
.tc-heading-icon.hot { background: rgba(255,182,39,.18); }

/* ── Stories "hot" badge ─────────────────── */
.st-card.hot .st-badge,
.st-moment.hot .st-badge { background: rgba(255,182,39,.18); color: var(--gold); }
.st-moment.hot { border-left-color: rgba(255,182,39,.55); }

/* ── Quiz: the temperature scale on a LIGHT page ──
   Bright gold is unusable as text on white (1.7:1), so
   the light-ground temperature ramp is darkened while
   keeping the hue story: cold 206° → warm 45° → hot 28°.
   Hotter is redder, and all three clear AA.
   Scoped to the quiz body so the dark pages keep the
   icy --cold above. */
body[data-calendly-url] {
  --cold: #2E6E9E;
  --warm: #8F6B00;
  --hot:  #A34D00;
}

/* ── Quiz: buttons are brand, bands are temperature ──
   quiz.css points both its CTA and its result bands at
   --hot, so amber leaked onto the primary button. Under
   the split, an action is brand (violet); only the
   readout of someone's temperature is amber. */
body[data-calendly-url] .btn-intro,
body[data-calendly-url] .btn-primary { background: var(--fire); color: #fff; }
body[data-calendly-url] .locked-cta { border-color: var(--fire); color: var(--fire); }
body[data-calendly-url] .locked-cta:hover { background: var(--fire); color: #fff; }
body[data-calendly-url] .field input:focus { border-color: var(--fire); }

/* ══ css/hot-leadership.css ══ */
.hero-glow {
  background: radial-gradient(ellipse 80% 100% at 50% 100%, rgba(155,48,232,.18) 0%, rgba(155,48,232,.05) 45%, transparent 70%);
}
.hero-bg-word {
  -webkit-text-stroke: 1px rgba(155,48,232,.055);
}
.tv-card.hot {
  background: linear-gradient(135deg, rgba(155,48,232,.18) 0%, rgba(155,48,232,.06) 100%);
  border: 1px solid rgba(155,48,232,.35);
}
#hl-def::before {
  background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(155,48,232,.07) 0%, transparent 70%);
}
.def-block {
  border: 1px solid rgba(155,48,232,.2);
}
.def-pillar:hover {
  background: rgba(155,48,232,.06);
  border-color: rgba(155,48,232,.22);
  box-shadow: 0 24px 60px rgba(155,48,232,.14);
}
.dp-icon-wrap {
  background: rgba(155,48,232,.12);
  border: 1px solid rgba(155,48,232,.22);
}
.def-pillar:hover .dp-icon-wrap {
  background: rgba(155,48,232,.22);
  border-color: rgba(155,48,232,.5);
  box-shadow: 0 0 24px rgba(155,48,232,.2);
}
.dp-badge {
  background: rgba(155,48,232,.1);
  border: 1px solid rgba(155,48,232,.2);
}
#hl-temp::before {
  background: radial-gradient(ellipse 55% 70% at 5% 50%, rgba(155,48,232,.09) 0%, transparent 65%),
    radial-gradient(ellipse 55% 70% at 95% 50%, rgba(66,153,225,.07) 0%, transparent 65%);
}
.tc-side.hot { /* temperature → gold */
  background: linear-gradient(210deg, rgba(255,182,39,.1) 0%, rgba(255,182,39,.03) 50%, transparent 100%);
  border: 1.5px solid rgba(255,182,39,.22);
  box-shadow: 6px 0 40px rgba(255,182,39,.08), inset 0 0 80px rgba(255,182,39,.03);
}
.tc-side.hot:hover { /* temperature → gold */
  box-shadow: 6px 0 60px rgba(255,182,39,.15), inset 0 0 80px rgba(255,182,39,.05);
}
.tc-side.hot::after { /* temperature → gold */
  background: radial-gradient(circle, rgba(255,182,39,.12) 0%, transparent 70%);
}
.tc-heading-icon.hot {
  background: rgba(155,48,232,.18);
}
.tc-icon.hot { /* temperature → gold */
  background: rgba(255,182,39,.2);
}
.tc-vs-line {
  background: linear-gradient(to bottom, transparent, rgba(155,48,232,.25) 30%, rgba(155,48,232,.25) 70%, transparent);
}
.tc-vs {
  border: 1.5px solid rgba(155,48,232,.3);
  box-shadow: 0 0 28px rgba(155,48,232,.18);
}
#hl-stats::before {
  background: radial-gradient(ellipse 55% 70% at 50% 0%, rgba(155,48,232,.07) 0%, transparent 70%);
}
.bsg-card:hover {
  background: rgba(155,48,232,.06);
  border-color: rgba(155,48,232,.2);
}
#hl-practice::before {
  background: radial-gradient(ellipse 80% 55% at 50% 110%, rgba(155,48,232,.09) 0%, transparent 60%);
}
.ps-step::after {
  -webkit-text-stroke: 1px rgba(155,48,232,.07);
}
.ps-step:hover {
  background: rgba(155,48,232,.06);
  border-color: rgba(155,48,232,.2);
  box-shadow: 0 24px 60px rgba(155,48,232,.13);
}
.ps-num {
  background: rgba(155,48,232,.1);
  border: 1px solid rgba(155,48,232,.2);
}
.ps-icon {
  background: radial-gradient(circle, rgba(155,48,232,.2) 0%, rgba(155,48,232,.05) 70%, transparent 100%);
  border: 1.5px solid rgba(155,48,232,.28);
}
.ps-step:hover .ps-icon {
  background: radial-gradient(circle, rgba(155,48,232,.32) 0%, rgba(155,48,232,.1) 70%, transparent 100%);
  border-color: rgba(155,48,232,.55);
  box-shadow: 0 0 32px rgba(155,48,232,.25);
}
.why-card:hover {
  background: rgba(155,48,232,.07);
  border-color: rgba(155,48,232,.25);
}
.wc-icon {
  background: rgba(155,48,232,.12);
}
.psg-item::after {
  background: linear-gradient(to top, rgba(155,48,232,.5) 0%, rgba(0,0,0,.15) 40%, transparent 70%);
}
#hl-quote::before {
  -webkit-text-stroke: 1px rgba(155,48,232,.04);
}
.explore-card:hover {
  border-color: rgba(155,48,232,.3);
}
.fq-card:hover {
  border-color: rgba(155,48,232,.15);
}
.fq-card.featured {
  border-color: rgba(155,48,232,.3);
}
.tc-range::-webkit-slider-thumb {
  box-shadow: 0 0 14px rgba(155,48,232,.65), 0 2px 6px rgba(0,0,0,.4);
}
.tc-range::-moz-range-thumb {
  box-shadow: 0 0 14px rgba(155,48,232,.65);
}
.temp-concept-grid.heat-hot .tc-side.hot { /* temperature → gold */
  box-shadow: 6px 0 80px rgba(255,182,39,.3), inset 0 0 80px rgba(255,182,39,.1);
}
.bsg-thermo-fill {
  box-shadow: 0 0 10px rgba(155,48,232,.45);
}

/* ══ css/hub.css ══ */
.hub-hero-glow {
  background: radial-gradient(circle, rgba(155,48,232,.13) 0%, transparent 62%);
}
.tc-range::-webkit-slider-thumb {
  box-shadow: 0 0 14px rgba(155,48,232,.65), 0 2px 6px rgba(0, 0, 0, .4);
}
.tc-range::-moz-range-thumb {
  box-shadow: 0 0 14px rgba(155,48,232,.65);
}
.tc-side.hot { /* temperature → gold */
  background: linear-gradient(210deg, rgba(255,182,39,.1) 0%, rgba(255,182,39,.03) 50%, transparent 100%);
  border: 1.5px solid rgba(255,182,39,.22);
  box-shadow: 6px 0 40px rgba(255,182,39,.08), inset 0 0 80px rgba(255,182,39,.03);
}
.tc-side.hot:hover { /* temperature → gold */
  box-shadow: 6px 0 60px rgba(255,182,39,.15), inset 0 0 80px rgba(255,182,39,.05);
}
.tc-side.hot::after { /* temperature → gold */
  background: radial-gradient(circle, rgba(255,182,39,.12) 0%, transparent 70%);
}
.tc-heading-icon.hot {
  background: rgba(155,48,232,.18);
}
.tc-icon.hot { /* temperature → gold */
  background: rgba(255,182,39,.2);
}
.tc-vs-line {
  background: linear-gradient(to bottom, transparent, rgba(155,48,232,.25) 30%, rgba(155,48,232,.25) 70%, transparent);
}
.tc-vs {
  border: 1px solid rgba(155,48,232,.3);
}
.temp-concept-grid.heat-hot .tc-side.hot { /* temperature → gold */
  box-shadow: 6px 0 80px rgba(255,182,39,.3), inset 0 0 80px rgba(255,182,39,.1);
}
.hub-stat {
  background: linear-gradient(160deg, rgba(155,48,232,.06), transparent);
  border: 1px solid rgba(155,48,232,.15);
}
.hub-step:hover {
  border-color: rgba(155,48,232,.3);
}
.hub-oneq {
  background: radial-gradient(circle at 50% 0%, rgba(155,48,232,.1), transparent 70%);
  border: 1px solid rgba(155,48,232,.2);
}
.hub-rel-card:hover {
  border-color: rgba(155,48,232,.3);
}
.np-tab:hover {
  border-color: rgba(155,48,232,.35);
}
.cond-trigger-icon {
  background: rgba(155,48,232,.15);
}

/* ══ css/quiz.css ══ */
:root { /* temperature → gold */
  --hot: #FFB627;
  --warm: #FFB627;
}
#nav {
  border-bottom: 1px solid rgba(155,48,232,.08);
}
.intro-band-hot { /* temperature → gold */
  background: #FFF6E6;
}
.dim-badge {
  background: #F6EEFC;
}
.opt-card:hover {
  box-shadow: 0 4px 14px rgba(155,48,232,0.12);
}
.opt-card.selected {
  box-shadow: 0 4px 16px rgba(155,48,232,0.15);
}
.btn.btn-fire {
  background: linear-gradient(140deg, #9B30E8 0%, #C55CFF 100%);
}
.pill-hot { /* temperature → gold */
  background: #FFF6E6;
}
.btt-rail {
  background: linear-gradient(to right, var(--cold), #FFB627, var(--hot));
}
.ibc-hot { /* temperature → gold */
  background: #FFF6E6;
  border-color: rgba(255,182,39,.2);
}
.results-next {
  border-top: 1px solid rgba(155,48,232,.12);
}
.rn-waitlist-card {
  background: rgba(155,48,232,.06);
  border: 1px solid rgba(155,48,232,.2);
}
.rn-waitlist-input {
  border: 1.5px solid rgba(155,48,232,.3);
}
.rn-waitlist-input:focus {
  border-color: #9B30E8;
}
.rn-waitlist-btn {
  border: 1.5px solid rgba(155,48,232,.5);
  color: #9B30E8;
}
.rn-waitlist-btn:hover {
  background: #9B30E8;
}

/* ══ css/thank-you.css ══ */
#nav {
  border-bottom: 1px solid rgba(155,48,232,.08);
}
main::before {
  background: radial-gradient(ellipse 60% 70% at 50% 60%, rgba(155,48,232,.12) 0%, transparent 65%);
}
.ty-icon {
  box-shadow: 0 0 48px rgba(155,48,232,.45);
}
.ty-next {
  border: 1px solid rgba(155,48,232,.15);
}
.ty-step-num {
  background: rgba(155,48,232,.15);
  border: 1px solid rgba(155,48,232,.3);
}

/* ══ css/gallery.css ══ */
#gallery-hero::before {
  background: radial-gradient(ellipse 60% 55% at 50% 80%, rgba(155,48,232,.1) 0%, transparent 70%);
}

/* ═══════════════════════════════════════════
   GOLD & VIOLET — brand and partner swapped.
   Layered on top of Option A+, so it keeps all
   of A+'s per-page coverage and its cold-blue.
   Gold leads, violet supports.

   Two consequences worth knowing:
   · Gold on the dark grounds is 10.6-11.4:1 —
     roughly three times violet's 3.8, so this is
     the most legible of the four options.
   · Gold on cream is 1.6:1, unusable. The cream
     sections take a deep amber instead, and gold
     surfaces carry near-black text, not white.
═══════════════════════════════════════════ */

/* ── The swap ─────────────────────────────── */
:root {
  --fire:    #FFB627;   /* brand   — gold on dark */
  --fire-hi: #FFD07A;
  --gold:    #B85CFF;   /* partner — violet       */
}
/* On cream, gold cannot lead — it needs darkening to ~#8F5A00 to stay
   legible, and that is simply a brown. Worse, the site pairs --fire with
   --gold in ~20 gradients, and amber->violet interpolates straight through
   #92503A (hue 15) — visible mud on the testimonial avatars, quote marks
   and FAQ numerals. So the light sections hand the lead back to violet and
   take a purple-magenta partner: vivid, no brown, white stays legible
   across the whole ramp (4.5:1 at its worst point). */
#problem, #process, #testimonials, #about, #booking, #quiz-teaser,
#hl-testimonials, #hl-faq, body[data-calendly-url] {
  --fire:    #9B30E8;   /* brand   — violet   (4.77:1 on cream) */
  --fire-hi: #7E1FBF;
  --gold:    #C13BBF;   /* partner — purple-magenta             */
}

/* ── Gold surfaces take near-black text ──────
   White on #FFB627 is 1.75:1. Near-black is 10.71:1,
   and a gold button with dark type reads more premium
   than a washed-out white one. */
/* .btn.btn-fire (0,2,0) — quiz.css declares it globally for the mobile
   menu button, so it outranks a plain .btn-fire and has to be matched. */
.btn-fire, .btn.btn-fire {
  background: linear-gradient(140deg, #FFB627 0%, #FFD07A 100%);
  color: #1A1000;
  box-shadow: 0 8px 32px rgba(255,182,39,.4), inset 0 1px 0 rgba(255,255,255,.28);
}
.btn-fire:hover {
  box-shadow: 0 14px 48px rgba(255,182,39,.6), inset 0 1px 0 rgba(255,255,255,.32);
}
.nav-book { border-color: rgba(255,182,39,.6); color: #FFB627; }
.nav-book:hover {
  background: #FFB627; border-color: #FFB627; color: #1A1000;
  box-shadow: 0 0 24px rgba(255,182,39,.5);
}
.f-soc:hover { background: #FFB627; border-color: #FFB627; color: #1A1000; }
#marquee { background: #FFB627; }
#marquee .m-item, .m-item { color: #1A1000; }

/* ── CTA banner stays violet ─────────────────
   A full-bleed gold panel cannot carry white text. Violet
   can (10.7:1), so the banner becomes the partner's moment
   and gold rises through it as the glow. */
#cta-fire {
  background: linear-gradient(135deg, #2E0850 0%, #5B1A8A 45%, #7A1FC4 100%);
}
#cta-fire::before {
  background: radial-gradient(ellipse 65% 95% at 50% 100%, rgba(255,182,39,.4) 0%, transparent 68%);
}

/* ── Temperature stays gold ──────────────────
   --gold now holds violet, so the hot side is pinned to
   the literal. Brand and heat being the same colour is
   on-message here: the whole proposition is "lead hot". */
.tc-heading.hot, .tc-heading-icon.hot, .tc-icon.hot,
.tc-sl-label.right { color: #FFB627; }
.st-card.hot .st-badge, .st-moment.hot .st-badge { color: #FFB627; }
.td-track {
  background: linear-gradient(90deg, var(--cold) 0%, rgba(184,92,255,.3) 50%, #FFB627 100%);
}

/* ── Quiz: brand action on a light page ────── */
body[data-calendly-url] .btn-intro,
body[data-calendly-url] .btn-primary { background: #9B30E8; color: #fff; }
body[data-calendly-url] .locked-cta { border-color: #9B30E8; color: #9B30E8; }
body[data-calendly-url] .locked-cta:hover { background: #9B30E8; color: #fff; }

/* ── Process step icons: gold disc, dark glyph ──
   The step icons sit on white cards in a light section. A gold disc cannot
   carry a white glyph (1.75:1), so the glyphs flip to near-black (10.7:1) —
   the same pairing the primary buttons already use. Targeted by the fill
   attribute because two of the three icons are strokes and one is a fill;
   colouring both properties blindly would flood the stroked ones solid. */
.step-icon {
  background: linear-gradient(135deg, #FFB627 0%, #FFD07A 100%);
  box-shadow: 0 6px 20px rgba(255,182,39,.38);
}
.step:hover .step-icon { box-shadow: 0 10px 30px rgba(255,182,39,.52); }
.step-icon svg[fill="none"]  { stroke: #1A1000; }
.step-icon svg[fill="white"] { fill: #1A1000; }

/* ═══════════════════════════════════════════
   NO GRADIENT TEXT
   Every headline, numeral and pull-quote that
   was painted with a clipped gradient becomes a
   single flat colour. It resolves through --fire,
   so each one still picks gold on the dark
   sections and violet on the light ones.
   Gradients on shapes (icons, avatars, rules)
   are untouched — only type is flattened.
═══════════════════════════════════════════ */
.pq-open,
.pq-text em,
.t-q-mark,
.hero-headline .line3,
.h-stat-val,
.stat-num,
.services-num,
.big-num,
.hl-hero-h1 .accent,
.tv-vs,
.tc-vs,
.bsg-num,
.sic-text em,
.fq-num,
#hub-hero h1 .fire-word,
.hub-stat-num,
#gallery-hero h1 em,
.ty-heading em,
.sh-inner h1 {
  background: none;
  -webkit-text-fill-color: var(--fire);
  color: var(--fire);
}

/* These two headlines are styled with inline style attributes in index.html
   rather than from a stylesheet, so nothing in a theme file can outrank them
   without !important. Targeted by their data-cms keys, which are stable. */
[data-cms="index.one-question.heading"],
[data-cms="index.quiz-teaser.heading-gradient"] {
  background: none !important;
  -webkit-text-fill-color: var(--fire) !important;
  color: var(--fire) !important;
}
