/* ============================
   MEDIA QUERIES RESPONSIVAS
   ============================ */

/* MENÚ HAMBURGUESA - Oculto por defecto */
.hamburger-btn {display: none;}
.menu-overlay {display: none;}



@media (max-width: 470px) {
    .btn-catalogo {width:100%!important;}   
    .c-top {margin: 0px;}
    .btn-catalogo span.texto-catalogo {font-size: 24px!important;}
}


/* ============================
   320 - 574px
   ============================ */

/* Very Small devices (small phones, 320px - 574px) */
@media (min-width: 320px) and (max-width: 574.98px) {
    /* VALORES - Layout responsivo para móviles pequeños (2 columnas) */
    .valores {
        flex-wrap: wrap;
        position: relative;
        max-width: 100%;
        padding: 0px;
    }
    
    .valor {
        width: calc(50% - 10px);
        margin: 0 5px 15px 5px;
        opacity: 1;
        transition: opacity 0.3s ease;
        position: relative;
    }
    .caja-valor {scale: 0.9}
    .tit-banner{line-height: 1; padding-top: 15px; padding-bottom: 15px; }
    .frase-1{font-size: 32px;}
    .call-selector .texto-rojo{width: 80%; margin: 0 auto; margin-bottom: 10px;}
    /* Hacer que el texto expandido no desplace elementos */
    .valor .p-valor {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: inherit;
        z-index: 10;
        padding: 8px;
        border-radius: 0 0 6px 6px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.1);
        font-size: 12px;
    }
    
    /* Atenuar valores de abajo cuando se despliega alguno de arriba */
    .valor:nth-child(1):hover ~ .valor:nth-child(3),
    .valor:nth-child(1):hover ~ .valor:nth-child(4),
    .valor:nth-child(1):hover ~ .valor:nth-child(5),
    .valor:nth-child(1):hover ~ .valor:nth-child(6),
    .valor:nth-child(2):hover ~ .valor:nth-child(3),
    .valor:nth-child(2):hover ~ .valor:nth-child(4),
    .valor:nth-child(2):hover ~ .valor:nth-child(5),
    .valor:nth-child(2):hover ~ .valor:nth-child(6) {
        opacity: 0.3;
    }
    
    /* Asegurar que el hover funcione correctamente */
    .valor:hover .p-valor {
        opacity: 1;
        max-height: none;
        color: var(--dark-gray);
    }
}

/* ============================
   < 575
   ============================ */

