/* ===========================================
   MODO ALTO CONTRASTE - COMPLETO
   Colores optimizados para accesibilidad WCAG AAA
   =========================================== */

/* Variables para modo alto contraste */
:root {
    /* Colores de alto contraste */
    --hc-fondo: #000000;
    --hc-texto: #ffffff;
    --hc-enlaces: #ffff00;
    --hc-botones: #008000;
    --hc-botones-hover: #00ff00;
    --hc-bordes: #ffffff;
    --hc-accent: #ffa500;
    --hc-focus: #00ffff;
    --hc-fondo-claro: #111111;
    --hc-fondo-medio: #222222;
    --hc-fondo-oscuro: #333333;
}

/* Aplicar contraste a todo el sitio */
body {
    background-color: var(--hc-fondo) !important;
    color: var(--hc-texto) !important;
}

/* Asegurar que todo el texto sea legible */
p,
h1,
h2,
h3,
h4,
h5,
h6,
span,
li,
td,
th,
label {
    color: var(--hc-texto) !important;
}

/* Cabecera */
.cabecera {
    background-color: var(--hc-fondo) !important;
    border-bottom: 3px solid var(--hc-bordes) !important;
}

/* Navegación */
.navegacion {
    background-color: var(--hc-fondo) !important;
}

.menu a {
    color: var(--hc-texto) !important;
    border: 1px solid transparent !important;
}

.menu a:hover,
.menu a:focus,
.menu a:active {
    color: var(--hc-accent) !important;
    border: 1px solid var(--hc-focus) !important;
    background-color: var(--hc-fondo-oscuro) !important;
}

/* Botones flotantes */
.botones-flotantes {
    background-color: transparent !important;
}

