/* ==========================================================
   ADA Fix — CRISP
   Generated: 2026-04-20 22:50:08
   WCAG Standard: wcag21aa
   ========================================================== */

   /* Target all focusable elements */
a:focus-visible, 
button:focus-visible, 
input:focus-visible, 
textarea:focus-visible, 
select:focus-visible, 
[tabindex]:not([tabindex="-1"]):focus-visible {
    /* 1. Remove the default/inconsistent browser outline */
    outline: none !important;

    /* 2. Create a thick, high-contrast ring using box-shadow */
    /* This uses 'currentColor' to adapt to your link/button text color */
    box-shadow: 0 0 0 2px white, 0 0 0 4px currentColor !important;
    
    /* 3. Ensure the element stands out if it has rounded corners */
    border-radius: 4px;
    
    /* 4. Fallback for older browsers that don't support focus-visible */
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Optional: Fallback for browsers that don't support :focus-visible yet */
@supports not selector(:focus-visible) {
    a:focus, button:focus, input:focus, textarea:focus, select:focus {
        outline: 2px solid currentColor;
        outline-offset: 2px;
    }
}

/*
 * Keyboard / WCAG: menus that only open on :hover must also open when focus moves inside.
 * :focus-within mirrors “hover intent” for typical nav markup. Some themes need extra rules
 * in the generated CSS below; JS-only flyouts may require a targeted js_mutation fix.
 */
li.menu-item-has-children:focus-within > ul.sub-menu,
li.menu-item-has-children:focus-within > .sub-menu,
.menu-item-has-children:focus-within > ul.sub-menu,
.menu-item-has-children:focus-within > .sub-menu,
nav li:focus-within > ul,
[role="navigation"] li:focus-within > ul {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    clip: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

li.menu-item-has-children:focus-within,
nav li:focus-within:has(> ul) {
    overflow: visible !important;
}

/* Bootstrap-style dropdowns: keep panel visible while tabbing inside */
.dropdown:focus-within > .dropdown-menu,
.dropend:focus-within > .dropdown-menu,
.dropstart:focus-within > .dropdown-menu,
.dropup:focus-within > .dropdown-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* WCAG 1.4.1: Restores standard link underlines in text blocks and footers to ensure links are distinguishable from body text without relying solely on color. */
.wpb_text_column a:not([class*="btn"]),
footer a:not([class*="btn"]),
.footer-widgets a:not([class*="btn"]) {
    text-decoration: underline;
}

/* WCAG 1.4.1: Ensures underlines remain visible during hover and focus states for keyboard and low-vision navigation. */
.wpb_text_column a:hover,
.wpb_text_column a:focus,
footer a:hover,
footer a:focus {
    text-decoration: underline;
}

/* WCAG 1.3.1: CSS cannot remove empty elements from the DOM to prevent screen reader announcement; this must be handled via PHP or the editor. The following rule hides them from the accessibility tree as a fallback, though it may not be supported by all screen reader/browser combinations. */
h3:empty, 
h3:blank {
    display: none;
}


