/* ============================================================
   MINTWURKS — contrast polish
   Loaded LAST on every page, so these win over any page stylesheet.
   Purpose: the dark sections are now tinted with the logo's indigo-to-teal
   range rather than flat black, which lifts their luminance slightly. These
   rules re-tune the accents that sit on those surfaces (lighter) and the ones
   on paper/cream (darker) so every label clears WCAG AA. Values were chosen
   by measuring computed contrast in a browser, not by eye.
   ============================================================ */

/* Wordmark and accents on the deep footer / dark bands — lightened */
.footer-brand-name .mint { color: var(--purple-on-dark); }
.footer-brand-name .wurks { color: var(--teal-on-dark); }
.footer-brand p a { color: rgba(255,255,255,0.8); }
.band-ink .band-link, .band-ink .ml-role { color: var(--teal-on-dark); border-color: var(--teal-on-dark); }

/* Accent links on paper / cream — darkened */
.pc-link, .spec-link, .band-link, .tb-link, .cb-link { color: #155c4f; }
.pc-link { border-color: #155c4f; }
.spec-link { border-bottom-color: #155c4f; }
.band-link { border-bottom-color: #155c4f; }
.pc-link:hover, .spec-link:hover, .band-link:hover { color: var(--purple-dark); border-color: var(--purple-dark); }

/* Outline buttons and tags on light surfaces */
.btn-ghost-dark { color: var(--purple-dark); border-color: var(--purple-dark); }
.btn-ghost-dark:hover { background: var(--purple-dark); color: #fff; }
.pr-benefit { color: var(--purple-dark); }
.prod-row.dark .pr-benefit { color: #EBD79A; background: rgba(184,134,11,0.18); border-color: rgba(229,213,168,0.35); }
.ph-badge.active-b { color: var(--purple-on-dark); border-color: rgba(229,213,168,0.55); background: rgba(184,134,11,0.16); }
.wa-btn { color: #0f7a3a; }
.wa-btn:hover { background: rgba(15,122,58,0.06); }

/* Body copy that inherits a faded ink token */
.mission-grid p, .mv-card p { color: var(--ink-70); }

/* Same accents where they sit INSIDE a dark card or band — lightened instead */
.prod-card.featured .pc-link { color: var(--teal-on-dark); border-color: var(--teal-on-dark); }
.prod-card.featured .pc-link:hover { color: #fff; border-color: #fff; }
.cta-band .btn-ghost-dark, .band-ink .btn-ghost-dark, .future-block .btn-ghost-dark,
.trading-terms .btn-ghost-dark, .story .btn-ghost-dark {
  color: var(--purple-on-dark); border-color: var(--purple-on-dark);
}
.cta-band .btn-ghost-dark:hover, .band-ink .btn-ghost-dark:hover, .future-block .btn-ghost-dark:hover,
.trading-terms .btn-ghost-dark:hover, .story .btn-ghost-dark:hover { background: var(--purple-on-dark); color: #0D2A2A; }


/* Final three, measured: timeline body copy, the active product badge and the
   WhatsApp label were each a little under 4.5:1 on their own surface. */
.story .tl-body p, .story .tl-body h4 { color: rgba(255,255,255,0.82); }
.ph-badge.active-b { color: #c6c6f7; }
.wa-btn, .wa-btn span { color: #0b6b32; }
.ph-left .ph-badge.active-b, .ph-badge.active-b { color: #F2E2AE; border-color: rgba(242,226,174,0.6); background: rgba(184,134,11,0.22); }

/* ── Lighter deep surfaces (brightened brand tint) need brighter type on top.
   Values measured against the lightest stop of the gradient, so they hold
   everywhere on the band, not just at the top. ── */
.footer-brand-name .mint { color: #F2E2AE; }
.footer-brand-name .wurks { color: #EBD79A; }
.fc h5 { color: rgba(255,255,255,0.8); }
.fc a { color: rgba(255,255,255,0.88); }
.footer-bottom p, .footer-bottom .year { color: rgba(255,255,255,0.8); }
.footer-legal a { color: rgba(255,255,255,0.85); }
.footer-brand p { color: rgba(255,255,255,0.85); }
.ticker-item { color: rgba(255,255,255,0.85); }

/* Dark product rows, framework and dossier detail on the standards page */
.prod-row.dark .sl-lbl, .prod-row.dark .sl-val { color: rgba(255,255,255,0.85); }
.prod-row.dark .pr-benefit { color: #F2E2AE; }
.framework .fw-code, .framework .fw-desc, .framework .fw-title { color: rgba(255,255,255,0.88); }
.dossier .dl-desc, .dossier .dl-title, .dossier .conf-note span { color: rgba(255,255,255,0.85); }
.band-ink a, .framework a,
.fw-desc a, .approach a { color: #EBD79A; border-bottom-color: #EBD79A; }
.band-ink .band-head p, .band-ink .ml-note, .band-ink .map-caption { color: rgba(255,255,255,0.82); }
/* Only the dark CTA bands — the Products page CTA sits on cream and keeps its ink copy. */
.cta-simple p { color: rgba(255,255,255,0.82); }
.btn-ghost-light { border-color: rgba(242,226,174,0.6); color: #fff; }
.mock-card .mc-head span { color: rgba(255,255,255,0.85); }
.fw-head p { color: rgba(255,255,255,0.82); }
.fw-head p a { color: #EBD79A; border-bottom-color: #EBD79A; }

/* Dark CTA / promise bands carry white copy; the Products CTA is a cream
   section, so it is matched by background rather than by class name. */
.promise-band p, .promise-band h2 { color: rgba(255,255,255,0.86); }

/* Dark CTA bands carry white copy. The Products page CTA is a cream section,
   so it is excluded by page class rather than by a blanket rule. */
body:not(.page-products) .cta-band p { color: rgba(255,255,255,0.86); }
body:not(.page-products) .cta-band h2 { color: var(--paper); }

/* ── Gradient-filled type on the DEEP surfaces uses the bright gradient.
   Selectors mirror the page stylesheets exactly so they win on specificity;
   the same devices on paper/cream keep the standard brand gradient. ── */
.hero-h1 .line:nth-child(3) span,
.hero-left .tt-eyebrow, .hero-left .aside-num,
.trading-terms h2 i, .trading-terms .tt-header h2 i, .trading-terms .tt-eyebrow, .trading-terms .tt-code,
.story .story-left .eyebrow, .story .story-left h2 i, .story .sec-num,
.future-block .fb-eyebrow,
.promise-band .grad-text, .promise-band h2 i,
.about-hero .as-num, .about-stats .as-num,
.ph-left .ph-h1 i, .ph-left .ph-eyebrow,
.prod-row.dark .pr-title i,
.prod-card.featured .pc-name .accent, .prod-card.featured h3 i,
.band-ink .band-head h2 i, .cta-simple h2 i,
body:not(.page-products) .cta-band h2 i {
  background: var(--grad-bright);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* The trading-term codes were set in Instrument Sans at weight 900, which that
   family does not ship (it stops at 700), so browsers synthesised a fake bold.
   They now use Playfair 900 italic — the same treatment the identical codes get
   on the Products page. */
.tt-code { font-family: 'Playfair Display', serif; }
