/* ==========================================================================
   Instituto Mariano Moreno - estilo-index.css
   Paleta de marca: primario #032D5F | secundario #D3AD6E | acento #0057BF
   Títulos: Libre Baskerville | Texto: Lato | Botones/acentos: Roboto
   ========================================================================== */

:root {
	--color-primario: #032D5F;
	--color-primario-claro: #0A4A8F;
	--color-secundario: #D3AD6E;
	--color-secundario-oscuro: #B88F4E;
	--color-acento: #0057BF;
	--color-acento-oscuro: #00408F;
	--color-texto: #212121;
	--color-texto-suave: #5B6472;
	--color-fondo: #FFFFFF;
	--color-fondo-alt: #F6F7FA;
	--color-borde: #E7E9EE;

	--color-overlay-primario: rgba(3, 45, 95, 0.42);

	--fuente-titulos: 'Libre Baskerville', Georgia, serif;
	--fuente-texto: 'Lato', Arial, sans-serif;
	--fuente-acento: 'Roboto', Arial, sans-serif;

	--ancho-contenedor: 1180px;

	--espacio-1: 4px;
	--espacio-2: 8px;
	--espacio-3: 16px;
	--espacio-4: 24px;
	--espacio-5: 32px;
	--espacio-6: 48px;
	--espacio-7: 64px;
	--espacio-8: 96px;

	--radio-sm: 8px;
	--radio-md: 14px;
	--radio-lg: 20px;
	--radio-pill: 999px;

	--sombra-sm: 0 2px 8px rgba(3, 45, 95, 0.08);
	--sombra-md: 0 10px 30px rgba(3, 45, 95, 0.12);
	--sombra-lg: 0 20px 45px rgba(3, 45, 95, 0.18);

	--transicion-rapida: 180ms ease;
	--transicion-base: 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

body {
	margin: 0;
	font-family: var(--fuente-texto);
	color: var(--color-texto);
	font-size: 16px;
	line-height: 1.65;
	background: var(--color-fondo);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

a { text-decoration: none; color: inherit; }

h1, h2, h3, h4 {
	font-family: var(--fuente-titulos);
	color: var(--color-primario);
	margin: 0 0 var(--espacio-3);
	font-weight: 700;
	line-height: 1.25;
}

p { margin: 0 0 var(--espacio-3); }

:focus-visible {
	outline: 3px solid var(--color-acento);
	outline-offset: 3px;
	border-radius: 4px;
}

.visually-hidden {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.contenedor {
	max-width: var(--ancho-contenedor);
	margin: 0 auto;
	padding: 0 24px;
}

.seccion { padding: var(--espacio-8) 0; }

.novedades { background: var(--color-fondo-alt); }
.contacto { background: var(--color-fondo-alt); }

.eyebrow {
	display: block;
	font-family: var(--fuente-acento);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-acento);
	margin-bottom: var(--espacio-2);
}

.eyebrow--centrado { text-align: center; }
.eyebrow--claro { color: var(--color-secundario); }

.titulo-seccion {
	text-align: center;
	font-family: var(--fuente-titulos);
	font-weight: 700;
	font-size: clamp(28px, 3.4vw, 38px);
	margin-bottom: var(--espacio-2);
	color: var(--color-primario);
}

.subtitulo-seccion {
	text-align: center;
	max-width: 560px;
	margin: 0 auto var(--espacio-6);
	color: var(--color-texto-suave);
	font-size: 17px;
}

/* Botones ---------------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--fuente-acento);
	font-weight: 500;
	font-size: 15px;
	padding: 13px 30px;
	border-radius: var(--radio-pill);
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida), background var(--transicion-rapida), color var(--transicion-rapida);
}

.btn-accent {
	background: var(--color-acento);
	color: #fff;
	box-shadow: 0 8px 20px rgba(0, 87, 191, 0.28);
}

.btn-accent:hover {
	background: var(--color-acento-oscuro);
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(0, 87, 191, 0.36);
}

.btn-outline {
	background: transparent;
	border-color: var(--color-primario);
	color: var(--color-primario);
}

.btn-outline:hover {
	background: var(--color-primario);
	color: #fff;
	transform: translateY(-2px);
}

.btn-sm { padding: 9px 20px; font-size: 14px; }

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 1px 0 var(--color-borde);
	transition: box-shadow var(--transicion-base);
}

.site-header--scrolled { box-shadow: var(--sombra-sm); }

.header-top__inner {
	display: flex;
	align-items: center;
	gap: 30px;
	padding: 10px 20px;
}

.logo img {
	width: 78px;
	height: auto;
	transition: transform var(--transicion-rapida);
}

.logo:hover img { transform: scale(1.04); }

.header-datos {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.header-datos__lista {
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 28px;
	margin: 0 0 6px;
	padding: 0;
	font-size: 13px;
	color: var(--color-texto-suave);
}

.header-datos__lista i { color: var(--color-acento); margin-right: 5px; }

/* ==========================================================================
   Menú
   ========================================================================== */

.menu-principal { position: relative; }

.menu-toggle {
	display: none;
	background: var(--color-primario);
	color: #fff;
	border: none;
	font-size: 18px;
	width: 42px;
	height: 42px;
	border-radius: var(--radio-sm);
	cursor: pointer;
	margin-left: auto;
	transition: background var(--transicion-rapida);
}

.menu-toggle:hover { background: var(--color-acento); }

.menu-lista {
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 2px;
	margin: 0;
	padding: 0;
}

.menu-lista > li { position: relative; }

.menu-lista > li > a {
	display: flex;
	align-items: center;
	gap: 5px;
	padding: 11px 15px;
	font-family: var(--fuente-texto);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .3px;
	color: var(--color-primario);
	border-radius: var(--radio-sm);
	transition: color var(--transicion-rapida), background var(--transicion-rapida);
}

.tiene-submenu > a::after {
	content: '';
	width: 6px;
	height: 6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	margin-top: -3px;
	opacity: .6;
}

.menu-lista > li > a:hover,
.menu-lista > li.submenu-abierto > a {
	color: var(--color-acento);
	background: rgba(0, 87, 191, 0.07);
}

.tiene-submenu .submenu {
	list-style: none;
	margin: 0;
	padding: 8px;
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 240px;
	background: #fff;
	box-shadow: var(--sombra-lg);
	border-radius: var(--radio-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity var(--transicion-base), transform var(--transicion-base), visibility var(--transicion-base);
	z-index: 30;
}

.tiene-submenu:hover > .submenu,
.tiene-submenu:focus-within > .submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.submenu li a {
	display: block;
	padding: 10px 14px;
	font-family: var(--fuente-acento);
	font-size: 14px;
	color: var(--color-primario);
	border-radius: var(--radio-sm);
	transition: background var(--transicion-rapida), color var(--transicion-rapida);
}

.submenu li a:hover {
	background: var(--color-secundario);
	color: #fff;
}

@media (max-width: 900px) {
	.header-top__inner { flex-wrap: wrap; }
	.header-datos__lista { display: none; }
	.menu-toggle { display: block; }

	.menu-lista {
		display: none;
		flex-direction: column;
		width: 100%;
		border-top: 1px solid var(--color-borde);
		margin-top: 10px;
		padding-top: 6px;
	}

	.menu-lista--abierta { display: flex; }

	.tiene-submenu .submenu {
		position: static;
		display: none;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		background: var(--color-fondo-alt);
		margin: 4px 0 8px;
	}

	.tiene-submenu.submenu-abierto .submenu { display: block; }
}

/* ==========================================================================
   Hero / slider
   ========================================================================== */

.hero {
	position: relative;
	height: min(78vh, 640px);
	min-height: 460px;
	overflow: hidden;
}

.hero-slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transform: scale(1.04);
	transition: opacity 1.2s ease, transform 6s ease;
	display: flex;
	align-items: center;
}

.hero-slide--activa { opacity: 1; transform: scale(1); }

.hero-slide__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, rgba(3,45,95,0.82) 0%, rgba(3,45,95,0.55) 45%, rgba(3,45,95,0.25) 100%);
}

