/**
 * Divi Accessibility Fixes - CSS
 * 
 * Additional styles for accessibility enhancements
 */

/* ============================================
   Screen Reader Only Utility
   ============================================ */
.divi-a11y-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.divi-a11y-sr-only-focusable:focus,
.divi-a11y-sr-only-focusable:active {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}

/* ============================================
   Skip Link
   ============================================ */
.divi-a11y-skip-link {
    position: absolute;
    top: -100px;
    left: 10px;
    z-index: 999999;
    padding: 15px 25px;
    background: #000;
    color: #fff !important;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    border-radius: 0 0 5px 5px;
    transition: top 0.3s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.divi-a11y-skip-link:focus {
    top: 0;
    color: #fff !important;
}

.divi-a11y-skip-link:hover {
    color: #fff !important;
    text-decoration: underline;
}

/* ============================================
   Mobile Menu Fixes
   ============================================ */
.mobile_menu_bar,
.mobile_menu_bar_toggle {
    cursor: pointer;
}

.divi-a11y-submenu-toggle {
    display: none;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    background: transparent;
    border: 2px solid currentColor;
    border-radius: 3px;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.divi-a11y-submenu-toggle::before {
    content: '+';
    font-size: 18px;
    font-weight: bold;
}

.divi-a11y-submenu-toggle[aria-expanded="true"]::before {
    content: '−';
}

@media (max-width: 980px) {
    .divi-a11y-submenu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .menu-item-has-children {
        position: relative;
    }
}

/* ============================================
   Slider/Carousel Fixes
   ============================================ */
.divi-a11y-pause-btn {
    position: absolute;
    bottom: 20px;
    right: 20px;
    z-index: 100;
    width: 40px;
    height: 40px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    border: 2px solid #fff;
    border-radius: 50%;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s, transform 0.2s;
}

.divi-a11y-pause-btn:hover {
    background: rgba(0, 0, 0, 0.9);
    transform: scale(1.1);
}

.divi-a11y-pause-btn:focus {
    outline: 3px solid #fff;
    outline-offset: 2px;
}

.et_pb_slider.divi-a11y-paused .et_pb_slides,
.et_pb_fullwidth_slider.divi-a11y-paused .et_pb_slides {
    animation-play-state: paused !important;
}

/* Slider arrows focus */
.et-pb-arrow-prev:focus,
.et-pb-arrow-next:focus {
    opacity: 1 !important;
}

/* Slider dots focus */
.et-pb-controllers a:focus {
    outline: 2px solid #fff !important;
    outline-offset: 2px !important;
}

/* ============================================
   Accordion/Toggle Fixes
   ============================================ */
.et_pb_toggle_title {
    cursor: pointer;
}

.et_pb_toggle_title:focus {
    outline-offset: -2px;
}

/* ============================================
   Tab Fixes
   ============================================ */
.et_pb_tabs_controls li a:focus {
    outline-offset: -2px;
}

.et_pb_tab[role="tabpanel"]:focus {
    outline: none;
}

.et_pb_tab[role="tabpanel"]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* ============================================
   Form Fixes
   ============================================ */
.et_pb_contact_field input:focus,
.et_pb_contact_field textarea:focus,
.et_pb_contact_field select:focus {
    border-color: #005fcc;
}

.et_pb_contact_error {
    color: #c00;
    font-weight: 600;
}

/* Required field indicator */
.et_pb_contact_field_required label::after {
    content: ' *';
    color: #c00;
}

/* ============================================
   Button Fixes
   ============================================ */
.et_pb_button:focus,
.et_pb_more_button:focus,
.et_pb_newsletter_button:focus,
.et_pb_contact_submit:focus,
.et_pb_promo_button:focus {
    box-shadow: 0 0 0 3px rgba(0, 95, 204, 0.5);
}

/* ============================================
   Video Fixes
   ============================================ */
.et_pb_video_play {
    cursor: pointer;
}

.et_pb_video_play:focus {
    outline: 3px solid #fff;
    outline-offset: 2px;
}

/* ============================================
   Menu Fixes
   ============================================ */
.et_pb_menu__icon--search:focus,
.et_pb_menu__icon--cart:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Dropdown menu hover/focus states */
.et-menu-nav .menu-item-has-children > a:focus + .sub-menu,
.et-menu-nav .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
}

/* ============================================
   Lightbox/Modal Fixes
   ============================================ */
.et_pb_lightbox_close:focus,
.mfp-close:focus {
    outline: 2px solid #fff !important;
    outline-offset: 2px !important;
}

/* ============================================
   Animation Reduced Motion Support
   ============================================ */
@media (prefers-reduced-motion: reduce) {
    .et_pb_slider .et_pb_slides,
    .et_pb_fullwidth_slider .et_pb_slides,
    .et_pb_gallery .et_pb_gallery_items,
    .et_pb_video_slider .et_pb_slides,
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    .divi-a11y-skip-link {
        transition: none;
    }
}

/* ============================================
   High Contrast Mode Support
   ============================================ */
@media (prefers-contrast: more) {
    .et_pb_button,
    .et_pb_more_button {
        border: 2px solid currentColor !important;
    }
    
    a:focus,
    button:focus,
    input:focus,
    select:focus,
    textarea:focus {
        outline-width: 3px !important;
    }
    
    .divi-a11y-skip-link {
        border: 3px solid #fff;
    }
}

/* ============================================
   Admin Styles
   ============================================ */
.divi-a11y-info {
    background: #fff;
    padding: 20px;
    margin-top: 20px;
    border: 1px solid #ccd0d4;
    border-radius: 4px;
}

.divi-a11y-info h2 {
    margin-top: 0;
    padding-top: 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.divi-a11y-info h3 {
    margin-top: 20px;
}

.divi-a11y-info ul {
    list-style: disc;
    margin-left: 20px;
}

.divi-a11y-info li {
    margin-bottom: 5px;
}
