/* ==========================================================================
   Becas Carlos Salas — base, cabecera, pie y componentes comunes
   Manual: #004b92 azul · #f0c211 amarillo · #fbfefb fondo · #251605 texto ·
   #00203f azul noche. Helvetica Neue → Helvetica → Arial, pesos 400 y 700.
   ========================================================================== */

:root {
	--azul: #004b92;
	--azul-hover: #003a72;
	--amarillo: #f0c211;
	--fondo: #fbfefb;
	--texto: #251605;
	--noche: #00203f;
	--fuente: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--gutter: clamp(20px, 5vw, 72px);
	--max: 1440px;
	--seccion-y: clamp(72px, 9vw, 140px);
	--col-gap: clamp(32px, 5vw, 80px);
	--ease: cubic-bezier(.4, 0, .2, 1);
	--foco: var(--azul);
}

/* Base ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--fondo);
	color: var(--texto);
	font-family: var(--fuente);
	font-size: 16px;
	line-height: normal; /* como la maqueta: cada bloque fija el suyo */
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--azul); }
a:hover { color: var(--azul-hover); }
a:not([href]) { cursor: default; }
h1, h2, h3, h4, p, figure, blockquote, ol, ul { margin: 0; }
ol, ul { padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
strong { font-weight: 700; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; }
:focus:not(:focus-visible) { outline: 0; }

.salto {
	position: absolute; left: 16px; top: 16px; z-index: 200;
	padding: 12px 20px; border-radius: 999px;
	background: var(--amarillo); color: var(--texto); font-weight: 700; text-decoration: none;
	transform: translateY(-200%); transition: transform .2s;
}
.salto:focus { transform: none; }

.contenedor { max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }

/* Tipografía común -------------------------------------------------------- */
.kicker { font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.kicker--amarillo { color: var(--amarillo); }
.kicker--azul { color: var(--azul); }
.kicker--sm { font-size: 13px; letter-spacing: .1em; }
.titulo-seccion { font-size: clamp(36px, 4vw, 60px); line-height: 1; font-weight: 700; letter-spacing: -.03em; text-wrap: balance; }
.titulo-sub { font-size: clamp(30px, 3vw, 44px); line-height: 1; font-weight: 700; letter-spacing: -.03em; }

/* Botones píldora --------------------------------------------------------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 14px;
	border-radius: 999px; font-weight: 700; text-decoration: none; white-space: nowrap;
	cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
.btn svg { flex: none; }
.btn--lg { height: 64px; padding: 0 28px 0 36px; font-size: 19px; }
.btn--hero { height: 56px; padding: 0 24px 0 30px; font-size: 17px; gap: 12px; }
.btn--md { height: 60px; padding: 0 26px 0 32px; font-size: 18px; }
.btn--menu { height: 56px; padding: 0 24px 0 28px; font-size: 17px; gap: 12px; }
.btn--sm { height: 52px; padding: 0 22px 0 26px; font-size: 16px; gap: 12px; align-self: flex-start; }
.btn--amarillo { background: var(--amarillo); color: var(--texto); }
.btn--amarillo:hover { background: #fff; color: var(--texto); }
.btn--blanco { background: #fff; color: var(--noche); }
.btn--blanco:hover { background: var(--amarillo); color: var(--texto); }
.btn--azul { background: var(--azul); color: #fff; }
.btn--azul:hover { background: var(--azul-hover); color: #fff; }
.btn--hueco { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .6); }
.btn--hueco.btn--lg { padding: 0 36px; }
.btn--hueco.btn--md { padding: 0 32px; }
.btn--hueco:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }
.btn--amarillo-noche:hover { background: #fff; color: var(--noche); }
/* Botón amarillo sobre fondo claro: al pasar por encima, azul (el blanco se perdería).
   Va detrás de las reglas del amarillo para que gane. */
.btn--azul-hover:hover { background: var(--azul); color: #fff; }
.btn--contorno {
	height: 60px; padding: 0 28px; gap: 10px; font-size: 17px;
	background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .45);
}
.btn--contorno:hover { border-color: #fff; background: rgba(255, 255, 255, .1); color: #fff; }

/* Enlace con flecha */
.enlace-flecha {
	display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
	font-size: 17px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px;
	transition: gap .2s;
}
.enlace-flecha:hover { gap: 12px; }
/* Cuando es un botón (p. ej. "Ver las fotos de la edición", que abre el visor),
   sin el fondo, borde ni relleno que el navegador pone a los botones. */
button.enlace-flecha { background: none; border: 0; padding: 0; cursor: pointer; text-align: left; }
.enlace-flecha svg { flex: none; }
.enlace-flecha--blanco { color: #fff; text-decoration-color: var(--amarillo); }
.enlace-flecha--blanco:hover { color: #fff; }
.enlace-flecha--azul { color: var(--azul); }
.enlace-flecha--amarillo { color: var(--amarillo); text-decoration: none; }
.enlace-flecha--amarillo:hover { color: #fff; }
.enlace-flecha--sm { font-size: 16px; }

/* Impulsan (logos con etiqueta) ------------------------------------------- */
.impulsan { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding-top: 8px; }
.impulsan__label { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(37, 22, 5, .6); }
.impulsan__logos { display: flex; align-items: center; gap: 24px; }
.impulsan--hero .impulsan__label { color: rgba(255, 255, 255, .6); }
.impulsan--hero .impulsan__logos { gap: 28px; }

/* Cifras con contador ----------------------------------------------------- */
.cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.cifra { padding: 16px 12px 8px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.cifra + .cifra { border-left: 2px solid var(--azul); }
.cifra:last-child { border-right: 0; }
.cifra__icono { height: 64px; width: auto; }
.cifra__l { font-size: 17px; color: var(--azul); }
.cifra__n { font-size: clamp(44px, 4.2vw, 64px); line-height: 1; font-weight: 700; letter-spacing: -.04em; color: var(--azul); font-variant-numeric: tabular-nums; }

/* Estado de la convocatoria ---------------------------------------------- */
.estado { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(255, 255, 255, .8); }
.punto { width: 10px; height: 10px; border-radius: 50%; background: var(--amarillo); flex: none; animation: bcs-pulse 2s ease-out infinite; }
.punto--oscuro { width: 8px; height: 8px; background: var(--texto); animation-name: bcs-pulse-dark; }
.punto--hueco { background: transparent; border: 2px solid #fff; animation: none; }
.pildora {
	display: inline-flex; align-items: center; gap: 10px; height: 38px; padding: 0 16px 0 14px;
	border-radius: 999px; font-size: 14px; font-weight: 700;
}
.pildora--amarilla { background: var(--amarillo); color: var(--texto); }
.pildora--hueca { background: rgba(255, 255, 255, .12); color: #fff; border: 1px solid rgba(255, 255, 255, .4); }
.pildora .punto--hueco { width: 8px; height: 8px; }
.pildora--hero { align-self: flex-start; height: 40px; padding: 0 18px 0 14px; letter-spacing: .08em; text-transform: uppercase; }
.pildora--sm { height: 36px; padding: 0 14px 0 12px; font-size: 13px; }

/* Patronos */
.patrono { display: flex; }
.patrono img { height: 100%; width: auto; }

/* Cabecera ---------------------------------------------------------------- */
.cabecera {
	position: fixed; top: 0; left: 0; right: 0; z-index: 50;
	display: flex; justify-content: center; pointer-events: none;
	--foco: var(--amarillo);
}
.cabecera__barra {
	pointer-events: auto;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	width: min(var(--max), 100vw); margin-top: 0; height: 128px; padding: 0 var(--gutter);
	background: rgba(0, 32, 63, 0); border: 1px solid rgba(255, 255, 255, 0); border-radius: 999px; box-shadow: none;
	transition: width .45s var(--ease), margin-top .45s var(--ease), height .45s var(--ease), padding .45s var(--ease),
		background .45s, border-color .45s, box-shadow .45s;
}
.cabecera__logo { display: flex; }
.cabecera__logo img { height: 78px; width: auto; transition: height .45s var(--ease); }
.cabecera.is-compact .cabecera__barra {
	width: min(1080px, calc(100vw - 32px)); margin-top: 16px; height: 64px; padding: 0 22px;
	background: rgba(0, 32, 63, .45);
	-webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4);
	border-color: rgba(255, 255, 255, .22); box-shadow: 0 18px 50px -20px rgba(0, 32, 63, .6);
}
.cabecera.is-compact .cabecera__logo img { height: 40px; }
.cabecera__nav { display: flex; align-items: center; gap: 4px; font-size: 15px; font-weight: 500; }
.cabecera__enlace { color: #fff; text-decoration: none; padding: 10px 14px; border-radius: 999px; white-space: nowrap; transition: background .2s; }
.cabecera__enlace:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.cabecera__enlace.is-activa { background: rgba(255, 255, 255, .14); }
.cabecera__burger, .menu-movil__cerrar {
	display: none; width: 44px; height: 44px; border-radius: 50%; padding: 0; flex: none;
	border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .08);
	align-items: center; justify-content: center; cursor: pointer;
}

/* Menú móvil (panel) ------------------------------------------------------ */
.menu-movil {
	position: fixed; inset: 0; z-index: 60; overflow: auto;
	background: var(--noche); color: #fff;
	display: flex; flex-direction: column; padding: 20px 24px 32px;
	animation: bcs-menu-in .3s ease-out;
	--foco: var(--amarillo);
}
.menu-movil[hidden] { display: none; }
.menu-movil__top { display: flex; align-items: center; justify-content: space-between; height: 64px; flex: none; }
.menu-movil__top img { height: 40px; width: auto; }
.menu-movil__cerrar { display: flex; }
.menu-movil__nav { display: flex; flex-direction: column; margin-top: 40px; }
.menu-movil__enlace {
	color: #fff; text-decoration: none; font-size: 34px; font-weight: 700; letter-spacing: -.02em;
	padding: 18px 0; border-bottom: 1px solid rgba(255, 255, 255, .15);
}
.menu-movil__enlace:hover { color: #fff; }
.menu-movil__pie { margin-top: auto; padding-top: 32px; display: flex; flex-direction: column; gap: 14px; }

/* Pie --------------------------------------------------------------------- */
.pie {
	position: relative; overflow: hidden; color: var(--texto);
	/* Tintas del azul del manual sobre el fondo, como en la maqueta. */
	background: linear-gradient(180deg, #fbfefb 0%, #eaf1f8 20%, #cddff0 45%, #a8c6e4 72%, #7fa9d5 100%);
}
.pie__inner { position: relative; padding-top: var(--seccion-y); padding-bottom: 40px; display: flex; flex-direction: column; gap: 64px; }
.pie__grid { display: grid; grid-template-columns: minmax(0, 5fr) repeat(4, minmax(0, 2fr)); gap: 40px; align-items: start; }
.pie__marca { display: flex; flex-direction: column; gap: 20px; padding-right: 32px; }
.pie__marca img { height: 64px; width: auto; align-self: flex-start; }
.pie__marca p { font-size: 15px; line-height: 1.5; color: rgba(37, 22, 5, .78); max-width: 380px; }
.pie__contacto { display: flex; flex-direction: column; gap: 4px; font-size: 15px; line-height: 1.5; }
.pie__contacto a, .pie__contacto span { color: rgba(37, 22, 5, .78); text-decoration: none; }
.pie__contacto a:hover { text-decoration: underline; }
.pie__col { display: flex; flex-direction: column; gap: 12px; }
.pie__col-titulo { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.pie__enlace { color: var(--texto); text-decoration: none; font-size: 15px; }
.pie__enlace[href]:hover { color: var(--azul); }
.pie__bottom {
	padding-top: 24px; border-top: 1px solid rgba(37, 22, 5, .15);
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
	font-size: 14px; color: rgba(37, 22, 5, .72);
}
.pie__firma { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.pie__sep { width: 1px; height: 16px; background: rgba(37, 22, 5, .2); }
.pie__legal { display: flex; align-items: center; gap: 20px; }
.pie__legal a { color: rgba(37, 22, 5, .72); text-decoration: none; }
.pie__legal a[href]:hover { text-decoration: underline; }

/* Portada de página interior (Las becas, Ediciones, Ayuda) ----------------- */
.portada { position: relative; overflow: hidden; background: var(--noche); color: #fff; --foco: var(--amarillo); }
.portada::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(60% 50% at 70% 110%, rgba(0, 75, 146, .7) 0%, rgba(0, 75, 146, 0) 70%);
}
.portada__marca {
	position: absolute; right: -2vw; top: -6vw;
	font-size: clamp(280px, 42vw, 620px); line-height: .8; font-weight: 700; letter-spacing: -.06em;
	color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, .08); pointer-events: none; user-select: none;
}
.portada__inner {
	position: relative; max-width: var(--max); margin: 0 auto;
	padding: calc(128px + clamp(16px, 3vw, 48px)) var(--gutter) clamp(64px, 8vw, 120px);
}
.portada__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--col-gap); align-items: center; }
.portada__grid--abajo { align-items: end; }
.portada__texto { display: flex; flex-direction: column; gap: 28px; }
.portada__titulo { font-size: clamp(42px, 5.2vw, 80px); line-height: .98; font-weight: 700; letter-spacing: -.045em; }
.portada__entradilla { font-size: clamp(19px, 1.7vw, 24px); line-height: 1.45; color: rgba(255, 255, 255, .85); max-width: 660px; text-wrap: pretty; }
.portada__figura { margin: 0; aspect-ratio: 4 / 5; border-radius: 28px; overflow: hidden; background: var(--azul); }
.portada__figura img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }

/* Secciones de página interior ------------------------------------------- */
.seccion { padding-block: var(--seccion-y); display: flex; flex-direction: column; gap: clamp(32px, 4vw, 56px); }
.seccion--blanca { background: #fff; border-top: 1px solid rgba(0, 75, 146, .15); border-bottom: 1px solid rgba(0, 75, 146, .15); }
.seccion--noche { position: relative; overflow: hidden; background: var(--noche); color: #fff; --foco: var(--amarillo); }
.seccion__cab { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 7fr); gap: var(--col-gap); align-items: start; }
.seccion__titulo { display: flex; flex-direction: column; gap: 24px; }
.seccion__h2 { font-size: clamp(34px, 3.4vw, 52px); line-height: 1.02; font-weight: 700; letter-spacing: -.03em; text-wrap: balance; }
.seccion__nota { font-size: 17px; line-height: 1.55; color: rgba(37, 22, 5, .75); text-wrap: pretty; }
.seccion__nota--grande { font-size: clamp(19px, 1.7vw, 24px); line-height: 1.45; color: var(--texto); }
.seccion--noche .seccion__nota { color: rgba(255, 255, 255, .8); }

/* Fichas numeradas / con logo (páginas interiores; la Home usa .tarjeta para otra cosa) -- */
.fichas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.ficha { display: flex; flex-direction: column; gap: 12px; padding: 30px 28px; background: #fff; border: 1px solid rgba(0, 75, 146, .18); border-radius: 20px; }
.ficha__n { font-size: 13px; font-weight: 700; letter-spacing: .12em; color: var(--azul); }
.ficha__t { font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }
.ficha__d { font-size: 16px; line-height: 1.5; color: rgba(37, 22, 5, .75); }
.ficha--logo { gap: 20px; padding: 32px 28px; }
.ficha--logo .patrono { align-self: flex-start; }
.ficha__cuerpo { display: flex; flex-direction: column; gap: 8px; }
.ficha__cuerpo .ficha__t { font-size: 20px; }

/* Filas de datos (clave + explicación) ------------------------------------ */
.filas { display: flex; flex-direction: column; }
.fila { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: clamp(16px, 3vw, 40px); padding: 22px 0; border-top: 1px solid rgba(0, 75, 146, .18); }
.fila__clave { font-size: 22px; font-weight: 700; letter-spacing: -.02em; color: var(--azul); }
.fila__valor { font-size: 17px; line-height: 1.5; color: rgba(37, 22, 5, .8); }
.seccion--noche .fila { border-top-color: rgba(255, 255, 255, .18); }
.seccion--noche .fila__clave { color: var(--amarillo); }
.seccion--noche .fila__valor { color: rgba(255, 255, 255, .8); }
.filas--hitos .fila { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); padding: 20px 0; }
.filas--hitos .fila__clave { font-size: 17px; }

/* Cierre con llamada a la convocatoria ------------------------------------ */
.cierre { background: var(--noche); color: #fff; --foco: var(--amarillo); }
.cierre__inner {
	padding-block: clamp(56px, 7vw, 104px);
	display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.cierre__texto { display: flex; flex-direction: column; gap: 12px; }
.cierre__titulo { font-size: clamp(28px, 3vw, 44px); line-height: 1.05; font-weight: 700; letter-spacing: -.03em; }
.cierre__sub { font-size: 17px; color: rgba(255, 255, 255, .8); }

/* Texto largo (notas de prensa y páginas legales) -------------------------- */
.prosa { display: flex; flex-direction: column; gap: 22px; font-size: 18px; line-height: 1.6; color: rgba(37, 22, 5, .85); text-wrap: pretty; }
.prosa h2 { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.15; letter-spacing: -.02em; margin-top: 10px; }
.prosa h3 { font-size: 21px; line-height: 1.25; letter-spacing: -.01em; }
.prosa ul, .prosa ol { display: flex; flex-direction: column; gap: 8px; padding-left: 1.3em; }
.prosa ul { list-style: disc; }
.prosa ol { list-style: decimal; }
.prosa li::marker { color: var(--azul); }
.prosa a { color: var(--azul); text-underline-offset: 3px; }
.prosa blockquote { padding-left: 18px; border-left: 3px solid var(--amarillo); font-size: clamp(20px, 2vw, 26px); line-height: 1.3; }
.prosa img { border-radius: 20px; }
.prosa table { width: 100%; border-collapse: collapse; font-size: 16px; }
.prosa th, .prosa td { padding: 12px 14px; text-align: left; vertical-align: top; border-top: 1px solid rgba(0, 75, 146, .18); }
.prosa th { font-weight: 700; color: var(--azul); }

/* Páginas legales --------------------------------------------------------- */
.legal__portada .portada__inner { padding-bottom: clamp(48px, 6vw, 88px); }
.legal__cab { display: flex; flex-direction: column; gap: 18px; max-width: 900px; }
.legal__titulo { font-size: clamp(36px, 4.4vw, 68px); line-height: 1.02; }
.legal__cuerpo > * { max-width: 820px; }
/* En lo legal los enlaces no destacan: mismo color que el texto y subrayado. */
.legal__cuerpo .prosa a { color: inherit; }
.legal__cuerpo .prosa a:hover { color: var(--azul); }

/* La fecha cierra el texto, separada por un filete. */
.legal__fecha { margin-top: 12px; padding-top: 18px; border-top: 1px solid rgba(0, 75, 146, .18); font-size: 15px; color: rgba(37, 22, 5, .6); }

/* Páginas genéricas (hasta que tengan su diseño) --------------------------- */
body:not(.es-portada) { background-image: linear-gradient(var(--noche), var(--noche)); background-size: 100% 128px; background-repeat: no-repeat; }
.pagina { padding-top: calc(128px + 48px); padding-bottom: var(--seccion-y); display: flex; flex-direction: column; gap: 32px; }
.pagina__contenido { font-size: 18px; line-height: 1.6; max-width: 720px; }

/* Animaciones ------------------------------------------------------------- */
@keyframes bcs-pulse { 0% { box-shadow: 0 0 0 0 rgba(240, 194, 17, .55); } 70% { box-shadow: 0 0 0 12px rgba(240, 194, 17, 0); } 100% { box-shadow: 0 0 0 0 rgba(240, 194, 17, 0); } }
@keyframes bcs-pulse-dark { 0% { box-shadow: 0 0 0 0 rgba(37, 22, 5, .45); } 70% { box-shadow: 0 0 0 10px rgba(37, 22, 5, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 22, 5, 0); } }
@keyframes bcs-menu-in { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
@keyframes bcs-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Fundidos de entrada: solo se ocultan si hay JS que los muestre después. */
.js [data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
.js [data-reveal].is-visible { opacity: 1; transform: none; }

/* Móvil ------------------------------------------------------------------- */
@media (max-width: 760px) {
	.titulo-seccion { font-size: 36px; }
	.cabecera__barra { height: 88px; padding: 0 20px; }
	.cabecera__logo img { height: 48px; }
	.cabecera.is-compact .cabecera__barra { width: calc(100vw - 24px); margin-top: 10px; height: 60px; padding: 0 14px; background: rgba(0, 32, 63, .55); }
	.cabecera.is-compact .cabecera__logo img { height: 34px; }
	.cabecera__nav { display: none; }
	.cabecera__burger { display: flex; }
	.btn--cta { height: 52px; font-size: 16px; padding: 0 20px 0 26px; gap: 10px; }
	/* Botón largo del hero: una línea a 15 px en 390 px; en móviles más estrechos parte
	   en dos líneas dentro de la píldora en vez de salirse del margen. */
	.btn--hero { font-size: 15px; max-width: 100%; white-space: normal; height: auto; min-height: 52px; padding-block: 8px; text-align: left; line-height: 1.2; }
	/* Mismo alto que el botón principal a su lado. */
	.btn--contorno { height: 52px; font-size: 16px; padding: 0 22px; }
	.impulsan--hero { flex-direction: column; align-items: flex-start; gap: 14px; }
	.impulsan--hero .impulsan__logos { gap: 12px; }
	/* En las portadas interiores los logos van uno debajo de otro, como la maqueta. */
	.portada .impulsan__logos { flex-direction: column; align-items: flex-start; gap: 14px; }
	.impulsan--hero .patrono { transform: scale(.82); transform-origin: left center; }
	.cifra { padding: 8px 4px; gap: 10px; }
	.cifra__icono { height: 44px; }
	.cifra__n { font-size: 36px; }
	.cifra__l { font-size: 14px; }
	.portada__inner { padding-top: calc(96px + clamp(16px, 3vw, 48px)); }
	.portada__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.portada__titulo { font-size: 46px; }
	.seccion__cab { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.fichas { grid-template-columns: minmax(0, 1fr); }
	.pie__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; text-align: center; justify-items: center; }
	.pie__marca { grid-column: 1 / -1; padding-right: 0; align-items: center; }
	.pie__marca img { align-self: center; }
	.pie__col { align-items: center; }
	.pie__bottom { justify-content: center; text-align: center; }
	.pie__firma, .pie__legal { justify-content: center; width: 100%; }
	.prosa { font-size: 17px; }
}

/* Menos movimiento -------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.punto, .menu-movil { animation: none; }
	.cabecera__barra, .cabecera__logo img { transition: none; }
	.js [data-reveal] { opacity: 1; transform: none; transition: none; }
}
