/* ==========================================================================
   Alianyi Palmar: estilos del sitio
   Fuente de verdad: Figma "Alianyi-Palmar-Fitness-Coach" → página DISEÑO FINAL.
   Breakpoints = los de Elementor: tablet ≤ 1024px, mobile ≤ 767px.

   Índice
   1. Tokens y base           6. Inicio
   2. Tipografía              7. Asesoría
   3. Botones y enlaces       8. Planes
   4. Header                  9. Blog y artículo
   5. Hero (todas)           10. Contacto, CTA, FAQs, footer, páginas simples
   ========================================================================== */

/* Poppins alojada en el tema (sin pedir nada a Google): carga más rápida y sin saltos de texto. */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-500.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-600.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Respaldo con las medidas de Poppins: mientras carga, el texto ocupa el mismo espacio (evita CLS). */
@font-face { font-family: "Poppins Fallback"; src: local("Arial"); ascent-override: 92.33%; descent-override: 30.78%; line-gap-override: 8.79%; size-adjust: 113.73%; }

/* 1. Tokens y base ------------------------------------------------------- */
:root {
	--ap-red: #9f1722;          /* COLOR/Primario */
	--ap-red-bright: #df2320;
	--ap-bg: #131314;           /* COLOR/Secundario: fondo general */
	--ap-bg-2: #101010;
	--ap-black: #000;           /* COLOR/Terciario */
	--ap-light: #f4f4f4;        /* COLOR/Inverse: texto */
	--ap-dark-text: #131314;    /* Texto sobre tarjetas claras */
	--ap-error: #ff6b75;
	--ap-radius: 12px;
	--ap-pad-x: 80px;           /* margen lateral de las secciones */
	--ap-pad-y: 80px;
	--ap-max: 1440px;
	--ap-font: "Poppins", "Poppins Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ap-red-hover: #b81c29;

	/* ===================== MOVIMIENTO: panel de control =====================
	   Todas las animaciones y transiciones del sitio salen de aquí (CSS y main.js).
	   Para hacer TODO más lento o más rápido basta con cambiar --ap-speed:
	   1 = normal · 1.3 = 30% más lento · 0.8 = 20% más rápido. */
	--ap-speed: 1;

	/* Curvas. Son suaves de principio a fin; las "expo" hacen casi todo el
	   movimiento al inicio y por eso se perciben rápidas aunque duren mucho. */
	--ap-ease: cubic-bezier(.4, 0, .2, 1);            /* hover y cambios de estado */
	--ap-ease-out: cubic-bezier(.25, .8, .25, 1);     /* elementos que entran */
	--ap-ease-soft: cubic-bezier(.45, .05, .2, 1);    /* entradas al hacer scroll: arranca y aterriza despacio */

	/* Duraciones de interacción (hover, menú, botones, FAQ). */
	--ap-t-fast: calc(.4s * var(--ap-speed));
	--ap-t: calc(.6s * var(--ap-speed));
	--ap-t-slow: calc(1s * var(--ap-speed));

	/* Entrada de bloques al hacer scroll. */
	--ap-reveal-dur: calc(1.4s * var(--ap-speed));     /* desplazamiento */
	--ap-reveal-fade: calc(1.2s * var(--ap-speed));    /* aparición (opacidad) */
	--ap-reveal-stagger: calc(.2s * var(--ap-speed));  /* pausa entre elementos de un mismo grupo */
	--ap-reveal-distance: 64px;                        /* cuánto suben al entrar */
	--ap-reveal-scale: .95;                            /* zoom inicial de las fotos */
	--ap-reveal-blur: 6px;                             /* desenfoque inicial (0 = sin desenfoque) */

	/* Cambios de contenido: pestañas de Planes, carrusel de testimonios, ventana de video. */
	--ap-swap-out: calc(.5s * var(--ap-speed));        /* salida de las tarjetas */
	--ap-swap-in: calc(1.1s * var(--ap-speed));        /* entrada de las tarjetas */
	--ap-swap-stagger: calc(.18s * var(--ap-speed));

	/* Contador de cifras del inicio (+5 años, +3 millones, 100%). */
	--ap-count-dur: calc(2.2s * var(--ap-speed));
}

@media (max-width: 1024px) {
	:root { --ap-pad-x: 40px; --ap-pad-y: 64px; }
}
@media (max-width: 767px) {
	:root { --ap-pad-x: 24px; --ap-pad-y: 48px; }
}

html { scroll-behavior: smooth; overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
	margin: 0;
	background: var(--ap-bg);
	color: var(--ap-light);
	font-family: var(--ap-font);
	font-size: 16px;
	line-height: 24px;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
body.ap-no-scroll { overflow: hidden; }

img { max-width: 100%; height: auto; }
a { color: inherit; }
/* Hello Elementor pinta los enlaces de azul oscuro (#336) al pasar el mouse y los botones de rosado (#c36).
   Ningún enlace del sitio debe cambiar a esos colores: cada componente define su propio hover. */
body a:hover, body a:active, body a:focus { color: inherit; }
body button:hover, body button:focus, body [type="button"]:hover, body [type="button"]:focus,
body [type="submit"]:hover, body [type="submit"]:focus { background-color: transparent; }
::selection { background: var(--ap-red); color: var(--ap-light); }
strong, b { font-weight: 700; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; z-index: 1000; top: 8px; left: 8px;
	padding: 8px 16px; background: var(--ap-light); color: var(--ap-dark-text);
}
:focus-visible { outline: 2px solid var(--ap-light); outline-offset: 3px; }

.ap-wrap { width: 100%; max-width: var(--ap-max); margin-inline: auto; }

/* Hello Elementor pinta los <button> con borde y fondo rosado (#c36). Los dejamos neutros. */
.ap-header__toggle, .ap-modal__close, .ap-posts__nav, .ap-posts__dots button {
	border: 0;
	border-radius: 0;
	background-color: transparent;
	color: var(--ap-light);
}
.ap-header__toggle:hover, .ap-header__toggle:focus, .ap-modal__close:hover, .ap-modal__close:focus,
.ap-posts__nav:hover, .ap-posts__nav:focus { background-color: transparent; color: #fff; }
.ap-posts__dots button { border-radius: 50%; }

/* Elementor: quitamos márgenes y espacios por defecto. El espaciado lo define cada sección. */
.ap-site .elementor .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px; --kit-widget-spacing: 0px; }
.ap-site .elementor-widget:not(:last-child) { margin-block-end: 0; }
.ap-site .elementor-widget-image img { display: block; }
.ap-site .elementor-heading-title { color: inherit; font: inherit; line-height: inherit; text-transform: inherit; }
.ap-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ap-site .elementor-widget-text-editor p { margin: 0 0 24px; }
/* Elementor usa ::before/::after de los contenedores para sus capas de fondo (con inset: 0).
   Lo neutralizamos en nuestros contenedores para poder usarlos como decoración. */
.e-con[class*="ap-"]::before, .e-con[class*="ap-"]::after { inset: auto; border-width: 0; }
/* En tablet/mobile Elementor pone flex-wrap: wrap a todos los contenedores (y su CSS carga después).
   Nuestros contenedores no envuelven salvo que la sección lo pida explícitamente (.ap-wrap-ok). */
.ap-site .e-con[class*="ap-"] { flex-wrap: nowrap; }
.ap-site .e-con[class*="ap-"].ap-wrap-ok { flex-wrap: wrap; }

/* 2. Tipografía ---------------------------------------------------------- */
.ap-overline, .ap-h1, .ap-h2, .ap-h3, .ap-h4, .ap-h5 {
	margin: 0;
	font-family: var(--ap-font);
	font-weight: 600;
	text-transform: uppercase;
	color: inherit;
}
.ap-overline { font-size: 24px; line-height: 32px; }
/* Tamaños fluidos: exactos al Figma en 1920px y se reducen suavemente en laptops. */
.ap-h1 { font-size: clamp(44px, calc(2.4vw + 18px), 64px); line-height: 1.125; }
.ap-h2 { font-size: clamp(32px, calc(1.6vw + 17px), 48px); line-height: 1.167; }
.ap-h3 { font-size: 36px; line-height: 44px; }
.ap-h4 { font-size: 28px; line-height: 36px; }
.ap-h5 { font-size: 24px; line-height: 32px; }
.ap-text { margin: 0; font-size: 16px; line-height: 24px; }
.ap-italic { margin: 0; font-style: italic; letter-spacing: .64px; }
.ap-center, .ap-center .elementor-heading-title { text-align: center; }

.ap-accent { color: var(--ap-red); }
/* Texto solo con contorno ("TU CUERPO HOY?") */
.ap-outline, .ap-outline .elementor-heading-title {
	color: transparent;
	-webkit-text-stroke: 1.5px var(--ap-red);
}
/* Barra roja a la izquierda del título principal */
.ap-bar:not(.elementor-element), .ap-site .ap-bar .elementor-heading-title {
	position: relative;
	padding-left: 22px;
}
.ap-bar:not(.elementor-element)::before, .ap-site .ap-bar .elementor-heading-title::before {
	content: "";
	position: absolute;
	left: 0; top: 16px; bottom: 16px;
	width: 6px;
	border-radius: 10px;
	background: var(--ap-red);
}

@media (max-width: 1024px) {
	.ap-h3 { font-size: 32px; line-height: 40px; }
}
@media (max-width: 767px) {
	.ap-overline { font-size: 16px; line-height: 24px; }   /* Text/Mobile/Overline */
	.ap-h1 { font-size: 40px; line-height: 48px; }          /* Heading/Mobile/H1 */
	.ap-h2 { font-size: 32px; line-height: 40px; }          /* Heading/Mobile/H2 */
	.ap-h3 { font-size: 28px; line-height: 36px; }          /* Heading/Mobile/H3 */
	.ap-h4 { font-size: 24px; line-height: 32px; }
	.ap-h5 { font-size: 20px; line-height: 28px; }
	.ap-bar:not(.elementor-element)::before, .ap-site .ap-bar .elementor-heading-title::before { top: 8px; bottom: 8px; }
}

/* 3. Botones y enlaces --------------------------------------------------- */
.ap-btn,
.ap-site .ap-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 24px;
	border: 0;
	border-radius: 100px;
	background: var(--ap-red);
	color: var(--ap-light);
	font-family: var(--ap-font);
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--ap-t) var(--ap-ease), color var(--ap-t) var(--ap-ease), transform var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
}
.ap-btn:hover, .ap-btn:focus-visible,
.ap-site .ap-button .elementor-button:hover,
.ap-site .ap-button .elementor-button:focus-visible {
	background: var(--ap-red-hover);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px -8px rgba(159, 23, 34, .7);
}
.ap-btn:active, .ap-site .ap-button .elementor-button:active { transform: translateY(0); box-shadow: none; transition-duration: calc(.1s * var(--ap-speed)); }
.ap-btn[disabled] { opacity: .6; cursor: progress; transform: none; box-shadow: none; }

