/* ===========================================================================
   MEXAV 2026 — CSS de página: HOME (landing)
   ---------------------------------------------------------------------------
   Se carga SOLO en la vista `home` (ver header.tpl + $vista_actual).
   Depende de css/mexav-public.css (tokens y scope `.mexav-public`).

   Secciones previstas (según Figma HOME): hero (fecha/sede + CTA
   pre-registro), intro/manifiesto, agenda, sede (Estudios Churubusco) y
   FAQ's. Se implementa en el Bloque de Home.
   =========================================================================== */

/* =======================================================================
   HOME TEMPORAL — pantalla "Próximamente"
   -----------------------------------------------------------------------
   Home no muestra header, navegación, franja técnica ni footer (ver
   header.tpl / footer.tpl, condicionados por $vista_actual). Solo identidad
   MEXAV centrada sobre una versión sobria del fondo. Este archivo carga
   ÚNICAMENTE en Home, por eso puede tocar #mexav-main y .mexav-bg::after
   sin afectar otras vistas.
   ======================================================================= */

/* Fondo sobrio: viñeta que atenúa los bloques y centra la lectura. */
.mexav-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at center,
		rgba(12, 12, 13, 0.40) 0%,
		rgba(12, 12, 13, 0.64) 100%);
}

/* En Home, <main> ocupa toda la altura disponible y centra su contenido
   (no hay header ni footer que resten alto). */
#mexav-main {
	display: flex;
	flex-direction: column;
}

.mexav-coming {
	position: relative;
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: clamp(2rem, 6vw, 4rem) clamp(1.25rem, 5vw, 2.5rem);
}
.mexav-coming__inner {
	max-width: 40rem;
}
.mexav-coming__logo {
	height: clamp(64px, 14vw, 150px);
	width: auto;
	/* Logo oficial oscuro → blanco sobre el fondo (mismo criterio que registro). */
	filter: brightness(0) invert(1) drop-shadow(0 3px 14px rgba(0, 0, 0, 0.5));
}
/* `.mexav-public` + !important para ganar al neutralizador global de headings. */
.mexav-public .mexav-coming__title {
	color: var(--mx-white) !important;
	font-family: var(--mx-font-display);
	font-weight: 800;
	letter-spacing: 0.03em;
	font-size: clamp(1.75rem, 6vw, 3rem);
	line-height: 1.05;
	margin: clamp(1.25rem, 3vw, 2rem) 0 0;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5);
}
.mexav-coming__subtitle {
	margin: 0.85rem 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-family: var(--mx-font-mono);
	font-size: clamp(0.85rem, 2.5vw, 1rem);
	letter-spacing: 0.06em;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

/* =======================================================================
   BLOQUE 1 — HEADER / NAV (Home)
   -----------------------------------------------------------------------
   Ajustes ESPECÍFICOS de Home para igualar el frame Desktop de Figma
   (node 4126:3). Todo bajo `.mexav-home` (clase del <body> solo en la Home
   real) y en este archivo, que ÚNICAMENTE se carga en Home → no afecta a
   Registro ni a ninguna otra vista. Reutiliza la estructura del header
   público definido en css/mexav-public.css (§8), solo sobreescribe valores.

   Medidas/colores tomados del export 1:1 (1920px) del propio Figma:
     · Barra nav: negro puro #000000, alto ~70px.
     · Franja técnica: fondo #0b121a, alto ~50px, texto #e3e3e5,
       separadores #e3e3e5 (no rojo), timecode teal #41a3c5.
     · Nav: fuente display (Munich) bold (en la maqueta NO es monospace).
   ======================================================================= */

/* El header y la navegación se movieron a css/mexav-site.css bajo
   `.mexav-site`: son idénticos en Home y Registro, así que dejan de ser
   exclusivos de la landing. Aquí no queda nada de header. */

/* NOTA: la franja técnica se retiró del header en B2 (la aporta el video del
   hero). Ver la sección hero más abajo. */

/* =======================================================================
   BLOQUE 2 — HERO (Home)
   -----------------------------------------------------------------------
   Fondo: video animado 1920x718 (barras de color + claqueta MEXAV + riel
   de herramientas + faders FX + línea de tiempo + franja técnica), a ancho
   completo bajo el header. El video es "marcos limpios"; los textos
   (fecha/sede) y el CTA (Pre-registro) van como OVERLAY en HTML.

   El overlay se posiciona en % y se dimensiona en vw para quedar ANCLADO a
   la escala del video (que crece proporcional al ancho). A 1920px coincide
   con la maqueta. Todo bajo `.mexav-home` → no afecta a otras vistas.
   ======================================================================= */
.mexav-home .mexav-hero {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--mx-black-pure);
}

/* Caja del medio: conserva la proporción del video (1920:718). El poster
   (imagen) actúa como fallback si el video no carga. */
.mexav-home .mexav-hero__media {
	position: relative;
	width: 100%;
	aspect-ratio: 1920 / 718;
	background: #000 url("../img/mexav/hero-home-desktop.jpg") center / cover no-repeat;
}
.mexav-home .mexav-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Selección de variante: por CSS, no por el atributo `media` de <source>
   (no estándar dentro de <video>; WebKit no lo respeta). Por defecto manda
   la Desktop; el swap a Mobile vive en el bloque ≤600. */
.mexav-home .mexav-hero__video--mobile { display: none; }

/* Accesibilidad: sin movimiento → se ocultan AMBOS vídeos y queda el poster.
   Especificidad (0,3,0) a propósito: tiene que ganarle también a la regla
   que muestra la variante Mobile dentro del bloque ≤600. */
@media (prefers-reduced-motion: reduce) {
	.mexav-public.mexav-home .mexav-hero__video { display: none; }
}