.hero-slide__contenido {
	position: relative;
	z-index: 2;
	max-width: 640px;
	padding: 0 24px 0 90px;
	color: #fff;
}

.hero-eyebrow {
	display: inline-block;
	font-family: var(--fuente-acento);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-secundario);
	margin-bottom: var(--espacio-3);
}

.hero-slide__contenido h1 {
	color: #fff;
	font-size: clamp(34px, 5vw, 56px);
	margin-bottom: 14px;
	text-shadow: 0 4px 24px rgba(0,0,0,0.35);
}

.hero-slide__contenido p {
	font-size: clamp(17px, 2vw, 22px);
	margin: 0 0 var(--espacio-5);
	opacity: .95;
	max-width: 480px;
}

.hero-flecha {
	position: absolute;
	z-index: 3;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1.5px solid rgba(255,255,255,0.4);
	background: rgba(3, 45, 95, 0.35);
	color: #fff;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	backdrop-filter: blur(4px);
	transition: background var(--transicion-rapida), border-color var(--transicion-rapida), transform var(--transicion-rapida);
}

.hero-flecha:hover {
	background: var(--color-acento);
	border-color: var(--color-acento);
	transform: translateY(-50%) scale(1.08);
}

.hero-flecha--prev { left: 24px; }
.hero-flecha--next { right: 24px; }

@media (max-width: 640px) {
	.hero-flecha { width: 40px; height: 40px; font-size: 14px; }
	.hero-flecha--prev { left: 12px; }
	.hero-flecha--next { right: 12px; }
}

.hero-dots {
	position: absolute;
	z-index: 3;
	bottom: 26px;
	left: 90px;
	display: flex;
	gap: 10px;
}

.hero-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255,255,255,0.45);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background var(--transicion-rapida), transform var(--transicion-rapida);
}

.hero-dot:hover { background: rgba(255,255,255,0.75); }
.hero-dot--activo { background: var(--color-secundario); transform: scale(1.25); }

@media (max-width: 767px) {
	.hero { height: 78vh; min-height: 420px; }
	.hero-slide__contenido { padding: 0 24px; }
	.hero-dots { left: 24px; bottom: 20px; }
}

/* ==========================================================================
   Reveal on scroll
   ========================================================================== */

.reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 700ms ease, transform 700ms ease;
}

.reveal--visible { opacity: 1; transform: translateY(0); }

.novedades-grid .reveal:nth-child(2) { transition-delay: 60ms; }
.novedades-grid .reveal:nth-child(3) { transition-delay: 120ms; }
.novedades-grid .reveal:nth-child(4) { transition-delay: 180ms; }
.novedades-grid .reveal:nth-child(5) { transition-delay: 240ms; }
.novedades-grid .reveal:nth-child(6) { transition-delay: 300ms; }

.propuestas-grid .reveal:nth-child(2) { transition-delay: 90ms; }
.propuestas-grid .reveal:nth-child(3) { transition-delay: 180ms; }

.grid-iconos .tarjeta-icono:nth-child(2) { transition-delay: 40ms; }
.grid-iconos .tarjeta-icono:nth-child(3) { transition-delay: 80ms; }
.grid-iconos .tarjeta-icono:nth-child(4) { transition-delay: 120ms; }
.grid-iconos .tarjeta-icono:nth-child(5) { transition-delay: 160ms; }
.grid-iconos .tarjeta-icono:nth-child(6) { transition-delay: 200ms; }
.grid-iconos .tarjeta-icono:nth-child(n+7) { transition-delay: 240ms; }

/* ==========================================================================
   Novedades
   ========================================================================== */

.novedades-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--espacio-5);
}

.novedad-card {
	background: #fff;
	border-radius: var(--radio-md);
	overflow: hidden;
	box-shadow: var(--sombra-sm);
	transition: transform var(--transicion-base), box-shadow var(--transicion-base);
	display: flex;
	flex-direction: column;
}

