/* Modo de bajo estímulo / alto contraste: menos color, más contraste, sin gradientes */
[data-a11y="high-contrast"] {
    --primary-color: #003049;
    --primary-hover: #001f30;
    --primary-light: #ffffff;
    --secondary-color: #2D6A4F;
    --secondary-light: #ffffff;
    --accent-color: #B8860B;
    --accent-light: #ffffff;
    --cta-color: #9C2F1F;
    --cta-hover: #7c2518;
    --cta-light: #ffffff;
    --bg-primary: #ffffff;
    --bg-secondary: #ffffff;
    --text-primary: #000000;
    --text-secondary: #1a1a1a;
    --border-color: #000000;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;
}

[data-a11y="high-contrast"] body { background: #ffffff; }
[data-a11y="high-contrast"] .blob { display: none; }
[data-a11y="high-contrast"] .vision-illustration { display: none; }
[data-a11y="high-contrast"] .header,
[data-a11y="high-contrast"] .topbar { background: #ffffff !important; backdrop-filter: none; border-bottom: 2px solid #000; }
[data-a11y="high-contrast"] .sidebar { background: #ffffff !important; border-right: 2px solid #000; }
[data-a11y="high-contrast"] .sidebar-link { border: 2px solid #000; }
[data-a11y="high-contrast"] .sidebar-link.is-active { background: #003049 !important; color: #fff !important; }
[data-a11y="high-contrast"] .sidebar-backdrop { background: rgba(0, 0, 0, 0.7); }
[data-a11y="high-contrast"] .logo img { filter: brightness(0); }
[data-a11y="high-contrast"] .logo-accent { color: #000 !important; }
[data-a11y="high-contrast"] .hero,
[data-a11y="high-contrast"] .card,
[data-a11y="high-contrast"] .manifesto,
[data-a11y="high-contrast"] .final-cta,
[data-a11y="high-contrast"] .footer,
[data-a11y="high-contrast"] .form-container,
[data-a11y="high-contrast"] .banner,
[data-a11y="high-contrast"] .hero-illustration .chip {
    background: #ffffff !important;
    border: 2px solid #000000;
    color: #000;
}
[data-a11y="high-contrast"] .banner h3,
[data-a11y="high-contrast"] .banner p,
[data-a11y="high-contrast"] .banner-tag { color: #000 !important; }
[data-a11y="high-contrast"] .banner-icon { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .banner-link { color: #000 !important; border-color: #000 !important; }
[data-a11y="high-contrast"] .hero h1,
[data-a11y="high-contrast"] .hero h1 span,
[data-a11y="high-contrast"] .section-header h2,
[data-a11y="high-contrast"] .manifesto blockquote,
[data-a11y="high-contrast"] .manifesto cite { color: #000 !important; }
[data-a11y="high-contrast"] .hero-illustration .core { background: #ffffff; border: 2px solid #000; }
[data-a11y="high-contrast"] .hero-illustration .core img { filter: brightness(0); }
[data-a11y="high-contrast"] .final-cta .btn-primary { background: #9C2F1F; color: #fff; }
[data-a11y="high-contrast"] .hero-slide {
    background: #ffffff !important;
    border: 2px solid #000000;
}
[data-a11y="high-contrast"] .hero-slide .hero-eyebrow { background: #fff; color: #000; border: 1px solid #000; }
[data-a11y="high-contrast"] .hero-slide p.lead,
[data-a11y="high-contrast"] .hero-slide .hero-stats span { color: #1a1a1a !important; }
[data-a11y="high-contrast"] .hero-slide .hero-stats strong { color: #000 !important; }
[data-a11y="high-contrast"] .hero-slide .btn-cta { background: #9C2F1F; color: #fff; }
[data-a11y="high-contrast"] .hero-slide .btn-outline { border-color: #000; color: #000; }
[data-a11y="high-contrast"] .hero-slide .conditions-ring { box-shadow: none; }
[data-a11y="high-contrast"] .carousel-arrow { background: #fff; color: #000; border: 2px solid #000; backdrop-filter: none; box-shadow: none; }
[data-a11y="high-contrast"] .carousel-arrow:hover { transform: translateY(-50%); }
[data-a11y="high-contrast"] .card .card-icon,
[data-a11y="high-contrast"] .step-number { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .conditions-ring { background: #fff !important; border: 3px solid #000; }
[data-a11y="high-contrast"] .conditions-ring::after { box-shadow: none; }
[data-a11y="high-contrast"] .legend-item { border: 2px solid #000; }
[data-a11y="high-contrast"] .legend-item .dot { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .badge { background: #fff !important; color: #000 !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .badge-active,
[data-a11y="high-contrast"] .badge-logrado,
[data-a11y="high-contrast"] .badge-completada,
[data-a11y="high-contrast"] .badge-promovido { border-color: #0b6b3a; border-width: 3px; }
[data-a11y="high-contrast"] .badge-pendiente,
[data-a11y="high-contrast"] .badge-programada,
[data-a11y="high-contrast"] .badge-en_progreso,
[data-a11y="high-contrast"] .badge-en_espera { border-color: #8a5a00; border-width: 3px; border-style: dashed; }
[data-a11y="high-contrast"] .badge-inactive,
[data-a11y="high-contrast"] .badge-cancelada,
[data-a11y="high-contrast"] .badge-cancelado,
[data-a11y="high-contrast"] .badge-no_asistio { border-color: #9C2F1F; border-width: 3px; }
[data-a11y="high-contrast"] .admin-filters,
[data-a11y="high-contrast"] .admin-panel { border: 2px solid #000; }
[data-a11y="high-contrast"] .btn-disabled { opacity: 0.6; }
[data-a11y="high-contrast"] .footer-brand img { filter: brightness(0); }
[data-a11y="high-contrast"] .footer-logo span,
[data-a11y="high-contrast"] .footer-brand p,
[data-a11y="high-contrast"] .footer-col a,
[data-a11y="high-contrast"] .footer-bottom { color: #000 !important; }
[data-a11y="high-contrast"] .footer-col a:hover { color: #9C2F1F !important; }
[data-a11y="high-contrast"] a { text-decoration: underline; }
[data-a11y="high-contrast"] .card:hover,
[data-a11y="high-contrast"] .banner:hover { transform: none; }
[data-a11y="high-contrast"] * { animation: none !important; transition: none !important; }

/* Persona neurodivergente: componentes propios, no cubiertos por los parches genéricos de arriba */
[data-a11y="high-contrast"] .points-pill { background: #fff !important; color: #000 !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .date-nav-label { color: #000 !important; }
[data-a11y="high-contrast"] .progress-bar { background: #fff; border: 2px solid #000; }
[data-a11y="high-contrast"] .progress-bar-fill { background: #000; }
[data-a11y="high-contrast"] .agenda-item,
[data-a11y="high-contrast"] .step-item { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .agenda-item.is-done,
[data-a11y="high-contrast"] .step-item.is-done { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .agenda-check { background: #fff; border: 2px solid #000; }
[data-a11y="high-contrast"] .calendar-cell { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .calendar-cell.is-today { border: 3px solid #000; }
[data-a11y="high-contrast"] .emotion-tile,
[data-a11y="high-contrast"] .pictogram-tile { background: #fff !important; border: 2px solid #000; color: #000 !important; }
[data-a11y="high-contrast"] .emotion-tile:hover,
[data-a11y="high-contrast"] .pictogram-tile:hover { transform: none; }
[data-a11y="high-contrast"] .sentence-strip { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .sentence-word { background: #fff !important; border: 2px solid #000; color: #000 !important; }
[data-a11y="high-contrast"] .availability-day { background: #fff !important; border: 2px solid #000; }
[data-a11y="high-contrast"] .availability-slot { background: #fff !important; border: 2px solid #000; color: #000 !important; }

/* Bajo estímulo: reduce animaciones y movimiento en toda la app, mantiene la paleta suave */
[data-a11y="calm"] * { animation: none !important; transition: none !important; }
[data-a11y="calm"] .card:hover,
[data-a11y="calm"] .banner:hover { transform: none; }
[data-a11y="calm"] .btn:hover { transform: none; }
[data-a11y="calm"] .carousel-arrow:hover { transform: translateY(-50%); }
[data-a11y="calm"] .blob { opacity: 0.25; filter: blur(6px); }
[data-a11y="calm"] .emotion-tile:hover,
[data-a11y="calm"] .pictogram-tile:hover { transform: none; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
    html { scroll-behavior: auto; }
}

/* Lectura fácil: tipografía más grande y espaciada, sin justificado, párrafos angostos */
[data-a11y="lectura-facil"] body { font-size: 1.15rem; line-height: 1.8; letter-spacing: 0.01em; }
[data-a11y="lectura-facil"] * { text-align: left !important; }
[data-a11y="lectura-facil"] p,
[data-a11y="lectura-facil"] li { max-width: 62ch; line-height: 1.8; }
[data-a11y="lectura-facil"] .card,
[data-a11y="lectura-facil"] .hero p,
[data-a11y="lectura-facil"] .manifesto blockquote { line-height: 1.8; }

/* Glosario en línea (términos técnicos con definición en lenguaje simple) */
.glosario-term { display: inline-flex; align-items: center; gap: 4px; position: relative; }
.glosario-def { display: inline-block; }
.glosario-def summary { cursor: pointer; list-style: none; font-size: 0.85em; }
.glosario-def summary::-webkit-details-marker { display: none; }
.glosario-def[open] p {
    position: absolute;
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    padding: 8px 12px;
    border-radius: 8px;
    max-width: 260px;
    font-size: 0.85rem;
    line-height: 1.5;
    z-index: 5;
    box-shadow: var(--shadow-md);
    margin-top: 4px;
}