/* Overlay de contenido. */
.mexav-home .mexav-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
}
.mexav-home .mexav-hero__content {
	position: absolute;
	left: 56.4%;
	top: 28.5%;
	right: 3%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	/* Sombra suave para asegurar legibilidad sobre las bandas animadas. */
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

/* "9 y 10 de septiembre" — display bold sobre la banda azul. */
.mexav-public.mexav-home .mexav-hero__date {
	margin: 0;
	color: var(--mx-white);
	font-family: var(--mx-font-display);
	font-weight: 700;
	font-size: 3.65vw;
	line-height: 1.0;
	letter-spacing: 0.005em;
}

/* "ESTUDIOS CHURUBUSCO" — display bold uppercase sobre la banda verde. */
.mexav-public.mexav-home .mexav-hero__venue {
	margin: 2.8vw 0 0;
	color: var(--mx-white);
	font-family: var(--mx-font-display);
	font-weight: 700;
	font-size: 2.6vw;
	line-height: 1.0;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* Botón "PRE-REGISTRO" — negro puro, texto blanco, esquinas leves. */
.mexav-public.mexav-home .mexav-hero__cta {
	margin-top: 1.95vw;
	display: inline-block;
	background: var(--mx-black-pure);
	color: var(--mx-white);
	font-family: var(--mx-font-display);
	font-weight: 700;
	font-size: 1.45vw;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.62em 2.15em;
	border-radius: var(--mx-radius);
	text-shadow: none;
	transition: background var(--mx-dur) var(--mx-ease), transform var(--mx-dur) var(--mx-ease);
}
.mexav-public.mexav-home .mexav-hero__cta:hover {
	background: var(--mx-accent);
	transform: translateY(-1px);
}

/* =======================================================================
   BLOQUE 3 — CARRUSEL FOTOGRÁFICO (Home)  [node 4126:103]
   -----------------------------------------------------------------------
   Sección panorámica oscura, imagen centrada con márgenes laterales y una
   línea punteada decorativa a la izquierda (medida del export: x≈60,
   proporción ≈3.8:1). Reutiliza Bootstrap Carousel (clases .carousel*).
   Solo reglas DESKTOP; el ajuste Mobile (breakpoints) se hará en B10.
   Estructura pensada para Mobile: altura por aspect-ratio (no px rígidos),
   imágenes con object-fit:cover, mínimos position:absolute.
   ======================================================================= */
.mexav-home .mexav-home-carousel {
	position: relative;
	background: var(--mx-black-pure);
	padding: 0;                    /* foto a ancho completo: respeta el encuadre real de Figma */
}

/* Frame panorámico a ancho completo. Medido en el export Desktop 1:1: la foto
   ocupa de y=789 (fin de la franja técnica) a y=1504 (inicio del azul), es
   decir 1920×716 ≈ 2.68:1. Antes estaba en 1920/474, que la dejaba 242px más
   baja y por eso se veía apaisada de más. Ancho: ya era full-bleed (sin
   max-width ni padding). La altura se deriva del ancho; Mobile la sobrescribe
   con su propio aspecto (29/20) en B10. */
.mexav-home .mexav-home-carousel__viewport {
	position: relative;
	aspect-ratio: 1920 / 716;
	overflow: hidden;
	background: var(--mx-black-pure);
}

/* El MARCO PUNTEADO ya NO vive en el viewport del carrusel: se movió al
   contenedor compartido `.mexav-home-intro` (ver el bloque INTRO más abajo),
   para poder cruzar el carrusel y bajar hasta dentro de la sección azul,
   como en la maqueta. */

.mexav-home .mexav-home-carousel__track,
.mexav-home .mexav-home-carousel__slide { height: 100%; }

.mexav-home .mexav-home-carousel__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 60%;   /* encuadre hacia el escenario, como la maqueta */
	display: block;
}

/* Sin controles de navegación: el diseño no los muestra y el carrusel avanza
   solo. El markup de las flechas se eliminó de home.tpl, así que no quedan
   botones invisibles pero enfocables. Estas reglas se conservan neutralizadas
   por si algún otro punto del sitio reutiliza las clases. */
.mexav-home .mexav-home-carousel__controls { display: none; }
.mexav-home .mexav-home-carousel__controls--legacy {
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
}
.mexav-home .mexav-home-carousel__control {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: auto;
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--mx-radius);
	color: var(--mx-white);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	transition: background var(--mx-dur) var(--mx-ease),
	            border-color var(--mx-dur) var(--mx-ease);
}
.mexav-home .mexav-home-carousel__control--prev { left: 2.5rem; }
.mexav-home .mexav-home-carousel__control--next { right: 2.5rem; }
.mexav-home .mexav-home-carousel__control:hover,
.mexav-home .mexav-home-carousel__control:focus-visible {
	background: rgba(0, 0, 0, 0.6);
	border-color: var(--mx-accent);
}
.mexav-home .mexav-home-carousel__arrow { display: block; margin-top: -2px; }

/* =======================================================================
   BLOQUE INTRO — contenedor COMPARTIDO (carrusel + sección azul) y el
   MARCO PUNTEADO decorativo que se superpone a AMBOS.
   ======================================================================= */
.mexav-home .mexav-home-intro {
	position: relative;
	container-type: inline-size;   /* permite expresar el alto del marco con cqw */
	--mx-frame-inset: 24px;        /* separación del marco respecto al borde */
	--mx-frame-dip: 30px;          /* cuánto ENTRA el tramo inferior al bloque azul */
}

/* MARCO PUNTEADO decorativo, compartido por carrusel + bloque azul:
   · tramo SUPERIOR claramente sobre la fotografía (a --mx-frame-inset del borde);
   · lateral IZQUIERDO recorriendo la composición;
   · tramo INFERIOR dentro del azul (--mx-frame-dip por debajo del carrusel),
     por encima del texto (~56px) y de las barras amarillas (~216px);
   · lado DERECHO abierto.
   Altura por ESTRUCTURA (no fórmula suelta): alto del carrusel = ancho del
   contenedor (100cqw) ÷ su aspect-ratio (1920/474); menos el inset superior,
   más lo que baja al azul. */
.mexav-home .mexav-home-intro__frame {
	position: absolute;
	top: var(--mx-frame-inset);
	right: 0;                      /* lado derecho ABIERTO */
	left: var(--mx-frame-inset);
	height: calc(100cqw * 716 / 1920 - var(--mx-frame-inset) + var(--mx-frame-dip));
	pointer-events: none;          /* nunca bloquea swipe/clics */
	z-index: 3;                    /* bajo los controles del carrusel (z-index 4) */
	background:
		repeating-linear-gradient(to right,  rgba(255,255,255,0.9) 0 14px, transparent 14px 30px) left top    / 100% 2px no-repeat, /* superior */
		repeating-linear-gradient(to right,  rgba(255,255,255,0.9) 0 14px, transparent 14px 30px) left bottom / 100% 2px no-repeat, /* inferior */
		repeating-linear-gradient(to bottom, rgba(255,255,255,0.9) 0 14px, transparent 14px 30px) left top    / 2px 100% no-repeat;  /* izquierdo */
}

/* =======================================================================
   BLOQUE 4 — SECCIÓN AZUL DE TEXTO / MANIFIESTO (Home)
   -----------------------------------------------------------------------
   Fondo azul (#435aa8) + barras amarillas diagonales del asset OFICIAL
   (img/mexav/intro-back-desktop.png = BACKS/TEXTO.png). Texto DM Mono
   (~#f9f9fb). Contenedor ~1440px (márgenes ~240px medidos del export 1:1).
   Solo reglas DESKTOP; Mobile en B10.
   ======================================================================= */
