/*
Theme Name: AVIVA Santiago
Theme URI: https://www.avivasantiago.cl
Author: Paillao Design
Description: Tema a medida para AVIVA Santiago. Portado desde el prototipo HTML v2.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: aviva
*/

/* Las rutas de imagen se resuelven desde la biblioteca de medios, no desde el tema. */

:root{
  --ocean-deep:#0B2B4E; --ocean:#14325A; --ocean-mid:#1E4A7A;
  --aqua:#27C2DA; --aqua-light:#68CFE2; --aqua-pale:#E9F8FB;
  --coral:#F18D2B; --coral-deep:#E07610;
  --sol:#F6C453;
  --cielo:#F0F9FD;
  --ink:#12263A; --gris:#5E7185;
  --ph-bg:#DCE3EA; --ph-line:#C0CBD7; --ph-tx:#8FA0B1;
  --r-lg:24px; --r-md:16px;
  --sh-soft:0 10px 40px rgba(11,43,78,.12);
  --sh-deep:0 24px 60px rgba(11,43,78,.28);
  --ease:cubic-bezier(.22,1,.36,1);
  --topbar-h:56px;
  --hdr:64px;         /* alto del header fijo cuando está sólido */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* el header es fijo: deja aire para que el título de la sección no quede tapado al saltar */
section[id],div[id]{scroll-margin-top:calc(var(--topbar-h) + 90px)}
/* aterrizan con 20px de aire sobre el eyebrow: se descuenta el padding-top de la sección (110px) */
#mapa,#faq,#cotiza,#precios{scroll-margin-top:calc(var(--hdr) + 20px - 110px)}
body{font-family:'Montserrat',sans-serif;color:var(--ink);background:#fff;font-size:16px;line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit;cursor:pointer}
h1,h2,h3{font-family:'Fredoka',sans-serif;line-height:1.12}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}

/* ============ REVEAL ============ */
.rv{opacity:0;transform:translateY(36px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}.rv.d4{transition-delay:.4s}

/* ============ PLACEHOLDER DE IMAGEN ============ */
.ph{
  position:relative;
  background-color:var(--ph-bg);
  background-image:
    linear-gradient(to top right, transparent calc(50% - 1px), var(--ph-line) calc(50% - 1px), var(--ph-line) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(to bottom right, transparent calc(50% - 1px), var(--ph-line) calc(50% - 1px), var(--ph-line) calc(50% + 1px), transparent calc(50% + 1px));
  display:flex;align-items:center;justify-content:center;overflow:hidden
}
.ph::after{
  content:attr(data-ph);
  font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ph-tx);background:rgba(255,255,255,.86);padding:7px 14px;border-radius:999px;text-align:center;max-width:80%
}

/* ============ BOTONES ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:'Montserrat',sans-serif;font-weight:800;border-radius:999px;transition:all .3s var(--ease);border:none;cursor:pointer;position:relative;overflow:hidden;text-align:center}
.btn-cta{background:linear-gradient(135deg,var(--coral) 0%,var(--coral-deep) 100%);color:#fff;padding:15px 30px;font-size:15px;box-shadow:0 8px 28px rgba(241,141,43,.45)}
.btn-cta::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .6s}
.btn-cta:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 36px rgba(241,141,43,.55)}
.btn-cta:hover::after{left:130%}
.btn-navy{background:var(--ocean);color:#fff;padding:15px 30px;font-size:15px}
.btn-navy:hover{background:var(--ocean-mid);transform:translateY(-3px)}
.btn-lg{padding:17px 38px;font-size:16px}

/* ============ TOPBAR ============ */
.topbar{background:var(--ocean-deep);color:rgba(255,255,255,.88);font-size:13px;font-weight:600;position:relative;z-index:1001}
.topbar .bar{display:flex;align-items:center;justify-content:flex-end;gap:18px;max-width:1280px;margin:0 auto;padding:0 28px;height:var(--topbar-h)}
.topbar .soc{display:flex;gap:14px}
.topbar .soc a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;transition:color .25s,transform .25s}
.topbar .soc a:hover{color:var(--aqua-light);transform:translateY(-2px)}
.topbar .soc svg{width:32px;height:32px}
.topbar .sep{width:1px;height:22px;background:rgba(255,255,255,.22)}
.topbar .info{display:flex;align-items:center;gap:22px}
.topbar .info a{display:inline-flex;align-items:center;gap:8px}
.topbar .info svg{width:17px;height:17px;stroke-width:2;color:var(--aqua-light)}
.topbar a:hover{color:var(--aqua-light)}

/* ============ HEADER ============ */
header{position:fixed;top:var(--topbar-h);left:0;right:0;z-index:1000;transition:background .4s,box-shadow .4s,padding .4s,top .4s;padding:16px 0}
header .bar{display:flex;align-items:center;flex-wrap:nowrap;gap:20px;max-width:1320px;margin:0 auto;padding:0 28px}
header.solid,header.is-static{background:rgba(255,255,255,.95);backdrop-filter:blur(14px);box-shadow:0 4px 30px rgba(11,43,78,.12);padding:9px 0}
header.solid{top:0}
.logo{flex:1 1 0;min-width:0;display:flex;align-items:center}
.logo img{height:56px;width:auto;filter:drop-shadow(0 2px 10px rgba(11,43,78,.4));transition:height .4s,filter .4s}
header.solid .logo img,header.is-static .logo img{height:46px;filter:none}
nav{flex:0 0 auto;min-width:0}
nav ul{display:flex;gap:22px;list-style:none;justify-content:center;flex-wrap:nowrap}
.hright{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:14px}
nav li{position:relative}
nav li>:is(a,button.parent){display:block;padding:10px 0;font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.02em;color:#fff;transition:color .25s;white-space:nowrap;position:relative}
header.solid nav li>:is(a,button.parent),header.is-static nav li>:is(a,button.parent){color:var(--ocean)}
nav li>:is(a,button.parent):hover,nav li:focus-within>:is(a,button.parent){color:var(--aqua-light)}
header.solid nav li>:is(a,button.parent):hover,header.solid nav li:focus-within>:is(a,button.parent),header.is-static nav li>:is(a,button.parent):hover,header.is-static nav li:focus-within>:is(a,button.parent){color:var(--aqua)}
/* sección activa según el scroll */
header nav li>:is(a,button.parent).active{color:var(--aqua-light)}
header.solid nav li>:is(a,button.parent).active,header.is-static nav li>:is(a,button.parent).active{color:var(--aqua)}
.mnav .sheet>a.active,.mnav .macc.active>button{color:var(--aqua)}
/* El padre con submenú es un disparador, no un enlace: se pinta igual que los
   demás ítems pero es <button>, así que hay que neutralizar el estilo nativo. */
nav li>button.parent{font-family:'Montserrat',sans-serif;background:none;border:none;cursor:pointer;
  display:flex;align-items:center;gap:4px}
nav li>button.parent .chev{width:12px;height:12px;stroke-width:2.5;transition:transform .3s var(--ease)}
nav li.open>button.parent .chev{transform:rotate(180deg)}
/* en táctil no hay hover: el clic abre el submenú */
nav li.open .drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.drop::before{content:'';position:absolute;left:0;right:0;top:-16px;height:16px}
.drop{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,10px);min-width:230px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-radius:18px;box-shadow:var(--sh-deep);padding:12px;opacity:0;visibility:hidden;transition:all .3s var(--ease)}
nav li:hover .drop,nav li:focus-within .drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.drop a{display:block;padding:10px 16px;font-size:14px;font-weight:600;color:var(--ink);border-radius:12px;transition:all .2s}
.drop a:hover{background:var(--aqua-pale);color:var(--ocean);padding-left:22px}
.header-cta{flex:none}
.burger{display:none;flex:none;width:46px;height:46px;border-radius:14px;border:1.5px solid rgba(255,255,255,.5);background:rgba(255,255,255,.14);backdrop-filter:blur(8px);cursor:pointer;align-items:center;justify-content:center;transition:all .3s}
header.solid .burger,header.is-static .burger{border-color:rgba(11,43,78,.18);background:var(--aqua-pale)}
.burger span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;position:relative;transition:all .3s var(--ease)}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;width:20px;height:2px;background:#fff;border-radius:2px;transition:all .3s var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
header.solid .burger span,header.solid .burger span::before,header.solid .burger span::after,header.is-static .burger span,header.is-static .burger span::before,header.is-static .burger span::after{background:var(--ocean)}
/* al abrir, la barra del medio desaparece y quedan solo las dos aspas */
.burger.open span,header.solid .burger.open span,header.is-static .burger.open span{background:transparent}
.burger.open span::before{top:0;transform:rotate(45deg)}
.burger.open span::after{top:0;transform:rotate(-45deg)}
/* con el panel abierto el fondo es siempre blanco, así que las aspas van en azul */
.burger.open span::before,.burger.open span::after,
header.solid .burger.open span::before,header.solid .burger.open span::after,header.is-static .burger.open span::before,header.is-static .burger.open span::after{background:var(--ocean)}
.burger.open{background:#fff;border-color:rgba(11,43,78,.18)}

/* panel móvil */
.mnav{position:fixed;inset:0;z-index:999;background:rgba(11,43,78,.55);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all .35s var(--ease)}
.mnav.open{opacity:1;visibility:visible}
.mnav .sheet{position:absolute;top:0;right:0;width:100%;height:100%;background:var(--aqua-pale);box-shadow:var(--sh-deep);padding:96px 24px 40px;overflow-y:auto;transform:translateX(100%);transition:transform .4s var(--ease)}
.mnav.open .sheet{transform:none}
.mnav .sheet>a,.macc>button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 16px;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ocean);background:none;border:none;border-bottom:1px solid rgba(94,113,133,.15);cursor:pointer;text-align:left}
.macc>button svg{width:16px;height:16px;stroke:var(--aqua);transition:transform .3s}
.macc.open>button svg{transform:rotate(180deg)}
.macc .sub{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.macc.open .sub{max-height:420px}
.macc .sub a{display:block;padding:11px 26px;font-size:14px;font-weight:600;color:var(--gris)}
.macc .sub a:hover{color:var(--aqua)}
/* el CTA del panel móvil: gana en especificidad a .mnav .sheet>a, que le quitaba el fondo */
.mnav .sheet>a.mcta{margin-top:28px;justify-content:center;
  background:linear-gradient(135deg,var(--coral) 0%,var(--coral-deep) 100%);
  color:#fff;border-bottom:none;border-radius:999px;padding:17px 24px;
  font-size:15px;text-transform:none;letter-spacing:0;
  box-shadow:0 8px 28px rgba(241,141,43,.45)}
.mnav .sheet>a.mcta:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(241,141,43,.55)}

