/* Accessibility Styles */

/* High Contrast Mode */
.accessibility-high-contrast body {
    background-color: #000000 !important;
    color: #ffffff !important;
}

.accessibility-high-contrast .header {
    background: #000000 !important;
    border-bottom: 2px solid #ffffff !important;
}

.accessibility-high-contrast .nav-link {
    color: #ffffff !important;
}

.accessibility-high-contrast .nav-link:hover,
.accessibility-high-contrast .nav-link.active {
    color: #ffff00 !important;
}

.accessibility-high-contrast .feature-card {
    background: #000000 !important;
    border: 2px solid #ffffff !important;
    color: #ffffff !important;
}

.accessibility-high-contrast .feature-icon {
    background: #ffffff !important;
    color: #000000 !important;
}

.accessibility-high-contrast .btn-primary {
    background-color: #ffff00 !important;
    color: #000000 !important;
    border: 2px solid #ffff00 !important;
}

.accessibility-high-contrast .btn-secondary,
.accessibility-high-contrast .btn-outline {
    background-color: transparent !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

.accessibility-high-contrast .footer {
    background-color: #000000 !important;
    border-top: 2px solid #ffffff !important;
}

.accessibility-high-contrast .cookie-consent {
    background: #000000 !important;
    border-top: 2px solid #ffffff !important;
    color: #ffffff !important;
}

/* Large Text Mode */
.accessibility-large-text body {
    font-size: 18px !important;
}

.accessibility-large-text .hero-title {
    font-size: 4rem !important;
}

.accessibility-large-text .section-title {
    font-size: 3rem !important;
}

.accessibility-large-text .feature-title {
    font-size: 1.5rem !important;
}

.accessibility-large-text .btn {
    font-size: 1.125rem !important;
    padding: 1rem 2rem !important;
}

/* Reduced Motion */
.accessibility-reduced-motion *,
.accessibility-reduced-motion *::before,
.accessibility-reduced-motion *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
}

/* Enhanced Keyboard Navigation */
.accessibility-keyboard-nav *:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 2px !important;
    border-radius: 4px !important;
}

.accessibility-keyboard-nav .btn:focus,
.accessibility-keyboard-nav .language-toggle:focus,
.accessibility-keyboard-nav .accessibility-btn:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 6px rgba(255, 255, 0, 0.3) !important;
}

/* Screen Reader Support */
.accessibility-screen-reader .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;
}

/* Skip links always visible for screen readers */
.accessibility-screen-reader .skip-link {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    z-index: 10000 !important;
}

/* Font Size Adjustments */
.accessibility-font-large body {
    font-size: 120% !important;
}

.accessibility-font-extra-large body {
    font-size: 140% !important;
}

/* Focus management for modals */
.accessibility-modal.show {
    display: block !important;
}

.accessibility-modal.show .accessibility-content {
    display: block !important;
}

/* Ensure sufficient color contrast */
.accessibility-high-contrast a {
    color: #ffff00 !important;
    text-decoration: underline !important;
}

.accessibility-high-contrast a:hover {
    color: #ffffff !important;
}

/* Form elements accessibility */
.accessibility-high-contrast input,
.accessibility-high-contrast textarea,
.accessibility-high-contrast select {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

.accessibility-high-contrast input:focus,
.accessibility-high-contrast textarea:focus,
.accessibility-high-contrast select:focus {
    border-color: #ffff00 !important;
    outline: 3px solid #ffff00 !important;
}

/* Loading states for accessibility */
.accessibility-screen-reader .loading::after {
    content: 'Loading...' !important;
    position: static !important;
    display: inline-block !important;
    margin-left: 0.5rem !important;
    font-style: italic !important;
    color: inherit !important;
}

/* Error states */
.accessibility-high-contrast .error {
    background-color: #ff0000 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
    padding: 1rem !important;
}

/* Success states */
.accessibility-high-contrast .success {
    background-color: #00ff00 !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
    padding: 1rem !important;
}

/* Warning states */
.accessibility-high-contrast .warning {
    background-color: #ffff00 !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
    padding: 1rem !important;
}

/* Ensure interactive elements have sufficient size */
.accessibility-motor .btn {
    min-width: 48px !important;
    min-height: 48px !important;
    padding: 1rem 2rem !important;
}

.accessibility-motor .language-toggle,
.accessibility-motor .accessibility-btn {
    min-width: 48px !important;
    min-height: 48px !important;
}

/* Link underlines for better accessibility */
.accessibility-high-contrast .footer-links a,
.accessibility-high-contrast .cookie-text a {
    text-decoration: underline !important;
}

/* Ensure table accessibility */
.accessibility-screen-reader table {
    border-collapse: collapse !important;
}

.accessibility-screen-reader th,
.accessibility-screen-reader td {
    border: 1px solid #ffffff !important;
    padding: 0.5rem !important;
}

.accessibility-screen-reader th {
    background-color: #333333 !important;
}

/* Custom focus indicators for different user preferences */
@media (prefers-reduced-motion: reduce) {
    .accessibility-keyboard-nav *:focus {
        transition: none !important;
    }
}

/* Print accessibility */
@media print {
    .accessibility-high-contrast,
    .accessibility-large-text,
    .accessibility-reduced-motion,
    .accessibility-keyboard-nav,
    .accessibility-screen-reader {
        background: white !important;
        color: black !important;
    }

    .accessibility-high-contrast .btn-primary {
        background: black !important;
        color: white !important;
        border: 2px solid black !important;
    }
}
