/*
  Final dark-surface contrast guardrail.

  Readable copy on Primary Navy and Dark Green must render White at full opacity.
  Carolina Blue may be used as a deliberate accent on Primary Navy where it clears
  contrast requirements. Copper, Steel, Flat Gray, Mist, and translucent White are
  not acceptable readable text colors on dark surfaces.
*/

/* Primary navigation sits on the Primary Navy header. */
.rr-v2 .nav-list > li > a,
.rr-v2 .nav-trigger {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

@media (max-width: 1100px) {
  .rr-v2 .site-nav .nav-menu a {
    color: var(--rr-white) !important;
    opacity: 1 !important;
  }
}

/* Homepage Primary Navy surfaces. */
.rr-v2 .home-hero .hero-copy h1,
.rr-v2 .home-hero .hero-lede,
.rr-v2 .home-hero .hero-promise,
.rr-v2 .home-hero .system-readout p,
.rr-v2 .home-hero .home-hero__route strong,
.rr-v2 .home-hero .home-hero__route small,
.rr-v2 .proof-bar .proof-grid span,
.rr-v2 .evidence-panel .evidence-row dt {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Homepage Difference intro sits on Primary Navy while the explorer remains light. */
.rr-v2.route-home .rr-difference__intro h2,
.rr-v2.route-home .rr-difference__intro p {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Series A featured card: every readable text element is White. */
.rr-v2.route-home .rr-growth-stage__card--featured > span,
.rr-v2.route-home .rr-growth-stage__card--featured h3,
.rr-v2.route-home .rr-growth-stage__card--featured p,
.rr-v2.route-home .rr-growth-stage__card--featured strong,
.rr-v2.route-home .rr-growth-stage__card--featured a,
.rr-v2.route-home .rr-growth-stage__card--featured small {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Active homepage/blog carousel cards are dark and must not mute their readable copy. */
.rr-v2.route-home .intervention-card.is-active :where(h1, h2, h3, h4, p, span, strong, small, a),
.blog-carousel-scope .intervention-card.is-active :where(h1, h2, h3, h4, p, span, strong, small, a) {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Primary Navy implementation and story surfaces. */
.rr-v2 .intervention-section > .shell > h2,
.rr-v2 .intervention-section .intervention-lede,
.rr-v2 .intervention-section .intervention-row h3,
.rr-v2 .intervention-section .intervention-row p,
.rr-v2 .intervention-section .intervention-note,
.rr-v2 .case-chain-entry h3,
.rr-v2 .case-chain-entry p,
.rr-v2 .brand-thesis .brand-word,
.rr-v2 .brand-thesis p,
.rr-v2 .page-hero h1,
.rr-v2 .page-hero .page-hero-side p,
.rr-v2 .article-header h1,
.rr-v2 .article-header .article-meta,
.rr-v2 .rr-stage-signal p,
.rr-v2 .home-close h2,
.rr-v2 .home-close p {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Dark Green story surfaces. */
.rr-v2 .case-chain-overhaul h3,
.rr-v2 .case-chain-overhaul p {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/*
  Shared Primary Navy and Dark Green sections.
  These selectors target copy that is transparent on the section surface, without
  turning text inside nested White/Mist cards into White-on-White.
*/
.rr-v2 .section--navy > .shell > :where(h1, h2, h3, h4, p, blockquote),
.rr-v2 .section--green > .shell > :where(h1, h2, h3, h4, p, blockquote),
.rr-v2 .section--navy .section-heading h2,
.rr-v2 .section--navy .section-heading > p,
.rr-v2 .section--navy .section-heading > div > p:last-child,
.rr-v2 .section--green .section-heading h2,
.rr-v2 .section--green .section-heading > p,
.rr-v2 .section--green .section-heading > div > p:last-child,
.rr-v2 .section--navy .sticky-heading h2,
.rr-v2 .section--green .sticky-heading h2,
.rr-v2 .section--navy .method-grid h3,
.rr-v2 .section--navy .method-grid p,
.rr-v2 .section--green .method-grid h3,
.rr-v2 .section--green .method-grid p,
.rr-v2 .section--navy .content-stack h2,
.rr-v2 .section--navy .content-stack h3,
.rr-v2 .section--navy .content-stack p,
.rr-v2 .section--navy .content-stack li,
.rr-v2 .section--green .content-stack h2,
.rr-v2 .section--green .content-stack h3,
.rr-v2 .section--green .content-stack p,
.rr-v2 .section--green .content-stack li,
.rr-v2 .section--navy .result-copy h2,
.rr-v2 .section--navy .result-copy p,
.rr-v2 .section--green .result-copy h2,
.rr-v2 .section--green .result-copy p,
.rr-v2 .section--navy .result-ledger dd,
.rr-v2 .section--green .result-ledger dt,
.rr-v2 .section--green .result-ledger dd,
.rr-v2 .section--navy .decision-path h3,
.rr-v2 .section--navy .decision-path p,
.rr-v2 .section--green .decision-path h3,
.rr-v2 .section--green .decision-path p,
.rr-v2 .section--navy .comparison-table th,
.rr-v2 .section--navy .comparison-table td,
.rr-v2 .section--green .comparison-table th,
.rr-v2 .section--green .comparison-table td,
.rr-v2 .section--navy details.disclosure summary,
.rr-v2 .section--navy details.disclosure > div,
.rr-v2 .section--navy details.faq summary,
.rr-v2 .section--navy details.faq > div,
.rr-v2 .section--green details.disclosure summary,
.rr-v2 .section--green details.disclosure > div,
.rr-v2 .section--green details.faq summary,
.rr-v2 .section--green details.faq > div,
.rr-v2 .section--navy .resource-item h2,
.rr-v2 .section--navy .resource-item h3,
.rr-v2 .section--navy .resource-item p,
.rr-v2 .section--green .resource-item h2,
.rr-v2 .section--green .resource-item h3,
.rr-v2 .section--green .resource-item p,
.rr-v2 .section--navy .clean-list li,
.rr-v2 .section--green .clean-list li,
.rr-v2 .section--dark :where(h1, h2, h3, h4, p, li, dt, dd, a),
.rr-v2 .section--carbon :where(h1, h2, h3, h4, p, li, dt, dd, a),
.rr-v2 .rr-keeper-build :where(h1, h2, h3, h4, p, li, dt, dd, a),
.rr-v2 .control-band :where(h1, h2, h3, h4, p, li, dt, dd, a) {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Navy can keep Carolina Blue as a compliant accent; Copper is too low-contrast here. */
.rr-v2 .section--navy .decision-path > article > span {
  color: var(--rr-carolina-blue) !important;
  opacity: 1 !important;
}

/* On Dark Green, even Carolina Blue is too low-contrast, so textual accents are White. */
.rr-v2 .section--green .decision-path > article > span,
.rr-v2 .section--green .result-ledger dt {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Stage pages: every textual element sitting directly on a dark stage surface is White. */
.rr-v2.route-stage .rr-stage-signal :where(h1, h2, h3, h4, p, span, strong, small, a),
.rr-v2.route-stage .section--navy .rr-stage-deliverables :where(h1, h2, h3, h4, p, span, strong, small, a),
.rr-v2.route-stage .rr-stage-next__card[aria-current="page"] :where(h1, h2, h3, h4, p, span, strong, small, a) {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Stage deliverables are placed on a dark stage section. */
.rr-v2 .rr-stage-section-head--light h2,
.rr-v2 .rr-stage-section-head--light p,
.rr-v2 .rr-stage-deliverables h3,
.rr-v2 .rr-stage-deliverables p {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Process-page dark surfaces. */
.rr-v2.route-process .rr-process-hero :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small),
.rr-v2.route-process .rr-process-working :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small),
.rr-v2.route-process .rr-process-step[open] > summary :where(span, strong, small) {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Pricing, proof, CTA, and footer dark surfaces. */
.rr-v2 .pricing-decision :where(h2, h3, p, a),
.rr-v2 .cta-panel :where(h2, h3, p, a),
.rr-v2 .rr-proof-band :where(h1, h2, h3, h4, p, li, dt, dd, a),
.rr-v2 .final-cta h2,
.rr-v2 .final-cta p,
.rr-v2 .site-footer p,
.rr-v2 .site-footer .footer-column h2,
.rr-v2 .site-footer .footer-column a,
.rr-v2 .site-footer .footer-bottom,
.rr-v2 .site-footer .footer-bottom span {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Assessment headers/results that use Primary Navy. */
.rr-v2 .assessment-section > header :where(h1, h2, h3, h4, p, span, strong, small, a),
.rr-v2 .assessment-results :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small) {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* About-page dark surfaces. */
.rr-v2 .about-hero__statement p,
.rr-v2 .about-team-panel h3,
.rr-v2 .about-team-panel p,
.rr-v2 .about-section--dark :where(h1, h2, h3, h4, p, li, dt, dd, a),
.rr-v2 .about-final-statement p {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Results: dark hero and dark written-case-study chapters are always full-opacity White. */
body.systems-proof--final .t6-hero :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small),
body.systems-proof--final .case-study-chapter--green :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small),
body.systems-proof--final .case-study-chapter--navy :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small),
body.systems-proof--final .site-footer p,
body.systems-proof--final .site-footer .footer-column h2,
body.systems-proof--final .site-footer .footer-column a,
body.systems-proof--final .site-footer .footer-bottom,
body.systems-proof--final .site-footer .footer-bottom span {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Results: only the dark Before state is normalized; Rooted and After stay light. */
.systems-proof--final .t6-system-map[data-map-state-value="before"] {
  --t6-map-text: var(--rr-white) !important;
  --t6-map-muted: var(--rr-white) !important;
}

.systems-proof--final .t6-dialog-pane--before,
.systems-proof--final [data-modal-stage="before"] {
  --t6-pane-text: var(--rr-white) !important;
  --t6-pane-muted: var(--rr-white) !important;
}

.systems-proof--final .t6-hero :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small),
.systems-proof--final .t6-finding :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, small) {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* Client Results exact dark-surface overrides. These intentionally outrank legacy case-study colors. */
body.systems-proof.systems-proof--final.systems-overhaul-page .t6-hero .t6-kicker,
body.systems-proof.systems-proof--final.systems-overhaul-page .t6-hero .t6-hero__lede,
body.systems-proof.systems-proof--final.systems-overhaul-page .t6-hero .t6-trust-list li,
body.systems-proof.systems-proof--final.systems-overhaul-page .t6-hero .t6-hero__proof span,
body.systems-proof.systems-proof--final.systems-overhaul-page .t6-hero .t6-hero__proof p,
body.systems-proof.systems-proof--final.systems-overhaul-page .t6-system-map[data-map-state-value="before"] .t6-map-core > span,
.rr-v2.systems-proof--final.case-study-written-wrapper .case-study-trigger > strong,
.rr-v2.systems-proof--final.case-study-written-wrapper .case-study-trigger > p {
  color: var(--rr-white) !important;
  opacity: 1 !important;
}

/* The assessment result CTA is a White button on a dark result surface. */
.rr-v2 .assessment-results a.button.button--light[data-assessment-cta],
.rr-v2 .assessment-results a.button.button--light[data-assessment-cta]:hover {
  color: var(--rr-primary-navy) !important;
  opacity: 1 !important;
}
