/* EBC BFSG accessibility helpers: visible keyboard focus only where required. */

/* Keyboard focus must remain visible; :focus-visible avoids changing mouse/touch appearance. */
:where(a, button, input, select, textarea, summary, [role="button"], [role="tab"], [tabindex]):focus-visible {
    outline: 3px solid #0b57d0 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #ffffff !important;
}

/* Finder/result controls added to the keyboard sequence by the A11y runtime. */
.ebc-cr__filter > h5[role="button"]:focus-visible {
    border-radius: 6px;
}

/* WooCommerce validation: visible error cue complements the textual/ARIA error. */
body.woocommerce-checkout [aria-invalid="true"] {
    outline: 2px solid #b42318 !important;
    outline-offset: 2px !important;
}

/* Product-page interactive controls need a consistent keyboard-only focus state. */
.single-product .woocommerce-tabs ul.tabs a:focus-visible,
.single-product button.single_add_to_cart_button:focus-visible,
.single-product .ebc-pp-compare-current:focus-visible,
.single-product .ebc-pp-compare-toggle input:focus-visible,
.single-product .ebc-pp-compare-modal__close:focus-visible,
.single-product .ebc-pp-compare-dock button:focus-visible {
    outline: 3px solid #0b57d0 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #ffffff !important;
}

/* Cart and checkout controls: focus remains obvious on dark primary buttons. */
body.ebc-commerce .ebc-commerce-primary:focus-visible,
body.ebc-commerce--cart .wc-block-cart__submit-button:focus-visible,
body.ebc-commerce--checkout .wc-block-components-checkout-place-order-button:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #153c7b !important;
}

@media (forced-colors: active) {
    :where(a, button, input, select, textarea, summary, [role="button"], [role="tab"], [tabindex]):focus-visible {
        outline: 3px solid CanvasText !important;
        box-shadow: none !important;
    }
}