.mexav-home .mexav-home-about {
	position: relative;
	/* Relleno azul PLANO. Las barras amarillas ya NO son background de esta
	   sección: viven en la capa .mexav-home-flow__bars-amarillas (envoltorio),
	   para poder cruzar a Agenda sin recortarse ni escalarse. */
	background-color: var(--mx-blue);
	padding-block: clamp(2rem, 4vw, 3.5rem);
}
/* El texto por ENCIMA de la capa de barras amarillas. */
.mexav-home .mexav-home-about__inner { position: relative; z-index: 2; }
.mexav-home .mexav-home-about__inner {
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: 1.5rem;
}
.mexav-public.mexav-home .mexav-home-about__p {
	margin: 0 0 1.7em;
	color: #f9f9fb;
	font-family: var(--mx-font-mono);
	font-size: 2rem;
	line-height: 1.78;
	letter-spacing: 0.01em;
}
.mexav-public.mexav-home .mexav-home-about__p:last-child { margin-bottom: 0; }
.mexav-public.mexav-home .mexav-home-about__p strong { font-weight: 500; } /* DM Mono Medium */

/* =======================================================================
   CAPAS DECORATIVAS — BARRAS (composición que cruza secciones)
   -----------------------------------------------------------------------
   Los "backs" oficiales son composiciones full-width (relleno + barras que
   sobresalen). Aquí el relleno va como background-color de cada sección y
   las BARRAS son capas independientes a TAMAÑO NATIVO (aspect del asset,
   no-repeat, sin deformar), recortadas donde corresponde y detrás del
   contenido. Medidas en vw para escalar con el diseño base de 1920px.
   ======================================================================= */
.mexav-home .mexav-home-flow { position: relative; }

/* Barras amarillas (Intro→Agenda): asset recortado (217×732). Nacen dentro
   del azul (219px bajo el borde del bloque, tras el carrusel) y bajan
   cruzando a Agenda. top = (alto carrusel ≈470 + 219)/1920. */
.mexav-home .mexav-home-flow__bars-amarillas {
	position: absolute;
	/* Asset PURO (barras sobre transparencia real, sin relleno horneado).
	   Posición en % (medidos contra el export 1:1) relativos al contenedor
	   compartido Intro+Agenda. Aspect del asset conservado (width fija alto). */
	/* Anclado al ALTO DEL CARRUSEL, no a un % del envoltorio: con el 40% las
	   barras se movían al cambiar el alto del carrusel o del texto del azul y
	   acababan sobre la foto. 716/1920 es el alto del carrusel y +65 (también
	   proporcional) es lo que bajan dentro del azul, igual que antes. */
	top: calc(100vw * 781 / 1920);
	right: 0;
	width: 10%;          /* 192px de 1920 — más angosto que el nativo (217) */
	height: auto;        /* conserva aspect nativo (sin deformar) */
	z-index: 1;          /* sobre los rellenos; el contenido va por encima */
	pointer-events: none;
}

/* =======================================================================
   BLOQUE 5 — AGENDA 2026 (Home, sección verde)
   -----------------------------------------------------------------------
   Fondo verde (#2a5529) + franjas rojas diagonales del asset OFICIAL
   (img/mexav/agenda-back-desktop.png = BACKS/AGENDA.png). Título amarillo
   (Munich) a la izquierda + "PRÓXIMAMENTE" (etiqueta con contorno, SIN
   interacción) y nota a la derecha. Sin tarjetas/filas (no hay items aún).
   Solo reglas DESKTOP; Mobile (apilar en columna) en B10.
   ======================================================================= */
.mexav-home .mexav-home-agenda {
	position: relative;
	/* Alto = alto del relleno verde del diseño (1920×415). Verde PLANO; sin
	   decorativos propios: las barras amarillas (arriba-der) las aporta la
	   capa del envoltorio. */
	aspect-ratio: 1920 / 415;
	background-color: var(--mx-green);
	display: flex;
	align-items: center;
}
/* Contenido de Agenda por encima de las capas decorativas que la cruzan. */
.mexav-home .mexav-home-agenda__inner { position: relative; z-index: 3; }
.mexav-home .mexav-home-agenda__inner {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7rem;
}

/* Título "AGENDA 2026" — display bold amarillo, dos líneas. */
.mexav-public.mexav-home .mexav-home-agenda__title {
	margin: 0;
	/* !important gana al neutralizador global de headings de code4you.css. */
	color: var(--mx-yellow) !important;
	font-family: var(--mx-font-display);
	font-weight: 700;
	/* NOTA: Metronic fija html{font-size:13px!important}, así que 1rem = 13px.
	   Título ~83px/línea de la maqueta → ~7.3rem (igualo la ALTURA; Munich es
	   más condensada y de un solo peso, así que queda algo más angosto). */
	font-size: 7.3rem;
	line-height: 1.0;
	letter-spacing: 0.01em;
	text-transform: uppercase !important; /* gana al neutralizador (none!important) */
}

/* Grupo CTA: etiqueta + nota. La nota va CENTRADA bajo el pill (el pill es el
   elemento más ancho de la columna, así que define el ancho y la nota se
   centra respecto a él). */
.mexav-home .mexav-home-agenda__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
}

/* "CONSULTA PROGRAMACIÓN" — CTA amarillo SÓLIDO con texto verde. Es un
   enlace real a la página /agenda (misma pestaña, sin scroll suave). */
.mexav-public.mexav-home .mexav-home-agenda__badge {
	/* Dimensiones tomadas del export 1:1 (HOME 2029.jpg): caja 541×86 px en
	   x1035–1576 / y2183–2268. NO se dimensiona por el texto: caja fija,
	   texto centrado (tinta medida 444×43, centrada en la caja). */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 41.6rem;                /* 541px (root 13px) */
	height: 6.6rem;                /* 86px */
	border: 3px solid var(--mx-yellow);
	border-radius: var(--mx-radius);
	background-color: var(--mx-yellow);
	color: var(--mx-green);
	text-align: center;
	text-decoration: none;
	font-family: var(--mx-font-display);
	font-weight: 700;
	/* Tinta de 43px de alto medida en el export ⇒ Munich ~44px. */
	font-size: 3.4rem;             /* ~44px */
	line-height: 1;
	/* Tracking bajo: la etiqueta nueva es ~1.6× más larga que la anterior y
	   debe caber en la MISMA caja del diseño sin ensancharla. */
	letter-spacing: 0.01em;
	text-transform: uppercase;
	transition: background-color var(--mx-dur) var(--mx-ease),
	            color var(--mx-dur) var(--mx-ease);
}
.mexav-public.mexav-home .mexav-home-agenda__badge:hover,
.mexav-public.mexav-home .mexav-home-agenda__badge:focus-visible {
	background-color: var(--mx-yellow-bright);
	color: var(--mx-green);
}

/* Nota "*Programa sujeto a cambios" — blanca, centrada bajo el pill. */
.mexav-public.mexav-home .mexav-home-agenda__note {
	margin: 0;
	color: var(--mx-white);
	font-family: var(--mx-font-mono);
	font-size: 0.9rem;
	letter-spacing: 0.02em;
}