/* Extra Small devices (phones, menos de 576px) */
@media (max-width: 575.98px) {
    :root {
        --header-h: 70px;
        --logo-h: 40px;
        --btn-iti-txt-xl: 10px;
        --btn-iti-txt-l: 8px;
        --btn-iti-txt-s: 7px;
    }
    
    body { font-size: 14px;}

    /* HEADER RESPONSIVO */
    header.header{
        flex-direction: column!important;
        height: auto;
        min-height: var(--header-h);
        position: fixed!important;
        padding-top: 15px;
    }
    
    .logo-claim{
        width: 100%; 
        justify-content: center; 
        align-items: center; 
        padding: 13px 0; 
    }
    
    .c-logo{
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding: 0 20px;
        position: relative;
    }

    /* MENÚ HAMBURGUESA */
    .hamburger-btn {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 1001;
        transition: all 0.3s ease;
    }

    .hamburger-line {
        width: 25px;
        height: 3px;
        background-color: white;
        margin: 2px 0;
        transition: all 0.3s ease;
        border-radius: 2px;
    }

    /* Animación del botón hamburguesa cuando está activo */
    .hamburger-btn.active .hamburger-line:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .hamburger-btn.active .hamburger-line:nth-child(2) {
        opacity: 0;
    }

    .hamburger-btn.active .hamburger-line:nth-child(3) {
        transform: rotate(-45deg) translate(7px, -6px);
    }

    /* MENÚ NAVEGACIÓN MÓVIL - DROPDOWN DESDE HEADER */
    .navbar {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background-color: var(--primary);
        z-index: 1000;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }

    .navbar.active { max-height: 200px;}
    .navbar .container {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: stretch;
        gap: 8px;
        padding: 15px 20px;
    }

    .navbar .btn-special {
        width: calc(50% - 4px);
        justify-content: center;
        padding: 12px 10px;
        margin: 0;
        background-color: transparent;
        border: 1px solid rgba(255,255,255,0.2);
        color: white;
        font-size: 14px;
        font-weight: 500;
        border-radius: 8px;
        transition: all 0.3s ease;
        text-align: center;
    }

    .navbar .btn-special:hover {
        background-color: rgba(255,255,255,0.1);
        border-color: rgba(255,255,255,0.4);
        transform: translateY(-2px);
    }

    .navbar .btn-special span {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Header debe ser relativo para que el menú se posicione correctamente */
    header.header {position: relative;}

    /* No necesitamos overlay para el dropdown */
    .menu-overlay {display: none;}

    .tit-banner{ flex-direction: column; scale: 0.8;}
    .copi-slide{margin-bottom: 18px;}
    .titulo-seccion-rojo.estudiantes, 
    .titulo-seccion-rojo.charter {
        font-size: 24px;
        padding: 20px 0px;
        margin-top: 40px;
    }
    
    .call-selector .texto-rojo{ display: block;}
    .titulo-seccion-rojo.contacto {
        font-size: 18px;
        padding: 20px 0px;
        line-height: 2;
    }
    .botones-tarifas {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .btn-tarifa{width: 90%;}
    .btn-catalogo span {
        font-size: 14px!important;
        padding: 8px 8px;
    }
    
    /* VALORES - Layout responsivo para móviles (2 columnas) */
    .valores{flex-wrap: wrap;position: relative;}
    
    .valor {
        width: calc(50% - 20px);
        margin: 0 10px 20px 10px;
        opacity: 1;
        transition: opacity 0.3s ease;
        position: relative;
    }
    .c-top{flex-wrap: wrap!important;}
    .btn-catalogo {width: 45%;}   

    /* Hacer que el texto expandido no desplace elementos */
    .valor .p-valor {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 10;
        background-color: white;
        padding: 10px;
        border-radius: 8px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        margin-top: 10px;
    }
    
    .valor:hover .p-valor {
        opacity: 1;
        max-height: none;
        color: var(--dark-gray);
    }
    .mail {font-size: 16px;}
    span.linea-contacto {font-size: 14px!important;}
}

/* ============================
   VALORES - 3 COLUMNAS (575px - 1398px)
   ============================ */

/* Layout 3x2 para tablets y pantallas medianas */
@media (min-width: 575px) and (max-width: 1398px) {
    /* VALORES - Layout responsivo para 3 columnas y 2 filas */

    .seccion-valores .container{max-width: 100%!important;}
    .valores {
        flex-wrap: wrap;
        position: relative;
        max-width: 900px;
        margin-left: auto;
        margin-right: auto;
        justify-content: center;
    }
    
    .valor {
        width: calc(33.333% - 20px);
        margin: 0 10px 20px 10px;
        opacity: 1;
        transition: opacity 0.3s ease;
        position: relative;
    }
    
    /* Hacer que el texto expandido no desplace elementos */
    .valor .p-valor {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: inherit;
        z-index: 10;
        padding: 10px;
        border-radius: 0 0 8px 8px;
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    }
    
    /* Atenuar valores de la segunda fila cuando se despliega la primera fila (correspondencia 1:1) */
    .valor:nth-child(1):hover ~ .valor:nth-child(4),
    .valor:nth-child(2):hover ~ .valor:nth-child(5),
    .valor:nth-child(3):hover ~ .valor:nth-child(6) {
        opacity: 0.3;
    }
    
    /* Asegurar que el hover funcione correctamente */
    .valor:hover .p-valor {
        opacity: 1;
        max-height: none;
        color: var(--dark-gray);
    }
}

/* ============================
   575 - 768
   ============================ */

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) and (max-width: 767.98px) {
    :root {
        --header-h: 75px;
        --logo-h: 45px;
        --btn-iti-txt-xl: 12px;
        --btn-iti-txt-l: 9px;
        --btn-iti-txt-s: 8px;
    }
    
    body {
        font-size: 15px;
    }
    .c-logo{ max-width: 90%;}
    nav.nav-bar{width: 100%;}
    .titulo-seccion-rojo.estudiantes, 
    .titulo-seccion-rojo.charter {
        font-size: 28px;
        padding: 25px 0px;
        margin-top: 45px;
    }
    
    .titulo-seccion-rojo.contacto {
        font-size: 20px;
        padding: 25px 0px;
        line-height: 2.5;
    }
    
    .btn-catalogo span {
        font-size: 18px!important;
        padding: 9px 9px;
    }



    .tit-banner{ flex-direction: column; scale: 0.8;}
    .copi-slide{margin-bottom: 18px;}


    .botones-tarifas {width: 100%; gap: 8px;}
    .btn-tarifa{width: 90%;}
    .valores{max-width: 680px; flex-wrap: wrap; margin-left: auto; margin-right: auto;}



    .mail {
        font-size: 18px;
        padding: 4px 9px;
    }
    
    span.linea-contacto {
        font-size: 16px!important;
    }
}

/* ============================
   768 - 990
   ============================ */

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991.98px) {
    :root {
        --header-h: 80px;
        --logo-h: 47px;
        --btn-iti-txt-xl: 13px;
        --btn-iti-txt-l: 10px;
        --btn-iti-txt-s: 8px;
    }
    
    .titulo-seccion-rojo.estudiantes, 
    .titulo-seccion-rojo.charter {
        font-size: 30px;
        padding: 27px 0px;
        margin-top: 50px;
    }
    
    .titulo-seccion-rojo.contacto {
        font-size: 21px;
        padding: 27px 0px;
        line-height: 2.7;
    }
    
    .btn-catalogo span {
        font-size: 20px!important;
        padding: 9px 9px;
    }
    .botones-tarifas {width: 100%; gap: 8px;}
    .btn-tarifa{width: 75%;}
    .valores{max-width: 680px; flex-wrap: wrap; margin-left: auto; margin-right: auto;}
    .mail {
        font-size: 19px;
        padding: 4px 9px;
    }
    
    span.linea-contacto {
        font-size: 17px!important;
    }
}

