/*
Theme Name: Castillos Hinchables Valencia
Theme URI: https://castillohinchablevalencia.es
Author: Castillos Hinchables Valencia
Description: Tema a medida para castillohinchablevalencia.es - alquiler de castillos hinchables en Valencia. Paleta y tipografia estilo Playium (navy #092348 + verde azulado #37AD9F, Space Grotesk / Inter), como alquilacastilloshinchables.es. Soporte completo para WooCommerce y reservas.
Version: 3.7.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: partybaby
Tags: woocommerce, custom-menu, featured-images, responsive
*/

/* ==========================================================================
   1. SISTEMA DE DISENO - Tokens
   ========================================================================== */

:root {
	/* --- Neutros calidos ---------------------------------------------------
	 * El gris de Apple (#F5F5F7) es frio: sobre una marca infantil lee a
	 * clinica. Misma disciplina, temperatura desplazada al calido.
	 * -------------------------------------------------------------------- */
	--pb-white:      #FFFFFF;
	--pb-cream:      #FFFFFF;
	--pb-cream-2:    #F7F6FD;
	--pb-cream-3:    #ECEAF7;

	/* --- Acento 1: coral ---------------------------------------------------
	 * El color de accion. Calido, salta sobre el fondo neutro y no compite
	 * con ningun otro elemento de interfaz, que es lo que de verdad hace
	 * que se pulse un boton.
	 *   --pb-coral    marca. Titulares, bordes, aros de foco, tintes.
	 *                 3.10:1 sobre blanco: SOLO texto grande, nunca fondo
	 *                 de boton.
	 *   --pb-coral-2  fondo de boton. Blanco encima 4.56:1, cumple AA.
	 *   --pb-coral-3  el mismo boton en hover. 6.44:1.
	 * -------------------------------------------------------------------- */
	/* Estilo Playium (como alquilacastilloshinchables.es): el color de acción
	 * es el verde azulado #37AD9F. Se conserva el nombre de token "coral"
	 * para no reescribir el resto de la hoja. */
	--pb-coral:      #37AD9F;
	--pb-coral-2:    #2C9384;
	--pb-coral-3:    #24796F;
	--pb-coral-soft: #E4F4F1;
	--pb-grad:       linear-gradient(120deg, #37AD9F 0%, #5FC9BD 100%);

	/* --- Acento 2: verde azulado ------------------------------------------
	 * Complementario del coral, asi que se distingue sin discutir con el.
	 * Lee a agua y a limpio (van bien para los hinchables acuaticos) y esta
	 * lo bastante lejos del verde de WhatsApp para que nadie confunda un
	 * enlace informativo con "abre el chat".
	 * Blanco encima: 5.47:1 (AA).
	 * -------------------------------------------------------------------- */
	--pb-teal:       #092348;
	--pb-teal-2:     #061A38;
	--pb-teal-soft:  #E7EBF3;

	/* --- Acento 3: sol -----------------------------------------------------
	 * La chispa de fiesta, en dosis pequenas: distintivos, estrellas,
	 * subrayados. Como fondo pide tinta encima (10.46:1), nunca blanco.
	 * -------------------------------------------------------------------- */
	--pb-sun:        #F8C13A;
	--pb-sun-deep:   #5A3D00;
	--pb-sun-soft:   #FEF3D6;

	/* --- Tokens heredados, reasignados a la base calida --------------------
	 * El resto de la hoja los llama por su nombre antiguo. Se conservan para
	 * no reescribir 60 reglas, pero ya no son lavanda ni gris frio.
	 * -------------------------------------------------------------------- */
	--pb-lav:        #F7F6FD;   /* fondo suave / hover (lila muy claro) */
	--pb-lav-2:      #E7E4F5;   /* bordes y separadores */
	--pb-lav-3:      #B6BECD;   /* gris medio frio */
	--pb-lav-deep:   #092348;   /* "primario" = navy Playium */

	/* Tintes de categoria: derivados de los tres acentos, muy lavados, solo
	   para diferenciar tarjetas de un vistazo. */
	--pb-mint:       var(--pb-coral-soft);
	--pb-mint-2:     #C9E9E4;
	--pb-mint-deep:  var(--pb-coral);

	--pb-peach:      #EAF1FA;
	--pb-peach-2:    #D3E2EF;
	--pb-peach-deep: var(--pb-coral-2);

	--pb-sky:        #EEF3F8;
	--pb-sky-2:      #D3E2EF;
	--pb-sky-deep:   #23628A;

	--pb-butter:     var(--pb-sun-soft);
	--pb-butter-2:   #F4E4B4;
	--pb-butter-deep:var(--pb-sun-deep);

	--pb-rose:       #F1F0FB;
	--pb-rose-2:     #DAD6EF;
	--pb-rose-deep:  #5B51A6;

	/* --- Roles --- */
	--pb-primary:      #092348;   /* navy Playium: titulares fuertes, cabecera */
	--pb-primary-soft: #F7F6FD;
	--pb-accent:       var(--pb-coral);
	--pb-accent-soft:  var(--pb-coral-soft);

	/* --- Texto: jerarquia de tres niveles, todos AA sobre blanco --- */
	--pb-ink:        #1F2B45;   /* navy oscuro: titulares y cuerpo */
	--pb-ink-soft:   #4C5A72;
	--pb-ink-muted:  #71809A;
	--pb-line:       #E7E4F5;
	--pb-line-2:     #D7D3EA;

	--pb-ok:         #1D8A4E;
	--pb-alert:      #C42B1C;
	--pb-whatsapp:   #25D366;
	/* --- Tipografia -------------------------------------------------------
	 * Estilo Playium, igual que alquilacastilloshinchables.es:
	 * Space Grotesk (titulares, algo geometrico y con caracter) + Inter
	 * (cuerpo). Fallback al system-ui si Google Fonts no cargara.
	 * -------------------------------------------------------------------- */
	--pb-font-head: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
	--pb-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

	--pb-t-xs:   0.8125rem;
	--pb-t-sm:   0.9375rem;
	--pb-t-base: 1.0625rem;
	--pb-t-lg:   clamp(1.1875rem, 0.5vw + 1.1rem, 1.375rem);
	--pb-t-xl:   clamp(1.375rem, 1vw + 1.15rem, 1.75rem);
	--pb-t-2xl:  clamp(1.75rem, 2vw + 1.3rem, 2.5rem);
	--pb-t-3xl:  clamp(2.25rem, 3.4vw + 1.4rem, 3.75rem);
	--pb-t-4xl:  clamp(2.75rem, 5.5vw + 1.2rem, 5.5rem);

	/* Interletrado negativo en titulares: la firma tipografica de Apple. */
	--pb-track-tight:  -0.022em;
	--pb-track-tighter:-0.035em;

	/* --- Espaciado: mas aire que antes --- */
	--pb-s-1: 0.25rem;
	--pb-s-2: 0.5rem;
	--pb-s-3: 0.75rem;
	--pb-s-4: 1rem;
	--pb-s-5: 1.5rem;
	--pb-s-6: 2rem;
	--pb-s-7: 3rem;
	--pb-s-8: 4rem;
	--pb-section: clamp(4rem, 8vw, 8rem);

	/* --- Formas: el radio continuo de iOS --- */
	--pb-r-sm:   10px;
	--pb-r-md:   14px;
	--pb-r-lg:   20px;
	--pb-r-xl:   28px;
	--pb-r-pill: 980px;

	/* --- Sombras: neutras y muy contenidas --- */
	--pb-shadow-sm:  0 1px 3px rgba(9, 35, 72, 0.05), 0 1px 2px rgba(9, 35, 72, 0.04);
	--pb-shadow-md:  0 4px 16px rgba(9, 35, 72, 0.08), 0 1px 4px rgba(9, 35, 72, 0.05);
	--pb-shadow-lg:  0 18px 48px rgba(9, 35, 72, 0.12), 0 4px 12px rgba(9, 35, 72, 0.06);
	--pb-shadow-cta: 0 6px 20px rgba(55, 173, 159, 0.32);

	/* --- Layout --- */
	--pb-wrap: 1240px;
	--pb-wrap-narrow: 760px;
	--pb-header-h: 64px;

	--pb-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ==========================================================================
   2. RESET Y BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--pb-header-h) + 1rem);
}

body {
	margin: 0;
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-base);
	line-height: 1.68;
	color: var(--pb-ink);
	background: var(--pb-cream);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--pb-font-head);
	font-weight: 700;
	line-height: 1.08;
	color: var(--pb-ink);
	margin: 0 0 var(--pb-s-4);
	letter-spacing: var(--pb-track-tight);
	text-wrap: balance;
}

/* Cuanto mas grande el titular, mas se cierra el interletrado. */
h1 { font-size: var(--pb-t-4xl); letter-spacing: var(--pb-track-tighter); }
h2 { font-size: var(--pb-t-3xl); letter-spacing: var(--pb-track-tighter); }
h3 { font-size: var(--pb-t-2xl); }
h4 { font-size: var(--pb-t-xl); }
h5 { font-size: var(--pb-t-lg); line-height: 1.25; }

p { margin: 0 0 var(--pb-s-4); }
p:last-child { margin-bottom: 0; }

a {
	color: var(--pb-primary);
	text-decoration: none;
	transition: color 0.2s var(--pb-ease);
}
a:hover { color: var(--pb-accent); }

img, svg, video { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 var(--pb-s-4); padding-left: 1.3em; }
li { margin-bottom: var(--pb-s-2); }

strong, b { font-weight: 700; color: var(--pb-ink); }