.boton-flotante {
    background-color: var(--hc-botones) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.boton-flotante:hover,
.boton-flotante:focus {
    background-color: var(--hc-botones-hover) !important;
    border-color: var(--hc-focus) !important;
    color: var(--hc-fondo) !important;
}

.boton-whatsapp {
    background-color: #25D366 !important;
}

.boton-whatsapp:hover {
    background-color: #128C7E !important;
}

/* Botón subir cuando es visible */
#boton-subir:not(.oculto) {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

/* Hero section */
.hero {
    background: linear-gradient(135deg, var(--hc-fondo-medio) 0%, #444444 100%) !important;
    border: 3px solid var(--hc-bordes) !important;
}

.hero h1 {
    color: var(--hc-texto) !important;
    text-shadow: 2px 2px 0 var(--hc-fondo) !important;
}

.hero p {
    color: #cccccc !important;
}

/* Botones primarios */
.boton-primario {
    background-color: var(--hc-botones) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
    text-shadow: 1px 1px 0 var(--hc-fondo) !important;
}

.boton-primario:hover,
.boton-primario:focus,
.boton-primario:active {
    background-color: var(--hc-botones-hover) !important;
    border-color: var(--hc-focus) !important;
    color: var(--hc-fondo) !important;
}

/* Secciones */
.seccion {
    background-color: var(--hc-fondo) !important;
}

.seccion h2 {
    color: var(--hc-texto) !important;
    border-bottom: 3px solid var(--hc-accent) !important;
}

.seccion h2::after {
    background-color: var(--hc-accent) !important;
}

.subtitulo-seccion {
    color: #cccccc !important;
}

/* Acordeón horario */
.acordeon-horario {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.cabecera-acordeon {
    background-color: var(--hc-fondo-oscuro) !important;
    border: 2px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.cabecera-acordeon:hover,
.cabecera-acordeon:focus {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

.contenido-acordeon {
    background-color: var(--hc-fondo-claro) !important;
    border-color: var(--hc-bordes) !important;
}

.item-clase {
    border-bottom: 1px solid #444444 !important;
    color: var(--hc-texto) !important;
}

.boton-info-clase {
    border-color: var(--hc-accent) !important;
    color: var(--hc-accent) !important;
    background-color: transparent !important;
}

.boton-info-clase:hover {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

/* Tarjetas de estilos */
.grid-estilos {
    background-color: transparent !important;
}

.tarjeta-estilo {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.tarjeta-estilo:hover {
    border-color: var(--hc-accent) !important;
}

.estilo-icono {
    color: var(--hc-accent) !important;
    background-color: var(--hc-fondo-oscuro) !important;
}

.boton-plus {
    background-color: var(--hc-botones) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.boton-plus:hover {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

/* Tarjetas de viaje */
.tarjetas-viajes {
    background-color: transparent !important;
}

.tarjeta-viaje {
    background-color: var(--hc-fondo-claro) !important;
    border: 3px solid var(--hc-bordes) !important;
}

.tarjeta-viaje:hover {
    border-color: var(--hc-accent) !important;
}

.viaje-cabecera {
    background: linear-gradient(135deg, var(--hc-fondo-oscuro) 0%, #555555 100%) !important;
    border-bottom: 3px solid var(--hc-accent) !important;
    color: var(--hc-texto) !important;
}

.viaje-lista li {
    color: var(--hc-texto) !important;
}

.viaje-lista i {
    color: var(--hc-accent) !important;
}

.viaje-precio {
    color: var(--hc-accent) !important;
    border-top: 2px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo-medio) !important;
}

.boton-viaje {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

.boton-viaje:hover {
    background-color: var(--hc-botones-hover) !important;
    color: var(--hc-texto) !important;
}

.viaje-nota {
    background-color: var(--hc-fondo-medio) !important;
    border: 2px solid var(--hc-accent) !important;
    color: var(--hc-texto) !important;
}

.viaje-nota i {
    color: var(--hc-accent) !important;
}

/* Sección equipo */
.fondo-oscuro {
    background-color: var(--hc-fondo-medio) !important;
}

.grid-profesores {
    background-color: transparent !important;
}

.tarjeta-profesor {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.profesor-img {
    background: linear-gradient(135deg, #444444 0%, #666666 100%) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.profesor-info {
    background-color: transparent !important;
}

.profesor-especialidad {
    color: var(--hc-accent) !important;
}

.profesor-desc {
    color: #cccccc !important;
}

/* Sección Contacto */
#contacto {
    background: #000000 !important;
}

.contacto-contenedor {
    background-color: transparent !important;
}

.contacto-formulario {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.contacto-formulario h3 {
    color: var(--hc-accent) !important;
    border-bottom: 2px solid var(--hc-accent) !important;
}

.form-grupo label {
    color: var(--hc-texto) !important;
}

.formulario-contacto input,
.formulario-contacto textarea,
.formulario-contacto select {
    background-color: var(--hc-fondo-medio) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.formulario-contacto input:focus,
.formulario-contacto textarea:focus,
.formulario-contacto select:focus {
    border-color: var(--hc-focus) !important;
    outline: 2px solid var(--hc-focus) !important;
}

::placeholder {
    color: #888888 !important;
    opacity: 1 !important;
}

/* Checkboxes */
.checkbox input[type="checkbox"] {
    accent-color: var(--hc-accent) !important;
    transform: scale(1.2) !important;
}

.checkbox label {
    color: var(--hc-texto) !important;
}

.enlace-privacidad {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

/* Botón enviar */
.boton-enviar:disabled {
    background-color: #444444 !important;
    color: #888888 !important;
    border-color: #666666 !important;
    cursor: not-allowed !important;
}

.form-nota {
    color: #888888 !important;
}

/* Información de contacto */
.contacto-info {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.info-item {
    border-bottom: 1px solid #444444 !important;
    color: var(--hc-texto) !important;
}

.info-item i {
    color: var(--hc-accent) !important;
}

.info-item h3 {
    color: var(--hc-accent) !important;
}

/* Redes sociales */
.redes-sociales h3 {
    color: var(--hc-accent) !important;
}

.iconos-redes a {
    background-color: var(--hc-fondo-oscuro) !important;
    border: 1px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.iconos-redes a:hover {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-accent) !important;
}

/* Mapa */
.contacto-mapa h3 {
    color: var(--hc-accent) !important;
}

.mapa-contenedor {
    border: 2px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo-medio) !important;
}

/* Footer */
.pie-pagina {
    background-color: var(--hc-fondo-medio) !important;
    border-top: 3px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.footer-contenido {
    background-color: transparent !important;
}

.footer-columna h4 {
    color: var(--hc-accent) !important;
    border-bottom: 2px solid var(--hc-accent) !important;
}

.footer-columna ul li a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.footer-columna ul li a:hover {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

.footer-columna p a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.footer-columna p a:hover {
    color: var(--hc-focus) !important;
}

.footer-copyright {
    border-top: 2px solid var(--hc-bordes) !important;
    color: #888888 !important;
}

.footer-creditos {
    color: #aaaaaa !important;
}

/* Enlaces y focus generales */
a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

a:hover,
a:focus {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid var(--hc-focus) !important;
    outline-offset: 2px !important;
}

/* Botón menú móvil */
.boton-menu-movil {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.boton-menu-movil:hover,
.boton-menu-movil:focus {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

/* Modal (para videos de estilos) - Aunque no está en HTML, es buena práctica */
.modal-overlay {
    background-color: rgba(0, 0, 0, 0.9) !important;
}

.modal-contenido {
    background-color: var(--hc-fondo) !important;
    border: 3px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.cerrar-modal {
    background-color: var(--hc-botones) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.cerrar-modal:hover {
    background-color: #ff3333 !important;
    color: var(--hc-fondo) !important;
}

/* Estados de mensajes */
.mensaje-exito {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-botones) !important;
    color: var(--hc-texto) !important;
}

.mensaje-error {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid #ff3333 !important;
    color: var(--hc-texto) !important;
}

/* Clase para elementos solo lectores de pantalla */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    background-color: var(--hc-fondo) !important;
    color: var(--hc-texto) !important;
}

/* Enlaces especiales */
.enlace-direccion {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.enlace-whatsapp {
    color: #25D366 !important;
}

.enlace-email {
    color: var(--hc-enlaces) !important;
}

/* Ajustes para navegación móvil */
@media screen and (max-width: 767px) {
    .navegacion {
        background-color: var(--hc-fondo) !important;
        border-left: 3px solid var(--hc-bordes) !important;
    }

    .menu {
        background-color: var(--hc-fondo) !important;
    }

    .menu li {
        border-bottom: 1px solid var(--hc-bordes) !important;
    }

    .menu li a {
        color: var(--hc-texto) !important;
    }

    .menu li a:hover {
        background-color: var(--hc-fondo-oscuro) !important;
        color: var(--hc-accent) !important;
    }
}

/* Asegurar que imágenes mantengan contraste */
img {
    filter: contrast(1.2) brightness(0.9) !important;
}

/* Suavizar transiciones */
* {
    transition: background-color 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease !important;
}

/* Override para cualquier color inline */
*[style*="color"]:not([class*="no-contraste"]) {
    color: var(--hc-texto) !important;
}

*[style*="background"]:not([class*="no-contraste"]) {
    background-color: var(--hc-fondo) !important;
}

/* Botón idioma específico */
#boton-idioma .fa-language {
    color: var(--hc-texto) !important;
}

/* ===========================================
   ESTILOS ESPECÍFICOS PARA ACORDEÓN DE HORARIO
   =========================================== */

/* Contenedor del acordeón */
#acordeon-horario {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    border-radius: 0 !important;
}

/* Cada día del acordeón */
.dia-acordeon {
    margin-bottom: 2px !important;
    border: 1px solid var(--hc-bordes) !important;
    background-color: transparent !important;
}

/* Cabecera del acordeón (día de la semana) */
.cabecera-acordeon {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
    padding: 15px 20px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

.cabecera-acordeon:hover,
.cabecera-acordeon:focus {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-focus) !important;
}

.cabecera-acordeon[aria-expanded="true"] {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
}

/* Nombre del día */
.dia-nombre {
    color: inherit !important;
    margin: 0 !important;
    font-size: 1.2rem !important;
    font-weight: 600 !important;
}

/* Icono del acordeón */
.icono-acordeon {
    color: inherit !important;
    transition: transform 0.3s ease !important;
}

.icono-acordeon.abierto i {
    transform: rotate(180deg) !important;
    color: var(--hc-fondo) !important;
}

.icono-acordeon i {
    font-size: 1.2rem !important;
    color: inherit !important;
}

/* Contenido del acordeón (clases del día) */
.contenido-acordeon {
    background-color: var(--hc-fondo-claro) !important;
    border: 1px solid var(--hc-bordes) !important;
    border-top: none !important;
    padding: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
    transition: max-height 0.3s ease-out, visibility 0.3s ease-out !important;
}

.contenido-acordeon.abierto {
    max-height: 1000px !important;
    padding: 20px !important;
    visibility: visible !important;
}

/* Lista de clases */
.lista-clases {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Cada item de clase */
.item-clase {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid #444444 !important;
    color: var(--hc-texto) !important;
}

.item-clase:last-child {
    border-bottom: none !important;
}

/* Información de la clase */
.info-clase {
    flex: 1 !important;
}

.horario-clase {
    color: var(--hc-accent) !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    margin-bottom: 5px !important;
}

.nombre-clase {
    color: var(--hc-texto) !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    margin-bottom: 3px !important;
}

.nivel-clase {
    color: var(--hc-enlaces) !important;
    font-size: 0.9rem !important;
    font-weight: 400 !important;
    font-style: italic !important;
}

/* Botón "ver clase" */
.boton-info-clase {
    background-color: transparent !important;
    color: var(--hc-accent) !important;
    border: 2px solid var(--hc-accent) !important;
    padding: 8px 16px !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    white-space: nowrap !important;
    margin-left: 15px !important;
}

.boton-info-clase:hover,
.boton-info-clase:focus {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-accent) !important;
    outline: 2px solid var(--hc-focus) !important;
    outline-offset: 2px !important;
}

/* Estados específicos del acordeón */
.cabecera-acordeon:focus {
    outline: 3px solid var(--hc-focus) !important;
    outline-offset: 2px !important;
}

/* Cuando el acordeón está abierto */
.contenido-acordeon.abierto .item-clase {
    animation: fadeIn 0.5s ease !important;
}

@keyframes fadeIn {
    from {
        opacity: 0 !important;
        transform: translateY(-10px) !important;
    }

    to {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}

/* Responsive para acordeón */
@media screen and (max-width: 767px) {
    .cabecera-acordeon {
        padding: 12px 15px !important;
    }

    .contenido-acordeon.abierto {
        padding: 15px !important;
        visibility: visible !important;
    }

    .item-clase {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 15px 0 !important;
    }

    .boton-info-clase {
        margin-left: 0 !important;
        margin-top: 10px !important;
        width: 100% !important;
        text-align: center !important;
    }

    .dia-nombre {
        font-size: 1.1rem !important;
    }

    .nombre-clase {
        font-size: 1rem !important;
    }
}

/* ===========================================
   ESTILOS DE ALTO CONTRASTE PARA MODALES
   =========================================== */

/* Overlay del modal */
.modal-overlay {
    background-color: rgba(0, 0, 0, 0.95) !important;
}

/* Contenedor principal del modal */
.modal-contenedor {
    background-color: var(--hc-fondo-claro) !important;
    border: 3px solid var(--hc-bordes) !important;
    box-shadow: 0 10px 30px rgba(255, 255, 255, 0.1) !important;
    color: var(--hc-texto) !important;
}

/* Botón cerrar modal */
.modal-cerrar {
    background-color: var(--hc-botones) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.modal-cerrar:hover,
.modal-cerrar:focus {
    background-color: #ff3333 !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-focus) !important;
}

/* Cabecera del modal */
.modal-cabecera {
    border-bottom: 2px solid var(--hc-bordes) !important;
}

.modal-cabecera h2 {
    color: var(--hc-accent) !important;
}

/* Cuerpo del modal */
.modal-cuerpo {
    background-color: transparent !important;
    color: var(--hc-texto) !important;
}

/* Pie del modal */
.modal-pie {
    border-top: 2px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo-medio) !important;
}

/* Botón secundario del modal */
.boton-secundario {
    background-color: transparent !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.boton-secundario:hover {
    background-color: var(--hc-fondo-oscuro) !important;
    border-color: var(--hc-focus) !important;
}

/* Información del modal */
.modal-info {
    border-bottom: 1px solid var(--hc-bordes) !important;
    padding-bottom: 15px !important;
}

.modal-fecha,
.modal-precio {
    color: var(--hc-texto) !important;
}

.modal-fecha i,
.modal-precio i {
    color: var(--hc-accent) !important;
}

/* Descripción */
.modal-descripcion {
    color: var(--hc-texto) !important;
    border-left: 3px solid var(--hc-accent) !important;
    padding-left: 15px !important;
}

/* Detalles del viaje/clase */
.modal-detalles h3,
.modal-inclusiones h4 {
    color: var(--hc-accent) !important;
}

.modal-detalles ul {
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px !important;
    border: 1px solid var(--hc-bordes) !important;
}

.modal-detalles li {
    color: var(--hc-texto) !important;
}

.modal-detalles li:before {
    color: var(--hc-enlaces) !important;
}

/* Inclusiones */
.modal-incluye {
    background-color: #002200 !important;
    border-left: 4px solid var(--hc-botones) !important;
    color: var(--hc-texto) !important;
}

.modal-no-incluye {
    background-color: #220000 !important;
    border-left: 4px solid #ff3333 !important;
    color: var(--hc-texto) !important;
}

/* Aviso importante */
.modal-importante {
    background-color: #222200 !important;
    border-left: 4px solid var(--hc-accent) !important;
    color: var(--hc-texto) !important;
}

.modal-importante i {
    color: var(--hc-accent) !important;
}

/* Info específica de clases */
.modal-info-clase {
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px !important;
    border: 1px solid var(--hc-bordes) !important;
}

.modal-horario,
.modal-nivel,
.modal-profesor {
    background-color: var(--hc-fondo-claro) !important;
    border: 1px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.modal-horario i,
.modal-nivel i,
.modal-profesor i {
    color: var(--hc-accent) !important;
}

/* Recomendaciones */
.modal-recomendaciones {
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px !important;
    border: 1px solid var(--hc-bordes) !important;
}

/* Video (para estilos) */
.video-wrapper {
    border: 3px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo) !important;
}

/* CTA */
.modal-cta {
    background: linear-gradient(135deg, #333300 0%, #666600 100%) !important;
    border: 2px solid var(--hc-accent) !important;
    color: var(--hc-texto) !important;
}

.feature i {
    color: var(--hc-enlaces) !important;
}

/* Beneficios */
.modal-beneficios ul {
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px !important;
    border: 1px solid var(--hc-bordes) !important;
}

.modal-beneficios li:before {
    color: var(--hc-botones) !important;
}

/* Focus y accesibilidad */
.modal-contenedor:focus {
    outline: 3px solid var(--hc-focus) !important;
}

/* Responsive para modales */
@media (max-width: 768px) {
    .modal-contenedor {
        max-width: 95% !important;
        margin: 10px !important;
    }

    .modal-incluye,
    .modal-no-incluye {
        margin-bottom: 15px !important;
    }
}

/* Puntos de lista en modales */
.modal-recomendaciones li:before {
    color: var(--hc-enlaces) !important;
    /* Amarillo */
    /* Alternativa: color: var(--hc-accent) !important; */
    /* Naranja */
}

/* También todos los bullets del modal */
.modal-detalles li:before,
.modal-beneficios li:before {
    color: var(--hc-enlaces) !important;
}

/* Para los modales de estilos - duración y nivel */
.modal-info-estilo {
    background-color: var(--hc-fondo-medio) !important;
    border: 2px solid var(--hc-bordes) !important;
    padding: 15px !important;
}

.modal-nivel,
.modal-duracion {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.modal-nivel i,
.modal-duracion i {
    color: var(--hc-accent) !important;
}

.modal-nivel strong,
.modal-duracion strong {
    color: var(--hc-accent) !important;
}

/* ===========================================
   ESTILOS PARA PÁGINAS LEGALES
   =========================================== */

/* Página política de privacidad */
.politica-privacidad {
    background-color: var(--hc-fondo) !important;
    color: var(--hc-texto) !important;
}

.politica-contenido {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.fecha-actualizacion {
    color: var(--hc-accent) !important;
    border-bottom: 1px solid var(--hc-bordes) !important;
}

.seccion-politica {
    background-color: var(--hc-fondo-medio) !important;
    border: 1px solid var(--hc-bordes) !important;
    margin-bottom: 20px !important;
}

.seccion-politica h2 {
    color: var(--hc-accent) !important;
    border-bottom: 2px solid var(--hc-accent) !important;
}

.seccion-politica ul {
    background-color: var(--hc-fondo-claro) !important;
    padding: 15px !important;
    border: 1px solid var(--hc-bordes) !important;
}

.seccion-politica li {
    color: var(--hc-texto) !important;
}

.seccion-politica strong {
    color: var(--hc-enlaces) !important;
}

/* Sección de contacto en páginas legales */
.seccion-aviso.contacto-aviso {
    background-color: var(--hc-fondo-medio) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.info-contacto {
    background-color: var(--hc-fondo-claro) !important;
    padding: 15px !important;
    border: 1px solid var(--hc-bordes) !important;
}

.info-contacto strong {
    color: var(--hc-accent) !important;
}

.info-contacto a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.info-contacto a:hover {
    color: var(--hc-focus) !important;
}

/* Botón volver */
.boton-volver-container {
    border-top: 2px solid var(--hc-bordes) !important;
    padding-top: 20px !important;
}

/* Enlaces dentro de contenido legal */
.seccion-politica a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.seccion-politica a:hover {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

/* Iconos en páginas legales */
.seccion-politica .fa-user-tie,
.seccion-politica .fa-bullseye,
.seccion-politica .fa-balance-scale,
.seccion-politica .fa-database,
.seccion-politica .fa-share-alt,
.seccion-politica .fa-gavel,
.seccion-politica .fa-users,
.seccion-politica .fa-shield-alt,
.seccion-politica .fa-cookie-bite,
.seccion-politica .fa-child,
.seccion-politica .fa-headset {
    color: var(--hc-accent) !important;
}

/* Asegurar que todas las tablas sean legibles */
table {
    border: 2px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo-claro) !important;
}

th {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    border: 1px solid var(--hc-bordes) !important;
}

td {
    background-color: var(--hc-fondo-claro) !important;
    color: var(--hc-texto) !important;
    border: 1px solid var(--hc-bordes) !important;
}

/* ===========================================
   ESTILOS PARA TÉRMINOS Y CONDICIONES
   =========================================== */

/* Página términos y condiciones */
.terminos-condiciones {
    background-color: var(--hc-fondo) !important;
    color: var(--hc-texto) !important;
}

.terminos-contenido {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    padding: 30px !important;
}

.seccion-terminos {
    background-color: var(--hc-fondo-medio) !important;
    border: 1px solid var(--hc-bordes) !important;
    margin-bottom: 25px !important;
    padding: 20px !important;
    border-radius: 4px !important;
}

.seccion-terminos h2 {
    color: var(--hc-accent) !important;
    border-bottom: 2px solid var(--hc-accent) !important;
    padding-bottom: 10px !important;
    margin-bottom: 15px !important;
}

.seccion-terminos ul {
    background-color: var(--hc-fondo-claro) !important;
    padding: 15px 20px 15px 40px !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
}

.seccion-terminos li {
    color: var(--hc-texto) !important;
    margin-bottom: 8px !important;
}

.seccion-terminos strong {
    color: var(--hc-enlaces) !important;
}

/* Listas anidadas en viajes */
.seccion-terminos ul ul {
    background-color: var(--hc-fondo-medio) !important;
    margin-top: 8px !important;
    margin-left: 20px !important;
    padding: 10px 15px 10px 30px !important;
}

.seccion-terminos ul ul li {
    color: #cccccc !important;
}

/* Iconos específicos de términos */
.seccion-terminos .fa-edit,
.seccion-terminos .fa-credit-card,
.seccion-terminos .fa-calendar-check,
.seccion-terminos .fa-ban,
.seccion-terminos .fa-plane,
.seccion-terminos .fa-copyright,
.seccion-terminos .fa-exclamation-triangle,
.seccion-terminos .fa-shield-alt,
.seccion-terminos .fa-exchange-alt,
.seccion-terminos .fa-balance-scale {
    color: var(--hc-accent) !important;
    margin-right: 10px !important;
}

/* Botones legales */
.botones-legales {
    border-top: 2px solid var(--hc-bordes) !important;
    padding-top: 25px !important;
    margin-top: 30px !important;
    text-align: center !important;
}

/* Enlaces dentro de términos */
.seccion-terminos a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.seccion-terminos a:hover {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

/* Introducción */
.seccion-terminos:first-of-type p {
    font-size: 1.1rem !important;
    line-height: 1.6 !important;
    color: #cccccc !important;
    padding: 15px !important;
    background-color: var(--hc-fondo-medio) !important;
    border-left: 4px solid var(--hc-accent) !important;
}

/* ===========================================
   ESTILOS PARA AVISO LEGAL
   =========================================== */

/* Página aviso legal */
.aviso-legal {
    background-color: var(--hc-fondo) !important;
    color: var(--hc-texto) !important;
}

.aviso-contenido {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    padding: 30px !important;
}

.seccion-aviso {
    background-color: var(--hc-fondo-medio) !important;
    border: 1px solid var(--hc-bordes) !important;
    margin-bottom: 25px !important;
    padding: 20px !important;
    border-radius: 4px !important;
}

.seccion-aviso h2 {
    color: var(--hc-accent) !important;
    border-bottom: 2px solid var(--hc-accent) !important;
    padding-bottom: 10px !important;
    margin-bottom: 15px !important;
}

/* Datos de empresa específicos */
.datos-empresa {
    background-color: var(--hc-fondo-claro) !important;
    padding: 20px !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
}

.datos-empresa p {
    margin-bottom: 10px !important;
    color: var(--hc-texto) !important;
}

.datos-empresa strong {
    color: var(--hc-enlaces) !important;
    min-width: 180px !important;
    display: inline-block !important;
}

/* Listas en aviso legal */
.seccion-aviso ul {
    background-color: var(--hc-fondo-claro) !important;
    padding: 15px 20px 15px 40px !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
}

.seccion-aviso li {
    color: var(--hc-texto) !important;
    margin-bottom: 10px !important;
}

/* Listas anidadas en limitación de responsabilidad */
.seccion-aviso ul ul {
    background-color: var(--hc-fondo-medio) !important;
    margin-top: 8px !important;
    margin-left: 20px !important;
    padding: 10px 15px 10px 30px !important;
}

.seccion-aviso ul ul li {
    color: #cccccc !important;
    font-size: 0.95rem !important;
}

/* Iconos específicos de aviso legal */
.seccion-aviso .fa-id-card,
.seccion-aviso .fa-file-contract,
.seccion-aviso .fa-copyright,
.seccion-aviso .fa-exclamation-triangle,
.seccion-aviso .fa-link,
.seccion-aviso .fa-database,
.seccion-aviso .fa-cookie-bite,
.seccion-aviso .fa-gavel,
.seccion-aviso .fa-sync-alt {
    color: var(--hc-accent) !important;
    margin-right: 10px !important;
}

/* Párrafos sin listas */
.seccion-aviso p:not(.datos-empresa p) {
    color: var(--hc-texto) !important;
    padding: 15px !important;
    background-color: var(--hc-fondo-claro) !important;
    border-left: 4px solid var(--hc-bordes) !important;
    line-height: 1.6 !important;
}

/* Enlaces dentro de aviso legal */
.seccion-aviso a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.seccion-aviso a:hover {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

/* Listas especiales con viñetas */
.seccion-aviso ul li::marker {
    color: var(--hc-accent) !important;
}

/* Responsive para datos de empresa */
@media (max-width: 768px) {
    .datos-empresa strong {
        min-width: 140px !important;
        display: block !important;
        margin-bottom: 5px !important;
    }

    .datos-empresa p {
        margin-bottom: 15px !important;
    }
}

/* ===========================================
   ESTILOS PARA POLÍTICA DE COOKIES
   =========================================== */

/* Página política de cookies */
.politica-cookies {
    background-color: var(--hc-fondo) !important;
    color: var(--hc-texto) !important;
}

.cookies-contenido {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    padding: 30px !important;
}

.seccion-cookies {
    background-color: var(--hc-fondo-medio) !important;
    border: 1px solid var(--hc-bordes) !important;
    margin-bottom: 25px !important;
    padding: 20px !important;
    border-radius: 4px !important;
}

.seccion-cookies h2 {
    color: var(--hc-accent) !important;
    border-bottom: 2px solid var(--hc-accent) !important;
    padding-bottom: 10px !important;
    margin-bottom: 15px !important;
}

.seccion-cookies h3 {
    color: var(--hc-enlaces) !important;
    margin: 15px 0 10px 0 !important;
}

/* Tabla de cookies */
.tabla-cookies {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    margin: 20px 0 !important;
}

.fila-cabecera {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    display: flex !important;
    border-bottom: 2px solid var(--hc-bordes) !important;
}

.fila {
    display: flex !important;
    border-bottom: 1px solid #444444 !important;
}

.fila:last-child {
    border-bottom: none !important;
}

.fila-cabecera .columna,
.fila .columna {
    flex: 1 !important;
    padding: 15px !important;
    color: var(--hc-texto) !important;
}

.fila-cabecera .columna {
    font-weight: 600 !important;
    color: var(--hc-accent) !important;
}

.fila .columna strong {
    color: var(--hc-enlaces) !important;
}

/* Lista detallada de cookies */
.lista-detallada {
    background-color: var(--hc-fondo-claro) !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
    padding: 20px !important;
    margin: 20px 0 !important;
}

.cookie-item {
    background-color: var(--hc-fondo-medio) !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
    padding: 15px !important;
    margin-bottom: 15px !important;
}

.cookie-item:last-child {
    margin-bottom: 0 !important;
}

.cookie-item h3 {
    color: var(--hc-accent) !important;
    margin-bottom: 10px !important;
}

.cookie-item ul {
    padding-left: 25px !important;
}

.cookie-item li {
    color: var(--hc-texto) !important;
    margin-bottom: 5px !important;
}

.cookie-item strong {
    color: var(--hc-enlaces) !important;
}

/* Configuración navegadores */
.config-navegadores {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    gap: 15px !important;
    margin: 15px 0 !important;
}

.navegador {
    background-color: var(--hc-fondo-claro) !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
    padding: 15px !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
}

.navegador:hover {
    background-color: var(--hc-fondo-medio) !important;
    border-color: var(--hc-accent) !important;
}

.navegador i {
    font-size: 2rem !important;
    color: var(--hc-accent) !important;
    margin-bottom: 10px !important;
    display: block !important;
}

.navegador span {
    color: var(--hc-texto) !important;
    display: block !important;
}

.navegador a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.navegador a:hover {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

/* Iconos específicos de cookies */
.seccion-cookies .fa-info-circle,
.seccion-cookies .fa-list,
.seccion-cookies .fa-cookie,
.seccion-cookies .fa-cogs,
.seccion-cookies .fa-exclamation-circle,
.seccion-cookies .fa-sync-alt {
    color: var(--hc-accent) !important;
    margin-right: 10px !important;
}

/* Iconos dentro de lista detallada */
.cookie-item .fa-chart-line,
.cookie-item .fa-language,
.cookie-item .fa-adjust {
    color: var(--hc-accent) !important;
    margin-right: 8px !important;
}

/* Iconos navegadores */
.fa-chrome {
    color: #4285F4 !important;
}

.fa-firefox {
    color: #FF7139 !important;
}

.fa-safari {
    color: #000000 !important;
}

.fa-edge {
    color: #0078D7 !important;
}

/* Sección de contacto cookies */
.contacto-cookies {
    background-color: var(--hc-fondo-medio) !important;
    border: 2px solid var(--hc-accent) !important;
}

/* Listas generales en cookies */
.seccion-cookies ul {
    background-color: var(--hc-fondo-claro) !important;
    padding: 15px 20px 15px 40px !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
    margin: 15px 0 !important;
}

.seccion-cookies li {
    color: var(--hc-texto) !important;
    margin-bottom: 8px !important;
}

.seccion-cookies strong {
    color: var(--hc-enlaces) !important;
}

/* Párrafos en cookies */
.seccion-cookies p {
    color: #cccccc !important;
    line-height: 1.6 !important;
    margin-bottom: 15px !important;
}

/* Enlaces */
.seccion-cookies a {
    color: var(--hc-enlaces) !important;
    text-decoration: underline !important;
}

.seccion-cookies a:hover {
    color: var(--hc-focus) !important;
    text-decoration: none !important;
}

/* Responsive para tabla */
@media (max-width: 768px) {

    .fila-cabecera,
    .fila {
        flex-direction: column !important;
    }

    .fila-cabecera .columna,
    .fila .columna {
        padding: 10px !important;
        border-bottom: 1px solid #444444 !important;
    }

    .fila-cabecera .columna:last-child,
    .fila .columna:last-child {
        border-bottom: none !important;
    }

    .config-navegadores {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 480px) {
    .config-navegadores {
        grid-template-columns: 1fr !important;
    }
}

/* Tabla de cookies - colores específicos */
.fila-cabecera {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-accent) !important;
    border-bottom: 3px solid var(--hc-bordes) !important;
}

.fila-cabecera .columna {
    color: var(--hc-accent) !important;
    font-weight: 700 !important;
    background-color: var(--hc-fondo-oscuro) !important;
}

/* Filas alternas para mejor legibilidad */
.fila:nth-child(odd) {
    background-color: var(--hc-fondo-claro) !important;
}

.fila:nth-child(even) {
    background-color: var(--hc-fondo-medio) !important;
}

.fila .columna {
    color: var(--hc-texto) !important;
    border-right: 1px solid #444444 !important;
}

.fila .columna:last-child {
    border-right: none !important;
}

/* Resaltar tipo de cookie */
.fila .columna:first-child strong {
    color: var(--hc-enlaces) !important;
    background-color: var(--hc-fondo-oscuro) !important;
    padding: 3px 8px !important;
    border-radius: 3px !important;
    display: inline-block !important;
}

/* Ejemplos en tercera columna */
.fila .columna:last-child {
    color: #cccccc !important;
    font-style: italic !important;
}

/* Hover en filas */
.fila:hover {
    background-color: var(--hc-fondo-oscuro) !important;
    border-left: 3px solid var(--hc-accent) !important;
}

.fila:hover .columna {
    color: var(--hc-texto) !important;
}

.fila:hover .columna:first-child strong {
    color: var(--hc-focus) !important;
    background-color: var(--hc-accent) !important;
}

/* ===========================================
   ALTO CONTRASTE - SECCIÓN EQUIPO
   =========================================== */

/* Fondo de sección */
#equipo {
    background-color: var(--hc-fondo) !important;
    border-top: 3px solid var(--hc-bordes) !important;
    border-bottom: 3px solid var(--hc-bordes) !important;
    padding: 40px 0 !important;
}

/* Título */
#equipo h2 {
    color: var(--hc-accent) !important;
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px 25px !important;
    border: 3px solid var(--hc-bordes) !important;
    display: inline-block !important;
    margin-bottom: 20px !important;
}

/* Subtítulo */
#equipo .subtitulo-seccion {
    color: var(--hc-texto) !important;
    background-color: var(--hc-fondo-claro) !important;
    padding: 12px 20px !important;
    border: 2px solid var(--hc-bordes) !important;
    margin-bottom: 30px !important;
}

/* Grid de profesores */
.grid-profesores-clasico {
    background-color: var(--hc-fondo-medio) !important;
    padding: 20px !important;
    border: 2px solid var(--hc-bordes) !important;
    border-radius: 8px !important;
}

/* Tarjeta de profesor */
.tarjeta-profesor-clasico {
    background-color: var(--hc-fondo-claro) !important;
    border: 3px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.tarjeta-profesor-clasico:hover {
    border-color: var(--hc-accent) !important;
    box-shadow: 0 0 0 3px var(--hc-accent) !important;
}

/* Imagen de profesor */
.profesor-img-clasico {
    border-bottom: 3px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo-oscuro) !important;
}

.profesor-img-clasico img {
    border: 2px solid var(--hc-bordes) !important;
    filter: contrast(1.5) brightness(1.2) !important;
}

/* Información del profesor */
.profesor-info-clasico {
    background-color: var(--hc-fondo-claro) !important;
}

.profesor-info-clasico h3 {
    color: var(--hc-focus) !important;
    border-bottom: 2px solid var(--hc-bordes) !important;
    padding-bottom: 8px !important;
}

/* Especialidad (sin viñeta) */
.profesor-especialidad-clasico {
    color: var(--hc-enlaces) !important;
    background-color: var(--hc-fondo-oscuro) !important;
    padding: 8px 12px !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
    margin: 10px 0 !important;
}

.profesor-especialidad-clasico::before {
    display: none !important;
}

/* Descripción */
.profesor-desc-clasico {
    color: #dddddd !important;
    background-color: var(--hc-fondo-medio) !important;
    padding: 12px !important;
    border: 1px solid var(--hc-bordes) !important;
    border-radius: 4px !important;
}

/* Badge de estilo */
.badge-estilo {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-accent) !important;
    border: 2px solid var(--hc-accent) !important;
    padding: 6px 12px !important;
    font-weight: 700 !important;
}

/* ===========================================
   ALTO CONTRASTE - SECCIÓN TESTIMONIOS
   =========================================== */

/* Fondo de sección */
#testimonios {
    background-color: var(--hc-fondo) !important;
    border-top: 3px solid var(--hc-bordes) !important;
    border-bottom: 3px solid var(--hc-bordes) !important;
    padding: 40px 0 !important;
}

/* Título */
#testimonios h2 {
    color: var(--hc-accent) !important;
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px 25px !important;
    border: 3px solid var(--hc-bordes) !important;
    display: inline-block !important;
    margin-bottom: 20px !important;
}

/* Subtítulo */
#testimonios .subtitulo-seccion {
    color: var(--hc-texto) !important;
    background-color: var(--hc-fondo-claro) !important;
    padding: 12px 20px !important;
    border: 2px solid var(--hc-bordes) !important;
    margin-bottom: 30px !important;
}

/* Contenedor del carousel */
.carousel-contenedor {
    background-color: var(--hc-fondo-claro) !important;
    border: 3px solid var(--hc-bordes) !important;
    box-shadow: 0 5px 15px rgba(255, 255, 255, 0.1) !important;
}

/* Tarjeta de testimonio */
.tarjeta-testimonio {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.tarjeta-testimonio.activo {
    border-color: var(--hc-accent) !important;
    box-shadow: 0 0 0 3px var(--hc-accent) !important;
}

/* Foto del testimonio */
.testimonio-foto {
    border: 3px solid var(--hc-bordes) !important;
    background-color: var(--hc-fondo-oscuro) !important;
}

.testimonio-foto img {
    border: 2px solid var(--hc-texto) !important;
    filter: contrast(1.5) brightness(1.2) !important;
}

/* Cita del testimonio */
.testimonio-cita::before {
    color: var(--hc-accent) !important;
}

.testimonio-cita p {
    color: var(--hc-texto) !important;
    background-color: var(--hc-fondo-medio) !important;
    border-left: 4px solid var(--hc-accent) !important;
    padding: 15px !important;
}

/* Información del testimonio */
.testimonio-info {
    border-top: 2px solid var(--hc-bordes) !important;
}

.testimonio-info h3 {
    color: var(--hc-focus) !important;
}

.testimonio-info>p {
    color: var(--hc-accent) !important;
    background-color: var(--hc-fondo-oscuro) !important;
    padding: 5px 10px !important;
    border-radius: 4px !important;
    display: inline-block !important;
}

/* Estilo de baile */
.estilo-baile {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-accent) !important;
}

.estilo-baile i {
    color: var(--hc-accent) !important;
}

/* Controles del carousel */
.carousel-controles {
    background-color: var(--hc-fondo-medio) !important;
    padding: 15px !important;
    border: 2px solid var(--hc-bordes) !important;
}

.carousel-boton {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.carousel-boton:hover:not(:disabled) {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-accent) !important;
}

.carousel-boton:disabled {
    background-color: #444444 !important;
    color: #888888 !important;
    border-color: #666666 !important;
}

/* Indicadores */
.carousel-indicadores {
    background-color: var(--hc-fondo-claro) !important;
    padding: 10px !important;
    border-radius: 20px !important;
    border: 1px solid var(--hc-bordes) !important;
}

.carousel-indicador {
    background-color: var(--hc-fondo-oscuro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.carousel-indicador.activo {
    background-color: var(--hc-accent) !important;
    border-color: var(--hc-texto) !important;
}

/* Timer */
.carousel-timer {
    background-color: var(--hc-fondo-oscuro) !important;
    border: 1px solid var(--hc-bordes) !important;
}

.timer-progreso {
    background-color: var(--hc-accent) !important;
}

/* ===========================================
   RESPONSIVE - ALTO CONTRASTE
   =========================================== */

@media screen and (max-width: 768px) {

    /* Equipo */
    #equipo,
    #testimonios {
        padding: 30px 0 !important;
    }

    #equipo h2,
    #testimonios h2 {
        padding: 12px 20px !important;
        font-size: 1.5rem !important;
        width: 90% !important;
        text-align: center !important;
        margin: 0 auto 20px !important;
    }

    .subtitulo-seccion {
        padding: 10px 15px !important;
        font-size: 1rem !important;
        width: 90% !important;
        margin: 0 auto 25px !important;
        text-align: center !important;
    }

    .grid-profesores-clasico {
        padding: 15px !important;
    }

    /* Testimonios */
    .carousel-contenedor {
        margin: 0 10px !important;
    }
}

/* ===========================================
   EFECTOS HOVER - ALTO CONTRASTE
   =========================================== */

.tarjeta-profesor-clasico:hover .profesor-info-clasico h3 {
    color: var(--hc-focus) !important;
}

.tarjeta-profesor-clasico:hover .profesor-especialidad-clasico {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-focus) !important;
}

.tarjeta-profesor-clasico:hover .badge-estilo {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-focus) !important;
}

.tarjeta-profesor-clasico:hover .profesor-img-clasico img {
    filter: brightness(1.3) contrast(1.5) saturate(1.2) !important;
    border: 2px solid var(--hc-focus) !important;
}

.tarjeta-testimonio.activo .testimonio-foto img {
    filter: brightness(1.3) contrast(1.5) saturate(1.2) !important;
    border: 2px solid var(--hc-focus) !important;
}

/* ===========================================
   FORZAR FONDO NEGRO EN SECCIONES
   =========================================== */

/* Anular cualquier fondo que no sea negro */
#equipo,
#testimonios {
    background-color: var(--hc-fondo) !important;
    background-image: none !important;
}

/* Anular cualquier pseudo-elemento que añada fondos */
#equipo::before,
#equipo::after,
#testimonios::before,
#testimonios::after {
    display: none !important;
    content: none !important;
    background: none !important;
}

/* Anular cualquier gradiente o patrón */
#equipo .contenedor,
#testimonios .contenedor {
    background-color: transparent !important;
    background-image: none !important;
}

/* Asegurar que el contenido también tenga fondo negro */
.seccion#equipo,
.seccion#testimonios {
    background-color: var(--hc-fondo) !important;
    background: var(--hc-fondo) !important;
}

/* Forzar sobre cualquier otro estilo */
body #equipo,
body #testimonios {
    background: #000000 !important;
    background-color: #000000 !important;
}

/* En modo contraste alto, asegurar prioridad máxima */
body.contraste-alto #equipo,
body.contraste-alto #testimonios,
html[data-contraste="alto"] #equipo,
html[data-contraste="alto"] #testimonios {
    background: #000000 !important;
    background-color: #000000 !important;
}

/* Botón "Ver planes" en alto contraste */
body .boton-secundario {
    background-color: transparent !important;
    color: #ffff00 !important;
    border: 3px solid #ffff00 !important;
    font-weight: 700 !important;
}

body .boton-secundario:hover,
body .boton-secundario:focus {
    background-color: #ffff00 !important;
    color: #000000 !important;
    outline: 3px solid #00ffff !important;
    outline-offset: 2px;
}

/* ===========================================
   ALTO CONTRASTE - SECCIÓN ESTILOS
   =========================================== */

/* Fondo negro para toda la sección */

#estilos {
    background: #000000 !important;
    background-color: #000000 !important;
    border-top: 3px solid #ffffff !important;
    border-bottom: 3px solid #ffffff !important;
}

#estilos h2 {
    color: #ffffff !important;
}

#estilos .subtitulo-seccion {
    color: #ffffff !important;
}

/* ===========================================
   ALTO CONTRASTE - SECCIÓN PLANES
   =========================================== */

#planes {
    background: #000000 !important;
    background-color: #000000 !important;
    border-top: 3px solid #ffffff !important;
    border-bottom: 3px solid #ffffff !important;
}

#planes h2 {
    color: #ffffff !important;
}

#planes .subtitulo-seccion {
    color: #ffffff !important;
}

/* Tarjetas de planes */
.tarjeta-plan {
    background: #111111 !important;
    border: 3px solid #ffffff !important;
}

/* Cabecera de planes (parte azul) */
.plan-cabecera {
    background: #222222 !important;
    color: #ffffff !important;
    border-bottom: 3px solid #ffff00 !important;
}

/* Precio en planes */
.precio {
    color: #ffff00 !important;
}

/* Texto de la lista de beneficios */
.plan-lista li {
    color: #cccccc !important;
}

/* Iconos de check en planes */
.plan-lista i {
    color: #ffff00 !important;
}

/* Botón Comenzar en planes */
.boton-plan {
    background: #008000 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

.boton-plan:hover {
    background: #00ff00 !important;
    color: #000000 !important;
}

/* Plan popular - etiqueta */
.plan-etiqueta {
    background: #ffff00 !important;
    color: #000000 !important;
    border: 2px solid #ffffff !important;
}

/* Plan popular - borde especial */
.plan-popular {
    border: 3px solid #ffff00 !important;
}

/* ===========================================
   ALTO CONTRASTE - SECCIÓN EVENTOS
   =========================================== */

/* Fondo de sección */
#eventos {
    background: #000000 !important;
    border-top: 3px solid var(--hc-bordes) !important;
    border-bottom: 3px solid var(--hc-bordes) !important;
    padding: var(--espacio-xl) 0 !important;
}

/* Título */
#eventos h2 {
    color: var(--hc-accent) !important;
    border-bottom: 3px solid var(--hc-accent) !important;
}

#eventos h2::after {
    background-color: var(--hc-accent) !important;
}

/* Subtítulo */
#eventos .subtitulo-seccion {
    color: #cccccc !important;
}

/* Contenedor del carrusel */
.eventos-carrusel-contenedor {
    background-color: transparent !important;
}

/* Pista del carrusel */
.eventos-carrusel-pista {
    background-color: transparent !important;
}

/* Tarjeta de evento */
.evento-tarjeta {
    background-color: var(--hc-fondo-claro) !important;
    border: 3px solid var(--hc-bordes) !important;
    box-shadow: none !important;
}

.evento-tarjeta:hover {
    border-color: var(--hc-accent) !important;
}

/* Imagen del evento */
.evento-imagen {
    border-bottom: 2px solid var(--hc-bordes) !important;
    filter: contrast(1.3) brightness(1.1) !important;
}

.evento-imagen:hover {
    filter: contrast(1.5) brightness(1.2) !important;
}

/* Información del evento */
.evento-info {
    background-color: var(--hc-fondo-claro) !important;
}

.evento-titulo {
    color: var(--hc-texto) !important;
}

.evento-fecha {
    color: var(--hc-accent) !important;
}

.evento-fecha i {
    color: var(--hc-accent) !important;
}

/* Botón Ver más */
.evento-ver-mas {
    background-color: var(--hc-botones) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.evento-ver-mas:hover {
    background-color: var(--hc-botones-hover) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-focus) !important;
}

.evento-ver-mas:focus-visible {
    outline: 3px solid var(--hc-focus) !important;
    outline-offset: 2px !important;
}

/* Badge destacado */
.evento-tarjeta .destacado-badge {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border: 2px solid var(--hc-bordes) !important;
}

/* Controles del carrusel */
.eventos-carrusel-controles {
    background-color: transparent !important;
}

.eventos-carrusel-boton {
    background-color: var(--hc-fondo-oscuro) !important;
    color: var(--hc-texto) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.eventos-carrusel-boton:hover:not(:disabled) {
    background-color: var(--hc-accent) !important;
    color: var(--hc-fondo) !important;
    border-color: var(--hc-focus) !important;
}

.eventos-carrusel-boton:disabled {
    opacity: 0.3 !important;
    background-color: #444444 !important;
    border-color: #666666 !important;
}

/* Indicadores */
.eventos-carrusel-indicadores {
    background-color: transparent !important;
}

.eventos-indicador {
    background-color: var(--hc-fondo-oscuro) !important;
    border: 2px solid var(--hc-bordes) !important;
}

.eventos-indicador.activo {
    background-color: var(--hc-accent) !important;
    border-color: var(--hc-texto) !important;
    box-shadow: 0 0 0 2px var(--hc-accent) !important;
}

.eventos-indicador:hover:not(.activo) {
    background-color: var(--hc-fondo-medio) !important;
}

/* Mensaje vacío */
.eventos-vacio {
    background-color: var(--hc-fondo-claro) !important;
    border: 2px solid var(--hc-bordes) !important;
    color: var(--hc-texto) !important;
}

.eventos-vacio p {
    color: var(--hc-texto) !important;
}

/* Responsive */
@media screen and (max-width: 768px) {
    #eventos {
        padding: var(--espacio-lg) 0 !important;
    }

    .evento-tarjeta {
        border-width: 2px !important;
    }
}