/* ===========================
   FIX RESPONSIVE - Alineación Header, Banner y Footer
   Aplicar en todas las vistas excepto: principal.html, Noticias-Eventos.html
   =========================== */

/* Fix para alineación responsive del header y banner */
body {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
}

.header,
.hero-simple,
.breadcrumb-section,
.historia-content,
.footer {
    width: 100%;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
}

/* Asegurar que todos los containers tengan el mismo ancho */
.container {
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    .container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Historia Grid: hacer que el sidebar vaya abajo en móvil */
    .historia-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 30px !important;
    }

    /* Para grids con logo (3 columnas) */
    .historia-escudo {
        order: 1;
        display: flex !important;
        justify-content: center !important;
    }

    .historia-texto {
        order: 2;
    }

    .historia-sidebar {
        order: 3;
        width: 100% !important;
    }

    /* Para grids sin logo (2 columnas) - todos los hijos directos */
    .historia-grid > div {
        width: 100% !important;
    }

    /* Sidebar siempre al final en móvil */
    .historia-grid > div:last-child {
        order: 999;
    }

    /* FIX ESPECÍFICO PARA DOCENTE.HTML */
    /* Grid de tarjetas de profesores responsivo */
    .grid-cols-1,
    .grid-cols-2,
    .grid-cols-3,
    .md\:grid-cols-2,
    .lg\:grid-cols-3 {
        grid-template-columns: 1fr !important;
    }

    /* Tarjetas de docentes al 100% en móvil */
    .grid > div {
        max-width: 100% !important;
    }

    /* FIX ESPECÍFICO PARA AUTORIDADES.HTML */
    /* Grid de autoridades a 1 columna en móvil */
    .autoridades-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        justify-items: center !important;
        display: grid !important;
    }

    /* Tarjetas de autoridades centradas y mismo tamaño */
    .card-autoridades {
        max-width: 280px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }

    /* FIX ESPECÍFICO PARA ADMISION.HTML */
    /* Grid de admisión responsivo */
    .admision-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 30px !important;
    }

    .admision-grid > div {
        width: 100% !important;
    }

    /* Sidebar de admisión al final */
    .admision-grid > div:last-child {
        order: 999;
    }

    /* FIX ESPECÍFICO PARA TRANSPARENCIA.HTML */
    /* Grid de documentos a 1 columna en móvil */
    .doc-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    /* Tarjetas de documentos */
    .doc-card {
        width: 100% !important; 
        max-width: 100% !important;
    }

}

/* Media query adicional para tablets (768px - 992px) */
@media (min-width: 769px) and (max-width: 992px) {
    /* En tablets, forzar columnas iguales */
    .autoridades-grid {
        grid-template-columns: repeat(auto-fit, minmax(200px, 200px)) !important;
        justify-content: center !important;
        gap: 25px !important;
    }
    
    .card-autoridades {
        width: 200px !important;
        max-width: 200px !important;
        min-width: 200px !important;
    }

    /* Transparencia: 2 columnas en tablets */
    .doc-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 25px !important;
    }
}

/* Para pantallas más pequeñas que aún muestran 2 columnas */
@media (min-width: 481px) and (max-width: 768px) {
    .autoridades-grid {
        grid-template-columns: repeat(auto-fit, minmax(180px, 180px)) !important;
        justify-content: center !important;
        gap: 20px !important;
    }
    
    .card-autoridades {
        width: 180px !important;
        max-width: 180px !important;
        min-width: 180px !important;
    }

    /* Transparencia: 2 columnas en pantallas medianas */
    .doc-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}

/* ===========================
   FIX MENÚ HAMBURGUESA RESPONSIVE
   =========================== */

