/* ═══════════════ OMI JUMPING · Fajardo PR · estilo elite ═══════════════ */
/* ── Fuentes locales (sin Google Fonts: carga más rápido y sin depender de red externa) ── */
@font-face{font-family:"Baloo 2";font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/baloo2.woff2) format("woff2")}
@font-face{font-family:"Fredoka";font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/fredoka.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:200 1000;font-display:swap;src:url(../fonts/nunito.woff2) format("woff2")}
:root{
  --sky:#00AEEF; --sky-d:#0093d6; --sun:#FFD500; --red:#ED1C24; --royal:#0B4DA2;
  --royal-d:#083a7a; --ink:#12233d; --muted:#5b6b82; --line:#e3ecf5;
  --bg:#ffffff; --bg-soft:#eef7ff; --bg-sun:#fff8d6;
  --radius:22px; --shadow:0 18px 45px rgba(11,77,162,.16); --shadow-sm:0 8px 22px rgba(11,77,162,.12);
  --font-t:"Baloo 2",system-ui,sans-serif; --font-b:"Fredoka",system-ui,sans-serif; --font-tx:"Nunito",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:var(--font-tx);color:var(--ink);background:var(--bg);overflow-x:hidden;overflow-x:clip;line-height:1.6}
img{max-width:100%;display:block}
/* Seguridad: ningún SVG puede inflarse aunque el CSS falle (NUNCA width:100% genérico) */
svg{max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.section{padding:84px 0}
.section.alt{background:var(--bg-soft)}
.center{text-align:center}
.muted{color:var(--muted)}
.eyebrow{font-family:var(--font-b);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sky-d);font-size:.82rem;margin-bottom:.5rem}
.eyebrow.light{color:var(--sun)}
h1,h2,h3{font-family:var(--font-t);line-height:1.08;color:var(--royal)}
h2{font-size:clamp(1.9rem,4.4vw,2.9rem);font-weight:800;margin-bottom:.6rem}
h2 em{font-style:normal;color:var(--red)}
h1 em{font-style:normal;color:var(--sun)}
.lead{font-size:1.12rem;color:var(--muted);max-width:640px}
h2.center+p.lead,.center.lead{margin-left:auto;margin-right:auto}

/* ── Reveal ── */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.rv.on{opacity:1;transform:none}
/* Sin JS, el contenido NUNCA se esconde: la animación solo mejora, nunca oculta */
html:not(.js) .rv{opacity:1;transform:none}
/* Red de seguridad: el temporizador de main.js fuerza la visibilidad con esta clase */
.force-on{opacity:1!important;transform:none!important}
/* Cuando GSAP está activo, él maneja los reveals (sin doble animación) */
.gsap-on .rv{opacity:1;transform:none;transition:none}

/* ── Titular hero con líneas para animación por palabras ── */
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero h1 .w{display:inline-block}

/* ══════════ MARQUESINA FIESTA ══════════ */
.marquee{background:var(--sun);overflow:hidden;padding:13px 0;border-top:3px solid var(--royal);border-bottom:3px solid var(--royal)}
.marquee-track{display:flex;width:max-content;white-space:nowrap;font-family:var(--font-t);font-weight:800;
  font-size:1.12rem;color:var(--royal);letter-spacing:.02em;animation:marquee 28s linear infinite}
.marquee-track span{padding:0 4px}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.gsap-on .marquee-track{animation:none}

