/* NXLL A11y Core */

/* Skip links: hidden until focused; no layout shift */
.nxll-skip-links {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100000;
    transform: translateY(-100%);
    transition: transform 0.15s ease;
    background: #000;
    color: #fff;
    padding: 0;
}

.nxll-skip-links:focus-within {
    transform: translateY(0);
}

.nxll-skip-links .nxll-skip-link {
    display: inline-block;
    margin: 0.25rem 0.5rem;
    padding: 0.5rem 0.75rem;
    color: #fff;
    text-decoration: none;
}

.nxll-skip-links .nxll-skip-link:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* Visible focus using :focus-visible (don’t spam mouse users) */
:focus {
    outline: none;
}

:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

a:focus-visible,
button:focus-visible,
[role='button']:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}

/* Higher contrast → stronger focus ring */
@media (prefers-contrast: more) {
    :focus-visible {
        outline-width: 3px;
    }
}