hr { border: 0; height: 1px; background: var(--pb-line); margin: var(--pb-s-7) 0; }

blockquote {
	margin: var(--pb-s-6) 0;
	padding: var(--pb-s-5) var(--pb-s-6);
	background: var(--pb-lav);
	border-left: 4px solid var(--pb-lav-3);
	border-radius: 0 var(--pb-r-md) var(--pb-r-md) 0;
	font-size: var(--pb-t-lg);
	font-family: var(--pb-font-head);
}

:focus-visible {
	outline: 3px solid var(--pb-lav-3);
	outline-offset: 2px;
	border-radius: 6px;
}

::selection { background: var(--pb-lav-2); color: var(--pb-ink); }

.pb-sr-only {
	position: absolute; width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.pb-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 9999;
	background: var(--pb-primary); color: #fff;
	padding: var(--pb-s-3) var(--pb-s-5);
	font-weight: 700; border-radius: 0 0 var(--pb-r-md) 0;
}
.pb-skip-link:focus { left: 0; }

/* ==========================================================================
   3. LAYOUT
   ========================================================================== */

.pb-wrap {
	width: 100%;
	max-width: var(--pb-wrap);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
}
.pb-wrap--narrow { max-width: var(--pb-wrap-narrow); }

.pb-section { padding-block: var(--pb-section); }
.pb-section--tight { padding-block: clamp(2rem, 4vw, 3.5rem); }

.pb-section--cream { background: var(--pb-cream-2); }
.pb-section--white { background: var(--pb-white); }

/* Seccion pastel destacada (antes era la oscura) */
.pb-section--night {
	background: linear-gradient(150deg, var(--pb-lav) 0%, var(--pb-sky) 55%, var(--pb-mint) 100%);
	color: var(--pb-ink);
}

.pb-grid { display: grid; gap: var(--pb-s-5); }
.pb-grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.pb-grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pb-grid--4 { grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); }

/* Rejilla de categorias de la portada: son 5 tarjetas. Con columnas fijas la
   ultima fila (2 tarjetas) mantiene el mismo ancho que las de arriba en vez de
   estirarse; asi no se ve "en dos filas irregulares". */
.pb-grid--cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 900px) {
	.pb-grid--cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.pb-grid--cats { grid-template-columns: 1fr; }
}

.pb-section-head {
	text-align: center;
	max-width: 700px;
	margin: 0 auto var(--pb-s-7);
}
.pb-section-head p {
	font-size: var(--pb-t-lg);
	color: var(--pb-ink-soft);
	margin-top: var(--pb-s-3);
}

.pb-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--pb-s-2);
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pb-primary);
	background: var(--pb-lav);
	padding: 0.45em 1em;
	border-radius: var(--pb-r-pill);
	margin-bottom: var(--pb-s-4);
}
.pb-eyebrow svg { width: 15px; height: 15px; }

/* ==========================================================================
   4. BOTONES
   ========================================================================== */

.pb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pb-s-2);
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-sm);
	font-weight: 700;
	letter-spacing: 0.005em;
	line-height: 1;
	padding: 1em 1.9em;
	border: 2px solid transparent;
	border-radius: var(--pb-r-pill);
	cursor: pointer;
	text-align: center;
	transition: transform 0.2s var(--pb-ease), box-shadow 0.2s var(--pb-ease),
	            background 0.2s var(--pb-ease), color 0.2s var(--pb-ease),
	            border-color 0.2s var(--pb-ease);
}
.pb-btn svg { width: 18px; height: 18px; flex: none; }
/* Apple no levanta los botones al pasar por encima: los oscurece un poco y
   los hunde levemente al pulsar. Se nota mas solido. */
.pb-btn:active { transform: scale(0.97); }

/* La accion principal es coral, no negra. --pb-primary vale casi negro
   porque gobierna texto y enlaces; si el boton lo hereda, la pagina entera
   se queda sin un solo punto de color. */
.pb-btn--primary {
	background: var(--pb-coral-2);
	color: #fff;
	box-shadow: var(--pb-shadow-cta);
}
.pb-btn--primary:hover { background: var(--pb-coral-3); color: #fff; }

/* Solida pero neutra, para acciones que no deben competir con la reserva. */
.pb-btn--ink { background: var(--pb-ink); color: #fff; }
.pb-btn--ink:hover { background: #000; color: #fff; }

.pb-btn--accent {
	background: var(--pb-accent);
	color: #fff;
	box-shadow: 0 10px 26px rgba(55, 173, 159, 0.32);
}
.pb-btn--accent:hover { background: var(--pb-coral-3); color: #fff; }

.pb-btn--whatsapp {
	background: #25D366;
	color: #08361C;
	box-shadow: 0 10px 26px rgba(37, 211, 102, 0.28);
}
.pb-btn--whatsapp:hover { background: #1FBE5B; color: #08361C; }

/* Sobre fondo pastel claro */
.pb-btn--ghost {
	background: rgba(255,255,255,0.75);
	color: var(--pb-ink);
	border-color: var(--pb-line-2);
	backdrop-filter: blur(6px);
}
.pb-btn--ghost:hover {
	background: #fff;
	border-color: var(--pb-lav-3);
	color: var(--pb-primary);
}

.pb-btn--outline {
	background: transparent;
	color: var(--pb-primary);
	border-color: var(--pb-lav-2);
}
.pb-btn--outline:hover {
	background: var(--pb-lav);
	border-color: var(--pb-lav-3);
	color: var(--pb-primary);
}

.pb-btn--sm { font-size: var(--pb-t-xs); padding: 0.8em 1.4em; }
.pb-btn--block { width: 100%; }

/* ==========================================================================
   5. CABECERA
   ========================================================================== */

/* --- Barra superior: fina, pastel, informativa --- */
.pb-topbar {
	background: var(--pb-lav);
	color: var(--pb-ink-soft);
	font-size: var(--pb-t-xs);
	font-weight: 600;
	padding-block: 0.5rem;
	border-bottom: 1px solid var(--pb-lav-2);
}
.pb-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pb-s-5);
	flex-wrap: wrap;
}
.pb-topbar a { color: var(--pb-ink); }
.pb-topbar a:hover { color: var(--pb-primary); }
.pb-topbar__items { display: flex; gap: var(--pb-s-5); flex-wrap: wrap; align-items: center; }
.pb-topbar__item { display: inline-flex; align-items: center; gap: 0.45em; }
.pb-topbar__item svg { width: 14px; height: 14px; flex: none; color: var(--pb-lav-3); }
.pb-topbar__item--strong { font-weight: 800; }
.pb-topbar__item--strong svg { color: var(--pb-primary); }

/* --- Franja Fallas: acento "sol", tinta oscura encima segun la regla del
   token (10.46:1). Va debajo de la topbar y por encima de la cabecera, en
   todas las paginas. --- */
.pb-fallas-strip {
	display: block;
	background: var(--pb-sun);
	color: var(--pb-sun-deep);
	text-decoration: none;
	border-bottom: 1px solid #E0A926;
}
.pb-fallas-strip:hover,
.pb-fallas-strip:focus-visible { background: #F5B824; }
.pb-fallas-strip__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--pb-s-4);
	padding-block: 0.55rem;
	flex-wrap: nowrap;
}
.pb-fallas-strip__text {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-size: var(--pb-t-xs);
	font-weight: 700;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.pb-fallas-strip__icon { width: 15px; height: 15px; flex: none; }
.pb-fallas-strip__text--short { display: none; }
.pb-fallas-strip__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	font-size: var(--pb-t-xs);
	font-weight: 800;
	flex: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.pb-fallas-strip__cta svg { width: 13px; height: 13px; }

@media (max-width: 640px) {
	.pb-fallas-strip__text--full { display: none; }
	.pb-fallas-strip__text--short { display: inline; }
	/* Debajo de 640px el texto corto + el CTA ya no caben en una sola
	   linea sin apretujarse (probado hasta 320px): se apilan en dos
	   lineas centradas en lugar de recortar el texto con ellipsis. */
	.pb-fallas-strip__inner {
		flex-direction: column;
		flex-wrap: wrap;
		gap: 0.3rem;
		padding-block: 0.6rem;
	}
	.pb-fallas-strip__text {
		white-space: normal;
		text-align: center;
		overflow: visible;
		text-overflow: clip;
	}
}

/* --- Cabecera principal --- */
.pb-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(14px) saturate(1.3);
	border-bottom: 1px solid transparent;
	transition: box-shadow 0.25s var(--pb-ease), border-color 0.25s var(--pb-ease);
}
.pb-header.is-stuck {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.06);
	border-bottom-color: var(--pb-line);
}

/* Rejilla de tres zonas: marca | navegacion | acciones */
.pb-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--pb-s-5);
	min-height: var(--pb-header-h);
}

/* --- Distintivo de marca ------------------------------------------------
 * Vector + texto real, no un PNG. El arco hereda el coral; el nombre, la
 * tinta. La bajada dice a que se dedica el negocio en la primera linea que
 * se lee de la pagina, que es la mitad del trabajo de una cabecera.
 * ---------------------------------------------------------------------- */
.pb-logo,
.pb-footer__logo {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: var(--pb-s-3);
	text-decoration: none;
	color: inherit;
}
.pb-logo img,
.pb-footer__logo img { max-height: 56px; width: auto; }

.pb-logo__mark {
	flex: none;
	display: block;
	width: 42px; height: 42px;
	color: var(--pb-coral);
	transition: transform 0.35s var(--pb-ease);
}
.pb-logo__mark svg { display: block; width: 100%; height: 100%; }

