/* WCAG AA contrast pass — 2026-06-10
   The legacy + V2 dark theme used rgba(255,255,255,0.45) / 0.55 for
   secondary text and small caption text. Against #0a1424 background
   that lands around 2.8:1 and 3.5:1 respectively — both fail AA
   (4.5:1 normal text, 3:1 large text).

   This override file ratchets every secondary-text rgba up to a level
   that meets AA on the brand dark backgrounds. Brought in after all
   other CSS so it wins specificity ties without !important spam. */

:root {
    /* Tuned for #0a1424 / #0d1d2c / #122436 backgrounds.
       0.72 on (10,20,36) ≈ 4.7:1 — passes AA normal text.
       0.86 on dark      ≈ 6.5:1 — passes AAA normal.
       0.58 + 13px+ font ≈ 3.4:1 — passes AA large only. */
    --v2-ink-2:  rgba(255,255,255,0.86);
    --v2-muted:  rgba(255,255,255,0.72);
}

/* Page-scoped overrides — older custom inline rgba's. Targeting common
   patterns we know exist site-wide. */

.dashv2__hero p,
.dashv2__cta-band span,
.report-card__meta,
.hv2__head p,
.hv2-card__meta,
.alv2__head p,
.alv2-card p,
.alv2-card__date,
.dynv2__head p,
.dynv2__chart-head p,
.adv2__excerpt,
.adv2__meta,
.pv2__hero p,
.pv2__desc,
.pv2__features li,
.pv2__features-disabled,
.pv2__note span,
.pv2__doctor-cta p,
.adv2__cross-sell span,
.upload-v2__crosslink span {
    color: rgba(255,255,255,0.86) !important;
}

.dashv2__quota small,
.dashv2__quota em,
.tile p,
.report-card__meta,
.report-card__meta i + *,
.status,
.dynv2__chart-card--empty,
.dynv2__legend-item small,
.dynv2__picker-count,
.dynv2__axis,
.hv2-card__meta,
.hv2__no-match,
.alv2-card__date,
.alv2__no-match,
.adv2__crumb,
.adv2__crumb a:not(:hover),
.adv2__meta,
.adv2__disclaimer p,
.pv2__features li,
.pv2__note span,
.pv2__doctor-cta p,
.v2-hero__trust,
.v2-trust-item small,
.v2-press-label,
.v2-section-lead,
.v2-aud-card p,
.v2-bullets li,
.v2-chart-card__title,
.v2-chart-card__note,
.v2-lang-card p,
.v2-security-card p,
.v2-price-card__period,
.v2-price-card__desc,
.v2-price-card__features li,
.v2-faq__answer,
.v2-final-cta p,
.v2-disclaimer p,
.v2-demo__sub {
    color: rgba(255,255,255,0.78) !important;
}

/* Caption-class small labels — push to 0.72 minimum */
.ds-stat__label,
.dashv2__quota small,
.report-v2-meta__item small,
.report-v2-risk small {
    color: rgba(255,255,255,0.72) !important;
}

/* Focus rings — visible keyboard focus everywhere. WCAG SC 2.4.7. */
*:focus-visible {
    outline: 2px solid #00D4AA;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Buttons / links specifically need a softer focus to avoid double-ring */
.v2-btn:focus-visible,
.ds-btn:focus-visible,
.btn-primary:focus-visible,
.tile:focus-visible,
.report-card:focus-visible,
.hv2-card:focus-visible,
.alv2-card:focus-visible,
.dashv2__alert:focus-visible,
.adv2__cross-btn:focus-visible,
.hv2__upload-btn:focus-visible,
.dynv2__upload-btn:focus-visible {
    outline: 2px solid #00D4AA;
    outline-offset: 3px;
}

/* Form field focus styling */
.ds-input:focus-visible,
.ds-select:focus-visible,
.ds-textarea:focus-visible,
.hv2__search input:focus-visible,
.alv2__search input:focus-visible {
    outline: 2px solid #00D4AA;
    outline-offset: 0;
    border-color: #00D4AA !important;
}

/* Skip-to-content link, visible only on focus — for screen reader / kb users */
.mediora-skip-link {
    position: absolute;
    left: -9999px; top: 0;
    background: #00D4AA; color: #0a1424;
    padding: 10px 16px;
    border-radius: 0 0 8px 0;
    font-weight: 700;
    z-index: 9999;
}
.mediora-skip-link:focus-visible {
    left: 0;
    outline: 3px solid #fff;
    outline-offset: 0;
}