/* =======================================================================
   PARTICIPANTES (sección roja del Home)
   -----------------------------------------------------------------------
   Sustituye a la antigua sección UBICACIÓN, retirada del Home en el
   rediseño 2026 (la sede sigue documentada en /faqs). Aquí sólo vive el
   ENVOLTORIO de la sección: fondo, márgenes y la caja del marco. La tarjeta,
   el carrusel, el marco punteado y los controles son COMPARTIDOS con la
   página /participantes y viven en css/mexav-participantes.css, que esta
   vista también carga (ver header.tpl).
   ======================================================================= */
.mexav-home .mexav-home-participantes {
	position: relative;
	/* Rojo del arte (#ef4123). Plano: la sección no lleva decorativos de
	   capa; el único gráfico es el marco punteado, que es CSS. */
	background-color: var(--mx-accent);
	padding-block: clamp(2.5rem, 3.8vw, 3.5rem) clamp(2.5rem, 4vw, 4rem);
	/* El padding lateral vive en la SECCIÓN (no en __inner) para que el marco
	   punteado y sus escuadras azules —que sobresalen 4px— nunca lleguen al
	   borde del viewport y provoquen scroll horizontal. */
	padding-inline: clamp(1rem, 5.7vw, 109px);
}
.mexav-home .mexav-home-participantes__inner {
	position: relative;
	max-width: 1723px;                 /* ancho del marco en el export 1920 */
	margin-inline: auto;
}
/* La pista y los controles, DENTRO del marco: mismo respiro que en el arte
   (94px entre el borde del marco y la primera tarjeta a 1920). */
.mexav-home .mexav-participantes-carrusel {
	padding-inline: clamp(0.5rem, 4.9vw, 94px);
	padding-bottom: clamp(1.25rem, 2.5vw, 48px);
}

/* -----------------------------------------------------------------------
   Utilidad de colapso animado (compartida por acordeones/disclosures).
   El alto se controla por max-height (medido con scrollHeight en JS).
   ----------------------------------------------------------------------- */
.mexav-home .mexav-collapse {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transform: translateY(-6px);
	visibility: hidden;
	transition: max-height 0.3s var(--mx-ease),
	            opacity 0.3s var(--mx-ease),
	            transform 0.3s var(--mx-ease),
	            visibility 0s linear 0.3s;
}
.mexav-home .mexav-collapse.is-open {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
	transition: max-height 0.3s var(--mx-ease),
	            opacity 0.3s var(--mx-ease),
	            transform 0.3s var(--mx-ease),
	            visibility 0s;
}
@media (prefers-reduced-motion: reduce) {
	.mexav-home .mexav-collapse,
	.mexav-home .mexav-collapse.is-open { transition: none; }
}

/* =======================================================================
   BLOQUE 7 — FAQ (Home, sección oscura)
   -----------------------------------------------------------------------
   Fondo #191313 + franjas del asset OFICIAL (faq-back-desktop = FAQS.png).
   Título "FAQ's" a la izquierda; acordeón de 3 preguntas + "VER MÁS FAQ's"
   a la derecha. Acordeón accesible (button + aria-expanded) con la misma
   animación sobria del "Ver más". Solo reglas DESKTOP; Mobile en B10.
   ======================================================================= */