/* ============ HERO ============ */
.hero{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--ocean-deep)}
.hero .bgph{position:absolute;inset:0;background-color:#C6D0DA}
/* la etiqueta del placeholder se ancla abajo a la izquierda para no chocar con el H1 */
.hero .bgph::after{position:absolute;left:24px;bottom:130px;z-index:4;font-size:10.5px;padding:8px 16px;background:rgba(255,255,255,.88)}
/* video de fondo: se superpone al placeholder cuando carga */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s var(--ease)}
.hero.has-video .hero-video{opacity:1}
.hero.has-video .bgph::after{display:none}
.hero .veil{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 32%,rgba(11,43,78,.55) 0%,rgba(11,43,78,.78) 55%,rgba(11,43,78,.92) 100%)}
.hero .inner{position:relative;z-index:2;color:#fff;padding:170px 28px 170px;max-width:880px}
.hero .badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.35);color:#fff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.12em;padding:9px 20px;border-radius:999px;margin-bottom:26px;animation:floaty 4s ease-in-out infinite}
.hero .badge .dot{width:8px;height:8px;border-radius:50%;background:var(--sol);box-shadow:0 0 12px var(--sol);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.hero h1{font-size:clamp(42px,7vw,84px);font-weight:600;margin-bottom:20px;text-shadow:0 6px 30px rgba(0,0,0,.35)}
.hero h1 .magic{background:linear-gradient(92deg,var(--aqua-light),var(--sol));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.hero p{font-size:clamp(16px,2vw,21px);font-weight:500;max-width:560px;margin:0 auto 38px;color:rgba(255,255,255,.92)}
.waves{position:absolute;bottom:-2px;left:0;right:0;z-index:3;line-height:0}
.waves svg{display:block;width:100%;height:110px}
/* olas estáticas (animación de desplazamiento desactivada) */

/* ============ CABECERAS DE SECCIÓN ============ */
.sec-head{text-align:center;max-width:680px;margin:0 auto 58px}
.eyebrow{display:inline-block;font-weight:800;text-transform:uppercase;font-size:12.5px;letter-spacing:.18em;color:var(--aqua);margin-bottom:14px}
.sec-head h2{font-size:clamp(30px,4.2vw,52px);font-weight:600;color:var(--ocean)}
.sec-head p{color:var(--gris);margin-top:14px;font-size:17px}

/* ============ 03 ATRACCIONES (CARRUSEL) ============ */
.attractions{position:relative;padding:100px 0 100px;background:linear-gradient(180deg,#fff 0%,var(--aqua-pale) 100%)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:290px;gap:26px;overflow-x:auto;padding:14px 6px 30px;scroll-snap-type:x proximity;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.att{scroll-snap-align:start;background:#fff;border-radius:22px;overflow:hidden;box-shadow:var(--sh-soft);display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.att:hover{transform:translateY(-10px);box-shadow:var(--sh-deep)}
.att .ph,.att .media{aspect-ratio:4/3;overflow:hidden}
.att .media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.att:hover .media img{transform:scale(1.07)}
.att .body{padding:24px 24px 28px;display:flex;flex-direction:column;flex:1}
.att .lvl{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua);margin-bottom:8px}
.att h3{font-size:23px;font-weight:600;color:var(--ocean);margin-bottom:6px}
/* Bajada de la tarjeta: entre el nombre y el texto largo, en celeste para que
   se lea como una frase propia y no como el arranque del párrafo. */
.att .att-sub{font-size:14.5px;font-weight:700;color:var(--aqua);line-height:1.4;margin-bottom:10px;flex:none}
.att p{font-size:14.5px;color:var(--gris);flex:1}
.rail-nav{display:flex;gap:16px;justify-content:center;align-items:center;margin-top:8px;flex-wrap:wrap}
.rail-nav button.arrow{width:52px;height:52px;border-radius:50%;border:2px solid var(--ocean);background:#fff;color:var(--ocean);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;flex:none}
/* Al pasar el mouse, al hacer clic y al llegar por teclado: fondo azul y flecha
   blanca. El ícono sale del sprite y toma su color de `color`, no de `stroke`. */
.rail-nav button.arrow:hover,
.rail-nav button.arrow:active,
.rail-nav button.arrow:focus-visible{background:var(--ocean);color:#fff}
.rail-nav .arrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.5}

/* ============ 04 SOMOS AVIVA ============ */
.story{position:relative;background:linear-gradient(180deg,var(--ocean-deep) 0%,var(--ocean-mid) 100%);color:#fff;padding:120px 0;overflow:hidden}
.story .glow{position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(39,194,218,.22),transparent 65%);top:-200px;right:-160px;pointer-events:none}
.story .cols{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;position:relative}
.story h2{font-size:clamp(30px,4.2vw,52px);font-weight:600;margin-bottom:22px}
.story h2 .magic{background:linear-gradient(92deg,var(--aqua-light),var(--sol));-webkit-background-clip:text;background-clip:text;color:transparent}
.story p{color:rgba(255,255,255,.82);margin-bottom:16px;font-size:16.5px}
.story .eyebrow{color:var(--sol)}
.collage{position:relative;height:470px}
.collage .im{position:absolute;border-radius:20px;overflow:hidden;box-shadow:var(--sh-deep);border:4px solid rgba(255,255,255,.14)}
.collage .im .ph{width:100%;height:100%}
.collage .a{width:62%;height:62%;top:0;left:0;animation:floaty 6s ease-in-out infinite}
.collage .b{width:52%;height:48%;bottom:6%;right:0;animation:floaty 7s ease-in-out infinite reverse}
.collage .c{width:34%;height:34%;bottom:0;left:14%;animation:floaty 5s ease-in-out infinite 1s}

/* ============ 05 PRICING ============ */
.pricing{position:relative;padding:110px 0;background:var(--cielo);overflow:hidden}
.pricing .sun{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(246,196,83,.25),transparent 65%);top:-160px;left:-140px}
.pricing .wrap{position:relative}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;align-items:stretch}
.tier{background:#fff;border-radius:var(--r-lg);padding:42px 34px;box-shadow:var(--sh-soft);display:flex;flex-direction:column;position:relative;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.tier:hover{transform:translateY(-8px);box-shadow:var(--sh-deep)}
.tier.featured{background:linear-gradient(180deg,var(--ocean-deep),var(--ocean-mid));color:#fff;transform:scale(1.045)}
.tier.featured:hover{transform:scale(1.045) translateY(-8px)}
.tier .fbadge{position:absolute;top:-16px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--sol),#EEA93C);color:var(--ocean);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:8px 22px;border-radius:999px;box-shadow:0 8px 24px rgba(246,196,83,.5);white-space:nowrap}
.tier .kind{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--aqua);margin-bottom:10px}
.tier.featured .kind{color:var(--sol)}
.tier .amount{font-family:'Fredoka',sans-serif;font-size:54px;font-weight:600;color:var(--ocean);line-height:1}
.tier.featured .amount{color:#fff;font-size:40px;padding-top:8px}
.tier .per{font-size:13.5px;font-weight:600;color:var(--gris);margin:8px 0 24px}
.tier.featured .per{color:rgba(255,255,255,.75)}
.tier ul{list-style:none;margin-bottom:30px;flex:1}
.tier ul li{font-size:14.5px;font-weight:600;padding:9px 0;display:flex;gap:12px;align-items:center;border-bottom:1px dashed rgba(94,113,133,.18)}
.tier.featured ul li{border-color:rgba(255,255,255,.16)}
.tier ul li .ck{width:22px;height:22px;border-radius:50%;background:var(--aqua-pale);display:inline-flex;align-items:center;justify-content:center;flex:none}
.tier.featured ul li .ck{background:rgba(255,255,255,.14)}
.tier ul li svg{width:12px;height:12px;stroke:var(--aqua);fill:none;stroke-width:3}
.tier.featured ul li svg{stroke:var(--sol)}

/* ============ 06 TRES FORMAS ============ */
.promos{padding:110px 0;background:linear-gradient(180deg,#fff 0%,var(--cielo) 100%)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.pcard{background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-soft);overflow:hidden;display:flex;flex-direction:column;transition:transform .45s var(--ease),box-shadow .45s var(--ease);position:relative}
.pcard:hover{transform:translateY(-10px);box-shadow:var(--sh-deep)}
.pcard .ph,.pcard .media{aspect-ratio:4/3;overflow:hidden}
.pcard .media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.pcard:hover .media img{transform:scale(1.07)}
.chip{position:absolute;top:18px;left:18px;z-index:2;background:linear-gradient(135deg,var(--sol),#EEA93C);color:var(--ocean);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:8px 16px;border-radius:999px;box-shadow:0 6px 18px rgba(0,0,0,.22)}
.chip.aqua{background:linear-gradient(135deg,var(--aqua),var(--aqua-light));color:#fff}
.pcard .body{padding:30px;display:flex;flex-direction:column;flex:1}
.pcard h3{font-size:25px;font-weight:600;color:var(--ocean);margin-bottom:10px}
.pcard p{font-size:15px;color:var(--gris);flex:1}

/* ============ 07 MAPA ============ */
.mapsec{padding:110px 0;background:var(--aqua-pale);overflow:hidden}
/* texto + lista a la izquierda, mapa grande a la derecha (como el sitio de referencia) */
.map-cols{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.map-info .eyebrow{margin-bottom:10px}
.map-info h2{font-size:clamp(28px,3.3vw,44px);font-weight:600;color:var(--ocean);margin-bottom:30px;max-width:15ch}
.mapa{display:flex;align-items:center;justify-content:flex-start}
/* el mapa se escala 25% más que su columna y sangra a la derecha (la sección recorta) */
.mapa .canvas{position:relative;width:125%;flex:none;line-height:0}
.mapa img{width:100%;height:auto}

/* ---- pines interactivos ---- */
.pin{position:absolute;transform:translate(-50%,-100%) scale(.5);transform-origin:50% 100%;
  width:36px;height:47px;opacity:0;pointer-events:none;z-index:3;
  filter:drop-shadow(0 5px 10px rgba(11,43,78,.45))}
.pin.on{animation:pinDrop .5s var(--ease) forwards}
@keyframes pinDrop{
  0%{opacity:0;transform:translate(-50%,-165%) scale(.5)}
  55%{opacity:1;transform:translate(-50%,-92%) scale(1.08)}
  100%{opacity:1;transform:translate(-50%,-100%) scale(1)}
}
.pin svg{width:100%;height:100%;overflow:visible}
.pin text{font-family:'Fredoka',sans-serif;font-weight:600;fill:#fff}
/* halo que late en el punto exacto */
.halo{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;
  background:var(--coral);opacity:0;pointer-events:none;z-index:2}
.halo.on{animation:haloPulse 1.8s ease-out infinite}
@keyframes haloPulse{
  0%{opacity:.55;transform:scale(.35)}
  70%{opacity:0;transform:scale(2.6)}
  100%{opacity:0;transform:scale(2.6)}
}

/* 31 zonas en 2 columnas que se leen hacia abajo: 1–16 a la izquierda, 17–31 a la derecha */
.zones{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(16,auto);grid-auto-flow:column;
  gap:1px 20px;align-content:start}
.zones button{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:600;color:var(--ocean);
  background:none;border:0;border-radius:9px;padding:5px 8px 5px 4px;margin-left:-4px;cursor:pointer;
  display:flex;gap:8px;align-items:baseline;line-height:1.35;text-align:left;width:100%;
  transition:color .25s,background .25s}
.zones button b{font-family:'Fredoka',sans-serif;color:var(--aqua);font-weight:600;font-size:14px;min-width:20px;flex:none;text-align:right;transition:color .25s}
.zones button:hover{background:rgba(255,255,255,.6)}
.zones button.active{background:#fff;color:var(--coral-deep)}
.zones button.active b{color:var(--coral)}

/* ============ 08 REGLAS ============ */
.rules{padding:110px 0;background:#fff}
.rules .sec-head{max-width:760px}
/* Nueve reglas con título y varios párrafos: tres columnas y texto a la
   izquierda, que centrado no se lee bien en bloques largos. */
.rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rule{background:var(--cielo);border:1px solid rgba(11,43,78,.07);border-radius:var(--r-md);padding:28px 26px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .4s}
.rule:hover{transform:translateY(-6px);background:#fff;box-shadow:var(--sh-soft)}
.rule .ic{width:60px;height:60px;border-radius:18px;margin-bottom:16px;background:var(--aqua-pale);display:flex;align-items:center;justify-content:center;transition:background .35s var(--ease)}
.rule .ic svg{width:28px;height:28px;stroke:var(--aqua);stroke-width:1.9;transition:stroke .35s}
.rule:hover .ic{background:var(--aqua)}
.rule:hover .ic svg{stroke:#fff}
.rule h3{font-size:18px;font-weight:600;color:var(--ocean);line-height:1.3;margin-bottom:10px}
.rule p{font-size:13.5px;font-weight:500;color:var(--gris);line-height:1.6}
.rule p + p{margin-top:9px}

/* ============ 09 BANNER TEMPORADA ============ */
.banner{position:relative;padding:0}
.banner .inner{position:relative;background:linear-gradient(135deg,var(--ocean-deep) 0%,#0E3D63 55%,var(--aqua) 165%);border-radius:var(--r-lg);text-align:center;color:#fff;padding:80px 34px;overflow:hidden;box-shadow:var(--sh-deep)}
.banner .bgph{position:absolute;inset:0;opacity:.28;background-size:cover;background-position:center}
.banner .bgph::after{display:none}
.banner .ct{position:relative;z-index:2}
.banner h2{font-size:clamp(28px,4vw,48px);font-weight:600;margin-bottom:12px}
.banner .date{display:inline-block;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--sol);margin-bottom:18px}
.banner p{color:rgba(255,255,255,.86);max-width:560px;margin:0 auto 34px;font-size:16.5px}
.banner-space{padding:100px 0}

/* ============ 10 FORMULARIO ============ */
.quote{padding:110px 0;background:linear-gradient(180deg,#fff 0%,var(--aqua-pale) 100%)}
.qcard{background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-soft);padding:46px}
.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--ocean)}
.field input,.field select,.field textarea{font-family:'Montserrat',sans-serif;font-size:15px;font-weight:500;color:var(--ink);padding:14px 18px;border:1.5px solid rgba(94,113,133,.28);border-radius:14px;background:var(--cielo);transition:all .25s;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--aqua);background:#fff;box-shadow:0 0 0 4px rgba(39,194,218,.14)}
.qcard .send{margin-top:30px;display:flex;justify-content:center}

/* ============ 11 FAQ ============ */
.faq{padding:110px 0;background:var(--cielo)}
.acc{max-width:840px;margin:0 auto}
.acc-item{border-bottom:1px solid rgba(94,113,133,.22)}
.acc-item button{width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 6px;text-align:left;font-family:'Fredoka',sans-serif;font-size:clamp(17px,2vw,21px);font-weight:500;color:var(--ocean)}
.acc-item .pm{width:36px;height:36px;border-radius:50%;background:var(--aqua-pale);color:var(--aqua);display:flex;align-items:center;justify-content:center;flex:none;transition:all .3s var(--ease)}
.acc-item .pm svg{width:18px;height:18px;stroke-width:2.5}
.acc-item.open .pm{background:var(--aqua);color:#fff;transform:rotate(135deg)}
.acc-item button:hover .pm{background:var(--aqua-light);color:#fff}
.acc-item .ans{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.acc-item .ans p{padding:0 6px;margin-bottom:14px;color:var(--gris);font-size:16px;max-width:720px;
  opacity:0;transform:translateY(-10px);
  transition:opacity .35s var(--ease),transform .45s var(--ease)}
.acc-item.open .ans p{opacity:1;transform:none;transition-delay:.08s}
.acc-item .ans p:last-child{margin-bottom:26px}

/* ============ 12 FOOTER ============ */
footer{background:var(--ocean-deep);color:#AECBE0;padding:80px 0 36px;font-size:14px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;margin-bottom:52px}
footer h4{font-family:'Fredoka',sans-serif;color:#fff;font-size:16px;font-weight:600;margin-bottom:18px}
footer ul{list-style:none}
footer ul li{margin-bottom:11px}
footer a{transition:color .2s,padding-left .2s}
footer a:hover{color:var(--aqua-light);padding-left:4px}
.fbrand img{height:64px;width:auto;margin-bottom:20px}
.fbrand p{margin-bottom:6px}
.socials{display:flex;gap:12px;margin-top:20px}
.socials a{width:42px;height:42px;border:1.5px solid rgba(174,203,224,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s}
.socials a:hover{border-color:var(--aqua-light);background:rgba(39,194,218,.15);transform:translateY(-3px);padding-left:0}
.socials svg{width:20px;height:20px}
/* mapa de Google clicable: el iframe no recibe clicks, así que todo el bloque es un enlace */
.gmap{position:relative;display:block;height:150px;border-radius:14px;overflow:hidden;margin-bottom:16px;box-shadow:0 8px 26px rgba(0,0,0,.25)}
.gmap:hover{padding-left:0}
.gmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.gmap-ov{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:9px;
  background:rgba(11,43,78,.55);color:#fff;font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  opacity:0;transition:opacity .3s var(--ease)}
.gmap-ov svg{width:16px;height:16px}
.gmap:hover .gmap-ov,.gmap:focus-visible .gmap-ov{opacity:1}
.hours{font-size:13.5px;line-height:1.9}
.hours b{color:#fff;font-weight:700}
.fbottom{border-top:1px solid rgba(174,203,224,.2);padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px}

/* ============ RESPONSIVE ============ */
@media (max-width:1400px){
  nav ul{gap:18px}
  nav li>:is(a,button.parent){font-size:11.5px;letter-spacing:0}
  header .bar{gap:14px}
  .logo img{height:48px}
  .header-cta{font-size:13.5px}
}
@media (max-width:1180px){
  .fgrid{grid-template-columns:1.3fr 1fr 1fr}
  .fmap{grid-column:1/-1}
  .gmap{max-width:420px}
}
@media (max-width:1150px){
  :root{--topbar-h:0px}
  .topbar{display:none}
  nav{display:none}
  .burger{display:flex}
  header .bar{gap:14px}
  .logo{flex:1 1 auto}
  .btn-cta{padding:12px 20px;font-size:13.5px}
  .grid-3,.tiers{grid-template-columns:1fr 1fr}
  .rules-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .story .cols{grid-template-columns:1fr;gap:48px}
  .collage{height:400px}
  .map-cols{grid-template-columns:1fr;gap:34px}
  .map-info h2{max-width:none}
  .mapa{order:-1;justify-content:center}
  .mapa .canvas{width:100%}
  .tier.featured{transform:none}
  .tier.featured:hover{transform:translateY(-8px)}
}
@media (max-width:760px){
  .wrap{padding:0 20px}
  .grid-3,.tiers,.qgrid{grid-template-columns:1fr}
  .rules-grid{grid-template-columns:1fr;gap:14px;max-width:420px;margin:0 auto}
  .rule{padding:20px 14px}
  .rule .ic{width:58px;height:58px;border-radius:17px;margin-bottom:12px}
  .rule .ic svg{width:28px;height:28px}
  .rule p{font-size:13px;line-height:1.4}
  .map-cols{gap:0}
  .zones{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-flow:row;gap:0 12px}
  .zones button{font-size:12.5px;gap:6px;padding:6px 6px 6px 3px}
  .zones button b{font-size:12.5px;min-width:17px}
  .pin{width:30px;height:39px}
  .hero .inner{padding:140px 20px 150px}
  .hero .badge{font-size:11.5px;letter-spacing:.08em;padding:8px 16px}
  .hero .bgph::after{left:16px;bottom:96px;font-size:9.5px;padding:6px 12px}
    .waves svg{height:70px}
  .sec-head{margin-bottom:42px}
  .attractions,.story,.pricing,.promos,.mapsec,.rules,.quote,.faq{padding:76px 0}
  /* en móvil el padding de la sección baja a 76px, se recalcula el aterrizaje */
  /* en móvil el aterrizaje deja 10px de aire bajo el header, no 20 */
  #mapa,#faq,#cotiza,#precios{scroll-margin-top:calc(var(--hdr) + 10px - 76px)}
  /* con la barra de admin el header ya no está en top:0 */
  .admin-bar #mapa,.admin-bar #faq,.admin-bar #cotiza,.admin-bar #precios{
    scroll-margin-top:calc(var(--hdr) + 10px - 76px)}
  .banner-space{padding:70px 0}
  .banner .inner{padding:56px 24px;border-radius:20px}
  .qcard{padding:28px 22px}
  .tier{padding:36px 26px}
  .collage{height:330px}
  .rail{grid-auto-columns:78vw}
  .fgrid{grid-template-columns:1fr;gap:34px}
  .fbottom{flex-direction:column;gap:10px}
}
@media (max-width:420px){
  .btn-cta{padding:11px 16px;font-size:12.5px}
  .logo img{height:40px}
  .burger{width:42px;height:42px}
}
/* ============ ICONOS (sprite SVG inline) ============ */
.icon{width:1em;height:1em;flex:none;display:inline-block;vertical-align:middle;
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* CTA del header: 10px de padding en los cuatro lados, en todos los tamaños.
   La regla va después de las variantes de .btn-cta de los breakpoints, así que
   gana por orden y no hace falta !important. */
.header-cta{padding:10px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}


/* ============ WORDPRESS ============ */
.screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:fixed;top:12px;left:12px;z-index:2000;width:auto;height:auto;clip:auto;
  padding:12px 20px;border-radius:999px;background:#fff;color:var(--ocean);font-weight:800;box-shadow:var(--sh-deep)}
/* La barra de admin cambia de comportamiento según el ancho:
   ≥783px  fixed, 32px de alto
   601-782 fixed, 46px
   ≤600px  absolute — se va con el scroll, así que el header debe subir a 0 */
.admin-bar header{top:calc(var(--topbar-h) + 32px)}
.admin-bar header.solid{top:32px}
@media (max-width:782px){
  .admin-bar header{top:calc(var(--topbar-h) + 46px)}
  .admin-bar header.solid{top:46px}
}
@media (max-width:600px){
  .admin-bar header{top:calc(var(--topbar-h) + 46px)}
  .admin-bar header.solid{top:0}
}

/* marcos de imagen servidos desde la biblioteca de medios */
.collage .im .media,.collage .im .media img{width:100%;height:100%;object-fit:cover}
.media img{display:block;width:100%;height:100%;object-fit:cover}
.mapa .canvas img{width:100%;height:auto}

/* el editor puede dejar párrafos vacíos: que no rompan el ritmo vertical */
.entry p:empty{display:none}

/* ============ CALENDARIO ============ */
.avcal{--avcal-cell:70px;padding:30px 0;background:var(--cielo)}
/* El título es H1: acá el calendario es el contenido principal de la página.
   Se ajusta al ancho disponible para no partirse en dos líneas. */
/* Solo acá: .sec-head lleva 58px de margen inferior y lo usan todas las
   secciones del home. Se anula dentro del calendario, no globalmente. */
.avcal .sec-head{max-width:none;margin-bottom:15px}
.avcal .sec-head h1{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--ocean);
  font-size:clamp(26px,3.4vw,46px);line-height:1.15;text-wrap:balance;white-space:nowrap}
@media (max-width:900px){
  .avcal .sec-head h1{white-space:normal;font-size:clamp(24px,4.6vw,34px)}
}
.avcal-panel{max-width:100%;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-soft);padding:26px;
  display:grid;grid-template-columns:1fr var(--avcal-side,340px);
  grid-template-areas:"top top" "dow side" "grid side";
  column-gap:28px;align-content:start}
.avcal-top{grid-area:top}
.avcal-dow{grid-area:dow}
.avcal-grid{grid-area:grid}
.avcal-detalle{grid-area:side;align-self:start;margin-top:0}
/* sin JS la tarjeta no existe: el calendario ocupa todo el ancho */
.avcal-panel:has(.avcal-detalle[hidden]){grid-template-columns:1fr;grid-template-areas:"top" "dow" "grid"}
.avcal-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.avcal-nav{display:flex;align-items:center;gap:14px}
.avcal-mes{font-family:'Fredoka',sans-serif;font-size:clamp(22px,2.6vw,30px);font-weight:600;color:var(--ocean);
  margin:0;min-width:8.5em;text-align:center}
.avcal-arrow{width:42px;height:42px;flex:none;border-radius:50%;border:2px solid var(--ocean);background:#fff;
  color:var(--ocean);font-size:22px;line-height:1;cursor:pointer;transition:all .25s var(--ease)}
.avcal-arrow:hover:not(:disabled){background:var(--ocean);color:#fff}
.avcal-arrow:disabled{opacity:.25;cursor:default}

.avcal-leyenda{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.avcal-leyenda li{display:inline-flex;align-items:center;gap:7px;padding:7px 15px;border-radius:999px;
  font-size:12.5px;font-weight:700;border:1px solid transparent}

.avcal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:8px}
.avcal-dow span{text-align:center;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--gris)}

.avcal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.avcal-hueco{min-height:var(--avcal-cell)}
.avcal-dia{min-height:var(--avcal-cell);min-width:0;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:3px;padding:10px 12px;border-radius:14px;border:1.5px solid transparent;cursor:pointer;text-align:left;
  font-family:'Montserrat',sans-serif;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.avcal-dia:hover{transform:translateY(-3px);box-shadow:var(--sh-soft)}
.avcal-dia:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}
.avcal-num{font-family:'Fredoka',sans-serif;font-size:18px;font-weight:600;line-height:1}
.avcal-estado{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700}
.avcal-sim{font-size:11px;line-height:1}

/* estados: fondo suave, borde y texto de la misma familia de color */
.avcal-dia.is-abierto,.avcal-leyenda .is-abierto{background:var(--aqua-pale);border-color:rgba(39,194,218,.45);color:var(--ocean)}
.avcal-dia.is-especial,.avcal-leyenda .is-especial{background:#FDEBD8;border-color:rgba(224,118,16,.45);color:var(--coral-deep)}
.avcal-dia.is-exclusivo,.avcal-leyenda .is-exclusivo{background:#FDF4D9;border-color:rgba(214,163,29,.5);color:#8A6300}
.avcal-dia.is-cerrado,.avcal-leyenda .is-cerrado{background:#F4F6F8;border-color:rgba(94,113,133,.28);color:var(--gris)}
.avcal-dia.is-cerrado .avcal-num{opacity:.55}

.avcal-dia.is-hoy{box-shadow:inset 0 0 0 2px var(--ocean)}
.avcal-dia.is-sel{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(20,50,90,.18),var(--sh-soft);transform:translateY(-3px)}

/* tarjeta de detalle */
.avcal-detalle{padding:22px;border-radius:var(--r-md);background:var(--cielo);
  border-left:4px solid var(--aqua);opacity:0;transform:translateY(8px)}
.avcal-detalle.is-in{animation:avcalIn .4s var(--ease) forwards}
@keyframes avcalIn{to{opacity:1;transform:none}}
.avcal-det-fecha{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--aqua);margin-bottom:8px}
.avcal-det-titulo{font-family:'Fredoka',sans-serif;font-size:24px;font-weight:600;color:var(--ocean);margin-bottom:8px}
.avcal-det-desc{color:var(--gris);font-size:15px}
.avcal-det-acciones{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.avcal-det-acciones .btn{width:100%}
.avcal-det-acciones .btn{font-size:14.5px;padding:13px 26px}

@media (max-width:1024px){
  .avcal{--avcal-cell:62px;--avcal-side:280px}
  .avcal-panel{padding:20px}
  .avcal-dia{padding:9px 10px}
  .avcal-num{font-size:17px}
}
@media (max-width:760px){
  .avcal{padding:20px 0}
  .avcal-panel{padding:14px;border-radius:var(--r-md)}
  .avcal-top{justify-content:center;gap:14px}
  .avcal-mes{min-width:0;flex:1 1 auto}
  .avcal-nav{width:100%;justify-content:space-between}
  .avcal-panel{grid-template-columns:1fr;grid-template-areas:"top" "dow" "grid" "side";column-gap:0}
  .avcal-detalle{margin-top:30px}
  .avcal-det-acciones{flex-direction:column}
  .avcal-grid,.avcal-dow{gap:5px}
  .avcal{--avcal-cell:0px}
  .avcal-dia,.avcal-hueco{aspect-ratio:1/1.05}
  .avcal-dia{padding:7px;justify-content:flex-start;gap:3px}
  .avcal-num{font-size:15px}
  /* en pantallas chicas la etiqueta no cabe: queda el símbolo, que la leyenda explica */
  .avcal-estado{font-size:0;gap:0}
  .avcal-sim{font-size:14px}
  .avcal-leyenda li{font-size:11.5px;padding:6px 11px}
  .avcal-detalle{padding:20px 18px}
  .avcal-det-acciones .btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .avcal-dia,.avcal-detalle{transition:none;animation:none;opacity:1;transform:none}
}

/* ============ PÁGINAS INTERIORES ============ */
/* el header es fijo y en estas páginas ya nace claro: hay que dejarle su espacio */
.pagina{padding-top:70px}
/* mismo ancho y mismo sangrado que el cuerpo, para que el H1 no quede
   desalineado con el primer párrafo */
.pagina-head{max-width:var(--texto);padding:72px 28px 0}
.pagina-head h1{font-size:clamp(32px,4.2vw,52px);font-weight:600;color:var(--ocean);
  line-height:1.15;text-wrap:balance}
.pagina-cuerpo{padding-bottom:110px}
.pagina-cuerpo.is-full{padding-bottom:0}

/* Ancho de contenido: el mismo 1200px de .wrap, que es la medida estándar del
   sitio. Descontando los 28px de sangrado quedan 1144px de texto útil. */
:root{--texto:1200px}
.pagina-cuerpo > *{max-width:var(--texto);margin-left:auto;margin-right:auto;
  padding-left:28px;padding-right:28px}
/* los bloques que traen su propio ancho (calendario, shortcodes) no se recortan */
.pagina-cuerpo > .wrap{max-width:1200px}
.pagina-cuerpo > section,.pagina-cuerpo > .avcal{max-width:none;padding-left:0;padding-right:0}

.pagina-cuerpo{font-size:17px}
.pagina-cuerpo p{color:var(--gris);line-height:1.85;margin-bottom:24px}
.pagina-cuerpo strong{color:var(--ocean);font-weight:700}
/* El subrayado es para enlaces dentro del texto. Los botones que traen los
   shortcodes ya se distinguen solos y no deben heredarlo. */
.pagina-cuerpo a:not(.btn){color:var(--aqua);font-weight:700;text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1.5px}
.pagina-cuerpo a:not(.btn):hover{color:var(--ocean)}

/* Los títulos respiran hacia arriba, no hacia abajo: así el aire agrupa cada
   bloque con su encabezado en vez de separarlo. */
.pagina-cuerpo h2{font-size:clamp(23px,2.6vw,30px);font-weight:600;color:var(--ocean);
  line-height:1.25;margin:64px auto 20px;text-wrap:balance}
.pagina-cuerpo h3{font-size:clamp(19px,2vw,22px);font-weight:600;color:var(--ocean-mid);
  line-height:1.3;margin:44px auto 14px}
.pagina-cuerpo h4{font-family:'Montserrat',sans-serif;font-size:15px;font-weight:800;
  text-transform:uppercase;letter-spacing:.08em;color:var(--aqua);margin:34px auto 12px}
.pagina-cuerpo > :first-child{margin-top:36px}

/* El reset global deja las listas sin viñeta ni sangría: acá se reponen. */
.pagina-cuerpo ul,.pagina-cuerpo ol{margin-bottom:28px;padding-left:52px}
.pagina-cuerpo ul{list-style:disc}
.pagina-cuerpo ol{list-style:decimal}
.pagina-cuerpo li{color:var(--gris);line-height:1.8;margin-bottom:11px;padding-left:6px}
.pagina-cuerpo li::marker{color:var(--aqua);font-weight:700}
.pagina-cuerpo li:last-child{margin-bottom:0}
.pagina-cuerpo li > ul,.pagina-cuerpo li > ol{margin:11px 0 0;padding-left:24px}

.pagina-cuerpo blockquote{border-left:3px solid var(--aqua);background:var(--cielo);
  border-radius:0 var(--r-md) var(--r-md) 0;padding:20px 26px;margin-bottom:28px}
.pagina-cuerpo blockquote p:last-child{margin-bottom:0}
.pagina-cuerpo hr{border:none;border-top:1px solid rgba(11,43,78,.12);margin:52px auto}
.pagina-cuerpo img{border-radius:var(--r-md);margin:0 auto 28px}

@media (max-width:760px){
  .pagina-head{padding-top:52px}
  .pagina-cuerpo{padding-bottom:70px;font-size:16px}
  .pagina-cuerpo p{line-height:1.8;margin-bottom:20px}
  .pagina-cuerpo h2{margin-top:46px}
  .pagina-cuerpo h3{margin-top:34px}
  .pagina-cuerpo ul,.pagina-cuerpo ol{padding-left:46px}
}

/* ============ BLOQUES DE LANDING ============ */
/* Compartidos por Eventos Empresa y Paseos de Curso: las dos páginas salen del
   mismo wireframe y deben verse iguales, así que un ajuste acá vale para ambas.
   Lo propio de cada una va después, con su prefijo (.pc-*). */
/* La plantilla trae header fijo sin hero transparente, salvo en su propio hero. */
.ee{padding-top:0}
.ee .sec-head{margin-bottom:46px}

/* botón fantasma, para el CTA secundario sobre el video */
.btn-ghost{background:rgba(255,255,255,.14);backdrop-filter:blur(10px);
  border:1.5px solid rgba(255,255,255,.55);color:#fff;padding:15px 30px;font-size:15px}
.btn-ghost:hover{background:rgba(255,255,255,.28);transform:translateY(-3px)}
.btn.is-off{opacity:.55;cursor:default;box-shadow:none}

/* ---- Hero ---- */
.ee-hero{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;
  overflow:hidden;background:var(--ocean-deep);min-height:640px;
  padding:100px 0 150px}
.ee-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.ee-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ee-hero .veil{position:absolute;inset:0;z-index:1;
  background:radial-gradient(ellipse at 50% 35%,rgba(11,43,78,.6) 0%,rgba(11,43,78,.82) 60%,rgba(11,43,78,.94) 100%)}
.ee-hero-inner{position:relative;z-index:2;color:#fff;max-width:900px}
.ee-hero-inner .eyebrow{color:var(--aqua-light)}
.ee-hero-inner h1{font-size:clamp(32px,5vw,60px);font-weight:600;margin:10px 0 18px;text-wrap:balance;
  text-shadow:0 6px 30px rgba(0,0,0,.35)}
.ee-hero-inner p{font-size:clamp(16px,1.7vw,19px);font-weight:500;color:rgba(255,255,255,.9);
  max-width:640px;margin:0 auto 34px}
.ee-hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---- Tres beneficios ---- */
.ee-calugas{padding:100px 0 90px;background:linear-gradient(180deg,#fff 0%,var(--cielo) 100%)}
.ee-cal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.ee-caluga{background:#fff;border:1px solid rgba(11,43,78,.07);border-radius:var(--r-lg);
  box-shadow:var(--sh-soft);padding:38px 32px;text-align:center;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.ee-caluga:hover{transform:translateY(-6px);box-shadow:var(--sh-deep)}
.ee-caluga .ic{width:76px;height:76px;margin:0 auto 20px;border-radius:22px;background:var(--aqua-pale);
  display:flex;align-items:center;justify-content:center}
.ee-caluga .ic svg{width:34px;height:34px;stroke:var(--aqua);stroke-width:1.9}
.ee-caluga h3{font-size:23px;font-weight:600;color:var(--ocean);margin-bottom:12px}
.ee-caluga p{font-size:15px;color:var(--gris);line-height:1.6}
.ee-caluga .ee-cal-sec{margin-top:8px;font-weight:600;color:var(--aqua)}

/* ---- Atracciones (reusa .rail y .att del home) ---- */
.ee-atr{padding:100px 0;background:var(--cielo)}
.ee-atr .rail{display:grid;grid-auto-flow:column;grid-auto-columns:290px;gap:26px;overflow-x:auto;
  padding:8px 4px 30px;scroll-snap-type:x proximity;scrollbar-width:none}
.ee-atr .rail::-webkit-scrollbar{display:none}
.ee-atr .att{scroll-snap-align:start;background:#fff;border-radius:22px;overflow:hidden;
  box-shadow:var(--sh-soft);display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.ee-atr .att:hover{transform:translateY(-10px);box-shadow:var(--sh-deep)}
.ee-atr .att .ph,.ee-atr .att .media{aspect-ratio:4/3;overflow:hidden}
.ee-atr .att .media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ee-atr .att:hover .media img{transform:scale(1.07)}
.ee-atr .att .body{padding:22px 22px 26px}
.ee-atr .att h3{font-size:21px;font-weight:600;color:var(--ocean);margin-bottom:8px}
.ee-atr .att p{font-size:14.5px;color:var(--gris)}

/* ---- Brochure ---- */
.ee-brochure{padding:0 0 100px;background:var(--cielo)}
.ee-bro-band{display:flex;align-items:center;gap:28px;background:#fff;border-radius:var(--r-lg);
  box-shadow:var(--sh-soft);border:1px solid rgba(11,43,78,.07);padding:30px 34px}
.ee-bro-ic{width:64px;height:64px;flex:none;border-radius:18px;background:var(--aqua-pale);
  display:flex;align-items:center;justify-content:center}
.ee-bro-ic svg{width:30px;height:30px;stroke:var(--aqua)}
.ee-bro-txt{flex:1 1 auto;min-width:0}
.ee-bro-txt h3{font-size:22px;font-weight:600;color:var(--ocean);margin-bottom:6px}
.ee-bro-txt p{font-size:15px;color:var(--gris)}
.ee-bro-band .btn{flex:none}

/* ---- Por qué elegir ---- */
.ee-razones{padding:100px 0;background:#fff}
.ee-raz-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.ee-razon{background:var(--cielo);border:1px solid rgba(11,43,78,.07);border-radius:var(--r-md);
  padding:26px 20px;text-align:center;transition:transform .4s var(--ease),background .4s,box-shadow .4s}
.ee-razon:hover{transform:translateY(-5px);background:#fff;box-shadow:var(--sh-soft)}
.ee-razon .ic{width:58px;height:58px;margin:0 auto 14px;border-radius:17px;background:var(--aqua-pale);
  display:flex;align-items:center;justify-content:center;transition:background .35s}
.ee-razon .ic svg{width:26px;height:26px;stroke:var(--aqua);stroke-width:1.9;transition:stroke .35s}
.ee-razon:hover .ic{background:var(--aqua)}
.ee-razon:hover .ic svg{stroke:#fff}
.ee-razon p{font-size:13.5px;font-weight:600;color:var(--ocean);line-height:1.5}

/* ---- Video corporativo ---- */
.ee-video{padding:100px 0;background:linear-gradient(180deg,var(--ocean-deep) 0%,var(--ocean-mid) 100%)}
.ee-video .eyebrow{color:var(--sol)}
.ee-video .sec-head h2{color:#fff}
.ee-video-marco{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-deep);
  border:4px solid rgba(255,255,255,.14);background:#0b2b4e}
.ee-video-marco video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.ee-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:84px;height:84px;
  border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-deep)}
.ee-play svg{width:32px;height:32px;stroke:var(--coral);fill:var(--coral)}

/* ---- Formulario ---- */
.ee-form{background:linear-gradient(180deg,#fff 0%,var(--cielo) 100%)}
.ee-form-bullets{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:34px}
.ee-form-bullets li{display:inline-flex;align-items:center;gap:9px;background:var(--aqua-pale);
  color:var(--ocean);font-size:14px;font-weight:700;padding:10px 20px;border-radius:999px}
.ee-form-bullets svg{width:16px;height:16px;stroke:var(--aqua);stroke-width:3}
.ee-form-nota{text-align:center;margin-top:18px;font-size:13px;color:var(--gris)}
.ee-form-nota a{color:var(--aqua);font-weight:700}

@media (max-width:1024px){
  .ee-cal-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}
  .ee-raz-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ee-hero{min-height:520px;padding-top:calc(var(--hdr) + 80px);padding-bottom:120px}
}
@media (max-width:760px){
  .ee-calugas,.ee-atr,.ee-razones,.ee-video{padding:70px 0}
  .ee-brochure{padding:0 0 70px}
  .ee .sec-head{margin-bottom:32px}
  .ee-raz-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .ee-razon{padding:20px 12px}
  .ee-razon p{font-size:12.5px}
  .ee-bro-band{flex-direction:column;text-align:center;padding:26px 20px;gap:18px}
  .ee-bro-band .btn{width:100%}
  .ee-atr .rail{grid-auto-columns:78vw;gap:16px}
  .ee-hero-ctas .btn{width:100%;justify-content:center}
  .ee-form-bullets li{font-size:12.5px;padding:8px 15px}
}

/* ============ PASEOS DE CURSO ============ */
/* Solo lo que esta página no comparte con Eventos Empresa. */

/* ---- Precios + folleto ---- */
.pc-precios{padding:100px 0;background:#fff}
.pc-pre-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;
  max-width:960px;margin:0 auto}
.pc-pre-card{background:#fff;border:1px solid rgba(11,43,78,.07);border-radius:var(--r-lg);
  box-shadow:var(--sh-soft);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.pc-pre-card:hover{transform:translateY(-6px);box-shadow:var(--sh-deep)}
/* la tabla y la portada del folleto son documentos: se muestran completos,
   sin recortar, sobre un fondo suave */
.pc-pre-media{background:var(--aqua-pale);padding:22px}
.pc-pre-media .media,.pc-pre-media .ph{aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;background:#fff}
.pc-pre-media .media img{width:100%;height:100%;object-fit:contain;background:#fff}
.pc-pre-body{padding:24px 26px 30px;text-align:center;display:flex;flex-direction:column;
  gap:16px;align-items:center;margin-top:auto}
.pc-pre-body h3{font-size:20px;font-weight:600;color:var(--ocean);line-height:1.35}
.pc-pre-body .btn{width:100%}

/* ---- Antes de reservar ---- */
.pc-pol{padding:100px 0;background:var(--cielo)}
/* Flex en vez de grid: con 5 cajas la última fila queda centrada en vez de
   dejar un hueco a la derecha, y se acomoda sola si mañana son 4 o 6. */
.pc-pol-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.pc-pol-box{flex:1 1 300px;max-width:360px;min-width:0;
  display:flex;align-items:flex-start;gap:18px;background:#fff;
  border:1px solid rgba(11,43,78,.07);border-radius:var(--r-md);padding:26px 24px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.pc-pol-txt{min-width:0}
.pc-pol-txt h3{font-size:17px;font-weight:600;color:var(--ocean);line-height:1.3;margin-bottom:8px}
.pc-pol-box:hover{transform:translateY(-5px);box-shadow:var(--sh-soft)}
.pc-pol-box .ic{width:52px;height:52px;flex:none;border-radius:16px;background:var(--aqua-pale);
  display:flex;align-items:center;justify-content:center;transition:background .35s}
.pc-pol-box .ic svg{width:24px;height:24px;stroke:var(--aqua);stroke-width:2;transition:stroke .35s}
.pc-pol-box:hover .ic{background:var(--aqua)}
.pc-pol-box:hover .ic svg{stroke:#fff}
.pc-pol-box p{font-size:14px;font-weight:500;color:var(--gris);line-height:1.6}

/* ---- Formulario y FAQ ---- */
.pc-form .sec-head p{margin-top:12px}
.pc-faq{padding:100px 0}

@media (max-width:760px){
  .pc-precios,.pc-pol,.pc-faq{padding:70px 0}
  .pc-pre-grid{grid-template-columns:1fr;max-width:420px;gap:22px}
  .pc-pol-box{flex:1 1 100%;max-width:none}
  .pc-pol-box{padding:20px 18px;gap:14px}
  .pc-pol-box .ic{width:46px;height:46px;border-radius:14px}
  .pc-pol-box .ic svg{width:21px;height:21px}
  .pc-pol-box p{font-size:13.5px}
}

/* Aterrizaje del scroll en las anclas de esta página: mismo criterio que el
   home (20px de aire sobre el eyebrow), descontando su padding-top de 100px. */
#precios-curso,#antes-de-reservar,#faq-curso,#atracciones-curso{
  scroll-margin-top:calc(var(--hdr) + 20px - 100px)}

/* ============ CUMPLEAÑOS ============ */
/* Casi todo se hereda de .ee-*. Acá solo lo que este wireframe pide distinto. */

/* Ocho razones en 4 × 2, no cinco por fila como en Eventos Empresa. */
/* Con un solo CTA el hero necesita menos aire abajo que las otras dos landings. */
.cu .ee-hero{padding-bottom:130px}
.cu-faq{padding:100px 0}

@media (max-width:1024px){
}
@media (max-width:760px){
  .cu-faq{padding:70px 0}
}

/* Mismo aterrizaje de scroll que el resto: 20px sobre el antetítulo. */
#programa,#por-que-aviva,#faq-cumple{scroll-margin-top:calc(var(--hdr) + 20px - 100px)}

/* ============ COMIDA & SERVICIOS ============ */

/* Los botones del hero son navegación interna, no conversión: van en fantasma
   y con la flecha apuntando hacia abajo. */
.cs-hero .ee-hero-ctas svg{width:16px;height:16px;stroke-width:2.5}

/* ---- Patio de comidas ---- */
.cs-patio{padding:100px 0;background:linear-gradient(180deg,#fff 0%,var(--cielo) 100%)}
.cs-mod-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;align-items:stretch}
.cs-modulo{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(11,43,78,.07);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-soft);min-width:0;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.cs-modulo:hover{transform:translateY(-6px);box-shadow:var(--sh-deep)}
/* el logo va sobre fondo oscuro, como los foodtrucks del parque */
.cs-mod-media{background:var(--ocean-deep)}
.cs-mod-media .media,.cs-mod-media .ph{aspect-ratio:4/3}
.cs-mod-media .media img{width:100%;height:100%;object-fit:contain;padding:14px}
.cs-mod-body{padding:20px 20px 26px;flex:1 1 auto;min-width:0}
.cs-mod-body h3{font-size:18px;font-weight:600;color:var(--ocean);text-transform:uppercase;
  letter-spacing:.02em;margin-bottom:14px;line-height:1.2}
.cs-mod-cat{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.12em;color:var(--aqua);margin:14px 0 8px}
.cs-mod-cat:first-of-type{margin-top:0}
.cs-mod-items{list-style:none;display:flex;flex-direction:column;gap:6px}
.cs-mod-items li{font-size:13.5px;color:var(--gris);line-height:1.45;padding-left:14px;position:relative}
.cs-mod-items li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;
  border-radius:50%;background:var(--aqua-light)}
.cs-mod-pend{font-size:13px;font-style:italic;color:var(--ph-tx)}
.cs-pat-cta{display:flex;justify-content:center;margin-top:44px}

/* ---- Pérgolas ---- */
.cs-pergolas{padding:100px 0;background:var(--cielo)}
.cs-per-cols{display:grid;grid-template-columns:1.05fr 1fr;gap:52px;align-items:center}
.cs-per-foto .media,.cs-per-foto .ph{aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-soft)}
.cs-per-foto .media img{width:100%;height:100%;object-fit:cover}
.cs-per-txt{min-width:0}
.cs-per-txt h2{font-size:clamp(28px,3.4vw,42px);font-weight:600;color:var(--ocean);margin:10px 0 18px}
.cs-per-txt p{color:var(--gris);font-size:16px;margin-bottom:18px}
.cs-per-dato{display:flex;align-items:baseline;gap:14px;background:#fff;border-radius:var(--r-md);
  padding:18px 24px;margin-bottom:22px;box-shadow:var(--sh-soft);width:fit-content}
.cs-per-dato strong{font-family:'Fredoka',sans-serif;font-size:44px;font-weight:600;color:var(--aqua);line-height:1}
.cs-per-dato span{font-size:14px;font-weight:700;color:var(--ocean)}
.cs-per-nota{display:flex;align-items:flex-start;gap:10px;background:var(--aqua-pale);
  border-radius:var(--r-md);padding:14px 18px;font-size:13.5px !important;margin-bottom:0 !important}
.cs-per-nota svg{width:18px;height:18px;flex:none;stroke:var(--aqua);margin-top:2px}
.cs-per-mapa{margin-top:54px}
.cs-per-mapa .media,.cs-per-mapa .ph{border-radius:var(--r-lg);overflow:hidden;background:#fff;
  box-shadow:var(--sh-soft);min-height:320px}
.cs-per-mapa .media img{width:100%;height:auto}
.cs-per-cta{display:flex;justify-content:center;margin-top:36px}

/* El banner cierra la página, así que no necesita tanto aire arriba. */
.cs .banner-space{padding:0 0 100px}

@media (max-width:1200px){
  .cs-mod-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1024px){
  .cs-per-cols{grid-template-columns:1fr;gap:34px}
}
@media (max-width:760px){
  .cs-patio,.cs-pergolas{padding:70px 0}
  .cs .banner-space{padding:0 0 70px}
  .cs-mod-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto;gap:16px}
  .cs-pat-cta .btn,.cs-per-cta .btn{width:100%}
  .cs-per-dato{width:100%}
  .cs-per-mapa{margin-top:34px}
  .cs-per-mapa .media,.cs-per-mapa .ph{min-height:220px}
}

/* Mismo aterrizaje de scroll que el resto: 20px sobre el antetítulo. */
#patio,#pergolas{scroll-margin-top:calc(var(--hdr) + 20px - 100px)}

/* ============ PLANIFICA TU VISITA ============ */
/* Hero sin botones: es una página de consulta, no de conversión. */
.pv-hero{min-height:520px;padding-bottom:130px}

/* ---- Cómo llegar ---- */
.pv-llegar{padding:100px 0;background:#fff}
.pv-lle-cols{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}
.pv-dato{display:flex;gap:18px;margin-bottom:28px}
.pv-dato .ic{width:56px;height:56px;flex:none;border-radius:17px;background:var(--aqua-pale);
  display:flex;align-items:center;justify-content:center}
.pv-dato .ic svg{width:26px;height:26px;stroke:var(--aqua);stroke-width:2}
.pv-dato h3{font-size:20px;font-weight:600;color:var(--ocean);margin-bottom:6px}
.pv-dato p{font-size:15.5px;color:var(--gris);line-height:1.6}

/* Los dos enlaces de ruta: fila completa, para que se vean como acción y no como texto. */
.pv-rutas{display:flex;flex-direction:column;gap:12px;margin-top:32px}
.pv-ruta{display:flex;align-items:center;gap:14px;background:var(--cielo);
  border:1.5px solid rgba(11,43,78,.08);border-radius:var(--r-md);padding:16px 20px;
  font-weight:700;font-size:15px;color:var(--ocean);
  transition:background .3s var(--ease),border-color .3s,transform .3s var(--ease)}
.pv-ruta:hover{background:var(--aqua-pale);border-color:var(--aqua);transform:translateX(4px)}
.pv-ruta>svg:first-child{width:22px;height:22px;flex:none;stroke:var(--aqua)}
.pv-ruta>span{flex:1 1 auto;min-width:0}
.pv-ruta .chev{width:17px;height:17px;flex:none;stroke:var(--gris)}
.pv-ruta:hover .chev{stroke:var(--aqua)}
.pv-ruta.is-off{opacity:.5;cursor:default}
.pv-ruta.is-off:hover{background:var(--cielo);border-color:rgba(11,43,78,.08);transform:none}

.pv-lle-mapa{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-soft);background:var(--cielo)}
.pv-lle-mapa iframe{display:block;width:100%;height:460px;border:0}
.pv-lle-mapa .ph{min-height:460px}

/* ---- Calendario incrustado ---- */
/* El bloque ya trae su propio fondo celeste y su padding: acá solo se ajusta
   el encabezado, que lo pone la página y no el plugin. */
.pv-cal{padding-top:100px;background:var(--cielo)}
.pv-cal .sec-head{margin-bottom:0}
.pv-cal .avcal{padding-top:26px}

/* ---- Información importante ---- */
.pv-info{padding:100px 0;background:var(--cielo)}
.pv-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;
  max-width:900px;margin:0 auto}
.pv-info-card{background:#fff;border:1px solid rgba(11,43,78,.07);border-radius:var(--r-lg);
  box-shadow:var(--sh-soft);padding:38px 32px;text-align:center;
  display:flex;flex-direction:column;align-items:center;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.pv-info-card:hover{transform:translateY(-6px);box-shadow:var(--sh-deep)}
.pv-info-card .ic{width:72px;height:72px;margin-bottom:20px;border-radius:21px;
  background:var(--aqua-pale);display:flex;align-items:center;justify-content:center}
.pv-info-card .ic svg{width:32px;height:32px;stroke:var(--aqua);stroke-width:1.9}
.pv-info-card h3{font-size:22px;font-weight:600;color:var(--ocean);margin-bottom:12px}
.pv-info-card p{font-size:15px;color:var(--gris);line-height:1.6;margin-bottom:22px;flex:1 1 auto}
.pv-info-link{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:14.5px;
  color:var(--coral);transition:gap .3s var(--ease)}
.pv-info-link svg{width:17px;height:17px;stroke:var(--coral);stroke-width:2.5}
.pv-info-link:hover{gap:13px}
.pv-info-link.is-off{color:var(--ph-tx);cursor:default;font-weight:600;font-style:italic}
.pv-info-link.is-off:hover{gap:8px}

@media (max-width:1024px){
  .pv-lle-cols{grid-template-columns:1fr;gap:34px}
  .pv-lle-mapa iframe,.pv-lle-mapa .ph{height:360px;min-height:360px}
}
@media (max-width:760px){
  .pv-llegar,.pv-info{padding:70px 0}
  .pv-cal{padding-top:70px}
  .pv-hero{min-height:420px;padding-bottom:100px}
  .pv-info-grid{grid-template-columns:1fr;gap:18px}
  .pv-info-card{padding:30px 24px}
  .pv-lle-mapa iframe,.pv-lle-mapa .ph{height:300px;min-height:300px}
}

/* Mismo aterrizaje de scroll que el resto: 20px sobre el encabezado. */
#como-llegar,#calendario-aviva,#informacion{scroll-margin-top:calc(var(--hdr) + 20px - 100px)}

/* ============ FAQ POR PÁGINA ============ */
/* Reutilizan .faq y .acc del home; solo cambia el fondo, para que cada bloque
   contraste con la sección que le toca al lado en su propia página. */
.ee-faq,.cs-faq,.pv-faq{padding:100px 0}
/* Eventos Empresa: viene del formulario, que degrada a celeste. Se queda en celeste. */
/* Comida: la sección de pérgolas ya es celeste, así que el FAQ va en blanco. */
.cs-faq{background:#fff}
/* Planifica: entre el calendario y las tarjetas de políticas, ambos celestes. */
.pv-faq{background:#fff}

@media (max-width:760px){
  .ee-faq,.cs-faq,.pv-faq{padding:70px 0}
}

#faq-eventos,#faq-comida,#faq-planifica{scroll-margin-top:calc(var(--hdr) + 20px - 100px)}

/* Hero de Eventos Empresa: la bajada puede traer varios párrafos, así que van
   más juntos entre sí y el aire grande queda solo antes de los botones. */
.ee-hero-texto{margin-bottom:34px}
.ee-hero-texto p{margin-bottom:14px}
.ee-hero-texto p:last-child{margin-bottom:0}
/* El primer párrafo hace de bajada del título y se queda en 19px; los que
   siguen son texto de apoyo y bajan a 17px, para dar jerarquía dentro del hero. */
.ee-hero-texto p:not(:first-child){font-size:clamp(15px,1.5vw,17px);
  color:rgba(255,255,255,.82)}

/* ============ CARRUSELES: NO SECUESTRAR EL SCROLL ============ */
/* Con puntero fino (mouse o trackpad) el riel deja de ser contenedor de scroll:
   así el gesto vertical nunca queda atrapado al pasar por encima. La navegación
   queda en las flechas, que mueven el riel por código —scrollBy funciona igual
   con overflow oculto—. En táctil se mantiene el deslizamiento con el dedo. */
@media (hover:hover) and (pointer:fine){
  .rail,.ee-atr .rail{overflow-x:hidden}
}

/* Bajada de sección con varios párrafos: van más juntos entre sí que el
   conjunto respecto del título, para que se lean como un solo bloque. */
.sec-head p + p{margin-top:10px}
/* Esta sección lleva título largo y bajada, así que necesita más ancho que el
   resto para no partirse en demasiadas líneas. */
.cu .ee-calugas .sec-head{max-width:760px}

/* ============ CUMPLEAÑOS · QUÉ INCLUYE ============ */
/* Siete cajas: flex centrado para que la última fila quede al medio y se
   reacomode sola si el editor agrega o quita ítems. */
/* Grilla fija de 6: dos filas de tres, sin huecos ni filas huérfanas. El
   repetidor está limitado a 6 ítems para que no se rompa. */
.cu-inc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cu-inc{min-width:0;display:flex;flex-direction:column;
  background:var(--cielo);border:1px solid rgba(11,43,78,.07);border-radius:var(--r-md);
  padding:26px 22px;text-align:center;
  transition:transform .4s var(--ease),background .4s,box-shadow .4s}
.cu-inc:hover{transform:translateY(-5px);background:#fff;box-shadow:var(--sh-soft)}
.cu-inc .ic{width:58px;height:58px;margin:0 auto 14px;border-radius:17px;background:var(--aqua-pale);
  display:flex;align-items:center;justify-content:center;transition:background .35s}
.cu-inc .ic svg{width:26px;height:26px;stroke:var(--aqua);stroke-width:1.9;transition:stroke .35s}
.cu-inc:hover .ic{background:var(--aqua)}
.cu-inc:hover .ic svg{stroke:#fff}
.cu-inc h3{font-size:17px;font-weight:600;color:var(--ocean);line-height:1.3;margin-bottom:8px}
.cu-inc p{font-size:13.5px;color:var(--gris);line-height:1.55}
.cu-inc p + p{margin-top:8px}
.cu-inc-lista{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:6px;text-align:left}
.cu-inc-lista li{font-size:13px;color:var(--gris);line-height:1.45;padding-left:16px;position:relative}
.cu-inc-lista li::before{content:'';position:absolute;left:0;top:.55em;width:5px;height:5px;
  border-radius:50%;background:var(--aqua)}

  background:linear-gradient(135deg,var(--ocean-deep) 0%,#0E3D63 60%,var(--ocean-mid) 140%);
  border-radius:var(--r-lg);box-shadow:var(--sh-deep);padding:34px 40px;color:#fff}

@media (max-width:760px){
  .cu-inc{flex:1 1 100%;max-width:420px}
  }

/* ============ BANDA DE CIERRE ============ */
/* Bloque destacado que cierra una sección con más peso que una caja de la
   grilla. Lo usan Cumpleaños y las Reglas del home. */
.band{display:flex;align-items:center;gap:28px;margin-top:34px;
  background:linear-gradient(135deg,var(--ocean-deep) 0%,#0E3D63 60%,var(--ocean-mid) 140%);
  border-radius:var(--r-lg);box-shadow:var(--sh-deep);padding:34px 40px;color:#fff}
.band-ic{width:76px;height:76px;flex:none;border-radius:22px;background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center}
.band-ic svg{width:34px;height:34px;stroke:var(--sol);stroke-width:1.9}
.band-txt{min-width:0}
.band .eyebrow{color:var(--sol);display:block;margin-bottom:8px}
.band h3{font-size:23px;font-weight:600;color:#fff;margin-bottom:10px}
.band p{font-size:15px;color:rgba(255,255,255,.86);line-height:1.65}
.band p + p{margin-top:8px}

@media (max-width:760px){
  .band{flex-direction:column;text-align:center;padding:30px 24px;gap:18px;margin-top:26px}
}
