/* Arquivo CSS de Acessibilidade - Funciona em todo o site */

/* Variáveis CSS para facilitar manutenção */
:root {
    --accessibility-primary: #1c4c7d;
    --accessibility-secondary: rgb(76, 74, 100);
    --accessibility-success: #28a745;
    --accessibility-danger: #dc3545;
}

/* Estilos globais para acessibilidade */
* {
    transition: font-size 0.3s ease, filter 0.3s ease;
}

/* Classes de tamanho de fonte */
.font-size-small * {
    font-size: 0.8em !important;
}

.font-size-normal * {
    font-size: 1em !important;
}

.font-size-large * {
    font-size: 1.2em !important;
}

.font-size-xlarge * {
    font-size: 1.4em !important;
}

.font-size-xxlarge * {
    font-size: 1.6em !important;
}

/* Ajustes específicos para elementos que não devem mudar muito */
.font-size-large .accessibility-btn,
.font-size-xlarge .accessibility-btn,
.font-size-xxlarge .accessibility-btn {
    font-size: 14px !important;
}

.font-size-large .social-icons a,
.font-size-xlarge .social-icons a,
.font-size-xxlarge .social-icons a {
    font-size: 1.5rem !important;
}

/* Contrastes de acessibilidade */
.high-contrast {
    filter: contrast(150%) brightness(1.2);
}

.high-contrast body {
    background-color: #fff !important;
    color: #000 !important;
}

.high-contrast .topbar,
.high-contrast .navbar,
.high-contrast .footer-section,
.high-contrast footer {
    background-color: #000 !important;
    color: #fff !important;
}

.high-contrast .topbar *,
.high-contrast .navbar *,
.high-contrast .footer-section *,
.high-contrast footer * {
    color: #fff !important;
}

.high-contrast .accessibility-btn {
    background-color: #333 !important;
    color: #fff !important;
    border-color: #fff !important;
}

.high-contrast .accessibility-btn.active {
    background-color: #0f0 !important;
    color: #000 !important;
}

.sepia-contrast {
    filter: sepia(100%) contrast(120%) brightness(1.1);
}

.inverted-contrast {
    filter: invert(1) hue-rotate(180deg);
}

.blue-contrast {
    filter: hue-rotate(180deg) saturate(150%) brightness(1.1);
}

/* Garantir que imagens também sejam afetadas pelos filtros */
.high-contrast img,
.sepia-contrast img,
.inverted-contrast img,
.blue-contrast img {
    filter: inherit;
}

/* Melhorar legibilidade em todos os contrastes */
.high-contrast a,
.sepia-contrast a,
.inverted-contrast a,
.blue-contrast a {
    text-decoration: underline !important;
    font-weight: bold !important;
}

/* Estilos para foco e acessibilidade com teclado */
*:focus {
    outline: 3px solid var(--accessibility-success) !important;
    outline-offset: 2px !important;
}

.high-contrast *:focus {
    outline-color: #0f0 !important;
}

/* Botões de acessibilidade sempre visíveis */
.accessibility-btn {
    z-index: 9999 !important;
}

/* Responsividade para acessibilidade */
@media (max-width: 768px) {
    .font-size-large,
    .font-size-xlarge,
    .font-size-xxlarge {
        line-height: 1.4 !important;
    }
    
    .accessibility-menu {
        gap: 5px !important;
    }
    
    .accessibility-btn {
        min-width: 30px !important;
        height: 30px !important;
        font-size: 12px !important;
        padding: 3px 6px !important;
    }
}

/* Animações suaves para mudanças de acessibilidade */
@media (prefers-reduced-motion: no-preference) {
    * {
        transition: all 0.3s ease;
    }
}

/* Respeitar preferências do usuário */
@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        animation: none !important;
    }
}

@media (prefers-contrast: high) {
    body {
        filter: contrast(150%) brightness(1.2);
    }
}

@media (prefers-color-scheme: dark) {
    .auto-dark-mode {
        background-color: #121212 !important;
        color: #ffffff !important;
    }
}

/* Print styles para acessibilidade */
@media print {
    .high-contrast,
    .sepia-contrast,
    .inverted-contrast,
    .blue-contrast {
        filter: none !important;
    }
    
    .accessibility-menu,
    .speech-btn,
    .scroll-to-top {
        display: none !important;
    }
}
