/**
 * ADA Accessibility Enhancements
 * This file adds accessibility features without changing the visual design
 */

/* Skip to main content link - visible on keyboard focus */
.skip-link {
    position: absolute;
    left: -9999px;
    z-index: 999;
    padding: 1em;
    background-color: #c20a0a;
    color: white;
    text-decoration: none;
    font-weight: bold;
}

.skip-link:focus {
    left: 0;
    top: 0;
}

/* Enhanced focus indicators for keyboard navigation */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
}

/* Ensure focus is visible on navigation items */
.navigation a:focus,
.main-menu a:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
}

/* Focus styles for buttons */
.btn:focus,
.info-btn:focus,
.hidden-bar-opener:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(194, 10, 10, 0.2);
}

/* Focus styles for social media links */
.top-social a:focus,
.social-ft-link a:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
}

/* Ensure dropdown menu items are keyboard accessible */
.dropdown:focus-within>ul {
    display: block;
}

/* Improve visibility of focused menu items */
.menu-tab button:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
}

/* Focus visible on scroll to top button */
.scroll-area button:focus {
    outline: 3px solid #ffffff;
    outline-offset: 2px;
}

/* Remove white background from scroll-to-top button */
.scroll-area,
.scroll-area button {
    background: transparent !important;
    background-color: transparent !important;
}

.scroll-area button {
    border: none;
    padding: 0;
    cursor: pointer;
}

/* Ensure close buttons are properly visible when focused */
.hidden-bar-closer button:focus,
.cross-icon button:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {

    a:focus,
    button:focus,
    input:focus {
        outline: 4px solid currentColor;
        outline-offset: 3px;
    }
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Ensure sufficient color contrast - these maintain the existing colors but ensure they meet WCAG standards */
/* Note: The existing red (#c20a0a) and white already have good contrast */

/* Screen reader only content */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Center arrows in swiper navigation buttons */
.swiper-button-prev,
.swiper-button-next {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.swiper-button-prev span,
.swiper-button-next span {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Ensure form inputs have visible labels */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
    border-color: #c20a0a;
}

/* Improve carousel/slider accessibility */
.swiper-pagination:focus,
.owl-dot:focus {
    outline: 3px solid #c20a0a;
    outline-offset: 2px;
}