.novedad-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--sombra-md);
}

.novedad-card__imagen {
	position: relative;
	display: block;
	overflow: hidden;
	padding-top: 75%; /* 4:3, en vez de aspect-ratio para compatibilidad con navegadores viejos */
}

.novedad-card__imagen img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.novedad-card:hover .novedad-card__imagen img { transform: scale(1.08); }

.novedad-card__categoria {
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--color-primario);
	color: #fff;
	font-family: var(--fuente-acento);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: var(--radio-pill);
	box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.novedad-card__categoria[data-categoria="inicial"] { background: #0E7C7B; }
.novedad-card__categoria[data-categoria="primario"] { background: var(--color-acento); }
.novedad-card__categoria[data-categoria="secundario"] { background: var(--color-primario); }
.novedad-card__categoria[data-categoria="superior"] { background: var(--color-secundario-oscuro); }
.novedad-card__categoria[data-categoria="institucional"] { background: #6b7280; }

.novedad-card__cuerpo {
	padding: var(--espacio-4);
	display: flex;
	flex-direction: column;
	flex: 1;
}

.novedad-card__fecha {
	font-size: 12.5px;
	color: var(--color-texto-suave);
	margin-bottom: 8px;
}

.novedad-card__fecha i { color: var(--color-secundario-oscuro); margin-right: 4px; }

.novedad-card__cuerpo h3 {
	font-size: 19px;
	margin-bottom: 10px;
	line-height: 1.3;
}

.novedad-card__cuerpo p {
	font-size: 14.5px;
	color: var(--color-texto-suave);
	margin-bottom: var(--espacio-3);
	flex: 1;
}

.novedad-card__leermas {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--fuente-acento);
	font-weight: 600;
	font-size: 14px;
	color: var(--color-acento);
	transition: gap var(--transicion-rapida), color var(--transicion-rapida);
}

.novedad-card__leermas i { font-size: 12px; transition: transform var(--transicion-rapida); }
.novedad-card__leermas:hover { color: var(--color-acento-oscuro); gap: 10px; }

.ver-todas {
	text-align: center;
	margin-top: var(--espacio-6);
}

@media (max-width: 900px) {
	.novedades-grid { grid-template-columns: 1fr; }
}

@media (min-width: 901px) and (max-width: 1100px) {
	.novedades-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   Sección institucional ("Instituto Mariano Moreno")
   ========================================================================== */

.institucional {
	position: relative;
	background: var(--color-primario);
	color: #fff;
	overflow: hidden;
}

.institucional-fondo {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 88% 12%, rgba(211,173,110,0.16) 0%, transparent 45%),
		radial-gradient(circle at 8% 92%, rgba(0,87,191,0.25) 0%, transparent 45%);
	pointer-events: none;
}

.institucional-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: var(--espacio-7);
	align-items: center;
}

.institucional__caja {
	max-width: 560px;
}

.institucional__imagen {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px; /* respaldo si el navegador no soporta aspect-ratio */
	aspect-ratio: 1 / 1;
}

.institucional__imagen img {
	width: 100%;
	height: 100%;
	max-width: 480px;
	object-fit: contain;
	display: block;
	filter: drop-shadow(var(--sombra-lg));
}

@media (max-width: 900px) {
	.institucional-grid { grid-template-columns: 1fr; gap: var(--espacio-5); }
	.institucional__caja { max-width: none; }
	.institucional__imagen { order: -1; }
}

.institucional__caja h2 {
	color: #fff;
	font-size: clamp(28px, 3.2vw, 36px);
}

.institucional__caja h3 {
	font-family: var(--fuente-texto);
	font-size: 19px;
	font-weight: 400;
	color: rgba(255,255,255,0.88);
	margin-bottom: var(--espacio-4);
}

.institucional__caja p {
	margin-bottom: var(--espacio-3);
	color: rgba(255,255,255,0.9);
	font-size: 15.5px;
}

.institucional__extra {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows var(--transicion-base), opacity var(--transicion-base);
}

.institucional__extra > p { overflow: hidden; margin-bottom: 0; }

.institucional__extra--abierto {
	grid-template-rows: 1fr;
	opacity: 1;
	margin-bottom: var(--espacio-3);
}

.btn-expandir {
	background: transparent;
	border: none;
	color: var(--color-secundario);
	font-family: var(--fuente-acento);
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
	padding: 8px 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-bottom: 1px solid rgba(211,173,110,0.5);
	transition: color var(--transicion-rapida), border-color var(--transicion-rapida);
}

.btn-expandir:hover { color: #fff; border-color: #fff; }

.btn-expandir i { font-size: 12px; transition: transform var(--transicion-rapida); }
.btn-expandir[aria-expanded="true"] i { transform: rotate(180deg); }

/* ==========================================================================
   Propuestas académicas
   ========================================================================== */

.propuestas-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--espacio-5);
}

.propuesta-card {
	position: relative;
	height: 340px;
	background-size: cover;
	background-position: center;
	border-radius: var(--radio-md);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	text-align: left;
	box-shadow: var(--sombra-sm);
	transition: transform var(--transicion-base), box-shadow var(--transicion-base);
}

.propuesta-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--sombra-md);
}

.propuesta-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(3,45,95,0.92) 0%, rgba(3,45,95,0.35) 55%, rgba(3,45,95,0.05) 100%);
	transition: background var(--transicion-base);
}

.propuesta-card:hover .propuesta-card__overlay {
	background: linear-gradient(0deg, rgba(3,45,95,0.95) 0%, rgba(3,45,95,0.55) 65%, rgba(3,45,95,0.15) 100%);
}

.propuesta-card__contenido {
	position: relative;
	z-index: 2;
	color: #fff;
	padding: var(--espacio-4) var(--espacio-4) var(--espacio-5);
	width: 100%;
}

