/* ==================================================
   LPH accessibility layer (Sprint M13).
   Load AFTER the other lph-* system layers so its focus
   ring wins. Purely additive: a keyboard-only focus ring,
   a skip-to-content link, a screen-reader utility, and
   reduced-motion honouring. No change to the static look.
   ================================================== */

/* Visible keyboard focus for every interactive element.
   :focus-visible fires only for keyboard/AT navigation, so
   mouse users see no change. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
.lph-nav-item:focus-visible,
.lph-btn:focus-visible {
    outline: 2px solid var(--color-focus, #c7a247);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Screen-reader-only content. */
.lph-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Skip-to-content: hidden until focused, then pinned top-left. */
.lph-skip-link {
    position: absolute;
    left: 8px;
    top: -48px;
    z-index: 1000;
    padding: 8px 14px;
    border-radius: 8px;
    background: var(--color-primary, #c7a247);
    color: var(--color-on-primary, #0b1c2c);
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: none;
    transition: top 0.15s ease;
}
.lph-skip-link:focus {
    top: 8px;
}
[dir="rtl"] .lph-skip-link {
    left: auto;
    right: 8px;
}

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