/* ---------- Focus outline ---------- */
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: 3px solid #0073e6 !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 2px #fff !important;
}

/* ---------- Dropdown open on focus / keyboard ---------- */
li.menu-item-has-children:focus-within > ul,
li.menu-item-has-children:focus-within > .sub-menu,
li.menu-item-has-children:focus-within > .wd-dropdown,
li.menu-item-has-children:focus-within > .wd-dropdown-menu,
li.menu-item-has-children.kb-open > ul,
li.menu-item-has-children.kb-open > .sub-menu,
li.menu-item-has-children.kb-open > .wd-dropdown,
li.menu-item-has-children.kb-open > .wd-dropdown-menu,
li.page_item_has_children:focus-within > ul,
li.dropdown:focus-within > .dropdown-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* ---------- Skip link ---------- */
.a11y-skip-link {
    position: fixed;
    top: -100px;
    left: 10px;
    z-index: 999999;
    background: #000;
    color: #fff !important;
    padding: 12px 20px;
    font-size: 16px;
    text-decoration: none;
    border-radius: 0 0 6px 6px;
    transition: top .15s;
}
.a11y-skip-link:focus { top: 0; }

/* ---------- Screen reader only text ---------- */
.a11y-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;
}

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