.propuesta-card__icono {
	font-size: 26px;
	color: var(--color-secundario);
	margin-bottom: 10px;
	display: block;
}

.propuesta-card__contenido h3 {
	color: #fff;
	font-size: 23px;
	margin-bottom: 4px;
}

.propuesta-card__contenido p {
	font-size: 14px;
	color: rgba(255,255,255,0.85);
	margin-bottom: var(--espacio-4);
}

@media (max-width: 900px) {
	.propuestas-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Contacto
   ========================================================================== */

.contacto-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: var(--espacio-6);
	align-items: start;
}

.contacto-form-col,
.contacto-info-col {
	background: #fff;
	border-radius: var(--radio-lg);
	box-shadow: var(--sombra-sm);
	padding: var(--espacio-5);
}

.form-contacto { display: flex; flex-direction: column; gap: var(--espacio-3); }

.campo { display: flex; flex-direction: column; gap: 6px; }

.campo label {
	font-family: var(--fuente-acento);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: var(--color-texto-suave);
}

.form-contacto input,
.form-contacto textarea {
	background: var(--color-fondo-alt);
	border: 1.5px solid transparent;
	border-radius: var(--radio-sm);
	padding: 13px 16px;
	font-family: var(--fuente-texto);
	font-size: 15px;
	color: var(--color-texto);
	resize: vertical;
	transition: border-color var(--transicion-rapida), background var(--transicion-rapida);
}

.form-contacto input:focus,
.form-contacto textarea:focus {
	outline: none;
	border-color: var(--color-acento);
	background: #fff;
}

.form-contacto button { align-self: flex-start; margin-top: 6px; }

.form-contacto__estado { margin: 0; font-size: 14px; font-weight: 600; }
.form-contacto__estado--ok { color: #1a7d3b; }
.form-contacto__estado--error { color: #d3402f; }

.contacto-datos {
	list-style: none;
	margin: 0 0 var(--espacio-4);
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--espacio-3);
}

.contacto-datos li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 15px;
	color: var(--color-texto);
	padding-bottom: var(--espacio-3);
	border-bottom: 1px solid var(--color-borde);
}

.contacto-datos li:last-child { border-bottom: none; padding-bottom: 0; }

.contacto-datos i {
	width: 38px;
	height: 38px;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 87, 191, 0.08);
	color: var(--color-acento);
	border-radius: 50%;
	font-size: 15px;
}

.mapa-embed { border-radius: var(--radio-md); overflow: hidden; box-shadow: var(--sombra-sm); }

.mapa-embed iframe {
	width: 100%;
	height: 280px;
	border: 0;
	display: block;
}