/* El castillo da un salto corto al pasar por encima: es un hinchable. */
.pb-logo:hover .pb-logo__mark,
.pb-footer__logo:hover .pb-logo__mark { transform: translateY(-2px); }

.pb-logo__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: var(--pb-font-head);
	color: var(--pb-ink);
}
.pb-logo__name {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: var(--pb-track-tighter);
}
.pb-logo__tag {
	font-size: 0.625rem;
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--pb-ink-muted);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.pb-logo:hover .pb-logo__mark,
	.pb-footer__logo:hover .pb-logo__mark { transform: none; }
}

/* --- Navegacion centrada --- */
.pb-nav { justify-self: center; }
.pb-nav ul {
	display: flex;
	align-items: center;
	gap: var(--pb-s-1);
	list-style: none;
	margin: 0;
	padding: 0;
}
.pb-nav li { margin: 0; position: relative; }

.pb-nav a {
	display: block;
	font-family: var(--pb-font-body);
	font-weight: 600;
	font-size: var(--pb-t-sm);
	color: var(--pb-ink);
	padding: 0.6em 0.95em;
	border-radius: var(--pb-r-pill);
	white-space: nowrap;
	transition: background 0.2s var(--pb-ease), color 0.2s var(--pb-ease);
}
.pb-nav a:hover,
.pb-nav .current-menu-item > a,
.pb-nav .current-menu-parent > a,
.pb-nav .current-menu-ancestor > a {
	background: var(--pb-lav);
	color: var(--pb-primary);
}

.pb-nav .sub-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%) translateY(-6px);
	min-width: 235px;
	flex-direction: column;
	align-items: stretch;
	gap: 2px;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-md);
	box-shadow: var(--pb-shadow-lg);
	padding: var(--pb-s-2);
	opacity: 0;
	visibility: hidden;
	transition: all 0.2s var(--pb-ease);
}
.pb-nav li:hover > .sub-menu,
.pb-nav li:focus-within > .sub-menu {
	opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.pb-nav .sub-menu a { border-radius: var(--pb-r-sm); padding: 0.62em 0.9em; }
.pb-nav .menu-item-has-children > a::after {
	content: '';
	display: inline-block;
	width: 0.38em; height: 0.38em;
	margin-left: 0.5em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	opacity: 0.5;
}

/* --- Acciones agrupadas --- */
.pb-header__actions {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: var(--pb-s-2);
}

/* Grupo de iconos con separador visual respecto al CTA */
.pb-header__icons {
	display: flex;
	align-items: center;
	gap: var(--pb-s-1);
	padding-right: var(--pb-s-3);
	margin-right: var(--pb-s-1);
	border-right: 1px solid var(--pb-line-2);
}

.pb-icon-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	border-radius: 50%;
	border: 0;
	background: transparent;
	color: var(--pb-ink);
	cursor: pointer;
	transition: background 0.2s var(--pb-ease), color 0.2s var(--pb-ease);
}
.pb-icon-btn:hover { background: var(--pb-lav); color: var(--pb-primary); }
.pb-icon-btn svg { width: 20px; height: 20px; }

.pb-cart-count {
	position: absolute;
	top: 2px; right: 0;
	min-width: 19px; height: 19px;
	padding: 0 5px;
	display: grid; place-items: center;
	background: var(--pb-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	border-radius: var(--pb-r-pill);
	border: 2px solid var(--pb-cream);
}

.pb-burger { display: none; }

/* Buscador desplegable */
.pb-searchbar {
	display: none;
	border-top: 1px solid var(--pb-line);
	background: var(--pb-white);
	padding-block: var(--pb-s-4);
}
.pb-searchbar.is-open { display: block; }

/* ==========================================================================
   6. MENU MOVIL
   ========================================================================== */

.pb-mobile-nav {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(88vw, 370px);
	background: var(--pb-cream);
	z-index: 900;
	transform: translateX(100%);
	transition: transform 0.32s var(--pb-ease);
	overflow-y: auto;
	padding: var(--pb-s-5);
	box-shadow: var(--pb-shadow-lg);
}
.pb-mobile-nav.is-open { transform: translateX(0); }

.pb-mobile-nav__head {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: var(--pb-s-5);
	padding-bottom: var(--pb-s-4);
	border-bottom: 1px solid var(--pb-line);
}

.pb-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.pb-mobile-nav li { margin: 0; border-bottom: 1px solid var(--pb-line); }
.pb-mobile-nav a {
	display: block;
	font-family: var(--pb-font-head);
	font-weight: 600;
	font-size: var(--pb-t-lg);
	color: var(--pb-ink);
	padding: 0.8em 0;
}
.pb-mobile-nav .sub-menu { padding-left: var(--pb-s-4); }
.pb-mobile-nav .sub-menu a {
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-base);
	font-weight: 600;
	color: var(--pb-ink-soft);
}
.pb-mobile-nav .sub-menu li:last-child { border-bottom: 0; }

.pb-mobile-nav__cta { margin-top: var(--pb-s-6); display: grid; gap: var(--pb-s-3); }

.pb-overlay {
	position: fixed; inset: 0;
	background: rgba(0, 0, 0, 0.38);
	backdrop-filter: blur(2px);
	z-index: 850;
	opacity: 0; visibility: hidden;
	transition: opacity 0.3s var(--pb-ease), visibility 0.3s;
}
.pb-overlay.is-open { opacity: 1; visibility: visible; }

/* ==========================================================================
   7. HERO  (mitad de alto que antes)
   ========================================================================== */

.pb-hero {
	position: relative;
	/* Blanco limpio. El color lo pone la foto del hinchable, no el fondo. */
	background: var(--pb-white);
	color: var(--pb-ink);
	overflow: hidden;
	padding-block: clamp(2.5rem, 5vw, 5rem);
}

/* El confeti se queda, pero casi invisible: un gris que solo se intuye. */
.pb-hero__stars { position: absolute; inset: 0; pointer-events: none; }
.pb-hero__stars span {
	position: absolute;
	border-radius: 50%;
	background: var(--pb-lav-3);
	opacity: 0.18;
	animation: pb-float 7s infinite ease-in-out;
}

@keyframes pb-float {
	0%, 100% { transform: translateY(0) scale(0.85); opacity: 0.10; }
	50%      { transform: translateY(-12px) scale(1.15); opacity: 0.26; }
}

.pb-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1.02fr 0.98fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.pb-hero h1 {
	font-size: var(--pb-t-4xl);
	color: var(--pb-ink);
	margin-bottom: var(--pb-s-4);
}
/* El golpe de color del titular: relleno en degradado verde azulado,
   la firma visual de Playium (como alquilacastilloshinchables.es). */
.pb-hero h1 em {
	font-style: normal;
	background: var(--pb-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.pb-hero__lead {
	font-size: var(--pb-t-lg);
	line-height: 1.42;
	color: var(--pb-ink-soft);
	max-width: 34ch;
	margin-bottom: var(--pb-s-6);
}

.pb-hero__cta { display: flex; flex-wrap: wrap; gap: var(--pb-s-3); margin-bottom: var(--pb-s-5); }

.pb-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pb-s-2) var(--pb-s-5);
	font-size: var(--pb-t-xs);
	font-weight: 600;
	color: var(--pb-ink-soft);
}
.pb-hero__trust span { display: inline-flex; align-items: center; gap: 0.4em; }
.pb-hero__trust svg { width: 15px; height: 15px; color: var(--pb-mint-deep); flex: none; }

.pb-hero__media { position: relative; }
.pb-hero__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	max-height: 460px;
	object-fit: cover;
	/* Sin marco blanco: la foto llega hasta el borde redondeado, como en
	   las fichas de producto de Apple. */
	border-radius: var(--pb-r-xl);
	box-shadow: var(--pb-shadow-lg);
}

.pb-hero__badge {
	position: absolute;
	bottom: -16px; left: -14px;
	background: var(--pb-white);
	color: var(--pb-ink);
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-3) var(--pb-s-4);
	box-shadow: var(--pb-shadow-md);
	display: flex; align-items: center; gap: var(--pb-s-3);
	max-width: 232px;
}
.pb-hero__badge strong {
	display: block;
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-lg);
	line-height: 1.1;
}
.pb-hero__badge small { color: var(--pb-ink-muted); font-size: var(--pb-t-xs); }
.pb-hero__badge-icon {
	width: 42px; height: 42px; flex: none;
	display: grid; place-items: center;
	background: var(--pb-butter);
	border-radius: 50%;
}
.pb-hero__badge-icon svg { width: 21px; height: 21px; color: var(--pb-butter-deep); }

.pb-hero__wave { position: absolute; bottom: -1px; left: 0; width: 100%; z-index: 1; line-height: 0; }
.pb-hero__wave svg { width: 100%; height: auto; display: block; }

/* ==========================================================================
   8. TARJETAS DE CATEGORIA
   ========================================================================== */

.pb-cat-card {
	position: relative;
	display: block;
	border-radius: var(--pb-r-lg);
	overflow: hidden;
	background: var(--pb-lav);
	aspect-ratio: 4 / 3;
	box-shadow: var(--pb-shadow-sm);
	transition: transform 0.3s var(--pb-ease), box-shadow 0.3s var(--pb-ease);
}
.pb-cat-card:hover { transform: translateY(-3px); box-shadow: var(--pb-shadow-lg); }

.pb-cat-card img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--pb-ease);
}
.pb-cat-card:hover img { transform: scale(1.06); }