.ap-site .ap-button--light .elementor-button { background: var(--ap-light); color: var(--ap-red); }
.ap-site .ap-button--light .elementor-button:hover,
.ap-site .ap-button--light .elementor-button:focus-visible { background: #fff; color: var(--ap-red); box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .45); }
.ap-site .ap-button--block, .ap-site .ap-button--block .elementor-button { width: 100%; }

/* Enlace "LEER MÁS →" */
.ap-site .ap-button--link .elementor-button,
.ap-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	font-size: 24px;
	line-height: 32px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none;
}
.ap-site .ap-button--link .elementor-button:hover,
.ap-site .ap-button--link .elementor-button:focus-visible { background: none; color: inherit; transform: none; box-shadow: none; }
.ap-site .ap-button--link .elementor-button-text::after { transition: transform var(--ap-t) var(--ap-ease); }
.ap-site .ap-button--link .elementor-button:hover .elementor-button-text::after { transform: translateX(6px); }
.ap-site .ap-button--link .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 14px; height: 14px;
	margin-left: 8px;
	vertical-align: middle;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 278.6a32 32 0 0 0 0-45.3l-160-160a32 32 0 0 0-45.3 45.3L338.8 224H32a32 32 0 0 0 0 64h306.7L233.4 393.4a32 32 0 0 0 45.3 45.3l160-160z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 278.6a32 32 0 0 0 0-45.3l-160-160a32 32 0 0 0-45.3 45.3L338.8 224H32a32 32 0 0 0 0 64h306.7L233.4 393.4a32 32 0 0 0 45.3 45.3l160-160z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ap-link--small { font-size: 16px; line-height: 40px; font-weight: 500; letter-spacing: .8px; text-decoration: underline; text-underline-offset: 4px; }

/* 4. Header -------------------------------------------------------------- */
.ap-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 100;
	padding: 40px var(--ap-pad-x) 24px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, .16), rgba(0, 0, 0, 0));
	transition: background-color var(--ap-t) var(--ap-ease), padding var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
}
.admin-bar .ap-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ap-header { top: 46px; } }
.ap-header.is-scrolled {
	padding-top: 16px;
	padding-bottom: 16px;
	background-color: rgba(0, 0, 0, .92);
	box-shadow: 0 4px 24px rgba(0, 0, 0, .4);
}
.ap-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: var(--ap-max);
	margin-inline: auto;
}
.ap-header__logo { display: flex; align-items: center; height: 48px; flex: 0 0 auto; transition: opacity var(--ap-t-fast) var(--ap-ease); }
.ap-header__logo:hover { opacity: .8; }
.ap-header__logo img { width: 282px; height: auto; }
.ap-header__nav { display: flex; align-items: center; flex: 1; gap: 24px; }
.ap-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 24px;
	flex: 1;
	margin: 0; padding: 0;
	list-style: none;
}
.ap-menu > li { position: relative; }
.ap-menu a {
	position: relative;
	display: block;
	padding: 12px 0;
	color: var(--ap-light);
	font-size: 16px;
	line-height: 24px;
	text-decoration: none;
	transition: color var(--ap-t-fast) var(--ap-ease);
}
/* Subrayado rojo que crece desde el centro (antes aparecía de golpe). */
.ap-menu a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: #b21319;
	transform: scaleX(0);
	transition: transform var(--ap-t) var(--ap-ease-out);
}
.ap-menu a:hover, .ap-menu a:focus-visible { color: #fff; }
.ap-menu a:hover::after,
.ap-menu a:focus-visible::after,
.ap-menu .current-menu-item > a::after,
.ap-menu .current-menu-ancestor > a::after,
.ap-menu .current-page-ancestor > a::after { transform: scaleX(1); }
.ap-menu .sub-menu a::after { display: none; }
.ap-menu .sub-menu a { transition: color var(--ap-t-fast) var(--ap-ease), padding-left var(--ap-t-fast) var(--ap-ease); }
.ap-menu .sub-menu a:hover { padding-left: 6px; color: #fff; }
.ap-menu .sub-menu {
	position: absolute;
	top: 100%; left: 50%;
	min-width: 260px;
	margin: 0; padding: 12px 20px;
	list-style: none;
	background: var(--ap-bg);
	border-radius: var(--ap-radius);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .5);
	opacity: 0; visibility: hidden;
	transform: translate(-50%, 12px);
	transition: opacity var(--ap-t) var(--ap-ease), transform var(--ap-t) var(--ap-ease-out), visibility var(--ap-t);
}
.ap-menu li:hover > .sub-menu,
.ap-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.ap-menu .sub-menu a { padding: 8px 0; white-space: nowrap; }

.ap-header__toggle {
	display: none;
	padding: 8px;
	border: 0;
	background: none;
	color: var(--ap-light);
	cursor: pointer;
}
.ap-header__toggle-close { display: none; }

@media (max-width: 1024px) {
	.ap-header { padding: 40px var(--ap-pad-x) 24px; }
	.ap-header__logo img { width: 188px; }
	.ap-header__toggle { display: inline-flex; position: relative; z-index: 2; }
	.ap-header__nav {
		position: fixed;
		inset: 0;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 32px;
		padding: 120px var(--ap-pad-x) 40px;
		background: #000;
		opacity: 0; visibility: hidden;
		transition: opacity var(--ap-t) var(--ap-ease), visibility var(--ap-t);
	}
	.ap-header.is-open .ap-header__nav { opacity: 1; visibility: visible; }
	/* Los enlaces del menú móvil entran escalonados. */
	.ap-header__nav .ap-menu > li, .ap-header__nav > .ap-btn {
		opacity: 0;
		transform: translateY(16px);
		transition: opacity var(--ap-t) var(--ap-ease), transform var(--ap-t-slow) var(--ap-ease-out);
	}
	.ap-header.is-open .ap-header__nav .ap-menu > li, .ap-header.is-open .ap-header__nav > .ap-btn { opacity: 1; transform: none; }
	.ap-header.is-open .ap-menu > li:nth-child(1) { transition-delay: calc(1 * var(--ap-swap-stagger)); }
	.ap-header.is-open .ap-menu > li:nth-child(2) { transition-delay: calc(1.6 * var(--ap-swap-stagger)); }
	.ap-header.is-open .ap-menu > li:nth-child(3) { transition-delay: calc(2.2 * var(--ap-swap-stagger)); }
	.ap-header.is-open .ap-menu > li:nth-child(4) { transition-delay: calc(2.8 * var(--ap-swap-stagger)); }
	.ap-header.is-open .ap-menu > li:nth-child(5) { transition-delay: calc(3.4 * var(--ap-swap-stagger)); }
	.ap-header.is-open .ap-header__nav > .ap-btn { transition-delay: calc(4 * var(--ap-swap-stagger)); }
	.ap-menu a::after { right: auto; width: 48px; transform-origin: left; }
	.ap-header.is-open .ap-header__toggle-open { display: none; }
	.ap-header.is-open .ap-header__toggle-close { display: inline; }
	.ap-header.is-open { background: transparent; box-shadow: none; }
	.ap-menu { flex: 0 0 auto; flex-direction: column; gap: 8px; }
	.ap-menu a { font-size: 24px; line-height: 32px; font-weight: 600; text-transform: uppercase; }
	.ap-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; background: none; box-shadow: none; padding: 0 0 0 16px; min-width: 0; }
	.ap-menu .sub-menu a { font-size: 16px; line-height: 24px; text-transform: none; font-weight: 400; }
}

