/*
 * Sitio principal de Atelier Esthétique Institute.
 *
 * Va detrás de las hojas del tema de landings, que ya fijan los tokens
 * (--ae-*), los botones base y los bloques compartidos. Aquí solo está lo que
 * el sitio añade: cabecera con menú, pie, y los bloques ae-web-*.
 *
 * Reglas de marca: el rojo solo en botones y acentos gráficos, nunca como
 * color de texto sobre navy; un titular alineado a la izquierda lleva la barra
 * roja vertical al principio y uno centrado, una raya roja corta debajo y
 * centrada; Heebo es la única tipografía.
 */

/* Rayas horizontales bajo un titular centrado: la de sección y la del H1 de una
   cabecera «título». Fondo de las tarjetas de formulario: un azul muy claro
   (la paleta no trae ninguno) para que destaquen sobre la sección; los campos
   siguen en blanco. */
.ae-web {
	--ae-web-gradiente: linear-gradient(135deg, #04173a 0%, #06204e 55%, #04173a 100%);
	--ae-web-navy-darker: #031230;
	--ae-web-texto: #4a4f5c;
	--ae-web-cuerpo: 17px;
	--ae-web-alto-cabecera: 82px;
	--ae-web-raya: 168px;
	--ae-web-raya-h1: 240px;
	--ae-web-fondo-formulario: #ebf1ff;
	font-size: 17px;
}
.ae-web p, .ae-web li { line-height: 1.65; }
.ae-web-container { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
.ae-web-destacado { color: inherit; }
.ae-web-main { display: block; }
.ae-web-main:focus { outline: none; }
.ae-web h1, .ae-web h2, .ae-web h3 { font-family: var(--ae-font); }

/* ---------- Botones ---------- */
.ae-web-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 28px; border-radius: var(--ae-radius-sm);
	font-family: var(--ae-font); font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .06em;
	border: 2px solid transparent; text-decoration: none; cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.ae-web-btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ae-web-btn--primario { background: var(--ae-red); color: #fff; border-color: var(--ae-red); box-shadow: 0 12px 28px rgba(219,22,47,0.30); }
.ae-web-btn--primario:hover { color: var(--ae-navy); transform: translateY(-1px); box-shadow: 0 14px 32px rgba(219,22,47,0.45); }
.ae-web-btn--contorno-navy { background: transparent; color: var(--ae-navy); border-color: var(--ae-navy); }
.ae-web-btn--contorno-navy:hover { background: var(--ae-navy); color: #fff; }
.ae-web-btn--contorno-blanco { background: transparent; color: #fff; border-color: rgba(255,255,255,0.7); }
.ae-web-btn--contorno-blanco:hover { background: #fff; color: var(--ae-navy); }
.ae-web-btn--azul { background: var(--ae-blue); color: #fff; border-color: var(--ae-blue); }
.ae-web-btn--azul:hover { background: var(--ae-navy); border-color: var(--ae-navy); color: #fff; }
.ae-web-btn--azul:focus-visible { outline-color: var(--ae-navy); }

.ae-web-pill {
	display: inline-block; background: var(--ae-red); color: #fff;
	font-family: var(--ae-font); font-weight: 700; font-size: 12px; letter-spacing: .14em;
	text-transform: uppercase; padding: 8px 18px; border-radius: 999px; margin-bottom: 24px;
}

/* ---------- Cabecera ---------- */
.ae-web-masthead { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 100; }
.ae-web-topbar {
	background: var(--ae-red); color: #fff;
	display: flex; align-items: center; justify-content: flex-end; gap: 24px;
	padding: 8px 32px; font-family: var(--ae-font); font-weight: 700; font-size: 12px;
	letter-spacing: .12em; text-transform: uppercase;
}
.ae-web-topbar__link { color: var(--ae-web-navy-darker); text-decoration: none; padding: 6px 4px; }
.ae-web-topbar__link:hover { color: var(--ae-web-navy-darker); opacity: .7; }
.ae-web-topbar__phone {
	display: inline-flex; align-items: center; gap: 8px; background: var(--ae-web-navy-darker); color: #fff;
	text-decoration: none; padding: 7px 22px; border-radius: 999px; letter-spacing: .10em;
}
.ae-web-topbar__phone:hover { color: #fff; }
.ae-web-topbar a:focus-visible { outline: 3px solid var(--ae-web-navy-darker); outline-offset: 2px; }

/* El desenfoque va en un pseudoelemento y no en la barra: un backdrop-filter
   en la barra la convierte en la caja de referencia de sus hijos fijos, y el
   cajón del menú móvil quedaba recortado al alto de la barra. */
.ae-web-nav { position: relative; z-index: 0; transition: box-shadow .3s ease; }
.ae-web-nav::before {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: rgba(6,32,78,0.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	transition: background .3s ease;
}
.ae-web-nav.is-scrolled { box-shadow: 0 2px 16px rgba(4,23,58,0.35); }
.ae-web-nav.is-scrolled::before { background: rgba(6,32,78,0.98); }
.ae-web-nav__inner {
	max-width: 1600px; margin: 0 auto; padding: 6px 32px;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.ae-web-nav__logo { display: flex; flex-shrink: 0; }
.ae-web-nav__logo img { height: 68px; width: auto; max-width: 320px; display: block; }
.ae-web-nav__menu { flex: 1; min-width: 0; display: flex; justify-content: center; }
.ae-web-nav__drawer-head { display: none; }
.ae-web-nav__list, .ae-web-nav__sublist { list-style: none; margin: 0; padding: 0; }
.ae-web-nav__list { display: flex; align-items: center; gap: 20px; }
.ae-web-nav__item { position: relative; }
.ae-web-nav__item--0 > .ae-web-nav__link,
.ae-web-nav__item--0 > .ae-web-nav__trigger {
	font-family: var(--ae-font); font-weight: 500; font-size: 0.95rem; color: rgba(255,255,255,0.85);
	background: none; border: 0; cursor: pointer; text-decoration: none; white-space: nowrap; box-sizing: border-box;
	min-height: 48px; padding: 8px 4px; display: inline-flex; align-items: center; gap: 6px; line-height: 1.5;
}
.ae-web-nav__item--0 > .ae-web-nav__link:hover,
.ae-web-nav__item--0 > .ae-web-nav__trigger:hover,
.ae-web-nav__item--0.is-current > .ae-web-nav__link { color: #fff; }
.ae-web-nav__trigger .ae-web-icono { opacity: .75; transition: transform .25s ease; }
.ae-web-nav__trigger[aria-expanded="true"] .ae-web-icono { transform: rotate(180deg); }
.ae-web-nav__item a:focus-visible, .ae-web-nav__trigger:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 2px; }
.ae-web-nav__sub {
	position: absolute; top: 100%; left: 0; min-width: 300px; z-index: 200;
	background: var(--ae-navy-deep); border-radius: 4px; padding: 4px 0;
	box-shadow: 0 24px 60px rgba(0,0,0,0.45);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.ae-web-nav__sub--2 { top: 0; left: 100%; min-width: 280px; transform: translateX(6px); }
@media (min-width: 1280px) {
	.ae-web-nav__item.has-sub:hover > .ae-web-nav__sub,
	.ae-web-nav__item.has-sub:focus-within > .ae-web-nav__sub { opacity: 1; visibility: visible; transform: none; }
}
.ae-web-nav__item.is-open > .ae-web-nav__sub { opacity: 1; visibility: visible; transform: none; }
.ae-web-nav__sublist > li { border-bottom: 1px solid rgba(255,255,255,0.10); }
.ae-web-nav__sublist > li:last-child { border-bottom: 0; }
.ae-web-nav__sub .ae-web-nav__link,
.ae-web-nav__sub .ae-web-nav__trigger {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; box-sizing: border-box;
	padding: 16px 20px; background: none; border: 0; cursor: pointer; text-align: left;
	color: #fff; font-family: var(--ae-font); font-weight: 700; font-size: 12px; line-height: 1.25;
	text-transform: uppercase; letter-spacing: .08em; text-decoration: none;
}
.ae-web-nav__sub .ae-web-nav__link:hover,
.ae-web-nav__sub .ae-web-nav__trigger:hover { background: rgba(255,255,255,0.08); color: #fff; }
.ae-web-nav__actions { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.ae-web-nav__toggle {
	display: none; width: 48px; height: 48px; background: none; border: 0; cursor: pointer;
	flex-direction: column; justify-content: center; gap: 5px; padding: 12px;
}
.ae-web-nav__toggle span { display: block; height: 2px; background: #fff; border-radius: 2px; }
.ae-web-nav__toggle:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 2px; }
.ae-web-nav__cta {
	background: var(--ae-red); color: #fff; border-radius: var(--ae-radius-sm); padding: 10px 22px;
	min-height: 44px; font-family: var(--ae-font); font-weight: 700; font-size: 14px;
	letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center;
	text-decoration: none; white-space: nowrap;
}
.ae-web-nav__cta:hover { color: #fff; background: #B8122A; }
.ae-web-nav__cta:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Below 1680px the menu in line and the three bar buttons only fit with the
   logo at 50px and the menu text a little smaller; below 1536px the phone
   button also shows only its icon (the number stays in its label and in the
   footer). */
@media (min-width: 1280px) and (max-width: 1679px) {
	.ae-web-nav__logo img { height: 50px; }
	.ae-web-nav__list { gap: 16px; }
	.ae-web-nav__item--0 > .ae-web-nav__link, .ae-web-nav__item--0 > .ae-web-nav__trigger { font-size: 0.9rem; }
}

/* Por debajo de 1280 el menú pasa a cajón lateral. */
@media (max-width: 1279px) {
	.ae-web-nav__toggle { display: inline-flex; }
	.ae-web-nav__actions { flex: 1; justify-content: space-between; }
	.ae-web-nav__menu {
		position: fixed; inset: 0; z-index: 1000; display: block;
		background: #fff; padding: 32px 32px 56px 56px; overflow-y: auto;
		transform: translateX(-105%); transition: transform .28s ease; visibility: hidden;
	}
	.ae-web-nav__menu.is-open { transform: none; visibility: visible; }
	.ae-web-nav__drawer-head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 32px; }
	.ae-web-nav__drawer-logo { display: flex; border-radius: var(--ae-radius-sm); }
	.ae-web-nav__drawer-logo:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 4px; }
	.ae-web-nav__drawer-head img { width: 200px; height: auto; display: block; }
	.ae-web-nav__close {
		width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--ae-rule);
		background: var(--ae-surface-light); color: var(--ae-navy); display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	}
	.ae-web-nav__close:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 2px; }
	.ae-web-nav__list { display: block; }
	.ae-web-nav__item--0 > .ae-web-nav__link,
	.ae-web-nav__item--0 > .ae-web-nav__trigger {
		width: 100%; justify-content: space-between; color: var(--ae-navy); font-size: 1rem;
		border-bottom: 1px solid var(--ae-rule); padding: 13px 0;
	}
	.ae-web-nav__item--0 > .ae-web-nav__link:hover,
	.ae-web-nav__item--0 > .ae-web-nav__trigger:hover { color: var(--ae-navy); }
	.ae-web-nav__item a:focus-visible, .ae-web-nav__trigger:focus-visible { outline-color: var(--ae-navy); }
	.ae-web-nav__sub, .ae-web-nav__sub--2 {
		position: static; min-width: 0; background: transparent; box-shadow: none; padding: 0 0 0 12px;
		opacity: 1; visibility: visible; transform: none; display: none;
	}
	.ae-web-nav__item.is-open > .ae-web-nav__sub { display: block; }
	.ae-web-nav__sublist > li { border-bottom: 1px solid var(--ae-surface-light); }
	.ae-web-nav__sub .ae-web-nav__link,
	.ae-web-nav__sub .ae-web-nav__trigger {
		color: var(--ae-web-texto); text-transform: none; letter-spacing: normal; font-weight: 500;
		font-size: 0.92rem; padding: 12px 8px; min-height: 44px;
	}
	.ae-web-nav__sub .ae-web-nav__link:hover,
	.ae-web-nav__sub .ae-web-nav__trigger:hover { background: var(--ae-surface-light); color: var(--ae-navy); }
	body.ae-web-menu-abierto { overflow: hidden; }
}
@media (max-width: 768px) {
	.ae-web-nav__logo img { height: 50px; }
}
@media (max-width: 640px) {
	.ae-web-nav__inner { padding: 8px 16px; gap: 8px; }
	.ae-web-nav__actions { gap: 6px; }
	.ae-web-nav__phone span { display: none; }
	.ae-web-nav__phone { padding: 0; width: 44px; justify-content: center; }
	.ae-web-nav__cta { padding: 8px 10px; font-size: 11px; letter-spacing: .04em; }
	.ae-web-nav__toggle { width: 40px; padding: 10px 8px; }
	.ae-web-nav__menu { padding: 24px 20px 48px 24px; }
}
@media (max-width: 480px) {
	.ae-web-nav__logo img { height: 40px; max-width: 150px; object-fit: contain; }
}
@media (prefers-reduced-motion: reduce) {
	.ae-web-nav__menu, .ae-web-nav__sub { transition: none; }
}

/* ---------- Pie ---------- */
.ae-web-footer { position: relative; overflow: hidden; background: var(--ae-navy); color: #fff; }
.ae-web-footer a { color: #fff; text-decoration: none; }
.ae-web-footer a:hover { color: #fff; }
.ae-web-footer a:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 3px; }
.ae-web-footer__inner { max-width: 1560px; margin: 0 auto; padding: 64px 40px 24px; }
.ae-web-footer__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; align-items: start; }
.ae-web-footer__brand { display: flex; justify-content: center; margin: 0 0 48px; }
.ae-web-footer__brand img { width: 100%; max-width: 220px; height: auto; display: block; }
.ae-web-footer__pill {
	display: block; position: relative; padding: 0 0 0 12px; color: #fff;
	font-family: var(--ae-font); font-weight: 700; font-size: 13px; letter-spacing: 2px;
	text-transform: uppercase; margin: 0 0 20px; line-height: 1.4;
}
.ae-web-footer__list, .ae-web-footer__contact, .ae-web-footer__social, .ae-web-footer__legal-links { list-style: none; margin: 0; padding: 0; }
.ae-web-footer__list { display: flex; flex-direction: column; gap: 11px; }
.ae-web-footer__list a, .ae-web-footer__contact { font-size: 14px; line-height: 1.55; }
.ae-web-footer__contact { display: flex; flex-direction: column; gap: 12px; }
.ae-web-footer__social { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.ae-web-footer__social-link {
	display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px;
	border-radius: 50%; border: 1px solid rgba(255,255,255,0.5);
}
.ae-web-footer__social-link:hover { background: var(--ae-red); border-color: var(--ae-red); color: #fff !important; }
.ae-web-footer__legal { border-top: 1px solid rgba(255,255,255,0.15); margin-top: 48px; padding-top: 20px; }
.ae-web-footer__legal-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.ae-web-footer__legal { text-align: center; }
.ae-web-footer__copy, .ae-web-footer__ai { color: rgba(255,255,255,0.75); font-size: 12px !important; margin: 0; }
.ae-web-footer__copy { margin-top: 12px; }
.ae-web-footer__legal-links { display: flex; gap: 18px; flex-wrap: wrap; }
.ae-web-footer__legal-link { color: rgba(255,255,255,0.7) !important; font-size: 12px; }
.ae-web-footer__legal-link:hover { color: #fff !important; }
@media (max-width: 900px) {
	.ae-web-footer__inner { padding: 56px 32px 20px; }
	.ae-web-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 600px) {
	.ae-web-footer__inner { padding: 48px 20px 20px; }
	.ae-web-footer__grid { grid-template-columns: 1fr; gap: 36px; }
	.ae-web-footer__legal-row { flex-direction: column; align-items: flex-start; }
}

/* ---------- Página heredada (sin bloques del diseño) ---------- */
.ae-web-page-head { background: var(--ae-web-gradiente); color: #fff; padding: 72px 0 56px; }
.ae-web-page-head h1 { color: #fff; font-weight: 800; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; margin: 0; }
.ae-web-prose { padding-top: 56px; padding-bottom: 80px; max-width: 900px; }
.ae-web-prose img { height: auto; }
.ae-web-archive { padding-top: 48px; padding-bottom: 80px; max-width: 900px; }
.ae-web-archive__item { border-bottom: 1px solid var(--ae-rule); padding: 24px 0; }
.ae-web-archive__item h2 { font-size: 1.4rem; margin: 0 0 6px; }
.ae-web-archive__item h2 a { color: var(--ae-navy); text-decoration: none; }
.ae-web-archive__date { color: var(--ae-web-texto); font-size: 14px; margin: 0 0 8px; }

/* ---------- Hero ---------- */
.ae-web-hero { position: relative; overflow: hidden; background: var(--ae-navy-deep); color: #fff; padding: 96px 0; }
.ae-web-hero__glow {
	position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(600px 380px at 10% 20%, rgba(68,119,187,0.55), transparent 60%),
		radial-gradient(700px 420px at 92% 10%, rgba(65,182,230,0.35), transparent 62%),
		radial-gradient(560px 360px at 30% 95%, rgba(219,22,47,0.20), transparent 60%),
		radial-gradient(620px 380px at 88% 92%, rgba(68,119,187,0.32), transparent 60%);
}
.ae-web-hero__grid { position: relative; display: grid; grid-template-columns: 1.1fr 1fr; gap: 120px; align-items: center; }
.ae-web-hero h1 { font-weight: 800; color: #fff; font-size: clamp(2.5rem, 4.4vw, 60px); line-height: 1.05; margin: 0 0 24px; }
.ae-web-hero__lead { font-size: 19px; line-height: 1.55; color: rgba(255,255,255,.85); margin: 0 0 32px; max-width: 560px; }
.ae-web-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.ae-web-hero__cta {
	position: relative; overflow: hidden; isolation: isolate; display: inline-flex; align-items: center; gap: 14px;
	background: linear-gradient(135deg, #DB162F 0%, #B8122A 55%, #DB162F 100%); color: #fff;
	font-family: var(--ae-font); font-weight: 800; font-size: 17px; letter-spacing: .02em; text-decoration: none;
	padding: 0 34px; min-height: 60px; border-radius: 999px;
	box-shadow: 0 12px 32px rgba(219,22,47,0.45), 0 2px 8px rgba(0,0,0,0.25);
	transition: transform .25s ease, box-shadow .25s ease;
}
.ae-web-hero__cta::before {
	content: ''; position: absolute; top: 0; left: -80%; width: 60%; height: 100%; z-index: -1; pointer-events: none;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.85) 45%, rgba(255,255,255,0.55) 55%, transparent 100%);
	transform: skewX(-20deg); animation: ae-web-brillo 3.2s ease-in-out infinite;
}
@keyframes ae-web-brillo { 0% { left: -80%; } 60%, 100% { left: 130%; } }
.ae-web-hero__cta:hover { color: var(--ae-navy-deep); transform: translateY(-2px); box-shadow: 0 18px 42px rgba(68,119,187,0.55), 0 4px 12px rgba(0,0,0,0.30); }
.ae-web-hero__cta:focus-visible { outline: 3px solid rgba(255,255,255,0.8); outline-offset: 3px; }
.ae-web-hero__card { aspect-ratio: 4/3; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.15); box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.ae-web-hero__card img { width: 100%; height: 100%; object-fit: cover; }
.ae-web-hero--sangre { padding: 0; min-height: 640px; display: flex; align-items: center; }
.ae-web-hero--sangre .ae-web-hero__grid { grid-template-columns: 1fr 1fr; width: 100%; }
.ae-web-hero--sangre .ae-web-hero__text { padding: 96px 0; }
.ae-web-hero__bleed { position: absolute; top: 0; right: 0; bottom: 0; width: 50%; }
.ae-web-hero__bleed img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1280px) {
	.ae-web-hero--tarjeta .ae-web-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 1024px) {
	.ae-web-hero--sangre .ae-web-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.ae-web-hero--sangre { flex-direction: column; min-height: 0; }
	.ae-web-hero--sangre .ae-web-hero__bleed { position: relative; width: 100%; height: 420px; order: 2; }
	.ae-web-hero--sangre .ae-web-hero__text { padding: 72px 0 48px; }
}
@media (max-width: 768px) {
	.ae-web-hero { padding: 64px 0; }
	.ae-web-hero--sangre { padding: 0; }
	.ae-web-hero h1 { font-size: 40px; }
	.ae-web-hero--sangre .ae-web-hero__bleed { height: 300px; }
}
@media (prefers-reduced-motion: reduce) {
	.ae-web-hero__cta::before { animation: none; display: none; }
}

/* ---------- Formulario de información ---------- */
.ae-web-lead { position: relative; overflow: hidden; padding: 120px 0; background: var(--ae-web-gradiente); color: #fff; }
.ae-web-lead__bg {
	position: absolute; left: -6%; top: 0; width: 52%; height: 100%; opacity: .18; pointer-events: none;
	background-position: center; background-size: cover;
	-webkit-mask-image: linear-gradient(90deg, #000 60%, transparent 100%); mask-image: linear-gradient(90deg, #000 60%, transparent 100%);
}
.ae-web-lead__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.ae-web-lead h2 { font-weight: 800; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.05; margin: 0 0 20px; color: #fff; text-wrap: balance; }
.ae-web-lead__intro { color: rgba(255,255,255,.8); margin: 0 0 32px; max-width: 480px; }
.ae-web-checks { list-style: none; padding: 0; margin: 0 0 36px; display: flex; flex-direction: column; gap: 14px; }
.ae-web-checks li { display: flex; align-items: center; gap: 14px; font-size: var(--ae-web-cuerpo); color: rgba(255,255,255,.9); line-height: 1.45; }
.ae-web-checks__icon, .ae-web-callcard__icon {
	flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; color: #fff;
	background: rgba(219,22,47,0.14); border: 1px solid rgba(219,22,47,0.55);
}
.ae-web-checks__icon { width: 32px; height: 32px; border-radius: 8px; }
.ae-web-checks sup { font-size: .65em; }
.ae-web-callcard {
	display: flex; align-items: center; gap: 14px; padding: 16px 20px; max-width: 420px; text-decoration: none; color: #fff;
	background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.10); border-radius: 12px;
}
.ae-web-callcard:hover { color: #fff; border-color: rgba(219,22,47,0.55); }
.ae-web-callcard:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 2px; }
.ae-web-callcard__icon { width: 44px; height: 44px; border-radius: 50%; }
.ae-web-callcard__label { display: block; font-family: var(--ae-font); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.ae-web-callcard__num { display: block; font-family: var(--ae-font); font-weight: 700; font-size: 18px; }
.ae-web-count { max-width: 420px; padding: 24px; border-radius: 14px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); }
.ae-web-count__head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.ae-web-count__pill {
	font-family: var(--ae-font); font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
	border: 1px solid rgba(255,255,255,0.45); border-radius: 999px; padding: 6px 14px;
}
.ae-web-count__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.ae-web-count__grid > div { background: #26297A; border-radius: 10px; padding: 12px 6px; text-align: center; }
.ae-web-count__grid span { display: block; font-family: var(--ae-font); font-weight: 800; font-size: 28px; color: #fff; line-height: 1.1; }
.ae-web-count__grid small { display: block; font-family: var(--ae-font); font-weight: 600; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-top: 4px; }
.ae-web-lead__card .form-card { border-radius: 20px; padding: 44px 40px; box-shadow: 0 24px 64px rgba(0,0,0,.35); }
.ae-web-lead__form-title { font-weight: 800; font-size: 26px; color: var(--ae-navy); margin: 0 0 6px; line-height: 1.15; }
.ae-web-lead__form-text { font-size: var(--ae-web-cuerpo) !important; color: var(--ae-web-texto); margin: 0 0 24px; }
@media (max-width: 960px) {
	.ae-web-lead { padding: 72px 0; }
	.ae-web-lead__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.ae-web-lead__card .form-card { padding: 32px 24px; }
}

/* ---------- Franja de datos ---------- */
.ae-web-trust { position: relative; overflow: hidden; background: var(--ae-navy-deep); color: #fff; }
.ae-web-trust__bg { position: absolute; inset: 0; opacity: .22; filter: blur(18px); transform: scale(1.08); background-size: cover; background-position: center; pointer-events: none; }
.ae-web-trust__grid { position: relative; list-style: none; margin: 0; padding: 56px 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.ae-web-trust__item { text-align: center; padding: 0 24px; border-right: 1px solid rgba(255,255,255,.15); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 140px; }
.ae-web-trust__item:last-child { border-right: 0; }
.ae-web-trust__value { font-family: var(--ae-font); font-weight: 700; font-size: 40px; line-height: 1; margin-bottom: 14px; }
.ae-web-trust__item--largo .ae-web-trust__value { font-size: 26px; line-height: 1.1; }
.ae-web-trust__label { font-family: var(--ae-font); font-weight: 500; font-size: 14px; color: rgba(255,255,255,.8); line-height: 1.4; }
/* Seis datos van en dos filas de tres: a cuatro columnas la segunda fila queda coja. */
@media (min-width: 769px) {
	.ae-web-trust__grid:has(> .ae-web-trust__item:nth-child(6)) { grid-template-columns: repeat(3, 1fr); row-gap: 40px; }
	.ae-web-trust__grid:has(> .ae-web-trust__item:nth-child(6)) > .ae-web-trust__item:nth-child(3n) { border-right: 0; }
}
@media (max-width: 768px) {
	.ae-web-trust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 0; padding: 40px 0; }
	.ae-web-trust__item { border-right: 0; min-height: 0; padding: 0 8px; min-width: 0; }
	.ae-web-trust__value { font-size: 30px; }
	.ae-web-trust__item--largo .ae-web-trust__value { font-size: 22px; }
}
@media (max-width: 420px) {
	.ae-web-trust__value { font-size: 24px; }
	.ae-web-trust__label { font-size: 13px; }
}

/* ---------- Programas ---------- */
.ae-web-programs { padding: 96px 0; background: var(--ae-web-gradiente); color: #fff; }
.ae-web-programs__title { font-weight: 800; color: #fff; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; margin: 0 0 20px; text-align: center; }
.ae-web-programs__lead { font-size: 18px; color: rgba(255,255,255,0.8); margin: 0 auto 40px; text-align: center; max-width: 900px; }
.ae-web-programs__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 12px; }
.ae-web-programs__item { min-width: 0; }
.ae-web-pcard {
	position: relative; height: 100%; min-height: 150px; border-radius: 14px; overflow: hidden; padding: 20px;
	display: flex; flex-direction: column; justify-content: flex-end; text-decoration: none; background: var(--ae-web-navy-darker);
	transition: transform .25s ease, box-shadow .25s ease;
}
.ae-web-pcard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ae-web-pcard::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(20,22,59,0.20) 0%, rgba(20,22,59,0.85) 100%); }
.ae-web-pcard:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(0,0,0,0.30); }
.ae-web-pcard:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 3px; }
.ae-web-pcard__name { position: relative; z-index: 2; font-weight: 500; font-size: 1.05rem; line-height: 1.25; margin: 0; color: #fff; }
.ae-web-pcard__badge {
	position: absolute; top: 14px; right: 14px; z-index: 2; font-family: var(--ae-font); font-weight: 700; font-size: 0.68rem;
	letter-spacing: .06em; padding: 5px 12px; border-radius: 6px; background: rgba(20,22,59,0.6); color: #fff; border: 1px solid rgba(255,255,255,0.18);
}
@media (max-width: 1100px) { .ae-web-programs__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) {
	.ae-web-programs__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
}
@media (max-width: 480px) {
	.ae-web-programs__grid { grid-template-columns: 1fr; grid-auto-rows: 170px; }
}

/* ---------- Tarjetas con detalle ---------- */
.ae-web-features { background: #fff; color: var(--ae-ink); padding: 96px 0; }
.ae-web-features__title { font-weight: 800; color: var(--ae-navy-deep); font-size: clamp(2rem, 3.4vw, 40px); line-height: 1.1; margin: 0; text-align: center; text-wrap: balance; }
.ae-web-features__lead { margin: 20px auto 64px; max-width: 820px; text-align: center; }
.ae-web-features__lead p { font-size: 18px; color: var(--ae-web-texto); margin: 0 0 12px; }
.ae-web-features__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ae-web-feature { position: relative; border-radius: 14px; overflow: hidden; min-height: 360px; isolation: isolate; color: #fff; }
.ae-web-feature:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 3px; }
.ae-web-feature__img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .6s ease; }
.ae-web-feature__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,22,59,0.15) 0%, rgba(20,22,59,0.55) 55%, rgba(20,22,59,0.92) 100%); transition: background .35s ease; }
.ae-web-feature__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 22px 28px; transform: translateY(calc(100% - 180px)); transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.ae-web-feature__title { font-weight: 700; font-size: 20px; line-height: 1.15; margin: 0 0 6px; color: #fff; text-transform: uppercase; }
.ae-web-feature__text { font-size: 14px !important; line-height: 1.5; color: rgba(255,255,255,0.88); margin: 0 0 10px; }
.ae-web-feature__more { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ae-font); font-weight: 600; font-size: 13px; color: #fff; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 20px; }
.ae-web-feature__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; opacity: 0; transform: translateY(6px); transition: opacity .35s ease .15s, transform .35s ease .15s; }
.ae-web-feature__list li { position: relative; padding-left: 22px; font-size: 14px !important; line-height: 1.5; color: rgba(255,255,255,0.92); }
.ae-web-feature__list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 14px; height: 2px; background: var(--ae-red); border-radius: 2px; }
.ae-web-feature:hover .ae-web-feature__img, .ae-web-feature:focus-within .ae-web-feature__img { transform: scale(1.06); }
.ae-web-feature:hover .ae-web-feature__shade, .ae-web-feature:focus-within .ae-web-feature__shade { background: linear-gradient(180deg, rgba(20,22,59,0.85) 0%, rgba(20,22,59,0.90) 45%, rgba(20,22,59,0.96) 100%); }
.ae-web-feature:hover .ae-web-feature__body, .ae-web-feature:focus-within .ae-web-feature__body { transform: none; }
.ae-web-feature:hover .ae-web-feature__more, .ae-web-feature:focus-within .ae-web-feature__more { opacity: 0; }
.ae-web-feature:hover .ae-web-feature__list, .ae-web-feature:focus-within .ae-web-feature__list { opacity: 1; transform: none; }
/* Sin ratón no hay «pasar por encima»: la lista se ve siempre. */
@media (hover: none), (prefers-reduced-motion: reduce) {
	.ae-web-feature__body { transform: none; }
	.ae-web-feature__more { display: none; }
	.ae-web-feature__list { opacity: 1; transform: none; transition: none; }
	.ae-web-feature__shade { background: linear-gradient(180deg, rgba(20,22,59,0.35) 0%, rgba(20,22,59,0.85) 45%, rgba(20,22,59,0.95) 100%); }
	.ae-web-feature__img { transition: none; }
}
@media (max-width: 1280px) { .ae-web-features__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) {
	.ae-web-features { padding: 64px 0; }
	.ae-web-features__lead { margin-bottom: 40px; }
	.ae-web-features__grid { grid-template-columns: 1fr; }
	.ae-web-feature { min-height: 420px; }
}

/* ---------- Tarjeta destacada ---------- */
.ae-web-innovation { background: linear-gradient(135deg, #14163B 0%, #1A1C4E 55%, #14163B 100%); padding: 96px 0; }
.ae-web-innovation__card { position: relative; overflow: hidden; background: #fff; border-radius: 24px; padding: 72px 56px; max-width: 1240px; margin: 0 auto; text-align: center; box-shadow: 0 24px 60px rgba(0,0,0,0.35); }
.ae-web-innovation__bg { position: absolute; inset: 0; opacity: .12; background-size: cover; background-position: center; pointer-events: none; }
.ae-web-innovation__body { position: relative; }
.ae-web-innovation h2 { font-weight: 800; font-size: clamp(2rem, 3.6vw, 46px); line-height: 1.1; color: var(--ae-navy-deep); margin: 0 0 24px; }
.ae-web-innovation__text { font-size: 18px !important; line-height: 1.65; color: var(--ae-navy); margin: 0 auto 32px; max-width: 640px; }
.ae-web-innovation__seal { margin: 48px auto 0; max-width: 720px; background: var(--ae-web-navy-darker); border-radius: 16px; padding: 28px 36px; display: flex; align-items: center; gap: 28px; text-align: left; }
.ae-web-innovation__seal-img { width: 140px; height: auto; flex-shrink: 0; }
.ae-web-innovation__seal p { font-size: 15px !important; line-height: 1.55; color: rgba(255,255,255,0.92); margin: 0; }
@media (max-width: 768px) {
	.ae-web-innovation { padding: 64px 0; }
	.ae-web-innovation__card { padding: 40px 24px; }
	.ae-web-innovation__seal { flex-direction: column; text-align: center; padding: 24px; gap: 16px; }
}

/* ---------- Imagen y texto ---------- */
.ae-web-media { position: relative; overflow: hidden; padding: 96px 0; }
.ae-web-media--oscuro { background: var(--ae-web-gradiente); color: #fff; }
.ae-web-media--claro { background: #fff; color: var(--ae-ink); }
.ae-web-media--gris { background: var(--ae-surface-light); color: var(--ae-ink); }
.ae-web-media__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: center; }
.ae-web-media--img-derecha .ae-web-media__grid { grid-template-columns: 1.1fr 1fr; }
.ae-web-media--img-derecha .ae-web-media__images { order: 2; }
/* Sin imagen, el texto va en una columna centrada, y la nota con él. */
.ae-web-media--sin-imagen .ae-web-media__grid { grid-template-columns: minmax(0, 1fr); max-width: 900px; margin-inline: auto; }
.ae-web-media--sin-imagen .ae-web-media__note { max-width: 900px; margin-inline: auto; box-sizing: border-box; }
.ae-web-media__images--una .ae-web-media__figure { aspect-ratio: 4/3; }
.ae-web-media__figure { margin: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,0.25); }
.ae-web-media__figure img { width: 100%; height: 100%; object-fit: cover; }
.ae-web-media__images--collage { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 200px 200px; gap: 12px; }
.ae-web-media__images--collage .ae-web-media__figure:first-child { grid-row: 1 / span 2; }
.ae-web-media__images--collage .ae-web-media__figure:only-child,
.ae-web-media__images--collage .ae-web-media__figure:first-child:nth-last-child(2) { grid-row: 1 / span 2; }
.ae-web-media__images--collage .ae-web-media__figure:nth-child(2):last-child { grid-row: 1 / span 2; }
.ae-web-media__title { font-weight: 800; font-size: clamp(2rem, 3.6vw, 44px); line-height: 1.1; margin: 0 0 20px; text-wrap: balance; }
.ae-web-media--oscuro .ae-web-media__title { color: #fff; }
.ae-web-media--claro .ae-web-media__title, .ae-web-media--gris .ae-web-media__title { color: var(--ae-navy); }
.ae-web-media__rich > :first-child { margin-top: 0; }
.ae-web-media__rich p, .ae-web-media__rich li { font-size: var(--ae-web-cuerpo); }
.ae-web-media--oscuro .ae-web-media__rich { color: rgba(255,255,255,0.82); }
.ae-web-media--oscuro .ae-web-media__rich strong { color: #fff; }
.ae-web-media--claro .ae-web-media__rich, .ae-web-media--gris .ae-web-media__rich { color: var(--ae-web-texto); }
.ae-web-media__rich h3 { font-size: 18px; color: #fff; margin: 24px 0 8px; }
.ae-web-media--claro .ae-web-media__rich h3, .ae-web-media--gris .ae-web-media__rich h3 { color: var(--ae-navy); }
.ae-web-media__rich a { color: inherit; text-decoration: underline; }
.ae-web-media__rich ul { padding-left: 1.1em; }
.ae-web-media__rich ul li::marker { color: #fff; }
.ae-web-media--claro .ae-web-media__rich ul li::marker, .ae-web-media--gris .ae-web-media__rich ul li::marker { color: var(--ae-blue); }
.ae-web-list { list-style: none; padding: 0; margin: 0 0 32px; display: flex; flex-direction: column; gap: 14px; }
.ae-web-list:empty { display: none; }
.ae-web-list__item { display: flex; align-items: center; gap: 14px; font-size: var(--ae-web-cuerpo) !important; line-height: 1.65; }
.ae-web-media--oscuro .ae-web-list__item { color: rgba(255,255,255,.9); }
/* Lists are bullets in the body colour; a point with its own icon keeps its badge. */
.ae-web-media--claro .ae-web-list__item, .ae-web-media--gris .ae-web-list__item { color: var(--ae-web-texto); }
.ae-web-media--lista-tinta .ae-web-list__item { color: var(--ae-ink); font-weight: 400; }
.ae-web-list__item--vineta { align-items: flex-start; gap: 12px; }
.ae-web-list__bullet { flex: none; width: 8px; height: 8px; margin-top: calc((1.65em - 8px) / 2); border-radius: 50%; background: #fff; }
.ae-web-media--claro .ae-web-list__bullet, .ae-web-media--gris .ae-web-list__bullet { background: var(--ae-blue); }
.ae-web-list__icon { width: 32px; height: 32px; border-radius: 6px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: rgba(219,22,47,0.14); border: 1px solid rgba(219,22,47,0.55); }
.ae-web-media--claro .ae-web-list__icon, .ae-web-media--gris .ae-web-list__icon { color: var(--ae-blue); background: rgba(68,119,187,0.10); border-color: rgba(68,119,187,0.35); }
.ae-web-media--claro .ae-web-list__item strong, .ae-web-media--gris .ae-web-list__item strong { color: var(--ae-navy); }
.ae-web-list__item a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ae-web-media--claro .ae-web-list__item a, .ae-web-media--gris .ae-web-list__item a { color: var(--ae-blue); }
.ae-web-media--claro .ae-web-list__item a:hover, .ae-web-media--gris .ae-web-list__item a:hover { color: var(--ae-navy); }
.ae-web-list__item a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.ae-web-list__item mark { display: inline-block; margin-top: 4px; padding: 2px 10px; border-radius: var(--ae-radius-sm); background: var(--ae-navy); color: #fff; font-weight: 800; letter-spacing: .06em; }
.ae-web-media__note { margin-top: 48px; padding: 24px 28px; border-radius: 14px; }
.ae-web-media--oscuro .ae-web-media__note { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); color: rgba(255,255,255,.85); }
.ae-web-media--claro .ae-web-media__note, .ae-web-media--gris .ae-web-media__note { background: var(--ae-web-navy-darker); color: rgba(255,255,255,.9); }
.ae-web-media__note p { font-size: var(--ae-web-cuerpo) !important; margin: 0 0 6px; }
.ae-web-media__note strong { color: #fff; }
/* Nota en gris cálido (web_media_nota_tono): sobre blanco o gris claro destaca
   menos que la navy. Texto navy, más de 11:1 sobre ese gris. */
.ae-web-media--claro .ae-web-media__note--calida, .ae-web-media--gris .ae-web-media__note--calida { background: var(--ae-surface-warm); color: var(--ae-navy); }
.ae-web-media__note--calida strong { color: var(--ae-navy); }
@media (max-width: 1100px) {
	.ae-web-media__grid, .ae-web-media--img-derecha .ae-web-media__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.ae-web-media--img-derecha .ae-web-media__images { order: 0; }
}
@media (max-width: 768px) {
	.ae-web-media { padding: 64px 0; }
	.ae-web-media__images--collage { grid-template-rows: 150px 150px; }
}

/* ---------- Vídeo ---------- */
.ae-web-video { position: relative; overflow: hidden; padding: 96px 0; background: var(--ae-web-gradiente); color: #fff; }
.ae-web-video__grid { display: grid; grid-template-columns: 1.1fr auto; gap: 64px; align-items: center; max-width: 1200px; }
.ae-web-video h2 { font-weight: 800; color: #fff; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; margin: 0 0 20px; }
.ae-web-video__text p { font-size: 18px; color: rgba(255,255,255,0.8); margin: 0; max-width: 520px; }
/* Botón opcional debajo del texto (web_video_boton_texto). */
.ae-web-video__acciones { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 28px; }
.ae-web-video__frame { position: relative; overflow: hidden; background: #000; }
.ae-web-video--vertical .ae-web-video__frame { width: min(360px, 80vw); aspect-ratio: 9/16; border-radius: 24px; justify-self: end; box-shadow: 0 32px 80px rgba(0,0,0,0.55), 0 0 0 6px rgba(255,255,255,0.06); }
.ae-web-video--horizontal .ae-web-video__frame { width: 100%; aspect-ratio: 16/9; border-radius: 16px; box-shadow: 0 32px 80px rgba(0,0,0,0.45); }
.ae-web-video--solo .ae-web-video__grid { grid-template-columns: minmax(0, 1fr); max-width: 1100px; }
.ae-web-video--solo.ae-web-video--horizontal { background: #000; }
.ae-web-video__frame video, .ae-web-video__frame iframe, .ae-web-video__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.ae-web-video__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 2;
	width: 88px; height: 88px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--ae-red); color: #fff; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 12px 40px rgba(0,0,0,0.45); transition: transform .2s ease;
}
.ae-web-video__play:hover { transform: translate(-50%, -50%) scale(1.06); }
.ae-web-video__play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ae-web-video__foot { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 2; display: flex; justify-content: space-between; font-family: var(--ae-font); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.ae-web-video__foot i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ae-red); margin-right: 6px; }
.ae-web-video.is-playing .ae-web-video__play, .ae-web-video.is-playing .ae-web-video__foot, .ae-web-video.is-playing .ae-web-video__poster { display: none; }
@media (max-width: 900px) {
	.ae-web-video { padding: 64px 0; }
	.ae-web-video__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; text-align: center; }
	.ae-web-video__text p { margin: 0 auto; }
	.ae-web-video__acciones { justify-content: center; }
	.ae-web-video--vertical .ae-web-video__frame { justify-self: center; }
}

/* ---------- Instagram ---------- */
.ae-web-instagram { padding: 96px 0; background: #fff; }
.ae-web-instagram__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 40px; flex-wrap: wrap; }
.ae-web-instagram__handle { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ae-font); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ae-blue); margin-bottom: 14px; }
.ae-web-instagram h2 { font-weight: 800; color: var(--ae-navy); font-size: clamp(1.9rem, 3.6vw, 2.6rem); line-height: 1.1; margin: 0; }
/* The feed comes from the Instagram Feed plugin; in the editor, without posts, a notice takes its place. */
.ae-web-aviso-editor { margin: 0; padding: 24px; border: 1px dashed var(--ae-rule); border-radius: var(--ae-radius-sm); background: var(--ae-surface-light); font-family: var(--ae-font); font-size: 14px; line-height: 1.5; color: var(--ae-ink); }

/* ---------- Blog ---------- */
.ae-web-blog { padding: 96px 0; background: linear-gradient(135deg, #F4F6FA 0%, #EAECF3 55%, #F4EEDA 100%); }
.ae-web-blog__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 48px; flex-wrap: wrap; }
.ae-web-blog__head > div { flex: 1 1 520px; }
.ae-web-blog h2 { font-weight: 800; color: var(--ae-navy); font-size: clamp(2rem, 3.4vw, 40px); line-height: 1.1; margin: 0; }
.ae-web-blog__head p { font-size: 18px; color: var(--ae-web-texto); margin: 20px 0 0; max-width: 820px; }
.ae-web-blog__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ae-web-post { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 4px 12px rgba(20,22,59,.06); transition: transform .2s, box-shadow .2s; }
.ae-web-post:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(20,22,59,.14); color: inherit; }
.ae-web-post:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 3px; }
.ae-web-post__img { position: relative; display: block; aspect-ratio: 16/9; background: var(--ae-navy-deep); }
.ae-web-post__img img { width: 100%; height: 100%; object-fit: cover; }
.ae-web-post__cat { position: absolute; top: 14px; left: 14px; background: var(--ae-navy); color: #fff; font-family: var(--ae-font); font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; padding: 6px 14px; border-radius: 999px; }
.ae-web-post__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ae-web-post__date { font-family: var(--ae-font); font-weight: 500; font-size: 12px; color: #5A5E6B; text-transform: uppercase; letter-spacing: .1em; }
.ae-web-post__title { font-family: var(--ae-font); font-weight: 700; font-size: 19px; color: var(--ae-navy-deep); line-height: 1.25; }
.ae-web-post__excerpt { font-size: var(--ae-web-cuerpo); color: var(--ae-web-texto); line-height: 1.55; }
.ae-web-post__more { font-family: var(--ae-font); font-weight: 600; font-size: 14px; color: #3A6BAA; margin-top: auto; padding-top: 8px; }
@media (max-width: 1100px) { .ae-web-blog__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) {
	.ae-web-blog { padding: 64px 0; }
	.ae-web-blog__grid { grid-template-columns: 1fr; }
	.ae-web-blog__head .ae-web-btn { width: 100%; }
}

/* ---------- Franja de texto ---------- */
.ae-web-band {
	padding: 72px 0; text-align: center; color: #fff;
	background: repeating-linear-gradient(135deg, rgba(255,255,255,0.03) 0 2px, transparent 2px 18px), var(--ae-web-gradiente);
}
.ae-web-band h2 { font-weight: 800; color: #fff; font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0 0 18px; }
.ae-web-band__text { max-width: 900px; margin: 0 auto; color: rgba(255,255,255,0.88); }
.ae-web-band__text p { font-size: 16px; margin: 0 0 10px; }
.ae-web-band__text a { color: #fff; text-decoration: underline; }
.ae-web-band__text a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ae-web-band__text strong { color: #fff; }
.ae-web-band--blanco .ae-web-band__text strong { color: var(--ae-navy); }
.ae-web .ae-web-band__text p.ae-web-entradilla { font-size: 1.2rem; font-weight: 500; line-height: 1.6; margin-bottom: 16px; }
.ae-web .ae-web-band--blanco .ae-web-band__text p.ae-web-entradilla { color: var(--ae-navy); }
/* La misma entradilla cuando el texto va junto a una foto (ae-web-media sobre claro). */
.ae-web .ae-web-media__rich p.ae-web-entradilla { font-size: 1.2rem; font-weight: 500; line-height: 1.6; color: var(--ae-navy); }
.ae-web-band__sub { display: block; }
.ae-web-band--blanco { background: #fff; color: var(--ae-ink); }
.ae-web-band--blanco h2 { color: var(--ae-navy); }
.ae-web-band--blanco .ae-web-band__text { color: var(--ae-web-texto); }
.ae-web-band--blanco .ae-web-band__text a { color: var(--ae-red); font-weight: 700; text-decoration: none; }
.ae-web-band--blanco .ae-web-band__text a:hover { text-decoration: underline; }
.ae-web-band--blanco .ae-web-band__text a:focus-visible { outline-color: var(--ae-navy); }
.ae-web-band__botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 28px; }
@media (max-width: 640px) {
	.ae-web-band__botones { flex-direction: column; align-items: stretch; max-width: 360px; margin-left: auto; margin-right: auto; }
}

/* ---------- Disclaimers y llamada ---------- */
.ae-web-contact { background: #fff; padding: 82px 5%; }
.ae-web-contact__inner { max-width: 1258px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.ae-web-contact__box { position: relative; background: var(--ae-surface-light); border-radius: 12px; padding: 20px 60px 20px 24px; }
.ae-web-contact__i { position: absolute; top: 16px; right: 16px; width: 24px; height: 24px; border-radius: 50%; background: var(--ae-red); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--ae-font); font-weight: 700; font-size: 14px; }
.ae-web-contact__box h2 { font-weight: 700; font-size: 18px; color: var(--ae-navy-deep); margin: 0 0 6px; }
.ae-web-contact__text p { font-size: var(--ae-web-cuerpo) !important; line-height: 1.55; color: var(--ae-ink); margin: 0; }
.ae-web-contact__text a { color: var(--ae-navy-deep); text-decoration: underline; }
.ae-web-contact__call { display: flex; flex-direction: column; align-items: center; border: 3px solid var(--ae-red); border-radius: 999px; padding: 16px 40px; text-decoration: none; }
.ae-web-contact__call:hover { background: rgba(219,22,47,0.12); }
.ae-web-contact__call:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 3px; }
.ae-web-contact__label { font-family: var(--ae-font); font-weight: 600; font-size: 11px; color: var(--ae-navy-deep); letter-spacing: 2px; text-transform: uppercase; }
.ae-web-contact__num { font-family: var(--ae-font); font-weight: 700; font-size: 18px; color: var(--ae-navy-deep); margin-top: 4px; }
@media (max-width: 768px) { .ae-web-contact { padding: 48px 20px; } }

/* ---------- Pasos con tarjeta ----------
   Tarjetas blancas sobre navy con el número en un círculo rojo que monta sobre
   su borde superior; el borde del círculo es del color del fondo para que
   parezca recortado. */
.ae-web-steps { padding: 80px 0; background: var(--ae-navy-deep); color: #fff; }
.ae-web-steps__lead { max-width: 880px; margin: -8px auto 40px; text-align: center; font-size: var(--ae-text-lg); line-height: 1.7; color: rgba(255,255,255,0.85); }
.ae-web-steps__title { display: table; margin: 0 auto 32px; text-align: center; font-weight: 800; font-size: clamp(1.75rem, 3.4vw, 2.5rem); color: #fff; line-height: 1.15; letter-spacing: -0.01em; }
.ae-web-steps__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; counter-reset: ae-web-paso; }
.ae-web-step {
	counter-increment: ae-web-paso; position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px;
	margin-top: 42px; padding: 66px 32px 32px; border-radius: var(--ae-radius-lg); background: #fff; color: var(--ae-blue);
	text-align: center; box-shadow: 0 20px 48px rgba(0,0,0,0.28);
}
.ae-web-step::before {
	content: counter(ae-web-paso); position: absolute; top: -42px; left: 50%; transform: translateX(-50%); box-sizing: content-box;
	width: 72px; height: 72px; border-radius: 50%; border: 6px solid var(--ae-navy-deep); background: var(--ae-red); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; font-family: var(--ae-font); font-weight: 800; font-size: 1.875rem;
}
.ae-web-step__title { font-weight: 700; font-size: var(--ae-text-xl); color: var(--ae-navy); margin: 0; line-height: 1.3; text-wrap: balance; }
.ae-web .ae-web-step__etiqueta {
	margin: 0; padding: 6px 12px; border-radius: var(--ae-radius-pill); background: var(--ae-surface-warm); color: var(--ae-navy);
	font-size: var(--ae-text-xs); font-weight: 700; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase;
}
.ae-web-step__text p, .ae-web-step__text li { font-size: var(--ae-text-base) !important; line-height: 1.7; color: var(--ae-blue); margin: 0 0 8px; }
.ae-web-step__text p:last-child { margin-bottom: 0; }
.ae-web-step__text ul { padding-left: 1.1em; margin: 0; text-align: left; }
.ae-web-step__text strong { color: var(--ae-navy); }
.ae-web-step__text a { color: var(--ae-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ae-web-step__text a:hover { color: var(--ae-navy); }
.ae-web-step__text a:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
.ae-web-step__pie { width: 100%; margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ae-web-step__img { width: 100%; margin: 0; border-radius: 12px; overflow: hidden; aspect-ratio: 16/10; }
.ae-web-step__img img { width: 100%; height: 100%; object-fit: cover; }
.ae-web-step .ae-web-btn { min-height: 48px; font-size: 14px; padding: 0 20px; white-space: nowrap; }
.ae-web-steps__nota { max-width: 880px; margin: 48px auto 0; padding: 24px 32px; border-radius: var(--ae-radius-lg); background: var(--ae-surface-warm); }
.ae-web .ae-web-steps__nota p { margin: 0; font-size: var(--ae-text-sm); font-style: italic; line-height: 1.7; color: var(--ae-ink); text-align: center; }
.ae-web-steps__nota a { color: var(--ae-navy); font-weight: 700; }
/* En tres columnas, titular, texto y pie de cada tarjeta son filas compartidas:
   los textos arrancan a la misma altura aunque un titular ocupe dos líneas, y
   los pies quedan abajo. */
@media (min-width: 1101px) {
	.ae-web-step { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 12px; justify-items: center; align-items: start; }
	.ae-web-step__title { align-self: end; }
	.ae-web-step__pie { align-self: end; margin-top: 0; }
}
@media (max-width: 1100px) {
	.ae-web-steps__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin: 0 auto; gap: 24px; }
}
@media (max-width: 768px) {
	.ae-web-steps { padding: 64px 0; }
	.ae-web-step { padding: 62px 24px 28px; }
	.ae-web-steps__nota { padding: 20px; }
}

/* ---------- Formulario a ancho completo ---------- */
.ae-web-panel { position: relative; overflow: hidden; padding: 96px 0; background: var(--ae-web-gradiente); color: #fff; }
.ae-web-panel__bg { position: absolute; inset: 0; opacity: .14; background-size: cover; background-position: center; pointer-events: none; }
.ae-web-panel__inner { position: relative; max-width: 1040px; }
.ae-web-panel__title { display: table; margin: 0 auto 12px; text-align: center; font-weight: 800; font-size: clamp(2rem, 3.6vw, 44px); color: #fff; }
.ae-web-panel__text { text-align: center; color: rgba(255,255,255,0.82); margin: 0 0 32px; }
.ae-web-panel--calido { background: var(--ae-surface-warm); color: var(--ae-ink); }
.ae-web-panel--calido .ae-web-panel__title { color: var(--ae-navy); }
.ae-web-panel--calido .ae-web-panel__text { color: var(--ae-blue); }
.ae-web-panel--calido .ae-web-panel__card .form-card { box-shadow: 0 12px 32px rgba(4,23,58,0.12); }
/* La tarjeta del formulario, blanca como la del hero de programa. */
.ae-web-panel__card { max-width: 760px; margin: 0 auto; }
.ae-web-panel__card .form-card { box-sizing: border-box; background: #fff; color: var(--ae-ink); border-radius: 20px; padding: 40px; box-shadow: 0 16px 48px rgba(4,23,58,0.35); }
/* Los formularios de inscripción no traen el CSS propio del de solicitud de
   información: cada campo, con su etiqueta encima y a todo el ancho de su
   columna. */
.ae-web-panel__card .forminator-ui.forminator-custom-form .forminator-field { display: flex; flex-direction: column; width: 100%; }
.ae-web-panel__card .forminator-ui.forminator-custom-form .forminator-field .forminator-input,
.ae-web-panel__card .forminator-ui.forminator-custom-form .forminator-field select,
.ae-web-panel__card .forminator-ui.forminator-custom-form .forminator-field .iti { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
.ae-web-panel__card .forminator-ui.forminator-custom-form .forminator-button-submit { color: #fff !important; }
/* Consentimiento de los dos formularios de inscripción (special-events-form y
   open-house-events-form): su CSS generado oculta la casilla
   (.forminator-checkbox__wrapper con display: none !important) y deja el texto
   como rótulo de campo, en mayúsculas. Aquí la casilla real vuelve a verse a la
   izquierda del texto, con la letra de los consentimientos del tema de
   landings. El texto es una etiqueta del formulario cuyo clic cancela el propio
   Forminator, así que la etiqueta que envuelve la casilla se extiende sobre
   toda la fila: pulsar el texto marca la casilla. Los demás formularios no
   cambian. */
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-field,
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-field { position: relative; flex-direction: row; align-items: flex-start; gap: 10px; }
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-checkbox__wrapper,
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-checkbox__wrapper { position: static !important; display: flex !important; order: -1; flex: none; }
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-checkbox,
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-checkbox { position: static !important; display: flex; cursor: pointer; }
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-checkbox::after,
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-checkbox::after { content: ''; position: absolute; inset: 0; cursor: pointer; }
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent input[type="checkbox"],
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent input[type="checkbox"] { width: 18px; height: 18px; min-width: 18px; margin: 0; accent-color: var(--ae-navy); cursor: pointer; }
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-consent__label:empty,
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-consent__label:empty { display: none; }
.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-label,
.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-label {
	margin: 0; padding: 0; font-size: 13px !important; font-weight: 400 !important; line-height: 1.5; letter-spacing: normal;
	text-transform: none; color: var(--ae-blue) !important;
}
@media (max-width: 768px) {
	.ae-web-panel { padding: 64px 0; }
	.ae-web-panel__card .form-card { padding: 28px 20px; }
}

@media (max-width: 768px) {
	.ae-web-container { padding: 0 20px; }
}

/* Smush pone opacity:1 a lo que carga en diferido; las capas decorativas
   llevan su propia opacidad y se excluyen de esa carga con .no-lazyload. */
.ae-web-lead__bg { opacity: .18 !important; }
.ae-web-trust__bg { opacity: .22 !important; }
.ae-web-innovation__bg { opacity: .12 !important; }
.ae-web-panel__bg { opacity: .14 !important; }

/* ---------- Atelier: cabecera ---------- */
.ae-web-nav__phone {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px;
	border: 1px solid rgba(255,255,255,0.45); border-radius: var(--ae-radius-sm); color: #fff;
	font-family: var(--ae-font); font-weight: 500; font-size: 14px; text-decoration: none; white-space: nowrap;
}
.ae-web-nav__phone:hover { color: #fff; background: rgba(255,255,255,0.08); }
.ae-web-nav__phone:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@media (max-width: 1279px) {
	.ae-web-nav__actions { flex: 0 0 auto; justify-content: flex-end; }
	.ae-web-nav__toggle { order: 3; }
}
/* En el teléfono, el botón de llamar es solo el icono: con el logo a su tamaño
   del diseño, la barra no cabe de otro modo. Por debajo de 360, ni el icono. */
@media (max-width: 640px) {
	.ae-web-nav__phone { padding: 0; width: 44px; justify-content: center; }
}
@media (max-width: 359px) {
	.ae-web-nav__phone { display: none; }
}

/* ---------- Atelier: botones de la barra ----------
   The phone, the menu item marked as a button (class ae-web-nav__boton) and
   «Book a Tour» share one size: 44px high, 14px bold text. In the drawer the
   menu button closes the list at full width. */
.ae-web-nav__phone, .ae-web-nav__cta, .ae-web-nav__item--0 > .ae-web-nav__boton {
	box-sizing: border-box; height: 44px; min-height: 44px; padding: 0 18px; border-radius: var(--ae-radius-sm);
	font-family: var(--ae-font); font-size: 14px; font-weight: 700; letter-spacing: .06em; line-height: 1; white-space: nowrap;
}
.ae-web-nav__cta, .ae-web-nav__item--0 > .ae-web-nav__boton { text-transform: uppercase; }
.ae-web-nav__item--0 > .ae-web-nav__boton { justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,0.45); }
.ae-web-nav__item--0 > .ae-web-nav__boton:hover { color: #fff; background: rgba(255,255,255,0.08); }
.ae-web-nav__item--0 > .ae-web-nav__boton:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ae-web-nav__item--boton { margin-left: 4px; }
/* With a button at its end the menu sits against the bar buttons, so the three
   read as one group. */
@media (min-width: 1280px) {
	.ae-web-nav__menu:has(.ae-web-nav__item--boton) { justify-content: flex-end; }
}
@media (min-width: 1280px) and (max-width: 1535px) {
	.ae-web-nav__phone { width: 44px; padding: 0; justify-content: center; }
	.ae-web-nav__phone span { display: none; }
}
/* The menu button keeps some room inside its border while the links lose
   theirs. */
@media (min-width: 1280px) and (max-width: 1439px) {
	.ae-web-nav__list { gap: 12px; }
	.ae-web-nav__item--0 > .ae-web-nav__link:not(.ae-web-nav__boton), .ae-web-nav__item--0 > .ae-web-nav__trigger { padding-inline: 2px; }
	.ae-web-nav__item--0 > .ae-web-nav__boton { padding-inline: 12px; }
}
/* From 1280 to 1365 the menu stays in line with less space around it: the gaps
   of the bar and of the list shrink so the six items fit between the logo and
   the two buttons, with the same text size as from 1366. */
@media (min-width: 1280px) and (max-width: 1365px) {
	.ae-web-nav__inner { gap: 16px; }
	.ae-web-nav__list { gap: 8px; }
	.ae-web-nav__item--0 > .ae-web-nav__boton { padding-inline: 10px; letter-spacing: .04em; }
}
@media (max-width: 1279px) {
	.ae-web-nav__item--boton { margin: 24px 0 0; }
	.ae-web-nav__item--0 > .ae-web-nav__boton { width: 100%; height: 48px; border: 0; background: var(--ae-navy); color: #fff; }
	.ae-web-nav__item--0 > .ae-web-nav__boton:hover { background: var(--ae-navy-deep); color: #fff; }
	.ae-web-nav__item--0 > .ae-web-nav__boton:focus-visible { outline-color: var(--ae-red); }
}
@media (max-width: 640px) {
	.ae-web-nav__phone { padding: 0; width: 44px; justify-content: center; }
	.ae-web-nav__cta { padding: 0 10px; font-size: 11px; letter-spacing: .04em; }
}

/* ---------- Atelier: la raya roja de los titulares ----------
   Depende de cómo va alineado el titular. A la izquierda, una barra vertical
   al principio de la palabra, a toda la altura del texto, como en Swedish y en
   el tema de landings. Centrado, una raya horizontal centrada debajo: 168 × 4
   bajo un titular de sección y 240 × 5 bajo el H1 de una cabecera
   (--ae-web-raya y --ae-web-raya-h1). Un titular que se centra en el móvil
   pasa de una a otra en ese mismo punto. */
.ae-web-cards__title, .ae-web-programs__title, .ae-web-video h2, .ae-web-instagram h2, .ae-web-media__title { display: inline-block; }
.ae-web-cards__title, .ae-web-programs__title { text-align: center; }
.ae-web-video h2, .ae-web-instagram h2, .ae-web-media__title { text-align: left; }

/* Alineados a la izquierda: barra vertical. */
.ae-web-video h2, .ae-web-instagram h2, .ae-web-media__title, .ae-web-why__title,
.ae-web-careers:not(.ae-web-careers--sola) .ae-web-careers__title, .ae-web-blog h2, .ae-web-lead h2,
.ae-web-cabecera-blog__titulo, .ae-web-hero:not(.ae-web-hero--titulo) h1, .ae-web-page-head h1,
.ae-web-dir__title, .ae-web-phero h1, .ae-web-phero__form-title, .ae-web-footer__pill, .ae-web-articulo__cabecera h1 {
	position: relative; padding-left: 21px;
}
.ae-web-video h2::after, .ae-web-instagram h2::after, .ae-web-media__title::after, .ae-web-why__title::after,
.ae-web-careers:not(.ae-web-careers--sola) .ae-web-careers__title::after, .ae-web-blog h2::after, .ae-web-lead h2::after,
.ae-web-cabecera-blog__titulo::after, .ae-web-hero:not(.ae-web-hero--titulo) h1::after, .ae-web-page-head h1::after,
.ae-web-dir__title::after, .ae-web-phero h1::after, .ae-web-phero__form-title::after, .ae-web-footer__pill::after,
.ae-web-articulo__cabecera h1::after {
	content: ''; position: absolute; left: 0; top: .12em; bottom: .12em; width: 5px; border-radius: 2px; background: var(--ae-red);
}
.ae-web-footer__pill { padding-left: 12px; }
.ae-web-footer__pill::after { top: 0; bottom: 0; width: 4px; }
/* El hero de programa traía su raya como elemento aparte, debajo del texto. */
.ae-web-phero__raya, .ae-web-phero__form-raya { display: none; }

/* Centrados: raya horizontal debajo. */
.ae-web-cards__title, .ae-web-programs__title, .ae-web-learn__title, .ae-web-careers--sola .ae-web-careers__title,
.ae-web-steps__title, .ae-web-panel__title, .ae-web-pintro__card h2, .ae-web-cta h2, .ae-web-band h2,
.ae-web-features__title, .ae-web-innovation h2, .ae-web .ae-web-relacionadas__titulo, .ae-web-team__title,
.ae-web-map__title, .ae-web-tour__title, .ae-web-hero--titulo h1 {
	position: relative; padding-bottom: 18px;
}
.ae-web-cards__title::after, .ae-web-programs__title::after, .ae-web-learn__title::after, .ae-web-careers--sola .ae-web-careers__title::after,
.ae-web-steps__title::after, .ae-web-panel__title::after, .ae-web-pintro__card h2::after, .ae-web-cta h2::after, .ae-web-band h2::after,
.ae-web-features__title::after, .ae-web-innovation h2::after, .ae-web .ae-web-relacionadas__titulo::after, .ae-web-team__title::after,
.ae-web-map__title::after, .ae-web-tour__title::after, .ae-web-hero--titulo h1::after {
	content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: var(--ae-web-raya); height: 4px; border-radius: 2px; background: var(--ae-red);
}
.ae-web-hero--titulo h1 { padding-bottom: 22px; }
.ae-web-hero--titulo h1::after { width: var(--ae-web-raya-h1); height: 5px; border-radius: 0; }
@media (max-width: 900px) {
	.ae-web-video h2 { text-align: center; padding-left: 0; padding-bottom: 18px; }
	.ae-web-video h2::after { top: auto; bottom: 0; left: 50%; transform: translateX(-50%); width: var(--ae-web-raya); height: 4px; }
}

/* Bloques del tema de landings: su titular ya trae la barra vertical
   (border-left) y oculta su elemento de raya. Solo los dos que van centrados
   en el sitio, los horarios y la franja final, cambian la barra por la raya. */
.ae-web .ae-schedules .ae-section-heading h2,
.ae-web .ae-cta-banner__inner h2 { border-left: 0; border-radius: 0; padding-left: 0; }
.ae-web .ae-schedules .ae-section-heading .ae-bar,
.ae-web .ae-cta-banner__inner .ae-bar { display: block; flex: none; width: var(--ae-web-raya); height: 4px; margin-top: 6px; border-radius: 2px; background: var(--ae-red); }
.ae-web .ae-cta-banner__inner > h2 { text-align: center; }

/* ---------- Atelier: tarjetas con icono ---------- */
.ae-web-cards { padding: 88px 0; background: #fff; color: var(--ae-ink); }
.ae-web-cards--calido { background: var(--ae-surface-light); }
.ae-web-cards__head { text-align: center; max-width: 920px; margin: 0 auto 48px; }
.ae-web-cards__title { font-weight: 800; color: var(--ae-navy); font-size: clamp(1.9rem, 3.4vw, 2.6rem); line-height: 1.15; margin: 0 0 24px; }
.ae-web-cards__lead p { font-size: 17px; color: var(--ae-web-texto); margin: 0 0 12px; }
.ae-web-cards__lead strong { color: var(--ae-navy); }
.ae-web-cards__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ae-web-card { background: var(--ae-surface-light); border-radius: var(--ae-radius-lg); padding: 32px 28px; text-align: center; }
.ae-web-cards--calido .ae-web-card { background: #fff; }
.ae-web-cards--raya .ae-web-card { background: #fff; border: 1px solid var(--ae-rule); border-top: 4px solid var(--ae-red); box-shadow: 0 8px 24px rgba(4,23,58,0.06); }
.ae-web-card__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--ae-navy); color: #fff; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.ae-web-cards--raya .ae-web-card__icon { background: transparent; color: var(--ae-navy); width: auto; height: auto; }
.ae-web-cards--raya .ae-web-card__icon svg { width: 44px; height: 44px; }
.ae-web-card__title { font-weight: 700; font-size: 18px; color: var(--ae-navy); margin: 0 0 10px; line-height: 1.3; }
.ae-web-card__text p { font-size: 15px; color: var(--ae-web-texto); margin: 0; }
.ae-web-cards__foot { text-align: center; color: var(--ae-web-texto); margin: 40px 0 0; }
/* En tres columnas, una tarjeta que queda sola en la última fila va centrada.
   En las tarjetas de icono sin enlace, icono, titular y texto son filas
   compartidas: el texto de todas arranca a la misma altura aunque un titular
   ocupe dos líneas. */
@media (min-width: 901px) {
	.ae-web-cards:not(.ae-web-cards--dos) .ae-web-cards__grid > :last-child:nth-child(3n + 1) { grid-column: 2; }
	.ae-web-cards:not(.ae-web-cards--contacto):not(.ae-web-cards--dos) .ae-web-card:not(.ae-web-card--enlace):not(.ae-web-card--logo) {
		display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; justify-items: center; align-items: start;
	}
	.ae-web-cards:not(.ae-web-cards--contacto):not(.ae-web-cards--dos) .ae-web-card:not(.ae-web-card--enlace):not(.ae-web-card--logo) .ae-web-card__title { align-self: end; }
}
@media (max-width: 900px) {
	.ae-web-cards { padding: 64px 0; }
	.ae-web-cards__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Atelier: programas sobre fondo claro ---------- */
.ae-web-programs { background: var(--ae-surface-light); color: var(--ae-ink); }
.ae-web-programs .ae-web-container { text-align: center; }
.ae-web-programs__title { color: var(--ae-navy); }
.ae-web-programs__lead { color: var(--ae-web-texto); }
.ae-web-programs__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-rows: 340px; gap: 16px; text-align: left; }
.ae-web-pcard { border-radius: var(--ae-radius-lg); padding: 22px 20px; }
.ae-web-pcard::before { background: linear-gradient(180deg, rgba(4,23,58,0.05) 30%, rgba(4,23,58,0.92) 100%); }
.ae-web-pcard__body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 6px; }
.ae-web-pcard__name { font-weight: 700; font-size: 1.15rem; }
.ae-web-pcard__text { font-size: 13px; line-height: 1.4; color: rgba(255,255,255,0.85); }
.ae-web-pcard__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-weight: 700; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.ae-web-pcard:focus-visible { outline-color: var(--ae-navy); }
/* Con menos de cinco tarjetas, tantas columnas como tarjetas, del mismo ancho
   que en la rejilla de cinco y centradas. */
@media (min-width: 1101px) {
	.ae-web-programs--n4 .ae-web-programs__grid { grid-template-columns: repeat(4, calc((100% - 64px) / 5)); justify-content: center; }
	.ae-web-programs--n3 .ae-web-programs__grid { grid-template-columns: repeat(3, calc((100% - 64px) / 5)); justify-content: center; }
	.ae-web-programs--n2 .ae-web-programs__grid { grid-template-columns: repeat(2, calc((100% - 64px) / 5)); justify-content: center; }
}
@media (max-width: 1100px) { .ae-web-programs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .ae-web-programs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 260px; } }
@media (max-width: 480px) { .ae-web-programs__grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 220px; } }

/* ---------- Atelier: vídeo, franja y medios ---------- */
.ae-web-video { background: var(--ae-navy); }
.ae-web-video--horizontal .ae-web-video__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
.ae-web-video--horizontal .ae-web-video__frame { border-radius: var(--ae-radius-md); outline: 2px solid var(--ae-red); outline-offset: 14px; }
.ae-web-trust { background: var(--ae-navy); }
.ae-web-media--claro .ae-web-list__icon, .ae-web-media--gris .ae-web-list__icon { color: #fff; background: var(--ae-navy); border: 0; }
.ae-web-media--gris { background: var(--ae-surface-light); }
@media (max-width: 900px) {
	.ae-web-video--horizontal .ae-web-video__grid { grid-template-columns: minmax(0, 1fr); }
	.ae-web-video--horizontal .ae-web-video__frame { outline-offset: 8px; }
}

/* ---------- Atelier: bloques del padre dentro del sitio ---------- */
.ae-web .ae-hero { scroll-margin-top: var(--ae-web-alto-cabecera); }
/* En la tira de testimonios de móvil cada tarjeta mide lo que su texto: estirada
   al alto de la más larga, una cita corta dejaba media pantalla vacía. */
@media (max-width: 768px) {
	.ae-web .ae-testimonials__track { align-items: flex-start; }
}
.ae-web #request-info { scroll-margin-top: calc(var(--ae-web-alto-cabecera) + 16px); }
/* Hero de la portada en el teléfono: las acreditaciones van después del
   formulario. La columna del texto deja de ser caja y sus piezas pasan a la
   rejilla del hero, con el mismo aire que tenían dentro de ella. */
@media (max-width: 768px) {
	.ae-web .ae-hero__grid { row-gap: var(--ae-space-6); }
	.ae-web .ae-hero__copy { display: contents; }
	.ae-web .ae-hero__form-card { margin-top: calc(var(--ae-space-12) - var(--ae-space-6)); }
	.ae-web .ae-hero__badges-heading, .ae-web .ae-hero__copy > .ae-hero__stats { order: 1; }
}
/* Hero de la portada: «School Accreditations» centrado encima de los sellos,
   que no se mueven. El titular y los sellos van en una columna de rejilla que
   mide lo que la fila de sellos; lo demás ocupa todo el ancho. En escritorio la
   rejilla es la columna del texto, con una fila flexible que empuja las
   acreditaciones al pie, como el margen automático del tema de landings; solo
   cuando la cabecera lleva titular, acreditaciones y sellos y nada más (con
   antetítulo, entradilla o teléfono se queda como en las landings). En el
   teléfono la columna del texto no crea caja y la rejilla es la del hero. */
@media (min-width: 769px) {
	.ae-web .ae-hero__copy:has(> .ae-hero__badges-heading + .ae-hero__stats):not(:has(> .ae-hero__eyebrow, > .ae-hero__lead, > .ae-hero__phone)) {
		display: grid; grid-template-columns: minmax(0, max-content) minmax(0, 1fr); grid-template-rows: auto 1fr auto auto; column-gap: 0;
	}
	.ae-web .ae-hero__copy:has(> .ae-hero__badges-heading + .ae-hero__stats):not(:has(> .ae-hero__eyebrow, > .ae-hero__lead, > .ae-hero__phone)) > .ae-hero__heading { grid-column: 1 / -1; grid-row: 1; }
	.ae-web .ae-hero__copy:has(> .ae-hero__badges-heading + .ae-hero__stats):not(:has(> .ae-hero__eyebrow, > .ae-hero__lead, > .ae-hero__phone)) > .ae-hero__badges-heading { grid-column: 1; grid-row: 3; text-align: center; }
	.ae-web .ae-hero__copy:has(> .ae-hero__badges-heading + .ae-hero__stats):not(:has(> .ae-hero__eyebrow, > .ae-hero__lead, > .ae-hero__phone)) > .ae-hero__stats { grid-column: 1; grid-row: 4; }
}
@media (max-width: 768px) {
	.ae-web .ae-hero__grid:has(> .ae-hero__copy > .ae-hero__badges-heading + .ae-hero__stats) { grid-template-columns: minmax(0, max-content) minmax(0, 1fr); column-gap: 0; }
	.ae-web .ae-hero__grid:has(> .ae-hero__copy > .ae-hero__badges-heading + .ae-hero__stats) > .ae-hero__form-card,
	.ae-web .ae-hero__grid:has(> .ae-hero__copy > .ae-hero__badges-heading + .ae-hero__stats) > .ae-hero__copy > * { grid-column: 1 / -1; }
	.ae-web .ae-hero__grid:has(> .ae-hero__copy > .ae-hero__badges-heading + .ae-hero__stats) > .ae-hero__copy > .ae-hero__badges-heading { grid-column: 1; text-align: center; }
	.ae-web .ae-hero__grid:has(> .ae-hero__copy > .ae-hero__badges-heading + .ae-hero__stats) > .ae-hero__copy > .ae-hero__stats { grid-column: 1; }
}


/* ==========================================================================
   Página de programa («7 AE - Programs»)
   ========================================================================== */

/* ---------- Hero de programa ---------- */
.ae-web-phero { position: relative; overflow: hidden; background: var(--ae-navy-deep); color: #fff; min-height: min(88vh, 780px); display: flex; align-items: center; padding: 64px 0; }
.ae-web-phero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.ae-web-phero__bg--volteado { transform: scaleX(-1); }
.ae-web-phero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ae-web-phero__velo { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(4,23,58,0.95) 0%, rgba(4,23,58,0.8) 40%, rgba(4,23,58,0.35) 70%, rgba(4,23,58,0.1) 100%); }
/* Cabecera de curso y de programa: un solo velo navy, con la misma opacidad en
   toda la foto o el vídeo, la del centro de la cabecera de la portada. Con el
   blanco del titular sobre el punto más claro posible de la imagen, el contraste
   sigue por encima de 6:1. La cabecera de solo titular y formulario conserva su
   degradado. */
.ae-web-phero:not(.ae-web-phero--solo) .ae-web-phero__velo { background: rgba(4, 23, 58, 0.7); }
.ae-web-phero__grid { position: relative; z-index: 2; width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) clamp(420px, 36vw, 520px); grid-template-rows: auto 1fr auto; gap: 32px 48px; }
.ae-web-phero__head { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 24px; }
.ae-web-phero h1 { margin: 0; font-size: clamp(2.5rem, 5vw, 4.25rem); font-weight: 800; color: #fff; line-height: 1.08; letter-spacing: -0.01em; max-width: 760px; text-wrap: balance; }
.ae-web-phero__raya { width: 80px; height: 5px; background: var(--ae-red); }
.ae-web-phero__cuenta { display: flex; flex-direction: column; gap: 20px; margin-top: 16px; max-width: 640px; }
.ae-web-phero__fecha { margin: 0; text-align: center; background: var(--ae-red); color: #fff; font-size: var(--ae-text-sm); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 6px 14px; border-radius: var(--ae-radius-sm); }
.ae-web-phero__celdas { display: flex; gap: 12px; }
.ae-web-phero__celdas > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; background: rgba(255,255,255,0.14); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.25); border-bottom: 4px solid var(--ae-red); border-radius: var(--ae-radius-sm); padding: 16px 12px; }
.ae-web-phero__celdas span { font-size: 3rem; font-weight: 800; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; }
.ae-web-phero__celdas small { font-size: var(--ae-text-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,0.75); }
.ae-web-phero__celdas > b { align-self: center; font-size: 2rem; font-weight: 800; color: #fff; opacity: .85; }
.ae-web-phero__acred { grid-column: 1; grid-row: 3; align-self: end; display: flex; flex-direction: column; gap: 16px; }
.ae-web-phero__acred h2 { margin: 0; font-size: var(--ae-text-base); font-weight: 800; color: #fff; text-transform: uppercase; letter-spacing: .12em; }
.ae-web-phero__sellos { display: flex; gap: 32px; align-items: flex-end; flex-wrap: wrap; }
.ae-web-phero__sellos .ae-hero__badge { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ae-web-phero__sellos .ae-hero__badge-plate { height: 116px; display: grid; place-items: center; background: none; padding: 0; box-shadow: none; }
.ae-web-phero__sellos .ae-hero__badge-plate img { height: 88px; width: auto; object-fit: contain; }
.ae-web-phero__sellos .ae-hero__badge-name { color: #fff; font-size: var(--ae-text-sm); font-weight: 700; letter-spacing: .04em; }
.ae-web-phero__card { grid-column: 2; grid-row: 1 / span 3; align-self: start; }
.ae-web-phero__card .form-card { box-sizing: border-box; background: #fff; color: var(--ae-ink); border-radius: var(--ae-radius-lg); padding: 32px 36px; box-shadow: 0 16px 48px rgba(4,23,58,0.35); display: flex; flex-direction: column; gap: 16px; }
/* El margen que el tema de landings deja bajo cada campo, también bajo el del
   botón, era el hueco blanco al pie de la tarjeta. Va con !important porque la
   regla del padre lo lleva. */
.ae-web-phero__card .form-card .ae-form-embed .forminator-ui.forminator-custom-form .forminator-row-last > .forminator-col > .forminator-field { margin-bottom: 0 !important; }
.ae-web-phero__form-title { margin: 0; font-size: var(--ae-text-xl); font-weight: 700; color: var(--ae-navy); }
.ae-web-phero__form-raya { width: 56px; height: 4px; background: var(--ae-red); }
.ae-web-phero__pausa { position: absolute; bottom: 24px; right: 24px; z-index: 3; width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.35); color: #fff; cursor: pointer; display: grid; place-items: center; }
.ae-web-phero__pausa:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ae-web-phero__pausa:hover { background: rgba(255,255,255,0.24); }
.ae-web-phero__pausa[hidden] { display: none; }
.ae-web-phero__pausa-icono { display: inline-flex; }
.ae-web-phero__pausa-icono--play, .ae-web-phero__pausa.is-paused .ae-web-phero__pausa-icono--pausa { display: none; }
.ae-web-phero__pausa.is-paused .ae-web-phero__pausa-icono--play { display: inline-flex; }
@media (max-width: 1080px) {
	.ae-web-phero { min-height: 0; }
	.ae-web-phero__grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	.ae-web-phero__head, .ae-web-phero__acred, .ae-web-phero__card { grid-column: 1; grid-row: auto; }
	.ae-web-phero__card { max-width: 600px; width: 100%; }
	/* Apilado, el botón de pausa baja al margen inferior para no pisar la tarjeta. */
	.ae-web-phero__pausa { bottom: 10px; right: 16px; width: 44px; height: 44px; }
}
@media (max-width: 560px) {
	.ae-web-phero__celdas { gap: 6px; }
	.ae-web-phero__celdas > b { display: none; }
	.ae-web-phero__celdas > div { padding: 12px 4px; }
	.ae-web-phero__celdas span { font-size: 2rem; }
	.ae-web-phero__celdas small { font-size: 9px; letter-spacing: .06em; }
	.ae-web-phero__card .form-card { padding: 24px 20px; }
	.ae-web-phero__sellos { gap: 20px; }
	.ae-web-phero__sellos .ae-hero__badge-plate { height: 88px; }
	.ae-web-phero__sellos .ae-hero__badge-plate img { height: 64px; }
}
@media (prefers-reduced-motion: reduce) { .ae-web-phero__video { display: none; } }
/* Una cuenta atrás que llega a cero se retira (site.js). */
.ae-web [data-ae-web-count][hidden] { display: none; }

/* ---------- Cifras e introducción ---------- */
.ae-web-pintro { background: linear-gradient(180deg, var(--ae-navy) 0%, var(--ae-navy) 55%, #fff 55%, #fff 100%); padding: 40px 0 16px; }
.ae-web-pintro__cifras { list-style: none; margin: 0 auto; padding: 0 0 48px; display: flex; justify-content: center; gap: 32px; max-width: 1200px; }
.ae-web-pintro__cifras .ae-web-trust__item { flex: 1 1 0; border: 0; padding: 0; min-height: 0; color: #fff; }
.ae-web-pintro__cifras .ae-web-trust__value { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; margin-bottom: 6px; }
.ae-web-pintro__cifras .ae-web-trust__label { color: rgba(255,255,255,0.72); font-size: var(--ae-text-sm); }
.ae-web-pintro__card { max-width: 920px; margin: 0 auto; background: #fff; border-radius: var(--ae-radius-lg); box-shadow: 0 10px 30px rgba(4,23,58,0.14); border-top: 5px solid var(--ae-red); padding: 48px; text-align: center; }
.ae-web-pintro__card h2 { margin: 0; font-size: clamp(1.5rem, 2.8vw, 2rem); font-weight: 700; color: var(--ae-navy); line-height: 1.25; text-wrap: balance; }
.ae-web-pintro__card p { margin: 16px 0 0; font-size: 1.0625rem; color: var(--ae-ink); line-height: 1.85; }
@media (max-width: 560px) {
	.ae-web-pintro__cifras { flex-wrap: wrap; gap: 24px 16px; }
	.ae-web-pintro__cifras .ae-web-trust__item { flex: 1 1 40%; }
	/* Una cifra larga («2 Specialty Courses») no cabe en media columna: va sola en su fila. */
	.ae-web-pintro__cifras .ae-web-trust__item--largo { flex-basis: 100%; }
	.ae-web-pintro__card { padding: 32px 20px; }
}

/* ---------- Titulares de sección ---------- */
.ae-web-why__title, .ae-web-learn__title, .ae-web-careers__title {
	display: table; margin: 0 auto;
	font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; text-align: center;
}
/* Junto a una foto o una tarjeta, el titular va a la izquierda, y su raya con él. */
.ae-web-why__title, .ae-web-careers:not(.ae-web-careers--sola) .ae-web-careers__title { margin: 0; text-align: left; text-wrap: balance; }
.ae-web-careers:not(.ae-web-careers--sola) .ae-web-careers__lead { text-align: left; }

/* ---------- Por qué elegirnos ---------- */
.ae-web-why { background: #fff; padding: 72px 0; color: var(--ae-ink); }
.ae-web-why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 64px; align-items: center; }
.ae-web-why--sin-foto .ae-web-why__grid { grid-template-columns: minmax(0, 820px); justify-content: center; }
.ae-web-why__foto { margin: 0; aspect-ratio: 4 / 5; max-height: 640px; border-radius: var(--ae-radius-lg); overflow: hidden; }
.ae-web-why__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ae-web-why__text { display: flex; flex-direction: column; gap: 24px; }
.ae-web-why__title { color: var(--ae-navy); }
.ae-web-why__intro, .ae-web-why__cierre { margin: 0; color: var(--ae-web-texto); }
.ae-web-why__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 24px; }
.ae-web-why__item { display: flex; gap: 16px; align-items: flex-start; }
.ae-web-why__icon { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--ae-navy); color: #fff; display: grid; place-items: center; }
.ae-web-why__item-title { display: block; font-weight: 700; font-size: var(--ae-web-cuerpo, 17px); color: var(--ae-navy); }
.ae-web-why__item-text { display: block; font-size: var(--ae-web-cuerpo, 17px); color: var(--ae-blue); margin-top: 4px; line-height: 1.6; }
.ae-web-why__item-text a { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-weight: 700; color: var(--ae-red); text-decoration: none; }
.ae-web-why__item-text a::after { content: '→'; }
.ae-web-why__item-text a:hover { text-decoration: underline; }
/* Punto sin icono: viñeta azul colgada a la izquierda, a tamaño de texto. */
.ae-web-why__list--vinetas { gap: 14px; }
.ae-web-why__item--vineta { display: block; padding-left: 22px; }
.ae-web-why__item--vineta .ae-web-why__item-text { position: relative; margin-top: 0; line-height: 1.65; }
.ae-web-why__item--vineta .ae-web-why__item-text::before { content: ''; position: absolute; left: -20px; top: calc(.825em - 4px); width: 8px; height: 8px; border-radius: 50%; background: var(--ae-blue); }
/* Variante centrada: titular con la raya debajo, y lista y texto centrados, a
   un cuerpo mayor, con la viñeta delante de la primera línea. */
.ae-web-why--centro .ae-web-why__text { align-items: center; text-align: center; }
.ae-web-why--centro .ae-web-why__title { padding-left: 0; padding-bottom: 18px; text-align: center; }
.ae-web-why--centro .ae-web-why__title::after { top: auto; bottom: 0; left: 50%; transform: translateX(-50%); width: var(--ae-web-raya); height: 4px; }
.ae-web-why--centro .ae-web-why__intro { font-size: 19px; }
.ae-web-why--centro .ae-web-why__list { align-items: center; gap: 18px; }
.ae-web-why--centro .ae-web-why__item--vineta { padding-left: 0; }
.ae-web-why--centro .ae-web-why__item--vineta .ae-web-why__item-text { font-size: 19px; }
.ae-web-why--centro .ae-web-why__item--vineta .ae-web-why__item-text::before { position: static; display: inline-block; vertical-align: .15em; margin-right: 10px; }
.ae-web-why--centro .ae-web-why__item-text a { display: inline; margin-top: 0; }
.ae-web-why__nota { background: var(--ae-surface-light); border-left: 4px solid var(--ae-red); border-radius: var(--ae-radius-md); padding: 16px 20px; color: var(--ae-ink); font-size: var(--ae-web-cuerpo, 17px); }
.ae-web-why__nota p { margin: 0 0 6px; }
.ae-web-why__logos { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; }
.ae-web-why__logos span { font-size: var(--ae-text-xs); font-weight: 500; color: var(--ae-blue); text-transform: uppercase; letter-spacing: .08em; }
.ae-web-why__logos img { height: 60px; width: auto; object-fit: contain; }
@media (max-width: 960px) {
	.ae-web-why__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.ae-web-why__foto { max-height: 420px; aspect-ratio: 4 / 3; }
}

/* ---------- Tira de tarjetas ---------- */
.ae-web-learn { background: var(--ae-surface-warm); padding: 56px 0; }
.ae-web-learn__title { color: var(--ae-navy); margin-bottom: 32px; }
.ae-web-learn__strip { list-style: none; margin: 0; padding: 8px 0 16px; display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ae-web-learn__strip::-webkit-scrollbar { display: none; }
.ae-web-learn__strip:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 4px; }
.ae-web-learn__card { position: relative; flex: 0 0 320px; min-height: 420px; scroll-snap-align: start; border-radius: var(--ae-radius-lg); overflow: hidden; background: var(--ae-navy); display: flex; flex-direction: column; justify-content: flex-end; }
.ae-web-learn__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ae-web-learn__card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,23,58,0.05) 30%, rgba(4,23,58,0.92) 100%); }
.ae-web-learn__body { position: relative; z-index: 2; padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.ae-web-learn__body h3 { margin: 0; font-size: var(--ae-text-xl); font-weight: 700; color: #fff; line-height: 1.25; }
.ae-web-learn__body p { margin: 0; font-size: var(--ae-text-sm); color: rgba(255,255,255,0.85); line-height: 1.6; }
@media (min-width: 1100px) {
	.ae-web-learn__strip--pocas { justify-content: center; overflow: visible; }
}
@media (max-width: 560px) { .ae-web-learn__card { flex-basis: 82%; } }
/* Flechas de la tira: sobre el borde de las tarjetas, en la parte alta, donde
   va la foto y no el texto. Solo se ven cuando las tarjetas no caben
   (assets/js/tira.js). */
.ae-web-learn__carrusel { position: relative; }
.ae-web-learn__nav {
	position: absolute; top: 30%; z-index: 3; transform: translateY(-50%);
	width: 52px; height: 52px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff; color: var(--ae-navy); box-shadow: 0 8px 24px rgba(4,23,58,0.28);
	transition: background .15s ease, color .15s ease, opacity .15s ease;
}
.ae-web-learn__nav[hidden] { display: none; }
.ae-web-learn__nav--prev { left: -14px; }
.ae-web-learn__nav--next { right: -14px; }
.ae-web-learn__nav:hover:not(:disabled) { background: var(--ae-red); color: #fff; }
.ae-web-learn__nav:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 3px; }
.ae-web-learn__nav:disabled { opacity: .4; cursor: default; box-shadow: none; }
@media (max-width: 768px) {
	.ae-web-learn__nav { width: 44px; height: 44px; }
	.ae-web-learn__nav--prev { left: -8px; }
	.ae-web-learn__nav--next { right: -8px; }
}
@media (prefers-reduced-motion: reduce) { .ae-web-learn__nav { transition: none; } }

/* ---------- Salidas y certificaciones ---------- */
.ae-web-careers { background: var(--ae-navy); padding: 64px 0; color: #fff; }
.ae-web-careers__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: center; }
.ae-web-careers--sola .ae-web-careers__grid { grid-template-columns: minmax(0, 720px); justify-content: center; }
.ae-web-careers__text { display: flex; flex-direction: column; gap: 24px; }
.ae-web-careers__title { color: #fff; }
.ae-web-careers__lead { margin: 0; text-align: center; color: rgba(255,255,255,0.82); }
.ae-web-careers__nota { margin: 0; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.16); border-radius: var(--ae-radius-md); padding: 16px 20px; color: rgba(255,255,255,0.9); }
.ae-web-careers__card { background: #fff; border-radius: var(--ae-radius-lg); padding: 32px; display: flex; flex-direction: column; gap: 20px; box-shadow: 0 24px 64px rgba(0,0,0,0.3); color: var(--ae-ink); }
.ae-web-careers__card h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: var(--ae-navy); line-height: 1.15; text-align: center; text-wrap: balance; }
.ae-web-careers__raya { width: var(--ae-web-raya); height: 4px; background: var(--ae-red); margin: 0 auto; }
/* El texto de la tarjeta va al tamaño de su lista. */
.ae-web .ae-web-careers__card > p { margin: 0; font-size: var(--ae-web-cuerpo, 17px); color: var(--ae-blue); line-height: 1.7; }
/* Certificaciones: texto a dos columnas, sin viñetas ni recuadros. */
.ae-web-careers__fichas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 32px; }
.ae-web .ae-web-careers__fichas li { font-size: var(--ae-web-cuerpo, 17px); font-weight: 500; color: var(--ae-navy); line-height: 1.45; }
.ae-web .ae-web-careers__pie { margin: 0; font-size: var(--ae-web-cuerpo, 17px); color: var(--ae-web-texto); }
@media (max-width: 960px) {
	.ae-web-careers__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 560px) {
	.ae-web-careers__fichas { grid-template-columns: minmax(0, 1fr); }
	.ae-web-careers__card { padding: 24px 20px; }
}

/* Lista con punto rojo, sobre claro o sobre navy */
.ae-web-puntos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ae-web-puntos li { position: relative; padding-left: 20px; line-height: 1.7; color: var(--ae-blue); }
.ae-web-puntos li::before { content: ''; position: absolute; left: 0; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: var(--ae-red); }
.ae-web-puntos--claro li { color: rgba(255,255,255,0.9); }

/* ---------- Llamada final ---------- */
.ae-web-cta { position: relative; overflow: hidden; background: var(--ae-navy); color: #fff; padding: 80px 0; text-align: center; }
.ae-web-cta__bg { position: absolute; inset: 0; opacity: .18; background-size: cover; background-position: center; pointer-events: none; }
.ae-web-cta__inner { position: relative; max-width: 820px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.ae-web-cta h2 { margin: 0; font-size: clamp(1.8rem, 3.4vw, 2.6rem); font-weight: 800; color: #fff; line-height: 1.15; text-wrap: balance; }
.ae-web-cta p { margin: 0; color: rgba(255,255,255,0.85); font-size: var(--ae-text-lg); }
.ae-web-cta__botones { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; margin-top: 12px; }
.ae-web-cta__bg { opacity: .18 !important; }

/* ---------- Vídeo sobre gris cálido ---------- */
.ae-web-video--calido { background: var(--ae-surface-warm); color: var(--ae-ink); }
.ae-web-video--calido h2 { color: var(--ae-navy); }
.ae-web-video--calido p { color: var(--ae-web-texto); }
.ae-web-video--calido.ae-web-video--horizontal .ae-web-video__grid { grid-template-columns: 1fr 1.5fr; }
.ae-web-video--calido.ae-web-video--horizontal .ae-web-video__frame { position: relative; overflow: visible; outline: 0; box-shadow: 0 24px 60px rgba(4,23,58,0.25); }
.ae-web-video--calido.ae-web-video--horizontal .ae-web-video__frame::before,
.ae-web-video--calido.ae-web-video--horizontal .ae-web-video__frame::after { content: ''; position: absolute; width: 72px; height: 72px; border: 5px solid var(--ae-red); z-index: 0; }
.ae-web-video--calido.ae-web-video--horizontal .ae-web-video__frame::before { top: -14px; left: -14px; border-right: 0; border-bottom: 0; }
.ae-web-video--calido.ae-web-video--horizontal .ae-web-video__frame::after { bottom: -14px; right: -14px; border-left: 0; border-top: 0; }
@media (max-width: 900px) { .ae-web-video--calido.ae-web-video--horizontal .ae-web-video__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Horarios (bloque del tema de landings) ----------
   La entradilla va entre el titular y las tarjetas, y las tarjetas se centran:
   un programa puede tener una, dos o tres, y tres caben en una fila. */
.ae-schedules .ae-section-heading { order: -2; align-items: center; text-align: center; }
.ae-schedules__cta { order: -1; margin-top: calc(-1 * var(--ae-space-8)); }
.ae-schedules__lead { margin-bottom: 0; }
.ae-schedules__grid { display: flex; flex-wrap: wrap; justify-content: center; }
.ae-schedules__card { flex: 1 1 280px; max-width: 360px; box-sizing: border-box; }

/* ==========================================================================
   Blog: listado (home.php, archive.php, search.php) y entrada (single.php).
   Ritmo de fondos: cabecera en gris cálido, entradilla, filtros y rejilla en
   blanco, y vuelve el navy con el formulario. En la entrada, artículo en
   blanco con la franja navy a mitad del texto, relacionadas en gris claro y el
   formulario navy.
   ========================================================================== */

/* ---------- Blog: cabecera del listado ---------- */
.ae-web-cabecera-blog { background: var(--ae-surface-warm); color: var(--ae-navy); padding: 48px 0 64px; }
.ae-web .ae-web-cabecera-blog__antetitulo {
	font-family: var(--ae-font); font-weight: 700; font-size: 13px; letter-spacing: .14em; line-height: 1.4;
	text-transform: uppercase; color: var(--ae-navy); margin: 0 0 16px;
}
.ae-web-cabecera-blog__titulo {
	margin: 0; font-weight: 800; font-size: var(--ae-text-display); line-height: 1.05;
	color: var(--ae-navy); overflow-wrap: break-word;
}
.ae-web-entradilla-blog { background: #fff; padding: 40px 0 0; }
.ae-web .ae-web-entradilla-blog p { max-width: 700px; margin: 0 auto; text-align: center; font-size: var(--ae-text-lg); line-height: 1.7; color: var(--ae-navy); }

/* ---------- Blog: filtros ---------- */
/* El tema no trae reset global de box-sizing: sin él, los campos a todo el
   ancho y los botones de alto fijo sumaban su relleno y su borde. */
.ae-web-filtros__form *, .ae-web-paginacion .page-numbers, .ae-web-articulo__chip, .ae-web-articulo__etiqueta, .ae-web-franja .ae-web-btn { box-sizing: border-box; }
.ae-web-filtros { background: #fff; padding: 32px 0 48px; }
.ae-web-filtros__form { max-width: 1000px; margin: 0 auto; display: flex; gap: 16px; align-items: stretch; }
.ae-web-filtros__campo { flex: 1 1 0; min-width: 0; position: relative; }
.ae-web-filtros__campo--buscar { flex-grow: 2; }
.ae-web-filtros__campo--buscar .ae-web-icono { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--ae-blue); pointer-events: none; }
.ae-web-filtros input, .ae-web-filtros select {
	width: 100%; min-height: 48px; margin: 0; padding: 0 16px; font-family: var(--ae-font); font-size: 16px; color: var(--ae-navy);
	background-color: #fff; border: 1px solid var(--ae-navy); border-radius: var(--ae-radius-md);
}
.ae-web-filtros input { -webkit-appearance: none; appearance: none; padding-left: 44px; }
.ae-web-filtros input::placeholder { color: #5e6a85; opacity: 1; }
.ae-web-filtros input:focus-visible, .ae-web-filtros select:focus-visible { outline: none; border-color: var(--ae-red); box-shadow: var(--ae-focus-ring-on-light); }
.ae-web-filtros__boton {
	flex: none; min-height: 48px; padding: 0 28px; border: 1px solid var(--ae-navy); border-radius: var(--ae-radius-md);
	background: var(--ae-navy); color: #fff; font-family: var(--ae-font); font-weight: 700; font-size: 14px; letter-spacing: .06em;
	text-transform: uppercase; cursor: pointer; transition: background .15s ease;
}
.ae-web-filtros__boton:hover { background: var(--ae-navy-deep); }
.ae-web-filtros__boton:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 2px; }

/* ---------- Blog: rejilla y tarjeta ---------- */
.ae-web-listado { background: #fff; padding: 0 0 72px; }
.ae-web-listado__grid, .ae-web-relacionadas__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ae-web .ae-web-listado__vacio { text-align: center; color: var(--ae-navy); padding: 32px 0 48px; margin: 0; }
.ae-web-tarjeta {
	position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; overflow: hidden;
	border: 1px solid var(--ae-rule); border-radius: var(--ae-radius-sm); transition: transform .2s ease, box-shadow .2s ease;
}
.ae-web-tarjeta:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(6,32,78,0.16); }
.ae-web-tarjeta__img { position: relative; aspect-ratio: 16/9; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--ae-web-gradiente); }
.ae-web-tarjeta__img .wp-post-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ae-web-tarjeta__img .ae-web-tarjeta__logo { width: 46%; height: auto; object-fit: contain; opacity: .9; }
.ae-web-tarjeta__cuerpo { display: flex; flex-direction: column; gap: 12px; flex: 1; padding: 24px; }
/* La categoría y la fecha van antes en pantalla y después en el código: quien
   navega por titulares llega al título y lee lo demás a continuación. */
.ae-web-tarjeta__cat {
	order: -2; align-self: flex-start; background: var(--ae-red); color: #fff; font-family: var(--ae-font); font-weight: 500;
	font-size: var(--ae-text-xs); line-height: 1.4; padding: 3px 12px; border-radius: var(--ae-radius-pill);
}
.ae-web-tarjeta__fecha { order: -1; font-family: var(--ae-font); font-size: var(--ae-text-sm); color: var(--ae-navy); }
.ae-web .ae-web-tarjeta__titulo { margin: 0; font-weight: 700; font-size: var(--ae-text-xl); line-height: 1.3; color: var(--ae-navy); }
.ae-web-tarjeta__titulo a { color: inherit; text-decoration: none; }
.ae-web-tarjeta__titulo a::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: var(--ae-radius-sm); }
/* El foco se dibuja en la capa que estira el enlace, por dentro del borde de la
   tarjeta, que recorta lo que sobresale. */
.ae-web-tarjeta__titulo a:focus-visible { outline: none; }
.ae-web-tarjeta__titulo a:focus-visible::after { outline: 3px solid var(--ae-red); outline-offset: -3px; }
.ae-web .ae-web-tarjeta__extracto {
	margin: 0; font-size: var(--ae-web-cuerpo); line-height: 1.6; color: var(--ae-navy);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.ae-web-tarjeta__etiquetas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 14px; }
.ae-web .ae-web-tarjeta__etiquetas li { line-height: 1; }
.ae-web-tarjeta__etiquetas a {
	position: relative; z-index: 2; display: inline-block; padding: 4px 0; font-size: var(--ae-text-xs); line-height: 16px;
	font-weight: 500; color: var(--ae-blue); text-decoration: none;
}
.ae-web-tarjeta__etiquetas a:hover { color: var(--ae-navy); text-decoration: underline; }
.ae-web-tarjeta__etiquetas a:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
.ae-web-tarjeta__mas { margin-top: auto; padding-top: 4px; font-family: var(--ae-font); font-weight: 700; font-size: var(--ae-text-sm); color: var(--ae-red); }

/* ---------- Blog: paginación ---------- */
.ae-web-paginacion { margin-top: 56px; }
.ae-web-paginacion ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; gap: 8px; flex-wrap: wrap; }
.ae-web-paginacion .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 12px;
	border: 1px solid var(--ae-rule); border-radius: var(--ae-radius-md); background: #fff;
	font-family: var(--ae-font); font-weight: 500; font-size: 16px; color: var(--ae-navy); text-decoration: none;
}
.ae-web-paginacion a.page-numbers:hover { border-color: var(--ae-navy); color: var(--ae-navy); }
.ae-web-paginacion a.page-numbers:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 2px; }
.ae-web-paginacion .current { background: var(--ae-red); border-color: var(--ae-red); color: #fff; font-weight: 700; }
.ae-web-paginacion .dots { min-width: 32px; padding: 0; border: 0; background: none; }
.ae-web-paginacion .prev, .ae-web-paginacion .next { padding: 0 24px; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; border-color: var(--ae-navy); }
.ae-web-paginacion .next { background: var(--ae-navy); color: #fff; }
.ae-web-paginacion a.next:hover { background: var(--ae-navy-deep); color: #fff; }
.ae-web-paginacion__estado { display: none; }

/* ---------- Blog: entrada ---------- */
.ae-web-destacada { padding: 48px 32px 0; }
.ae-web-destacada__marco { max-width: 1000px; margin: 0 auto; aspect-ratio: 16/9; max-height: 480px; border-radius: var(--ae-radius-lg); overflow: hidden; background: var(--ae-surface-light); }
.ae-web-destacada__marco img { width: 100%; height: 100%; object-fit: cover; }
.ae-web-articulo { max-width: 720px; margin: 0 auto; padding: 32px 32px 64px; }
.ae-web-entrada > .ae-web-articulo:first-child { padding-top: 56px; }
.ae-web-articulo__cabecera { display: flex; flex-direction: column; gap: 16px; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid rgba(6,32,78,0.1); }
.ae-web-migas ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ae-web .ae-web-migas li { font-size: var(--ae-text-sm); line-height: 1.5; color: rgba(6,32,78,0.74); }
.ae-web-migas li + li::before { content: '›'; content: '›' / ''; margin-right: 6px; }
.ae-web-migas a { color: var(--ae-blue); text-decoration: none; }
.ae-web-migas a:hover { text-decoration: underline; }
.ae-web-migas a:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
.ae-web-articulo__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ae-web-articulo__chip {
	display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; border-radius: var(--ae-radius-pill);
	background: var(--ae-red); color: #fff; font-family: var(--ae-font); font-weight: 600; font-size: var(--ae-text-sm); line-height: 1.3; text-decoration: none;
}
.ae-web-articulo__chip:hover { background: #B8122A; color: #fff; }
.ae-web-articulo__chip:focus-visible { outline: 3px solid var(--ae-navy); outline-offset: 2px; }
.ae-web-articulo__cabecera h1 { margin: 0; font-weight: 800; font-size: 2.5rem; line-height: 1.15; color: var(--ae-navy); overflow-wrap: break-word; }
.ae-web .ae-web-articulo__meta { margin: 0; font-size: var(--ae-text-sm); line-height: 1.5; color: rgba(6,32,78,0.74); }
.ae-web .ae-web-articulo__lectura { margin: -8px 0 0; font-size: var(--ae-text-sm); line-height: 1.5; color: rgba(6,32,78,0.66); }

/* El texto viene del editor: aquí solo se le da la tipografía del diseño. Las
   imágenes flotadas del sitio anterior pasan a ocupar la columna. */
.ae-web-articulo__cuerpo { font-size: 17px; line-height: 1.75; color: var(--ae-navy); overflow-wrap: break-word; }
.ae-web-articulo__cuerpo > :first-child { margin-top: 0; }
.ae-web .ae-web-articulo__cuerpo p { line-height: 1.75; margin: 0 0 1.5em; }
.ae-web .ae-web-articulo__cuerpo h2 {
	margin: 2.5em 0 .75em; padding-left: 16px; border-left: 4px solid var(--ae-red);
	font-weight: 700; font-size: 1.5rem; line-height: 1.3; color: var(--ae-navy);
}
.ae-web .ae-web-articulo__cuerpo h3 { margin: 2em 0 .5em; font-weight: 600; font-size: 1.2rem; line-height: 1.3; color: var(--ae-navy); }
.ae-web-articulo__cuerpo h4 { margin: 1.5em 0 .4em; font-weight: 600; font-size: 1.05rem; color: var(--ae-navy); }
.ae-web-articulo__cuerpo strong, .ae-web-articulo__cuerpo b { font-weight: 600; color: var(--ae-navy); }
.ae-web-articulo__cuerpo a:not(.ae-web-btn) { color: var(--ae-blue); text-decoration: underline; }
.ae-web-articulo__cuerpo a:not(.ae-web-btn):hover { color: var(--ae-navy); }
.ae-web-articulo__cuerpo a:not(.ae-web-btn):focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
.ae-web-articulo__cuerpo ul, .ae-web-articulo__cuerpo ol { padding-left: 1.25em; margin: 0 0 1.5em; }
.ae-web .ae-web-articulo__cuerpo li { line-height: 1.7; margin-bottom: .4em; }
.ae-web-articulo__cuerpo li::marker { color: var(--ae-red); }
.ae-web-articulo__cuerpo img { max-width: 100%; height: auto; border-radius: var(--ae-radius-sm); }
.ae-web-articulo__cuerpo figure { margin: 2em 0; max-width: 100%; }
.ae-web-articulo__cuerpo figure img { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.ae-web-articulo__cuerpo figcaption, .ae-web-articulo__cuerpo .wp-caption-text { margin-top: 10px; font-size: var(--ae-text-sm); font-style: italic; line-height: 1.5; color: rgba(6,32,78,0.72); text-align: center; }
.ae-web-articulo__cuerpo .alignleft, .ae-web-articulo__cuerpo .alignright { float: none; margin: 2em 0; }
.ae-web-articulo__cuerpo .aligncenter { margin-left: auto; margin-right: auto; }
.ae-web-articulo__cuerpo iframe, .ae-web-articulo__cuerpo video, .ae-web-articulo__cuerpo .wp-video { max-width: 100%; }
.ae-web-articulo__cuerpo blockquote {
	max-width: 580px; margin: 2em auto; padding: 32px 24px; text-align: center;
	border-top: 2px solid var(--ae-red); border-bottom: 2px solid var(--ae-red);
}
.ae-web-articulo__cuerpo blockquote::before { content: '\201C'; display: block; font-weight: 800; font-size: 4rem; line-height: .5; color: var(--ae-red); margin-bottom: 16px; }
.ae-web .ae-web-articulo__cuerpo blockquote p { margin: 0; font-weight: 500; font-style: italic; font-size: 1.2rem; line-height: 1.5; color: var(--ae-navy); }

/* Franja «Book a Tour»: sale del ancho de la columna y ocupa el de la página.
   100vw cuenta también la barra de desplazamiento cuando el navegador la pinta
   aparte, así que la entrada recorta lo que sobra a los lados: sin eso la
   página se desplaza unos píxeles en horizontal. */
.ae-web-entrada { overflow-x: clip; }
.ae-web-franja { margin: 2.5em calc(50% - 50vw); padding: 32px; background: var(--ae-navy); }
.ae-web-franja__inner { max-width: 960px; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; }
.ae-web .ae-web-franja .ae-web-franja__texto { margin: 0; font-weight: 700; font-size: 1.25rem; line-height: 1.35; color: #fff; text-align: center; text-wrap: balance; }
.ae-web-franja .ae-web-btn { flex-shrink: 0; }

.ae-web-articulo__pie { margin-top: 48px; display: flex; flex-direction: column; gap: 32px; }
.ae-web-articulo__etiquetas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ae-web-articulo__etiqueta {
	display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; border: 1px solid var(--ae-navy); border-radius: var(--ae-radius-pill);
	font-size: var(--ae-text-sm); line-height: 1.3; color: var(--ae-navy); text-decoration: none;
}
.ae-web-articulo__etiqueta:hover { background: var(--ae-navy); color: #fff; }
.ae-web-articulo__etiqueta:focus-visible { outline: 3px solid var(--ae-red); outline-offset: 2px; }
.ae-web-compartir { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; padding-top: 32px; border-top: 1px solid rgba(6,32,78,0.1); }
.ae-web .ae-web-compartir__titulo { margin: 0; font-weight: 700; font-size: var(--ae-text-sm); color: var(--ae-navy); }
.ae-web-compartir__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ae-web-compartir__lista li[hidden] { display: none; }
.ae-web-compartir__boton {
	position: relative; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0;
	border: 0; border-radius: 50%; background: var(--ae-navy); color: #fff; cursor: pointer; transition: background .2s ease;
}
.ae-web-compartir__boton:hover { background: var(--ae-red); color: #fff; }
.ae-web-compartir__boton:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
/* Rótulo al pasar por encima o llegar con el teclado: el mismo texto que ya
   anuncia el lector de pantalla. */
.ae-web-compartir__boton::after {
	content: attr(aria-label); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); z-index: 5;
	background: var(--ae-web-navy-darker); color: #fff; font-family: var(--ae-font); font-size: 12px; line-height: 1.3; white-space: nowrap;
	padding: 5px 9px; border-radius: 4px; opacity: 0; pointer-events: none; transition: opacity .15s ease;
}
.ae-web-compartir__boton:hover::after, .ae-web-compartir__boton:focus-visible::after { opacity: 1; }
.ae-web-articulo__nav { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.ae-web-articulo__nav a {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--ae-font); font-weight: 600;
	font-size: var(--ae-text-sm); letter-spacing: .06em; text-transform: uppercase; color: var(--ae-blue); text-decoration: none;
}
.ae-web-articulo__nav a:hover { color: var(--ae-navy); text-decoration: underline; }
.ae-web-articulo__nav a:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
.ae-web-articulo__nav-siguiente { margin-left: auto; }
.ae-web .ae-web-aviso {
	position: fixed; left: 50%; bottom: 24px; z-index: 300; margin: 0; transform: translate(-50%, 20px);
	background: var(--ae-web-navy-darker); color: #fff; font-family: var(--ae-font); font-weight: 600; font-size: 15px;
	padding: 12px 24px; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.3); opacity: 0; pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
}
.ae-web-aviso.is-visible { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Blog: relacionadas ---------- */
.ae-web-relacionadas { padding: 72px 0; background: var(--ae-surface-light); }
.ae-web .ae-web-relacionadas__titulo {
	display: table; margin: 0 auto 48px; text-align: center;
	font-weight: 800; font-size: clamp(1.75rem, 3.4vw, 2.5rem); line-height: 1.15; letter-spacing: -0.01em; color: var(--ae-navy);
}

@media (max-width: 960px) {
	.ae-web-listado__grid, .ae-web-relacionadas__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.ae-web-cabecera-blog { padding: 40px 0 48px; }
	.ae-web-entradilla-blog { padding-top: 32px; }
	.ae-web-filtros { padding: 24px 0 40px; }
	.ae-web-filtros__form { flex-direction: column; }
	.ae-web-filtros__campo { flex: none; }
	.ae-web-listado__grid, .ae-web-relacionadas__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.ae-web-listado { padding-bottom: 56px; }
	.ae-web-paginacion { margin-top: 40px; }
	.ae-web-paginacion ul { justify-content: space-between; flex-wrap: nowrap; }
	.ae-web-paginacion li:not(.ae-web-paginacion__paso):not(.ae-web-paginacion__estado) { display: none; }
	.ae-web-paginacion__estado { display: block; font-family: var(--ae-font); font-weight: 500; font-size: var(--ae-text-sm); color: var(--ae-navy); text-align: center; }
	.ae-web-paginacion .next { background: var(--ae-red); border-color: var(--ae-red); }
	.ae-web-paginacion a.next:hover { background: #B8122A; }
	.ae-web-paginacion .prev { background: #fff; color: var(--ae-navy); }
	.ae-web-destacada { padding: 0; }
	.ae-web-destacada__marco { border-radius: 0; max-height: 240px; }
	.ae-web-articulo { padding: 28px 24px 56px; }
	.ae-web-entrada > .ae-web-articulo:first-child { padding-top: 40px; }
	.ae-web-articulo__cabecera h1 { font-size: 1.75rem; }
	.ae-web-articulo__cuerpo { font-size: 16px; }
	.ae-web .ae-web-articulo__cuerpo h2 { font-size: 1.3rem; }
	.ae-web-articulo__cuerpo blockquote { padding: 24px 16px; }
	.ae-web-franja { padding: 32px 24px; }
	.ae-web-franja__inner { flex-direction: column; }
	.ae-web-franja .ae-web-btn { width: 100%; }
	.ae-web-articulo__nav { flex-direction: column; align-items: flex-start; gap: 8px; }
	.ae-web-articulo__nav-siguiente { margin-left: 0; }
	.ae-web-relacionadas { padding: 56px 0; }
	.ae-web .ae-web-relacionadas__titulo { margin-bottom: 32px; }
}
@media (prefers-reduced-motion: reduce) {
	.ae-web-tarjeta, .ae-web-filtros__boton, .ae-web-compartir__boton, .ae-web-compartir__boton::after, .ae-web-aviso { transition: none; }
	.ae-web-tarjeta:hover { transform: none; }
}

/* ==========================================================================
   Páginas interiores: Campus Location, Application Process y Meet Our Team
   («8 AE», «9 AE» y «10 AE»).
   ========================================================================== */

/* ---------- Hero «título» ----------
   El H1 centrado con su raya debajo. Con foto, la foto al 22 % sobre navy y un
   velo que la oscurece; sin foto, sobre gris cálido con el titular en navy. */
.ae-web-hero--titulo { padding: 80px 0; text-align: center; }
.ae-web-hero--titulo .ae-web-hero__grid { position: relative; z-index: 2; grid-template-columns: minmax(0, 1fr); gap: 0; justify-items: center; }
.ae-web-hero--titulo .ae-web-hero__text { display: flex; flex-direction: column; align-items: center; max-width: 960px; }
.ae-web-hero--titulo h1 { margin: 0; font-size: var(--ae-text-display); font-weight: 800; line-height: 1.05; text-wrap: balance; overflow-wrap: break-word; }
.ae-web-hero--titulo .ae-web-hero__lead { margin: 24px auto 0; }
.ae-web-hero--titulo .ae-web-hero__actions { justify-content: center; margin-top: 32px; }
/* Botón principal grande (web_hero_cta_grande): para la página cuya acción es
   ese botón. En el teléfono, lo justo para que quepa en una línea. */
.ae-web-hero--cta-grande .ae-web-hero__cta { min-height: 76px; padding: 0 48px; gap: 16px; font-size: 21px; }
.ae-web-hero--cta-grande .ae-web-hero__cta svg { width: 26px; height: 26px; }
@media (max-width: 480px) {
	.ae-web-hero--cta-grande .ae-web-hero__cta { min-height: 68px; padding: 0 26px; gap: 12px; font-size: 19px; }
	.ae-web-hero--cta-grande .ae-web-hero__cta svg { width: 22px; height: 22px; }
}
.ae-web-hero--sin-foto { background: var(--ae-surface-warm); color: var(--ae-navy); }
.ae-web-hero--sin-foto h1 { color: var(--ae-navy); }
.ae-web-hero--sin-foto .ae-web-hero__lead { color: var(--ae-web-texto); }
.ae-web-hero--con-foto { background: var(--ae-navy); }
.ae-web-hero--con-foto::before { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(6,32,78,0.65) 0%, rgba(6,32,78,0.85) 100%); }
.ae-web-hero__foto { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; opacity: .22 !important; }
/* Foto a la vista: la foto entera bajo un velo navy ligero, más oscuro en el
   centro, donde va el titular, para que el blanco cumpla el contraste AA de
   texto grande sobre cualquier zona de la foto; la cabecera, más alta. */
.ae-web-hero--foto-visible { padding: 136px 0; }
.ae-web-hero--foto-visible .ae-web-hero__foto { opacity: 1 !important; background-position: center 40%; }
.ae-web-hero--foto-visible::before { background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(6,32,78,0.72) 0%, rgba(6,32,78,0.5) 100%); }
.ae-web-hero--foto-visible h1 { text-shadow: 0 2px 18px rgba(4,23,58,0.6); }
@media (max-width: 768px) {
	.ae-web-hero--titulo { padding: 56px 0; }
	.ae-web-hero--foto-visible { padding: 96px 0; }
	.ae-web-hero--foto-visible::before { background: rgba(6,32,78,0.62); }
}

/* ---------- Hero con formulario, sin cuenta atrás ni sellos ---------- */
.ae-web-phero--solo { min-height: 0; padding: 72px 0; }
.ae-web-phero--solo .ae-web-phero__head { grid-row: 1 / span 3; align-self: center; }
@media (max-width: 1080px) {
	.ae-web-phero--solo .ae-web-phero__head { grid-row: auto; }
}

/* ---------- Tarjetas: enlace y panel de contacto ---------- */
.ae-web-card__enlace { display: block; color: inherit; text-decoration: none; }
.ae-web-card__enlace:hover { color: inherit; }
.ae-web-card__enlace:focus-visible { outline: 3px solid var(--ae-red); outline-offset: -3px; }
.ae-web-cards--contacto .ae-web-cards__grid {
	max-width: 1100px; margin: 0 auto; gap: 0; overflow: hidden;
	background: var(--ae-surface-light); border: 1px solid var(--ae-rule); border-radius: var(--ae-radius-lg);
}
.ae-web-cards--contacto .ae-web-card { background: transparent; border-radius: 0; padding: 0; border-right: 1px solid var(--ae-rule); }
.ae-web-cards--contacto .ae-web-card:last-child { border-right: 0; }
.ae-web-cards--contacto .ae-web-card:not(.ae-web-card--enlace),
.ae-web-cards--contacto .ae-web-card__enlace {
	height: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; gap: 12px;
	padding: 32px 24px; color: var(--ae-navy); transition: background .2s ease;
}
.ae-web-cards--contacto .ae-web-card__enlace:hover { background: #fff; color: var(--ae-navy); }
.ae-web-cards--contacto .ae-web-card__icon { width: 64px; height: 64px; margin: 0; box-shadow: 0 8px 20px rgba(6,32,78,0.2); }
.ae-web-cards--contacto .ae-web-card__title { margin: 8px 0 0; font-size: var(--ae-text-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ae-blue); }
.ae-web-cards--contacto .ae-web-card__text { max-width: 260px; }
.ae-web .ae-web-cards--contacto .ae-web-card__text p { font-size: var(--ae-text-lg); font-weight: 700; line-height: 1.4; color: var(--ae-navy); overflow-wrap: anywhere; }
@media (max-width: 900px) {
	.ae-web-cards--contacto .ae-web-card { border-right: 0; border-bottom: 1px solid var(--ae-rule); }
	.ae-web-cards--contacto .ae-web-card:last-child { border-bottom: 0; }
}

/* ---------- Tarjetas: dos columnas, logo, destacada y texto del enlace ----------
   El cuerpo de la tarjeta no crea caja salvo con logo, donde va a la derecha
   del logo (debajo en el móvil). */
.ae-web-card__cuerpo { display: contents; }
.ae-web-cards--dos .ae-web-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ae-web-card--logo, .ae-web-card--logo .ae-web-card__enlace { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 28px; align-items: start; text-align: left; }
.ae-web-card--logo { background: #fff; border: 1px solid var(--ae-rule); box-shadow: 0 8px 24px rgba(4,23,58,0.06); }
.ae-web-card--logo.ae-web-card--enlace { display: block; padding: 0; }
.ae-web-card--logo .ae-web-card__enlace { padding: 32px 28px; }
.ae-web-card__logo { display: flex; align-items: center; justify-content: center; height: 112px; }
.ae-web-card__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.ae-web-card--logo .ae-web-card__cuerpo { display: block; }
.ae-web-card--logo .ae-web-card__text p + p { margin-top: 12px; }
.ae-web-card__text a { color: var(--ae-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ae-web-card__text a:focus-visible { outline: 2px solid var(--ae-navy); outline-offset: 2px; }
.ae-web-card--destacada { border-left: 4px solid var(--ae-red); }
.ae-web-card__mas { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-weight: 700; font-size: var(--ae-text-sm); letter-spacing: .06em; text-transform: uppercase; color: var(--ae-red); }
.ae-web-card--enlace:not(.ae-web-card--logo) .ae-web-card__enlace { height: 100%; box-sizing: border-box; }
.ae-web-cards:not(.ae-web-cards--contacto) .ae-web-card--enlace { transition: box-shadow .2s ease, transform .2s ease; }
.ae-web-cards:not(.ae-web-cards--contacto) .ae-web-card--enlace:hover { box-shadow: 0 12px 28px rgba(4,23,58,0.12); transform: translateY(-2px); }
@media (max-width: 900px) {
	.ae-web-cards--dos .ae-web-cards__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
	.ae-web-card--logo, .ae-web-card--logo .ae-web-card__enlace { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.ae-web-card__logo { justify-content: flex-start; height: 88px; }
}
@media (prefers-reduced-motion: reduce) {
	.ae-web-cards:not(.ae-web-cards--contacto) .ae-web-card--enlace { transition: none; }
	.ae-web-cards:not(.ae-web-cards--contacto) .ae-web-card--enlace:hover { transform: none; }
}

/* ---------- Mapa y contacto ---------- */
.ae-web-map { background: #fff; padding: 64px 0; color: var(--ae-blue); }
.ae-web-map__head { max-width: 880px; margin-bottom: 48px; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.ae-web-map__title { display: table; margin: 0; font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; color: var(--ae-navy); text-wrap: balance; }
.ae-web .ae-web-map__lead { margin: 0; font-size: var(--ae-text-lg); line-height: 1.7; color: var(--ae-blue); }
.ae-web-map__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; align-items: center; max-width: 1200px; }
.ae-web-map__col { display: flex; flex-direction: column; gap: 32px; }
.ae-web-map__frame { position: relative; width: 100%; aspect-ratio: 16/10; border-radius: var(--ae-radius-lg); overflow: hidden; background: var(--ae-surface-light); box-shadow: 0 16px 40px rgba(4,23,58,0.18); }
.ae-web-map__frame iframe, .ae-web-map__frame .cmplz-blocked-content-container { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; display: block; }
.ae-web-map__accion { display: flex; justify-content: center; }
.ae-web-map__card {
	display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ae-rule); border-top: 4px solid var(--ae-red);
	border-radius: var(--ae-radius-lg); box-shadow: 0 4px 14px rgba(6,32,78,0.06); padding: 32px;
}
.ae-web-map__fila { display: flex; gap: 16px; align-items: flex-start; }
.ae-web-map__fila + .ae-web-map__fila { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--ae-rule); }
.ae-web-map__fila > div { flex: 1; min-width: 0; }
.ae-web-map__icono { flex: none; width: 48px; height: 48px; border-radius: var(--ae-radius-md); background: var(--ae-navy); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.ae-web .ae-web-map__rotulo { margin: 0 0 4px; font-size: var(--ae-text-sm); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ae-navy); }
.ae-web .ae-web-map__dato { margin: 0; font-size: var(--ae-text-base); line-height: 1.7; color: var(--ae-blue); }
.ae-web-map__dato a { color: var(--ae-navy); font-weight: 700; text-decoration: none; }
.ae-web-map__dato a:hover { text-decoration: underline; }
.ae-web-map__dato a:focus-visible { outline: 2px solid var(--ae-red); outline-offset: 2px; }
.ae-web-map__horario { margin: 0; }
.ae-web-map__horario > div { display: flex; justify-content: space-between; gap: 12px; font-size: var(--ae-text-base); line-height: 1.7; }
.ae-web-map__horario dt { font-weight: 700; color: var(--ae-navy); }
.ae-web-map__horario dd { margin: 0; color: var(--ae-blue); text-align: right; white-space: nowrap; }
@media (max-width: 860px) {
	.ae-web-map__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 480px) {
	.ae-web-map__card { padding: 24px 20px; }
	.ae-web-map__frame { aspect-ratio: 4/3; }
	.ae-web-map__horario > div { gap: 8px; font-size: 15px; }
}

/* ---------- Cómo llegar ---------- */
.ae-web-dir { background: var(--ae-surface-light); padding: 64px 0; color: var(--ae-blue); }
.ae-web-dir__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 48px; align-items: center; max-width: 1200px; }
.ae-web-dir__head { display: flex; flex-direction: column; gap: 24px; }
.ae-web-dir__title { margin: 0; font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; color: var(--ae-navy); text-wrap: balance; }
.ae-web .ae-web-dir__lead { margin: 0; font-size: var(--ae-text-lg); line-height: 1.7; color: var(--ae-blue); }
.ae-web-dir__card { background: #fff; border: 1px solid var(--ae-rule); border-top: 4px solid var(--ae-red); border-radius: var(--ae-radius-lg); box-shadow: 0 4px 14px rgba(6,32,78,0.06); padding: 32px; }
.ae-web-dir__grupo { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--ae-text-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ae-blue); }
.ae-web-dir__lista + .ae-web-dir__grupo { margin-top: 24px; }
.ae-web-dir__lista { list-style: none; margin: 0; padding: 0; }
.ae-web-dir__parada { display: flex; align-items: center; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--ae-rule); }
.ae-web-dir__parada:last-child { border-bottom: 0; }
.ae-web-dir__lineas { display: flex; gap: 6px; width: 78px; flex: none; }
.ae-web-dir__linea { display: inline-flex; align-items: center; justify-content: center; flex: none; height: 36px; font-weight: 700; font-size: var(--ae-text-base); line-height: 1; }
.ae-web-dir__linea--metro { width: 36px; border-radius: 50%; }
.ae-web-dir__linea--autobus { padding: 0 10px; border-radius: var(--ae-radius-sm); font-size: var(--ae-text-sm); }
.ae-web-dir__texto { font-size: var(--ae-text-base); line-height: 1.6; color: var(--ae-blue); }
@media (max-width: 860px) {
	.ae-web-dir__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.ae-web-dir__head { align-items: center; text-align: center; }
	.ae-web-dir__title { padding-left: 0; padding-bottom: 18px; }
	.ae-web-dir__title::after { top: auto; bottom: 0; left: 50%; transform: translateX(-50%); width: var(--ae-web-raya); height: 4px; }
}
@media (max-width: 480px) {
	.ae-web-dir__card { padding: 24px 20px; }
	.ae-web-dir__parada { gap: 16px; }
}

/* ---------- Tour virtual ----------
   El tour de Panoee mide 400 px de alto en escritorio y al menos 320 en el
   móvil, a todo el ancho; si el gestor de cookies lo retiene, su aviso ocupa
   el mismo hueco. El vídeo de YouTube va debajo, más estrecho. */
.ae-web-tour { background: var(--ae-surface-warm); padding: 80px 0; color: var(--ae-ink); scroll-margin-top: var(--ae-web-alto-cabecera); }
.ae-web-tour__inner { max-width: 1100px; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.ae-web-tour__title { display: table; margin: 0; text-align: center; font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; color: var(--ae-navy); text-wrap: balance; }
.ae-web .ae-web-tour__lead { margin: 0; max-width: 760px; text-align: center; font-size: var(--ae-text-lg); line-height: 1.7; color: var(--ae-blue); }
.ae-web-tour__frame { position: relative; width: 100%; height: clamp(320px, 80vw, 400px); margin-top: 16px; border-radius: var(--ae-radius-lg); overflow: hidden; background: var(--ae-surface-light); box-shadow: 0 16px 40px rgba(4,23,58,0.18); }
.ae-web-tour__frame iframe, .ae-web-tour__frame .cmplz-blocked-content-container { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; display: block; }
.ae-web-tour__video.ae-web-video { width: 100%; max-width: 800px; margin-top: 40px; padding: 0; background: none; color: inherit; overflow: visible; }
@media (max-width: 768px) {
	.ae-web-tour { padding: 56px 0; }
	.ae-web-tour__video.ae-web-video { margin-top: 24px; }
}

/* ---------- Retrato sin foto: iniciales ---------- */
.ae-web-retrato--iniciales { display: flex; align-items: center; justify-content: center; background: var(--ae-surface-warm); color: var(--ae-navy); font-family: var(--ae-font); font-weight: 800; letter-spacing: .04em; }

/* ---------- Cita destacada ---------- */
.ae-web-quote { background: #fff; padding: 64px 0 32px; }
.ae-web-quote__panel {
	position: relative; overflow: hidden; max-width: 1000px; margin: 0 auto; box-sizing: border-box;
	display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 48px; align-items: center;
	padding: 64px 48px; border-radius: var(--ae-radius-lg); background: var(--ae-surface-warm);
}
.ae-web-quote__foto { position: relative; width: 120px; height: 120px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 6px #fff, 0 12px 32px rgba(6,32,78,0.18); }
.ae-web-quote__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }
.ae-web-quote__foto.ae-web-retrato--iniciales { background: #fff; font-size: 2.25rem; }
.ae-web-quote__cuerpo { position: relative; display: flex; flex-direction: column; gap: 24px; }
.ae-web-quote__texto { margin: 0; }
.ae-web .ae-web-quote__texto p { margin: 0; font-size: clamp(1.25rem, 2.2vw, 1.625rem); font-weight: 500; line-height: 1.5; color: var(--ae-navy); text-wrap: pretty; }
.ae-web .ae-web-quote__texto p + p { margin-top: 16px; }
.ae-web .ae-web-quote__texto--largo p { font-size: clamp(1.0625rem, 1.6vw, 1.25rem); line-height: 1.65; }
.ae-web-quote__firma { display: flex; align-items: center; gap: 12px; font-size: var(--ae-text-base); color: var(--ae-ink); }
.ae-web-quote__firma strong { color: var(--ae-navy); }
.ae-web-quote__raya { flex: none; width: 32px; height: 2px; background: var(--ae-red); }
@media (max-width: 760px) {
	.ae-web-quote { padding-top: 48px; }
	.ae-web-quote__panel { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; gap: 32px; padding: 48px 24px; }
	.ae-web-quote__cuerpo { align-items: center; }
	.ae-web-quote__firma { flex-direction: column; gap: 10px; }
}

/* ---------- Equipo ---------- */
.ae-web-team { background: #fff; padding: 32px 0 64px; color: var(--ae-ink); }
.ae-web-team__inner { max-width: 880px; }
.ae-web-team__title { display: table; margin: 0 auto 16px; text-align: center; font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; color: var(--ae-navy); }
.ae-web-team__lista { display: flex; flex-direction: column; }
.ae-web-bio { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 32px; align-items: start; padding: 48px 0; border-bottom: 1px solid var(--ae-rule); }
.ae-web-bio:last-child { border-bottom: 0; }
.ae-web-bio__foto { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--ae-rule); }
.ae-web-bio__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }
.ae-web-bio__foto.ae-web-retrato--iniciales { font-size: 1.75rem; }
.ae-web-bio__texto { display: flex; flex-direction: column; gap: 16px; }
.ae-web .ae-web-bio__nombre { margin: 0; font-size: 1.875rem; font-weight: 800; line-height: 1.2; color: var(--ae-navy); }
.ae-web .ae-web-bio__cargo { margin: -12px 0 0; font-size: var(--ae-text-sm); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ae-blue); }
.ae-web .ae-web-bio__texto p:not(.ae-web-bio__cargo) { margin: 0; font-size: var(--ae-text-base); line-height: 1.75; color: var(--ae-ink); }
@media (max-width: 760px) {
	.ae-web-bio { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 24px; padding: 32px 0; }
	.ae-web .ae-web-bio__nombre, .ae-web .ae-web-bio__cargo { text-align: center; }
	.ae-web .ae-web-bio__nombre { font-size: 1.5rem; }
}

/* ==========================================================================
   Global rules of the template: vertical rhythm, forms and type scale.
   They come last so that one place decides these values for every block;
   new block rules go above this block.
   ========================================================================== */

/* ---------- Vertical rhythm ----------
   Interior pages (every page, course and workshop except the home page;
   class set by ae_web_clase_interior()) use the tighter rhythm of the pages
   the client approved in Swedish: 72px per section on desktop instead of
   80–96px, 96px around a form instead of 120px and 72px around the
   disclaimers instead of 82–96px. Headers keep their own padding, and below
   769px each block keeps its mobile padding. */
@media (min-width: 769px) {
	body.ae-web-interior .ae-web-media, body.ae-web-interior .ae-web-cards, body.ae-web-interior .ae-web-cta,
	body.ae-web-interior .ae-web-steps, body.ae-web-interior .ae-web-programs, body.ae-web-interior .ae-web-video,
	body.ae-web-interior .ae-web-tour, body.ae-web-interior .ae-web-features, body.ae-web-interior .ae-web-innovation,
	body.ae-web-interior .ae-web-instagram, body.ae-web-interior .ae-web-blog, body.ae-web-interior .ae-web-contact,
	body.ae-web-interior .ae-section { padding-top: 72px; padding-bottom: 72px; }
	body.ae-web-interior .ae-web-lead { padding-top: 96px; padding-bottom: 96px; }
}

/* ---------- Forms ----------
   Every form card of the site (home page header, program header, full-width
   form and request info section) on the very light blue of
   --ae-web-fondo-formulario, so that it stands out from its section; the
   fields keep their white. */
body.ae-web .ae-hero__form-card,
body.ae-web .ae-web-phero__card .form-card,
body.ae-web .ae-web-panel__card .form-card,
body.ae-web .ae-web-lead__card .form-card { background: var(--ae-web-fondo-formulario); }

/* Every Forminator form of the site: labels, options and fields at body size;
   consents at the compact size of the landings theme (--ae-consent-*), with
   the box on the first line of its text; a required consent says so with the
   asterisk the other required fields carry. */
body.ae-web .ae-form-embed .forminator-label,
body.ae-web .forminator-ui.forminator-custom-form .forminator-label { font-size: var(--ae-web-cuerpo) !important; line-height: 1.4 !important; letter-spacing: .02em; }
body.ae-web .forminator-ui.forminator-custom-form .forminator-input,
body.ae-web .forminator-ui.forminator-custom-form select,
body.ae-web .forminator-ui.forminator-custom-form textarea,
body.ae-web .forminator-ui.forminator-custom-form .forminator-description { font-size: var(--ae-web-cuerpo) !important; }
body.ae-web .forminator-ui.forminator-custom-form .forminator-radio-label,
body.ae-web .forminator-ui.forminator-custom-form .forminator-checkbox-label,
body.ae-web .forminator-ui.forminator-custom-form .forminator-field-html p { font-size: var(--ae-web-cuerpo) !important; line-height: 1.5 !important; }
body.ae-web .forminator-ui.forminator-custom-form .forminator-checkbox__wrapper { align-items: flex-start !important; gap: 12px !important; font-size: var(--ae-consent-texto) !important; }
body.ae-web .ae-form-embed .forminator-ui.forminator-custom-form .forminator-field:has(input[type="checkbox"]) .forminator-checkbox,
body.ae-web .forminator-ui.forminator-custom-form .forminator-checkbox__wrapper label.forminator-checkbox { display: flex !important; padding: 0 !important; margin: 0 !important; line-height: 1; }
body.ae-web .forminator-ui.forminator-custom-form .forminator-field-consent input[type="checkbox"] {
	flex: none; width: var(--ae-consent-casilla); height: var(--ae-consent-casilla); min-width: var(--ae-consent-casilla);
	margin: calc((var(--ae-consent-texto) * var(--ae-consent-interlineado) - var(--ae-consent-casilla)) / 2) 0 0 !important; accent-color: var(--ae-navy); cursor: pointer;
}
body.ae-web .forminator-ui.forminator-custom-form .forminator-consent__label,
body.ae-web .forminator-ui.forminator-custom-form .forminator-consent__label p { font-size: var(--ae-consent-texto) !important; line-height: var(--ae-consent-interlineado) !important; }
body.ae-web .forminator-ui.forminator-custom-form .forminator-consent__label p { margin: 0 !important; }
body.ae-web .forminator-ui.forminator-custom-form .forminator-consent__label p + p { margin-top: 8px !important; }
body.ae-web .forminator-field-consent:has(input[aria-required="true"]) .forminator-consent__label > p:last-child::after { content: ' *'; color: var(--ae-red); font-weight: 700; }
/* Consent of the two enrolment forms (4365, 4573): its text is the field label. */
body.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-label,
body.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-label { font-size: var(--ae-consent-texto) !important; line-height: var(--ae-consent-interlineado) !important; letter-spacing: normal; }
body.ae-web .forminator-ui.forminator-custom-form-4365 .forminator-field-consent .forminator-checkbox__wrapper,
body.ae-web .forminator-ui.forminator-custom-form-4573 .forminator-field-consent .forminator-checkbox__wrapper { align-self: flex-start; }

/* ---------- Type scale ----------
   Running copy never goes below the body size (--ae-web-cuerpo, 17px), the
   size of the home page intro under «Transform Your Passion into an
   Esthetics Career». Each selector has the specificity of the rule it raises,
   so it wins by order; a block that wants more than 17px uses one more class.
   Labels, eyebrows, pills, buttons, stat labels, the countdown, the footer and
   the blog post template keep their own sizes. */
.ae-web-band__text p,
.ae-web-card__text p,
.ae-web-pcard__text,
.ae-web-dir__texto,
.ae-web-map__horario > div,
.ae-web-quote__firma,
.ae-web-learn__body p { font-size: var(--ae-web-cuerpo); }
.ae-web .ae-web-steps__nota p,
.ae-web .ae-web-map__dato,
.ae-web .ae-web-bio__texto p:not(.ae-web-bio__cargo) { font-size: var(--ae-web-cuerpo); }
.ae-web-step__text p, .ae-web-step__text li,
.ae-web-feature__text, .ae-web-feature__list li,
.ae-web-innovation__seal p { font-size: var(--ae-web-cuerpo) !important; }
@media (max-width: 480px) {
	.ae-web-map__horario > div { font-size: var(--ae-web-cuerpo); }
}
/* Blocks of the landings theme inside the site; the landings keep theirs. */
.ae-web .ae-faq__panel,
.ae-web .ae-disclosures__item .ae-faq__panel,
.ae-web .ae-faq .ae-disclosures__item .ae-faq__panel,
.ae-web .ae-schedules__lead,
.ae-web .ae-schedules__lines span { font-size: var(--ae-web-cuerpo); }
