:root {
    --brand-text-navy: #0b2a56;
    --brand-text-muted: rgb(11 42 86 / 72%);
    --brand-text-subtle: rgb(11 42 86 / 58%);

    --fm-navy: var(--brand-text-navy);
    --fm-navy-deep: var(--brand-text-navy);
    --fm-ink: var(--brand-text-navy);
    --fm-muted: var(--brand-text-muted);

    --geo-ink: var(--brand-text-navy);
    --geo-navy: var(--brand-text-navy);
    --geo-navy-deep: var(--brand-text-navy);
    --geo-muted: var(--brand-text-muted);

    --evidence-ink: var(--brand-text-navy);
    --evidence-navy: var(--brand-text-navy);
    --evidence-navy-deep: var(--brand-text-navy);
    --evidence-muted: var(--brand-text-muted);
}

/* Shared navigation and footer copy. Article body content is intentionally not targeted. */
.fm-nav a,
.fm-footer,
.fm-footer__links a,
.fm-footer__contact a,
.fm-footer__contact p,
.fm-footer__qr figcaption {
    color: var(--brand-text-muted);
}

.fm-brand__copy small,
.fm-footer__contact span,
.fm-footer__brand > p,
.fm-footer__login p,
.fm-footer__bottom {
    color: var(--brand-text-subtle);
}

/* Homepage text shades all originate from the logo navy. */
.geo-trial-assurance,
.geo-question__copy > p,
.geo-principle span,
.geo-query-board__answer,
.geo-loop-steps li,
.geo-loop-graphic > figcaption,
.geo-engine__difference p,
.geo-media__strength,
.geo-media__portal p,
.geo-diagnosis__copy li,
.geo-diagnosis__expectation {
    color: var(--brand-text-muted);
}

.geo-loop-disclaimer,
.geo-dual-loop__core small,
.geo-dual-loop__lane-header span,
.geo-dual-loop__step small,
.geo-client-proof__intro,
.geo-field input::placeholder,
.geo-field textarea::placeholder {
    color: var(--brand-text-subtle);
}

/* Product and evidence page navigation follows the same blue-derived scale. */
.geo-product-nav a,
.geo-breadcrumb {
    color: var(--brand-text-muted);
}

/* Legacy news-list breadcrumb keeps its hierarchy without falling back to neutral grey. */
.fm-site .breadcrumb.c-707072 {
    color: var(--brand-text-subtle);
}

.evidence-page :where(h1, h2, h3, h4, h5, h6, p, a, span, strong, b, small, li, summary, th, td, figcaption, label, button) {
    color: var(--brand-text-navy);
}

.evidence-page .fm-skip-link,
.evidence-page .evidence-hero__visual figcaption,
.evidence-page .evidence-index article:nth-child(1) :where(h3, p, a),
.evidence-page .evidence-callout :where(h2, h3, p) {
    color: #ffffff;
}