/* 5. Hero (inicio y páginas internas) ------------------------------------ */
.ap-site .ap-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	min-height: 900px;
	padding: 200px var(--ap-pad-x) 0;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(to bottom, rgba(0, 0, 0, .8), rgba(0, 0, 0, .5)),
		linear-gradient(rgba(19, 19, 20, .76), rgba(19, 19, 20, .76)),
		url("../img/gym-bg.webp") center / cover no-repeat,
		var(--ap-bg);
}
.ap-site .ap-hero--home {
	background:
		linear-gradient(to bottom, rgba(0, 0, 0, .8), rgba(0, 0, 0, .5)),
		linear-gradient(rgba(19, 19, 20, .5), rgba(19, 19, 20, .5)),
		url("../img/hero-bg.webp") center bottom / cover no-repeat,
		var(--ap-bg);
}
.ap-site .ap-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: row;
	align-items: stretch;
	justify-content: space-between;
	gap: 40px;
	width: 100%;
	max-width: var(--ap-max);
	height: 700px;
}
.ap-site .ap-hero__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 16px;
	flex: 1 1 auto;
	max-width: 800px;
}
.ap-site .ap-hero__text .ap-button { margin-top: 8px; }
.ap-site .ap-hero__media {
	position: relative;
	flex: 0 0 700px;
	width: 700px;
}
.ap-site .ap-hero__media::before {           /* franja diagonal roja */
	content: "";
	position: absolute;
	top: -200px; right: -240px;
	width: 1175px; height: 900px;
	background: url("../img/hero-diagonal.svg") center / 100% 100% no-repeat;
	pointer-events: none;
}
.ap-site .ap-hero__img {
	position: absolute !important;
	left: 50%; bottom: 0;
	width: auto !important;
	height: 793px;
	/* "translate" (no "transform"): la animación de entrada usa transform y antes borraba este centrado,
	   dejando la foto corrida a la derecha y cortada. */
	translate: -50% 0;
}
.ap-site .ap-hero__img img { width: auto; height: 100%; max-width: none; object-fit: contain; object-position: bottom; }
.ap-site .ap-hero--tall .ap-hero__img { height: 858px; }

/* Texto gigante de fondo ("CUIDARTE ES AMARTE") */
.ap-site .ap-bgtext {
	position: absolute !important;
	left: 0; right: 0;
	top: calc(50% + 264px);
	z-index: 0;
	padding: 0 12px;
	transform: translateY(-50%);
	color: #000;
	opacity: .08;
	font-size: 105px;
	font-weight: 700;
	line-height: normal;
	white-space: nowrap;
	pointer-events: none;
	filter: drop-shadow(0 20px 15px rgba(0, 0, 0, .1));
}

/* Brillo circular detrás de la foto (Contacto) */
.ap-site .ap-hero--glow .ap-hero__media::after {
	content: "";
	position: absolute;
	top: -74px; left: -181px;
	width: 528px; height: 528px;
	background: url("../img/contacto-ellipse.svg") center / contain no-repeat;
	z-index: -1;
	pointer-events: none;
}

@media (max-width: 1600px) and (min-width: 1025px) {
	.ap-site .ap-hero__media { flex-basis: 44%; width: 44%; }
	.ap-site .ap-hero__img, .ap-site .ap-hero--tall .ap-hero__img { height: min(793px, 56vw); }
	.ap-site .ap-hero__inner { height: min(700px, 50vw); }
	.ap-site .ap-hero { min-height: 0; padding-top: 180px; }
	.ap-site .ap-hero__media::before { right: -18vw; }
}
@media (max-width: 1024px) {
	.ap-site .ap-hero { min-height: 0; padding-top: 160px; }
	.ap-site .ap-hero__inner { height: auto; flex-direction: column; gap: 40px; }
	.ap-site .ap-hero__text { max-width: none; }
	.ap-site .ap-hero__media { flex: 0 0 auto; width: 100%; height: 600px; }
	.ap-site .ap-hero__media::before { display: none; }
	.ap-site .ap-hero__img, .ap-site .ap-hero--tall .ap-hero__img { height: 600px; }
	.ap-site .ap-hero::before {               /* franja diagonal versión mobile */
		content: "";
		position: absolute;
		top: 0; left: 0;
		width: 680px; height: 375px;
		background: url("../img/hero-diagonal-mobile.svg") center / 100% 100% no-repeat;
		transform: scaleX(-1);
		pointer-events: none;
		z-index: 0;
	}
}
@media (max-width: 767px) {
	.ap-site .ap-hero { padding-top: 140px; }
	.ap-site .ap-hero__inner { gap: 24px; }
	.ap-site .ap-hero__text { gap: 16px; }
	.ap-site .ap-hero__media { height: auto; aspect-ratio: 269 / 400; }
	.ap-site .ap-hero__img, .ap-site .ap-hero--tall .ap-hero__img { height: 100%; }
	.ap-site .ap-bgtext { display: none; }
	.ap-site .ap-hero--glow .ap-hero__media::after { width: 320px; height: 320px; left: -40px; top: 0; }
}

/* 6. Inicio -------------------------------------------------------------- */

/* Cifras */
.ap-site .ap-stats {
	padding: 40px var(--ap-pad-x);
	background: linear-gradient(to bottom, var(--ap-bg-2), rgba(16, 16, 16, .5));
}
.ap-site .ap-stats__row {
	display: flex;
	flex-direction: row;
	align-items: center;
	width: 100%;
	max-width: var(--ap-max);
	margin-inline: auto;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .24));
}
.ap-site .ap-stat {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: center;
}
.ap-site .ap-stat + .ap-stat::before {
	content: "";
	position: absolute;
	left: 0; top: 50%;
	width: 3px; height: 143px;
	transform: translateY(-50%);
	background: url("../img/stats-divider.svg") center / 100% 100% no-repeat;
}
.ap-site .ap-stat__num { color: var(--ap-red); font-size: 36px; line-height: 44px; font-weight: 600; text-transform: uppercase; margin: 0; }
/* Contador (main.js): cifras de ancho fijo para que el texto no "baile" mientras sube el número. */
.ap-count { display: inline-block; font-variant-numeric: tabular-nums; text-align: right; }
@keyframes ap-count-done { 0% { text-shadow: 0 0 0 rgba(223, 35, 32, 0); } 40% { text-shadow: 0 0 22px rgba(223, 35, 32, .75); } 100% { text-shadow: 0 0 0 rgba(223, 35, 32, 0); } }
.ap-stat__num.is-counted .elementor-heading-title { animation: ap-count-done var(--ap-t-slow) var(--ap-ease) both; }
.ap-site .ap-stat__label { margin: 0; font-size: 16px; line-height: 24px; font-weight: 600; text-shadow: 0 10px 50px rgba(206, 34, 48, .5); }
@media (max-width: 1024px) {
	.ap-site .ap-stat__num { font-size: 28px; line-height: 36px; }
	.ap-site .ap-stat { padding-inline: 12px; }
}
@media (max-width: 767px) {
	.ap-site .ap-stats__row { flex-direction: column; gap: 48px; padding-block: 16px; }
	.ap-site .ap-stat + .ap-stat::before {
		left: 50%; top: -24px;
		width: 120px; height: 3px;
		transform: translate(-50%, -50%);
		background: linear-gradient(to right, transparent, var(--ap-red), transparent);
	}
}

/* Video de bienvenida */
.ap-site .ap-welcome { display: flex; justify-content: center; padding: var(--ap-pad-y) var(--ap-pad-x); }
.ap-site .ap-welcome__media {
	position: relative;
	width: 100%;
	max-width: 1420px;
	min-height: min(700px, 36.5vw);
	justify-content: center;
}
.ap-site .ap-welcome__media::before {            /* aro rojo */
	content: "";
	position: absolute;
	right: min(120px, 6.25vw); bottom: 0;
	width: min(668px, 34.8vw); height: min(668px, 34.8vw);
	border: min(120px, 6.25vw) solid var(--ap-red) !important;
	border-radius: 50%;
	box-sizing: border-box;
	pointer-events: none;
}
.ap-site .ap-welcome__img {
	position: relative;
	width: calc(100% - min(371px, 19.3vw)) !important;
	border: 16px solid var(--ap-light);
	border-radius: var(--ap-radius);
	overflow: hidden;
	box-shadow: 0 28px 111px rgba(0, 0, 0, .15);
}
.ap-site .ap-welcome__img a, .ap-site .ap-vcard a { position: relative; display: block; }
.ap-site .ap-welcome__img img { width: 100%; aspect-ratio: 370 / 229; object-fit: cover; object-position: 50% 15%; }
.ap-site .ap-welcome__img a::before,
.ap-site .ap-vcard a::before {                    /* oscurecido */
	content: "";
	position: absolute; inset: 0;
	background: rgba(0, 0, 0, .4);
	transition: background-color var(--ap-t) var(--ap-ease);
}
.ap-site .ap-vcard a::before { background: rgba(0, 0, 0, .2); }
.ap-site .ap-welcome__img a::after,
.ap-site .ap-vcard a::after {                     /* botón play */
	content: "";
	position: absolute;
	top: 50%; left: 50%;
	width: 111px; height: 111px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: var(--ap-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%239f1722' d='M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80v352c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9l288-176c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z'/%3E%3C/svg%3E") 54% 50% / 30% no-repeat;
	transition: transform var(--ap-t) var(--ap-ease-out), box-shadow var(--ap-t) var(--ap-ease);
}
.ap-site .ap-vcard a::after {
	width: 48px; height: 48px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23df2320' d='M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80v352c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9l288-176c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z'/%3E%3C/svg%3E");
}
.ap-site .ap-welcome__img a:hover::after,
.ap-site .ap-vcard a:hover::after { transform: translate(-50%, -50%) scale(1.12); box-shadow: 0 0 0 10px rgba(244, 244, 244, .18); }
.ap-site .ap-welcome__img a:hover::before { background: rgba(0, 0, 0, .25); }

/* Etiqueta "CLIC PARA REPRODUCIR" */
.ap-site .ap-welcome__tag {
	position: absolute !important;
	right: 0; top: 50%;
	width: 460px !important;
	transform: translateY(-50%);
	z-index: 2;
}
.ap-site .ap-welcome__tag .elementor-heading-title {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 40px 20px 80px;
	color: var(--ap-dark-text);
	font-size: 24px;
	line-height: 32px;
	font-weight: 600;
	text-transform: uppercase;
}
.ap-site .ap-welcome__tag .elementor-heading-title::before {   /* fondo inclinado + franja roja */
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to right, var(--ap-red) 0 10px, rgba(244, 244, 244, .9) 10px);
	transform: skewX(-10deg);
	box-shadow: 0 18px 56px rgba(0, 0, 0, .1);
}
.ap-site .ap-welcome__tag .elementor-heading-title::after {    /* ícono play */
	content: "";
	position: absolute;
	left: 32px; top: 50%;
	width: 37px; height: 37px;
	transform: translateY(-50%);
	background: url("../img/icon-play-outline.svg") center / contain no-repeat;
}
@media (max-width: 1024px) {
	.ap-site .ap-welcome__media { min-height: 0; padding-bottom: 80px; }
	.ap-site .ap-welcome__img { width: 100% !important; }
	.ap-site .ap-welcome__media::before { width: 420px; height: 420px; border-width: 70px; right: -60px; bottom: 0; }
	.ap-site .ap-welcome__tag { top: auto; bottom: 0; transform: none; width: 420px !important; }
	.ap-site .ap-welcome__tag .elementor-heading-title { font-size: 20px; line-height: 28px; }
}
@media (max-width: 767px) {
	.ap-site .ap-welcome__img { border-width: 8px; }
	.ap-site .ap-welcome__img img { aspect-ratio: 4 / 3; }
	.ap-site .ap-welcome__img a::after { width: 64px; height: 64px; }
	.ap-site .ap-welcome__media::before { width: 260px; height: 260px; border-width: 44px; right: -80px; }
	.ap-site .ap-welcome__tag { width: 100% !important; }
	.ap-site .ap-welcome__tag .elementor-heading-title { font-size: 16px; line-height: 24px; padding: 14px 24px 14px 64px; }
	.ap-site .ap-welcome__tag .elementor-heading-title::after { left: 20px; width: 28px; height: 28px; }
}

