/* =====================================================
   ACCESSIBILITY: focus-visible & touch targets
   A6: :focus-visible styling on interactive elements
   M3: Touch targets >= 48x48px on nav icons
   ===================================================== */

/* =====================================================
   FOCUS-VISIBLE - keyboard navigation indicator
   ===================================================== */

/* Global focus-visible for interactive elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid #1C5EA8 !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(28, 94, 168, 0.2) !important;
}

/* Remove outline on mouse click (only show for keyboard) */
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) {
    outline: none !important;
    box-shadow: none !important;
}

/* Menu toggle button */
.menu-toggle:focus-visible {
    outline: 2px solid #fff !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(28, 94, 168, 0.4) !important;
    border-radius: 4px;
}

/* Nav icon boxes */
.v-icon-box a:focus-visible,
.v-icon-box div:focus-visible,
#search-icon:focus-visible {
    outline: 2px solid #1C5EA8 !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}

/* WooCommerce form inputs */
.woocommerce input[type="text"]:focus-visible,
.woocommerce input[type="email"]:focus-visible,
.woocommerce input[type="password"]:focus-visible,
.woocommerce input[type="number"]:focus-visible,
.woocommerce input[type="tel"]:focus-visible,
.woocommerce select:focus-visible,
.woocommerce textarea:focus-visible {
    outline: 2px solid #1C5EA8 !important;
    outline-offset: 0 !important;
    border-color: #1C5EA8 !important;
}

/* WooCommerce buttons */
.woocommerce .button:focus-visible,
.woocommerce button[type="submit"]:focus-visible,
.woocommerce input[type="submit"]:focus-visible,
.single_add_to_cart_button:focus-visible,
#place_order:focus-visible {
    outline: 2px solid #fff !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(28, 94, 168, 0.4) !important;
}

/* Skip link visible on focus */
.skip-link:focus-visible {
    clip: auto !important;
    clip-path: none !important;
    width: auto !important;
    height: auto !important;
    position: fixed !important;
    top: 10px !important;
    left: 10px !important;
    z-index: 100001 !important;
    padding: 12px 24px !important;
    background: #002347 !important;
    color: #fff !important;
    font-size: 1rem !important;
    text-decoration: none !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
}

/* =====================================================
   TOUCH TARGETS - minimum 48x48px (WCAG 2.5.5)
   ===================================================== */

/* Nav icon touch targets */
.v-icon-box {
    min-width: 48px !important;
    min-height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.v-icon-box a,
.v-icon-box > div {
    min-width: 48px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Menu toggle button */
.menu-toggle {
    min-width: 48px !important;
    min-height: 48px !important;
}

/* Scroll-to-top button */
.scrollToTopBtn {
    min-width: 48px !important;
    min-height: 48px !important;
}

/* Mobile menu items touch targets */
@media screen and (max-width: 768px) {
    .main-navigation a,
    #primary-menu a {
        min-height: 48px;
        display: flex;
        align-items: center;
        padding: 10px 16px;
    }

    /* Mobile expand toggle */
    .expand-menu-toggle {
        min-width: 48px;
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}
