/*
 * Home (plantilla de página "Inicio").
 * Los textos, imágenes y enlaces viven en la página y se editan desde el panel.
 * Aquí solo hay estilo y decoración. Colores y tipografías salen de theme.json.
 */

:root {
	--pp-ink: var(--wp--preset--color--teal-oscuro);
	--pp-teal: var(--wp--preset--color--teal);
	--pp-sky: var(--wp--preset--color--celeste);
	--pp-coral: var(--wp--preset--color--coral);
	--pp-paper: var(--wp--preset--color--celeste-suave);
	--pp-white: var(--wp--preset--color--blanco);
	--pp-coral-soft: #ffe1e1;
	--pp-font-title: var(--wp--preset--font-family--montserrat);
	--pp-font-hand: var(--wp--preset--font-family--caveat);
}

@font-face {
	font-family: "Caveat";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/caveat-latin-700-normal.woff2") format("woff2");
}

/* ------------------------------------------------------------------ */
/* Piezas comunes                                                      */
/* ------------------------------------------------------------------ */

.pp-container {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1.25rem;
}

.pp-section {
	position: relative;
	overflow: hidden;
	margin-block: 0;
	padding-block: clamp(4rem, 9vw, 7rem);
}

/* WordPress separa los bloques hermanos con un margen automático: aquí cada pieza controla el suyo. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.pp-hero__inner > *,
.pp-cursos__grid > *,
.pp-metodo__pilares > *,
.pp-niveles > *,
.pp-carousel__track > *,
.pp-inscripcion__inner > *,
.pp-inscripcion__panel > *,
.pp-footer > * {
	margin-block: 0;
}

/* Fondo cuadriculado de la marca */
.pp-grid {
	background-color: var(--pp-white);
	background-image:
		linear-gradient(var(--pp-paper) 2px, transparent 2px),
		linear-gradient(90deg, var(--pp-paper) 2px, transparent 2px);
	background-size: 64px 64px;
	background-position: center top;
}

.pp-grid--paper {
	background-color: var(--pp-paper);
	background-image:
		linear-gradient(rgb(255 255 255 / 0.7) 2px, transparent 2px),
		linear-gradient(90deg, rgb(255 255 255 / 0.7) 2px, transparent 2px);
}

.pp-grid--dark {
	background-color: var(--pp-ink);
	background-image:
		linear-gradient(rgb(255 255 255 / 0.06) 2px, transparent 2px),
		linear-gradient(90deg, rgb(255 255 255 / 0.06) 2px, transparent 2px);
}

/* Los bloques traen su espacio entre bloques: en estas piezas lo controla la maqueta. */
.pp-stack > * {
	margin-block: 0;
}

