/* =============================================================================
   ADA / Accessibility — PROJECT-SPECIFIC styles only.
   Generic, reusable a11y utilities live in the framework's ds_normalize.css.
========================================================================== */

/* Keyboard-only focus ring (framework normalize removes outlines). */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid #1b1b1b !important;
    outline-offset: 2px;
}
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
summary:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible) {
    outline: none;
}

/* White ring on dark (.bg2) panels. */
.bg2 a:focus-visible,
.bg2 button:focus-visible,
.bg2 input:focus-visible,
.bg2 select:focus-visible,
.bg2 textarea:focus-visible,
.bg2 [tabindex]:focus-visible,
.bg2 [role="button"]:focus-visible {
    outline-color: #ffffff !important;
}

/* Placeholder contrast. */
::placeholder {
    color: #6e6e6e;
    opacity: 1;
}

/* Honor reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
    [data-aos] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
}
