/* =========================================================================
   PartyBaby · piel «Confeti» (v3)
   Identidad propia de PartyBaby: amarillo sol, tomate y cacao, tipografía
   redondeada (Fredoka + Nunito), bordes gruesos y sombras planas «de
   pegatina». Se carga después de main.css y redefine sus tokens y
   componentes; main.css queda como base de maquetación.
   ====================================================================== */

@font-face{font-family:"Fredoka";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/fredoka-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Nunito";font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/nunito-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root {
	--blue:#1F6FE0;          /* acción principal: azul cielo intenso (blanco encima AA), v3.3 */
	--blue-strong:#1758BE;
	--blue-deep:#1652AE;     /* enlaces sobre claro */
	--sky:#BFE5FF;           /* azul clarito (antes amarillo), v3.5 */
	--navy:#2A1A12;          /* cacao: titulares y bloques oscuros */
	--ink:#3A2A20;
	--ink-soft:#5E4A3C;
	--ink-mut:#8A7464;
	--yellow:#BFE5FF;
	--yellow-ink:#2A1A12;
	--coral:#1F6FE0;
	--tomato:#1F6FE0;
	--mint:#14A88F;
	--bubble:#FF8FC6;
	--cocoa:#2A1A12;
	--paper:#FFFFFF;
	--cream:#EEF7FF;
	--cloud:#DDF1FF;
	--line:#D3E6F5;
	--grad:linear-gradient(0deg,#1F6FE0,#1F6FE0);
	--grad-strong:linear-gradient(0deg,#1758BE,#1758BE);
	--radius:20px;
	--radius-sm:14px;
	--shadow-sm:3px 3px 0 var(--cocoa);
	--shadow:5px 5px 0 var(--cocoa);
	--shadow-lg:8px 8px 0 var(--cocoa);
	--shadow-cta:4px 4px 0 var(--cocoa);
	--font-head:"Fredoka","Nunito",system-ui,sans-serif;
	--font-body:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;
	/* fondo «cielo» (v3.2): degradado pastel + nubes + destellos, como el logo */
	--cielo:
		url(../img/nube.svg?v=1) right -40px top 26px/260px auto no-repeat,
		url(../img/nube.svg?v=1) left -60px bottom 40px/220px auto no-repeat,
		url(../img/nube.svg?v=1) left 12% top 22px/110px auto no-repeat,
		url(../img/destellos.svg?v=2) 0 0/420px 420px repeat,
		linear-gradient(180deg,#BFE5FF 0%,#DDF1FF 55%,#F4FAFF 100%);
}

body { background:var(--paper); color:var(--ink); font-size:17.5px; }
h1,h2,h3,h4 { font-weight:600; letter-spacing:-.01em; color:var(--cocoa); }
h1 { letter-spacing:-.015em; }
a { color:var(--blue-deep); }
a:hover { color:var(--blue); }
::selection { background:var(--sky); color:var(--cocoa); }

/* ---------- botones: pegatina con borde y sombra plana ---------- */
.pty-btn {
	font-family:var(--font-head); font-weight:600; letter-spacing:.01em;
	border:2.5px solid var(--cocoa); border-radius:16px; box-shadow:var(--shadow-cta);
	transition:transform .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease);
}
.pty-btn:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--cocoa); }
.pty-btn:active { transform:translate(3px,3px); box-shadow:0 0 0 var(--cocoa); }
.pty-btn--coral,.pty-btn--blue { background:var(--blue); color:#fff; box-shadow:var(--shadow-cta); }
.pty-btn--coral:hover,.pty-btn--blue:hover { background:var(--blue-strong); color:#fff; }
.pty-btn--wa { background:#2BD46B; color:var(--cocoa); box-shadow:var(--shadow-cta); }
.pty-btn--wa:hover { background:#25C460; color:var(--cocoa); }
.pty-btn--yellow { background:var(--sky); color:var(--cocoa); }
.pty-btn--ghost,.pty-btn--outline { background:#fff; color:var(--cocoa); border-color:var(--cocoa); }
.pty-btn--ghost:hover,.pty-btn--outline:hover { background:var(--sky); color:var(--cocoa); }
.pty-btn--navy { background:var(--cocoa); color:var(--sky); }
.pty-btn--navy:hover { background:#000; color:var(--sky); }

/* ---------- cabecera: barra cacao + menú visible ---------- */
.pty-header { background:var(--paper); backdrop-filter:none; border-bottom:3px solid var(--cocoa); }
.pty-topbar { background:var(--cocoa); color:#EAF4FF; font-size:.84rem; }
.pty-topbar__in { display:flex; flex-wrap:wrap; gap:6px 22px; align-items:center; justify-content:center; min-height:34px; padding-top:4px; padding-bottom:4px; }
.pty-topbar__in > * { display:inline-flex; align-items:center; gap:.45em; color:#EAF4FF; }
.pty-topbar .pty-ic { color:var(--sky); }
.pty-topbar a:hover { color:var(--sky); }
.pty-header__bar { min-height:76px; gap:18px; }
.pty-nav { display:flex; gap:4px; margin-left:auto; }
.pty-nav a {
	font-family:var(--font-head); font-weight:500; font-size:1.02rem; color:var(--cocoa);
	padding:.45em .8em; border-radius:12px; border:2px solid transparent;
}
.pty-nav a:hover { background:var(--cloud); border-color:var(--cocoa); color:var(--cocoa); }
.pty-header__actions { display:flex; align-items:center; gap:10px; }
.pty-header__phone {
	color:var(--cocoa); font-family:var(--font-head); font-weight:600;
	background:var(--sky); border:2.5px solid var(--cocoa); border-radius:16px;
	padding:.5em .85em; box-shadow:var(--shadow-sm);
}
.pty-header__phone:hover { color:var(--cocoa); transform:translate(-1px,-1px); }
.pty-header__phone .pty-ic { color:var(--cocoa); }
.pty-navm { display:none; position:relative; }
.pty-navm summary {
	list-style:none; cursor:pointer; width:46px; height:46px; display:flex; align-items:center; justify-content:center;
	border:2.5px solid var(--cocoa); border-radius:14px; background:#fff; box-shadow:var(--shadow-sm); color:var(--cocoa);
}
.pty-navm summary::-webkit-details-marker { display:none; }
.pty-navm summary .pty-ic { width:22px; height:22px; }
.pty-navm__panel {
	position:absolute; right:0; top:calc(100% + 10px); min-width:220px; background:#fff; z-index:60;
	border:2.5px solid var(--cocoa); border-radius:18px; box-shadow:var(--shadow); padding:8px; display:grid;
}
.pty-navm__panel a { padding:.7em .9em; border-radius:10px; font-family:var(--font-head); font-weight:500; color:var(--cocoa); }
.pty-navm__panel a:hover { background:var(--cloud); }
@media (max-width:1060px) {
	.pty-nav { display:none; }
	.pty-navm { display:block; }
	.pty-header__actions { margin-left:auto; }
}
@media (max-width:640px) {
	.pty-topbar__hours { display:none; }
	.pty-topbar__in { justify-content:space-between; font-size:.78rem; }
	.pty-header__phone span { display:none; }
	.pty-header__phone { padding:.5em; }
}

/* ---------- héroe centrado sobre cielo con nubes ---------- */
.pty-hero {
	background:var(--cielo);
	padding:clamp(40px,6vw,72px) 0 clamp(56px,7vw,90px);
	border-bottom:0;
}
.pty-hero__inner { grid-template-columns:1fr; text-align:center; justify-items:center; gap:clamp(30px,4vw,44px); }
.pty-hero__body { max-width:860px; }
.pty-eyebrow {
	background:#fff; color:var(--cocoa); border:2px solid var(--cocoa); box-shadow:var(--shadow-sm);
	font-family:var(--font-head); font-weight:500; border-radius:999px; transform:rotate(-1.5deg);
}
.pty-eyebrow .pty-ic { color:var(--blue); }
.pty-hero h1 { color:var(--cocoa); font-size:clamp(2.2rem,5.6vw,4rem); margin-top:.45em; }
.pty-hero h1 em {
	display:block; background:none; -webkit-background-clip:initial; background-clip:initial;
	color:var(--blue); font-style:normal; margin-top:.15em;
}
.pty-hero__lead { color:var(--ink); max-width:680px; margin-left:auto; margin-right:auto; font-size:1.13rem; }
.pty-hero__cta { justify-content:center; }
.pty-hero__media { width:100%; max-width:1020px; }
.pty-hero__media img {
	aspect-ratio:16/7; border:3px solid var(--cocoa); border-radius:28px; box-shadow:var(--shadow-lg);
	transform:rotate(-1deg);
}
.pty-sticker {
	position:absolute; z-index:3; display:flex; align-items:center; justify-content:center; text-align:center;
	width:112px; height:112px; border-radius:50%; border:2.5px solid var(--cocoa); box-shadow:var(--shadow-sm);
	font-family:var(--font-head); font-weight:600; font-size:.95rem; line-height:1.1; padding:12px;
}
.pty-sticker--a { background:var(--tomato); color:#fff; left:-14px; top:-26px; transform:rotate(-12deg); }
.pty-sticker--b { background:var(--mint); color:#fff; right:-12px; bottom:-28px; transform:rotate(9deg); }
@media (max-width:700px) {
	.pty-hero__media img { aspect-ratio:4/3; }
	.pty-sticker { width:84px; height:84px; font-size:.78rem; }
	.pty-sticker--a { left:-6px; top:-20px; }
	.pty-sticker--b { right:-6px; bottom:-20px; }
}

/* ---------- cinta de ventajas en movimiento ---------- */
.pty-ticker { background:var(--tomato); border-bottom:3px solid var(--cocoa); overflow:hidden; color:var(--cocoa); }
.pty-ticker__track { display:flex; width:max-content; animation:pty-ticker 38s linear infinite; }
.pty-ticker ul { display:flex; gap:42px; list-style:none; margin:0; padding:14px 21px; }
.pty-ticker li { display:inline-flex; align-items:center; gap:.5em; white-space:nowrap; font-family:var(--font-head); font-weight:600; font-size:1.05rem; color:#fff; }
.pty-ticker li::after { content:"✦"; margin-left:42px; color:var(--sky); }
.pty-ticker .pty-ic { color:var(--sky); }
@keyframes pty-ticker { to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) {
	.pty-ticker__track { animation:none; flex-wrap:wrap; width:auto; }
	.pty-ticker ul[aria-hidden] { display:none; }
}

/* ---------- secciones ---------- */
.pty-section--cream { background:var(--cream); border-top:3px solid var(--cocoa); border-bottom:3px solid var(--cocoa); }
.pty-section--sky { background:var(--cielo); color:var(--cocoa); border-top:0; border-bottom:0; }
.pty-section--sky h2,.pty-section--sky h3 { color:var(--cocoa); }
.pty-section--navy { background:var(--blue); color:#fff; border-top:3px solid var(--cocoa); }
.pty-section--navy h2,.pty-section--navy h3 { color:#fff; }
.pty-section__head .pty-kicker,
.pty-section--sky .pty-kicker,.pty-section--navy .pty-kicker {
	background:var(--cocoa); color:var(--sky); letter-spacing:.06em; font-weight:600;
	padding:.35em .9em; border-radius:999px; transform:rotate(-2deg); font-size:.78rem;
}
.pty-section__head h2::after {
	content:""; display:block; width:120px; height:12px; margin:.35em auto 0;
	background:radial-gradient(circle at 6px 0,transparent 5px,var(--blue) 5.5px 8px,transparent 8.5px) 0 0/12px 12px repeat-x;
	opacity:.9;
}

/* ---------- tarjetas ---------- */
.pty-card,.pty-mode,.pty-tarifa,.pty-evcard,.pty-faq details,.pty-zona-model {
	background:#fff; border:2.5px solid var(--cocoa); box-shadow:var(--shadow);
}
.pty-card:hover,.pty-evcard:hover,.pty-zona-model:hover { transform:translate(-3px,-3px); box-shadow:var(--shadow-lg); }
.pty-card__media { border-bottom:2.5px solid var(--cocoa); }
.pty-mode__ic { background:var(--sky); color:var(--cocoa); border:2px solid var(--cocoa); }
.pty-tarifa .pty-tarifa__from,.pty-price { color:var(--blue); }
.pty-tag { background:var(--mint); color:#fff; border:2px solid var(--cocoa); }

.pty-catcard { border:3px solid var(--cocoa); box-shadow:var(--shadow); color:var(--cocoa); }
.pty-catcard::after { background:linear-gradient(180deg,transparent 45%,rgba(42,26,18,.55)); }
.pty-catcard span {
	background:var(--sky); border:2.5px solid var(--cocoa); border-radius:14px; margin:12px;
	padding:.45em .8em; font-weight:600; font-size:1.08rem; color:var(--cocoa);
}
.pty-catcard small { color:var(--ink); }
.pty-catcard:nth-child(even) span { background:#fff; }

.pty-step { background:#fff; border:2.5px solid var(--cocoa); box-shadow:var(--shadow); color:var(--ink); }
.pty-step h3 { color:var(--cocoa); }
.pty-step::before { background:var(--tomato); color:#fff; border:2.5px solid var(--cocoa); border-radius:50%; }
.pty-step:nth-child(2)::before { background:var(--mint); }
.pty-step:nth-child(3)::before { background:var(--bubble); color:var(--cocoa); }
.pty-step:nth-child(4)::before { background:var(--sky); color:var(--cocoa); }

.pty-faq details { border-radius:16px; }
.pty-faq summary { font-family:var(--font-head); font-weight:500; color:var(--cocoa); }
.pty-faq details[open] summary { color:var(--blue); }

.pty-zonas a { background:#fff; border:2px solid var(--cocoa); color:var(--cocoa); font-family:var(--font-head); font-weight:500; }
.pty-zonas a:hover,.pty-zonas a.is-current { background:var(--sky); color:var(--cocoa); }

.pty-incluye span,.pty-zona-facts li,.pty-zona-barrios li { border-color:var(--cocoa); }

/* ---------- cabeceras interiores ---------- */
.pty-zona-hero,.pty-reserva-hero {
	background:var(--cielo); border-bottom:0;
}
.pty-zona-hero h1,.pty-reserva-hero h1 { color:var(--cocoa); }
.pty-reserva-hero .pty-blob,.pty-blob { display:none; }

/* ---------- productos WooCommerce ---------- */
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product {
	background:#fff; border:2.5px solid var(--cocoa); border-radius:var(--radius); box-shadow:var(--shadow);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family:var(--font-head); font-weight:600; color:var(--cocoa); }
.woocommerce ul.products li.product .price { color:var(--blue); }
.woocommerce span.onsale { background:var(--tomato); color:#fff; border:2px solid var(--cocoa); }

/* ---------- asistente de reserva ---------- */
.pty-wz__dialog { border:3px solid var(--cocoa); box-shadow:var(--shadow-lg); border-radius:24px; background:var(--paper); }
.pty-field input,.pty-field select,.pty-field textarea { border:2px solid var(--cocoa); border-radius:12px; background:#fff; }
.pty-field input:focus,.pty-field select:focus,.pty-field textarea:focus { outline:3px solid var(--sky); outline-offset:1px; border-color:var(--cocoa); }

/* ---------- pie: cacao con borde festoneado ---------- */
.pty-footer { background:var(--cocoa); color:#EAD8BC; position:relative; padding-top:clamp(56px,7vw,72px); }
.pty-footer::before {
	content:""; position:absolute; left:0; right:0; top:-1px; height:20px;
	background:radial-gradient(circle at 12px 0,var(--blue) 12px,transparent 12.5px) 0 0/24px 20px repeat-x;
}
.pty-footer h4 { color:var(--sky); font-family:var(--font-head); font-weight:600; font-size:1.1rem; }
.pty-footer a { color:#EAF4FF; }
.pty-footer a:hover { color:var(--sky); }
.pty-footer__brand h4 { font-size:1.7rem; color:#fff; }
.pty-footer__brand b { color:var(--tomato); }
.pty-footer__opina { border-color:rgba(247,230,200,.25); }
.pty-footer__legal { border-top:1px dashed rgba(247,230,200,.3); }

.pty-wafab { border:2.5px solid var(--cocoa); box-shadow:var(--shadow-sm); background:#2BD46B; color:var(--cocoa); }

@media (prefers-reduced-motion:reduce) {
	.pty-btn:hover,.pty-card:hover,.pty-evcard:hover { transform:none; }
}

/* El clearfix de WooCommerce (::before/::after) ocupaba una celda de la rejilla. */
.woocommerce ul.products::before,.woocommerce ul.products::after,
.woocommerce-page ul.products::before,.woocommerce-page ul.products::after { content:none; display:none; }

.pty-footer__brand p { color:#EAD8BC; }
.pty-section--navy .pty-btn--coral,.pty-section--navy .pty-btn--blue { background:var(--sky); color:var(--cocoa); }
.pty-section--navy .pty-btn--coral:hover,.pty-section--navy .pty-btn--blue:hover { background:#DDF1FF; color:var(--cocoa); }

/* Móvil: el texto del héroe va antes que la foto. */
@media (max-width:980px) {
	.pty-hero__media { order:0; max-width:none; }
}

/* Botones flotantes del plugin «Call Now & Chat»: a juego con la piel. */
.call-widget { background:var(--blue) !important; border:2.5px solid var(--cocoa) !important; box-shadow:var(--shadow-sm) !important; }
.whatsapp-widget { border:2.5px solid var(--cocoa) !important; box-shadow:var(--shadow-sm) !important; color:var(--cocoa) !important; }
@media (max-width:980px) { .pty-wafab { display:none; } }

/* Mapas/iframes incrustados (p. ej. Contacto) nunca más anchos que la pantalla. */
.pty-prose iframe,.pty-page iframe { max-width:100%; }

/* v3.3: sin cinta de ventajas, el héroe enlaza con «Cómo funciona»; el
   cielo continúa en sentido inverso para que no haya salto de color. */
.pty-hero + .pty-section--sky {
	background:
		url(../img/nube.svg?v=1) right -50px bottom 30px/200px auto no-repeat,
		url(../img/destellos.svg?v=2) 120px 60px/420px 420px repeat,
		linear-gradient(180deg,#F4FAFF 0%,#DDF1FF 60%,#C9EAFF 100%);
}

/* ---------- v3.4: versión compacta (menos aire, letra algo menor) ---------- */
html { font-size:15px; }                    /* todo lo que va en rem baja ~6 % */
body { font-size:16px; line-height:1.6; }
h1 { font-size:clamp(1.9rem,4.2vw,3rem); }
h2 { font-size:clamp(1.5rem,2.8vw,2.15rem); }
h3 { font-size:1.15rem; }
.pty-hero { padding:clamp(28px,4vw,48px) 0 clamp(36px,4.5vw,56px); }
.pty-hero__inner { gap:clamp(20px,3vw,30px); }
.pty-hero h1 { font-size:clamp(1.9rem,4.4vw,3.1rem); margin-top:.35em; }
.pty-hero__lead { font-size:1.05rem; margin-bottom:20px; }
.pty-hero__media { max-width:920px; }
.pty-section { padding:clamp(34px,4.5vw,58px) 0; }
.pty-section__head { margin-bottom:26px; }
.pty-section__head p { font-size:1rem; }
.pty-grid,.pty-cats,.pty-steps { gap:16px; }
.pty-btn--xl { font-size:1rem; padding:.85em 1.6em; }
.pty-page { padding:clamp(26px,3.5vw,40px) 0 clamp(36px,5vw,54px); }
.pty-zona-hero,.pty-reserva-hero { padding-top:clamp(28px,4vw,44px); padding-bottom:clamp(28px,4vw,40px); }
.pty-price-xl { font-size:clamp(2.2rem,4.5vw,3.2rem); }
.pty-hero { padding-bottom:clamp(18px,2.5vw,28px); }
.pty-hero + .pty-section--sky { padding-top:clamp(14px,2vw,24px); }