.pb-cat-card__body {
	position: absolute; inset: auto 0 0 0;
	padding: var(--pb-s-5);
	background: linear-gradient(to top, rgba(0,0,0,0.80) 15%, rgba(0,0,0,0.34) 55%, transparent);
	color: var(--pb-white);
}
.pb-cat-card__body h3 {
	color: var(--pb-white);
	font-size: var(--pb-t-xl);
	margin-bottom: 2px;
}
.pb-cat-card__meta {
	font-size: var(--pb-t-xs);
	font-weight: 600;
	color: rgba(255,255,255,0.85);
	display: flex; align-items: center; gap: var(--pb-s-2);
}
.pb-cat-card__arrow {
	position: absolute;
	top: var(--pb-s-4); right: var(--pb-s-4);
	width: 38px; height: 38px;
	display: grid; place-items: center;
	background: rgba(255,255,255,0.9);
	border-radius: 50%;
	color: var(--pb-primary);
	transition: all 0.25s var(--pb-ease);
}
.pb-cat-card__arrow svg { width: 17px; height: 17px; }
.pb-cat-card:hover .pb-cat-card__arrow { background: var(--pb-white); transform: translateX(3px); }

/* ==========================================================================
   9. WOOCOMMERCE - Rejilla y tarjeta de producto
   ========================================================================== */

.woocommerce ul.products,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(245px, 1fr));
	gap: var(--pb-s-5);
	list-style: none;
	margin: 0 0 var(--pb-s-7);
	padding: 0;
}
/* Respetamos el numero de columnas que pide WooCommerce (clase columns-N) en
   escritorio para que la rejilla no salte de 4 a 5 sola y las filas queden
   parejas. En tablet y movil mandan las reglas responsive de mas abajo. */
@media (min-width: 990px) {
	.woocommerce ul.products.columns-2,
	ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce ul.products.columns-3,
	ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.woocommerce ul.products.columns-4,
	ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.woocommerce ul.products.columns-5,
	ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }

.woocommerce ul.products li.product,
ul.products li.product {
	position: relative;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0;
	display: flex;
	flex-direction: column;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-lg);
	overflow: hidden;
	box-shadow: var(--pb-shadow-sm);
	transition: transform 0.28s var(--pb-ease), box-shadow 0.28s var(--pb-ease), border-color 0.28s var(--pb-ease);
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-5px);
	box-shadow: var(--pb-shadow-md);
	border-color: var(--pb-lav-2);
}

.woocommerce ul.products li.product a img,
ul.products li.product a img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0;
	box-shadow: none;
	border-radius: 0;
	background: var(--pb-lav);
}

.woocommerce ul.products li.product .woocommerce-loop-product__link { display: block; }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-lg) !important;
	font-weight: 600;
	color: var(--pb-ink);
	line-height: 1.25;
	padding: var(--pb-s-4) var(--pb-s-4) var(--pb-s-2) !important;
	margin: 0;
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: 0 var(--pb-s-4);
	margin: 0 0 var(--pb-s-4);
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-xl);
	font-weight: 700;
	color: var(--pb-primary);
}
.woocommerce ul.products li.product .price del { color: var(--pb-ink-muted); font-size: 0.68em; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.woocommerce ul.products li.product .button {
	margin: auto var(--pb-s-4) var(--pb-s-4);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pb-s-2);
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-xs);
	font-weight: 700;
	padding: 0.9em 1.4em;
	background: var(--pb-lav);
	color: var(--pb-primary);
	border: 0;
	border-radius: var(--pb-r-pill);
	transition: all 0.2s var(--pb-ease);
}
.woocommerce ul.products li.product .button:hover {
	background: var(--pb-primary);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--pb-shadow-cta);
}

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: var(--pb-s-3); left: var(--pb-s-3);
	min-width: auto; min-height: auto;
	margin: 0;
	padding: 0.4em 0.9em;
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-xs);
	font-weight: 700;
	line-height: 1.4;
	background: var(--pb-accent);
	color: #fff;
	border-radius: var(--pb-r-pill);
	box-shadow: var(--pb-shadow-sm);
	z-index: 3;
}

.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count { margin-bottom: var(--pb-s-5); }
.woocommerce .woocommerce-result-count {
	color: var(--pb-ink-muted);
	font-size: var(--pb-t-sm);
	padding-top: var(--pb-s-2);
}

.woocommerce .woocommerce-ordering select,
.pb-select {
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-sm);
	font-weight: 600;
	padding: 0.7em 2.4em 0.7em 1.1em;
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-pill);
	background-color: var(--pb-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2386868B' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.1em center;
	appearance: none;
	cursor: pointer;
	color: var(--pb-ink);
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex; gap: var(--pb-s-2); justify-content: center;
	border: 0; margin: var(--pb-s-7) 0 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid; place-items: center;
	min-width: 42px; height: 42px;
	padding: 0 0.7em;
	font-family: var(--pb-font-body);
	font-weight: 700;
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-pill);
	background: var(--pb-white);
	color: var(--pb-ink);
	transition: all 0.2s var(--pb-ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--pb-lav); border-color: var(--pb-lav-3); color: var(--pb-primary);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--pb-primary); border-color: var(--pb-primary); color: #fff;
}

/* ==========================================================================
   10. WOOCOMMERCE - Ficha de producto
   ========================================================================== */

.woocommerce div.product { margin-bottom: var(--pb-s-8); }

.woocommerce div.product div.images { margin-bottom: var(--pb-s-6); }
.woocommerce div.product div.images img {
	border-radius: var(--pb-r-lg);
	box-shadow: var(--pb-shadow-md);
	border: 4px solid var(--pb-white);
}
.woocommerce div.product div.images .flex-control-thumbs { margin-top: var(--pb-s-3); gap: var(--pb-s-2); display: flex; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 78px; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img {
	border-radius: var(--pb-r-sm);
	border-width: 2px;
	opacity: 0.6;
	transition: opacity 0.2s;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; }

.woocommerce div.product .product_title {
	font-size: var(--pb-t-3xl);
	margin-bottom: var(--pb-s-3);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-2xl);
	font-weight: 700;
	color: var(--pb-primary);
	margin-bottom: var(--pb-s-5);
}
.woocommerce div.product p.price del { color: var(--pb-ink-muted); font-size: 0.6em; font-weight: 400; }
.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: var(--pb-t-base);
	color: var(--pb-ink-soft);
	margin-bottom: var(--pb-s-5);
	padding-bottom: var(--pb-s-5);
	border-bottom: 1px solid var(--pb-line);
}

.woocommerce div.product form.cart {
	background: var(--pb-lav);
	border: 1px solid var(--pb-lav-2);
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-5);
	margin-bottom: var(--pb-s-5);
}

.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-base);
	font-weight: 700;
	padding: 1em 2.2em;
	background: var(--pb-coral-2);
	color: #fff;
	border: 0;
	border-radius: var(--pb-r-pill);
	box-shadow: var(--pb-shadow-cta);
	transition: all 0.2s var(--pb-ease);
}
.woocommerce div.product form.cart .button:hover { background: var(--pb-coral-3); color: #fff; }

.woocommerce div.product .product_meta {
	font-size: var(--pb-t-sm);
	color: var(--pb-ink-muted);
	padding-top: var(--pb-s-4);
	border-top: 1px solid var(--pb-line);
}

.woocommerce .quantity .qty {
	width: 70px;
	padding: 0.7em;
	text-align: center;
	font-family: var(--pb-font-body);
	font-weight: 700;
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-sm);
	background: var(--pb-white);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex; flex-wrap: wrap; gap: var(--pb-s-2);
	padding: 0; margin: 0 0 var(--pb-s-5); border: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--pb-white);
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-pill);
	margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--pb-font-body);
	font-weight: 700;
	font-size: var(--pb-t-sm);
	color: var(--pb-ink-soft);
	padding: 0.72em 1.5em;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--pb-primary); border-color: var(--pb-primary);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }

.woocommerce div.product .woocommerce-tabs .panel { padding: 0; margin-bottom: var(--pb-s-6); }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 { font-size: var(--pb-t-2xl); margin-bottom: var(--pb-s-5); }

/* ==========================================================================
   11. WOOCOMMERCE - Carrito, checkout, cuenta
   ========================================================================== */

.woocommerce table.shop_table {
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--pb-white);
	margin-bottom: var(--pb-s-6);
}
.woocommerce table.shop_table th {
	font-family: var(--pb-font-body);
	font-weight: 700;
	color: var(--pb-ink);
	background: var(--pb-lav);
	padding: var(--pb-s-4);
	border-bottom: 1px solid var(--pb-lav-2);
}
.woocommerce table.shop_table td {
	padding: var(--pb-s-4);
	border-top: 1px solid var(--pb-line);
	vertical-align: middle;
}
.woocommerce table.shop_table img { width: 66px; border-radius: var(--pb-r-sm); }

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce .cart_totals {
	background: var(--pb-lav);
	border: 1px solid var(--pb-lav-2);
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-5);
}
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout h3 { font-size: var(--pb-t-xl); }

.woocommerce .cart .button,
.woocommerce .checkout-button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order {
	font-family: var(--pb-font-body);
	font-weight: 700;
	/* Estos son los botones de accion principal de WooCommerce: mismo coral
	   que el resto del sitio. La seccion 17 solo les cambia el tamano. */
	background: var(--pb-coral-2);
	color: #fff;
	border: 0;
	border-radius: var(--pb-r-pill);
	padding: 0.95em 1.9em;
	transition: all 0.2s var(--pb-ease);
}
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover { background: var(--pb-coral-3); color: #fff; }
.woocommerce .cart .button:hover,
.woocommerce .checkout-button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	font-family: var(--pb-font-body);
	font-weight: 700;
	background: var(--pb-lav);
	color: var(--pb-primary);
	border-radius: var(--pb-r-pill);
	padding: 0.85em 1.6em;
	border: 0;
	transition: all 0.2s var(--pb-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--pb-lav-2); color: var(--pb-primary); }