.pp-stack {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

/* Etiqueta manuscrita sobre los títulos */
.pp-kicker {
	width: fit-content;
	margin: 0;
	color: var(--pp-coral);
	font-family: var(--pp-font-hand);
	font-size: clamp(1.8rem, 3.6vw, 2.3rem);
	font-weight: 700;
	line-height: 1;
	transform: rotate(-1.5deg);
}

/* Todo antetítulo empieza con mayúscula en todo el sitio, aunque el cliente lo escriba
   en minúscula desde el panel: no depende de recordar escribirlo así cada vez. */
.pp-kicker::first-letter {
	text-transform: uppercase;
}

.pp-center {
	text-align: center;
	align-items: center;
}

.pp-center .pp-kicker {
	margin-inline: auto;
}

.pp-lead {
	max-width: 38rem;
	margin: 0;
	color: #3f6068;
	font-size: clamp(1.05rem, 2.2vw, 1.25rem);
	text-wrap: balance;
}

.pp-center .pp-lead {
	margin-inline: auto;
}

/* Títulos de sección */
.pp-title {
	margin: 0;
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: clamp(2rem, 5vw, 3.2rem);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.02;
	text-wrap: balance;
}

/*
 * La pastilla de "etiqueta" mide más alto que el texto (el padding vertical de
 * mark.has-inline-color). Con el interlineado ajustado de .pp-title, si el título se
 * parte en dos o más líneas, la pastilla de una línea toca el texto de la otra. Regla
 * única para todo el sitio (antes se parchaba página por página; algunos héroes ya
 * tenían su propio valor más fino en pp2-hero__title y siguen mandando ahí por ser
 * más específicos).
 */
.wp-block-heading.is-style-etiqueta {
	line-height: 1.4;
}

/*
 * Mismo problema que "etiqueta": el subrayado ondulado de "ondas" mide más que el
 * texto (el padding-bottom de mark.has-inline-color). Con el interlineado ajustado
 * de .pp-title, si el título se parte en dos o más líneas, la onda de una línea toca
 * el texto de la línea de abajo.
 */
.wp-block-heading.is-style-ondas {
	line-height: 1.4;
}

/*
 * Mismo problema que "etiqueta": el garabato de "círculo" mide más alto que el texto
 * (el padding vertical de mark.has-inline-color). Con el interlineado ajustado de
 * .pp-title, si el título se parte en dos o más líneas, el círculo de una línea toca
 * el texto de la línea de arriba.
 */
.wp-block-heading.is-style-circulo {
	line-height: 1.5;
}

/*
 * Estilo de título "Con trazo curvo": el trazo de la marca bajo las palabras que el
 * cliente elija. Igual que "etiqueta", "marcador", "ondas" y "círculo", decora solo
 * lo que se selecciona y se resalta en coral en el editor (selector: mark dentro del
 * título) — no todo el título. "box-decoration-break: clone" hace que, si esa
 * selección cae partida entre dos líneas, cada línea lleve su propio trazo.
 */
.wp-block-heading.is-style-trazo mark.has-inline-color {
	padding-bottom: 0.3em;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 19' preserveAspectRatio='none'%3E%3Cpath d='M5 6.5 C80 15 212 16 295 3.5' fill='none' stroke='%23FF5757' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E") left bottom / 106% 0.34em no-repeat,
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 19' preserveAspectRatio='none'%3E%3Cpath d='M62 16 C130 18 204 18 258 14' fill='none' stroke='%236BBDCD' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E") left bottom / 106% 0.34em no-repeat !important;
	color: inherit !important;
}

/* Botones */
.pp-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem 1rem;
	margin: 0;
}

.pp-btns .wp-block-button__link {
	border: 2px solid var(--pp-ink);
	border-radius: 999px;
	box-shadow: 4px 4px 0 var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pp-btns .wp-block-button__link:hover {
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--pp-ink);
}

.pp-btns .wp-block-button__link:active {
	transform: translate(2px, 2px);
	box-shadow: 1px 1px 0 var(--pp-ink);
}

.pp-btns .is-style-outline .wp-block-button__link {
	background: var(--pp-white);
	color: var(--pp-ink);
}

/* Tarjeta "sticker" */
.pp-card {
	position: relative;
	background: var(--pp-white);
	border: 2px solid var(--pp-ink);
	border-radius: 24px;
	box-shadow: 6px 6px 0 var(--pp-sky);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pp-card:hover {
	transform: translate(-3px, -3px) rotate(-0.4deg);
	box-shadow: 9px 9px 0 var(--pp-sky);
}

/* Aparición al hacer scroll (solo si hay JavaScript) */
.pp-js .pp-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	transition-delay: var(--pp-delay, 0s);
}

.pp-js .pp-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@keyframes pp-bob {
	0%,
	100% {
		transform: translateY(0) rotate(var(--r0, 0deg));
	}

	50% {
		transform: translateY(-14px) rotate(var(--r1, 6deg));
	}
}

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */

.pp-hero {
	padding-block: clamp(3rem, 7vw, 6rem);
}

.pp-hero__inner {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.pp-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.4rem;
}

.pp-hero__copy > * {
	margin-block: 0;
}

.pp-hero__title {
	font-size: clamp(2.7rem, 7.4vw, 5.2rem);
	letter-spacing: -0.05em;
	line-height: 0.98;
}

.pp-hero__note {
	margin: 0;
	color: var(--pp-coral);
	font-family: var(--pp-font-hand);
	font-size: clamp(1.7rem, 3.4vw, 2.2rem);
	font-weight: 700;
	line-height: 1;
	transform: rotate(-2deg);
}

/* Escenario con íconos flotantes */
.pp-hero__stage {
	position: relative;
	isolation: isolate;
	width: 100%;
	max-width: 520px;
	aspect-ratio: 1 / 1;
	justify-self: end;
}

.pp-hero__stage::before {
	content: "";
	position: absolute;
	inset: 6% 4% 4% 6%;
	border: 2px solid var(--pp-sky);
	border-radius: 50%;
	background: var(--pp-paper);
	z-index: -1;
}