@media (max-width: 992px) {
    /* Mejorar alineación del menú móvil */
    .nav-menu {
        position: fixed !important;
        top: 0 !important;
        right: -100% !important;
        width: 85% !important;
        max-width: 380px !important;
        height: 100vh !important;
        background: linear-gradient(135deg, #2366C5 0%, #1a4a96 100%) !important;
        flex-direction: column !important;
        padding: 100px 0 30px !important;
        gap: 0 !important;
        overflow-y: auto !important;
        transition: right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
        box-shadow: -5px 0 25px rgba(0, 0, 0, 0.3) !important;
        z-index: 1000 !important;
        align-items: stretch !important;
    }

    .nav-menu.active {
        right: 0 !important;
    }

    .nav-menu li {
        width: 100% !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* IMPORTANTE: Color blanco para todos los enlaces del menú móvil */
    .nav-menu .nav-link,
    .nav-link {
        display: block !important;
        padding: 16px 25px !important;
        width: 100% !important;
        text-align: left !important;
        font-size: 1rem !important;
        color: white !important;
        white-space: normal !important;
    }

    .nav-link::after {
        display: none !important;
    }

    /* Estilos mejorados para dropdowns en móvil */
    .dropdown-menu {
        position: static !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        box-shadow: none !important;
        background: rgba(0, 0, 0, 0.2) !important;
        margin: 0 !important;
        border-radius: 0 !important;
        padding: 0 !important;
        display: none !important;
        max-height: 0 !important;
        overflow: hidden !important;
        transition: max-height 0.3s ease !important;
    }

    .dropdown.active .dropdown-menu {
        display: block !important;
        max-height: 500px !important;
    }

    .dropdown-menu li {
        border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
    }

    /* IMPORTANTE: Enlaces del dropdown en color blanco con transparencia */
    .dropdown-menu a,
    .dropdown-menu .nav-link {
        color: rgba(255, 255, 255, 0.9) !important;
        font-size: 0.9rem !important;
        padding: 12px 25px 12px 45px !important;
        background: transparent !important;
    }

    .dropdown-menu a:hover,
    .dropdown-menu .nav-link:hover {
        background: rgba(255, 255, 255, 0.1) !important;
        padding-left: 50px !important;
        color: white !important;
    }

    /* Botones de Aula Virtual y Biblioteca */
    .btn-admision {
        margin: 15px 20px !important;
        width: calc(100% - 40px) !important;
        max-width: none !important;
        justify-content: center !important;
        padding: 14px 20px !important;
        font-size: 0.95rem !important;
        border-radius: 12px !important;
    }

    /* Icono indicador de dropdown */
    .dropdown > .nav-link::before {
        content: '▼' !important;
        float: right !important;
        font-size: 0.7rem !important;
        transition: transform 0.3s ease !important;
        opacity: 0.7 !important;
    }

    .dropdown.active > .nav-link::before {
        transform: rotate(180deg) !important;
    }

    /* Overlay cuando el menú está abierto */
    body.menu-open::before {
        content: '' !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: rgba(0, 0, 0, 0.6) !important;
        z-index: 999 !important;
        animation: fadeIn 0.3s ease !important;
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
        }
        to {
            opacity: 1;
        }
    }

    /* Prevenir scroll cuando el menú está abierto */
    body.menu-open {
        overflow: hidden !important;
    }

    /* Ajustar logo en móvil */
    .logo img {
        width: 180px !important;
        height: auto !important;
    }

    .logo h1 {
        font-size: 1.3rem !important;
    }
}

/* ===========================
   FIX ACCORDIONS - Mantener estilo limpio (solo líneas separadoras)
   =========================== */

/* Remover TODOS los bordes primero, luego agregar solo el inferior */
.border-b,
.border-b.border-gray-300,
div.border-b,
div.border-b.border-gray-300 {
    border: 0 solid transparent !important;
    border-bottom: 1px solid #e5e7eb !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Remover cualquier borde de Tailwind */
[class*="border-"] {
    border-left-width: 0 !important;
    border-right-width: 0 !important;
    border-top-width: 0 !important;
}
/* ===========================
   FIX CRÍTICO: Pantallas menores a 480px (móviles)
   =========================== */

@media (max-width: 480px) {
    /* Forzar contenedores al 100% del viewport */
    body {
        width: 100vw !important;
        overflow-x: hidden !important;
    }
    
    .header,
    .hero-simple,
    .breadcrumb-section,
    .historia-content,
    .footer {
        width: 100vw !important;
        max-width: 100vw !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Container interno más pequeño */
    .container {
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
        margin: 0 auto !important;
    }
    
    /* Logo más pequeño */
    .logo {
        max-width: 120px !important;
    }
    
    .logo img {
        width: 120px !important;
        max-width: 120px !important;
    }
    
    .logo h1 {
        font-size: 1.1rem !important;
    }
    
    /* Navegación ajustada */
    .nav-menu {
        width: 90vw !important;
        max-width: 320px !important;
    }
    
    /* Banner con padding reducido */
    .hero-simple {
        padding: 80px 0 !important;
        min-height: 280px !important;
    }
    
    .hero-simple h1 {
        font-size: 1.8rem !important;
        padding: 0 15px !important;
        line-height: 1.2 !important;
    }
    
    /* Footer ajustado */
    .footer-content {
        grid-template-columns: 1fr !important;
        gap: 25px !important;
    }
    
    .footer-section {
        padding: 0 !important;
    }
    
    /* Breadcrumb más compacto */
    .breadcrumb {
        font-size: 0.8rem !important;
        flex-wrap: wrap !important;
        gap: 5px !important;
        padding: 8px 0 !important;
    }
    
    .breadcrumb a,
    .breadcrumb span {
        font-size: 0.8rem !important;
    }
}

/* ===========================
   FIX EXTRA: Pantallas muy pequeñas (< 375px)
   =========================== */

@media (max-width: 374px) {
    .container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    .hero-simple h1 {
        font-size: 1.5rem !important;
    }
    
    .logo {
        max-width: 100px !important;
    }
    
    .logo img {
        width: 100px !important;
        max-width: 100px !important;
    }
    
    .logo h1 {
        font-size: 1rem !important;
    }
    
    /* Ajustar botón hamburguesa */
    .hamburger {
        width: 30px !important;
        height: 30px !important;
    }
    
    .hamburger span {
        width: 25px !important;
    }
}

/* ===========================
   RESPONSIVE ESPECÍFICO PARA CONTACTAR.HTML (Libro de Reclamaciones)
   =========================== */

/* Tablets y pantallas medianas */
@media (max-width: 1024px) {
    /* Grid principal de formulario + sidebar a una columna */
    .container > div[style*="grid-template-columns: 1fr 350px"] {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }
    
    /* Secciones con padding */
    section[style*="padding: 60px 0"] {
        padding: 40px 0 !important;
    }
}

@media (max-width: 768px) {
    /* Breadcrumb responsive */
    section[style*="padding: 15px 0"] {
        padding: 12px 0 !important;
    }
    
    section[style*="padding: 15px 0"] div {
        font-size: 0.85rem !important;
    }

    /* Información legal */
    div[style*="max-width: 1200px"][style*="margin: 0 auto 40px"] {
        margin: 0 auto 30px !important;
        padding: 25px !important;
    }
    
    div[style*="max-width: 1200px"][style*="margin: 0 auto 40px"] h3 {
        font-size: 1.3rem !important;
    }
    
    div[style*="max-width: 1200px"][style*="margin: 0 auto 40px"] p {
        font-size: 0.9rem !important;
    }

    /* Formulario responsive */
    div[style*="padding: 40px"] {
        padding: 25px !important;
    }

    /* Grids a una columna */
    div[style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }

    /* Títulos de sección */
    h3[style*="font-size: 1.3rem"] {
        font-size: 1.2rem !important;
        flex-wrap: wrap;
    }

    /* Radio buttons en stack vertical */
    div[style*="display: flex; gap: 20px"]:has(input[type="radio"]) {
        flex-direction: column !important;
        gap: 12px !important;
    }
    
    div[style*="display: flex; gap: 20px"] label[style*="padding: 12px 20px"] {
        width: 100%;
    }

    /* Botones full width en móvil */
    div[style*="justify-content: flex-end"] {
        flex-direction: column-reverse !important;
        gap: 12px !important;
    }

    div[style*="justify-content: flex-end"] button {
        width: 100% !important;
        justify-content: center !important;
    }
    
    /* Sidebar de información */
    div[style*="background: linear-gradient(135deg, #1e3a8a"] {
        padding: 25px !important;
    }
}

@media (max-width: 480px) {
    /* Información legal compacta */
    div[style*="max-width: 1200px"][style*="margin: 0 auto 40px"] {
        padding: 20px !important;
        border-radius: 8px !important;
    }
    
    div[style*="max-width: 1200px"][style*="margin: 0 auto 40px"] h3 {
        font-size: 1.1rem !important;
    }

    /* Código de ley más pequeño */
    div[style*="background: rgba(255,255,255,0.15)"] {
        padding: 15px !important;
    }
    
    div[style*="background: rgba(255,255,255,0.15)"] div:last-child {
        font-size: 1.1rem !important;
    }

    /* Formulario muy compacto */
    div[style*="padding: 40px"],
    div[style*="padding: 25px"] {
        padding: 20px !important;
        border-radius: 8px !important;
    }

    /* Números de sección más pequeños */
    span[style*="width: 32px; height: 32px"] {
        width: 28px !important;
        height: 28px !important;
        font-size: 0.9rem !important;
    }

    /* Títulos de formulario más pequeños */
    #reclamaciones-form h2 {
        font-size: 1.4rem !important;
    }

    #reclamaciones-form h3 {
        font-size: 1.05rem !important;
    }

    /* Labels más pequeños */
    label[style*="font-size: 0.95rem"] {
        font-size: 0.88rem !important;
    }

    /* Inputs, selects y textareas */
    #reclamaciones-form input, 
    #reclamaciones-form select, 
    #reclamaciones-form textarea {
        font-size: 16px !important; /* Evita zoom en iOS */
        padding: 10px 14px !important;
    }
    
    /* Radio buttons */
    label[style*="padding: 12px 20px"]:has(input[type="radio"]) {
        padding: 10px 15px !important;
        font-size: 0.9rem !important;
    }
    
    input[type="radio"] {
        width: 18px !important;
        height: 18px !important;
    }

    /* Botones del formulario */
    #reclamaciones-form button[type="submit"],
    #reclamaciones-form button[type="button"] {
        padding: 12px 24px !important;
        font-size: 0.95rem !important;
    }
    
    /* Sidebar de ayuda compacto */
    div[style*="background: linear-gradient(135deg, #1e3a8a"] {
        padding: 20px !important;
    }
    
    div[style*="background: linear-gradient(135deg, #1e3a8a"] h3 {
        font-size: 1.1rem !important;
    }
    
    /* Iconos SVG más pequeños */
    svg[width="20"] {
        width: 18px !important;
        height: 18px !important;
    }
}