/*
 * Accessibility helpers used site-wide.
 */

/* Skip-to-content link: hidden off-screen until focused via keyboard. */
.skip-to-content {
    position: absolute;
    inset-inline-start: 50%;
    top: -200%;
    transform: translateX(-50%);
    background: #1a3a6c;
    color: #fff !important;
    padding: 10px 20px;
    border-radius: 0 0 10px 10px;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.95rem;
    z-index: 100000;
    transition: top .15s ease-out;
}
.skip-to-content:focus {
    top: 0;
    outline: 3px solid #ffd76c;
    outline-offset: 2px;
}

/* Make :focus-visible easy to see (improves keyboard navigation). */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid #1a3a6c;
    outline-offset: 2px;
}

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

/* Visually-hidden helper for screen-reader-only labels. */
.sr-only,
.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