.pp-hero__stage > figure {
	position: absolute;
	margin: 0;
	animation: pp-bob var(--dur, 6s) ease-in-out var(--delay, 0s) infinite;
	filter: drop-shadow(0 14px 16px rgb(1 59 69 / 0.18));
}

.pp-hero__stage img {
	display: block;
	width: 100%;
	height: auto;
}

.pp-orb--seal {
	width: 66%;
	left: 17%;
	top: 30%;
	filter: none;
	--dur: 9s;
	--r0: -3deg;
	--r1: 3deg;
}

.pp-orb--a {
	width: 29%;
	left: 2%;
	top: 6%;
	--dur: 6s;
	--r0: -7deg;
	--r1: 1deg;
}

.pp-orb--b {
	width: 25%;
	right: 4%;
	top: 0;
	--dur: 7s;
	--delay: -2s;
	--r0: 8deg;
	--r1: 2deg;
}

.pp-orb--c {
	width: 24%;
	left: 4%;
	bottom: 4%;
	--dur: 8s;
	--delay: -4s;
	--r0: 4deg;
	--r1: -5deg;
}

.pp-orb--d {
	width: 31%;
	right: 0;
	bottom: 6%;
	--dur: 6.5s;
	--delay: -1s;
	--r0: -8deg;
	--r1: 0deg;
}

/* ------------------------------------------------------------------ */
/* Cursos                                                              */
/* ------------------------------------------------------------------ */

.pp-cursos__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.75rem;
	margin: clamp(2rem, 4vw, 3rem) 0 0;
}

.pp-curso {
	--acento: var(--pp-coral);
	--sobre-acento: var(--pp-white);
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	padding: 1.6rem 1.5rem 1.5rem;
}

.pp-curso:nth-child(2) {
	--acento: var(--pp-teal);
}

.pp-curso:nth-child(3) {
	--acento: var(--pp-sky);
	--sobre-acento: var(--pp-ink);
}

.pp-curso:nth-child(4) {
	--acento: var(--pp-ink);
}

.pp-curso > * {
	margin-block: 0;
}

.pp-curso__num {
	display: grid;
	place-items: center;
	width: 3.2rem;
	height: 3.2rem;
	border: 2px solid var(--pp-ink);
	border-radius: 50%;
	background: var(--acento);
	color: var(--sobre-acento);
	font-family: var(--pp-font-title);
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1;
}

.pp-curso__titulo {
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 1.6rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
}

.pp-curso__texto {
	color: #3f6068;
	font-size: 0.98rem;
	line-height: 1.55;
}