/* Modalidades */
.ap-site .ap-mod {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: 40px;
	min-height: 720px;
	padding-left: 240px;
	border-radius: 24px 24px 0 0;
	overflow: hidden;
	background: rgba(0, 0, 0, .5);
}
.ap-site .ap-mod__content {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 40px;
	padding-block: var(--ap-pad-y);
}
.ap-site .ap-heading { display: flex; flex-direction: column; gap: 16px; }
.ap-site .ap-titles { display: flex; flex-direction: column; gap: 0; }
.ap-site .ap-mod__cards { display: flex; flex-direction: row; gap: 24px; }
.ap-site .ap-mod__img { flex: 0 0 500px; width: 500px !important; }
.ap-site .ap-mod__img img { width: 100%; height: 100%; object-fit: cover; }

.ap-site .ap-card {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-height: 350px;
	padding: 24px;
	border-radius: var(--ap-radius);
}
.ap-site .ap-card--red { background: var(--ap-red); color: var(--ap-light); }
.ap-site .ap-card--light { background: var(--ap-light); color: var(--ap-dark-text); }
.ap-site .ap-card--light .ap-button--link .elementor-button { color: var(--ap-red); }
.ap-site .ap-card__icon { align-self: flex-end; }
.ap-site .ap-card__icon img { width: 40px; height: 40px; }
.ap-site .ap-card__title { margin-top: -8px; }
.ap-site .ap-card .ap-text { max-width: 500px; }
.ap-site .ap-card .ap-button--link { margin-top: auto; padding-top: 24px; border-top: 1px solid currentColor; }
.ap-site .ap-card--red .ap-button--link { border-top-color: var(--ap-light); }
.ap-site .ap-card--light .ap-button--link { border-top-color: var(--ap-red); }

@media (max-width: 1440px) {
	.ap-site .ap-mod { padding-left: var(--ap-pad-x); }
	.ap-site .ap-mod__img { flex-basis: 32%; width: 32% !important; }
}
@media (max-width: 1024px) {
	.ap-site .ap-mod { flex-direction: column; padding-left: 0; gap: 0; }
	.ap-site .ap-mod__content { padding: var(--ap-pad-y) var(--ap-pad-x); }
	.ap-site .ap-mod__img { flex: 0 0 auto; width: 100% !important; height: 600px; }
	.ap-site .ap-mod__img img { object-position: center 30%; }
}
@media (max-width: 767px) {
	.ap-site .ap-mod__cards { flex-direction: column; }
	/* En columna, "flex: 1 1 0" fijaba la tarjeta a 350px y el "LEER MÁS" quedaba fuera del fondo. */
	.ap-site .ap-mod__cards .ap-card { flex: 0 0 auto; }
	.ap-site .ap-mod__img { height: 500px; }
	.ap-site .ap-card .ap-button--link .elementor-button { font-size: 16px; line-height: 24px; }
}

/* Franja de gimnasio */
.ap-site .ap-band {
	min-height: 400px;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, .8) 100%),
		linear-gradient(90deg, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, 0) 25%),
		linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, .6)),
		url("../img/gym-bg.webp") center 48% / cover no-repeat;
}
@media (max-width: 767px) { .ap-site .ap-band { min-height: 260px; } }

/* Mi filosofía */
.ap-site .ap-filo {
	overflow: hidden;
	padding: var(--ap-pad-y) var(--ap-pad-x) 0;
	background: linear-gradient(to bottom, rgba(19, 19, 20, .5), rgba(0, 0, 0, .25) 40%);
}
.ap-site .ap-filo__inner {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 40px;
	width: 100%;
	max-width: var(--ap-max);
	margin-inline: auto;
}
.ap-site .ap-filo__media { position: relative; flex: 0 0 440px; width: 440px; height: 747px; }
.ap-site .ap-filo__media::before {               /* líneas rojas */
	content: "";
	position: absolute;
	left: 0; top: 186px;
	width: 412px; height: 226px;
	background: url("../img/filosofia-lineas.svg") center / 100% 100% no-repeat;
}
.ap-site .ap-filo__img { position: absolute !important; left: 41px; top: 0; width: 393px !important; height: 747px; }
.ap-site .ap-filo__img img { width: 100%; height: 100%; object-fit: contain; object-position: bottom; }
.ap-site .ap-filo__badges { position: absolute !important; inset: 0; pointer-events: none; }
.ap-badge {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ap-light);
	font-weight: 600;
	text-align: center;
	transform: rotate(-18deg) skewX(-18deg) scaleY(.95);
	transform-origin: center;
	white-space: nowrap;
}
.ap-badge--fitness {
	left: 55px; top: 386px;
	width: 394px; height: 118px;
	background: linear-gradient(to right, rgba(223, 35, 32, .16), #ce2230);
	font-size: 78px;
	line-height: 78px;
}
.ap-badge--health {
	left: 250px; top: 452px;
	width: 164px; height: 45px;
	background: #232323;
	font-size: 25px;
	line-height: 25px;
	letter-spacing: 2.1px;
	box-shadow: 13.5px 13.5px 13.5px rgba(34, 34, 34, .4);
}
.ap-site .ap-filo__text { flex: 1 1 0; display: flex; flex-direction: column; gap: 24px; max-width: 700px; padding-bottom: var(--ap-pad-y); }
@media (max-width: 1024px) {
	.ap-site .ap-filo__inner { flex-direction: column; align-items: center; }
	.ap-site .ap-filo__media { flex: none; }
	.ap-site .ap-filo__text { width: 100%; }
	.ap-site .ap-filo__text { max-width: none; order: -1; padding-bottom: 0; }
}
@media (max-width: 767px) {
	/* Composición de 440×747 escalada al 76%; los márgenes negativos devuelven el espacio sobrante. */
	.ap-site .ap-filo__media { transform: scale(.76); transform-origin: top center; margin: 0 -53px -179px; }
}

/* Testimonios en video */
.ap-site .ap-testi {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	padding: var(--ap-pad-y) var(--ap-pad-x);
	background: linear-gradient(to bottom, var(--ap-bg-2), rgba(16, 16, 16, .5));
}
.ap-site .ap-testi .ap-heading { max-width: 800px; width: 100%; text-align: center; }
.ap-site .ap-testi__row {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 24px;
	filter: drop-shadow(0 3px 10px rgba(0, 0, 0, .24));
}
.ap-site .ap-vcard {
	width: 340px !important;
	height: 425px;
	flex: 0 0 auto;
	border: 8px solid var(--ap-light);
	border-radius: var(--ap-radius);
	overflow: hidden;
}
.ap-site .ap-vcard--lg { width: 400px !important; height: 500px; }
.ap-site .ap-vcard a, .ap-site .ap-vcard img { width: 100%; height: 100%; }
.ap-site .ap-vcard img { object-fit: cover; }
@media (max-width: 1024px) {
	.ap-site .ap-testi__row {
		justify-content: flex-start;
		width: calc(100% + 2 * var(--ap-pad-x));
		margin-inline: calc(-1 * var(--ap-pad-x));
		padding-inline: var(--ap-pad-x);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.ap-site .ap-vcard { scroll-snap-align: center; }
}
@media (max-width: 767px) {
	.ap-site .ap-vcard, .ap-site .ap-vcard--lg { width: 260px !important; height: 340px; }
}
/* [ap_testimonios]: en escritorio muestra 3 como en Figma (la del centro grande) y se recorre con flechas y puntos;
 * en tablet y móvil es la fila deslizable de arriba con todas las tarjetas. */
.ap-site .ap-testi > .elementor-widget-shortcode { width: 100%; }
.ap-testi__carousel { position: relative; width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 64px; }
.ap-testi__carousel .ap-posts__nav { top: 50%; }
.ap-testi__carousel .ap-posts__dots { margin-top: 32px; }
.ap-testi__carousel.is-static .ap-posts__nav,
.ap-testi__carousel.is-static .ap-posts__dots { display: none; }
@media (min-width: 1025px) {
	.ap-testi__carousel.is-ready .ap-vcard { display: none; }
	.ap-testi__carousel.is-ready .ap-vcard.is-prev { display: block; order: 1; }
	.ap-testi__carousel.is-ready .ap-vcard.is-center { display: block; order: 2; width: 400px !important; height: 500px; }
	.ap-testi__carousel.is-ready .ap-vcard.is-next { display: block; order: 3; }
}
@media (max-width: 1024px) {
	.ap-testi__carousel { padding-inline: 0; }
	.ap-testi__carousel .ap-posts__nav,
	.ap-testi__carousel .ap-posts__dots { display: none; }
}

/* Antes y después */
.ap-site .ap-antes { display: flex; flex-direction: column; align-items: center; gap: 40px; padding-top: var(--ap-pad-y); }
.ap-site .ap-antes .ap-heading { padding-inline: var(--ap-pad-x); text-align: center; }
.ap-site .ap-antes__carousel { width: 100%; }
/* Marquesina continua: Elementor anima con autoplay sin pausa; la curva lineal evita el frenado en cada foto. */
.ap-site .ap-antes__carousel .swiper-wrapper { transition-timing-function: linear !important; }
.ap-site .ap-antes__carousel .swiper-slide-image { width: 100%; height: 400px; object-fit: cover; border-radius: 9.6px; box-shadow: 0 3px 19px rgba(0, 0, 0, .24); }
@media (max-width: 767px) { .ap-site .ap-antes__carousel .swiper-slide-image { height: 300px; } }

/* 7. Asesoría ------------------------------------------------------------ */

/* Mi método */
.ap-site .ap-metodo { padding: var(--ap-pad-y) var(--ap-pad-x); }
.ap-site .ap-metodo__inner {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: 40px;
	width: 100%;
	max-width: var(--ap-max);
	margin-inline: auto;
}
.ap-site .ap-metodo__left { flex: 1 1 0; display: flex; flex-direction: column; gap: 40px; }
.ap-site .ap-metodo__imgwrap { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: flex-end; min-height: 700px; }
.ap-site .ap-metodo__box {
	position: relative;
	width: 100%;
	height: 465px;
	border-radius: 9.3px 9.3px 31px 31px;
	background: linear-gradient(to bottom, #121213, var(--ap-red));
}
/* Figma: la foto mide 700px de alto, sale por encima de la caja y se recorta a la altura de las rodillas. */
.ap-site .ap-metodo__photo { position: absolute !important; left: 50%; bottom: 0; width: 326px !important; height: 700px; overflow: hidden; translate: -50% 0; }
.ap-site .ap-metodo__photo img { width: 100%; height: auto; max-width: none; }
.ap-site .ap-metodo__grid {
	flex: 1 1 0;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.ap-site .ap-pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 500px;
	max-width: 500px;
	border-radius: var(--ap-radius);
	overflow: hidden;
	background-size: cover;
	background-position: center;
}
.ap-site .ap-pcard::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .4); }
.ap-site .ap-pcard__body {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-height: 300px;
	padding: 60px 24px 24px;
	justify-content: flex-start;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .75) 33%, #000);
}
@media (max-width: 1024px) {
	.ap-site .ap-metodo__inner { flex-direction: column; gap: 64px; }
	.ap-site .ap-pcard { max-width: none; }
}
@media (max-width: 767px) {
	.ap-site .ap-metodo__grid { grid-template-columns: 1fr; }
	.ap-site .ap-metodo__imgwrap { min-height: 520px; }
	.ap-site .ap-metodo__box { height: 320px; }
	.ap-site .ap-metodo__photo { width: 230px !important; height: 500px; }
	.ap-site .ap-pcard { height: 440px; }
}