/* ══════════ LOADER ELITE · "EL INFLABLE SE ESTÁ INFLANDO" ══════════ */
.loader{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;cursor:pointer;
  background:linear-gradient(180deg,#7dd8ff 0%,#00AEEF 55%,#0B4DA2 100%);overflow:hidden;
  transition:transform .55s cubic-bezier(.76,0,.24,1),opacity .4s ease;
  animation:loaderCssKill .4s ease 3.5s forwards}
@keyframes loaderCssKill{to{opacity:0;visibility:hidden}}
/* Wipe: la pantalla se abre hacia arriba revelando el hero */
.loader.done{transform:translateY(-102%);pointer-events:none}
.loader-inflate{will-change:transform}
.loader-logo{width:150px;border-radius:22px;box-shadow:0 24px 60px rgba(0,0,0,.35);display:block;
  transform:scale(1.35,.1);transform-origin:50% 100%}
.loader-balloons{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.loader-balloons .lb{position:absolute;bottom:-90px;width:34px;height:44px;border-radius:50% 50% 50% 50%/55% 55% 45% 45%;
  background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.9),rgba(255,255,255,0) 42%),var(--c,#FFD500);
  box-shadow:inset -4px -6px 10px rgba(0,0,0,.12);opacity:.85;animation:lbRise 2.4s ease-in infinite}
.loader-balloons .lb1{left:8%;--c:#FFD500;animation-delay:0s}
.loader-balloons .lb2{left:20%;--c:#ED1C24;animation-delay:.5s;width:26px;height:34px}
.loader-balloons .lb3{right:10%;--c:#fff;animation-delay:.25s}
.loader-balloons .lb4{right:22%;--c:#FF5CA8;animation-delay:.8s;width:26px;height:34px}
.loader-balloons .lb5{left:46%;--c:#7dd8ff;animation-delay:1.1s;width:22px;height:30px}
@keyframes lbRise{0%{transform:translateY(0)}100%{transform:translateY(-110vh)}}
.loader-text{font-family:var(--font-t);font-weight:800;font-size:1.25rem;color:#fff;letter-spacing:.02em}
.loader-bar{width:min(280px,70vw);height:12px;border-radius:99px;background:rgba(255,255,255,.28);overflow:hidden}
.loader-bar b{display:block;height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,var(--sun),#fff);transition:width .3s ease}
.loader-pct{font-family:var(--font-b);font-weight:600;color:#fff;font-size:.95rem}
.loader-skip{font-family:var(--font-b);font-weight:600;color:rgba(255,255,255,.85);font-size:.85rem;letter-spacing:.06em}

/* ══════════ HEADER compacto (sin backdrop-filter: no atrapa el menú fijo) ══════════ */
.header{position:fixed;top:0;left:0;right:0;z-index:60;background:#fff;border-bottom:1px solid var(--line)}
.header-in{max-width:1180px;margin:0 auto;padding:10px 22px;display:flex;align-items:center;gap:14px}
.header-logo{width:52px;border-radius:12px;flex:none}
.header-name{font-family:var(--font-t);font-weight:800;font-size:1.25rem;color:var(--royal);line-height:1.05}
.header-name span{display:block;font-family:var(--font-b);font-weight:500;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-d)}
.header-cta{margin-left:auto}

/* ── Menú flotante 3 rayas ── */
.nav-toggle{position:fixed;top:76px;right:20px;z-index:70;width:56px;height:56px;border-radius:50%;
  background:var(--royal);border:3px solid #fff;box-shadow:0 10px 26px rgba(11,77,162,.4);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-toggle span{display:block;width:22px;height:3px;background:#fff;border-radius:2px;transition:.3s}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.overlay-menu{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(420px,92vw);z-index:65;
  background:linear-gradient(170deg,var(--royal) 0%,#0a63c4 60%,var(--sky) 100%);
  box-shadow:-18px 0 50px rgba(11,77,162,.35);transform:translateX(105%);transition:transform .4s ease,visibility .4s;
  visibility:hidden;
  display:flex;align-items:center;padding:90px 34px 40px;overflow-y:auto}
.overlay-menu.open{transform:translateX(0);visibility:visible}
.overlay-inner{display:flex;flex-direction:column;gap:6px;width:100%}
.overlay-inner a{font-family:var(--font-t);font-weight:700;font-size:1.5rem;color:#fff;padding:10px 6px;border-bottom:1px solid rgba(255,255,255,.18);opacity:0;transform:translateX(24px);transition:.35s}
.overlay-menu.open .overlay-inner a{opacity:1;transform:none}
.overlay-inner a:hover{color:var(--sun)}
.overlay-inner a.menu-hot{background:var(--sun);color:var(--royal);border-radius:12px;padding:10px 14px;border-bottom:none}
.overlay-inner a.menu-hot:hover{color:var(--royal-d)}
.overlay-inner .menu-cta{margin-top:18px;background:var(--sun);color:var(--royal);text-align:center;border-radius:14px;border:none;font-size:1.2rem}
.overlay-inner .menu-cta:hover{color:var(--royal-d)}
.overlay-menu .menu-foot{margin-top:22px;color:rgba(255,255,255,.85);font-size:.9rem}

/* ══════════ BOTONES ══════════ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-b);font-weight:600;
  font-size:1.02rem;padding:14px 26px;border-radius:99px;border:none;transition:transform .2s,box-shadow .2s;cursor:pointer}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn:active{transform:scale(.97)}
.btn-primary{background:linear-gradient(135deg,var(--red),#ff5a3c);color:#fff;box-shadow:0 12px 26px rgba(237,28,36,.35)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(237,28,36,.45)}
.btn-wa{background:#22c55e;color:#fff;box-shadow:0 12px 26px rgba(34,197,94,.35)}
.btn-wa:hover{transform:translateY(-2px)}
.btn-sun{background:var(--sun);color:var(--royal);box-shadow:0 12px 26px rgba(255,213,0,.4)}
.btn-sun:hover{transform:translateY(-2px)}
.btn-ghost{background:#fff;color:var(--royal);border:2px solid var(--royal)}
.btn-ghost:hover{background:var(--bg-soft)}
.btn.big{padding:17px 34px;font-size:1.12rem}
.btn.sm{padding:9px 18px;font-size:.92rem}

/* ══════════ HERO 3D ══════════ */
.hero{position:relative;padding:148px 0 70px;overflow:hidden;
  background:linear-gradient(180deg,#bfeaff 0%,#e6f7ff 55%,#ffffff 100%)}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(420px 220px at 12% 20%,rgba(255,213,0,.5),transparent 70%),
  radial-gradient(380px 220px at 88% 30%,rgba(0,174,239,.35),transparent 70%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:99px;
  padding:8px 16px;font-family:var(--font-b);font-weight:600;font-size:.9rem;color:var(--royal);box-shadow:var(--shadow-sm)}
.badge svg{width:16px;height:16px;fill:var(--red)}
.hero h1{font-size:clamp(2.6rem,6vw,4.3rem);font-weight:800;color:var(--royal);margin:18px 0 12px;text-shadow:0 3px 0 rgba(255,255,255,.7)}
.hero h1 .h-red{color:var(--red)}
.hero-sub{font-size:1.15rem;color:#33507a;max-width:520px;margin-bottom:20px}
.offer{display:flex;align-items:center;gap:14px;background:#fff;border:2px dashed var(--red);border-radius:var(--radius);
  padding:14px 18px;box-shadow:var(--shadow-sm);max-width:520px;margin-bottom:24px}
.offer-price{font-family:var(--font-t);font-weight:800;font-size:1.9rem;color:var(--red);line-height:1;white-space:nowrap}
.offer-price small{display:block;font-size:.72rem;font-family:var(--font-b);font-weight:600;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.offer p{font-size:.98rem;line-height:1.45}
.offer p b{color:var(--royal)}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-note{margin-top:16px;font-size:.92rem;color:var(--muted)}
.hero-note b{color:var(--royal)}

/* Globos flotantes */
.balloon{position:absolute;border-radius:50% 50% 50% 50%/55% 55% 45% 45%;opacity:.85;animation:rise 7s ease-in-out infinite;pointer-events:none}
.balloon::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:34px;background:rgba(18,35,61,.35)}
.balloon.b1{width:44px;height:54px;background:radial-gradient(circle at 30% 30%,#ff8a8a,var(--red));left:4%;top:18%}
.balloon.b2{width:34px;height:42px;background:radial-gradient(circle at 30% 30%,#ffe97a,var(--sun));right:6%;top:12%;animation-delay:1.4s}
.balloon.b3{width:28px;height:35px;background:radial-gradient(circle at 30% 30%,#7dd8ff,var(--sky));left:8%;bottom:10%;animation-delay:2.6s}
@keyframes rise{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}

/* ══════════ FRANJA CONFIANZA ══════════ */
.trust{background:var(--royal);color:#fff;padding:22px 0}
.trust-in{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 44px}
.trust-item{display:flex;align-items:center;gap:10px;font-family:var(--font-b);font-weight:600;font-size:.98rem}
.trust-item svg{width:22px;height:22px;fill:var(--sun);flex:none}
.trust-item b{color:var(--sun)}
/* Mini-logos de pago en la franja de confianza */
.pay-minis{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}
.pay-minis img{height:22px;width:auto;background:#fff;border-radius:6px;padding:3px 6px;box-shadow:0 2px 8px rgba(0,0,0,.28);flex:none}

/* ══════════ MÉTODOS DE PAGO · LOGOS ORIGINALES 3D ══════════ */
.pagos{background:linear-gradient(180deg,#fff,#eef7ff)}
.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;perspective:1100px}
.pay-card{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:26px 18px 20px;text-align:center;box-shadow:0 14px 30px rgba(11,77,162,.12),0 3px 0 rgba(11,77,162,.08);transition:transform .35s cubic-bezier(.22,.9,.3,1),box-shadow .35s;transform-style:preserve-3d;will-change:transform}
.pay-card:hover{transform:translateY(-8px) rotateX(7deg) rotateY(-7deg);box-shadow:0 26px 48px rgba(11,77,162,.22),0 6px 0 rgba(11,77,162,.08)}
.pay-card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.9),transparent 42%);pointer-events:none}
.pay-logo{height:64px;display:flex;align-items:center;justify-content:center;transform:translateZ(28px)}
.pay-logo img{max-width:172px;max-height:64px;width:auto;height:auto;object-fit:contain}
.pay-name{font-family:var(--font-t);font-weight:800;font-size:1.15rem;color:var(--royal);margin-top:12px;transform:translateZ(18px)}

/* ══════════ SERVICIOS · FILA HORIZONTAL PLANA NORMAL (v9) ══════════ */
.svc-hint{text-align:center;color:var(--muted);font-size:.9rem;margin-top:10px}
.svc-wrap{position:relative;margin-top:30px}
.svc-viewport{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  touch-action:pan-y;cursor:grab;border-radius:18px;overscroll-behavior-x:contain;padding:10px 2px}
.svc-viewport::-webkit-scrollbar{display:none}
.svc-viewport.dragging{cursor:grabbing}
.svc-track{display:flex;gap:20px;width:max-content;padding:6px 2px}
.svc-track .svc-card{width:320px;flex:0 0 auto;margin-top:0;transition:box-shadow .25s}
.svc-track .svc-card:hover{box-shadow:var(--shadow)}
.svc-arrow{position:absolute;top:42%;transform:translateY(-50%);z-index:4;width:48px;height:48px;border-radius:50%;
  border:none;background:#fff;color:var(--royal);font-size:1.7rem;box-shadow:var(--shadow-sm)}
.svc-arrow.prev{left:-8px}
.svc-arrow.next{right:-8px}
.svc-dots{display:flex;gap:8px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.svc-dots button{width:10px;height:10px;border-radius:50%;border:none;background:rgba(11,77,162,.25);padding:0;transition:.2s}
.svc-dots button.on{background:var(--sun);transform:scale(1.45);box-shadow:0 0 0 2px var(--royal)}
.svc-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.svc-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg-soft)}
.svc-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.svc-card:hover .svc-media img{transform:scale(1.06)}
.svc-media video{width:100%;height:100%;object-fit:cover}
.svc-tag{position:absolute;top:12px;left:12px;background:var(--sun);color:var(--royal);font-family:var(--font-b);
  font-weight:700;font-size:.8rem;padding:6px 12px;border-radius:99px;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.svc-tag.red{background:var(--red);color:#fff}
.svc-tag.blue{background:var(--royal);color:#fff}
.svc-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.svc-body h3{font-size:1.3rem}
.svc-body p{font-size:.97rem;color:var(--muted);flex:1}
.svc-price{font-family:var(--font-t);font-weight:800;font-size:1.45rem;color:var(--red)}
.svc-price small{font-size:.85rem;font-family:var(--font-b);font-weight:600;color:var(--muted)}
.svc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}

/* ══════════ COTIZADOR ══════════ */
.quote{background:linear-gradient(135deg,var(--royal) 0%,#0a63c4 55%,var(--sky) 100%);border-radius:28px;
  padding:44px 40px;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}
.quote::after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:rgba(255,213,0,.16);right:-90px;top:-90px}
.quote h2{color:#fff}
.quote h2 em{color:var(--sun)}
.quote p{color:rgba(255,255,255,.88);max-width:560px}
.quote-form{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:26px}
.quote-form label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-b);font-weight:600;font-size:.9rem}
.quote-form label.full{grid-column:1/-1}
.quote-form input,.quote-form select{font-family:var(--font-tx);font-size:1rem;font-weight:600;color:var(--ink);
  padding:13px 15px;border-radius:12px;border:none;outline:none;width:100%}
.quote-form input:focus,.quote-form select:focus{box-shadow:0 0 0 3px var(--sun)}
.quote-form .btn{grid-column:1/-1}

/* ══════════ PASOS / PARA QUIÉN ══════════ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.step{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:30px 24px;text-align:center;box-shadow:var(--shadow-sm)}
.step-num{width:58px;height:58px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-t);font-weight:800;font-size:1.5rem;color:#fff;background:linear-gradient(135deg,var(--sky),var(--royal))}
.step:nth-child(2) .step-num{background:linear-gradient(135deg,var(--sun),#ffb800);color:var(--royal)}
.step:nth-child(3) .step-num{background:linear-gradient(135deg,var(--red),#ff5a3c)}
.step h3{font-size:1.25rem;margin-bottom:6px}
.step p{color:var(--muted);font-size:.97rem}
.aud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.aud-card{background:#fff;border-radius:var(--radius);padding:28px 18px;text-align:center;border:1.5px solid var(--line);box-shadow:var(--shadow-sm);transition:transform .25s}
.aud-card:hover{transform:translateY(-5px) rotate(-1deg)}
.aud-ico{width:62px;height:62px;margin:0 auto 12px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--bg-soft)}
.aud-ico svg{width:32px;height:32px;fill:var(--royal)}
.aud-card h3{font-size:1.15rem}
.aud-card p{font-size:.92rem;color:var(--muted)}

/* ══════════ GALERÍA ══════════ */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
.gal-item{border-radius:18px;overflow:hidden;border:3px solid #fff;box-shadow:var(--shadow-sm);cursor:pointer;padding:0;background:#fff;aspect-ratio:3/4}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gal-item:hover img{transform:scale(1.07)}

/* ══════════ SOBRE NOSOTROS ══════════ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about-logo{width:100%;max-width:420px;margin:0 auto;border-radius:26px;box-shadow:var(--shadow)}
.check-list{list-style:none;margin-top:18px;display:grid;gap:10px}
.check-list li{display:flex;gap:10px;align-items:flex-start;font-weight:600}
.check-list svg{width:22px;height:22px;fill:#22c55e;flex:none;margin-top:2px}
.about-stats{display:flex;gap:26px;margin-top:26px;flex-wrap:wrap}
.about-stats div b{display:block;font-family:var(--font-t);font-size:1.7rem;color:var(--royal);line-height:1.1}
.about-stats div span{font-size:.88rem;color:var(--muted)}

/* ══════════ FAQ ══════════ */
.narrow{max-width:820px;margin:0 auto}
.faq{margin-top:36px;display:grid;gap:12px}
.faq details{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:6px 20px;box-shadow:var(--shadow-sm)}
.faq summary{font-family:var(--font-t);font-weight:700;font-size:1.12rem;color:var(--royal);padding:14px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.6rem;color:var(--red);font-weight:800;line-height:1}
.faq details[open ] summary::after{content:"–"}
.faq p{padding:0 0 16px;color:var(--muted)}

/* ══════════ CONTACTO ══════════ */
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.c-card{background:#fff;border-radius:var(--radius);border:1.5px solid var(--line);padding:26px 20px;text-align:center;box-shadow:var(--shadow-sm)}
.c-card svg{width:30px;height:30px;fill:var(--sky-d);margin:0 auto 10px}
.c-card h3{font-size:1.12rem;margin-bottom:6px}
.c-card p{font-size:.95rem;color:var(--muted)}
.c-card a{color:var(--royal);font-weight:700}
/* Contacto con logos grandes (mismo estilo que la fila de redes del hero) */
.contact-logos{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:40px}
.contact-logos .soc-lg{width:88px;height:88px;border-radius:22px;flex-direction:column;gap:5px}
.contact-logos .soc-lg svg{width:36px;height:36px}
.contact-logos .soc-lg span{font-family:var(--font-b);font-weight:600;font-size:.78rem;color:#fff;line-height:1.1;text-align:center}
.contact-info{text-align:center;margin-top:30px}
.contact-phone{margin-bottom:10px}
.contact-email{font-size:1.05rem;overflow-wrap:anywhere}
.contact-email a{color:var(--royal);font-weight:700}
.contact-loc{color:var(--muted);margin-top:6px}
.contact-loc a{color:var(--royal);font-weight:700}
.map-card{margin-top:24px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1.5px solid var(--line)}
.map-card iframe{width:100%;height:340px;border:0;display:block}
.cta-final{text-align:center;margin-top:52px}
.cta-final h3{font-size:clamp(1.6rem,3.6vw,2.3rem);margin-bottom:18px}

/* ══════════ PRECIOS (al final, antes del footer) ══════════ */
.prices{background:var(--bg-sun)}
.price-table{width:100%;margin-top:36px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1.5px solid #ffe27a;perspective:1400px}
.price-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line);align-items:center;
  transition:translate .45s cubic-bezier(.2,.7,.3,1.3),rotate .45s ease,box-shadow .45s ease}
.price-row:last-child{border-bottom:none;border-radius:0 0 var(--radius) var(--radius)}
.price-row.head{background:var(--royal);color:#fff;font-family:var(--font-b);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.85rem;border-radius:var(--radius) var(--radius) 0 0}
.price-row.hl{background:#fffbe6}
.price-row:not(.head):hover{translate:0 -3px 22px;rotate:x 2deg;box-shadow:0 24px 40px rgba(11,77,162,.28)}
.price-row:not(.head):active{translate:0 0 14px}
.price-row .p-name{font-family:var(--font-t);font-weight:700;font-size:1.08rem;color:var(--royal)}
.price-row .p-name small{display:block;font-family:var(--font-tx);font-weight:600;font-size:.88rem;color:var(--muted)}
.price-row .p-val{font-family:var(--font-t);font-weight:800;font-size:1.25rem;color:var(--red);text-align:right;white-space:nowrap;text-shadow:0 1px 0 #fff,0 3px 6px rgba(237,28,36,.22)}
.price-row .p-val small{display:block;font-family:var(--font-b);font-weight:600;font-size:.78rem;color:var(--muted)}
/* Fila protagonista 3D: la oferta principal sobresale del resto */
.price-row.price-hero{position:relative;background:linear-gradient(135deg,#fff8d6,#ffe27a);border:2px solid var(--sun);margin-top:22px;translate:0 0 34px;box-shadow:0 26px 44px rgba(11,77,162,.3)}
.price-row.price-hero:hover{translate:0 -4px 48px;rotate:x 2deg}
.price-row.price-hero .p-val{font-size:1.6rem;text-shadow:0 2px 0 #fff,0 5px 10px rgba(237,28,36,.3)}
.p-badge{position:absolute;top:-13px;right:18px;background:var(--red);color:#fff;font-family:var(--font-b);font-weight:600;font-size:.72rem;letter-spacing:.1em;padding:5px 12px;border-radius:99px;box-shadow:0 8px 16px rgba(237,28,36,.4)}
.price-note{margin-top:18px;font-size:.92rem;color:var(--muted)}
.price-note b{color:var(--royal)}

/* ══════════ FOOTER ══════════ */
.footer{background:var(--royal-d);color:#fff;padding:54px 0 34px;text-align:center}
.footer-logo{width:110px;margin:0 auto 16px;border-radius:18px}
.footer p{color:rgba(255,255,255,.85)}
.footer .tiny{font-size:.82rem;color:rgba(255,255,255,.6);margin-top:10px}
.footer-links{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:16px 0}
.footer-links a{font-weight:700;color:#fff;border-bottom:2px solid var(--sun)}

/* ══════════ WHATSAPP FLOTANTE + LIGHTBOX ══════════ */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:60;width:62px;height:62px;border-radius:50%;background:#22c55e;
  display:flex;align-items:center;justify-content:center;box-shadow:0 14px 30px rgba(34,197,94,.5);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:32px;height:32px;fill:#fff}
.lightbox{position:fixed;inset:0;z-index:150;background:rgba(8,30,60,.94);display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:.3s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:min(92vw,900px);max-height:86vh;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb-close,.lb-prev,.lb-next{position:absolute;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);color:#fff;
  width:48px;height:48px;border-radius:50%;font-size:1.7rem;display:flex;align-items:center;justify-content:center}
.lb-close{top:18px;right:18px;background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.65)}
.lb-prev{left:14px;top:50%;transform:translateY(-50%)}
.lb-next{right:14px;top:50%;transform:translateY(-50%)}
/* Lightbox de una sola foto (servicios): sin flechas prev/next, solo X */
.lightbox.lb-single .lb-prev,.lightbox.lb-single .lb-next{display:none}

/* ══════════ RESPONSIVE ══════════ */
@media(max-width:1020px){
  .gal-grid{grid-template-columns:repeat(3,1fr)}
  .aud-grid{grid-template-columns:repeat(2,1fr)}
  .hero-grid{grid-template-columns:1fr;gap:30px}
}
@media(max-width:860px){
  .split{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .header-in{padding-right:86px}
  .header-cta{display:none}
}
@media(max-width:640px){
  .section{padding:60px 0}
  .hero{padding-top:104px}
  .hero-ctas{flex-direction:column}
  .hero-ctas .btn{width:100%}
  .trust-in{flex-direction:column;align-items:center;gap:12px}
  .trust-item{max-width:100%}
  .pay-minis{justify-content:center}
  .pay-minis img{height:20px}
  .pay-grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .pay-card{padding:20px 12px 16px}
  .pay-logo{height:52px}
  .pay-logo img{max-width:140px;max-height:52px}
  .pay-name{font-size:1rem}
  .offer{flex-direction:column;align-items:flex-start;gap:6px}
  .gal-grid{grid-template-columns:repeat(2,1fr)}
  .aud-grid{grid-template-columns:1fr 1fr}
  .contact-logos .soc-lg{width:76px;height:76px}
  .contact-logos .soc-lg svg{width:32px;height:32px}
  .price-row.head{grid-template-columns:1fr auto}
  .map-card iframe{height:260px}
  .quote{padding:32px 22px}
  .quote-form{grid-template-columns:1fr}
  .nav-toggle{top:84px;right:14px;width:52px;height:52px}
  .overlay-menu{left:auto!important;width:min(420px,94vw)}
  .price-row{grid-template-columns:1fr;gap:2px;padding:14px 18px}
  .price-row .p-val{text-align:left}
  .wa-float{bottom:16px;right:16px;width:56px;height:56px}
  .lb-prev{left:6px}.lb-next{right:6px}
}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none}
  .balloon,.loader-balloons .lb{animation:none}
  .hero-shine{display:none}
  .loader{transition:opacity .3s ease;animation:none}
  .loader.done{transform:none;opacity:0;visibility:hidden}
}

/* ══════════ HERO CENTRADO ESTILO TONY ══════════ */
.hero-center{text-align:center;position:relative;z-index:3}
.hero-logo{width:min(220px,56vw);display:block;border-radius:24px;box-shadow:0 24px 55px rgba(11,77,162,.35)}
/* Logo hero: halo + brillo + respiración suave */
.hero-logo-unit{position:relative;display:inline-block;margin:0 auto 18px;will-change:transform}
.hero-logo-halo{position:absolute;inset:-24px;border-radius:50%;z-index:0;
  background:radial-gradient(circle,rgba(0,174,239,.5),rgba(255,213,0,.32) 42%,rgba(237,28,36,.2) 68%,transparent 72%);filter:blur(16px)}
.hero-logo-clip{position:relative;z-index:1;border-radius:24px;overflow:hidden}
.hero-shine{position:absolute;top:-12%;bottom:-12%;left:0;width:34%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.6) 50%,transparent);transform:skewX(-18deg)}
.social-row{display:flex;gap:12px;justify-content:center;margin-bottom:16px}
.soc{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 18px rgba(11,77,162,.28);transition:transform .2s,box-shadow .2s}
.soc svg{width:26px;height:26px;fill:#fff}
.soc:hover{transform:translateY(-3px) scale(1.07);box-shadow:0 12px 24px rgba(11,77,162,.35)}
.soc-fb{background:#1877F2}
.soc-gg{background:#EA4335}
.soc-ig{background:linear-gradient(45deg,#f9ce34,#ee2a7b 55%,#6228d7)}
.soc-wa{background:#25D366}
.call-today{display:block;margin:0 auto 18px;text-decoration:none}
.call-today span{display:block;font-family:var(--font-b);font-weight:600;font-size:.95rem;letter-spacing:.28em;color:var(--royal)}
.call-today b{display:block;font-family:var(--font-t);font-weight:800;font-size:clamp(2.5rem,9vw,3.8rem);line-height:1.05;
  color:var(--sun);-webkit-text-stroke:2px var(--red);
  text-shadow:3px 3px 0 var(--red),7px 7px 0 rgba(11,77,162,.22)}
.hero-center .hero-sub{margin-left:auto;margin-right:auto}
.hero-center .offer{margin-left:auto;margin-right:auto;text-align:left}
.hero-center .hero-ctas{justify-content:center}
.countdown{display:inline-flex;align-items:center;gap:9px;background:#fff;border:2px dashed var(--sky);
  border-radius:99px;padding:10px 18px;font-family:var(--font-b);font-weight:600;color:var(--royal);
  box-shadow:var(--shadow-sm);margin-bottom:20px;flex-wrap:wrap;justify-content:center}
.countdown svg{width:20px;height:20px;fill:var(--sky-d);flex:none}
.countdown small{color:var(--muted);font-weight:500}

/* ══════════ GLOBOS 3D ELITE ══════════ */
#balloonLayer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.b3d{position:absolute;pointer-events:auto;cursor:pointer;will-change:transform;z-index:5}
.b3d-in{will-change:transform;display:block}
.b3d svg{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 14px rgba(11,77,162,.30))}
.cfetti{position:absolute;width:9px;height:14px;border-radius:2px;pointer-events:none;z-index:30;will-change:transform,opacity}

/* ══════════ CATÁLOGO · CARRUSEL AUTO-SCROLL ══════════ */
.cat-wrap{position:relative;margin-top:36px}
.cat-viewport{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  touch-action:pan-y;cursor:grab;border-radius:18px;overscroll-behavior-x:contain}
.cat-viewport::-webkit-scrollbar{display:none}
.cat-viewport.dragging{cursor:grabbing}
.cat-track{display:flex;gap:16px;padding:6px 2px;width:max-content}
.cat-track .gal-item{width:250px;flex:0 0 auto;scroll-snap-align:start}
.cat-arrow{position:absolute;top:42%;transform:translateY(-50%);z-index:4;width:48px;height:48px;border-radius:50%;
  border:none;background:#fff;color:var(--royal);font-size:1.7rem;box-shadow:var(--shadow-sm)}
.cat-arrow.prev{left:-8px}
.cat-arrow.next{right:-8px}
.cat-dots{display:flex;gap:8px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.cat-dots button{width:10px;height:10px;border-radius:50%;border:none;background:rgba(11,77,162,.25);padding:0;transition:.2s}
.cat-dots button.on{background:var(--sun);transform:scale(1.3);box-shadow:0 0 0 2px var(--royal)}

/* ══════════ ARMA TU FIESTA · CONSTRUCTOR ══════════ */
.builder{display:grid;grid-template-columns:1.55fr 1fr;gap:26px;margin-top:40px;align-items:start}
/* ── Arma tu fiesta: cerrado por defecto (v11) ── */
.builder-hidden{display:none!important}
.builder-cta{display:flex;align-items:center;gap:16px;width:100%;max-width:640px;margin:36px auto 0;padding:20px 22px;text-align:left;background:linear-gradient(135deg,var(--royal),#0a63c4 55%,var(--sky));color:#fff;border:none;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.builder-cta:hover{transform:translateY(-3px);box-shadow:0 24px 50px rgba(11,77,162,.25)}
.builder-cta-ico{flex:none;width:58px;height:58px;border-radius:50%;background:var(--sun);display:flex;align-items:center;justify-content:center}
.builder-cta-ico svg{width:32px;height:32px;fill:var(--royal)}
.builder-cta-txt b{display:block;font-family:var(--font-t);font-weight:800;font-size:1.45rem;line-height:1.15}
.builder-cta-txt small{display:block;font-family:var(--font-tx);font-size:.95rem;color:rgba(255,255,255,.92);margin-top:4px;line-height:1.45}
.builder-cta-arrow{margin-left:auto;font-family:var(--font-t);font-size:2.4rem;line-height:1;color:var(--sun);flex:none}
.builder-close-row{display:flex;justify-content:flex-end;margin-top:36px}
.builder-close{background:#fff;border:2px solid var(--royal);color:var(--royal);border-radius:99px;padding:10px 20px;font-family:var(--font-b);font-weight:600;font-size:1rem;box-shadow:var(--shadow-sm)}
.builder-close:hover{background:var(--bg-soft)}
.builder-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.b-item{display:flex;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px;
  cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s;align-items:flex-start}
.b-item:hover{border-color:var(--sky)}
.b-item.on{border-color:var(--sky);background:var(--bg-soft);box-shadow:var(--shadow-sm)}
.b-item input[type="checkbox"]{width:20px;height:20px;margin-top:3px;accent-color:var(--sky);flex:none;cursor:pointer}
.b-item .b-info{flex:1;min-width:0}
.b-item h4{font-family:var(--font-t);font-size:1.02rem;color:var(--royal);line-height:1.2}
.b-item p{font-size:.86rem;color:var(--muted);line-height:1.4}
.b-item .b-price{font-family:var(--font-t);font-weight:800;color:var(--red);white-space:nowrap;font-size:1.05rem}
.b-item .b-price small{display:block;font-family:var(--font-b);font-weight:600;font-size:.72rem;color:var(--muted);text-align:right}
.b-item select{margin-top:7px;font-family:var(--font-tx);font-weight:700;font-size:.92rem;padding:6px 8px;border-radius:8px;border:1.5px solid var(--line);background:#fff;color:var(--ink)}
.builder-side{background:var(--royal);border-radius:22px;padding:26px;color:#fff;position:sticky;top:92px;box-shadow:var(--shadow)}
.builder-date{display:flex;flex-direction:column;gap:7px;font-family:var(--font-b);font-weight:600;font-size:.92rem}
.builder-date input{font-family:var(--font-tx);font-size:1rem;font-weight:700;color:var(--ink);padding:12px 14px;border-radius:12px;border:none;width:100%}
.builder-total{margin-top:18px;border-top:1px solid rgba(255,255,255,.25);padding-top:16px}
.builder-total span{font-family:var(--font-b);font-weight:600;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.builder-total b{display:block;font-family:var(--font-t);font-weight:800;font-size:2.7rem;line-height:1.1;color:var(--sun)}
.builder-total p{font-size:.9rem;color:rgba(255,255,255,.85);margin-top:4px}
.builder-list{list-style:none;margin:16px 0;display:grid;gap:7px;font-size:.95rem}
.builder-list li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed rgba(255,255,255,.25);padding-bottom:6px}
.builder-list li b{white-space:nowrap}
.builder-side .btn{width:100%}
.builder-fine{font-size:.82rem;color:rgba(255,255,255,.75);margin-top:12px;line-height:1.5}

/* ══════════ LA FIESTA · ESCENA EN CÓDIGO ══════════ */
.fiesta{background:linear-gradient(180deg,#bfeaff 0%,#e6f7ff 45%,#fff8d6 100%);padding:84px 0 70px;overflow:hidden}
.fiesta-sky{position:relative;max-width:980px;height:470px;margin:0 auto;border-radius:28px;overflow:hidden;
  background:linear-gradient(180deg,#6ec9f5 0%,#a5e2ff 52%,#bfe8a8 52.2%,#79c14e 100%);box-shadow:var(--shadow)}
#fiestaCanvas{display:block;width:100%;height:100%;cursor:pointer;touch-action:manipulation}
#fiestaCanvas:focus-visible{outline:3px solid var(--sun);outline-offset:-3px}
.fiesta-tap{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(255,255,255,.92);color:var(--royal);font-family:var(--font-b);font-weight:600;font-size:.85rem;padding:7px 16px;border-radius:99px;pointer-events:none;box-shadow:var(--shadow-sm);z-index:5;white-space:nowrap}
.fiesta-cta{margin-top:38px}
.fiesta-hint{color:var(--muted);font-size:.9rem;margin-top:14px}

/* ══════════ JUEGO · REVIENTA LOS GLOBOS ══════════ */
.game{margin-top:46px;background:#fff;border:1.5px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--shadow-sm)}
.game-head h3{font-family:var(--font-t);font-weight:800;font-size:1.55rem;color:var(--royal);text-align:center}
.game-head p{text-align:center;color:var(--muted);max-width:520px;margin:6px auto 0}
.game-bar{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin:16px 0}
.game-stat{font-family:var(--font-b);font-weight:600;background:var(--bg-soft);border-radius:99px;padding:9px 18px;color:var(--royal)}
.game-stat b{color:var(--red)}
.game-arena{position:relative;height:320px;border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg,#a5e2ff,#e6f7ff 68%,#d9f2c2);border:1.5px dashed var(--sky);touch-action:none}
.game-idle{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;text-align:center;padding:0 20px}
.game-end{font-family:var(--font-t);font-weight:800;font-size:1.3rem;color:var(--royal);margin-top:18px}
.game-arena .b3d{cursor:pointer}

/* ══════════ RESPONSIVE · NUEVO ══════════ */
@media(max-width:1020px){
  .builder{grid-template-columns:1fr}
  .builder-side{position:static}
}
@media(max-width:640px){
  .hero-logo{width:172px}
  .social-row .soc{width:48px;height:48px}
  .cat-arrow{display:none}
  .svc-arrow{display:none}
  .svc-track .svc-card{width:300px}
  .cat-track .gal-item{width:210px}
  .builder-grid{grid-template-columns:1fr}
  .fiesta-sky{height:380px}
  .game-arena{height:280px}
}

