/* FutureSupps v1.2.30 — WCAG-oriented public accessibility fixes. */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.skip-link {
    position: fixed;
    z-index: 100000;
    top: 10px;
    left: 10px;
    padding: 12px 16px;
    border-radius: 4px;
    background: #fff;
    color: #052f78;
    font-weight: 800;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .22);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #07152d !important;
}

.nav-toggle { min-width: 44px; min-height: 44px; }
.accessibility-tools button,
.slider-arrow,
.age-gate button { min-width: 44px; min-height: 44px; }

/* The cyan catalogue label failed automated contrast testing on white. */
.catalog-card > .pill { color: #0752bd; }

/* The default blue eyebrow failed contrast testing against the dark profile panel. */
.profile-body .eyebrow { color: #70edf2; }

/* Preserve the same visual hierarchy after correcting semantic heading levels. */
.article-list .article-grid h2 {
    font: 700 21px/1.3 Manrope, sans-serif;
    margin: 10px 0;
    letter-spacing: normal;
}
.coa-box h2 { font: 700 17px Manrope, sans-serif; margin: 5px 0; }
.required-note { margin: 0 0 16px; color: #526176; font-size: 13px; }

/* Make compact but meaningful public text readable without changing the layout. */
.category-card p,
.category-card b,
.featured-card p,
.featured-card span,
.research-stats small { font-size: max(11px, .72rem); }
.research-categories > header span,
.featured-compounds > header span,
.article-grid article > span { font-size: max(10px, .68rem); }

html.high-contrast { filter: none; }
html.high-contrast {
    --ink: #000;
    --blue: #003c9e;
    --cyan: #006c83;
    --muted: #354052;
    --line: #64748b;
}
html.high-contrast body { background: #fff; color: #000; }
html.high-contrast a:not(.btn) { text-decoration: underline; text-underline-offset: 3px; }
html.high-contrast .btn-primary { background: #002f7d; border-color: #002f7d; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (forced-colors: active) {
    .btn, .nav-toggle, .accessibility-tools button, .age-gate button { border: 1px solid ButtonText; }
    .eyebrow i { background: currentColor; }
}

@media (max-width: 760px) {
    .site-header nav.open { max-height: calc(100vh - 70px); overflow-y: auto; }
    .site-header nav a { display: flex; align-items: center; min-height: 44px; width: 100%; }
}