/* Tu ruta de inicio */
.ap-site .ap-ruta {
	padding: var(--ap-pad-y) var(--ap-pad-x);
	border-radius: 24px 24px 0 0;
	overflow: hidden;
	background:
		linear-gradient(to left, rgba(16, 16, 16, 0), var(--ap-bg-2) 50%),
		url("../img/asesoria-ruta-bg.webp") right center / auto 140% no-repeat,
		var(--ap-bg-2);
}
.ap-site .ap-ruta__content { display: flex; flex-direction: column; gap: 40px; width: 100%; max-width: 800px; }
.ap-site .ap-ruta__wrap { width: 100%; max-width: var(--ap-max); margin-inline: auto; }
.ap-site .ap-steps {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.ap-site .ap-step {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
	padding: 24px;
	border-radius: var(--ap-radius);
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(159, 23, 34, .5));
}
@media (max-width: 1024px) {
	.ap-site .ap-ruta { background: linear-gradient(rgba(16, 16, 16, .85), rgba(16, 16, 16, .85)), url("../img/asesoria-ruta-bg.webp") center / cover no-repeat; }
}
@media (max-width: 767px) { .ap-site .ap-steps { grid-template-columns: 1fr; } }

/* Compromiso mutuo */
.ap-site .ap-comp {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 40px;
	background: rgba(0, 0, 0, .5);
}
.ap-site .ap-comp__img { flex: 0 0 500px; width: 500px !important; height: 700px; }
.ap-site .ap-comp__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
.ap-site .ap-comp__content { flex: 1 1 0; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding-right: 240px; }
.ap-site .ap-comp__content .ap-button { margin-top: 8px; }
@media (max-width: 1440px) { .ap-site .ap-comp__content { padding-right: var(--ap-pad-x); } }
@media (max-width: 1024px) {
	.ap-site .ap-comp { flex-direction: column; gap: 0; }
	.ap-site .ap-comp__img { width: 100% !important; flex-basis: auto; height: 560px; }
	.ap-site .ap-comp__content { padding: var(--ap-pad-y) var(--ap-pad-x); }
}

/* 8. Planes -------------------------------------------------------------- */

/* La estructura detrás de cada programa */
.ap-site .ap-estr { display: flex; flex-direction: column; align-items: center; gap: 40px; padding: var(--ap-pad-y) var(--ap-pad-x); }
.ap-site .ap-estr .ap-heading { max-width: 800px; text-align: center; }
.ap-site .ap-estr__row { display: flex; flex-direction: row; justify-content: center; align-items: stretch; gap: 24px; width: 100%; max-width: var(--ap-max); }
.ap-site .ap-icard {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	flex: 0 1 338px;
	padding: 24px;
	border-radius: var(--ap-radius);
	text-align: center;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(159, 23, 34, .5));
}
.ap-site .ap-icard__icon img { height: 100px; width: auto; }
.ap-site .ap-icard .ap-heading { gap: 16px; }
@media (max-width: 1024px) { .ap-site .e-con.ap-estr__row { flex-wrap: wrap; } .ap-site .ap-icard { flex-basis: calc(50% - 12px); } }
@media (max-width: 767px) { .ap-site .ap-icard { flex-basis: 100%; } }

/* Selector de programa + tarjetas de nivel */
.ap-site .ap-planes {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	padding: var(--ap-pad-y) var(--ap-pad-x);
	background: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, .25) 40%);
}
.ap-site .ap-planes > .elementor-widget-shortcode { width: 100%; }
.ap-tabs { display: flex; justify-content: center; width: 100%; max-width: 1000px; margin-inline: auto; }
.ap-tabs__item {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	max-width: 500px;
	position: relative;
	padding-bottom: 16px;
	color: var(--ap-light);
	font-size: 28px;
	line-height: 36px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none;
	opacity: .7;
	transition: opacity var(--ap-t) var(--ap-ease);
}
/* Línea inferior: blanca en la pestaña activa; en hover se insinúa en rojo creciendo desde el centro. */
.ap-tabs__item::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 2px;
	background: var(--ap-red-bright);
	transform: scaleX(0);
	transition: transform var(--ap-t) var(--ap-ease-out), background-color var(--ap-t) var(--ap-ease);
}
.ap-site .ap-tabs__item:hover, .ap-site .ap-tabs__item:focus, .ap-site .ap-tabs__item:focus-visible { color: var(--ap-light); opacity: 1; }
.ap-tabs__item:hover::after, .ap-tabs__item:focus-visible::after { transform: scaleX(.6); }
.ap-tabs__item.is-active { opacity: 1; }
.ap-tabs__item.is-active::after { background: var(--ap-light); transform: scaleX(1); box-shadow: 0 2px 4px -2px rgba(0, 0, 0, .25); }
.ap-tabs__icon { transition: transform var(--ap-t) var(--ap-ease-out); }
.ap-tabs__item:hover .ap-tabs__icon { transform: translateY(-3px); }