/* ============================
   992 - 1200
   ============================ */

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) and (max-width: 1199.98px) {
    :root {
        --header-h: 85px;
        --logo-h: 48px;
        --btn-iti-txt-xl: 13px;
        --btn-iti-txt-l: 10px;
        --btn-iti-txt-s: 8px;
    }
    
    .titulo-seccion-rojo.estudiantes, 
    .titulo-seccion-rojo.charter {
        font-size: 32px;
        padding: 28px 0px;
        margin-top: 55px;
    }
    
    .titulo-seccion-rojo.contacto {
        font-size: 21px;
        padding: 28px 0px;
        line-height: 2.8;
    }
    
    .btn-catalogo span {
        font-size: 22px!important;
        padding: 9px 10px;
    }
    .botones-tarifas {width: 100%;}
    .btn-tarifa{width: 45%;}
    .valores{max-width: 680px; flex-wrap: wrap; margin-left: auto; margin-right: auto;}
    .mail {
        font-size: 19px;
        padding: 5px 9px;
    }
    
    span.linea-contacto {
        font-size: 17px!important;
    }
}


/* ============================
   > 1200
   ============================ */

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    /* Aquí van los estilos para pantallas muy grandes */
    /* Los valores por defecto ya están optimizados para estas pantallas */
    
    .titulo-seccion-rojo.estudiantes, 
    .titulo-seccion-rojo.charter {font-size: 36px;}
    .botones-tarifas {width: 100%;}
    .btn-tarifa{width: 45%;}
    .btn-catalogo span {font-size: 26px!important;}
    .valores{max-width: 680px; flex-wrap: wrap; margin-left: auto; margin-right: auto;}
}






/* Media queries específicas para orientación */
@media (orientation: landscape) and (max-height: 500px) {
    :root {
        --header-h: 60px;
        --logo-h: 35px;
    }
    
    .titulo-seccion-rojo.estudiantes, 
    .titulo-seccion-rojo.charter {
        font-size: 22px;
        padding: 15px 0px;
        margin-top: 30px;
    }
}

/* Media queries para pantallas de alta densidad (Retina) */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    /* Aquí puedes optimizar imágenes para pantallas Retina */
    .btn-catalogo img {
        image-rendering: -webkit-optimize-contrast;
        image-rendering: crisp-edges;
    }
}

/* Media queries para impresión */
@media print {
    * {
        background: white !important;
        color: black !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }
    
    header {
        display: none;
    }
    
    .footer {
        background-color: white !important;
        color: black !important;
        border-top: 1px solid #ccc;
    }
    
    .btn-catalogo {
        border: 1px solid #ccc;
    }
    
    a[href]:after {
        content: " (" attr(href) ")";
    }
}