.woocommerce form .form-row { margin-bottom: var(--pb-s-4); padding: 0; }
.woocommerce form .form-row label {
	font-weight: 700;
	font-size: var(--pb-t-sm);
	color: var(--pb-ink);
	margin-bottom: var(--pb-s-2);
	display: block;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page textarea,
input[type="text"], input[type="email"], input[type="tel"],
input[type="url"], input[type="number"], input[type="search"],
input[type="password"], input[type="date"], textarea, select {
	width: 100%;
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-base);
	color: var(--pb-ink);
	padding: 0.85em 1.1em;
	background: var(--pb-white);
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-md);
	transition: border-color 0.2s var(--pb-ease), box-shadow 0.2s var(--pb-ease);
}

input:focus, textarea:focus, select:focus,
.woocommerce form .form-row input.input-text:focus {
	outline: none;
	border-color: var(--pb-lav-3);
	box-shadow: 0 0 0 4px rgba(55, 173, 159, 0.28);
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-5);
	background: var(--pb-white);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	border-top: 0;
	border-left: 4px solid var(--pb-lav-3);
	border-radius: var(--pb-r-md);
	background: var(--pb-lav);
	color: var(--pb-ink);
	padding: var(--pb-s-4) var(--pb-s-5);
	margin-bottom: var(--pb-s-5);
	font-size: var(--pb-t-sm);
	font-weight: 600;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--pb-s-3);
	list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message { background: var(--pb-mint); border-left-color: var(--pb-mint-deep); }
.woocommerce-error { background: #FDECEA; border-left-color: var(--pb-alert); }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; }

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: var(--pb-s-2);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	font-family: var(--pb-font-body);
	font-weight: 600;
	padding: 0.78em 1.1em;
	border-radius: var(--pb-r-md);
	color: var(--pb-ink);
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	transition: all 0.2s var(--pb-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--pb-lav); border-color: var(--pb-lav-2);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--pb-primary); border-color: var(--pb-primary); color: #fff;
}

.woocommerce .woocommerce-breadcrumb,
.pb-breadcrumb {
	font-size: var(--pb-t-sm);
	color: var(--pb-ink-muted);
	margin-bottom: var(--pb-s-4);
}
.woocommerce .woocommerce-breadcrumb a,
.pb-breadcrumb a { color: var(--pb-ink-soft); font-weight: 600; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--pb-primary); }

/* ==========================================================================
   12. BLOQUES DE CONTENIDO
   ========================================================================== */

.pb-page-hero {
	background:
		radial-gradient(560px 260px at 88% 0%, var(--pb-peach) 0%, transparent 65%),
		linear-gradient(150deg, var(--pb-lav) 0%, var(--pb-sky) 100%);
	color: var(--pb-ink);
	padding-block: clamp(1.75rem, 3.6vw, 3rem);
	position: relative;
	overflow: hidden;
}
.pb-page-hero h1 { margin-bottom: var(--pb-s-2); }
.pb-page-hero p { color: var(--pb-ink-soft); font-size: var(--pb-t-base); max-width: 60ch; }

.pb-card {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-5);
	box-shadow: var(--pb-shadow-sm);
	transition: transform 0.28s var(--pb-ease), box-shadow 0.28s var(--pb-ease);
}
.pb-card:hover { transform: translateY(-2px); box-shadow: var(--pb-shadow-md); }
.pb-card h3 { font-size: var(--pb-t-lg); margin-bottom: var(--pb-s-2); }
.pb-card p { color: var(--pb-ink-soft); font-size: var(--pb-t-sm); margin: 0; }

.pb-card__icon {
	width: 52px; height: 52px;
	display: grid; place-items: center;
	border-radius: var(--pb-r-md);
	background: var(--pb-lav);
	color: var(--pb-primary);
	margin-bottom: var(--pb-s-4);
}
.pb-card__icon svg { width: 25px; height: 25px; }

/* Cada tarjeta con un pastel distinto */
.pb-grid--3 > .pb-card:nth-child(6n+2) .pb-card__icon { background: var(--pb-mint);   color: var(--pb-mint-deep); }
.pb-grid--3 > .pb-card:nth-child(6n+3) .pb-card__icon { background: var(--pb-peach);  color: var(--pb-peach-deep); }
.pb-grid--3 > .pb-card:nth-child(6n+4) .pb-card__icon { background: var(--pb-butter); color: var(--pb-butter-deep); }
.pb-grid--3 > .pb-card:nth-child(6n+5) .pb-card__icon { background: var(--pb-sky);    color: var(--pb-sky-deep); }
.pb-grid--3 > .pb-card:nth-child(6n+6) .pb-card__icon { background: var(--pb-rose);   color: var(--pb-rose-deep); }

.pb-step { position: relative; padding-top: var(--pb-s-6); }
.pb-step__num {
	position: absolute; top: 0; left: 0;
	width: 46px; height: 46px;
	display: grid; place-items: center;
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-lg);
	font-weight: 700;
	color: var(--pb-primary);
	background: var(--pb-white);
	border-radius: 50%;
	box-shadow: var(--pb-shadow-sm);
}
.pb-step h3 { margin-top: var(--pb-s-5); font-size: var(--pb-t-lg); }
.pb-step p { color: var(--pb-ink-soft); font-size: var(--pb-t-sm); }

.pb-trust-strip {
	background: var(--pb-cream);
	border-bottom: 1px solid var(--pb-line);
	padding-block: var(--pb-s-5);
}
.pb-trust-strip__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: var(--pb-s-5);
	text-align: center;
}
.pb-trust-strip__item strong {
	display: block;
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-2xl);
	font-weight: 700;
	color: var(--pb-primary);
	line-height: 1;
	margin-bottom: 2px;
}
.pb-trust-strip__item span { font-size: var(--pb-t-sm); color: var(--pb-ink-soft); }

.pb-cta-band {
	position: relative;
	background:
		radial-gradient(520px 260px at 15% 15%, var(--pb-peach) 0%, transparent 62%),
		radial-gradient(520px 260px at 85% 85%, var(--pb-mint) 0%, transparent 62%),
		linear-gradient(135deg, var(--pb-lav) 0%, var(--pb-rose) 100%);
	color: var(--pb-ink);
	border-radius: var(--pb-r-xl);
	padding: clamp(2rem, 4.5vw, 3.25rem);
	text-align: center;
	overflow: hidden;
	border: 1px solid var(--pb-lav-2);
}
.pb-cta-band p {
	color: var(--pb-ink-soft);
	font-size: var(--pb-t-lg);
	max-width: 56ch;
	margin-inline: auto;
}
.pb-cta-band__actions {
	display: flex; flex-wrap: wrap; gap: var(--pb-s-3);
	justify-content: center; margin-top: var(--pb-s-5);
}

/* --- Banda "Especial Fallas": mismo acento sol que la franja de cabecera,
   pero en version pastel/clara para no romper el tono del resto de la
   pagina. --- */
.pb-fallas-band {
	position: relative;
	background:
		radial-gradient(560px 280px at 88% 10%, var(--pb-sun-soft) 0%, transparent 65%),
		linear-gradient(135deg, var(--pb-sun-soft) 0%, var(--pb-cream-2) 100%);
	border: 1px solid #F0DFA0;
	border-radius: var(--pb-r-xl);
	padding: clamp(2rem, 4.5vw, 3.25rem);
	overflow: hidden;
}
.pb-fallas-band__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	background: var(--pb-sun);
	color: var(--pb-sun-deep);
	font-weight: 800;
	font-size: var(--pb-t-xs);
	padding: 0.35em 0.9em;
	border-radius: 999px;
	margin-bottom: var(--pb-s-3);
}
.pb-fallas-band__eyebrow svg { width: 14px; height: 14px; }
.pb-fallas-band h2 { margin-bottom: var(--pb-s-3); max-width: 30ch; }
.pb-fallas-band p { color: var(--pb-ink-soft); max-width: 64ch; font-size: var(--pb-t-lg); }
.pb-fallas-band__list {
	list-style: none;
	margin: var(--pb-s-4) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--pb-s-3) var(--pb-s-5);
}
.pb-fallas-band__list li { display: flex; align-items: center; gap: 0.5em; font-weight: 700; color: var(--pb-ink); }
.pb-fallas-band__list svg { width: 16px; height: 16px; color: var(--pb-coral-2); flex: none; }
.pb-fallas-band .pb-hero__cta { margin-top: var(--pb-s-5); }

.pb-faq { display: grid; gap: var(--pb-s-3); max-width: 840px; margin-inline: auto; }
.pb-faq details {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-md);
	padding: var(--pb-s-4) var(--pb-s-5);
	transition: border-color 0.2s var(--pb-ease), box-shadow 0.2s var(--pb-ease);
}
.pb-faq details[open] { border-color: var(--pb-lav-2); box-shadow: var(--pb-shadow-sm); }
.pb-faq summary {
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-lg);
	font-weight: 600;
	color: var(--pb-ink);
	cursor: pointer;
	list-style: none;
	display: flex; align-items: center; justify-content: space-between; gap: var(--pb-s-4);
}
.pb-faq summary::-webkit-details-marker { display: none; }
.pb-faq summary::after {
	content: '+';
	font-family: var(--pb-font-body);
	font-size: 1.4em;
	line-height: 1;
	color: var(--pb-primary);
	flex: none;
	transition: transform 0.25s var(--pb-ease);
}
.pb-faq details[open] summary::after { transform: rotate(45deg); }
.pb-faq details > div { padding-top: var(--pb-s-3); color: var(--pb-ink-soft); font-size: var(--pb-t-sm); }