/* Cambio de pestaña: las tarjetas salen y entran en vez de reemplazarse de golpe (main.js). */
.ap-planes__row { transition: opacity var(--ap-swap-out) var(--ap-ease), transform var(--ap-swap-out) var(--ap-ease), filter var(--ap-swap-out) var(--ap-ease); }
.ap-planes__row.is-leaving { opacity: 0; transform: translateY(20px); filter: blur(4px); }
@keyframes ap-card-in { from { opacity: 0; transform: translateY(var(--ap-reveal-distance)); filter: blur(var(--ap-reveal-blur)); } to { opacity: 1; transform: none; filter: none; } }
.ap-planes__row.is-entering .ap-plan { animation: ap-card-in var(--ap-swap-in) var(--ap-ease-soft) both; }
.ap-planes__row.is-entering .ap-plan:nth-child(2) { animation-delay: var(--ap-swap-stagger); }
.ap-planes__row.is-entering .ap-plan:nth-child(3) { animation-delay: calc(2 * var(--ap-swap-stagger)); }
.ap-tabs__icon { display: inline-flex; width: 42px; height: 40px; }
.ap-tabs__item .ap-tabs__icon--on,
.ap-tabs__item.is-active .ap-tabs__icon--off { display: none; }
.ap-tabs__item.is-active .ap-tabs__icon--on { display: inline-flex; }
.ap-tabs__icon svg { width: 100%; height: 100%; }
.ap-site .ap-planes__sub { max-width: 800px; font-weight: 600; text-align: center; }
.ap-site .ap-planes__row { display: flex; flex-direction: row; justify-content: center; gap: 24px; }
.ap-site .ap-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
	width: 400px;
	min-height: 600px;
	padding: 24px;
	border-radius: var(--ap-radius);
}
.ap-site .ap-plan::after {                     /* cuadro decorativo esquina */
	content: "";
	position: absolute;
	top: 24px; right: 24px;
	width: 20px; height: 20px;
	background: currentColor;
}
.ap-site .ap-plan--red { background: var(--ap-red); color: var(--ap-light); }
.ap-site .ap-plan--light { background: var(--ap-light); color: var(--ap-dark-text); }
.ap-site .ap-plan--light::after { background: var(--ap-red); }
.ap-site .ap-plan__head { display: flex; flex-direction: column; gap: 8px; }
.ap-site .ap-plan__head img { width: 40px; height: 40px; }
.ap-site .ap-plan__details {
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex: 1 1 auto;
	padding-top: 40px;
	border-top: 1px solid currentColor;
}
.ap-site .ap-plan--red .ap-plan__details { border-top-color: rgba(244, 244, 244, .6); }
.ap-site .ap-plan .ap-text { font-size: 15px; }
@media (max-width: 1024px) { .ap-tabs__item { font-size: 20px; line-height: 28px; } }
@media (max-width: 767px) {
		/* main.js agrega un espacio antes de cada <br> para que, al ocultarlos, las palabras no queden pegadas
	   ("PERSONALIZADA1 A 1", "cuerpo,manteniendo"). */
	.ap-site .ap-planes__sub br, .ap-site .ap-mod br { display: none; }
	.ap-tabs { gap: 16px; }
	.ap-tabs__item { flex-direction: column; font-size: 16px; line-height: 24px; text-align: center; gap: 8px; }
	.ap-site .ap-planes__row { flex-direction: column; width: 100%; }
	.ap-site .ap-plan { width: 100%; min-height: 0; }
}

/* ¿Cómo elegir? */
.ap-site .ap-elegir {
	padding: var(--ap-pad-y) var(--ap-pad-x);
	/* Figma: foto de la modelo haciendo plancha, anclada a la derecha y difuminada hacia el texto. */
	background:
		linear-gradient(to left, rgba(16, 16, 16, 0), var(--ap-bg-2) 60%),
		url("../img/elegir-bg.webp") right bottom / auto 100% no-repeat,
		var(--ap-bg-2);
}
@media (min-width: 1921px) {
	.ap-site .ap-elegir { background-size: auto, 69% auto, auto; background-position: 0 0, right center, 0 0; }
}
.ap-site .ap-elegir__wrap { width: 100%; max-width: var(--ap-max); margin-inline: auto; }
.ap-site .ap-elegir__content { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; max-width: 800px; }
@media (max-width: 1024px) {
	.ap-site .ap-elegir { background: linear-gradient(rgba(16, 16, 16, .82), rgba(16, 16, 16, .82)), url("../img/elegir-bg.webp") 70% center / cover no-repeat, var(--ap-bg-2); }
}

/* 9. Blog y artículo ----------------------------------------------------- */
.ap-site .ap-blog { padding: var(--ap-pad-y) var(--ap-pad-x); }

.ap-posts { position: relative; width: 100%; max-width: var(--ap-max); margin-inline: auto; padding-inline: 48px; }
.ap-posts__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 48px) / 3);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.ap-posts__track::-webkit-scrollbar { display: none; }
.ap-post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 500px;
	min-width: 0;
	border-radius: var(--ap-radius);
	overflow: hidden;
	scroll-snap-align: start;
	background: #222;
}
.ap-posts .ap-post-card__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform calc(1.4s * var(--ap-speed)) var(--ap-ease-out); }
.ap-posts .ap-post-card:hover .ap-post-card__img { transform: scale(1.06); }
.ap-post-card::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .4); }
.ap-post-card__body {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-height: 380px;
	padding: 80px 24px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .75) 33%, #000);
}
.ap-post-card__title { margin: 0; font-size: 28px; line-height: 36px; font-weight: 600; text-transform: uppercase; }
.ap-post-card, .ap-post-card:hover, .ap-post-card:focus { color: var(--ap-light); text-decoration: none; }
.ap-post-card:hover .ap-link--small, .ap-post-card:focus-visible .ap-link--small { text-decoration-thickness: 2px; }
.ap-posts__nav {
	transition: opacity var(--ap-t) var(--ap-ease), scale var(--ap-t) var(--ap-ease);
	position: absolute;
	top: calc(50% - 28px);
	z-index: 4;
	display: flex;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	transform: translateY(-50%) rotate(90deg);
}
.ap-posts__nav--prev { left: 0; }
.ap-posts__nav--next { right: 0; transform: translateY(-50%) rotate(-90deg); }
.ap-posts__nav:hover, .ap-posts__nav:focus-visible { scale: 1.15; }
.ap-posts__dots { display: flex; justify-content: center; gap: 12px; margin-top: 40px; }
.ap-posts__dots button { width: 16px; height: 16px; padding: 0; border: 0; border-radius: 50%; background: rgba(244, 244, 244, .2); cursor: pointer; transition: background-color var(--ap-t) var(--ap-ease), transform var(--ap-t) var(--ap-ease); }
/* Hello pintaba estos puntos de rosado (#c36) al pasar el mouse. */
.ap-posts .ap-posts__dots button:hover, .ap-posts .ap-posts__dots button:focus-visible { background: rgba(244, 244, 244, .5); transform: scale(1.15); }
.ap-posts .ap-posts__dots button.is-active { background: var(--ap-red); transform: scale(1.15); }
.ap-posts.is-static .ap-posts__nav, .ap-posts.is-static .ap-posts__dots { display: none; }
@media (max-width: 1024px) { .ap-posts__track { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 767px) {
	.ap-posts { padding-inline: 0; }
	.ap-posts__track { grid-auto-columns: 86%; }
	.ap-posts__nav { display: none; }
	.ap-post-card { height: 440px; }
	.ap-post-card__title { font-size: 22px; line-height: 30px; }
}

/* Artículo */
.ap-single__hero {
	display: flex;
	align-items: center;
	min-height: 740px;
	padding: 160px var(--ap-pad-x) 80px;
	background:
		linear-gradient(rgba(0, 0, 0, .8), rgba(0, 0, 0, .8)),
		var(--ap-hero-bg, none) center / cover no-repeat,
		var(--ap-bg);
}
.ap-single__hero .ap-wrap { display: flex; flex-direction: column; gap: 16px; }
.ap-single__body, .ap-page-body { padding: var(--ap-pad-y) var(--ap-pad-x); }

.ap-prose { color: var(--ap-light); }
.ap-prose > * { margin: 0; }
.ap-prose > * + * { margin-top: 24px; }
.ap-prose > h2 { margin-top: 80px; }
.ap-prose > h2 + p { margin-top: 16px; }
.ap-prose h2 {
	position: relative;
	padding-left: 22px;
	font-size: 48px;
	line-height: 56px;
	font-weight: 600;
	text-transform: uppercase;
}
.ap-prose h2::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 6px; border-radius: 10px; background: var(--ap-red); }
.ap-prose h3 { font-size: 24px; line-height: 32px; font-weight: 600; text-transform: uppercase; }
.ap-prose em:only-child, .ap-prose p > em { letter-spacing: .64px; }
.ap-prose a { color: var(--ap-light); text-decoration: underline; text-underline-offset: 3px; }
.ap-prose ul { padding-left: 24px; }

/* Lista de pasos en tarjetas: <ol class="ap-steps-list"><li><h3>…</h3><p>…</p></li></ol> */
.ap-prose ol.ap-steps-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 24px; counter-reset: ap-step; }
.ap-prose .ap-steps-list > li {
	counter-increment: ap-step;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
	border-radius: var(--ap-radius);
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .38) 33%, rgba(0, 0, 0, .5));
}
.ap-prose .ap-steps-list > li > * { margin: 0; }
.ap-prose .ap-steps-list h3::before { content: counter(ap-step) ". "; }
@media (max-width: 767px) {
	.ap-single__hero { min-height: 560px; padding-top: 140px; }
	.ap-single__hero .ap-h1 { font-size: 32px; line-height: 40px; overflow-wrap: anywhere; }
	.ap-single__hero .ap-h1 br { display: none; }
	.ap-prose h2 { font-size: 28px; line-height: 36px; }
	.ap-prose h2::before { top: 8px; bottom: 8px; }
	.ap-prose > h2 { margin-top: 56px; }
	.ap-prose h3 { font-size: 20px; line-height: 28px; }
}

.ap-single__cta {
	padding: var(--ap-pad-y) var(--ap-pad-x);
	background:
		linear-gradient(to left, rgba(16, 16, 16, 0), var(--ap-bg-2) 55%),
		url("../img/single-cta-bg.webp") right top / 57% auto no-repeat,
		var(--ap-bg-2);
}
.ap-single__cta-content { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; max-width: 800px; }
.ap-single__cta-content .ap-h2 { margin-bottom: -8px; }
@media (max-width: 1024px) {
	.ap-single__cta { background: linear-gradient(rgba(16, 16, 16, .85), rgba(16, 16, 16, .85)), url("../img/single-cta-bg.webp") center / cover no-repeat; }
}

/* 10. Contacto, CTA, FAQs, footer, páginas simples ----------------------- */

