/* ============================================================================
   accesibilidad.css  —  Menú de accesibilidad (botón flotante + panel) y las
   clases activables que se cuelgan de <html> (a11y-*).
   ============================================================================ */

/* ---------- Botón flotante (FAB) ---------- */
.a11y-fab {
  position: fixed; right: 14px; bottom: 18px; z-index: var(--z-a11y);
  width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--azul-secundario); color: #fff; box-shadow: var(--sombra-lg);
  display: flex; align-items: center; justify-content: center; transition: transform var(--t), background var(--t);
}
.a11y-fab:hover { transform: scale(1.08); background: var(--azul-marino); }

/* ---------- Panel ---------- */
.a11y-panel {
  position: fixed; right: 14px; bottom: 82px; z-index: var(--z-a11y);
  width: min(92vw, 320px); background: #fff; border-radius: var(--radio-lg);
  box-shadow: var(--sombra-lg); border: 1px solid var(--borde);
  padding: var(--sp-4); transform: translateY(16px) scale(.96); opacity: 0; pointer-events: none;
  transition: all var(--t);
}
.a11y-panel.is-open { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }
.a11y-panel__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-3); }
.a11y-panel__head span { font-family: var(--font-titulo); font-weight: 700; color: var(--azul-marino); font-size: 1.05rem; }
.a11y-close { background: none; border: 0; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--texto-suave); }
.a11y-close:hover { color: var(--acento); }

.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
.a11y-opt {
  display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
  padding: var(--sp-3) var(--sp-2); border: 2px solid var(--borde); border-radius: var(--radio);
  background: #fff; color: var(--texto); font-size: .8rem; font-weight: 600; cursor: pointer; transition: all var(--t);
}
.a11y-opt:hover { border-color: var(--azul-secundario); background: var(--azul-tinte); }
.a11y-opt.is-active { border-color: var(--azul-secundario); background: var(--azul-secundario); color: #fff; }
.a11y-ico { font-size: 1.2rem; line-height: 1; }
.a11y-reset { width: 100%; margin-top: var(--sp-3); padding: var(--sp-2); border: 0; border-radius: var(--radio-sm); background: var(--azul-tinte); color: var(--azul-marino); font-weight: 700; cursor: pointer; }
.a11y-reset:hover { background: var(--borde); }

/* ============================================================================
   CLASES ACTIVABLES (se aplican en <html>)
   ============================================================================ */

/* Contraste alto — robusto: fondo negro + texto blanco en TODO contenedor,
   sin importar el componente (evita texto invisible sobre tarjetas blancas). */
html.a11y-contrast body { background: #000 !important; color: #fff !important; }
html.a11y-contrast body *:not(img):not(svg):not(path):not(use) {
  background-color: transparent !important;
  color: #fff !important;
  border-color: #777 !important;
  box-shadow: none !important;
}
html.a11y-contrast a, html.a11y-contrast a * { color: #ffe14d !important; text-decoration: underline !important; }
/* Botones y elementos de acción: amarillo sólido con texto negro (máximo contraste) */
html.a11y-contrast .btn, html.a11y-contrast .a11y-opt, html.a11y-contrast .carousel-btn,
html.a11y-contrast .chip, html.a11y-contrast .a11y-reset {
  background-color: #ffe14d !important; color: #000 !important; border-color: #ffe14d !important;
}
html.a11y-contrast .btn *, html.a11y-contrast .a11y-opt *, html.a11y-contrast .chip * { color: #000 !important; }
/* El panel de accesibilidad debe seguir legible */
html.a11y-contrast .a11y-panel, html.a11y-contrast .a11y-fab { background-color: #000 !important; border: 1px solid #fff !important; }
html.a11y-contrast .a11y-fab { background-color: #ffe14d !important; }
html.a11y-contrast .a11y-fab svg { color: #000 !important; }

/* Texto grande (3 niveles) */
html.a11y-text-1 { font-size: 112.5%; }
html.a11y-text-2 { font-size: 125%; }
html.a11y-text-3 { font-size: 140%; }

/* Espaciado */
html.a11y-spacing body { letter-spacing: .04em; word-spacing: .12em; line-height: 1.9; }

/* Subrayar enlaces */
html.a11y-underline a { text-decoration: underline !important; text-underline-offset: 3px; }

/* Fuente para dislexia (stack del sistema legible; opción OpenDyslexic si está instalada) */
html.a11y-dyslexia body,
html.a11y-dyslexia h1, html.a11y-dyslexia h2, html.a11y-dyslexia h3,
html.a11y-dyslexia .card__title {
  font-family: "OpenDyslexic", "Comic Sans MS", "Trebuchet MS", Verdana, sans-serif !important;
  letter-spacing: .03em;
}

/* Pausar animaciones */
html.a11y-no-anim *, html.a11y-no-anim *::before, html.a11y-no-anim *::after {
  animation-duration: .001s !important; animation-iteration-count: 1 !important; transition: none !important; scroll-behavior: auto !important;
}