@media (max-width: 900px) {
	.contacto-grid { grid-template-columns: 1fr; }
	.contacto-form-col, .contacto-info-col { padding: var(--espacio-4); }
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer { background: var(--color-primario); color: #fff; }

.footer-superior { padding: var(--espacio-7) 0 var(--espacio-5); }

.footer-superior__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: var(--espacio-6);
}

.footer-icono { margin-bottom: var(--espacio-3); }

.footer-col p { font-size: 14.5px; line-height: 1.8; margin: 0; color: rgba(255,255,255,0.85); }
.footer-col p strong { color: #fff; font-size: 16px; }

.footer-col h2 {
	color: #fff;
	font-family: var(--fuente-titulos);
	font-size: 19px;
	font-weight: 700;
	margin-bottom: 6px;
}

.footer-col__texto {
	font-size: 14px;
	color: rgba(255,255,255,0.75);
	margin-bottom: var(--espacio-3);
}

.footer-col--redes { display: flex; flex-direction: column; align-items: flex-start; }
.footer-col--redes h2 { margin-bottom: var(--espacio-3); }

.redes-lista {
	list-style: none;
	display: flex;
	gap: 10px;
	margin: 0 0 var(--espacio-4);
	padding: 0;
}

.redes-lista a {
	width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	color: #fff;
	background: rgba(255,255,255,0.1);
	border-radius: 50%;
	transition: background var(--transicion-rapida), transform var(--transicion-rapida);
}

.redes-lista a:hover { background: var(--color-secundario); color: var(--color-primario); transform: translateY(-3px); }

.footer-ingresar {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	font-size: 14.5px;
	border-bottom: 1px solid rgba(255,255,255,0.4);
	padding-bottom: 3px;
	transition: border-color var(--transicion-rapida), color var(--transicion-rapida), gap var(--transicion-rapida);
}

.footer-ingresar:hover { border-color: var(--color-secundario); color: var(--color-secundario); gap: 12px; }

.footer-inferior {
	border-top: 1px solid rgba(255,255,255,0.15);
	padding: var(--espacio-3) 0;
}

.footer-inferior__grid {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.footer-inferior p {
	margin: 0;
	font-size: 13.5px;
	color: rgba(255,255,255,0.7);
}

.footer-inferior a:hover { color: var(--color-secundario); }

@media (max-width: 900px) {
	.footer-superior__grid { grid-template-columns: 1fr; text-align: center; }
	.footer-col--redes { align-items: center; }
	.footer-col p, .footer-col__texto { text-align: center; }
	.footer-inferior__grid { justify-content: center; text-align: center; }
}

/* ==========================================================================
   Botón volver arriba
   ========================================================================== */

.btn-volver-arriba {
	position: fixed;
	right: 24px;
	bottom: 94px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--color-acento);
	color: #fff;
	border: none;
	box-shadow: var(--sombra-md);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity var(--transicion-base), transform var(--transicion-base), visibility var(--transicion-base), background var(--transicion-rapida);
	z-index: 90;
}

.btn-volver-arriba--visible { opacity: 1; visibility: visible; transform: translateY(0); }

/* Botón flotante de WhatsApp */

.wa-flotante {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 95;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.wa-flotante__burbuja {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	border: none;
	box-shadow: var(--sombra-md);
	font-size: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform var(--transicion-rapida), background var(--transicion-rapida);
	animation: waPulso 2.4s ease-in-out infinite;
}

.wa-flotante__burbuja:hover { background: #1ebe5a; transform: scale(1.06); }

@keyframes waPulso {
	0%, 100% { box-shadow: var(--sombra-md), 0 0 0 0 rgba(37,211,102,0.45); }
	50% { box-shadow: var(--sombra-md), 0 0 0 10px rgba(37,211,102,0); }
}

.wa-flotante__popup {
	position: absolute;
	bottom: 72px;
	right: 0;
	width: 300px;
	max-width: calc(100vw - 48px);
	background: #fff;
	border-radius: var(--radio-lg);
	box-shadow: var(--sombra-lg);
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px) scale(0.98);
	transform-origin: bottom right;
	transition: opacity var(--transicion-base), transform var(--transicion-base), visibility var(--transicion-base);
}

.wa-flotante--abierto .wa-flotante__popup { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }

.wa-flotante__cabecera {
	background: #075E54;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.wa-flotante__avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }

.wa-flotante__cabecera-texto { display: flex; flex-direction: column; flex: 1; }
.wa-flotante__cabecera-texto strong { color: #fff; font-size: 14px; }
.wa-flotante__cabecera-texto span { color: rgba(255,255,255,0.75); font-size: 12px; }

.wa-flotante__cerrar {
	background: none;
	border: none;
	color: rgba(255,255,255,0.8);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	padding: 4px;
}
.wa-flotante__cerrar:hover { color: #fff; }

.wa-flotante__mensaje {
	margin: 16px;
	padding: 10px 14px;
	background: var(--color-fondo-alt);
	border-radius: var(--radio-md) var(--radio-md) var(--radio-md) 2px;
	font-size: 14px;
	color: var(--color-texto);
}

.wa-flotante__boton {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0 16px 16px;
	background: #25D366;
	color: #fff;
	font-family: var(--fuente-acento);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	padding: 12px;
	border-radius: var(--radio-pill);
	transition: background var(--transicion-rapida);
}
.wa-flotante__boton:hover { background: #1ebe5a; }

@media (max-width: 500px) {
	.wa-flotante { right: 16px; bottom: 16px; }
	.wa-flotante__burbuja { width: 52px; height: 52px; font-size: 24px; }
	.btn-volver-arriba { right: 16px; bottom: 82px; }
}

/* ==========================================================================
   Páginas internas (niveles, novedades, etc.)
   ========================================================================== */

.page-banner {
	position: relative;
	min-height: 460px;
	display: flex;
	align-items: flex-end;
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
}

.page-banner__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(3,45,95,0.92) 0%, rgba(3,45,95,0.65) 55%, rgba(3,45,95,0.35) 100%);
}

.page-banner__contenido {
	position: relative;
	z-index: 2;
	width: 100%;
	padding: var(--espacio-6) 0 var(--espacio-5);
}

.breadcrumb {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 var(--espacio-3);
	padding: 0;
	font-family: var(--fuente-acento);
	font-size: 13px;
	color: rgba(255,255,255,0.75);
}

.breadcrumb a { color: rgba(255,255,255,0.75); transition: color var(--transicion-rapida); }
.breadcrumb a:hover { color: var(--color-secundario); }
.breadcrumb li:not(:last-child)::after { content: '/'; margin-left: 8px; opacity: .5; }
.breadcrumb li:last-child { color: #fff; font-weight: 600; }

.breadcrumb--oscuro a { color: var(--color-texto-suave); }
.breadcrumb--oscuro a:hover { color: var(--color-acento); }
.breadcrumb--oscuro li:last-child { color: var(--color-primario); }

.page-banner h1 {
	color: #fff;
	font-size: clamp(30px, 4vw, 46px);
	margin-bottom: 8px;
}

.page-banner__bajada {
	max-width: 620px;
	font-size: 17px;
	color: rgba(255,255,255,0.9);
	margin: 0;
}

/* Sección de contenido genérica dentro de páginas internas */

.contenido-pagina { padding: var(--espacio-8) 0; }
.contenido-pagina + .contenido-pagina { padding-top: 0; }

/* Encabezado liviano de páginas de archivo/listado (sin foto de portada) */
.contenido-pagina--archivo { padding-top: var(--espacio-6); }
.contenido-pagina--archivo .breadcrumb { margin-bottom: var(--espacio-5); }
.contenido-pagina--archivo .titulo-seccion { margin-bottom: 6px; }
.contenido-pagina--alt { background: var(--color-fondo-alt); }

.contenido-angosto { max-width: 760px; margin: 0 auto; }

.agendar-entrevista { padding: var(--espacio-5) 0; }
.agendar-entrevista__contenedor { max-width: 760px; }

@media (max-width: 600px) {
	.agendar-entrevista__contenedor { padding: 0; }
}

.contenido-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(40px, 6vw, 88px);
	align-items: center;
}

.contenido-grid--invertido { grid-template-columns: 0.9fr 1.1fr; }
.contenido-grid--invertido .contenido-grid__imagen { order: -1; }

.contenido-texto .eyebrow { margin-bottom: var(--espacio-3); }

.contenido-texto h2 {
	font-size: clamp(26px, 2.8vw, 34px);
	margin-bottom: var(--espacio-4);
	line-height: 1.3;
}

.contenido-texto p {
	color: var(--color-texto-suave);
	font-size: 16.5px;
	line-height: 1.8;
	margin-bottom: var(--espacio-4);
}

.contenido-texto .btn { margin-top: var(--espacio-2); }

.contenido-grid__imagen img {
	width: 100%;
	border-radius: var(--radio-lg);
	box-shadow: var(--sombra-lg);
}

@media (max-width: 900px) {
	.contenido-pagina { padding: var(--espacio-6) 0; }
	.contenido-grid { grid-template-columns: 1fr; gap: var(--espacio-5); }
	.contenido-grid--invertido .contenido-grid__imagen { order: 0; }
}

/* Lista de propuesta académica (checklist) */

.lista-propuesta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 24px;
}

.lista-propuesta li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	color: var(--color-texto);
	padding: 10px 0;
	border-bottom: 1px solid var(--color-borde);
}

.lista-propuesta i {
	color: var(--color-acento);
	font-size: 15px;
	margin-top: 3px;
	flex: none;
}

@media (max-width: 640px) {
	.lista-propuesta { grid-template-columns: 1fr; }
}

/* Grilla de tarjetas con ícono (propuesta académica / proyectos) */

.grid-iconos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: var(--espacio-4);
}

.grid-iconos--compacta { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--espacio-3); }

.tarjeta-icono {
	background: #fff;
	border: 1px solid var(--color-borde);
	border-radius: var(--radio-md);
	padding: var(--espacio-4) var(--espacio-3);
	text-align: center;
	transition: transform var(--transicion-base), box-shadow var(--transicion-base), border-color var(--transicion-base);
}

.tarjeta-icono:hover {
	transform: translateY(-5px);
	box-shadow: var(--sombra-md);
	border-color: transparent;
}

.tarjeta-icono__icono {
	width: 58px;
	height: 58px;
	margin: 0 auto var(--espacio-3);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 87, 191, 0.09);
	color: var(--color-acento);
	font-size: 23px;
	transition: transform var(--transicion-base);
}

