/* --- CABECERA HERO MINI --- */
.hero-mini { 
    background: linear-gradient(135deg, var(--bordo-oscuro), var(--bordo-primario)); 
    padding: 60px 20px; 
    text-align: center; 
    color: var(--blanco); 
}
.hero-mini h1 { 
    font-size: clamp(2rem, 4vw, 2.8rem); 
    margin-bottom: 10px; 
}
.hero-mini p {
    font-size: 1.1rem;
    opacity: 0.9;
}

/* --- CONTENEDOR PRINCIPAL --- */
.contenedor { 
    max-width: var(--ancho-contenido); 
    margin: 50px auto; 
    padding: 0 20px; 
}

/* --- TÍTULOS Y SECCIONES --- */
.titulo-nivel { 
    color: var(--bordo-primario); 
    font-size: 1.8rem; 
    margin: 40px 0 20px; 
    border-bottom: 3px solid var(--bordo-claro); 
    padding-bottom: 10px; 
    display: flex;
    align-items: center;
    gap: 12px;
}
.titulo-curso { 
    color: var(--texto-oscuro); 
    font-size: 1.3rem; 
    margin: 25px 0 15px; 
    display: flex; 
    align-items: center; 
    gap: 10px; 
}

/* --- GRILLA DE TARJETAS --- */
.grid-horarios { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); 
    gap: 20px; 
    margin-bottom: 40px; 
}

/* --- TARJETA DE CURSO --- */
.tarjeta { 
    background: var(--blanco); 
    border-radius: var(--border-radius); 
    padding: 25px 15px; 
    text-align: center; 
    box-shadow: var(--sombra-suave); 
    border: 1px solid var(--gris-borde); 
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
}
.tarjeta:hover { 
    transform: translateY(-8px); 
    box-shadow: var(--sombra-flote); 
    border-color: var(--bordo-claro); 
}

/* ÍCONO */
.icono { 
    font-size: 2.5rem; 
    color: var(--bordo-primario); 
    margin-bottom: 15px; 
    transition: all 0.3s ease; 
}
.tarjeta:hover .icono { 
    transform: scale(1.15) rotate(5deg); 
    color: var(--bordo-claro); 
}

.tarjeta .curso-nombre { 
    font-size: 1.2rem; 
    font-weight: 700; 
    color: var(--texto-oscuro); 
    margin-bottom: 5px; 
}

/* BADGES DE TURNO */
.turno-badge { 
    display: inline-block; 
    padding: 4px 12px; 
    border-radius: 20px; 
    font-size: 0.8rem; 
    font-weight: 600; 
    margin-bottom: 20px; 
}
.turno-manana { 
    background: #e3f2fd; 
    color: #0d47a1; 
} 
.turno-tarde { 
    background: #fff3e0; 
    color: #e65100; 
}  

/* BOTÓN DE DESCARGA PDF */
.btn-descargar { 
    background: linear-gradient(135deg, #2c3e50, #1a252f); 
    color: var(--blanco); 
    text-decoration: none; 
    display: block; 
    padding: 12px; 
    border-radius: 8px; 
    font-weight: 600; 
    position: relative; 
    overflow: hidden; 
    z-index: 1; 
    box-shadow: 0 4px 15px rgba(44, 62, 80, 0.2); 
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
}
.btn-descargar::before { 
    content: ''; 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: linear-gradient(135deg, var(--bordo-primario), var(--bordo-oscuro)); 
    z-index: -1; 
    transition: opacity 0.4s ease; 
    opacity: 0; 
}
.btn-descargar:hover::before { 
    opacity: 1; 
}
.btn-descargar:hover { 
    transform: translateY(-3px); 
    box-shadow: 0 8px 25px rgba(110, 16, 22, 0.3); 
    color: var(--blanco); 
}
.btn-descargar i { 
    font-size: 1.1rem; 
    margin-right: 6px; 
    transition: transform 0.3s ease; 
}
.btn-descargar:hover i { 
    transform: translateY(2px); 
}
        /* Estilos del visor flotante (Modal) para celulares */
        .modal-visor {
            display: none;
            position: fixed;
            z-index: 9999;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.85);
            backdrop-filter: blur(5px);
        }
        .modal-contenido {
            position: relative;
            background-color: #fff;
            margin: 5% auto;
            padding: 15px;
            width: 90%;
            max-width: 900px;
            height: 80vh;
            border-radius: 12px;
            display: flex;
            flex-direction: column;
        }
        .cerrar-modal {
            align-self: flex-end;
            font-size: 28px;
            font-weight: bold;
            color: #333;
            cursor: pointer;
            padding: 0 10px;
        }
        .visor-iframe {
            width: 100%;
            height: 100%;
            border: none;
            border-radius: 8px;
        }
        .acciones-tarjeta {
            display: flex;
            gap: 10px;
            flex-direction: column;
        }
        .btn-ver {
            background: var(--bordo-primario);
            color: white;
            border: none;
            padding: 10px;
            border-radius: 8px;
            font-weight: 600;
            cursor: pointer;
            transition: 0.3s;
        }
        .btn-ver:hover {
            background: var(--bordo-oscuro);
        }

/* --- ACCIONES DE TARJETA --- */
.acciones-tarjeta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 15px;
}

/* BOTÓN VER EN PANTALLA */
.btn-ver {
    background: var(--bordo-primario, #6e1016);
    color: #ffffff;
    border: none;
    padding: 10px 15px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-ver:hover {
    background: var(--bordo-oscuro, #4a0b0f);
    transform: translateY(-2px);
}

/* --- VISOR FLOTANTE (MODAL) --- */
.modal-visor {
    display: none; /* Mantiene la ventana oculta hasta dar clic */
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(5px);
}

.modal-contenido {
    position: relative;
    background-color: #ffffff;
    margin: 5% auto;
    padding: 15px;
    width: 90%;
    max-width: 900px;
    height: 80vh;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.cerrar-modal {
    align-self: flex-end;
    font-size: 28px;
    font-weight: bold;
    color: #333333;
    cursor: pointer;
    padding: 0 10px;
    line-height: 1;
}

.cerrar-modal:hover {
    color: var(--bordo-primario, #6e1016);
}

.visor-iframe {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 8px;
}