/* Estilos de accesibilidad para el juego educativo */

/* Clases de utilidad para lectores de pantalla */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Modo de alto contraste */
.high-contrast {
    --color-primary: #00AA00;
    --color-secondary: #FFD700;
    --color-tertiary: #0066CC;
    --color-quaternary: #9900CC;
    --color-accent: #FF4400;
    --color-background: #FFFFFF;
    --color-text: #000000;
}

.high-contrast .level-card {
    border-width: 4px;
    box-shadow: none;
}

/* Modo oscuro */
.dark-mode {
    --color-background: #1A1A1A;
    --color-text: #FFFFFF;
}

.dark-mode #game-container {
    background-color: #2A2A2A;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
}

.dark-mode .level-card {
    background-color: #333333;
    color: #FFFFFF;
}

.dark-mode .level-card p {
    color: #CCCCCC;
}

/* Texto grande */
.large-text {
    font-size: 120%;
}

.large-text h1 {
    font-size: 3.6rem;
}

.large-text h2 {
    font-size: 3rem;
}

.large-text .btn-primary {
    font-size: 1.8rem;
    padding: 18px 36px;
}

/* Reducción de movimiento */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.reduced-motion .character img {
    animation: none;
}

.reduced-motion .level-card:hover {
    transform: none;
}

/* Panel de preferencias de accesibilidad */
.preferences-panel {
    position: fixed;
    top: 60px;
    right: 10px;
    z-index: 1000;
    background-color: var(--color-background);
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.preferences-toggle {
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background-color: var(--color-quaternary);
    color: white;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    margin: 5px;
}

.preferences-content {
    padding: 15px;
    border-radius: 10px;
    background-color: var(--color-background);
}

.preferences-content.hidden {
    display: none;
}

.preferences-content h3 {
    margin-bottom: 10px;
    color: var(--color-text);
}

.preferences-content label {
    display: block;
    margin: 10px 0;
    color: var(--color-text);
}

/* Mejoras de foco para navegación por teclado */
.keyboard-navigation :focus {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

.keyboard-navigation .btn-primary:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.5);
}

/* Mejoras de contraste para texto */
.level-card h3,
.level-card p {
    text-shadow: none;
}

.high-contrast .level-card h3 {
    color: var(--color-text);
}

/* Indicadores de estado para elementos interactivos */
[aria-pressed="true"] {
    background-color: var(--color-primary);
    color: white;
}

[aria-disabled="true"] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Mejoras de legibilidad */
.game-text {
    line-height: 1.5;
    letter-spacing: 0.5px;
}

/* Espaciado mejorado para controles táctiles */
@media (pointer: coarse) {
    .btn-primary,
    .level-card,
    .preferences-toggle {
        min-height: 44px;
        min-width: 44px;
    }
    
    .level-card {
        margin: 10px;
    }
}