.tarjeta-icono:hover .tarjeta-icono__icono { transform: scale(1.08) rotate(-4deg); }

.tarjeta-icono:nth-child(3n+2) .tarjeta-icono__icono { background: rgba(211,173,110,0.18); color: var(--color-secundario-oscuro); }
.tarjeta-icono:nth-child(3n+3) .tarjeta-icono__icono { background: rgba(3,45,95,0.08); color: var(--color-primario); }

.tarjeta-icono h4 {
	font-family: var(--fuente-texto);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--color-texto);
	margin: 0;
	line-height: 1.35;
}

/* Chips simples (ej. listado de materiales por grado) */

.grid-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--color-borde);
	border-radius: var(--radio-pill);
	padding: 10px 22px;
	font-family: var(--fuente-acento);
	font-size: 14px;
	font-weight: 600;
	color: var(--color-primario);
	transition: border-color var(--transicion-rapida), color var(--transicion-rapida), transform var(--transicion-rapida);
}

.chip:hover { border-color: var(--color-acento); color: var(--color-acento); transform: translateY(-2px); }
.chip i { color: var(--color-secundario-oscuro); font-size: 13px; }

/* Tarjetas de nivel/proyecto (para agrupar sub-listas, ej. proyectos institucionales / solidarios) */

.subbloque {
	background: #fff;
	border: 1px solid var(--color-borde);
	border-radius: var(--radio-md);
	padding: var(--espacio-4);
	margin-bottom: var(--espacio-4);
}

.subbloque h3 {
	font-size: 18px;
	margin-bottom: var(--espacio-3);
	display: flex;
	align-items: center;
	gap: 10px;
}

.subbloque h3 i { color: var(--color-secundario-oscuro); font-size: 17px; }

/* Filtro de categorías (archivo de novedades) */

.filtro-categorias {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: var(--espacio-6);
}

.filtro-categorias__item {
	font-family: var(--fuente-acento);
	font-weight: 600;
	font-size: 14px;
	padding: 9px 20px;
	border-radius: var(--radio-pill);
	border: 1.5px solid var(--color-borde);
	color: var(--color-primario);
	background: #fff;
	transition: border-color var(--transicion-rapida), background var(--transicion-rapida), color var(--transicion-rapida);
}

.filtro-categorias__item:hover { border-color: var(--color-acento); color: var(--color-acento); }

.filtro-categorias__item.is-active {
	background: var(--color-primario);
	border-color: var(--color-primario);
	color: #fff;
}

/* Paginación */

.paginacion {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-top: var(--espacio-6);
	flex-wrap: wrap;
}

.paginacion__link {
	font-family: var(--fuente-acento);
	font-weight: 700;
	font-size: 14px;
	color: var(--color-acento);
	padding: 10px 18px;
	border-radius: var(--radio-pill);
	border: 1.5px solid var(--color-borde);
	transition: border-color var(--transicion-rapida), background var(--transicion-rapida);
}

.paginacion__link:hover { border-color: var(--color-acento); background: rgba(0,87,191,0.06); }

.paginacion__estado { font-size: 13.5px; color: var(--color-texto-suave); }

/* Detalle de novedad (formato artículo, con columna lateral) */

.articulo-cabecera { padding: var(--espacio-6) 0 var(--espacio-5); }

.articulo-titulo {
	font-size: clamp(28px, 3.6vw, 40px);
	margin-bottom: var(--espacio-3);
	max-width: 820px;
}

.articulo-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	color: var(--color-texto-suave);
	font-size: 14.5px;
}

.articulo-meta time i, .articulo-meta span i { color: var(--color-acento); margin-right: 5px; }

.articulo-badge {
	display: inline-block;
	color: #fff;
	font-family: var(--fuente-acento);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: var(--radio-pill);
	background: var(--color-primario);
}

.articulo-badge[data-categoria="inicial"] { background: #0E7C7B; }
.articulo-badge[data-categoria="primario"] { background: var(--color-acento); }
.articulo-badge[data-categoria="secundario"] { background: var(--color-primario); }
.articulo-badge[data-categoria="superior"] { background: var(--color-secundario-oscuro); }
.articulo-badge[data-categoria="institucional"] { background: #6b7280; }

.articulo-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--espacio-7);
	align-items: start;
}

.articulo-imagen {
	width: 100%;
	height: auto;
	border-radius: var(--radio-lg);
	box-shadow: var(--sombra-md);
	margin-bottom: var(--espacio-5);
}

.articulo-cuerpo p {
	font-size: 16.5px;
	line-height: 1.85;
	color: var(--color-texto);
	margin-bottom: var(--espacio-4);
}