/* Tarjetas de contacto */
.ap-site .ap-contact { padding: var(--ap-pad-y) var(--ap-pad-x); }
.ap-site .ap-contact__row { display: flex; flex-direction: row; gap: 24px; width: 100%; max-width: var(--ap-max); margin-inline: auto; }
.ap-site .ap-ccard {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: 24px;
	border-radius: var(--ap-radius);
	text-align: center;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(159, 23, 34, .5));
	transition: transform var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
}
.ap-site .ap-ccard:hover { transform: translateY(-6px); box-shadow: 0 18px 40px -16px rgba(159, 23, 34, .6); }
.ap-site .ap-ccard__icon img { height: 70px; width: auto; }
.ap-site .ap-ccard .ap-text a { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color var(--ap-t) var(--ap-ease); }
.ap-site .ap-ccard .ap-text a:hover { text-decoration-color: var(--ap-light); }
@media (max-width: 767px) { .ap-site .ap-contact__row { flex-direction: column; } }

/* CTA con formulario [ap_cta] */
.ap-cta {
	position: relative;
	padding: var(--ap-pad-y) var(--ap-pad-x);
	scroll-margin-top: 120px;
	background:
		linear-gradient(to left, var(--ap-bg-2) 64.6%, rgba(16, 16, 16, .5)),
		linear-gradient(rgba(16, 16, 16, .5), rgba(16, 16, 16, .5)),
		url("../img/cta-bg.webp") left center / 38% auto no-repeat,
		var(--ap-bg-2);
}
.ap-cta__inner {
	display: flex;
	align-items: center;
	gap: 40px;
	max-width: var(--ap-max);
	margin-inline: auto;
}
.ap-cta__text { flex: 1 1 0; display: flex; flex-direction: column; gap: 16px; }
.ap-form { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.ap-form > * { width: 100%; }
.ap-form > .ap-btn { width: auto; }
.ap-field { display: flex; flex-direction: column; gap: 16px; }
.ap-field label { font-size: 16px; line-height: 24px; }
.ap-field input,
.ap-field select,
.ap-field textarea {
	width: 100%;
	min-height: 40px;
	padding: 8px 16px;
	border: 0;
	border-bottom: 1px solid var(--ap-light);
	border-radius: 0;
	background: transparent;
	color: var(--ap-light);
	font: inherit;
	transition: border-color var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
}
.ap-field input::placeholder, .ap-field textarea::placeholder { color: rgba(255, 255, 255, .5); font-style: italic; letter-spacing: .64px; }
.ap-field input:focus, .ap-field select:focus, .ap-field textarea:focus { outline: none; border-bottom-color: var(--ap-red); box-shadow: 0 1px 0 var(--ap-red); }
.ap-field select {
	appearance: none;
	padding: 12px 40px 12px 0;
	background: url("../img/chevron-down.svg") right center / 24px no-repeat;
	font-style: italic;
	letter-spacing: .64px;
	cursor: pointer;
}
.ap-field select:valid { font-style: normal; letter-spacing: 0; }
.ap-field select:invalid { color: rgba(255, 255, 255, .5); }
.ap-field select option { background: var(--ap-bg); color: var(--ap-light); font-style: normal; }
.ap-field textarea { resize: vertical; }
.ap-check { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 20px; }
/* Casilla propia: la nativa era un cuadro blanco que no encajaba con el fondo oscuro. */
.ap-check input {
	appearance: none;
	display: inline-grid;
	place-content: center;
	width: 18px; height: 18px;
	margin: 1px 0 0;
	flex: 0 0 auto;
	border: 1.5px solid rgba(244, 244, 244, .7);
	border-radius: 4px;
	background: transparent;
	cursor: pointer;
	transition: background-color var(--ap-t-fast) var(--ap-ease), border-color var(--ap-t-fast) var(--ap-ease);
}
.ap-check input::before { content: ""; width: 10px; height: 10px; background: var(--ap-light); clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); transform: scale(0); transition: transform var(--ap-t-fast) var(--ap-ease-out); }
.ap-check input:hover { border-color: var(--ap-light); }
.ap-check input:checked { background: var(--ap-red); border-color: var(--ap-red); }
.ap-check input:checked::before { transform: scale(1); }
.ap-check.is-invalid input { border-color: var(--ap-error); }
.ap-check label { cursor: pointer; }
.ap-check a { color: var(--ap-light); }
.ap-field.is-invalid input, .ap-field.is-invalid select, .ap-field.is-invalid textarea { border-bottom-color: var(--ap-error); }
.ap-field.is-invalid label, .ap-check.is-invalid label { color: var(--ap-error); }
.ap-form__alert { margin: 0; padding: 12px 16px; border-left: 4px solid var(--ap-error); background: rgba(255, 107, 117, .1); }
.ap-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 1024px) {
	.ap-cta { background: linear-gradient(rgba(16, 16, 16, .88), rgba(16, 16, 16, .88)), url("../img/cta-bg.webp") center / cover no-repeat; }
	.ap-cta__inner { flex-direction: column; align-items: stretch; }
}