.pp-curso__tags {
	margin-top: auto !important;
	padding-top: 0.6rem;
	color: var(--pp-teal);
	font-family: var(--pp-font-title);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ------------------------------------------------------------------ */
/* Metodología                                                         */
/* ------------------------------------------------------------------ */

.pp-metodo .pp-title,
.pp-metodo .pp-lead {
	color: var(--pp-white);
}

.pp-metodo .pp-lead {
	opacity: 0.86;
}

.pp-metodo .wp-block-heading.is-style-trazo::before {
	background: var(--pp-teal);
}

.pp-metodo__pilares {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 2rem 1.5rem;
	margin: clamp(2.5rem, 5vw, 3.5rem) 0 0;
}

.pp-pilar {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
	text-align: center;
}

.pp-pilar > * {
	margin-block: 0;
}

.pp-pilar figure {
	width: clamp(96px, 12vw, 128px);
	filter: drop-shadow(0 12px 14px rgb(0 0 0 / 0.28));
	transition: transform 0.25s ease;
}

.pp-pilar:hover figure {
	transform: translateY(-6px) rotate(-5deg);
}

.pp-pilar img {
	display: block;
	width: 100%;
	height: auto;
}

.pp-pilar__titulo {
	color: var(--pp-white);
	font-family: var(--pp-font-title);
	font-size: 1.4rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pp-pilar__texto {
	max-width: 15rem;
	color: var(--pp-paper);
	font-size: 0.95rem;
	line-height: 1.55;
	opacity: 0.9;
}

/* "Cómo se juega": tres niveles */
.pp-niveles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
	margin: clamp(3rem, 6vw, 4.5rem) 0 0;
	counter-reset: nivel;
}

.pp-nivel {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1.4rem 1.4rem 1.3rem;
	border: 2px solid var(--pp-sky);
	border-radius: 20px;
	background: rgb(255 255 255 / 0.06);
	counter-increment: nivel;
}

.pp-nivel > * {
	margin-block: 0;
}

.pp-nivel::before {
	content: "Nivel " counter(nivel);
	width: fit-content;
	color: var(--pp-coral);
	font-family: var(--pp-font-hand);
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1;
}

.pp-nivel__titulo {
	color: var(--pp-white);
	font-family: var(--pp-font-title);
	font-size: 1.25rem;
	font-weight: 800;
}

.pp-nivel__texto {
	color: var(--pp-paper);
	font-size: 0.95rem;
	opacity: 0.9;
}

/* ------------------------------------------------------------------ */
/* Opiniones (carrusel)                                                */
/* ------------------------------------------------------------------ */

.pp-carousel {
	margin: clamp(2rem, 4vw, 3rem) 0 0;
}

.pp-carousel__track {
	display: flex;
	gap: 1.5rem;
	margin: 0;
	padding: 0.5rem 0.5rem 1.6rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.pp-carousel__track::-webkit-scrollbar {
	display: none;
}

.pp-slide {
	flex: 0 0 min(430px, 86%);
	scroll-snap-align: center;
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	padding: 1.8rem 1.7rem 1.6rem;
}

.pp-slide > * {
	margin-block: 0;
}

.pp-slide::before {
	content: "“";
	color: var(--pp-coral);
	font-family: var(--pp-font-title);
	font-size: 4.5rem;
	font-weight: 800;
	line-height: 0.6;
	height: 1.6rem;
}

.pp-slide__texto {
	color: var(--pp-ink);
	font-size: 1.08rem;
	line-height: 1.6;
}

.pp-slide__autor {
	margin-top: auto !important;
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 0.98rem;
	font-weight: 800;
}

.pp-slide__rol {
	color: var(--pp-teal);
	font-size: 0.85rem;
}

.pp-carousel__controles {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
}

.pp-carousel__btn {
	display: grid;
	place-items: center;
	width: 2.9rem;
	height: 2.9rem;
	padding: 0;
	border: 2px solid var(--pp-ink);
	border-radius: 50%;
	background: var(--pp-white);
	box-shadow: 3px 3px 0 var(--pp-sky);
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 1.3rem;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pp-carousel__btn:hover:not(:disabled) {
	transform: translate(-1px, -1px);
	box-shadow: 4px 4px 0 var(--pp-sky);
}

.pp-carousel__btn:disabled {
	opacity: 0.4;
	cursor: default;
}

.pp-carousel__puntos {
	display: flex;
	gap: 0.55rem;
}

.pp-carousel__punto {
	width: 0.85rem;
	height: 0.85rem;
	padding: 0;
	border: 2px solid var(--pp-ink);
	border-radius: 50%;
	background: var(--pp-white);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.pp-carousel__punto[aria-current="true"] {
	background: var(--pp-coral);
	transform: scale(1.25);
}

/* ------------------------------------------------------------------ */
/* Inscripción                                                         */
/* ------------------------------------------------------------------ */

.pp-inscripcion__inner {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

.pp-inscripcion__inner > :first-child {
	position: sticky;
	top: 7rem;
}

.pp-inscripcion__nota {
	margin: 0;
	color: #3f6068;
	font-size: 0.9rem;
}

.pp-inscripcion__panel {
	padding: clamp(1.4rem, 3vw, 2.2rem);
	box-shadow: 8px 8px 0 var(--pp-sky);
}

.pp-inscripcion__panel:hover {
	transform: none;
	box-shadow: 8px 8px 0 var(--pp-sky);
}

.pp-inscripcion__panel > * {
	margin-block: 0;
}

/* Pestañas (las crea el script; sin JavaScript se ven los dos formularios uno bajo otro) */
.pp-tabs__lista {
	display: flex;
	gap: 0.6rem;
	margin-bottom: 1.4rem;
	padding: 0.35rem;
	border: 2px solid var(--pp-ink);
	border-radius: 999px;
	background: var(--pp-paper);
}

.pp-tabs__tab {
	flex: 1;
	padding: 0.6rem 0.8rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 1rem;
	font-weight: 800;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.pp-tabs__tab[aria-selected="true"] {
	background: var(--pp-ink);
	color: var(--pp-white);
}

.pp-tabs__tab:not([aria-selected="true"]):hover {
	background: var(--pp-white);
}

.pp-tabs--js .pp-form__titulo {
	display: none;
}

/* Formulario */
.pp-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.pp-form[hidden] {
	display: none;
}

.pp-form + .pp-form {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 2px dashed var(--pp-sky);
}

.pp-tabs--js .pp-form + .pp-form {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.pp-form__titulo {
	margin: 0;
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 1.4rem;
	font-weight: 800;
}

.pp-form__trampa {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pp-form__campo {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.pp-form,
.pp-form * {
	box-sizing: border-box;
}

.pp-form label,
.pp-form legend {
	padding: 0;
	color: var(--pp-ink);
	font-family: var(--pp-font-title);
	font-size: 0.92rem;
	font-weight: 700;
}

.pp-form__opcional {
	color: var(--pp-teal);
	font-weight: 500;
}

.pp-form input[type="text"],
.pp-form input[type="email"],
.pp-form select,
.pp-form textarea {
	width: 100%;
	padding: 0.75rem 0.95rem;
	border: 2px solid var(--pp-ink);
	border-radius: 14px;
	background: var(--pp-white);
	color: var(--pp-ink);
	font: inherit;
	font-size: 1rem;
	transition: box-shadow 0.15s ease;
}

.pp-form textarea {
	resize: vertical;
	min-height: 5.5rem;
}

.pp-form input:focus-visible,
.pp-form select:focus-visible,
.pp-form textarea:focus-visible {
	outline: 3px solid var(--pp-coral);
	outline-offset: 2px;
	box-shadow: 3px 3px 0 var(--pp-sky);
}

.pp-form__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.pp-chip {
	position: relative;
	cursor: pointer;
}

.pp-chip input {
	position: absolute;
	opacity: 0;
	inset: 0;
}

.pp-chip span {
	display: inline-block;
	padding: 0.45rem 0.95rem;
	border: 2px solid var(--pp-ink);
	border-radius: 999px;
	background: var(--pp-white);
	font-family: var(--pp-font-title);
	font-size: 0.9rem;
	font-weight: 700;
	transition: background 0.15s ease, transform 0.15s ease;
}

.pp-chip:hover span {
	transform: translateY(-1px);
}

.pp-chip input:checked + span {
	background: var(--pp-sky);
}

.pp-chip input:focus-visible + span {
	outline: 3px solid var(--pp-coral);
	outline-offset: 2px;
}

.pp-form__consentimiento {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.pp-check {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-family: var(--wp--preset--font-family--poppins) !important;
	font-size: 0.88rem !important;
	font-weight: 400 !important;
	line-height: 1.45;
	cursor: pointer;
}

.pp-check input {
	flex: none;
	width: 1.2rem;
	height: 1.2rem;
	margin-top: 0.1rem;
	accent-color: var(--pp-coral);
}

.pp-form__enviar {
	align-self: flex-start;
	padding: 0.8rem 1.9rem;
	border: 2px solid var(--pp-ink);
	border-radius: 999px;
	background: var(--pp-coral);
	box-shadow: 4px 4px 0 var(--pp-ink);
	color: var(--pp-white);
	font-family: var(--pp-font-title);
	font-size: 1.2rem;
	font-weight: 800;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pp-form__enviar:hover {
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--pp-ink);
}

.pp-form__enviar:active {
	transform: translate(2px, 2px);
	box-shadow: 1px 1px 0 var(--pp-ink);
}

.pp-form__aviso {
	margin: 0;
	padding: 0.8rem 1rem;
	border: 2px solid var(--pp-ink);
	border-radius: 14px;
	font-size: 0.95rem;
}

.pp-form__aviso--ok {
	background: #dff5ea;
}

.pp-form__aviso--error {
	background: var(--pp-coral-soft);
}

/* ------------------------------------------------------------------ */
/* Pie de página y botón de WhatsApp                                   */
/* ------------------------------------------------------------------ */

.pp-footer {
	position: relative;
	color: var(--pp-paper);
}

.pp-footer__inner {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 2.5rem;
	padding-block: clamp(3rem, 6vw, 4.5rem) 2rem;
}

.pp-footer__inner > * {
	margin-block: 0;
}

.pp-footer__logo {
	width: 150px;
	margin: 0 0 1rem !important;
}

.pp-footer__logo img {
	display: block;
	width: 100%;
	height: auto;
}

.pp-footer h2,
.pp-footer h3 {
	margin: 0 0 0.9rem;
	color: var(--pp-white);
	font-family: var(--pp-font-title);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0;
}

.pp-footer p {
	margin: 0 0 0.6rem;
	font-size: 0.95rem;
}

.pp-footer a {
	color: var(--pp-white);
	text-decoration: none;
	background: linear-gradient(var(--pp-coral), var(--pp-coral)) 0 100% / 0 2px no-repeat;
	transition: background-size 0.3s ease;
}

.pp-footer a:hover {
	background-size: 100% 2px;
}

.pp-footer__lista {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pp-footer__lista li {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
}

.pp-footer__tagline {
	color: var(--pp-sky);
	font-family: var(--pp-font-title);
	font-size: 0.76rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pp-footer__legal {
	padding-block: 1.2rem 1.6rem;
	border-top: 1px solid rgb(255 255 255 / 0.16);
	font-size: 0.85rem;
	opacity: 0.85;
}

.pp-footer__legal p {
	margin: 0;
	font-size: 0.85rem;
}

/* WhatsApp flotante (un botón normal, editable: texto y enlace) */
.pp-whatsapp {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 90;
	margin: 0;
}

.pp-whatsapp .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.65rem 1.15rem 0.65rem 0.95rem;
	border: 2px solid var(--pp-ink);
	border-radius: 999px;
	background: var(--pp-teal);
	box-shadow: 4px 4px 0 var(--pp-ink);
	color: var(--pp-white);
	font-family: var(--pp-font-title);
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pp-whatsapp .wp-block-button__link::before {
	content: "";
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.46-2.4-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.62-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.8.37-.27.3-1.04 1.02-1.04 2.48 0 1.46 1.07 2.88 1.21 3.07.15.2 2.1 3.2 5.08 4.49.7.3 1.26.49 1.69.62.71.23 1.36.2 1.87.12.57-.09 1.76-.72 2.01-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35M12.05 21.78h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.83 9.83 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88M20.46 3.49A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89 0-3.18-1.24-6.16-3.48-8.42'/%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 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.46-2.4-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.62-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.8.37-.27.3-1.04 1.02-1.04 2.48 0 1.46 1.07 2.88 1.21 3.07.15.2 2.1 3.2 5.08 4.49.7.3 1.26.49 1.69.62.71.23 1.36.2 1.87.12.57-.09 1.76-.72 2.01-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35M12.05 21.78h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.83 9.83 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88M20.46 3.49A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89 0-3.18-1.24-6.16-3.48-8.42'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pp-whatsapp .wp-block-button__link:hover {
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--pp-ink);
}

/* ------------------------------------------------------------------ */
/* Pantallas medianas y móviles                                        */
/* ------------------------------------------------------------------ */

/* El botón de WhatsApp es fijo: al final de la página no debe quedar sobre el texto legal. */
@media (max-width: 1024px) {
	.pp-footer__legal {
		padding-bottom: 5.5rem;
	}
}

/* Enlaces del pie: zona táctil cómoda (mínimo ~44px) en pantallas táctiles. */
@media (max-width: 900px) {
	.pp-footer__lista a,
	.pp-footer p a {
		display: inline-block;
		padding-block: 0.6rem;
	}

	.pp-footer__lista li {
		margin: 0;
	}
}

@media (max-width: 900px) {
	.pp-hero__inner,
	.pp-inscripcion__inner {
		grid-template-columns: 1fr;
	}

	.pp-inscripcion__inner > :first-child {
		position: static;
	}

	.pp-hero__stage {
		justify-self: center;
		max-width: 420px;
	}

	.pp-niveles {
		grid-template-columns: 1fr;
	}

	.pp-footer__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
		text-align: center;
	}

	.pp-footer__logo {
		margin-inline: auto !important;
	}

	.pp-footer__legal {
		text-align: center;
	}
}

@media (max-width: 600px) {
	.pp-btns .wp-block-button__link {
		font-size: 1.1rem;
	}

	.pp-tabs__tab {
		font-size: 0.9rem;
	}

	.pp-whatsapp .wp-block-button__link {
		padding: 0.75rem;
		font-size: 0;
		gap: 0;
	}

	.pp-whatsapp .wp-block-button__link::before {
		width: 1.7rem;
		height: 1.7rem;
	}
}

/* Respeto por usuarios que prefieren menos movimiento */
@media (prefers-reduced-motion: reduce) {
	.pp-hero__stage > figure {
		animation: none;
	}

	.pp-js .pp-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.pp-carousel__track {
		scroll-behavior: auto;
	}
}