.pb-checklist { list-style: none; padding: 0; display: grid; gap: var(--pb-s-3); }
.pb-checklist li { display: flex; align-items: flex-start; gap: var(--pb-s-3); margin: 0; }
.pb-checklist svg {
	width: 20px; height: 20px; flex: none;
	color: var(--pb-mint-deep);
	margin-top: 0.2em;
}

/* ==========================================================================
   13. PIE
   ========================================================================== */

.pb-footer {
	background: var(--pb-lav);
	color: var(--pb-ink-soft);
	padding-top: var(--pb-s-8);
	font-size: var(--pb-t-sm);
	border-top: 1px solid var(--pb-lav-2);
}
.pb-footer h4 {
	color: var(--pb-ink);
	font-size: var(--pb-t-lg);
	margin-bottom: var(--pb-s-4);
}
.pb-footer a { color: var(--pb-ink-soft); }
.pb-footer a:hover { color: var(--pb-primary); }

.pb-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr 1.1fr;
	gap: var(--pb-s-6);
	padding-bottom: var(--pb-s-7);
}
.pb-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--pb-s-2); }
.pb-footer li { margin: 0; }

.pb-footer__logo { display: block; margin-bottom: var(--pb-s-4); }
.pb-footer__logo img { max-height: 54px; width: auto; }

.pb-footer__contact li { display: flex; align-items: flex-start; gap: var(--pb-s-3); }
.pb-footer__contact svg { width: 17px; height: 17px; flex: none; color: var(--pb-lav-3); margin-top: 0.25em; }

.pb-footer__bottom {
	border-top: 1px solid var(--pb-lav-2);
	padding-block: var(--pb-s-5);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--pb-s-4);
	flex-wrap: wrap;
	font-size: var(--pb-t-xs);
	color: var(--pb-ink-muted);
}
.pb-footer__bottom ul { display: flex; gap: var(--pb-s-4); flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.pb-footer__bottom ul li { margin: 0; }
.pb-footer__bottom ul a { color: var(--pb-ink-soft); }
.pb-footer__bottom ul a:hover { color: var(--pb-accent); }

.pb-mobile-bar {
	display: none;
	position: fixed;
	bottom: 0; left: 0; right: 0;
	z-index: 700;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(12px);
	border-top: 1px solid var(--pb-line-2);
	box-shadow: 0 -6px 22px rgba(0, 0, 0, 0.06);
	padding: var(--pb-s-3);
	gap: var(--pb-s-3);
	padding-bottom: max(var(--pb-s-3), env(safe-area-inset-bottom));
}
.pb-mobile-bar .pb-btn { flex: 1; font-size: var(--pb-t-xs); padding: 0.9em 1em; }

/* ==========================================================================
   14. COMPONENTES SUELTOS
   ========================================================================== */

.pb-searchform {
	display: flex;
	gap: var(--pb-s-3);
	max-width: 620px;
	margin-inline: auto;
}
.pb-searchform input[type="search"] { flex: 1; }
.pb-searchform .pb-btn { flex: none; }

.pb-page-title { margin-bottom: var(--pb-s-6); }

.pb-page-thumb {
	width: 100%;
	border-radius: var(--pb-r-lg);
	margin-bottom: var(--pb-s-6);
	box-shadow: var(--pb-shadow-md);
}

.pb-product-trust {
	margin: var(--pb-s-5) 0;
	padding: var(--pb-s-5);
	background: var(--pb-mint);
	border-radius: var(--pb-r-md);
	font-size: var(--pb-t-sm);
}
.pb-product-trust li { color: var(--pb-ink-soft); }

.pb-product-help { font-size: var(--pb-t-sm); color: var(--pb-ink-muted); margin-bottom: var(--pb-s-4); }

.pb-price-from {
	font-family: var(--pb-font-body);
	font-size: 0.6em;
	font-weight: 700;
	color: var(--pb-ink-muted);
	text-transform: lowercase;
}

.pb-widget {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-5);
	margin-bottom: var(--pb-s-5);
}
.pb-widget__title {
	font-size: var(--pb-t-lg);
	margin-bottom: var(--pb-s-4);
	padding-bottom: var(--pb-s-3);
	border-bottom: 1px solid var(--pb-line);
}
.pb-widget ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--pb-s-2); }
.pb-widget li { margin: 0; }

.pb-card__media {
	display: block;
	margin: calc(var(--pb-s-5) * -1) calc(var(--pb-s-5) * -1) var(--pb-s-4);
	border-radius: var(--pb-r-lg) var(--pb-r-lg) 0 0;
	overflow: hidden;
}
.pb-card__media img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }

.pb-page-links,
.navigation.pagination { margin-top: var(--pb-s-7); display: flex; justify-content: center; }
.navigation.pagination .nav-links { display: flex; gap: var(--pb-s-2); }
.navigation.pagination .page-numbers {
	display: grid; place-items: center;
	min-width: 42px; height: 42px;
	padding: 0 0.7em;
	font-weight: 700;
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-pill);
	background: var(--pb-white);
	color: var(--pb-ink);
}
.navigation.pagination .page-numbers.current {
	background: var(--pb-primary); border-color: var(--pb-primary); color: #fff;
}

/* ==========================================================================
   15. UTILIDADES
   ========================================================================== */

.pb-text-center { text-align: center; }
.pb-mt-0 { margin-top: 0; }
.pb-mb-0 { margin-bottom: 0; }
.pb-mt-5 { margin-top: var(--pb-s-5); }
.pb-mt-6 { margin-top: var(--pb-s-6); }

.pb-prose > *:first-child { margin-top: 0; }
.pb-prose h2 { margin-top: var(--pb-s-7); }
.pb-prose h3 { margin-top: var(--pb-s-6); }
.pb-prose img { border-radius: var(--pb-r-md); }
.pb-prose iframe { max-width: 100%; border-radius: var(--pb-r-md); border: 1px solid var(--pb-line); }

.pb-embed-map {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--pb-s-4);
}
.pb-embed-map iframe { width: 100%; height: 330px; border: 0; border-radius: var(--pb-r-lg); }

/* ==========================================================================
   15b. FOTOS: entrada al cargar y aparicion al hacer scroll

   main.js marca las fotos de tarjeta con .pb-img-fade (entran con un
   desvanecido al cargar) y las rejillas con .pb-reveal-stagger (asoman
   escalonadas al llegar al viewport). Sin esto el placeholder gris de la
   miniatura se quedaba fijo y las tarjetas parecian "a medias".
   ========================================================================== */

.pb-js img.pb-img-fade { opacity: 0; transition: opacity 0.5s var(--pb-ease); }
.pb-js img.pb-img-fade.is-loaded { opacity: 1; }

/* Fondo con brillo mientras la foto de la categoria esta cargando. */
.pb-js .pb-cat-card {
	background-image: linear-gradient(100deg, var(--pb-lav) 30%, #fff 50%, var(--pb-lav) 70%);
	background-size: 200% 100%;
	animation: pb-shimmer 1.5s ease-in-out infinite;
}
.pb-js .pb-cat-card.is-ready { animation: none; background-image: none; }
@keyframes pb-shimmer {
	from { background-position: 200% 0; }
	to   { background-position: -200% 0; }
}

.pb-reveal-stagger > * {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.55s var(--pb-ease), transform 0.55s var(--pb-ease);
}
.pb-reveal-stagger.is-visible > * { opacity: 1; transform: none; }
.pb-reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.05s; }
.pb-reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.10s; }
.pb-reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.15s; }
.pb-reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.20s; }
.pb-reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 0.25s; }
.pb-reveal-stagger.is-visible > *:nth-child(n+7) { transition-delay: 0.30s; }

@media (prefers-reduced-motion: reduce) {
	.pb-js img.pb-img-fade,
	.pb-js img.pb-img-fade.is-loaded { opacity: 1; }
	.pb-js .pb-cat-card { animation: none; background-image: none; }
	.pb-reveal-stagger > * { opacity: 1; transform: none; }
}

/* ==========================================================================
   16. RESPONSIVE
   ========================================================================== */

@media (max-width: 1180px) {
	.pb-nav a { padding: 0.6em 0.7em; font-size: var(--pb-t-xs); }
	.pb-logo img { max-height: 48px; }
	.pb-logo__mark { width: 36px; height: 36px; }
	.pb-logo__name { font-size: 1.2rem; }
	.pb-logo__tag { font-size: 0.5625rem; letter-spacing: 0.12em; }
}

