/* Accessibility Styles */

/* Base font size variables */
:root {
    --font-size-base: 16px;
    --font-size-large: 20px;
    --font-size-xlarge: 28px;
}

/* High Contrast Theme */
.high-contrast {
    --color-text: #000000;
    --color-bg: #FFFFFF;
    --color-primary: #7A1412;
    /* Kavvi Primary */
    --color-secondary: #5C0F0E;
    /* Kavvi Secondary */
    --color-accent: #D4A24A;
    /* Gold Primary */
    --color-border: #000000;
    color-scheme: light;
}

.high-contrast body {
    color: var(--color-text) !important;
    background-color: var(--color-bg) !important;
}

.high-contrast .bg-white,
.high-contrast .bg-gray-50,
.high-contrast .bg-gray-100 {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

.high-contrast .bg-dark-card,
.high-contrast .bg-dark-bg {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

.high-contrast .text-white,
.high-contrast .text-gray-200,
.high-contrast .text-gray-300 {
    color: var(--color-text) !important;
}

.high-contrast .text-gray-700,
.high-contrast .text-gray-800 {
    color: var(--color-text) !important;
}

.high-contrast .border-gray-200,
.high-contrast .border-gray-300,
.high-contrast .border-gray-700 {
    border-color: var(--color-border) !important;
}

.high-contrast .bg-saffron-500,
.high-contrast .bg-orange-500,
.high-contrast .bg-purple-600,
.high-contrast .bg-indigo-700 {
    background-color: var(--color-primary) !important;
    color: #FFFFFF !important;
}

.high-contrast .text-saffron-500,
.high-contrast .text-orange-500 {
    color: var(--color-accent) !important;
}

/* Large Text Mode */
.large-text {
    font-size: var(--font-size-base);
}

.large-text h1,
.large-text .text-2xl,
.large-text .text-xl {
    font-size: var(--font-size-xlarge) !important;
}

.large-text h2,
.large-text .text-lg {
    font-size: var(--font-size-large) !important;
}

.large-text p,
.large-text span,
.large-text div,
.large-text button,
.large-text a {
    font-size: var(--font-size-base) !important;
    line-height: 1.6 !important;
}

/* Simple Mode */
.simple-mode {
    --border-radius: 8px;
    --box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.simple-mode * {
    border-radius: var(--border-radius) !important;
    box-shadow: var(--box-shadow) !important;
    transition: none !important;
    animation: none !important;
}

.simple-mode .page-section {
    background: #FFFFFF !important;
}

.simple-mode button,
.simple-mode [role="button"],
.simple-mode [role="tab"] {
    border: 2px solid #000000 !important;
    background: #FFFFFF !important;
    color: #000000 !important;
}

/* Eye Comfort Mode */
.eye-comfort {
    --color-bg: #F0F7F4;
    --color-text: #2D3A3A;
    --color-primary: #3A7D44;
    --color-secondary: #4D9F5E;
    --color-accent: #6B9B8A;
    --color-border: #B5D6C8;
}

.eye-comfort body {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
}

.eye-comfort .bg-white,
.eye-comfort .bg-gray-50,
.eye-comfort .bg-gray-100 {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

.eye-comfort .bg-dark-card,
.eye-comfort .bg-dark-bg {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

.eye-comfort .text-white,
.eye-comfort .text-gray-200,
.eye-comfort .text-gray-300 {
    color: var(--color-text) !important;
}

.eye-comfort .bg-saffron-500,
.eye-comfort .bg-orange-500,
.eye-comfort .bg-purple-600,
.eye-comfort .bg-indigo-700 {
    background-color: var(--color-primary) !important;
    color: #FFFFFF !important;
}

/* Focus Styles for Keyboard Navigation */
*:focus {
    outline: 3px solid #D4A24A !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(212, 162, 74, 0.5) !important;
}

/* Skip to Main Content Link */
.skip-to-content {
    position: absolute;
    left: -9999px;
    z-index: 999;
    padding: 1em;
    background-color: #7A1412;
    color: #F4D27A;
    opacity: 0;
}

.skip-to-content:focus {
    left: 50%;
    transform: translateX(-50%);
    opacity: 1;
}

/* Print Styles */
@media print {
    .no-print {
        display: none !important;
    }

    body {
        background: white !important;
        color: black !important;
        font-size: 12pt;
    }

    a::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        font-weight: normal;
    }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}