.articulo-sidebar {
	position: sticky;
	top: 96px;
	background: var(--color-fondo-alt);
	border-radius: var(--radio-lg);
	padding: var(--espacio-4);
}

.articulo-sidebar h2 {
	font-size: 17px;
	margin-bottom: var(--espacio-3);
	padding-bottom: var(--espacio-3);
	border-bottom: 1px solid var(--color-borde);
}

.sidebar-novedad {
	display: flex;
	gap: 12px;
	padding: var(--espacio-3) 0;
	border-bottom: 1px solid var(--color-borde);
}

.sidebar-novedad:last-child { border-bottom: none; padding-bottom: 0; }

.sidebar-novedad__imagen {
	width: 66px;
	height: 66px;
	flex: none;
	border-radius: var(--radio-sm);
	overflow: hidden;
}

.sidebar-novedad__imagen img { width: 100%; height: 100%; object-fit: cover; }

.sidebar-novedad__info h3 {
	font-family: var(--fuente-texto);
	font-size: 14px;
	font-weight: 700;
	color: var(--color-texto);
	margin: 0 0 4px;
	line-height: 1.35;
}

.sidebar-novedad__info h3 a:hover { color: var(--color-acento); }

.sidebar-novedad__info time { font-size: 12px; color: var(--color-texto-suave); }

@media (max-width: 900px) {
	.articulo-grid { grid-template-columns: 1fr; }
	.articulo-sidebar { position: static; }
}

/* Galería de fotos (archivo de álbumes) */

.albumes-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--espacio-5);
}

.album-card {
	display: block;
	background: #fff;
	border-radius: var(--radio-md);
	overflow: hidden;
	box-shadow: var(--sombra-sm);
	transition: transform var(--transicion-base), box-shadow var(--transicion-base);
}

.album-card:hover { transform: translateY(-5px); box-shadow: var(--sombra-md); }

.album-card__imagen {
	position: relative;
	padding-top: 75%; /* 4:3, en vez de aspect-ratio para compatibilidad con navegadores viejos */
	overflow: hidden;
}

.album-card__imagen img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.album-card:hover .album-card__imagen img { transform: scale(1.06); }

.album-card__contador {
	position: absolute;
	bottom: 12px;
	right: 12px;
	background: rgba(3, 45, 95, 0.78);
	color: #fff;
	font-size: 12.5px;
	font-weight: 600;
	padding: 5px 12px;
	border-radius: var(--radio-pill);
}

.album-card__cuerpo { padding: var(--espacio-4); }
.album-card__cuerpo h3 { font-size: 18px; margin-bottom: 4px; }
.album-card__cuerpo p { font-size: 14px; color: var(--color-texto-suave); margin: 0; }

/* Grilla de fotos dentro de un álbum, con lightbox */

.galeria-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 14px;
}

.galeria-grid__item {
	position: relative;
	padding: 0;
	padding-top: 100%; /* 1:1, en vez de aspect-ratio para compatibilidad con navegadores viejos */
	border-radius: var(--radio-sm);
	overflow: hidden;
	cursor: pointer;
	border: none;
	background: var(--color-fondo-alt);
}

.galeria-grid__item img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms ease;
	display: block;
}

.galeria-grid__item:hover img { transform: scale(1.07); }

.lightbox-overlay {
	position: fixed;
	inset: 0;
	background: rgba(3, 45, 95, 0.94);
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 250ms ease, visibility 250ms ease;
}

.lightbox-overlay.is-open { opacity: 1; visibility: visible; }

.lightbox-overlay img {
	max-width: 88vw;
	max-height: 84vh;
	border-radius: var(--radio-sm);
	box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}

.lightbox-cerrar {
	position: absolute;
	top: 20px;
	right: 24px;
	background: rgba(255,255,255,0.1);
	border: none;
	color: #fff;
	font-size: 22px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lightbox-cerrar:hover { background: rgba(255,255,255,0.2); }

.lightbox-flecha {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,0.1);
	border: none;
	color: #fff;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	font-size: 20px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--transicion-rapida);
}

.lightbox-flecha:hover { background: rgba(255,255,255,0.25); }
.lightbox-flecha--prev { left: 16px; }
.lightbox-flecha--next { right: 16px; }

.lightbox-contador {
	position: absolute;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255,255,255,0.85);
	font-size: 13px;
	font-family: var(--fuente-acento);
}

@media (max-width: 640px) {
	.lightbox-flecha { width: 42px; height: 42px; font-size: 16px; }
	.lightbox-flecha--prev { left: 6px; }
	.lightbox-flecha--next { right: 6px; }
}

/* Documentos descargables */

.documentos-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--espacio-3);
}

.documento-card {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #fff;
	border: 1px solid var(--color-borde);
	border-radius: var(--radio-md);
	padding: var(--espacio-3) var(--espacio-4);
	transition: border-color var(--transicion-rapida), box-shadow var(--transicion-rapida), transform var(--transicion-rapida);
}

a.documento-card:hover {
	border-color: var(--color-acento);
	box-shadow: var(--sombra-sm);
	transform: translateY(-2px);
}

.documento-card__icono {
	width: 44px;
	height: 44px;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 87, 191, 0.08);
	color: var(--color-acento);
	border-radius: var(--radio-sm);
	font-size: 18px;
}

.documento-card__texto { flex: 1; min-width: 0; }
.documento-card__texto strong { display: block; font-size: 14.5px; color: var(--color-texto); }
.documento-card__texto span { font-size: 12.5px; color: var(--color-texto-suave); }

.documento-card__flecha {
	flex: none;
	color: var(--color-acento);
	font-size: 14px;
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity var(--transicion-rapida), transform var(--transicion-rapida);
}

a.documento-card:hover .documento-card__flecha { opacity: 1; transform: translateX(0); }

.documento-card--pendiente {
	background: var(--color-fondo-alt);
	border-style: dashed;
	cursor: default;
}

.documento-card--pendiente .documento-card__icono {
	background: rgba(3, 45, 95, 0.06);
	color: var(--color-texto-suave);
}

