/**
 * Accessibility Styles - Keyboard Navigation
 */

/* Focus styles for keyboard navigation */
.keyboard-user *:focus {
    outline: 2px solid var(--hvn-theme-brand-primary) !important;
    outline-offset: 2px !important;
}

.mouse-user *:focus {
    outline: none !important;
}

/* Focus styles for menu items */
.hvn-theme-nav-menu .menu-item-has-children.focus > .sub-menu,
.hvn-theme-nav-menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Focus visible for all interactive elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--hvn-theme-brand-primary);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Skip link - must be visible when focused */
.skip-link:focus {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    background: var(--hvn-theme-brand-primary) !important;
    color: white !important;
    padding: 12px 24px !important;
    z-index: 99999 !important;
    text-decoration: none !important;
    font-weight: bold !important;
    outline: none !important;
}

/* Focus trap indicator */
.hvn-theme-mobile-menu:focus-within {
    outline: none;
}

/* High contrast focus */
@media (prefers-contrast: high) {
    .keyboard-user *:focus {
        outline: 3px solid black !important;
    }
}