/* Blair House accessibility enhancements — WCAG 2.2 maintenance pass, 2026-09 */
.skip-link {
    position: fixed;
    left: 12px;
    top: 8px;
    z-index: 999999;
    padding: 10px 14px;
    background: #fff;
    color: #111;
    border: 2px solid #111;
    border-radius: 4px;
    font-weight: 700;
    text-decoration: none;
    transform: translateY(-160%);
}
.skip-link:focus,
.skip-link:focus-visible { transform: translateY(0); }

html { scroll-padding-top: 150px; }

/* Strong visible keyboard focus without changing normal mouse presentation. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #005fcc !important;
    outline-offset: 3px !important;
}

/* WCAG 2.2 target-size support for controls that are not inline text links. */
.navbar-toggle,
.dropdown-toggle,
.btn,
.pagination a,
.scroll-top[role="button"] {
    min-width: 24px;
    min-height: 24px;
}

/* Keep keyboard-focused content from disappearing behind the fixed header. */
#main-content :focus { scroll-margin-top: 150px; }

/* Utility for accessible labels when visual presentation should remain unchanged. */
.visually-hidden-obdm {
    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;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
    }
    #preloader { display: none !important; }
}