.documento-card--pendiente .documento-card__texto span {
	font-style: italic;
}

/* Requisitos de inscripción */

.requisitos-caja {
	background: #fff;
	border-radius: var(--radio-lg);
	box-shadow: var(--sombra-sm);
	padding: var(--espacio-6) var(--espacio-5);
	max-width: 900px;
	margin: 0 auto;
}

.requisitos-lista {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--espacio-4);
}

.requisitos-lista::before {
	content: '';
	position: absolute;
	top: 26px;
	left: 12.5%;
	right: 12.5%;
	height: 2px;
	background: var(--color-borde);
	z-index: 0;
}

.requisitos-lista li {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 14px;
}

.requisitos-lista .numero {
	width: 52px;
	height: 52px;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-primario);
	color: #fff;
	border: 4px solid #fff;
	border-radius: 50%;
	font-family: var(--fuente-acento);
	font-weight: 700;
	font-size: 17px;
	box-shadow: 0 0 0 2px var(--color-borde);
	transition: background var(--transicion-base), transform var(--transicion-base);
}

.requisitos-lista li:hover .numero {
	background: var(--color-acento);
	transform: translateY(-3px);
}

.requisitos-lista span:last-child {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--color-texto);
	line-height: 1.4;
}

@media (max-width: 700px) {
	.requisitos-caja { padding: var(--espacio-5) var(--espacio-4); }
	.requisitos-lista { grid-template-columns: 1fr; gap: var(--espacio-4); justify-items: start; }
	.requisitos-lista::before { top: 0; bottom: 0; left: 25px; right: auto; width: 2px; height: auto; }
	.requisitos-lista li { flex-direction: row; text-align: left; gap: 16px; }
}

/* Franja de datos clave (ej. validez del título, duración, resolución) */

.stats-fila {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--espacio-3);
	margin: var(--espacio-5) 0 0;
}

.stat-item {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--color-fondo-alt);
	border-radius: var(--radio-md);
	padding: var(--espacio-3);
	transition: background var(--transicion-rapida), transform var(--transicion-rapida);
}

.stat-item:hover { background: #fff; box-shadow: var(--sombra-sm); transform: translateY(-3px); }

.stat-item__icono {
	width: 46px;
	height: 46px;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 87, 191, 0.1);
	color: var(--color-acento);
	border-radius: 50%;
	font-size: 18px;
}

.stat-item__texto strong { display: block; font-size: 15px; color: var(--color-primario); line-height: 1.3; }
.stat-item__texto span { font-size: 12.5px; color: var(--color-texto-suave); }

@media (max-width: 700px) {
	.stats-fila { grid-template-columns: 1fr; }
}

/* Tarjetas de finalidades / conceptos (ícono + título corto + detalle) */

.grid-finalidades {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--espacio-4);
	max-width: 900px;
	margin: 0 auto;
}

.tarjeta-finalidad {
	display: flex;
	gap: 16px;
	background: #fff;
	border-radius: var(--radio-md);
	box-shadow: var(--sombra-sm);
	padding: var(--espacio-4);
	transition: transform var(--transicion-base), box-shadow var(--transicion-base);
}

.tarjeta-finalidad:hover { transform: translateY(-5px); box-shadow: var(--sombra-md); }

.tarjeta-finalidad__icono {
	width: 50px;
	height: 50px;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(0, 87, 191, 0.09);
	color: var(--color-acento);
	font-size: 20px;
}

.tarjeta-finalidad:nth-child(2n) .tarjeta-finalidad__icono { background: rgba(211,173,110,0.18); color: var(--color-secundario-oscuro); }

.tarjeta-finalidad h4 {
	font-family: var(--fuente-texto);
	font-size: 15.5px;
	font-weight: 700;
	color: var(--color-texto);
	margin: 0 0 6px;
}

.tarjeta-finalidad p {
	font-size: 14px;
	color: var(--color-texto-suave);
	margin: 0;
	line-height: 1.6;
}

@media (max-width: 700px) {
	.grid-finalidades { grid-template-columns: 1fr; }
}

/* Tabs de nivel (Primario / Secundario en la misma página) */

.nivel-tabs {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: -28px 0 var(--espacio-7);
	position: relative;
	z-index: 5;
}

.nivel-tabs a {
	background: #fff;
	border: 1.5px solid var(--color-borde);
	color: var(--color-primario);
	font-family: var(--fuente-acento);
	font-weight: 600;
	font-size: 14px;
	padding: 12px 26px;
	border-radius: var(--radio-pill);
	box-shadow: var(--sombra-sm);
	transition: background var(--transicion-rapida), color var(--transicion-rapida), border-color var(--transicion-rapida);
}

.nivel-tabs a:hover {
	border-color: var(--color-acento);
	color: var(--color-acento);
}

.nivel-seccion { scroll-margin-top: 90px; }

.nivel-seccion__titulo {
	text-align: center;
	margin-bottom: var(--espacio-6);
}

.nivel-seccion__titulo .eyebrow { justify-content: center; }

.separador-nivel {
	max-width: var(--ancho-contenedor);
	margin: 0 auto;
	border: none;
	border-top: 1px solid var(--color-borde);
}

/* CTA final de página */

.cta-final {
	background: var(--color-primario);
	color: #fff;
	text-align: center;
	padding: var(--espacio-7) 0;
	position: relative;
	overflow: hidden;
}

.cta-final::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 85% 20%, rgba(211,173,110,0.18) 0%, transparent 45%);
}

.cta-final__contenido { position: relative; z-index: 2; }

.cta-final h2 { color: #fff; margin-bottom: 10px; }
.cta-final p { color: rgba(255,255,255,0.85); max-width: 520px; margin: 0 auto var(--espacio-5); }

@media (max-width: 767px) {
	.page-banner { min-height: 340px; }
	.nivel-tabs { margin-top: -20px; }
}
.btn-volver-arriba:hover { background: var(--color-acento-oscuro); }
