/* ============================================================
   TALLES AFONSO ADVOCACIA — Estilos de Acessibilidade
   Complementa style.css com funcionalidades de acessibilidade
   ============================================================ */

/* --- Alto Contraste --- */
/* ACESSIBILIDADE: Modo de alto contraste ativado via painel de acessibilidade.
   Garante contraste 7:1+ (WCAG AAA) em todos os elementos. */
body.alto-contraste {
  --cor-primaria: #000000;
  --cor-primaria-hover: #1a1a1a;
  --cor-destaque: #FFD700;
  --cor-fundo: #FFFFFF;
  --cor-fundo-alt: #F0F0F0;
  --cor-texto: #000000;
  --cor-texto-claro: #1a1a1a;
  --cor-footer-bg: #000000;
  --cor-footer-texto: #FFFFFF;
  --cor-foco: #FFD700;
  --cor-borda: #000000;
}

body.alto-contraste .site-header {
  background-color: #000000;
  border-bottom: 3px solid #FFD700;
}

body.alto-contraste .hero {
  background-color: #000000;
}

body.alto-contraste .hero::before {
  background: #000000;
}

body.alto-contraste .area-card {
  border: 2px solid #000000;
}

body.alto-contraste .area-card::before {
  background-color: #FFD700;
  height: 4px;
}

body.alto-contraste .nav-lista a {
  color: #FFFFFF;
}

body.alto-contraste .nav-lista a[aria-current="page"] {
  color: #FFD700;
  border-bottom-color: #FFD700;
}

body.alto-contraste .btn-primario {
  background-color: #000000;
  color: #FFD700;
  border-color: #FFD700;
}

body.alto-contraste .btn-primario:hover {
  background-color: #FFD700;
  color: #000000;
}

body.alto-contraste .whatsapp-flutuante {
  border: 3px solid #000000;
}

body.alto-contraste :focus-visible {
  outline: 3px solid #FFD700;
  outline-offset: 3px;
}

/* --- Fonte para Dislexia --- */
/* ACESSIBILIDADE: Fonte OpenDyslexic para pessoas com dislexia */
body.fonte-dislexia {
  --fonte-corpo: 'OpenDyslexic', 'Verdana', sans-serif;
  --fonte-headings: 'OpenDyslexic', 'Georgia', serif;
}

body.fonte-dislexia * {
  font-family: 'OpenDyslexic', 'Verdana', sans-serif !important;
  letter-spacing: 0.05em;
  word-spacing: 0.1em;
}

/* --- Tamanhos de Fonte Ajustáveis --- */
body.fonte-maior {
  font-size: 22px;
}

body.fonte-maior h1 { font-size: 3rem; }
body.fonte-maior h2 { font-size: 2.5rem; }
body.fonte-maior h3 { font-size: 1.85rem; }

body.fonte-muito-maior {
  font-size: 26px;
}

body.fonte-muito-maior h1 { font-size: 3.5rem; }
body.fonte-muito-maior h2 { font-size: 2.85rem; }
body.fonte-muito-maior h3 { font-size: 2.15rem; }

/* --- Pausar Animações --- */
body.sem-animacoes *,
body.sem-animacoes *::before,
body.sem-animacoes *::after {
  animation: none !important;
  transition: none !important;
}

/* --- Painel de Acessibilidade --- */
.acessibilidade-btn {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background-color: var(--cor-primaria);
  color: #FFFFFF;
  border: 2px solid var(--cor-destaque);
  border-right: none;
  border-radius: var(--border-radius) 0 0 var(--border-radius);
  padding: var(--espacamento-sm);
  cursor: pointer;
  z-index: 998;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  transition: background-color var(--transicao);
  box-shadow: -2px 0 8px var(--cor-sombra);
}

.acessibilidade-btn:hover {
  background-color: var(--cor-primaria-hover);
}

