/*
   Site-wide WCAG 2.1 AA baseline.
   Page-specific visual styles remain in their own stylesheets; these rules
   provide a consistent keyboard, motion and high-contrast experience.
*/

.skip-link {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 3000;
    padding: 0.65rem 1rem;
    border: 2px solid #ffffff;
    border-radius: 0.4rem;
    background: #005a4e;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    transform: translateY(-150%);
}

.skip-link:focus,
.skip-link:focus-visible {
    transform: translateY(0);
    outline: 3px solid #ffbf00;
    outline-offset: 3px;
}

/* A dark outline remains visible on light surfaces; the white halo keeps the
   indicator distinguishable over the site's teal headers and coloured buttons. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
    outline: 3px solid #005a4e !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #ffffff !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media (forced-colors: active) {
    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible,
    [tabindex]:not([tabindex="-1"]):focus-visible {
        outline: 3px solid Highlight !important;
        outline-offset: 3px !important;
        box-shadow: none !important;
    }
}