@media (max-width: 1100px) {
	.pb-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 989px) {
	:root { --pb-header-h: 72px; }

	.pb-nav { display: none; }
	.pb-burger { display: inline-flex; }
	.pb-header__inner { grid-template-columns: auto 1fr; }
	.pb-header__cta { display: none; }
	.pb-header__icons { border-right: 0; padding-right: 0; margin-right: 0; }
	.pb-topbar__item--hide-sm { display: none; }

	/* En movil manda el mensaje, no la foto: titular y botones primero. */
	.pb-hero { padding-block: var(--pb-s-5) var(--pb-s-7); }
	.pb-hero__inner { grid-template-columns: 1fr; gap: var(--pb-s-5); }
	.pb-hero__body { order: 1; }
	.pb-hero__media { order: 2; }
	.pb-hero__media img { max-height: 190px; border-width: 4px; }

	/* El distintivo pasa a ser una linea normal bajo la foto. */
	.pb-hero__badge {
		position: static;
		max-width: none;
		margin-top: var(--pb-s-3);
		padding: var(--pb-s-3) var(--pb-s-4);
	}
	.pb-hero__trust { gap: var(--pb-s-2) var(--pb-s-4); }

	.woocommerce ul.products,
	ul.products { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

	.pb-mobile-bar { display: flex; }
	/* La barra crece con el area segura del iPhone (el indicador de inicio),
	   asi que el hueco reservado tiene que crecer igual o tapa el final de
	   la pagina. */
	body { padding-bottom: calc(74px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 767px) {
	.pb-footer__grid { grid-template-columns: 1fr; gap: var(--pb-s-5); }
	.pb-footer__bottom { flex-direction: column; text-align: center; }

	.woocommerce ul.products,
	ul.products { grid-template-columns: repeat(2, 1fr); gap: var(--pb-s-3); }

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	ul.products li.product h2 {
		font-size: var(--pb-t-base) !important;
		padding: var(--pb-s-3) var(--pb-s-3) var(--pb-s-1) !important;
	}
	.woocommerce ul.products li.product .price { padding-inline: var(--pb-s-3); font-size: var(--pb-t-lg); }
	.woocommerce ul.products li.product .button {
		margin: auto var(--pb-s-3) var(--pb-s-3);
		padding: 0.8em 1em;
	}

	.pb-embed-map iframe { height: 250px; }

	.woocommerce table.shop_table,
	.woocommerce table.shop_table thead,
	.woocommerce table.shop_table tbody,
	.woocommerce table.shop_table th,
	.woocommerce table.shop_table td,
	.woocommerce table.shop_table tr { display: block; width: 100%; }
	.woocommerce table.shop_table thead { display: none; }
	.woocommerce table.shop_table tr { border-bottom: 1px solid var(--pb-line); padding: var(--pb-s-3) 0; }
	.woocommerce table.shop_table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: var(--pb-s-4);
		border: 0;
		padding: var(--pb-s-2) var(--pb-s-4);
		text-align: right;
	}
	.woocommerce table.shop_table td::before {
		content: attr(data-title);
		font-weight: 700;
		color: var(--pb-ink);
		text-align: left;
	}

	/* Al quitar woocommerce-smallscreen.css (solo por las tablas) tambien se
	   fue su apilado de la ficha de producto: div.images/div.summary quedan
	   flotando al 48% y la descripcion + el calendario de reservas aparecen
	   a la derecha en vez de debajo de la foto. Lo recuperamos aqui. */
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary,
	.woocommerce #content div.product div.images,
	.woocommerce #content div.product div.summary { float: none; width: 100%; }
}

@media (max-width: 479px) {
	.pb-hero__cta { flex-direction: column; }
	.pb-hero__cta .pb-btn { width: 100%; }
	.pb-cta-band__actions .pb-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.pb-hero__stars span { animation: none; opacity: 0.3; }
}

@media print {
	.pb-header, .pb-topbar, .pb-footer, .pb-mobile-bar, .pb-mobile-nav { display: none !important; }
	body { padding-bottom: 0; }
}

/* Ancla de salto: compensa la cabecera fija para que el destino no quede
   escondido debajo de ella. */
.pb-anchor {
	display: block;
	position: relative;
	top: calc(-1 * (var(--pb-header-h) + 1rem));
	visibility: hidden;
	height: 0;
}

/* ==========================================================================
   17. EMBUDO DE RESERVA: carrito, pago y confirmacion

   La seccion 11 pone la base (tablas, campos, avisos). Aqui van las piezas
   que deciden la conversion y que venian con el aspecto por defecto de
   WooCommerce: el boton de finalizar, la eleccion de pago y la pantalla de
   confirmacion.
   ========================================================================== */

/* --- Carrito: el boton que lleva al pago -------------------------------- */

.woocommerce .wc-proceed-to-checkout { padding: 0; margin-top: var(--pb-s-5); }

.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce .wc-proceed-to-checkout a.button.alt {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0;
	background: var(--pb-coral-2);
	color: #fff;
	font-family: var(--pb-font-body);
	font-size: var(--pb-t-base);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1;
	border: 0;
	border-radius: var(--pb-r-pill);
	padding: 1.05em 1.6em;
	min-height: 56px;
	box-shadow: var(--pb-shadow-cta);
	transition: background 0.2s var(--pb-ease);
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: var(--pb-coral-3); color: #fff; }
.woocommerce .wc-proceed-to-checkout a.checkout-button:active { transform: scale(0.98); }

.woocommerce .cart_totals h2 {
	font-size: var(--pb-t-xl);
	margin-bottom: var(--pb-s-4);
}
.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
	font-size: var(--pb-t-lg);
	font-weight: 700;
	color: var(--pb-ink);
}

/* Cantidad: objetivo tactil y sin zoom en iOS. */
.woocommerce .quantity .qty {
	min-height: 48px;
	font-size: 17px;
	font-family: var(--pb-font-body);
	color: var(--pb-ink);
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-sm);
	padding: 0.5em;
	text-align: center;
}
.woocommerce .quantity .qty:focus {
	outline: none;
	border-color: var(--pb-coral);
	box-shadow: 0 0 0 4px rgba(55, 173, 159, 0.16);
}

/* --- Checkout: los datos ------------------------------------------------ */

/* WooCommerce maqueta el formulario con floats al 47%. Rejilla en su lugar. */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--pb-s-4);
}
.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce form .form-row-wide {
	float: none;
	width: auto;
	margin: 0;
}
.woocommerce form .form-row-wide { grid-column: 1 / -1; }

@media (max-width: 600px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* Aviso y formulario del cupon */
.woocommerce-form-coupon-toggle .woocommerce-info {
	background: var(--pb-cream-2);
	border: 1px solid var(--pb-line);
	border-left: 3px solid var(--pb-lav-3);
	color: var(--pb-ink-soft);
	font-size: var(--pb-t-sm);
}
.woocommerce form.checkout_coupon {
	border: 1px dashed var(--pb-line-2);
	border-radius: var(--pb-r-md);
	padding: var(--pb-s-5);
	background: var(--pb-white);
}

/* --- Checkout: el resumen y el pago ------------------------------------- */

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	font-size: var(--pb-t-xl);
	font-weight: 700;
	color: var(--pb-ink);
	border-top: 1px solid var(--pb-line-2);
	padding-top: var(--pb-s-4);
}

#payment, .woocommerce-checkout-payment {
	background: var(--pb-cream-2) !important;
	border-radius: var(--pb-r-lg);
	padding: var(--pb-s-5);
}

.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	border: 0;
	margin: 0 0 var(--pb-s-4);
	padding: 0;
	display: grid;
	gap: var(--pb-s-3);
}
.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0;
	padding: var(--pb-s-4);
	background: var(--pb-white);
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-md);
	transition: border-color 0.18s var(--pb-ease), box-shadow 0.18s var(--pb-ease);
}
.woocommerce-checkout #payment ul.payment_methods li:hover { border-color: var(--pb-lav-3); }
/* El metodo elegido se ve elegido. */
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--pb-coral);
	box-shadow: 0 0 0 3px rgba(55, 173, 159, 0.15);
}
.woocommerce-checkout #payment ul.payment_methods li label {
	font-weight: 600;
	color: var(--pb-ink);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: var(--pb-s-2);
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
	width: 20px;
	height: 20px;
	accent-color: var(--pb-coral);
	margin-right: var(--pb-s-2);
}
.woocommerce-checkout #payment div.payment_box {
	background: var(--pb-cream-2);
	border-radius: var(--pb-r-sm);
	color: var(--pb-ink-soft);
	font-size: var(--pb-t-sm);
	margin: var(--pb-s-3) 0 0;
	padding: var(--pb-s-3) var(--pb-s-4);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

.woocommerce #place_order {
	width: 100%;
	min-height: 56px;
	font-size: var(--pb-t-base);
	background: var(--pb-coral-2);
	box-shadow: var(--pb-shadow-cta);
}
.woocommerce #place_order:hover { background: var(--pb-coral-3); }

/* --- Confirmacion ------------------------------------------------------- */

.woocommerce-thankyou-order-received {
	font-family: var(--pb-font-head);
	font-size: var(--pb-t-2xl);
	font-weight: 700;
	letter-spacing: var(--pb-track-tight);
	color: var(--pb-ink);
	margin-bottom: var(--pb-s-5);
}

.woocommerce ul.woocommerce-order-overview {
	list-style: none;
	margin: 0 0 var(--pb-s-6);
	padding: var(--pb-s-5);
	background: var(--pb-cream-2);
	border-radius: var(--pb-r-lg);
	border: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--pb-s-4);
}
.woocommerce ul.woocommerce-order-overview li {
	margin: 0;
	padding: 0;
	border: 0;
	float: none;
	font-size: var(--pb-t-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pb-ink-muted);
}
.woocommerce ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: var(--pb-s-2);
	font-size: var(--pb-t-lg);
	font-weight: 700;
	letter-spacing: var(--pb-track-tight);
	text-transform: none;
	color: var(--pb-ink);
}