.mexav-home .mexav-home-faq {
	position: relative;
	background-color: var(--mx-black);
	background-image: url("../img/mexav/faq-back-desktop.png");
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 100% auto;
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
/* Barras rojas: capa DECORATIVA de la propia sección (antes vivía en el
   envoltorio que compartía con Ubicación; al retirarse esa sección, la capa
   pasó a colgar del FAQ). Va en `position:absolute` a propósito: dentro del
   flujo, la imagen —736px de alto nativo— empujaba el contenido del FAQ
   cientos de píxeles hacia abajo. Asset PURO (franjas sobre transparencia
   real): los huecos dejan ver el negro de la sección. Tamaño nativo, sin
   repetir ni deformar; detrás del contenido (el __inner va en z2). */
.mexav-home .mexav-home-faq__bars-rojas {
	position: absolute;
	/* Nace DENTRO del FAQ (ya no asoma sobre la sección anterior): en el arte
	   2026 las franjas empiezan ~47px por debajo del borde superior negro. */
	top: clamp(24px, 3vw, 48px);
	left: 0;
	height: auto;                  /* conserva el aspect nativo (sin deformar) */
	z-index: 1;                    /* sobre el fondo; el contenido va encima */
	pointer-events: none;
}

.mexav-home .mexav-home-faq__inner {
	position: relative;
	z-index: 2;                        /* contenido de FAQ POR ENCIMA de la capa
	                                      de barras rojas */
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: clamp(1.5rem, 4vw, 3rem);
	display: flex;
	align-items: flex-start;
	gap: clamp(2rem, 5vw, 5rem);
}
.mexav-public.mexav-home .mexav-home-faq__title {
	flex: 0 0 auto;
	margin: 0;
	color: var(--mx-white) !important;
	font-family: var(--mx-font-display);
	font-weight: 700;
	font-size: 6.8rem;                 /* root 13px → ~88px */
	line-height: 1.0;
	letter-spacing: 0.01em;
}
.mexav-home .mexav-home-faq__content {
	flex: 1 1 auto;
	min-width: 0;
}

/* Acordeón. */
.mexav-home .mexav-home-faq__item {
	border-bottom: 1px solid var(--mx-on-dark-veil);
}
.mexav-public.mexav-home .mexav-home-faq__q {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: transparent;
	border: 0;
	padding: 1.7rem 0;
	color: var(--mx-white);
	text-align: left;
	cursor: pointer;
	font-family: var(--mx-font-display);
	font-weight: 700;
	font-size: 1.9rem;
	line-height: 1.25;
}
.mexav-home .mexav-home-faq__icon {
	flex: 0 0 auto;
	color: var(--mx-red);
	font-size: 1.9rem;
	line-height: 1;
}
.mexav-home .mexav-home-faq__icon::before { content: "+"; }
.mexav-home .mexav-home-faq__q[aria-expanded="true"] .mexav-home-faq__icon::before { content: "\2212"; } /* − */

.mexav-public.mexav-home .mexav-home-faq__a-text {
	margin: 0;
	padding: 0 0 1.1rem;
	color: rgba(255, 255, 255, 0.82);
	font-family: var(--mx-font-mono);
	font-size: 1.05rem;
	line-height: 1.55;
}

/* "VER MÁS FAQ's" (estático). */
.mexav-public.mexav-home .mexav-home-faq__more {
	display: inline-block;
	margin-top: 2.2rem;
	background: var(--mx-red);
	color: var(--mx-white);
	font-family: var(--mx-font-display);
	font-weight: 700;
	font-size: 1.3rem;
	letter-spacing: 0.05em;
	padding: 0.8em 2.6em;
	border-radius: var(--mx-radius);
	/* Ahora es un <a> real a /faqs: se anula el subrayado para que se vea
	   exactamente igual que cuando era <span>. */
	text-decoration: none;
}
.mexav-public.mexav-home .mexav-home-faq__more:hover,
.mexav-public.mexav-home .mexav-home-faq__more:focus-visible {
	color: var(--mx-white);
	text-decoration: none;
}

/* Enlaces dentro de las respuestas del acordeón (Maps y Registro).
   Naranja MEXAV, el mismo que usan los enlaces de /faqs. Solo color: tamaño,
   peso, subrayado y espaciados se conservan. El selector cuelga de
   `.mexav-home-faq`, así que no alcanza a los enlaces de /faqs. */
.mexav-public.mexav-home .mexav-home-faq__a-link {
	color: #ec5e2a;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* El FOOTER se movió a css/mexav-site.css como `.mexav-site-footer`: Home y
   Registro comparten un único markup y un único CSS. Aquí no queda nada de
   footer (ni Desktop, ni las capas Tablet y Mobile). */

/* =======================================================================
   B9 — RESPONSIVE (jerarquía por fidelidad a Figma)
   -----------------------------------------------------------------------
   · 1920–1440  Desktop PLENO: composición Figma intacta (decorativos,
     tipografías, columnas, proporciones). SOLO se ajustan márgenes/reservas
     del contenido para protegerlo de las capas. Sin reducir decorativos.
   · 1439–1280  Desktop compacto: primeros ajustes (decorativos más chicos).
   · 1279–1024  Tablet horizontal: Agenda apilada (≤1152, medido) y
     decorativos conservados pero reducidos (apoyo).
   · ≤960       Tablet vertical: se ocultan decorativos.
   · ≤768       Previo a Mobile (B10 usará el Figma Mobile).
   Sin JS, sin duplicar markup.

   RESERVA de carril (global, con calc): ~0 en 1920 (Figma intacto) y CRECE
   al reducir el ancho, para que el texto nunca toque las barras. Es solo
   margen del contenido; no altera los decorativos. (En 1920 el clamp cae a
   su mínimo = padding base.)
   ======================================================================= */
.mexav-home .mexav-home-about__inner { padding-right: clamp(1.5rem, calc(744px - 40vw), 14rem); }
.mexav-home .mexav-home-faq__inner   { padding-left:  clamp(1.5rem, calc(664px - 41.4vw), 12rem); }

/* Mínimos de las capas (no encogerse de más). En 1440–1920 vale la escala
   proporcional (10% / 8.6%) fiel a Figma. */
.mexav-home .mexav-home-flow__bars-amarillas { width: clamp(130px, 10%, 192px); }
.mexav-home .mexav-home-faq__bars-rojas { width: clamp(110px, 8.6%, 165px); }

/* =======================================================================
   B9.0 — SISTEMA DESKTOP/LAPTOP FLUIDO (1920 → 1200)
   -----------------------------------------------------------------------
   PROBLEMA que resuelve: las secciones se maquetaban con `max-width` FIJO en
   px + `margin-inline:auto` y tipografías FIJAS en rem. Como consecuencia, al
   bajar de 1920 los márgenes laterales se comían solos (a 1512 quedaban en
   36px en vez de ~189) mientras el texto seguía a 26px, así que la columna
   pasaba de ocupar el 75% del viewport al 95%, el texto reflowaba a más
   líneas y el bloque azul CRECÍA (642 → 735) en vez de encoger.
   SOLUCIÓN: en este rango TODO se expresa como proporción del viewport
   (coeficiente = valor_1920 / 19.2), con `clamp()` cuyo MÁXIMO es el valor
   exacto del Figma a 1920 (así >1920 nunca lo supera) y cuyo mínimo es el
   valor a 1200. Al escalar fuente y columna con el mismo factor, los CORTES
   DE LÍNEA son idénticos en todo el rango y la composición no se toca.
   Nada de esto aplica por debajo de 1200: Tablet y Mobile quedan intactos.
   ======================================================================= */
@media (min-width: 1024px) {
	/* --- Intro (bloque azul) --- */
	.mexav-home .mexav-home-about { padding-block: clamp(28.4px, 2.37vw, 45.5px); }
	.mexav-home .mexav-home-about__inner {
		max-width: min(75vw, 1440px);
		/* El carril de las barras ya NO se reserva con un padding-right que
		   crece: sale solo de la geometría. Margen lateral 12.5vw y barras
		   10vw ⇒ siempre quedan 2.5vw (48px @1920) de aire entre ambos. */
		padding-inline: clamp(12.2px, 1.016vw, 19.5px);
	}
	/* Cuerpo: proporcional al viewport. Probé una rampa más plana (26→21px) y
	   rompía los cortes de línea (3/4/5 en vez de 3/3/4) y el alto del bloque
	   volvía a 645 en 1512. Escalando fuente y columna con el MISMO factor los
	   cortes son idénticos en todo el rango, que es la fidelidad que se pide. */
	.mexav-public.mexav-home .mexav-home-about__p { font-size: clamp(16.25px, 1.354vw, 26px); }

	/* --- Agenda --- */
	.mexav-home .mexav-home-agenda__inner {
		max-width: min(62.5vw, 1200px);
		padding-inline: clamp(12.2px, 1.016vw, 19.5px);
		gap: clamp(56.9px, 4.74vw, 91px);
	}
	.mexav-public.mexav-home .mexav-home-agenda__title { font-size: clamp(59.3px, 4.943vw, 94.9px); }
	.mexav-public.mexav-home .mexav-home-agenda__badge {
		width: clamp(338px, 28.17vw, 541px);
		height: clamp(53.6px, 4.469vw, 85.8px);
		font-size: clamp(27.5px, 2.29vw, 44px);
	}
	/* Mínimo 10px, no el proporcional (7.3px a 1200): por debajo de ~1640 la
	   nota dejaba de ser legible. El valor a 1920 sigue siendo el del Figma. */
	.mexav-public.mexav-home .mexav-home-agenda__note { font-size: clamp(10px, 0.609vw, 11.7px); }

	/* --- FAQ --- */
	.mexav-home .mexav-home-faq { padding-block: clamp(46.6px, 3.724vw, 71.5px); }
	.mexav-home .mexav-home-faq__inner {
		max-width: min(66.67vw, 1280px);
		padding-left: clamp(12.2px, 1.016vw, 19.5px);
		padding-right: clamp(24.4px, 2.031vw, 39px);
		gap: clamp(40.6px, 3.385vw, 65px);
	}
	.mexav-public.mexav-home .mexav-home-faq__title { font-size: clamp(55.3px, 4.604vw, 88.4px); }
	.mexav-public.mexav-home .mexav-home-faq__q { font-size: clamp(15.4px, 1.286vw, 24.7px); padding-block: clamp(13.8px, 1.151vw, 22.1px); }
	.mexav-public.mexav-home .mexav-home-faq__a-text { font-size: clamp(8.5px, 0.711vw, 13.65px); }
	.mexav-public.mexav-home .mexav-home-faq__more { font-size: clamp(10.6px, 0.88vw, 16.9px); }
}

/* ---- ≤1199 Desktop compacto: decorativos reducidos (más discretos).
        Antes empezaba en 1280, es decir DENTRO del rango Desktop; se movió
        a 1199 para que nada estructural ocurra por encima de 1200. ---- */
@media (max-width: 1199px) {
	.mexav-home .mexav-home-flow__bars-amarillas { width: clamp(100px, 8%, 150px); }
	.mexav-home .mexav-home-faq__bars-rojas { width: clamp(88px, 7%, 130px); }
}

/* ---- 1199–1024 Agenda: sigue en UNA fila. Lo que la apilaba antes no era
        falta de espacio en la sección sino el cap `max-width:62.5vw` del
        propio contenedor: la fila mide 697px y ese cap solo daba 696 a 1152
        y 616 a 1024. Como el contenido va centrado, ensanchar el contenedor
        no desplaza nada; solo deja de estrangular la fila. ---- */
@media (max-width: 1199px) and (min-width: 1024px) {
	.mexav-home .mexav-home-agenda__inner { max-width: min(80vw, 1200px); }
	.mexav-public.mexav-home .mexav-home-agenda__title { white-space: nowrap; }
}

/* ---- ≤1023 Agenda ya NO cabe en una fila (medida real: necesita 697px y a
        1023 el área útil cae por debajo). Se apila CENTRADA, con alto natural
        por padding en vez del aspect-ratio Desktop. ---- */
@media (max-width: 1023px) {
	.mexav-home .mexav-home-agenda { aspect-ratio: auto; padding-block: clamp(3rem, 6vw, 5rem); }
	.mexav-home .mexav-home-agenda__inner { flex-direction: column; align-items: center; text-align: center; gap: 2rem; }
	.mexav-public.mexav-home .mexav-home-agenda__title { white-space: nowrap; }
}

/* ---- ≤1023 Tablet: decorativos más reducidos (apoyo, se conservan);
        reservas acordes a barras chicas. Antes arrancaba en 1024, que según
        la jerarquía nueva pertenece al rango Desktop. ---- */
@media (max-width: 1023px) {
	.mexav-home .mexav-home-flow__bars-amarillas { width: clamp(78px, 7%, 110px); top: 30%; }
	.mexav-home .mexav-home-faq__bars-rojas { width: clamp(70px, 6.2%, 100px); }
	.mexav-home .mexav-home-about__inner { padding-right: clamp(6rem, 12vw, 9rem); }
	.mexav-home .mexav-home-faq__inner   { padding-left:  clamp(5rem, 11vw, 8rem); }

}

/* ---- 1023–769 Agenda apilada: continúa el tamaño con el que cierra 1024
        (59.3 / 338×54 / 10px) en vez de saltar a los valores de 1920
        (70.2 / 541×86), que daban un escalón del 60% en el botón al cruzar
        el breakpoint. Acotado por arriba Y por abajo: ≤768 no se toca. ---- */
@media (max-width: 1023px) and (min-width: 769px) {
	.mexav-public.mexav-home .mexav-home-agenda__title { font-size: 59.3px; }
	.mexav-public.mexav-home .mexav-home-agenda__badge { width: 338px; height: 54px; font-size: 27.5px; }
	.mexav-public.mexav-home .mexav-home-agenda__note { font-size: 10px; }
}

/* ---- ≤960 Tablet vertical: ocultar decorativos y liberar reservas ---- */
@media (max-width: 960px) {
	.mexav-home .mexav-home-flow__bars-amarillas,
	.mexav-home .mexav-home-faq__bars-rojas { display: none; }
	.mexav-home .mexav-home-about__inner { padding-right: clamp(1.5rem, 4vw, 3rem); }
	.mexav-home .mexav-home-faq__inner   { padding-left:  clamp(1.5rem, 4vw, 3rem); }

}

/* ---- ≤768 (previo a Mobile B10): tipografías/jerarquía, FAQ apilado ---- */
@media (max-width: 768px) {
	.mexav-public.mexav-home .mexav-home-about__p { font-size: 1.7rem; line-height: 1.7; }
	.mexav-public.mexav-home .mexav-home-agenda__title { font-size: 4.4rem; white-space: normal; }
	.mexav-public.mexav-home .mexav-home-agenda__badge {
		width: 100%; max-width: 440px; height: auto;
		padding-block: 1rem; font-size: 2.8rem;
	}
	.mexav-home .mexav-home-faq__inner { flex-direction: column; gap: 1.5rem; }
	.mexav-public.mexav-home .mexav-home-faq__title { font-size: 5rem; }

}

/* =======================================================================
   B11 — TABLET (1023 → 601). Capa PROPIA: ni Desktop apretado ni Mobile
   estirado. Diagnóstico que la motiva: en este rango la columna del Intro
   quedaba al 100% del viewport con margen 0 (el `max-width:1440px` +
   `margin-inline:auto` colapsa cuando el viewport es menor, y lo único que
   recortaba era el `padding-right` de reserva de las barras, que a ≤960
   se reduce porque los decorativos se ocultan), y el carrusel conservaba la
   proporción Desktop (2.68), quedando en una franja de 261px de alto a 700.
   El HERO se deja intacto a propósito: su overlay está anclado en % a las
   bandas de color del vídeo, así que tocar su proporción o clampear su
   tipografía sacaría fecha/sede/CTA de su banda.
   Se colocan justo antes de Mobile para ganar a las reglas heredadas; ≤600
   no se toca (los rangos no se solapan).
   ======================================================================= */

/* ---- 1023–769 Tablet horizontal/vertical ---- */
@media (max-width: 1023px) and (min-width: 769px) {
	/* Carrusel: proporción propia 2/1, entre el 2.68 Desktop y el 1.45 Mobile. */
	.mexav-home .mexav-home-carousel__viewport { aspect-ratio: 2 / 1; }
	.mexav-home .mexav-home-intro { --mx-frame-inset: 20px; --mx-frame-dip: 26px; }
	.mexav-home .mexav-home-intro__frame {
		height: calc(100cqw / 2 - var(--mx-frame-inset) + var(--mx-frame-dip));
	}

	/* Intro: medida de lectura acotada y centrada (≈60-68 caracteres). */
	.mexav-home .mexav-home-about { padding-block: clamp(36px, 4.5vw, 46px); }
	.mexav-home .mexav-home-about__inner {
		max-width: min(720px, 100% - 2 * clamp(32px, 5vw, 56px));
		margin-inline: auto;
		padding-inline: 0;
	}
	.mexav-public.mexav-home .mexav-home-about__p {
		font-size: clamp(17px, 1.9vw, 19.5px);
		line-height: 1.7;
		margin-bottom: 1.6em;
	}

	/* Agenda: ya viene apilada y centrada desde ≤1023; solo alto natural. */
	.mexav-home .mexav-home-agenda { padding-block: clamp(48px, 6vw, 64px); }
	.mexav-public.mexav-home .mexav-home-agenda__title { font-size: clamp(48px, 5.8vw, 59.3px); }

	/* FAQ: título sobre las preguntas, separadores intactos. */
	.mexav-home .mexav-home-faq__inner {
		flex-direction: column; max-width: 720px; margin-inline: auto;
		padding-inline: clamp(32px, 5vw, 56px); gap: clamp(20px, 2.5vw, 28px);
	}
	.mexav-public.mexav-home .mexav-home-faq__title { font-size: clamp(48px, 5.6vw, 58px); }
	.mexav-public.mexav-home .mexav-home-faq__q { font-size: clamp(16px, 1.85vw, 19px); }

}

/* ---- 768–601 Tablet angosta: transición controlada hacia Mobile ---- */
@media (max-width: 768px) and (min-width: 601px) {
	.mexav-home .mexav-home-carousel__viewport { aspect-ratio: 5 / 3; }
	.mexav-home .mexav-home-intro { --mx-frame-inset: 16px; --mx-frame-dip: 22px; }
	.mexav-home .mexav-home-intro__frame {
		height: calc(100cqw * 3 / 5 - var(--mx-frame-inset) + var(--mx-frame-dip));
	}

	.mexav-home .mexav-home-about { padding-block: clamp(30px, 4.4vw, 36px); }
	.mexav-home .mexav-home-about__inner {
		max-width: min(600px, 100% - 2 * clamp(24px, 4.5vw, 34px));
		margin-inline: auto;
		padding-inline: 0;
	}
	.mexav-public.mexav-home .mexav-home-about__p {
		font-size: clamp(15.5px, 2.2vw, 17px);
		line-height: 1.65;
		margin-bottom: 1.55em;
	}

	.mexav-home .mexav-home-agenda { padding-block: clamp(40px, 5.6vw, 48px); }
	.mexav-public.mexav-home .mexav-home-agenda__title { font-size: clamp(40px, 6vw, 47px); }
	.mexav-public.mexav-home .mexav-home-agenda__badge {
		width: min(360px, 100%); height: auto; padding-block: 0.55em; font-size: clamp(22px, 3.1vw, 25px);
	}
	.mexav-public.mexav-home .mexav-home-agenda__note { font-size: clamp(10px, 1.4vw, 11px); }

	.mexav-home .mexav-home-faq__inner {
		flex-direction: column; max-width: 600px; margin-inline: auto;
		padding-inline: clamp(24px, 4.5vw, 34px); gap: clamp(16px, 2.2vw, 22px);
	}
	.mexav-public.mexav-home .mexav-home-faq__title { font-size: clamp(40px, 5.8vw, 46px); }
	.mexav-public.mexav-home .mexav-home-faq__q { font-size: clamp(14.5px, 2.05vw, 16px); }

}

/* =======================================================================
   B10 — MOBILE (≤600, base: Figma Mobile 428px)
   -----------------------------------------------------------------------
   Reutiliza TODO el HTML de home.tpl. Ajusta orden/alineación/tipografía/
   márgenes para el diseño Mobile (no es un Desktop reducido). Los
   decorativos Mobile (assets propios) y el Hero Mobile se implementan como
   pasos siguientes. Desktop/Tablet (≥601) NO se tocan.
   ======================================================================= */
@media (max-width: 600px) {
	/* --- Hero: video oficial Mobile (428×720 con logo+timeline integrados).
	   La caja toma la proporción del video; el poster Mobile es el background
	   del __media. El overlay (fecha/sede/CTA) va CENTRADO en la franja verde
	   central del video; el timeline lo aporta el propio video. --- */
	.mexav-home .mexav-hero__media {
		aspect-ratio: 428 / 720;
		background-image: url("../img/mexav/hero-home-mobile.jpg");
	}
	/* Swap de variante: solo el vídeo Mobile (428×720) queda renderizado. */
	.mexav-home .mexav-hero__video--desktop { display: none; }
	.mexav-home .mexav-hero__video--mobile  { display: block; }
	.mexav-home .mexav-hero__content {
		left: 50%;
		right: auto;
		top: 40%;                       /* franja verde, bajo "FORO…" */
		transform: translateX(-50%);
		width: 92%;
		align-items: center;
		text-align: center;
	}
	/* Tamaños medidos contra el export 428 1:1 (mayor presencia que el 1er pase). */
	.mexav-public.mexav-home .mexav-hero__date { font-size: 3.2rem; line-height: 1.05; }
	.mexav-public.mexav-home .mexav-hero__venue { font-size: 1.95rem; margin-top: 1.3rem; }
	.mexav-public.mexav-home .mexav-hero__cta { font-size: 1.75rem; margin-top: 1.7rem; padding: 0.72em 2.6em; }

	/* --- Carrusel: encuadre Mobile del Figma (~1.45:1, no el 4:1 Desktop).
	   Reserva alto con aspect-ratio (sin saltos). Mismas fotos, mismo Bootstrap
	   Carousel, sin autoplay. El marco punteado se RECALIBRA al aspecto Mobile
	   (sigue siendo composición superpuesta que cruza a la sección azul). --- */
	.mexav-home .mexav-home-carousel__viewport { aspect-ratio: 29 / 20; }
	.mexav-home .mexav-home-carousel__img { object-position: center 50%; }
	.mexav-home .mexav-home-intro { --mx-frame-inset: 14px; --mx-frame-dip: 20px; }
	.mexav-home .mexav-home-intro__frame {
		height: calc(100cqw * 20 / 29 - var(--mx-frame-inset) + var(--mx-frame-dip));
	}
	/* Flechas más cerca del borde (visibles y clicables, sin tapar al sujeto). */
	.mexav-home .mexav-home-carousel__control--prev { left: 0.8rem; }
	.mexav-home .mexav-home-carousel__control--next { right: 0.8rem; }

	/* --- Intro: bloque azul del Figma Mobile. Barras amarillas OFICIALES
	   (asset propio extraído con alpha real de HOME MOVIL/BACKS/TEXTOS.png)
	   re-mostradas ≤600 (la regla ≤960 las ocultó). Capa ÚNICA en el
	   envoltorio Intro→Agenda (misma que Desktop, con asset y posición
	   Mobile). El texto reserva el carril derecho para no caer bajo ellas. --- */
	/* Barras = pieza gráfica CASI FIJA: resolución NATIVA (41px, el asset es
	   41×343), sin %/vw/estiramiento → nítidas y del tamaño del Figma.
	   Posición absoluta con top/right en px, anclada al envoltorio. */
	.mexav-home .mexav-home-flow__bars-amarillas {
		display: block;
		content: url("../img/mexav/barras-amarillas-mobile.png");
		/* Anclaje POR ESTRUCTURA, no número mágico: el envoltorio empieza en el
		   carrusel, cuyo alto es 100vw ÷ (29/20); las barras nacen 161px dentro
		   del azul (medido en el export oficial @3x). Se autocorrige a cualquier
		   ancho, por eso ya no hace falta el parche de ≤405px. */
		top: calc(100vw * 20 / 29 + 161px);
		right: 0;
		width: 41px;                     /* NATIVO 1:1 (nítido, sin escalar) */
		height: auto;                    /* 343px nativo */
	}
	/* Bloque azul compacto como el Figma: menos padding vertical y columna de
	   texto de ancho FIJO (alto del bloque estable → la pieza amarilla se
	   ancla igual) con aire a la izquierda y separación cómoda de las barras. */
	/* Aire superior amplio: separa el primer párrafo de la línea punteada
	   (~30px bajo el marco, medido contra el export 428). */
	/* Medidas en px (NO rem): en Mobile Metronic deja 1rem = 12px, así que el
	   rem no sirve para clavar valores del diseño. Todo medido contra el export
	   oficial @3x: bloque de 440px, texto en 20 líneas (5/7/8). */
	.mexav-home .mexav-home-about { padding-top: 44px; padding-bottom: 22px; }
	.mexav-home .mexav-home-about__inner {
		/* 324px es el ancho del diseño (428). Por debajo de 428 la columna cede
		   para NO meterse bajo las barras: 54 (margen izq) + 41 (barras) + 9
		   (holgura) = 104. A 428 el min() da 324 exacto, así que el diseño
		   queda intacto y en pantallas menores el texto reflowa. */
		width: min(324px, calc(100vw - 104px));
		max-width: 100%;
		margin-left: 54px;
		margin-right: auto;
		padding-inline: 0;
	}
	.mexav-public.mexav-home .mexav-home-about__p {
		font-size: 13px;
		line-height: 17px;
		margin-bottom: 17px;             /* exactamente una línea, como el Figma */
		/* El 0.01em de la regla base adelanta los cortes de línea (22 líneas en
		   vez de 20). El avance medido en el export es 7.833px = 13.06 × 0.6,
		   es decir SIN espaciado extra. */
		letter-spacing: 0;
	}

	/* --- Agenda: composición CENTRADA (título, CTA y nota) como el Figma.
	   Bloque de 210px: 50 + título 38 + 22.7 + botón 32 + 14.3 + nota 13 + 39.
	   Todo en px por lo mismo que el Intro (1rem = 12px en Mobile). --- */
	.mexav-home .mexav-home-agenda { padding-top: 50px; padding-bottom: 39px; }
	.mexav-home .mexav-home-agenda__inner { align-items: center; text-align: center; gap: 22.7px; padding-inline: 1.4rem; }
	/* Título "AGENDA 2026" en UNA línea (altura de mayúscula 29px en el export). */
	.mexav-public.mexav-home .mexav-home-agenda__title {
		font-size: 38px;
		line-height: 1;
		letter-spacing: 0;
		text-align: center;
		white-space: nowrap;           /* "AGENDA 2026" en UNA sola línea */
		max-width: none;
		margin-inline: auto;
	}
	.mexav-home .mexav-home-agenda__cta { align-items: center; gap: 14.3px; }
	/* CTA CONSULTA PROGRAMACIÓN: se conserva la caja FIJA medida en el export
	   (199×32) pero relleno sólido y texto verde, como en el diseño nuevo. La
	   etiqueta es más larga, así que la caja crece lo justo para alojarla. */
	.mexav-public.mexav-home .mexav-home-agenda__badge {
		width: 240px;
		max-width: 100%;
		height: 36px;
		padding: 0 10px;
		border-width: 2px;
		border-radius: 10px;
		font-size: 17.3px;
		letter-spacing: 0.01em;
	}
	.mexav-public.mexav-home .mexav-home-agenda__note { font-size: 10px; line-height: 13px; }

	/* Barras rojas Mobile: asset propio extraído con alfa REAL del oficial.
	   39×322 nativo, sin escalar. Ahora nacen dentro del propio FAQ (antes
	   bajaban desde la sección anterior). Se re-muestran aquí porque la regla
	   ≤960 las oculta. */
	.mexav-home .mexav-home-faq__bars-rojas {
		display: none;
		content: url("../img/mexav/barras-rojas-mobile.png");
		top: 40px;
		left: 0;
		width: 39px;                   /* NATIVO 1:1 (nítido, sin escalar) */
		height: auto;                  /* 322px nativo */
	}

	/* --- FAQ: sección de 320px medida en FAQ.png @2x (validada contra HOME @3x).
	   El diseño Mobile NO lleva franjas: fondo plano + las barras rojas de la
	   izquierda. Por eso se anula el background-image
	   horneado del Desktop. Tampoco lleva líneas separadoras entre preguntas. */
	.mexav-home .mexav-home-faq {
		background-image: none;
		padding-top: 47px;
		padding-bottom: 40px;
	}
	.mexav-home .mexav-home-faq__inner { padding-inline: 31px 30px; gap: 0; }
	.mexav-public.mexav-home .mexav-home-faq__title {
		margin: 0 0 9px 25px;          /* el título va 25px más adentro que las preguntas */
		font-size: 49px;
		line-height: 1;
		color: #f9fafb !important;
	}
	/* Sin separadores: el diseño Mobile no los tiene. */
	.mexav-home .mexav-home-faq__item { border-bottom: 0; }
	/* Preguntas: 3 filas de 37px, en DM Sans (self-hosted, ver mexav-public.css).
	   Peso y tamaño calibrados contra el export por mínimos cuadrados sobre las
	   tres preguntas: 700 a 13.2px deja <0.3% de error en las tres. La razón
	   Q3/Q1 del export (1.1923) coincide con la de DM Sans 700 (1.1934), que es
	   lo que confirma que ésta es la fuente del diseño. */
	.mexav-public.mexav-home .mexav-home-faq__q {
		padding: 9.5px 0;
		gap: 12px;
		font-family: "DM Sans", system-ui, sans-serif;
		font-size: 13.2px;
		line-height: 18px;
		color: #f9f3e3;
	}
	.mexav-home .mexav-home-faq__icon { font-size: 13px; color: #ef4123; }
	/* "VER MÁS FAQ's": caja 193×37 centrada. */
	.mexav-public.mexav-home .mexav-home-faq__more {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 193px;
		height: 37px;
		padding: 0;
		margin: 27px auto 0;
		border-radius: 2px;
		font-size: 21.5px;
		line-height: 1;
		background: #ef4123;           /* rojo LOCAL Mobile */
	}

}
