/* ===========================
   ADA Compliance & Accessibility Enhancements
   =========================== */

/* Focus Visible Styles - WCAG 2.1 AA Compliance */
*:focus {
    outline: 3px solid var(--accent-gold);
    outline-offset: 2px;
}

/* Remove outline for mouse users, keep for keyboard */
*:focus:not(:focus-visible) {
    outline: none;
}

*:focus-visible {
    outline: 3px solid var(--accent-gold);
    outline-offset: 2px;
}

/* Enhanced Button Focus States */
button:focus-visible,
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
a.btn-primary:focus-visible,
a.btn-secondary:focus-visible {
    outline: 3px solid var(--accent-gold);
    outline-offset: 3px;
    box-shadow: 0 0 0 6px rgba(212, 175, 55, 0.2);
}

/* Link Focus States */
a:focus-visible {
    outline: 3px solid var(--accent-gold);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Form Input Focus States */
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid var(--accent-gold);
    outline-offset: 2px;
    border-color: var(--accent-gold);
}

/* Skip Link Enhanced Visibility */
.skip-link:focus {
    top: 0;
    left: 0;
    z-index: 99999;
    outline: 3px solid var(--accent-gold);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Improve Color Contrast for Better Readability */
.text-light,
.hero-subtitle,
p {
    color: #4a4a4a; /* Increased contrast from #6a6a6a */
}

/* Ensure Adequate Touch Target Size (minimum 44x44px) */
button,
.btn-primary,
.btn-secondary,
input[type="submit"],
input[type="button"],
a.btn-primary,
a.btn-secondary {
    min-height: 44px;
    min-width: 44px;
}

/* Checkbox and Radio Inputs Touch Targets */
input[type="checkbox"],
input[type="radio"] {
    width: 20px;
    height: 20px;
    margin-right: 10px;
}

.checkbox-label {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 8px 0;
    cursor: pointer;
}

/* Ensure Filter Buttons Have Adequate Touch Targets */
.filter-btn {
    min-height: 44px;
    padding: 12px 24px;
}

/* Navigation Menu Touch Targets */
.nav-menu a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 10px 20px;
}

/* Hamburger Menu Touch Target */
.hamburger {
    min-width: 44px;
    min-height: 44px;
    padding: 10px;
}

/* Improved Error State Visibility */
input:invalid:not(:placeholder-shown),
textarea:invalid:not(:placeholder-shown),
select:invalid:not(:placeholder-shown) {
    border-color: #d32f2f;
    background-color: #ffebee;
}

input:invalid:focus:not(:placeholder-shown),
textarea:invalid:focus:not(:placeholder-shown),
select:invalid:focus:not(:placeholder-shown) {
    outline-color: #d32f2f;
}

/* Required Field Indicator Styling */
abbr[title="required"] {
    text-decoration: none;
    color: #d32f2f;
    font-weight: bold;
}

/* Ensure Proper Heading Hierarchy Visibility */
.sr-only-focusable:focus,
.sr-only-focusable:active {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    :root {
        --primary-color: #000000;
        --text-primary: #000000;
        --bg-white: #ffffff;
        --border-color: #000000;
    }
    
    button,
    .btn-primary,
    .btn-secondary {
        border: 2px solid currentColor;
    }
}

/* Reduced Motion Support */
@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;
    }
}

/* Enhanced Keyboard Navigation for Mobile Menu */
.nav-menu[aria-hidden="true"] {
    display: none;
}

.nav-menu[aria-hidden="false"] {
    display: flex;
}

/* Social Links Accessibility */
.social-link {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

.social-link:focus-visible {
    outline: 3px solid var(--accent-gold);
    outline-offset: 2px;
}

/* Form Validation Messages */
.form-error {
    color: #d32f2f;
    font-size: 0.875rem;
    margin-top: 4px;
    display: block;
    font-weight: 500;
}

.form-success {
    color: #2e7d32;
    font-size: 0.875rem;
    margin-top: 4px;
    display: block;
    font-weight: 500;
}

/* Loading State Accessibility */
button[disabled],
.btn-primary[disabled],
.btn-secondary[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
    position: relative;
}

button[aria-busy="true"]::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    top: 50%;
    right: 12px;
    margin-top: -8px;
    border: 2px solid currentColor;
    border-radius: 50%;
    border-top-color: transparent;
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Ensure Images Have Proper Loading States */
img[alt=""] {
    /* Decorative images */
    display: block;
}

img:not([alt]) {
    /* Warn developers about missing alt text */
    outline: 5px solid red;
}

/* Improve Table Accessibility (if tables are added) */
table {
    border-collapse: collapse;
    width: 100%;
}

th {
    text-align: left;
    font-weight: 600;
}

th, td {
    padding: 12px;
    border: 1px solid var(--border-color);
}

/* Print Styles for Accessibility */
@media print {
    .skip-link,
    .hamburger,
    nav,
    footer,
    .filter-btn {
        display: none;
    }
    
    a[href]::after {
        content: " (" attr(href) ")";
    }
    
    abbr[title]::after {
        content: " (" attr(title) ")";
    }
}

/* Dark Mode Support - Disabled (keeping light theme only) */
/* @media (prefers-color-scheme: dark) {
    :root {
        --primary-color: #ffffff;
        --text-primary: #ffffff;
        --text-secondary: #b3b3b3;
        --bg-white: #121212;
        --bg-light: #1e1e1e;
        --bg-gray: #2a2a2a;
        --border-color: #404040;
    }
    
    img {
        opacity: 0.9;
    }
} */
