@charset "utf-8";
/* CSS Document */

:root {
	--unam-blue: #003b5c; 
	--unam-gold: #c5911a;
	--white: #ffffff;
	--light-bg: #f4f4f4;
	--notice-bg: #f9f6f0;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background-color: var(--light-bg);
	line-height: 1.6;
	overflow-x: hidden;
}

header { background-color: var(--white); border-bottom: 1px solid #eee; }
.header-link { display: block; text-decoration: none; color: inherit; cursor: pointer; padding: 10px 5px; }
.header-container { max-width: 1250px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.header-logo { height: auto; max-height: 75px; width: auto; max-width: 25%; object-fit: contain; }
.header-titles { text-align: center; flex: 1; }
.header-titles h1 { font-family: 'Playfair Display', serif; font-size: clamp(1.1rem, 4vw, 1.6rem); color: var(--unam-blue); margin-bottom: 2px; line-height: 1.2; }
.header-titles p { font-size: clamp(0.7rem, 2.5vw, 1rem); color: #555; text-transform: uppercase; font-weight: 600; }

@media (max-width: 768px) {
	
header { background-color: #003b5c; border-bottom: 1px solid #003b5c; }
.header-titles h1 { color: #fff; opacity: 0.8; }
.header-titles p { color: #fff; opacity: 0.8;}
	
}

nav { background-color: var(--unam-blue); border-bottom: 4px solid var(--unam-gold); position: sticky; top: 0; z-index: 1000; }
.nav-container { max-width: 1200px; margin: 0 auto; position: relative; }
.menu-toggle { display: none; background: none; border: none; color: white; padding: 15px; font-size: 1.5rem; cursor: pointer; width: 100%; text-align: right; }

.nav-menu { display: flex; list-style: none; justify-content: center; align-items: center; }
.nav-item { position: relative; }
.nav-link { color: var(--white); text-decoration: none; padding: 15px 18px; font-weight: 600; text-transform: uppercase; font-size: 0.8rem; display: flex; align-items: center; gap: 8px; transition: 0.3s; cursor: pointer; }

.desktop-arrow { font-size: 0.7rem; opacity: 0.8; }
.submenu, .sub-submenu { display: none; position: absolute; background-color: var(--white); min-width: 240px; box-shadow: 0 8px 16px rgba(0,0,0,0.1); list-style: none; border-top: 2px solid var(--unam-gold); z-index: 100; }
.submenu { top: 100%; left: 0; }
.sub-submenu { top: -2px; left: 100%; border-left: 2px solid var(--unam-gold); border-top: none; }
.submenu li { position: relative; border-bottom: 1px solid #f0f0f0; }
.submenu a { color: var(--unam-blue); padding: 12px 20px; text-decoration: none; display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; font-weight: 500; }

@media (min-width: 769px) {
	.nav-item:hover > .submenu { display: block; }
	.submenu li:hover > .sub-submenu { display: block; }
	.nav-link:hover { background-color: rgba(255, 255, 255, 0.1); color: var(--unam-gold); }
	.submenu a:hover { background-color: #f9f9f9; color: var(--unam-gold); }
	.mobile-icon { display: none; }
}

/* --- MÓVIL ESTILO ACORDÓN --- */
@media (max-width: 768px) {
	.desktop-arrow { display: none; }
	.menu-toggle { display: block; }

	.nav-menu { 
		display: none; 
		flex-direction: column; 
		position: absolute; 
		top: 100%; 
		left: 0; 
		width: 100%; 
		background-color: var(--unam-blue); 
		/* Corrección: alinear arriba y permitir scroll */
		justify-content: flex-start; 
		align-items: stretch;
		max-height: calc(100vh - 60px); 
		overflow-y: auto; 
		z-index: 999;
		padding: 0;
	}
	.nav-menu.active { display: flex; }
	.nav-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,0.1); }
	.nav-link { justify-content: space-between; padding: 18px 25px; font-size: 0.95rem; text-transform: capitalize; }

	.submenu, .sub-submenu { position: static; width: 100%; box-shadow: none; border: none; background-color: rgba(0,0,0,0.1); display: none; }
	.submenu.is-open, .sub-submenu.is-open { display: block !important; }
	.submenu a { padding: 15px 40px; color: #ddd; font-size: 0.9rem; }
	.sub-submenu a { padding-left: 60px; color: #bbb; }
	.mobile-icon { font-size: 1.1rem; }
}

.plan-notice { background-color: var(--notice-bg); border-bottom: 1px solid #e0d7c6; padding: 15px 20px; text-align: center; }
.plan-notice-content { max-width: 1000px; margin: 0 auto; color: var(--unam-blue); font-size: 0.9rem; font-style: italic; font-weight: 500; line-height: 1.5; border-left: 4px solid var(--unam-gold); padding-left: 15px; }

@media (max-width: 768px) { .plan-notice-content { font-size: 0.8rem; border-left: none; border-top: 2px solid var(--unam-gold); padding: 10px 0 0 0; } }

.main-container { max-width: 1300px; margin: 30px auto; padding: 0 15px; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.card { background: var(--white); border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.08); display: flex; flex-direction: column; border: 1px solid #ddd; }
.card-header { padding: 20px 10px; text-align: center; background-color: #fcfcfc; border-bottom: 1px solid #eee; }
.program-logo { width: 85%; max-width: 250px; height: auto; margin: 0 auto 12px; display: block; }
.program-title { font-size: 1.1rem; color: var(--unam-blue); font-weight: 700; min-height: 3.5em; display: block; }
.card-body { padding: 15px; flex-grow: 1; font-size: 1.0rem; color: #444; }
.btn-status { display: block; text-align: center; padding: 11px; text-decoration: none; font-weight: bold; border-radius: 4px; margin-top: 12px; font-size: 1.0rem; }
.btn-manual { background-color: #eef6fc; color: var(--unam-blue); border: 1px solid #d0e4f5; }
.btn-closed { background-color: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }
.card-img { width: 100%; height: 200px; object-fit: cover; }

footer { background-color: var(--unam-blue); color: var(--white); text-align: center; padding: 35px 20px; }
.fb-icon { font-size: 2.2rem; color: var(--white); margin-top: 15px; display: inline-block; opacity: 0.8; }
.fb-icon:hover { opacity: 1; /* El texto se aclara al pasar el ratón */ }

@media (max-width: 1024px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .grid { grid-template-columns: 1fr; } }

/*Correo en pie de página*/
.footer-email {
  display: inline-flex;
  align-items: center;
  gap: 10px; /* Espacio entre el icono y el texto */
  color: #ffffff; /* Ajusta según el azul de tu fondo */
  text-decoration: none; /* Elimina el subrayado */
  font-family: sans-serif;
  font-size: 16px;
  transition: opacity 0.3s ease;
  opacity: 0.8;
}

.footer-email:hover {
  opacity: 1; /* El texto se aclara al pasar el ratón */
  cursor: pointer;
}

.footer-email svg {
  fill: #ffffff; /* Color del icono igual al texto */
}

/* 1. Estilos base: ocultar los logos del menú en escritorio */
.mobile-logos {
    display: none;
    justify-content: space-around;
    align-items: center;
    padding: 10px;
    background-color: var(--unam-blue);
}

.mobile-logos img {
    height: 40px; /* Ajusta el tamaño según prefieras */
    width: auto;
}

@media (max-width: 768px) {
    .mobile-logos {
        display: flex !important; /* El !important ayuda a ganar prioridad */
        /*background-color: red !important;*/ /* Ponemos rojo para ver si el contenedor existe */
        height: 50px;
		opacity: 0.8;
    }
}

@media (max-width: 768px) {
    /* Ocultamos los logos de la cabecera original en móvil */
    header .header-logo {
        display: none !important;
    }
    
    /* Opcional: Si quieres que el título ocupe todo el ancho al quitar los logos */
    .header-container {
        justify-content: center !important;
    }
}