/* Preguntas frecuentes [ap_faqs] */
.ap-faqs {
	position: relative;
	padding: 0 var(--ap-pad-x);
	overflow: hidden;
	background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));
}
.ap-faqs::before {                                    /* franja diagonal */
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 973px; height: 1152px;
	background: url("../img/faq-bar.svg") center / 100% 100% no-repeat;
	transform: scaleX(-1);
	pointer-events: none;
}
.ap-faqs__inner { position: relative; display: flex; align-items: flex-end; gap: 40px; max-width: var(--ap-max); margin-inline: auto; }
.ap-faqs__media { flex: 1 1 0; display: flex; justify-content: center; align-self: stretch; align-items: flex-end; }
.ap-faqs__media img { display: block; width: 454px; height: 1000px; max-height: 100%; object-fit: cover; object-position: 50% 15%; }
.ap-faqs__content { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 40px; padding-block: var(--ap-pad-y); }
.ap-faqs__content .ap-h2 { width: 100%; max-width: 800px; text-align: center; }
.ap-faqs__list { display: flex; flex-direction: column; gap: 16px; width: 100%; }
.ap-faq {
	border-top: 2px solid var(--ap-red);
	border-radius: var(--ap-radius);
	background: linear-gradient(to top, #000 30%, rgba(0, 0, 0, 0));
}
.ap-faq summary {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 24px;
	font-size: 24px;
	line-height: 32px;
	font-weight: 600;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}
.ap-faq summary::-webkit-details-marker { display: none; }
.ap-faq summary span { flex: 1 1 auto; }
/* La flecha va dentro de un círculo (transparente en reposo) que se pinta de rojo en hover. */
.ap-faq summary img {
	flex: 0 0 auto;
	box-sizing: content-box;
	width: 24px; height: 24px;
	padding: 6px;
	border-radius: 50%;
	background-color: transparent;
	transition: transform var(--ap-t) var(--ap-ease), background-color var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
}
.ap-faq summary { position: relative; z-index: 1; transition: padding var(--ap-t) var(--ap-ease); }
.ap-faq[open] summary { padding-bottom: 0; }
.ap-faq[open] summary img { transform: rotate(180deg); }
.ap-faq p { margin: 0; padding: 12px 24px 32px; }
.ap-faq__body { position: relative; z-index: 1; }

/* Hover sobre el título: brillo rojo que baja desde la línea superior, la línea se aviva,
   el título se desliza a la derecha y la flecha se marca en un círculo rojo. */
.ap-faq { position: relative; isolation: isolate; transition: border-color var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease); }
.ap-faq::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: inherit;
	background: linear-gradient(to bottom, rgba(159, 23, 34, .28), rgba(159, 23, 34, 0) 70%);
	opacity: 0;
	transition: opacity var(--ap-t) var(--ap-ease);
	pointer-events: none;
}
.ap-faq summary span { transition: color var(--ap-t-fast) var(--ap-ease), transform var(--ap-t) var(--ap-ease-out); }
@media (hover: hover) {
	.ap-faq:has(summary:hover) { border-top-color: var(--ap-red-bright); box-shadow: 0 -8px 24px -12px rgba(223, 35, 32, .6); }
	.ap-faq:has(summary:hover)::before { opacity: 1; }
	.ap-faq summary:hover span { color: #fff; transform: translateX(8px); }
	.ap-faq summary:hover img { background-color: var(--ap-red); box-shadow: 0 6px 16px -6px rgba(223, 35, 32, .8); transform: translateY(2px); }
	.ap-faq[open] summary:hover img { transform: rotate(180deg) translateY(2px); }
}
.ap-faq summary:focus-visible { outline: 2px solid var(--ap-light); outline-offset: -4px; border-radius: var(--ap-radius); }
/* El contenido se despliega con altura animada (main.js); sin JS abre normal. */
.ap-faq__body { overflow: hidden; }
@media (max-width: 1024px) {
	.ap-faqs__inner { flex-direction: column; align-items: stretch; }
	.ap-faqs__media { order: 2; }
	.ap-faqs__media img { width: 320px; height: 480px; }
	.ap-faqs::before { width: 600px; height: 710px; }
}
@media (max-width: 767px) {
	.ap-faq summary { font-size: 16px; line-height: 24px; padding: 16px; gap: 16px; }
	.ap-faq p { padding: 8px 16px 24px; }
}

/* Footer */
.ap-footer { position: relative; overflow: hidden; padding: 0 var(--ap-pad-x); background: #000; }
.ap-footer__figures { position: absolute; inset: 0; opacity: .5; pointer-events: none; }
.ap-footer__figures::before,
.ap-footer__figures::after {
	content: "";
	position: absolute;
	width: 830px; height: 631px;
	background: url("../img/footer-circle.svg") center / contain no-repeat;
}
.ap-footer__figures::before { left: calc(50% - 652px - 415px); top: calc(50% - 506px - 315px); }
.ap-footer__figures::after { left: calc(50% + 652px - 415px); top: calc(50% + 383px - 315px); }
.ap-footer__inner {
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: 40px;
	max-width: var(--ap-max);
	margin-inline: auto;
	padding-top: 80px;
	padding-bottom: 40px;
}
.ap-footer__col { display: flex; flex-direction: column; gap: 24px; padding-block: 8px; }
.ap-footer__brand { padding-block: 0; max-width: 400px; }
.ap-footer__logo img { width: 400px; height: auto; }
.ap-footer__text { margin: 0; }
.ap-footer__heading {
	position: relative;
	margin: 0;
	padding-bottom: 13px;
	font-size: 28px;
	line-height: 36px;
	font-weight: 600;
	text-transform: uppercase;
}
.ap-footer__heading::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 55px; height: 5px;
	border-radius: 8px;
	background: var(--ap-red);
	transform: skewX(-20deg);
}
.ap-footer__heading--social { padding-bottom: 0; margin-bottom: -8px; font-size: 24px; line-height: 32px; }
.ap-footer__heading--social::after { display: none; }
.ap-social { display: flex; gap: 16px; margin: 0; padding: 0; list-style: none; }
.ap-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: var(--ap-red);
	color: var(--ap-light);
	transition: background-color var(--ap-t) var(--ap-ease), transform var(--ap-t) var(--ap-ease);
}
.ap-social a:hover { background: var(--ap-red-hover); color: var(--ap-light); transform: translateY(-3px); }
.ap-footer__menu { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.ap-footer__menu a {
	text-decoration: none;
	background: linear-gradient(var(--ap-red), var(--ap-red)) left bottom / 0 2px no-repeat;
	padding-bottom: 2px;
	transition: background-size var(--ap-t) var(--ap-ease-out), color var(--ap-t-fast) var(--ap-ease);
}
.ap-footer__menu a:hover, .ap-footer__menu a:focus-visible { color: #fff; background-size: 100% 2px; }
.ap-footer__logo { display: inline-block; transition: opacity var(--ap-t-fast) var(--ap-ease); }
.ap-footer__logo:hover { opacity: .8; }
.ap-footer__menu .sub-menu { display: none; }
.ap-footer__map { width: 232px; height: auto; }
.ap-footer__bottom {
	position: relative;
	margin-inline: calc(-1 * var(--ap-pad-x));
	padding: 12px var(--ap-pad-x);
	border-top: 1px solid var(--ap-light);
	text-align: center;
}
.ap-footer__bottom p { margin: 0; }
.ap-totop {
	position: absolute;
	right: 40px; bottom: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px; height: 50px;
	border-radius: 50%;
	background: var(--ap-red);
	color: var(--ap-light);
	transition: transform var(--ap-t) var(--ap-ease), background-color var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
}
.ap-totop:hover, .ap-totop:focus-visible { color: var(--ap-light); background: var(--ap-red-hover); transform: translateY(-4px); box-shadow: 0 10px 24px -8px rgba(159, 23, 34, .8); }
@media (max-width: 1024px) {
	.ap-footer__inner { flex-wrap: wrap; }
	.ap-footer__brand { flex-basis: 100%; max-width: none; }
}
@media (max-width: 767px) {
	.ap-footer__inner { flex-direction: column; padding-top: 56px; }
	.ap-footer__logo img { width: 280px; }
	.ap-footer__heading { font-size: 24px; line-height: 32px; }
	.ap-totop { right: 24px; bottom: 120px; }
}

/* Modal de video */
.ap-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.ap-modal[hidden] { display: none; }
@keyframes ap-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ap-pop-in { from { opacity: 0; transform: translateY(24px) scale(.96); } to { opacity: 1; transform: none; } }
.ap-modal:not([hidden]) .ap-modal__backdrop { animation: ap-fade-in var(--ap-t-slow) var(--ap-ease) both; }
.ap-modal:not([hidden]) .ap-modal__dialog { animation: ap-pop-in var(--ap-t-slow) var(--ap-ease-out) both; }
.ap-modal__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .88); }
.ap-modal__dialog { position: relative; width: min(1100px, 100%); }
.ap-modal__body { aspect-ratio: 16 / 9; background: #000; border-radius: var(--ap-radius); overflow: hidden; }
.ap-modal__body iframe, .ap-modal__body video { width: 100%; height: 100%; border: 0; display: block; }
.ap-modal__empty { display: flex; align-items: center; justify-content: center; height: 100%; margin: 0; padding: 24px; text-align: center; }
.ap-modal__close { position: absolute; top: -48px; right: 0; padding: 8px; border: 0; background: none; color: var(--ap-light); cursor: pointer; transition: transform var(--ap-t) var(--ap-ease); }
.ap-modal__close:hover { transform: rotate(90deg); }

/* Páginas simples (legales, gracias) */
.ap-page-hero {
	padding: 200px var(--ap-pad-x) 40px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, .8), rgba(19, 19, 20, 1)), url("../img/gym-bg.webp") center / cover no-repeat;
}
.ap-page-body .ap-prose { max-width: 900px; margin-inline: 0; }
@media (max-width: 767px) { .ap-page-hero { padding-top: 140px; } }

/* 404, archivos y búsqueda */
.ap-404 { min-height: 70vh; display: flex; align-items: center; }
.ap-404 .ap-wrap { display: flex; flex-direction: column; gap: 16px; }
.ap-404__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.ap-btn--ghost { background: transparent; box-shadow: inset 0 0 0 1px var(--ap-light); }
.ap-btn--ghost:hover, .ap-btn--ghost:focus-visible { background: var(--ap-light); color: var(--ap-dark-text); }
.ap-page-hero .ap-wrap { display: flex; flex-direction: column; gap: 16px; }
.ap-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ap-post-grid .ap-post-card__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ap-pagination { margin-top: 40px; }
.ap-pagination .nav-links { display: flex; justify-content: center; gap: 8px; }
.ap-pagination .page-numbers { transition: background-color var(--ap-t) var(--ap-ease); display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 100px; color: var(--ap-light); text-decoration: none; }
.ap-pagination .page-numbers.current, .ap-pagination .page-numbers:hover { background: var(--ap-red); }
@media (max-width: 1024px) { .ap-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .ap-post-grid { grid-template-columns: 1fr; } }

/* Animación al hacer scroll: el JS marca los bloques con .ap-reveal y agrega .is-in al entrar en pantalla.
 * Sin JS o con "reducir movimiento" no se oculta nada. */
@media (prefers-reduced-motion: no-preference) {
	/* Valores en el panel de control (:root, "MOVIMIENTO"). main.js pone --ap-i (posición dentro del grupo)
	   para escalonar, y quita .ap-reveal al terminar para que el hover de las tarjetas responda sin retraso. */
	body.ap-site .ap-reveal {
		opacity: 0;
		transform: translateY(var(--ap-reveal-distance));
		filter: blur(var(--ap-reveal-blur));
		transition:
			opacity var(--ap-reveal-fade) var(--ap-ease-soft),
			transform var(--ap-reveal-dur) var(--ap-ease-soft),
			filter var(--ap-reveal-fade) var(--ap-ease-soft);
		transition-delay: calc(var(--ap-i, 0) * var(--ap-reveal-stagger));
		will-change: opacity, transform;
	}
	body.ap-site .ap-reveal.is-in { opacity: 1; transform: none; filter: none; }
	/* Las fotos entran además con un leve zoom. */
	body.ap-site .elementor-widget-image.ap-reveal { transform: translateY(var(--ap-reveal-distance)) scale(var(--ap-reveal-scale)); }
	body.ap-site .elementor-widget-image.ap-reveal.is-in { transform: none; }

	/* Imágenes diferidas: aparecen con fundido en vez de "saltar" cuando terminan de cargar. */
	img.ap-img-wait { opacity: 0; }
	img.ap-img-ready { opacity: 1; transition: opacity var(--ap-t-slow) var(--ap-ease); }

	/* Testimonios: al cambiar de tarjeta, las visibles entran con fundido. */
	@keyframes ap-swap-in { from { opacity: 0; transform: translateY(24px) scale(.96); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
	.ap-testi__carousel.is-swapping .ap-vcard.is-prev,
	.ap-testi__carousel.is-swapping .ap-vcard.is-center,
	.ap-testi__carousel.is-swapping .ap-vcard.is-next { animation: ap-swap-in var(--ap-swap-in) var(--ap-ease-soft) both; }
	.ap-testi__carousel.is-swapping .ap-vcard.is-center { animation-delay: var(--ap-swap-stagger); }
	.ap-testi__carousel.is-swapping .ap-vcard.is-next { animation-delay: calc(2 * var(--ap-swap-stagger)); }
}

/* Tarjetas: elevación suave al pasar el mouse (solo con puntero fino, no en táctil). */
@media (hover: hover) and (pointer: fine) {
	.ap-site .ap-card, .ap-site .ap-plan, .ap-site .ap-icard, .ap-site .ap-step, .ap-site .ap-pcard, .ap-post-card, .ap-site .ap-vcard {
		transition: transform var(--ap-t) var(--ap-ease), box-shadow var(--ap-t) var(--ap-ease);
	}
	.ap-site .ap-card:hover, .ap-site .ap-plan:hover, .ap-site .ap-pcard:hover, .ap-post-card:hover {
		transform: translateY(-6px);
		box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .7);
	}
	.ap-site .ap-icard:hover, .ap-site .ap-step:hover { transform: translateY(-6px); box-shadow: 0 18px 40px -16px rgba(159, 23, 34, .6); }
	.ap-site .ap-vcard:hover { transform: translateY(-4px); }
}