/* El plugin de pagos a plazos pone sus campos a 14px, y por debajo de 16px
   iOS hace zoom al enfocar y expulsa al usuario del formulario. */
.awcdp-deposits-wrapper input,
.awcdp-deposits-wrapper select,
.awcdp-deposits-wrapper .awcdp-radio,
.awcdp-deposits-wrapper .awcdp-deposits-option label {
	font-size: 16px;
}

/* ==========================================================================
   15. BOTONES FLOTANTES DE TERCEROS
   ==========================================================================
   El plugin "call-now-and-chat-buttons" pinta dos pastillas fijas en
   bottom:20px con z-index 9999. El tema tiene su propia barra fija
   (.pb-mobile-bar, bottom:0, z-index 700) que aparece por debajo de 990px:
   las pastillas caian justo encima y tapaban "Ver catalogo" y "WhatsApp".
   Ese era el solapamiento.

   Solucion: donde manda la barra del tema, las pastillas se apartan; donde
   no hay barra (escritorio) se quedan, pero vestidas con la paleta en vez
   del azul de Bootstrap que traen de serie.

   Para recuperarlas tal cual venian, basta con borrar esta seccion entera.
   ========================================================================== */

@media (max-width: 989px) {
	.call-widget,
	.whatsapp-widget,
	.call-widget-full {
		display: none !important;
	}
}

@media (min-width: 990px) {
	.call-widget,
	.whatsapp-widget {
		border-radius: var(--pb-r-pill) !important;
		padding: 0.85em 1.35em !important;
		font-family: var(--pb-font-body) !important;
		font-size: var(--pb-t-sm) !important;
		font-weight: 600 !important;
		letter-spacing: var(--pb-track-tight);
		box-shadow: var(--pb-shadow-lg) !important;
		transition: transform 0.25s var(--pb-ease), box-shadow 0.25s var(--pb-ease);
	}
	.call-widget:hover,
	.whatsapp-widget:hover {
		transform: translateY(-2px);
	}

	/* El azul #007bff viene en un atributo style, de ahi el !important. */
	.call-widget {
		background-color: var(--pb-ink) !important;
		color: #fff !important;
	}
	.call-widget a { color: #fff !important; }

	.whatsapp-widget {
		background-color: var(--pb-whatsapp) !important;
		color: #08361C !important;
	}
	.whatsapp-widget a { color: #08361C !important; }
}

/* Movil muy estrecho: el nombre encoge un poco mas para no apretar el boton. */
@media (max-width: 400px) {
	.pb-header .pb-logo__mark { width: 32px; height: 32px; }
	.pb-header .pb-logo__name { font-size: 1.1rem; }
}

/* ==========================================================================
   17. CABECERA SIMPLIFICADA (v2.6.0)
   logo · teléfono · botón "Reservar", sin menú de navegación. La navegación
   completa vive en el pie.
   ========================================================================== */

.pb-header__inner--simple {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pb-s-4);
}
/* El logo es el unico elemento elastico de la fila: si el hueco aprieta,
   se encoge y trunca el, no empuja el boton "Reservar" a otra linea. */
.pb-header__inner--simple .pb-logo {
	min-width: 0;
	flex: 1 1 auto;
}
.pb-header__inner--simple .pb-logo__text { min-width: 0; }
.pb-header__inner--simple .pb-logo__name,
.pb-header__inner--simple .pb-logo__tag {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pb-header__phone {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	font-family: var(--pb-font-head);
	font-weight: 700;
	font-size: 1.05rem;
	letter-spacing: var(--pb-track-tight);
	color: var(--pb-ink);
	white-space: nowrap;
	text-decoration: none;
}
/* Clase propia en el <svg> (no selector descendente): así LiteSpeed UCSS no la
   descarta y el icono no hereda el tamaño natural del SVG. */
.pb-tel-ic { width: 19px !important; height: 19px !important; flex: none; color: var(--pb-coral); }
.pb-header__phone svg { width: 19px; height: 19px; flex: none; color: var(--pb-coral); }
.pb-header__phone:hover { color: var(--pb-coral-3); }

.pb-header__inner--simple .pb-header__cta { flex: 0 0 auto; display: inline-flex; }

/* En pantallas medianas y móvil el botón "Reservar" NO se oculta: es la acción
   principal del sitio. Anula las reglas de la cabecera antigua. */
@media (max-width: 989px) {
	.pb-header__inner--simple { gap: var(--pb-s-3); }
	.pb-header__inner--simple .pb-header__cta { display: inline-flex; }
	/* La bajada es decorativa: en movil cede su sitio al nombre y al boton. */
	.pb-header .pb-logo__tag { display: none; }
}

/* Teléfono: en móvil estrecho queda solo el icono. */
@media (max-width: 430px) {
	.pb-header__phone span {
		position: absolute;
		width: 1px; height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}
	.pb-header__phone svg,
	.pb-tel-ic { width: 22px !important; height: 22px !important; }
}

/* =========================================================================
   ZONAS EN LA PORTADA  —  nube de enlaces a municipios (SEO local)
   Salida de pbf_zonas_cloud() en inc/zonas.php: <div class="pbf-zonas"><a>…</a></div>
   ========================================================================= */
.pb-zonas-home .pbf-zonas {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pb-s-2) var(--pb-s-3);
	justify-content: center;
	max-width: 60rem;
	margin: 0 auto;
}
.pb-zonas-home .pbf-zonas + .pbf-zonas { margin-top: var(--pb-s-4); }

.pb-zonas-home .pbf-zonas a {
	display: inline-flex;
	align-items: center;
	padding: 0.44rem 0.9rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-r-pill);
	background: var(--pb-white);
	color: var(--pb-ink-soft);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background .15s ease, transform .15s ease;
}
.pb-zonas-home .pbf-zonas a:hover {
	border-color: var(--pb-teal);
	color: var(--pb-teal);
	background: var(--pb-teal-soft);
	transform: translateY(-1px);
}
.pb-zonas-home .pbf-zonas a.is-current {
	border-color: var(--pb-teal);
	background: var(--pb-teal);
	color: #fff;
}

.pb-zonas-home__cta {
	text-align: center;
	margin-top: var(--pb-s-6);
}

.pb-zonas-home__guias {
	max-width: 46rem;
	margin: var(--pb-s-6) auto 0;
	text-align: center;
}
.pb-zonas-home__guias h3 {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--pb-ink-muted);
	margin: 0 0 var(--pb-s-3);
}
.pb-zonas-home__guias ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--pb-s-2) var(--pb-s-4);
}
.pb-zonas-home__guias a {
	color: var(--pb-teal);
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
}
.pb-zonas-home__guias a:hover { text-decoration: underline; }

/* Enlaces internos contextuales bajo la ficha de producto */
.pb-product-landings {
	max-width: 820px;
	margin: 32px auto 0;
	padding: 0 16px;
}
.pb-product-landings h2 {
	font-size: 1.2rem;
	margin: 0 0 12px;
}
.pb-product-landings ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
}
.pb-product-landings a {
	color: var(--pb-teal);
	font-weight: 600;
	text-decoration: none;
}
.pb-product-landings a:hover { text-decoration: underline; }

/* Descripcion de producto: titulares de seccion a escala de subtitulo
   (el h3 global es --pb-t-2xl, demasiado grande dentro de una ficha) */
.pbf-producto-desc h2 { font-size: var(--pb-t-xl); margin-top: var(--pb-s-6); }
.pbf-producto-desc h3 {
	font-size: var(--pb-t-lg);
	margin-top: var(--pb-s-6);
	margin-bottom: var(--pb-s-3);
}
.pbf-producto-desc > p:first-child { font-size: 1.08rem; color: var(--pb-ink); }
.pbf-producto-desc ul { padding-left: 1.25em; }
.pbf-producto-desc .pb-btn { margin-top: var(--pb-s-4); }

/* ==========================================================================
   HOME - "Para cada tipo de fiesta" (landings de intencion)
   ========================================================================== */
.pb-eventos-home {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--pb-s-4);
}
.pb-evento-card {
	display: flex;
	flex-direction: column;
	gap: var(--pb-s-2);
	padding: var(--pb-s-5);
	background: var(--pb-white);
	border: 1px solid var(--pb-line-2);
	border-radius: var(--pb-r-lg);
	color: var(--pb-ink);
	transition: transform 0.2s var(--pb-ease), box-shadow 0.2s var(--pb-ease), border-color 0.2s var(--pb-ease);
}
.pb-evento-card:hover {
	transform: translateY(-3px);
	border-color: var(--pb-accent);
	box-shadow: 0 12px 30px rgba(9, 35, 72, 0.10);
	color: var(--pb-ink);
}
.pb-evento-card__title {
	font-family: var(--pb-font-head);
	font-weight: 700;
	font-size: var(--pb-t-lg);
	display: inline-flex;
	align-items: center;
	gap: var(--pb-s-2);
}
.pb-evento-card__arrow { width: 16px; height: 16px; color: var(--pb-accent); flex: none; transition: transform 0.2s var(--pb-ease); }
.pb-evento-card:hover .pb-evento-card__arrow { transform: translateX(3px); }
.pb-evento-card__desc { color: var(--pb-ink-soft); font-size: var(--pb-t-sm); line-height: 1.5; }

@media (max-width: 860px) {
	.pb-eventos-home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.pb-eventos-home { grid-template-columns: 1fr; }
}

/* Landings: en movil los H2 de seccion, un punto mas bajos */
@media (max-width: 640px) {
	.pb-prose h2,
	.pb-prose .wp-block-heading { font-size: var(--pb-t-xl); }
}