.acessibilidade-painel {
  position: fixed;
  top: 50%;
  right: -350px;
  transform: translateY(-50%);
  width: 320px;
  max-height: 80vh;
  background-color: var(--cor-fundo);
  border: 2px solid var(--cor-destaque);
  border-radius: var(--border-radius-lg) 0 0 var(--border-radius-lg);
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
  z-index: 999;
  padding: var(--espacamento-lg);
  transition: right 0.3s ease;
  overflow-y: auto;
}

.acessibilidade-painel.aberto {
  right: 0;
}

.acessibilidade-painel h2 {
  font-size: 1.25rem;
  margin-bottom: var(--espacamento-md);
  color: var(--cor-primaria);
  border-bottom: 2px solid var(--cor-destaque);
  padding-bottom: var(--espacamento-xs);
}

.acessibilidade-opcao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--espacamento-sm) 0;
  border-bottom: 1px solid var(--cor-borda);
}

.acessibilidade-opcao:last-child {
  border-bottom: none;
}

.acessibilidade-opcao-label {
  font-weight: 600;
  color: var(--cor-texto);
  font-size: 0.95rem;
  flex: 1;
  padding-right: var(--espacamento-sm);
}

/* Toggle Switch acessível */
.toggle-switch {
  position: relative;
  width: 52px;
  height: 28px;
  flex-shrink: 0;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.toggle-slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--cor-borda);
  border-radius: 28px;
  cursor: pointer;
  transition: background-color var(--transicao);
}

.toggle-slider::before {
  content: '';
  position: absolute;
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background-color: #FFFFFF;
  border-radius: 50%;
  transition: transform var(--transicao);
}

.toggle-switch input:checked + .toggle-slider {
  background-color: var(--cor-destaque);
}

.toggle-switch input:checked + .toggle-slider::before {
  transform: translateX(24px);
}

.toggle-switch input:focus-visible + .toggle-slider {
  outline: 3px solid var(--cor-foco);
  outline-offset: 3px;
}

/* Botões de tamanho de fonte */
.fonte-controles {
  display: flex;
  gap: var(--espacamento-xs);
}

.fonte-btn {
  min-width: 44px;
  min-height: 44px;
  border: 2px solid var(--cor-borda);
  background-color: var(--cor-fundo);
  color: var(--cor-texto);
  border-radius: var(--border-radius);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transicao);
}

.fonte-btn:hover {
  border-color: var(--cor-destaque);
  color: var(--cor-destaque);
}

.fonte-btn.ativo {
  background-color: var(--cor-destaque);
  border-color: var(--cor-destaque);
  color: var(--cor-primaria);
}

.fechar-painel {
  position: absolute;
  top: var(--espacamento-sm);
  right: var(--espacamento-sm);
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--cor-texto-claro);
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--border-radius);
}

.fechar-painel:hover {
  color: var(--cor-erro);
}

/* --- Modo Escuro (via prefers-color-scheme) --- */
@media (prefers-color-scheme: dark) {
  body:not(.alto-contraste) {
    --cor-fundo: #1a1a2e;
    --cor-fundo-alt: #16213e;
    --cor-texto: #E8E8E8;
    --cor-texto-claro: #B0B0B0;
    --cor-borda: #3a3a5c;
    --cor-sombra: rgba(0, 0, 0, 0.3);
  }

  body:not(.alto-contraste) .area-card {
    background-color: var(--cor-fundo-alt);
  }

  body:not(.alto-contraste) .form-grupo input,
  body:not(.alto-contraste) .form-grupo select,
  body:not(.alto-contraste) .form-grupo textarea {
    background-color: var(--cor-fundo-alt);
    color: var(--cor-texto);
  }

  body:not(.alto-contraste) .acessibilidade-painel {
    background-color: var(--cor-fundo-alt);
  }
}

/* --- Responsividade do Painel --- */
@media (max-width: 375px) {
  .acessibilidade-painel {
    width: 280px;
  }
}
