/* ===========================================================
   Helados Iglú — hoja de estilo del tema
   Tokens y componentes extraídos del maquetado oficial.
   =========================================================== */

/* ---------- tipografías ---------- */
@font-face{font-family:'SummerClubAntojate';src:url('../fonts/SummerClub-Antojate.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'SummerClub';src:url('../fonts/SummerClub-Completa.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fredoka';src:url('../fonts/fredoka-latin-wght-normal.woff2') format('woff2-variations');font-weight:300 700;font-display:swap}
@font-face{font-family:'Livvic';src:url('../fonts/livvic-latin-200-normal.woff2') format('woff2');font-weight:200;font-display:swap}
@font-face{font-family:'Livvic';src:url('../fonts/livvic-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Livvic';src:url('../fonts/livvic-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Livvic';src:url('../fonts/livvic-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Livvic';src:url('../fonts/livvic-latin-900-normal.woff2') format('woff2');font-weight:900;font-display:swap}

:root{
	color-scheme:only light;
  --navy:#064578; --navy-d:#04355e;
  --sky-1:#7FDCFE; --sky-2:#E2F3FE; --sky-card:#9FD9F2; --sky-soft:#B4EAFE;
  --pink:#D8568D; --pink-d:#c2427a;
  /* Rosa de acción: el rosa de marca no alcanza 4.5:1 con texto blanco. */
  --pink-cta:#CE3E79; --pink-cta-d:#B32F65;
  /* Sobre el celeste del hero interno hace falta un rosa más profundo. */
  --pink-deep:#AE2757;
  --purple:#8E5FCA; --purple-h:#7A4CB8; --purple-d:#7E5FA5;
  /* Oro de las estrellas: el amarillo de marca sobre blanco es ilegible. */
  --star:#C08A00;
  /* Versiones legibles del amarillo y el celeste cuando hacen de TEXTO. */
  --amber-txt:#907308; --sky-txt:#1E7EAD;
  --yellow:#F2C61F; --yellow-v:#FFEC00;
  --peach:#FDE5D1; --white:#fff;
  --ff-display:'SummerClub','Fredoka',system-ui,sans-serif;
  --ff-text:'Livvic',system-ui,-apple-system,'Segoe UI',sans-serif;
  --container:1770px;
  --gutter:clamp(20px,9.04vw,160px);
  --nav-h:78px;
  --ease:cubic-bezier(.22,.61,.36,1);
  /* Radios: 6 pasos, ni uno más. */
  --r-s:14px; --r-m:20px; --r-l:28px; --r-xl:48px; --r-pill:999px;
  /* Elevación: 4 niveles + el de los botones. */
  --sh-1:0 2px 10px rgba(6,69,120,.07);
  --sh-2:0 6px 18px rgba(6,69,120,.10);
  --sh-3:0 10px 28px rgba(6,69,120,.12);
  --sh-4:0 18px 44px rgba(6,69,120,.18);
  --sh-btn:0 4px 14px rgba(6,69,120,.18);
  --sh-btn-h:0 8px 20px rgba(6,69,120,.24);
  --shadow:var(--sh-2);
  --shadow-card:var(--sh-3);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--navy);font-family:var(--ff-text);font-size:clamp(16px,1.808vw,32px);line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  font-feature-settings:'kern' 1,'liga' 1,'calt' 1;text-rendering:optimizeLegibility}
/* En la versión de paridad con el PDF no se mueve ni se oculta contenido:
   la lámina se compara completa, no solo el primer viewport. */
.iglu-pdf .rv{opacity:1!important;transform:none!important;transition:none!important}
.iglu-pdf .hero__slides,.iglu-pdf .hero__slide img,.iglu-pdf .hero picture img{animation:none!important;transition:none!important}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.skip-link{position:fixed;z-index:9999;top:12px;left:12px;padding:11px 16px;border-radius:var(--r-s);background:#fff;color:var(--navy);font-weight:700;box-shadow:var(--sh-3);transform:translateY(-180%);transition:transform .18s ease}
.skip-link:focus{transform:translateY(0)}

/* Titulares en caja alta con la fuente original completa, incluidos acentos. */
h1,h2,h3,.display,.kicker,.h-sec{font-family:var(--ff-display);font-weight:400;text-transform:uppercase;
  letter-spacing:.5px;line-height:1.02;margin:0}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding:72px 0}
.center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

.kicker{font-size:clamp(54px,6.102vw,108px);line-height:1}
.h-sec{font-size:clamp(42px,4.746vw,84px);text-align:center;color:var(--purple)}
.h-sec--navy{color:var(--navy)}
.sub-sec{text-align:center;font-weight:600;color:var(--navy);margin-top:10px;font-size:clamp(18px,2.034vw,36px)}
.lead{font-size:clamp(18px,2.034vw,36px);font-weight:600}
.txt-pink{color:var(--pink-cta)}
.txt-purple{color:var(--purple)}
.txt-navy{color:var(--navy)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 26px;border-radius:999px;border:0;
  cursor:pointer;font-family:var(--ff-text);font-weight:700;font-size:clamp(15px,1.695vw,30px);letter-spacing:.2px;color:#fff;background:var(--purple);
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease);
  box-shadow:var(--sh-btn);text-align:center;min-height:44px}
.btn:hover{transform:translateY(-2px);background:var(--purple-h);box-shadow:var(--sh-btn-h);color:#fff}
.btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
[tabindex]:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:4px}
.btn--pink{background:var(--pink-cta);box-shadow:var(--sh-btn)}
.btn--pink:hover{background:var(--pink-cta-d)}
.btn--purple-d{background:var(--purple-d)}
.btn--purple-d:hover{background:#6b4f8f}
.btn--navy{background:var(--navy)}
.btn--navy:hover{background:var(--navy-d)}
.btn--ghost{background:transparent;color:var(--navy);border:2px solid var(--navy);box-shadow:none}
.btn--ghost:hover{background:var(--navy);color:#fff}
.btn--sm{padding:10px 18px;font-size:clamp(14px,1.582vw,28px)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap}
.btn-center{display:flex;justify-content:center;margin-top:34px}

/* ---------- decoración ---------- */
.heart{position:absolute;pointer-events:none;z-index:1;max-width:none;object-fit:contain}
.curve{display:block;width:100%;height:clamp(60px,7vw,120px);margin-bottom:-1px}

/* ---------- topbar + cabecera ---------- */
.topbar{background:var(--navy);color:#fff;min-height:44px;display:flex;align-items:center;justify-content:center}
.topbar__in{display:flex;align-items:center;justify-content:center;min-height:38px;gap:8px;padding:6px 20px;text-align:center;font-weight:700;font-size:clamp(13px,1.40vw,25px);
  letter-spacing:.4px;text-transform:uppercase;flex-wrap:wrap;justify-content:center}
.topbar__in em{font-style:normal;color:var(--yellow)}
.topbar__wa{width:24px;height:24px;border-radius:50%;background:var(--pink);display:grid;place-items:center;flex:none}
.topbar__in:hover em{text-decoration:underline}

.hd{position:sticky;top:0;z-index:60;background:#fff;box-shadow:var(--sh-1)}
.admin-bar .hd{top:32px}
.hd__in{max-width:var(--container);margin-inline:auto;padding:0 var(--gutter);min-height:var(--nav-h);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}
.hd__navwrap{display:contents}
.hd__nav{display:flex;align-items:center;gap:34px;margin:0;padding:0;list-style:none}
.hd__nav--r{justify-content:flex-end}
.hd__nav li{position:relative}
.hd__nav>li>a{display:inline-flex;align-items:center;min-height:44px;padding:10px 0;font-weight:600;font-size:clamp(15px,1.695vw,30px);color:var(--navy);white-space:nowrap;
  border-bottom:2.5px solid transparent}
.hd__nav>li>a:hover{color:var(--purple)}
.hd__nav>li.current-menu-item>a,.hd__nav>li.current-menu-ancestor>a,.hd__nav>li.current-menu-parent>a{border-bottom-color:var(--purple)}
.hd__nav>li.menu-item-has-children>a::after{content:"";display:inline-block;margin-left:7px;width:6px;height:6px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.hd__nav .sub-menu{position:absolute;top:100%;left:-18px;min-width:220px;background:#fff;border-radius:20px;list-style:none;
  box-shadow:var(--sh-4);padding:10px;margin:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s ease}
.hd__nav li:hover>.sub-menu,.hd__nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.hd__nav .sub-menu a{display:flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:14px;font-size:clamp(15px,1.695vw,30px);font-weight:600}
.hd__nav .sub-menu a:hover{background:#EAF7FE;color:var(--purple)}
.hd__logo img{width:96px;height:auto}
.hd__burger{display:none;background:none;border:0;padding:10px;cursor:pointer;justify-self:end}
.hd__burger span{display:block;width:26px;height:3px;border-radius:999px;background:var(--navy);margin:5px 0;transition:.2s}
.hd__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.hd__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hd__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.mm{display:none;border-top:1px solid #e3f0f9;padding:12px 24px 22px}
.mm ul{list-style:none;margin:0;padding:0}
.mm>ul>li>a{display:block;padding:11px 0;font-weight:700;font-size:clamp(16px,1.808vw,32px);border-bottom:1px solid #eef6fc}
.mm .sub-menu{padding:6px 0 10px 14px}
.mm .sub-menu a{display:flex;align-items:center;min-height:44px;padding:8px 0;font-size:clamp(15px,1.695vw,30px);font-weight:600;opacity:.85}

/* ---------- pie ---------- */
.ft{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding-top:14px}
.ft__in{display:grid;grid-template-columns:auto 1fr 1.1fr;gap:40px;padding-block:26px 40px;align-items:start;position:relative}
.ft__brand img{width:clamp(230px,26vw,460px);height:auto}
.ft__nav{display:flex;flex-direction:column;gap:1px;padding-top:11px;list-style:none;margin:0}
.ft__nav a{display:inline-block;padding-block:5px;font-size:clamp(15px,1.695vw,30px);font-weight:600}
.ft__nav a:hover{color:var(--yellow)}
.ft__nav .sub-menu{display:none}
.ft__data{font-style:normal;padding-top:16px;font-size:clamp(15px,1.695vw,30px);max-width:clamp(330px,37.3vw,660px)}
.ft__data p{margin-bottom:14px;font-weight:600}
.ft__data a{display:inline-flex;align-items:center;min-height:28px}
.ft__data a:hover{color:var(--yellow)}
.ft__soc{display:flex;gap:10px;margin-top:4px}
.ft__soc a{width:30px;height:30px;border-radius:50%;background:#fff;display:grid;place-items:center}
.ft__soc a:hover{background:var(--yellow)}
.ft__cone{position:absolute;right:-10px;bottom:-70px;width:150px;height:auto;pointer-events:none}
.ft__legal{border-top:1px solid rgba(255,255,255,.16);padding-block:18px 22px;font-size:clamp(12px,1.356vw,24px);opacity:.75;position:relative;z-index:2}
.ft__legal p{margin:0 0 4px}
.ft__legal a{display:inline-block;padding-block:4px;text-decoration:underline}

/* ---------- botón flotante de WhatsApp ---------- */
.wafab{position:fixed;right:18px;bottom:18px;z-index:80;width:56px;height:56px;border-radius:50%;background:#25a34a;
  display:grid;place-items:center;box-shadow:var(--sh-4);transition:transform .16s}
.wafab:hover{transform:scale(1.07)}

/* ---------- hero de página interna ---------- */
.hi{position:relative;background:#fff;padding-block:54px 0;overflow:hidden}
.hi__in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.44fr) minmax(0,.56fr);gap:38px;align-items:center}
.hi__txt{max-width:none}
.hi__k{font-size:clamp(50px,5.706vw,101px);line-height:.98;margin-bottom:10px}
.hi__t{font-family:var(--ff-text);font-weight:700;font-size:clamp(24px,2.712vw,48px);line-height:1.22;margin-bottom:20px}
.hi__body{font-size:clamp(15px,1.695vw,30px);line-height:1.55;max-width:none}
.hi__body p{margin-bottom:14px}
.hi__foto{position:relative}
.hi__foto{margin-right:calc(-1 * var(--gutter));margin-inline-end:calc(-1 * var(--gutter))}
.hi__foto img{width:100%;height:auto;max-height:none;object-fit:cover;border-radius:0;box-shadow:none}

/* ---------- testimonios ---------- */
.tstw{overflow:hidden;padding-block:64px 76px}
.tstw .container{position:relative}
.tst{display:grid;grid-template-columns:clamp(230px,26vw,460px) clamp(190px,21.5vw,380px) 1fr;align-items:end;position:relative}
.tst__title{font-family:var(--ff-display);text-transform:lowercase;font-size:clamp(24px,2.712vw,48px);color:var(--navy);line-height:1.08;align-self:center}
.tst__quote{font-family:Georgia,serif;font-size:clamp(64px,7.232vw,128px);line-height:.6;color:var(--navy);display:block;margin-bottom:6px;text-transform:none}
.tst__photo{align-self:end}
.tst__photo img{width:clamp(190px,21.5vw,380px);filter:drop-shadow(0 10px 18px rgba(6,69,120,.14))}
.tst__bubble{background:#fff;border-radius:20px;padding:24px 26px;box-shadow:var(--shadow-card);position:relative;margin-bottom:26px}
.tst__bubble::after{content:"";position:absolute;left:34px;bottom:-16px;width:0;height:0;border:18px solid transparent;border-top-color:#fff;border-bottom:0}
.tst__bubble p{font-size:clamp(15px,1.695vw,30px);line-height:1.55;margin-bottom:12px}
.tst__stars{color:var(--star);letter-spacing:2px;font-size:clamp(15px,1.695vw,30px)}
.tst__who{display:flex;align-items:center;gap:9px;margin-top:10px}
.tst__av{width:26px;height:26px;border-radius:50%;background:#dbe7f0;display:grid;place-items:center;color:#8aa4b8;flex:none}
.tst__who b{font-size:clamp(13px,1.469vw,26px);display:block}
.tst__who span{font-size:clamp(12px,1.356vw,24px);opacity:.6}

/* ---------- formulario ---------- */
.field{width:100%;padding:14px 18px;border:1.6px solid #bcdff5;border-radius:999px;background:#fff;font-family:var(--ff-text);
  font-size:clamp(15px,1.695vw,30px);color:var(--navy);outline:none}
.field:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(145,100,204,.16)}
select.field{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' stroke='%23064578' stroke-width='2' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 20px center;padding-right:52px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:clamp(13px,1.469vw,26px);line-height:1.4}
.check input{margin-top:0;width:24px;height:24px;accent-color:var(--purple);flex:none}
.check a{text-decoration:underline}
.lf{display:flex;flex-direction:column;gap:14px;background:#fff;color:var(--navy);border-radius:28px;padding:30px;box-shadow:var(--shadow-card)}
.lf__go{display:flex;justify-content:center;margin-top:6px}
.lf__go .btn{min-width:clamp(250px,28.2vw,500px)}
.lf__msg{font-size:clamp(14px,1.582vw,28px);font-weight:700;text-align:center;min-height:20px;margin:0}
.lf__msg[data-ok]{color:#1c7a44}
.lf__msg[data-err]{color:var(--pink)}
.lf__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}

/* ---------- comodato ---------- */
.comodato{background:linear-gradient(180deg,#EAF7FE,#CDEFFE)}
.cm__t{font-family:var(--ff-text);font-weight:700;font-size:clamp(24px,2.712vw,48px);text-align:center;text-transform:none;color:var(--navy)}
.cm__s{text-align:center;font-size:clamp(15px,1.695vw,30px);margin-top:4px;opacity:.9}
.cm__box{margin-top:26px;background:var(--sky-card);border-radius:28px;padding:22px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cm__it{margin:0;background:#fff;border-radius:20px;padding:14px;display:grid;place-items:center;min-height:150px}
.cm__nota{text-align:center;font-size:clamp(13px,1.469vw,26px);margin-top:18px;opacity:.75}
.cm__nota a{text-decoration:underline;font-weight:600}

/* ---------- portada ---------- */
.hero{position:relative;background:#0aa9e8;overflow:hidden}
/* v1.9.23 — cada diapositiva tiene SU proporción (--ar la pone el PHP desde
   width/height del archivo): los banners 3441/940 y la escena del Eje entera
   3441/1246. La pista arranca con el alto del primer banner (sin salto de
   maquetación) y site.js la lleva al alto de la diapositiva activa con la
   misma transición del desplazamiento. Ninguna imagen se recorta. */
.hero__slides{display:flex;align-items:flex-start;width:100%;aspect-ratio:3841/1051;
  transition:transform .55s cubic-bezier(.4,0,.2,1),height .55s cubic-bezier(.4,0,.2,1)}
.hero__slide{min-width:100%;position:relative}
.hero__slide img{width:100%;height:auto;aspect-ratio:var(--ar,3441/940);object-fit:contain;object-position:center}
@media(max-width:900px){
	/* El arte móvil tiene una proporción distinta; se conserva completo y sin deformar. */
	.hero__slides{aspect-ratio:1721/941}
	.hero__slide img{aspect-ratio:1721/941;max-height:none;object-fit:contain}
}
.hero__dots{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);display:flex;gap:1px;z-index:3;background:rgba(6,69,120,.28);border-radius:999px;padding:0 4px;backdrop-filter:blur(2px)}
.hero__dots button{width:32px;height:32px;border-radius:50%;background:transparent;border:0;padding:0;cursor:pointer;
  display:grid;place-items:center}
.hero__dots button::before{content:"";width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.55);
  border:2px solid #fff;transition:background .28s var(--ease),transform .28s var(--ease)}
.hero__dots button[aria-current="true"]::before{background:#fff;transform:scale(1.12)}
.hero__arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.78);color:var(--navy);z-index:3;display:flex;align-items:center;justify-content:center;font-size:clamp(24px,2.712vw,48px);line-height:1;opacity:0;transition:opacity .2s}
.hero:hover .hero__arrow,.hero__arrow:focus-visible{opacity:1}
.hero__arrow--prev{left:14px}
.hero__arrow--next{right:14px}
.mundos{background:linear-gradient(180deg,#fff 0%,#F4FBFE 55%,#DFF4FE 100%);overflow:hidden}
.mundos__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px;position:relative;z-index:2}
.mcard .btn{background:var(--purple);box-shadow:var(--sh-btn)}
.mcard .btn:hover{background:var(--purple-h)}
.mcard{background:var(--sky-card);border-radius:20px;padding:14px 14px 20px;display:flex;flex-direction:column;gap:10px}
.mcard__img{display:block;background:#EAF7FE;border-radius:14px;overflow:hidden}
.mcard__img img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;transition:transform .3s}
.mcard__img:hover img{transform:scale(1.05)}
.mcard__t{font-size:clamp(24px,2.712vw,48px);color:var(--navy);margin-top:4px}
.mundos .mcard__t.ff-alt a[href$="/tu-mundo/un-antojo/"]{font-family:'SummerClubAntojate',var(--ff-display);font-weight:400;letter-spacing:.5px;text-transform:lowercase}
.mcard__d{font-size:clamp(13px,1.469vw,26px);line-height:1.45;flex:1}
.mcard .btn{align-self:flex-start;font-size:clamp(12px,1.356vw,24px);padding:9px 14px;margin-top:auto}

.eje{background:linear-gradient(180deg,#D3F3FE 0%,#91E0FD 100%);overflow:hidden;padding:0}
.eje__exact{display:block;position:relative}
.eje__exact>img{display:block;width:100%;height:auto}
@media(min-width:901px){
  .eje__exact{aspect-ratio:3441/940}
  .eje__exact>.eje__complete{position:absolute;left:36%;top:0;width:64%;height:100%;object-fit:contain}
  .eje__copy{position:absolute;left:8.1%;top:20%;width:27.5%}
  .eje__copy h2{font-size:clamp(32px,3.3vw,84px);color:var(--navy)}
  .eje__copy p{font-size:clamp(16px,1.5vw,38px);font-weight:600;line-height:1.3;margin:10px 0 14px}
  .eje__copy .btn{font-size:clamp(15px,1.5vw,38px);padding:10px 26px}
}
.eje__hotspot{position:absolute;left:8.1%;top:76.5%;width:17.1%;height:18%;border-radius:999px}
.eje__hotspot:focus-visible{outline:4px solid #fff;outline-offset:4px;box-shadow:0 0 0 8px var(--navy)}
.eje__mobile{display:none}
.eje__txt p{max-width:clamp(280px,31.6vw,560px);font-size:clamp(15px,1.695vw,30px);font-weight:600;margin:16px 0 22px}
.eje__art{position:relative}
.eje__artimg{width:100%;height:auto;display:block}

.trayec{background:linear-gradient(180deg,#63CFF9 0%,#8FDCFB 100%);padding-top:56px}
.trayec__img{position:relative;margin-top:26px}
.trayec__cta{display:flex;justify-content:center;margin-top:-26px;position:relative;z-index:3;padding-bottom:34px}

.cober{background:#fff}
.cober__in{align-items:center}
.cober__t{position:relative;display:inline-block}
.cober__pin{position:absolute;right:-64px;top:-34px;width:70px}
.cober__form{display:flex;gap:10px;margin:18px 0 8px;max-width:clamp(440px,49.7vw,880px)}
.cober__form .btn{display:inline-flex;flex:none}
.cober__form .field{flex:1}
.cober__res{font-size:clamp(14px,1.582vw,28px);font-weight:700;min-height:22px;margin:0 0 6px}
.cober__res[data-ok]{color:#1c7a44}
.cober__res[data-no]{color:var(--pink)}
.cober__nota{font-weight:700;font-size:clamp(15px,1.695vw,30px);margin:10px 0 20px}
.cober__map img{border-radius:20px;box-shadow:var(--shadow-card)}

.section.tsts{background:#fff;overflow:hidden}
.tsts__in{display:grid;grid-template-columns:clamp(210px,22vw,300px) minmax(0,1fr);gap:48px;align-items:center;position:relative}
.tsts__arr{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:56px;border:0;background:transparent;box-shadow:none;color:var(--navy);font:300 58px/1 var(--ff-text);cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center}
.tsts__arr:hover{color:var(--purple)}
.tsts__arr--prev{left:calc(var(--gutter) + clamp(210px,22vw,300px) + 11px)}
.tsts__arr--next{right:calc(var(--gutter) - 36px)}
.tsts__title{font-family:var(--ff-text);font-weight:700;text-transform:none;font-size:clamp(24px,2.2vw,36px);color:var(--navy);line-height:1.25}
.tsts__track{min-width:0;display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:14px 8px 24px;margin:-14px -8px -24px}
.tsts__track::-webkit-scrollbar{display:none}
.tsts__track .tstc{flex:0 0 calc(33.333% - 12px);scroll-snap-align:start}
.tstc{background:#fff;border-radius:20px;padding:20px;box-shadow:var(--sh-3);position:relative}
.tstc::after{content:"";position:absolute;left:28px;bottom:-14px;width:0;height:0;border:16px solid transparent;border-top-color:#fff;border-bottom:0}
.tstc p{font-size:clamp(14px,1.582vw,28px);line-height:1.45;margin-bottom:12px}
.tsts .tstc p{font-size:clamp(14px,1.25vw,20px)}
.tsts .tst__stars{font-size:20px;letter-spacing:0}
.tsts .tst__who b{font-size:13px}
.tsts .tst__quote{font-size:80px}

.ig{background:linear-gradient(180deg,#fff 0%,#EAF7FE 100%)}
.ig__live{max-width:920px;text-align:center}
.ig__live>p{margin:18px 0 0;font-size:clamp(16px,1.808vw,32px);font-weight:600}
.ig__grid{display:block;margin-top:30px;border-radius:20px;overflow:hidden}
.ig__grid img{transition:transform .4s}
.ig__grid:hover img{transform:scale(1.015)}
.ig__cta{display:flex;justify-content:center;margin-top:28px}

.listos{background:linear-gradient(180deg,#EAF7FE 0%,#CDEFFE 100%);color:#fff;position:relative;padding-block:70px 88px}
.listos .curve{display:none}
.listos__in{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center;background:var(--navy);border-radius:48px;padding:60px 56px;box-shadow:var(--sh-4)}
.listos__txt{position:relative;padding-left:10px}
.listos__paleta{position:absolute;left:-46px;bottom:calc(100% + 10px);width:180px;transform:rotate(-3deg);filter:drop-shadow(0 14px 22px rgba(6,69,120,.3))}
.listos__h{font-size:clamp(48px,5.424vw,96px);color:#fff}
.listos__h span{color:var(--yellow)}
.listos__txt p{margin-top:14px;font-weight:600;font-size:clamp(15px,1.695vw,30px);max-width:clamp(330px,37.3vw,660px)}

/* ---------- fiestas ---------- */
.prods{background:linear-gradient(180deg,#EAF7FE,#CDEFFE)}
.pcard{background:#fff;border-radius:20px;padding:22px 20px 24px;box-shadow:var(--shadow-card);display:flex;flex-direction:column}
.pcard__img{height:130px;display:grid;place-items:center;margin-bottom:14px}
.pcard__img img{max-height:130px;width:auto}
.pcard__t{font-size:clamp(20px,2.26vw,40px);color:var(--pink);line-height:1.05;margin-bottom:8px}
.pcard__d{font-size:clamp(14px,1.582vw,28px);line-height:1.45}
.nota-c{text-align:center;font-size:clamp(13px,1.469vw,26px);margin-top:16px;opacity:.85}
.nota-c a{text-decoration:underline;font-weight:700}

/* ---------- heladerías ---------- */
.dif{background:linear-gradient(180deg,#fff,#EAF7FE)}
.dif__list{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr)}
.dif__list li{font-size:clamp(15px,1.695vw,30px);line-height:1.35;padding:6px 18px;border-left:1.5px solid #bfe3f5}
.dif__list li:first-child{border-left:0}
.dif__list strong{display:block}
.dif__pres{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:30px}
.dif__pres span{background:#fff;border:1.5px solid #bfe3f5;border-radius:999px;padding:8px 18px;font-size:clamp(14px,1.582vw,28px);font-weight:700}

/* ---------- tu negocio ---------- */
.porq{background:linear-gradient(180deg,#fff,#EAF7FE)}
.porq__in{align-items:center}
.porq__art{position:relative;min-height:clamp(230px,26vw,460px);display:flex;align-items:flex-end}
.porq__blob{position:absolute;left:6%;top:-18px;width:62%}
.porq__t{position:relative;z-index:2;font-size:clamp(40px,4.52vw,80px)}
.porq__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.porq__list li{display:flex;align-items:center;gap:12px;background:#fff;border-radius:999px;padding:12px 20px;
  box-shadow:var(--sh-1);font-size:clamp(15px,1.695vw,30px)}
.porq__ck{width:22px;height:22px;border-radius:50%;border:1.6px solid var(--pink);display:grid;place-items:center;flex:none}

/* ---------- un antojo ---------- */
.moms{background:linear-gradient(180deg,#fff 0%,#EAF7FE 40%,#BCEBFE 100%);overflow:hidden}
.moms__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.mom{margin:0;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-card)}
.mom img{width:100%;aspect-ratio:1.36/1;object-fit:cover}
.mom figcaption{padding:16px 10px 20px;text-align:center;font-weight:700;font-size:clamp(16px,1.808vw,32px);line-height:1.25}
.moms .mom{--moment-lift:clamp(20px,2vw,30px);position:relative;overflow:visible;background:transparent;border:0;padding-top:var(--moment-lift);box-shadow:none}
.moms .mom__media{position:relative;aspect-ratio:1.36/1;border-radius:20px 20px 0 0;overflow:visible}
.moms .mom__media img{position:absolute;left:0;bottom:0;width:100%;height:calc(100% + var(--moment-lift));max-width:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center bottom;transform:none!important;transition:none;filter:none}
.moms .mom figcaption{position:relative;background:#fff;border-radius:0 0 20px 20px;box-shadow:var(--shadow-card)}
.moms .mom:hover,.moms .mom:focus-within{transform:none;box-shadow:none}
.moms .mom::after{display:none}

/* ---------- nosotros ---------- */
.hist{background:linear-gradient(180deg,#8FDCFB,#63CFF9);padding-top:48px}
.hist__figure{margin:22px 0 0}
.hist__scroll{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:var(--navy) rgba(255,255,255,.6);scrollbar-width:thin}
.hist__scene{width:100%;max-width:none}
.hist__hint{display:none;text-align:center;padding:10px 20px 0;font-size:15px;font-weight:700;color:var(--navy)}
.relato{background:linear-gradient(180deg,#EAF7FE,#fff);overflow:hidden}
.relato__in{align-items:center}
.relato__foto{margin:0}
.relato__foto img{width:100%;border-radius:28px;box-shadow:var(--shadow-card);aspect-ratio:1/.82;object-fit:cover}
.relato__ph{width:100%;aspect-ratio:1;background:var(--navy);color:#fff;border-radius:28px;box-shadow:var(--shadow-card);display:grid;place-items:center;font-weight:700;font-size:clamp(13px,1.469vw,26px);text-align:center;padding:20px}
.banner{margin-top:44px;background:var(--purple);color:#fff;border-radius:20px;padding:26px 30px;display:grid;
  grid-template-columns:150px 1fr;gap:26px;align-items:center}
/* Aquí había `filter:brightness(0) invert(1)` sobre el logo a color. Eso pinta
   de blanco TODO —incluidas las contraformas blancas que separan las letras—
   y el logo quedaba como una mancha blanca sin forma legible. Se usa la
   versión blanca de verdad (logo-iglu-blanco.svg), con las separaciones en el
   morado del banner, y no hace falta filtro. */
.banner img{max-width:100%;height:auto}
.banner p{font-size:clamp(15px,1.695vw,30px);line-height:1.5;margin:0}
.pilares{background:linear-gradient(180deg,#fff,#CDEFFE)}
.pil__list{margin-top:32px;display:flex;flex-direction:column;gap:14px}
.pil{background:#fff;border-radius:20px;box-shadow:var(--shadow-card);overflow:hidden}
.pil summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:16px 20px;
  font-family:var(--ff-display);text-transform:lowercase;font-size:clamp(22px,2.486vw,44px);color:var(--pink-cta)}
.pil summary::-webkit-details-marker{display:none}
.pil__heart{width:24px;height:24px;object-fit:contain;flex:0 0 24px}
.pil summary:focus-visible{outline:3px solid var(--navy);outline-offset:-4px}
.pil summary i{margin-left:auto;width:11px;height:11px;border-right:2.4px solid var(--navy);border-bottom:2.4px solid var(--navy);
  transform:rotate(45deg) translateY(-3px);transition:.2s}
.pil[open] summary i{transform:rotate(-135deg) translateY(-3px)}
.pil__b{display:grid;grid-template-columns:280px 1fr;gap:24px;padding:4px 20px 24px}
.pil__b img{width:100%;max-height:220px;object-fit:cover;border-radius:14px}
.pil__ph{background:var(--navy);color:#fff;border-radius:14px;display:grid;place-items:center;min-height:180px;font-weight:700;
  font-size:clamp(13px,1.469vw,26px);text-align:center;padding:20px}
.pil__h{font-family:var(--ff-text);font-weight:700;font-size:clamp(16px,1.808vw,32px);text-transform:none;margin-bottom:6px}
.pil__b p{font-size:clamp(14px,1.582vw,28px);line-height:1.55}

@media(max-width:900px){
  .hist__scroll picture,.hist__scene{display:block;width:900px;min-width:900px}
  .hist__hint{display:block}
}

/* ---------- helados del eje ---------- */
.intro{background:#fff;overflow:hidden}
.intro__in{margin-top:34px;align-items:center}
.intro__in p{font-size:clamp(15px,1.695vw,30px);line-height:1.6}
.intro__foto{margin:0}
.intro__foto img{width:100%;border-radius:20px;box-shadow:var(--shadow-card);aspect-ratio:1/.78;object-fit:cover}
.sab{background:linear-gradient(180deg,#EAF7FE,#BCEBFE)}
.sab__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.sab__it{background:#fff;border-radius:20px;overflow:visible;box-shadow:var(--shadow-card)}
.sab__it img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center}
.sab__b{padding:14px 16px 20px;text-align:center}
.sab__b h3{font-family:var(--ff-text);font-weight:700;font-size:clamp(15px,1.695vw,30px);text-transform:uppercase;letter-spacing:.4px;color:var(--navy)}
.sab__b p{font-size:clamp(14px,1.582vw,28px);font-weight:600;margin-top:4px;line-height:1.35}
.ruta{background:linear-gradient(180deg,#BCEBFE,#8FDCFB)}
.ruta__map{margin:32px 0 0;position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-card)}
.ruta__map figcaption{position:absolute;left:50%;bottom:26px;transform:translateX(-50%)}

/* ---------- catálogo ---------- */
.cathead{background:linear-gradient(180deg,#fff,#EAF7FE);overflow:hidden}
.cathead__nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:26px}
.cathead__nav a{background:#fff;border:1.5px solid #bfe3f5;border-radius:999px;padding:8px 16px;font-size:clamp(14px,1.582vw,28px);font-weight:700}
.cathead__nav a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.cat__t{font-family:var(--ff-display);text-transform:uppercase;font-size:clamp(36px,4.068vw,72px)}
.cat__s{font-size:clamp(15px,1.695vw,30px);font-weight:600;margin:6px 0 24px}
.cat__s a{text-decoration:underline}
.cat__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pit{background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-card)}
.pit>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center}
.pit__img{height:190px;display:grid;place-items:center;background:linear-gradient(180deg,#F6FCFF,#EAF7FE);padding:14px}
.pit__img img{max-height:160px;width:auto}
.pit__b{padding:14px 16px 20px}
.pit__b h3{font-family:var(--ff-text);font-weight:700;font-size:clamp(16px,1.808vw,32px);text-transform:uppercase;color:var(--navy)}
.pit__b p{font-size:clamp(14px,1.582vw,28px);margin-top:4px;line-height:1.4}
.scoopi{background:linear-gradient(180deg,#EAF7FE,#CDEFFE)}
.scoopi__in{align-items:center}
.scoopi__l{margin:0 0 22px;padding-left:20px;font-size:clamp(15px,1.695vw,30px);line-height:1.9}
.scoopi__f{margin:0}
.scoopi__f img{width:100%;border-radius:20px;box-shadow:var(--shadow-card);aspect-ratio:1/.8;object-fit:cover}

/* ---------- cobertura ---------- */
.cabeza{background:linear-gradient(180deg,#fff,#EAF7FE);overflow:hidden}
.cabeza__in{align-items:center}
.cob__nums{display:flex;gap:26px;margin:18px 0 22px;flex-wrap:wrap}
.cob__nums b{display:block;font-family:var(--ff-display);font-size:clamp(30px,3.39vw,60px);color:var(--purple);line-height:1}
.cob__nums span{font-size:clamp(13px,1.469vw,26px);font-weight:600}
.cabeza__map img{border-radius:20px;box-shadow:var(--shadow-card)}
.zonas{background:linear-gradient(180deg,#EAF7FE,#CDEFFE)}
.zonas__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px}
.zona{background:#fff;border-radius:20px;padding:20px;box-shadow:var(--shadow-card)}
.zona h3{font-family:var(--ff-display);text-transform:uppercase;font-size:clamp(20px,2.26vw,40px);color:var(--pink-cta);margin-bottom:10px}
.zona ul{margin:0;padding-left:18px;font-size:clamp(14px,1.582vw,28px);line-height:1.75}
.planta{background:#fff}
.planta__in{align-items:center}
.planta address{font-style:normal;font-size:clamp(15px,1.695vw,30px);margin:14px 0 18px}
.planta address a{text-decoration:underline}
.planta__f img{width:100%;border-radius:20px;box-shadow:var(--shadow-card)}

/* ---------- contacto ---------- */
.ct{background:linear-gradient(180deg,#fff,#EAF7FE);overflow:hidden}
.ct__in{display:grid;grid-template-columns:1.2fr .85fr;gap:32px;margin-top:36px;align-items:start}
.ct__side{background:#fff;border-radius:20px;padding:26px;box-shadow:var(--shadow-card)}
.ct__side h2{font-family:var(--ff-display);text-transform:uppercase;font-size:clamp(20px,2.26vw,40px);color:var(--navy);margin-bottom:14px}
.ct__h2{margin-top:24px}
.ct__ch{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #eaf3fa;font-size:clamp(14px,1.582vw,28px)}
.ct__ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none}
.ct__ic--wa{background:#25a34a}.ct__ic--tel{background:var(--purple)}.ct__ic--map{background:var(--pink)}
.ct__links{margin:0;padding-left:18px;font-size:clamp(14px,1.582vw,28px);line-height:1.9}
.ct__links a{text-decoration:underline}
.ct__map{background:#EAF7FE;padding-top:0}
.ct__map img{border-radius:20px;box-shadow:var(--shadow-card)}

/* ---------- legal / 404 ---------- */
.legal{background:#fff}
.legal .container{max-width:820px}
.legal h1{font-size:clamp(40px,4.52vw,80px);color:var(--navy)}
.legal__meta{font-size:clamp(13px,1.469vw,26px);opacity:.7;margin-top:6px}
.legal__aviso{background:#FFF6E3;border-left:5px solid var(--yellow);border-radius:0 12px 12px 0;padding:16px 18px;
  font-size:clamp(14px,1.582vw,28px);margin:22px 0 28px;line-height:1.55}
.legal h2{font-family:var(--ff-text);font-weight:700;text-transform:none;font-size:clamp(18px,2.034vw,36px);margin:28px 0 8px}
.legal p,.legal li{font-size:clamp(15px,1.695vw,30px);line-height:1.7}
.legal ul{padding-left:22px}
.nf{background:linear-gradient(180deg,#fff,#EAF7FE);padding-block:80px}
.nf img{margin:0 auto 18px;width:140px}
.nf__links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:26px}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .hd__in{grid-template-columns:1fr auto;min-height:66px}
  .hd__nav,.hd__navwrap{display:none}
  .hd__logo{justify-self:start}
  .hd__burger{display:block}
  .mm[data-open]{display:block}
  .mundos__grid{grid-template-columns:repeat(2,1fr)}
  .eje__exact{display:none}
  .eje__mobile{display:grid;grid-template-columns:1fr;gap:24px;padding:44px 0 0}
  .eje__txt{padding-inline:clamp(18px,5vw,38px)}
  .eje__art{min-height:0;margin-inline:calc(50% - 50vw);width:100vw}
  .tsts__in{grid-template-columns:1fr}
  .tsts__track .tstc{flex:0 0 86%}
  .tsts__arr{display:none}
  .listos__in{grid-template-columns:1fr}
  .listos__paleta{display:none}
  .cober__pin{position:static;display:inline-block;vertical-align:middle;width:52px}
  .hi{padding-block:34px 42px}
  .hi__in{grid-template-columns:1fr;gap:22px}
  .hi__txt,.hi__body{max-width:100%}
  .hi__foto{margin-top:6px}
  .hi__foto img{height:auto;aspect-ratio:16/10}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .grid-2{grid-template-columns:1fr;gap:26px}
  .tst{grid-template-columns:1fr;gap:14px}
  .tst__photo{display:none}
  .tst__bubble{margin-bottom:0}
  .tst__bubble::after{display:none}
  .section{padding:52px 0}
  .ct__in{grid-template-columns:1fr}
}
@media(max-width:900px){
  .ft__in{grid-template-columns:1fr 1fr;gap:26px}
  .ft__brand{grid-column:1/-1}
  .ft__brand img{width:190px}
  .ft__cone{width:105px;right:-16px;bottom:-46px;opacity:.5}
  .cm__box{grid-template-columns:repeat(2,1fr)}
  .dif__list{grid-template-columns:repeat(2,1fr);gap:14px}
  .dif__list li{border-left:0;border-top:1.5px solid #bfe3f5;padding:10px 0 0}
  .dif__list li:first-child{border-top:1.5px solid #bfe3f5}
  .moms__grid,.sab__grid,.cat__grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .zonas__grid{grid-template-columns:repeat(2,1fr)}
  .banner{grid-template-columns:1fr;text-align:center;justify-items:center}
  .pil__b{grid-template-columns:1fr}
  .pil summary{font-size:clamp(18px,2.034vw,36px)}
}
@media(max-width:820px){
  /* La decoración no debe pelear con el texto en pantallas pequeñas. */
  .heart{display:none}
  .listos__paleta,.cober__pin,.porq__blob{display:none}
}
@media(max-width:640px){
  .container{padding-inline:18px}
  .grid-3,.mundos__grid,.moms__grid,.sab__grid,.cat__grid,.zonas__grid{grid-template-columns:1fr}
  .cober__form,.cob__form{flex-direction:column}
  .trayec__cta{margin-top:14px}
  .ft__in{grid-template-columns:1fr}
  .ft__cone{display:none}
  .topbar__in{font-size:clamp(12px,1.25vw,22px);gap:5px;padding:6px 8px;flex-wrap:nowrap;letter-spacing:.15px}
  .topbar__in svg:first-child{width:15px;height:14px;flex:none}
  .topbar__wa{width:20px;height:20px}
  .topbar__in b{white-space:nowrap}
  .wafab{width:50px;height:50px;right:14px;bottom:14px}
  .ruta__map figcaption{position:static;transform:none;display:flex;justify-content:center;padding:16px;background:#fff}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* La curva del bloque "¿Listos para sonreír?" cierra contra el fondo claro. */
.listos>.curve{background:linear-gradient(180deg,#EAF7FE,#FFFFFF);margin-bottom:0}

/* ---------- línea de tiempo (43 años): burbujas del maquetado ---------- */
.trayec__img picture img{width:100%;display:block}
.tl4{display:none}
.tnode{position:relative;display:flex;flex-direction:column;align-items:center}
.tbub{background:#fff;border-radius:999px;padding:clamp(8px,1.3vw,16px) clamp(10px,1.6vw,22px);box-shadow:var(--shadow-card);text-align:center;width:100%;max-width:clamp(190px,21.5vw,380px);border:2.5px solid var(--yellow)}
.tnode:nth-child(2) .tbub{border-color:var(--pink)}
.tnode:nth-child(3) .tbub{border-color:var(--purple)}
.tnode:nth-child(4) .tbub{border-color:#8DCCEB}
.tbub b{display:block;font-family:var(--ff-text);font-weight:700;font-size:clamp(18px,1.695vw,30px);line-height:1.1;color:#805300;letter-spacing:-.01em}
.tnode:nth-child(2) .tbub b{color:var(--pink-cta)}
.tnode:nth-child(3) .tbub b{color:var(--purple)}
.tnode:nth-child(4) .tbub b{color:var(--sky-txt)}
.tbub span{display:block;font-size:clamp(12px,0.734vw,13px);font-weight:600;line-height:1.3;margin-top:3px;color:var(--navy)}
.tpin{width:clamp(20px,2.2vw,28px);height:clamp(20px,2.2vw,28px);border-radius:50%;background:var(--yellow);border:2.5px solid var(--yellow);margin-top:-2px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card)}
.tnode:nth-child(2) .tpin{border-color:var(--pink);background:var(--pink)}
.tnode:nth-child(3) .tpin{border-color:var(--purple);background:var(--purple)}
.tnode:nth-child(4) .tpin{border-color:#3FB3E8;background:#3FB3E8}
.tpin svg{width:60%;height:60%;fill:var(--yellow)}
.tnode:nth-child(2) .tpin svg{fill:var(--pink)}
.tnode:nth-child(3) .tpin svg{fill:var(--purple)}
.tnode:nth-child(4) .tpin svg{fill:#8DCCEB}
@media(max-width:900px){
  /* En pantallas medianas la franja del paisaje se recorta y los hitos pasan a texto real. */
  .tl4{display:grid;grid-template-columns:repeat(4,1fr);position:static;padding:20px 24px 0;gap:12px;max-width:640px;margin-inline:auto}
  .trayec__img picture img{height:auto;width:100%}
}
@media(max-width:640px){
  .tl4{grid-template-columns:repeat(2,1fr);row-gap:18px}
  .sub-sec br{display:none}
  .hero__arrow{display:none}
  /* En un teléfono el banner es una franja de ~107 px de alto: los puntos
     encima tapaban parte del dibujo. Se sacan del arte y van justo debajo. */
  .hero{padding-bottom:24px}
  .hero__dots{bottom:0;padding:0 3px;gap:0;background:transparent;backdrop-filter:none}
  .hero__dots button{width:28px;height:28px}
  .hero__dots button::before{width:7px;height:7px;background:rgba(6,69,120,.30)}
  .hero__dots button[aria-current="true"]::before{background:var(--navy)}
}
@media (prefers-reduced-motion:reduce){
  .hero__slides{transition:none}
}

/* ---------- v1.5.0: FAQ, pasos y landings por ciudad ---------- */
.faqs{background:linear-gradient(180deg,#fff,#EAF7FE)}
.faqs__list{max-width:820px;margin-inline:auto}
.pil--faq summary{font-family:var(--ff-text);font-weight:700;text-transform:none;font-size:clamp(16px,1.808vw,32px);color:var(--navy);line-height:1.35}
.pil--faq summary span{flex:1}
.pil__b--solo{display:block}
.pil__b--solo p{font-size:clamp(15px,1.695vw,30px);line-height:1.6;max-width:680px}

.pasos{background:linear-gradient(180deg,#EAF7FE,#fff)}
.pasos__grid{list-style:none;margin:38px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:paso}
.paso{background:#fff;border-radius:20px;padding:26px 22px;box-shadow:var(--shadow-card);text-align:center;position:relative}
.paso__n{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 14px;border-radius:50%;background:var(--yellow);
  color:var(--navy);font-family:var(--ff-display);font-size:clamp(24px,2.712vw,48px);line-height:1}
.paso:nth-child(2) .paso__n{background:var(--pink);color:#fff}
.paso:nth-child(3) .paso__n{background:var(--purple);color:#fff}
.paso__t{font-family:var(--ff-text);font-weight:700;text-transform:none;font-size:clamp(16px,1.808vw,32px);margin-bottom:8px}
.paso p{font-size:clamp(14px,1.582vw,28px);line-height:1.5;margin:0}

.ciud{background:linear-gradient(180deg,#fff,#EAF7FE)}
.ciud__nav a strong{font-weight:700}

.ft__ciudades{font-size:clamp(13px,1.469vw,26px);padding-block:14px 0;position:relative;z-index:2;opacity:.9;line-height:1.9}
.ft__ciudades span{font-weight:700;margin-right:6px}
.ft__ciudades a{text-decoration:underline;text-underline-offset:2px}
.ft__ciudades a:hover{color:var(--yellow)}

@media(max-width:900px){
  .pasos__grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto}
}

/* Marcador visible de dato legal pendiente. */
.legal__falta{background:#FFE1E9;color:#A11441;border-radius:14px;padding:1px 7px;font-weight:700;font-size:.94em}

/* Fallback de compatibilidad para textos ajenos al alfabeto del titular.
   La fuente original completa ya incluye las letras, cifras y acentos. */
.ff-alt{font-family:'Fredoka',system-ui,sans-serif;font-weight:600;letter-spacing:0;text-transform:none}
.h-sec.ff-alt,.kicker.ff-alt,.hi__k.ff-alt,.cat__t.ff-alt,.mcard__t.ff-alt,.zona h3.ff-alt{text-transform:none}

/* Se conserva la tipografía aprobada de contadores y números de pasos. */
.cob__nums b,.tbub b,.paso__n{font-family:'Fredoka',system-ui,sans-serif;font-weight:600}

/* ---------- medida de línea ----------
   Un párrafo de más de 85 caracteres por línea se lee mal: el ojo pierde el
   renglón al volver. Se limita la medida sin mover nada de sitio. */
.pil__b p,.hi__body p,.banner p,.relato__in>div>p,.eje__txt p,.hist p{max-width:66ch}
.cm__nota,.sub-sec{max-width:66ch;margin-inline:auto}
.grid-2>div>p:not(.sub-sec):not(.lead){max-width:66ch}
.hi__body .txt-pink,.hi .txt-pink{color:var(--pink-deep)}
/* El h1 oculto para lectores de pantalla no necesita la tipografía de display. */
h1.sr-only,h2.sr-only,h3.sr-only{font-family:var(--ff-text);text-transform:none}

/* ============================================================================
   v1.6.0 · «Antojo en movimiento»
   El objetivo es que la página dé ganas de comer helado. Tres recursos:
   volumen (luz y sombra), vida (flotación lenta) y recompensa (lo que pasa al
   pasar el cursor). Todo con transform/opacity, que el navegador compone en la
   GPU: cero reflow, cero desplazamiento de la maquetación, cero peso extra.
   El bloque de prefers-reduced-motion de más arriba desactiva todo esto.
   ========================================================================= */

/* ---- 1. Aparición al bajar -------------------------------------------- */
.rv{opacity:0;transform:translateY(26px);
    transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.rv.vis{opacity:1;transform:none}
.rv-d1{transition-delay:.07s}.rv-d2{transition-delay:.14s}
.rv-d3{transition-delay:.21s}.rv-d4{transition-delay:.28s}
.rv-d5{transition-delay:.35s}.rv-d6{transition-delay:.42s}

/* ---- 2. Flotación: el producto nunca está del todo quieto -------------- */
@keyframes iglu-flota{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%    {transform:translate3d(0,-9px,0) rotate(-1.1deg)}
}
@keyframes iglu-flota-corta{
  0%,100%{transform:translate3d(0,0,0) rotate(-3deg)}
  50%    {transform:translate3d(0,-7px,0) rotate(-4.4deg)}
}
.pcard__img img,.paleta-flota{animation:iglu-flota 6.5s ease-in-out infinite;will-change:transform}
.pcard:nth-child(2n) .pcard__img img{animation-duration:7.4s;animation-delay:-1.8s}
.pcard:nth-child(3n) .pcard__img img{animation-duration:6.1s;animation-delay:-3.2s}
.listos__paleta{animation:iglu-flota-corta 7s ease-in-out infinite;will-change:transform}

/* ---- 3. Recompensa al pasar el cursor ---------------------------------- */
/* La tarjeta se levanta, la sombra se abre y el color se enciende: la misma
   secuencia que hace apetitosa una foto de comida en una carta. */
.sab__it,.mom,.mcard,.pcard{
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.sab__it img,.mom img,.pcard__img img{
  transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .45s ease}
.sab__it img,.mom img,.mcard__img img{filter:saturate(1.05)}

.sab__it:hover,.sab__it:focus-within,
.mom:hover,.mom:focus-within,
.pcard:hover,.pcard:focus-within{
  transform:translateY(-9px);
  box-shadow:0 22px 44px rgba(6,69,120,.20),0 6px 14px rgba(6,69,120,.10)}
.mcard:hover,.mcard:focus-within{transform:translateY(-6px)}

.sab__it:hover img,.sab__it:focus-within img,
.mom:hover img,.mom:focus-within img{
  transform:scale(1.07) rotate(-1.1deg);filter:saturate(1.18) contrast(1.05)}
.pcard:hover .pcard__img img,.pcard:focus-within .pcard__img img{
  animation-play-state:paused;transform:scale(1.09) rotate(-2deg);filter:saturate(1.15)}

/* ---- 4. Destello de frío ----------------------------------------------- */
/* Una banda de luz cruza el producto: lee como superficie helada y brillante. */
.sab__it,.mom,.mcard__img{position:relative;isolation:isolate}
.sab__it>a::after,.sab__it::after,.mom::after,.mcard__img::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 47%,
                             rgba(255,255,255,.16) 53%,transparent 62%);
  transform:translateX(-120%);opacity:0;transition:transform .85s ease,opacity .25s ease}
.sab__it:hover::after,.mom:hover::after,.mcard__img:hover::after{transform:translateX(120%);opacity:1}

/* ---- 5. El hero respira ------------------------------------------------ */
/* Un acercamiento lentísimo (1,5 %) que el ojo no llega a ver moverse pero sí
   percibe como que la escena está viva. */
@keyframes iglu-respira{0%{transform:scale(1)}100%{transform:scale(1.045)}}
.hero__slides img,.hero picture img{
  animation:iglu-respira 22s ease-in-out infinite alternate;will-change:transform}

/* ---- 6. El botón de WhatsApp llama sin gritar --------------------------- */
/* El anillo es un pseudoelemento que escala, no una sombra animada: así no
   añade un token de sombra al sistema ni obliga al navegador a repintar. */
@keyframes iglu-anillo{
  0%  {transform:scale(1);opacity:.5}
  70% {transform:scale(1.55);opacity:0}
  100%{transform:scale(1.55);opacity:0}
}
.wafab{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.wafab::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;
  background:#25D366;animation:iglu-anillo 3.4s ease-out infinite;pointer-events:none}
.wafab:hover{transform:scale(1.08)}

/* ---- 7. Botones con más cuerpo ---------------------------------------- */
.btn{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,filter .28s}
.btn:hover{transform:translateY(-2px) scale(1.02);filter:brightness(1.06)}
.btn:active{transform:translateY(0) scale(.99)}

/* ---- 8. Las burbujas de la línea de tiempo se asientan ----------------- */
.tnode{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.tnode:hover{transform:translateY(-5px)}

/* Nada de esto debe estorbar a quien navega con el teclado. */
.sab__it:focus-within,.mom:focus-within,.pcard:focus-within,.mcard:focus-within{
  outline:3px solid var(--pink-cta);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none}
  .pcard__img img,.listos__paleta,.hero__slides img,.hero picture img,.wafab::before{animation:none}
  .sab__it::after,.mom::after,.mcard__img::after{display:none}
}

/* Los corazones decorativos cuelgan de las esquinas de la foto y quedan detrás
   de ella. Antes se posicionaban por porcentaje sobre toda la sección y en
   pantallas anchas caían encima del texto. */
.hi__foto .heart{z-index:-1}
.hi__foto{isolation:auto}

/* ============================================================================
   v1.6.1 · Profundidad y apetito
   Tres recursos de fotografía de producto aplicados en CSS: foco de luz detrás
   del producto, sombra propia proyectada al suelo, y un borde de luz en el
   canto de la tarjeta. Ninguno usa box-shadow, así que el sistema de sombras
   sigue teniendo los mismos cinco tokens de siempre.
   ========================================================================= */

/* ---- Foco de luz: el producto deja de estar sobre un fondo plano -------- */
.mcard__img{background:radial-gradient(115% 85% at 50% 12%,#FFFFFF 0%,#F2FAFE 42%,#DCEFFA 100%)}
.pcard__img{border-radius:16px;
  background:radial-gradient(100% 78% at 50% 22%,#FFFFFF 0%,#F6FCFF 55%,#E9F6FD 100%)}
.cm__it{background:radial-gradient(110% 80% at 50% 18%,#FFFFFF 0%,#F4FBFE 60%,#E4F4FD 100%)}

/* ---- Sombra propia de los recortes -------------------------------------- */
/* Estos archivos tienen transparencia real, así que la sombra sigue el
   contorno del helado y no el de su caja: es lo que hace que se vea apoyado
   en algo en vez de pegado encima. */
.pcard__img img,.cm__it img,.listos__paleta,.ft__cone{
  filter:drop-shadow(0 10px 14px rgba(6,69,120,.22)) drop-shadow(0 2px 3px rgba(6,69,120,.14))}
.pcard:hover .pcard__img img,.pcard:focus-within .pcard__img img{
  filter:drop-shadow(0 18px 22px rgba(6,69,120,.26)) drop-shadow(0 3px 4px rgba(6,69,120,.16))
         saturate(1.15)}

/* ---- Canto de luz: el borde superior de la tarjeta recoge la luz -------- */
.sab__it,.mom,.mcard,.pcard{border-top:1px solid rgba(255,255,255,.9)}

/* ---- La foto de los héroes internos, con más presencia ------------------ */
.hi__foto img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.hi__foto:hover img{transform:scale(1.015)}

/* ---- Las burbujas de sabor de la rejilla respiran ----------------------- */
.sab__it img{transform-origin:52% 45%}

@media (prefers-reduced-motion:reduce){
  .hi__foto img{transition:none}
}

/* El bloque del congelador tenía un titular de párrafo en un sitio donde el
   resto de la página usa titulares de display: rompía la jerarquía. */
.cm__t{font-family:var(--ff-display);font-weight:400;font-size:clamp(38px,4.294vw,76px);
  line-height:1.02;color:var(--purple);text-transform:uppercase;letter-spacing:.5px}
.cm__s{margin-top:8px;opacity:1;color:var(--navy)}
.cm__it{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.cm__it:hover{transform:translateY(-6px)}
.cm__it:hover img{filter:drop-shadow(0 16px 20px rgba(6,69,120,.26)) drop-shadow(0 3px 4px rgba(6,69,120,.16))}
.cm__it img{transition:filter .4s ease}

/* ---------- v1.6.2: fecha e invitados en el formulario de fiestas -------- */
/* Van en pareja porque son dos datos cortos y relacionados; en una sola
   columna alargarían el formulario sin necesidad. Estos dos sí llevan etiqueta
   visible: un campo de fecha vacío no se entiende solo por el marcador. */
.lf__par{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lf__et{display:block;font-size:clamp(13px,1.469vw,26px);font-weight:700;color:var(--navy);margin-bottom:5px}
.lf__par .field{width:100%}
.lf__par input[type="date"]{min-height:46px}
@media(max-width:420px){
  .lf__par{grid-template-columns:1fr;gap:10px}
}
/* El salto desde «Déjanos tus datos aquí abajo» no debe dejar el titular
   pegado al borde superior de la ventana. */
#hablemos{scroll-margin-top:90px}

/* v1.6.3 revertido: el techo de anchura dejaba franjas de fondo a los lados en
   pantallas anchas y se leía como si la ilustración estuviera recortada. Vuelve
   a ocupar todo el ancho; la nitidez depende del archivo, no del CSS. */

/* ============================================================================
   v1.7.0 · Los hitos, en HTML sobre la ilustración
   La ilustración ya no lleva los globos pintados dentro: ahora van aquí, en
   texto real. Se posicionan en porcentaje sobre la imagen, así que encajan
   igual a 1.280, a 1.920 o a 2.560 px, y se ven nítidos en cualquier pantalla
   porque el navegador los dibuja, no los escala.
   ========================================================================= */
.trayec__img{position:relative}
.trayec__esc{position:relative}
.hitos{position:absolute;inset:0;pointer-events:none;z-index:2}
.hito{position:absolute;transform:translate(-50%,-50%);
      display:flex;flex-direction:column;align-items:center;justify-content:center}

/* El globo: una elipse con aro de color, como en el dibujo original. */
.hito__b{width:100%;height:100%;border-radius:50%;background:#FFFDF7;
  border:max(2px,0.21vw) solid var(--aro);display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:0 9%;box-sizing:border-box;
  box-shadow:var(--sh-1)}
.hito__b b{display:block;font-family:var(--ff-text);font-weight:700;
  font-size:clamp(18px,3.503vw,62px);line-height:1;color:var(--tinta);
  letter-spacing:-.01em}
.hito__b span{display:block;font-family:var(--ff-text);font-weight:700;
  font-size:clamp(12px,1.469vw,26px);line-height:1.15;color:var(--tinta);
  margin-top:.35em}

/* El pin del corazón, colgando del globo. */
.hito__pin{position:absolute;top:100%;margin-top:-1.15vw;
  width:3.45vw;height:3.45vw;max-width:72px;max-height:72px;min-width:26px;min-height:26px;
  border-radius:50%;background:var(--aro);display:grid;place-items:center;
  box-shadow:0 .25vw .5vw rgba(6,69,120,.28)}
.hito__pin svg{width:58%;height:58%;fill:#fff}

/* El aro va en el color vivo del dibujo; el texto, en la versión que pasa el
   contraste mínimo sobre el relleno claro del globo. El amarillo del aro sobre
   crema da 2:1 y sería ilegible, por eso el año usa el ámbar oscuro. */
.hito--amber {--aro:#F2C61F;--tinta:#B87A0A}
.hito--pink  {--aro:#EE5E9A;--tinta:var(--pink-cta)}
.hito--purple{--aro:#9164CC;--tinta:var(--purple)}
.hito--sky   {--aro:#3FB3E8;--tinta:var(--sky-txt)}
/* La segunda etiqueta va en su color; las demás en azul marino, como el dibujo. */
.hito--amber .hito__b span,.hito--purple .hito__b span,.hito--sky .hito__b span{color:var(--navy)}
.hito--amber .hito__b{background:#FFFDF2}
.hito--pink  .hito__b{background:#FFF6F9}
.hito--purple .hito__b{background:#FBF7FF}
.hito--sky   .hito__b{background:#F4FBFF}

/* En móvil manda la lista de texto de siempre: la ilustración se recorta y los
   globos encima no cabrían. */
@media(max-width:900px){
  .hitos{display:none}
}
/* La diapositiva del hero lleva los mismos hitos; el enlace de debajo tiene que
   seguir siendo pulsable, por eso la capa no intercepta el ratón. */
.hero__slide{position:relative}
.hero__slide .hitos{z-index:2}

/* ===========================================================
   v1.9.0 — Un solo tono de fondo y fotos sin recorte
   =========================================================== */

/* ---------- 1. un único tono en todo el cuerpo ----------
   Se quitan las bandas blancas y los degradados que partían la
   página en franjas. El blanco queda reservado a las tarjetas,
   que es lo que las hace legibles como tarjetas.
   Los héroes (.hero y .hi) conservan su arte: son banner, no
   separador. */
:root{ --fondo:#EAF7FE; }
body{background:var(--fondo)}
.mundos,.eje,.trayec,.cober,.tsts,.ig,.listos,
.dif,.porq,.hist,.relato,.pilares,.intro,.sab,
.cathead,.scoopi,.cabeza,.zonas,.planta,.ct,
.legal,.pasos,.comodato,.prods,.moms,.ruta,
.nf,.faqs,.ciud,.tstw{background:var(--fondo)}
.listos>.curve{background:var(--fondo)}

/* La sección de cierre pintaba su texto en blanco porque venía de
   un fondo oscuro; sobre el tono claro tiene que ir en azul marca. */
.listos{color:var(--navy)}

/* ---------- 2. las fotos de personas dejan de recortarse ----------
   Eran archivos verticales metidos en cajas horizontales con
   object-fit:cover, así que perdían entre el 19 % y el 52 % de la
   imagen. Ahora la caja se adapta a la foto: se limita el ALTO y el
   ancho sale solo, con lo que se ve completa y sin reescalar. */
.hi__foto img,
.relato__foto img,
.intro__foto img,
.scoopi__f img,
.pil__b img{
  width:100%;height:auto;max-height:none;
  object-fit:initial;aspect-ratio:auto;
}

/* Las fotos verticales ocupan todo el ancho de su columna, así que la
   columna se estrecha para que el alto no se dispare. */
.hi__in{grid-template-columns:minmax(0,.58fr) minmax(0,.42fr)}
.relato__in,.intro__in,.scoopi__in{align-items:center}

@media (max-width:900px){
  .hi__in{grid-template-columns:1fr}
  /* El tope era 420 px fijos. En un teléfono no se nota —la columna mide
     menos— pero en una tableta dejaba la foto pequeña en medio de una
     columna de 629 px, con un hueco a la derecha que se leía como error.
     560 llena la columna en tableta y sigue sin pasarse en móvil.

     OJO con el `width:100%`: sin él, `margin-inline:auto` desactiva el
     estirado del elemento de rejilla y la figura se encoge al ancho
     intrínseco que el navegador deduce del srcset —que a su vez sale del
     `sizes` medido en la pasada anterior—. Se quedaba en 420 px pese al
     tope de 560. Con un ancho definido, los márgenes solo centran. */
  .hi__foto,.relato__foto,.intro__foto,.scoopi__f{width:100%;max-width:min(100%,560px);margin-inline:auto}

  /* Las fotos del acordeón son verticales (720x1100). Al pasar el acordeón a
     una sola columna se iban a 900–1065 px de alto: una foto gigante dentro
     de una fila desplegable. Se les da el MISMO ancho que en escritorio
     (280 px) y el alto sale solo, así la fila desplegable mide igual en las
     tres versiones y la foto no se recorta ni se estira. */
  /* 280 px es el ancho de la columna de la foto en escritorio. En tableta,
     con la fila entera para ella, se queda corta: 360 llena mejor sin
     pasarse (el archivo mide 720, así que sigue a 2x). */
  .pil__b img{width:100%;max-width:360px;height:auto;margin-inline:auto;display:block}
}

/* Recortes que forman parte de la composición fija del PDF. La versión
   comercial conserva la proporción natural de las fotografías; la lámina
   aprobada usa el retrato del Eje en cuadrado y las fotos de los pilares en
   cajas horizontales. */
.iglu-pdf .intro__foto img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.iglu-pdf .pil__b img{width:100%;height:auto;max-height:none;aspect-ratio:1.83/1;object-fit:cover}
.iglu-pdf .pil__ph{min-height:0;aspect-ratio:1.83/1}

/* ===========================================================
   v1.9.14 — Banners a todo el ancho, con tope
   =========================================================== */

/* Los banners y paisajes ocupan todo el ancho de la ventana. Pero estirar sin
   límite no es gratis: el archivo tiene los píxeles que tiene, y a partir de
   cierto ancho cada píxel del dibujo se reparte entre más de un píxel de
   pantalla y la imagen se ablanda. 2200 px es el punto donde el arte actual
   todavía aguanta; más allá se centra sobre el color de fondo de su sección,
   que es el mismo tono, así que se lee como margen y no como recorte. */
/* El tope de 2200 px se quitó. Existía para que un banner no se estirara sin
   límite, pero esa función la cumple ahora el tope de nitidez —que ninguna
   imagen se dibuje más ancha que su propio archivo—, y en pantallas de más de
   2200 px dejaba franjas de color a los lados que se leían como un error.
   Los banners llegan al borde; el archivo es quien pone el límite. */
.banner-ancho{ margin-inline:auto; }

/* Estas dos piezas vivían dentro de .container, con el margen lateral de la
   retícula. Ahora salen de la caja de texto y llegan al borde. Al hacerlo
   dejan de ser tarjetas, así que pierden la esquina redondeada y la sombra:
   un elemento a sangre con esquinas redondeadas se lee como un error. */
.banner-ancho{ display:block; width:100%; border-radius:0; box-shadow:none; overflow:hidden; }
.banner-ancho img{ width:100%; height:auto; display:block; }
.ig__grid.banner-ancho{ margin:30px auto 0; }
.ruta__map.banner-ancho{ margin:32px auto 0; }

/* WordPress separa los bloques de primer nivel con un margen. Entre el menú
   blanco y el banner ese margen dejaba ver el fondo del body (#EAF7FE) como
   una línea azul clara encima del carrusel. El banner arranca pegado al menú. */
.wp-site-blocks > *{ margin-block-start:0; }
main.wp-block-group{ margin-block-start:0; }
main.wp-block-group > :first-child{ margin-block-start:0; margin-top:0; }
.iglu-header + main.wp-block-group{ margin-top:0; }
.hero{ margin-top:0; }

/* Ninguna pieza se estira más allá de los píxeles que tiene. El tope general
   es 2200, pero el mapa del Eje solo mide 1798 px de ancho real: llevarlo a
   2200 lo dejaba por debajo de 1× y se veía blando en cualquier pantalla, no
   solo en retina. Su tope es su propio ancho. */
/* El mapa del Eje mide 1798 px: ese es su límite, y lo pone el tope de nitidez.
   La regla vieja apuntaba a --banner-max, que ya no existe. */

/* Tope de nitidez: ninguna foto se dibuja más ancha que la mitad de los píxeles
   que tiene. Lo pone `iglu_img_responsivas()` en --tope, calculado del archivo
   más grande de su escalera. La imagen se centra en su hueco. */
.nitida{ max-width:min(100%, var(--tope)); margin-inline:auto; }

/* ===========================================================
   v1.9.20 — Áreas de toque en móvil y tableta
   ===========================================================
   Con el dedo, un objetivo de menos de 40 px se falla. Estos dos
   se quedaban en 20 y 24 px. Se agranda el ÁREA, no el dibujo:
   el punto del carrusel sigue midiendo 7 px y el título de la
   tarjeta sigue en su línea, así que no cambia nada de lo que se
   ve — solo deja de fallarse el toque. */
.hero__dots button{position:relative}
.hero__dots button::after{content:"";position:absolute;top:50%;left:50%;
  width:44px;height:44px;transform:translate(-50%,-50%)}

/* El relleno vertical en un elemento en línea agranda la zona
   sensible sin tocar la altura de la línea: el título no se mueve
   ni un píxel y el enlace pasa de 24 a 40 px de alto útil. */
.mcard__t a{display:inline;padding-block:8px}


/* =================================================================
   v1.9.25 — Banners en móvil y congeladores del comodato
   ================================================================= */

/* Los artes móviles alternos ya tienen encuadre propio; no se recortan con CSS. */

/* Congeladores más grandes: el panel se ensancha y los marcos pierden relleno.
   El tope de 400 px por imagen mantiene la regla de densidad (archivo 800 px). */
.comodato .container{padding-inline:clamp(16px,2.4vw,40px)}
.cm__box{padding:14px;gap:12px}
.cm__it{padding:6px;min-height:0}
.cm__it img{width:100%;height:auto;max-width:400px}

/* =================================================================
   v1.9.26 — Catálogo en rejilla plana y productos de Fiestas
   ================================================================= */

/* CATÁLOGO ------------------------------------------------------- */
/* La lámina presenta el portafolio como una sola rejilla: una ficha
   destacada arriba (la única con precio en el arte) y dieciséis fichas
   iguales debajo. Las láminas de cada ficha vienen recortadas del arte
   con las esquinas superiores en transparencia, igual que el original:
   el panel de color redondea arriba y corta recto contra el cuerpo
   blanco de la tarjeta. */
.catdest__in{display:grid;grid-template-columns:minmax(0,318fr) minmax(0,682fr);align-items:center;gap:0}
.catdest__t{padding-right:clamp(16px,3.4vw,60px)}
.catdest__t h2{font-family:var(--ff-text);font-weight:700;text-transform:uppercase;
  font-size:clamp(16px,1.808vw,32px);letter-spacing:.4px;color:var(--navy);line-height:1.25}
.catdest__t .cat__s{margin:10px 0 0}
.catdest__p{font-family:var(--ff-text);font-weight:700;color:var(--navy);
  font-size:clamp(18px,2.034vw,36px);margin:18px 0 0;padding-top:16px;
  border-top:3px solid var(--purple);display:inline-block}
.catdest__f{margin:0}
.catdest__f img{width:100%;height:auto;border-radius:var(--r-l)}

/* Las fichas planas: el panel de color ES la imagen, así que la tarjeta
   no pinta fondo detrás de él — el fondo de la página se ve por las
   esquinas redondeadas, como en la lámina. El blanco es solo del pie. */
.cat__grid--plano{gap:clamp(18px,3.3vw,59px) clamp(16px,4vw,71px)}
.cat__grid--plano .sab__it{background:none;box-shadow:none;border-radius:0;overflow:visible;
  display:flex;flex-direction:column}
.cat__grid--plano .sab__b{flex:1}
/* La lámina deja la ficha número dieciséis centrada, no pegada a la izquierda.
   Solo con tres columnas: por debajo de 901 px la rejilla es de dos o de una y
   forzar la columna 2 le inventaba una columna implícita a la rejilla. */
@media(min-width:901px){
  .cat__grid--plano .sab__it:last-child:nth-child(3n+1){grid-column:2}
}
.cat__grid--plano .sab__it img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;border-radius:var(--r-l) var(--r-l) 0 0}
.cat__grid--plano .sab__b{background:#fff;border-radius:0 0 var(--r-m) var(--r-m);
  box-shadow:var(--shadow-card);padding:16px 16px 24px;text-align:center}
.cat__grid--plano .sab__it::after{display:none}

/* v2.0.4 — ningún producto se corta por CSS. Las imágenes de los helados
   conservan su proporción natural y la caja se adapta a ellas. La lámina
   aprobada del PDF no usa este archivo: se sirve como una imagen completa. */
body:not(.iglu-pdf) .mcard__img img,
body:not(.iglu-pdf) .sab__it img,
body:not(.iglu-pdf) .cat__grid--plano .sab__it img,
body:not(.iglu-pdf) .pit>img,
body:not(.iglu-pdf) .pit__img img{
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
}
body:not(.iglu-pdf) .pit__img{
  height:auto;
  min-height:190px;
}
body:not(.iglu-pdf) .pit__img img{
  max-width:100%;
  max-height:none;
}

/* FIESTAS -------------------------------------------------------- */
/* Cuatro presentaciones en una fila, tarjeta blanca, foto sobre blanco
   y titular en rosa. No es la tarjeta del catálogo: la lámina de Fiestas
   usa otra. */
.fst__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,3.5vw,62px)}
.fst{background:#fff;border-radius:var(--r-l);box-shadow:var(--shadow-card);
  display:flex;flex-direction:column;overflow:hidden}
.fst__img img{width:100%;height:auto;display:block}
.fst__b{padding:0 clamp(14px,1.8vw,32px) clamp(18px,2vw,34px)}
/* Sin uppercase: SummerClub no tiene K mayúscula y «Chikiglú» se partía en dos
   tipografías. La regla global de h3 ya pasa el titular a versalitas. */
.fst__b h3{color:var(--pink);line-height:1.05;
  font-size:clamp(17px,1.921vw,34px);margin:6px 0 8px}
.fst__b h3.ff-alt{font-family:var(--ff-text);font-weight:800}
.fst__b p{font-weight:600;font-size:clamp(14px,1.582vw,28px);line-height:1.35;margin:0}

@media(max-width:900px){
  .catdest__in{grid-template-columns:1fr;gap:22px}
  .catdest__t{padding-right:0}
  .fst__grid{grid-template-columns:repeat(2,1fr);gap:16px}
}
@media(max-width:520px){
  .fst__grid{grid-template-columns:1fr}
}

/* =================================================================
   v2.1.6 — Corrección integral contra las láminas aprobadas
   ================================================================= */

/* El distintivo de la barra y los pines usan el SVG oficial, nunca un corazón
   dibujado por CSS o una ruta genérica. */
.topbar__mark{width:22px;height:19px;object-fit:contain;flex:none}
.hito__pin img,.tpin img{width:64%;height:64%;object-fit:contain;display:block}
.hito__pin svg,.tpin svg{display:none}
.hi__foto .heart{z-index:3}

/* Todo el contenido permanece completamente opaco. Se elimina la dependencia
   del observador de scroll para que una captura larga, un enlace de ancla o un
   desplazamiento rápido nunca deje secciones con apariencia transparente. */
.rv{opacity:1!important;transform:none!important;transition:none!important}

/* El feed ocupa la proporción de la lámina: centrado y contenido, no de borde
   a borde. La misma caja limita los widgets externos cuando estén activos. */
.ig__live{max-width:1280px;text-align:center}
.ig__feed{width:100%;max-width:1280px;margin:34px auto 0;overflow:hidden}
.ig__feed>*{max-width:100%!important;margin-inline:auto!important}
.ig__feed #sb_instagram{width:100%!important;max-width:100%!important}
.ig__grid{display:block;width:100%;margin:0;border-radius:0;overflow:hidden}
.ig__grid img{width:100%;height:auto;display:block}

/* El bloque de conversación y el footer forman una sola base azul, como en la
   portada aprobada. La paleta queda baja, a la izquierda del titular. */
.listos{background:var(--navy);color:#fff;padding:0 0 44px;overflow:visible}
.listos>.curve{display:block;background:var(--fondo);height:clamp(56px,5.3vw,82px);margin:0 0 -1px}
.listos__in{max-width:1280px;grid-template-columns:minmax(0,.82fr) minmax(460px,1.18fr);gap:clamp(36px,5vw,74px);align-items:center;background:transparent;border-radius:0;padding:12px clamp(28px,4.5vw,66px) 54px;box-shadow:none}
.listos__txt{position:relative;padding:74px 0 0 6px}
.listos__paleta{display:block;position:absolute;left:-20px;top:-78px;bottom:auto;width:138px;transform:rotate(-4deg);filter:drop-shadow(0 12px 18px rgba(6,37,70,.24));z-index:2}
.listos__h{font-size:clamp(48px,4.6vw,78px);line-height:.98;color:#fff}
.listos__txt p{font-size:clamp(16px,1.35vw,21px);max-width:460px}
.listos__form .lf{padding:clamp(22px,2.2vw,34px);border-radius:28px;box-shadow:none}
.listos__form .field{font-size:clamp(15px,1.1vw,18px);padding:12px 17px}
.listos__form .check{font-size:clamp(13px,.94vw,15px)}
.listos__form .lf__go .btn{font-size:clamp(15px,1.1vw,18px);min-width:min(100%,420px)}
body:has(main .listos:last-child) .ft__curve{display:none}

/* Las fotografías principales de Fiestas, Heladerías, Tu negocio y Un antojo
   se funden con el fondo claro por el borde que toca el texto. No se recortan. */
.hi__foto img:not(.heart){
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 8%,#000 19%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 8%,#000 19%,#000 100%);
}

/* Footer aprobado: cuatro zonas claras — marca, navegación, datos y producto.
   Se retiran del plano visual las filas SEO que deformaban la composición. */
.ft{padding-top:0}
.ft__in{max-width:1280px;grid-template-columns:minmax(220px,1.25fr) minmax(130px,.62fr) minmax(300px,1.12fr) minmax(120px,.45fr);gap:clamp(24px,3.4vw,52px);align-items:center;padding:28px clamp(28px,4.5vw,66px) 54px}
.ft__brand img{width:min(100%,270px);height:auto}
.ft__nav{padding-top:0;gap:0}
.ft__nav a{padding-block:3px;font-size:clamp(15px,1.05vw,18px)}
.ft__data{padding-top:0;font-size:clamp(15px,1.05vw,18px);max-width:390px}
.ft__data p{margin-bottom:10px}
.ft__soc{gap:8px;margin-top:2px}
.ft__soc a{width:29px;height:29px}
.ft__art{height:100%;min-height:240px;display:flex;align-items:flex-end;justify-content:center;align-self:end;overflow:visible}
.ft__cone{position:static;width:clamp(120px,9vw,154px);height:auto;margin:0 0 -54px;opacity:1}
.ft__ciudades,.ft__legal{display:none}

/* La curva aprobada no es un semicírculo simétrico: asciende antes del centro
   y cae de forma más larga hacia el costado derecho. Se usa igual en todos
   los pies y en el bloque final de conversación. */
.ft__curve{height:clamp(56px,5.3vw,82px);background:var(--fondo)}

/* Catálogo: cada arte ya incluye el fondo de color. Se conserva entero y
   dentro de su tarjeta, sin márgenes negativos ni solapamiento con el texto. */
.cat__grid--plano{padding-top:0;row-gap:clamp(22px,3vw,36px)}
.cat__grid--plano .sab__it{--product-lift:clamp(24px,2.2vw,36px);position:relative;overflow:visible;border:0;border-radius:var(--r-l);padding-top:var(--product-lift)}
.cat__grid--plano .sab__it img{
  position:static;z-index:auto;display:block;width:100%!important;max-width:100%!important;
  height:auto!important;max-height:none!important;margin:0!important;aspect-ratio:auto!important;
  object-fit:contain!important;object-position:center;overflow:hidden;clip-path:none!important;
  border-radius:var(--r-l) var(--r-l) 0 0;
}
.cat__grid--plano .sab__b{position:relative;z-index:auto}
.cat__grid--plano .cat__media{position:relative;flex:none;width:100%;aspect-ratio:1275 / 936;border-radius:var(--r-l) var(--r-l) 0 0;overflow:visible}
.cat__grid--plano .cat__media img{position:absolute;left:0;bottom:0;width:100%!important;height:calc(100% + var(--product-lift))!important;max-width:100%!important;max-height:none!important;object-fit:contain!important;object-position:center bottom;border-radius:0;overflow:visible}
.cat__grid--plano .sab__it:hover,.cat__grid--plano .sab__it:focus-within{transform:none;box-shadow:none}
.cat__grid--plano .sab__it img,.cat__grid--plano .sab__it:hover img,.cat__grid--plano .sab__it:focus-within img{transform:none!important;transition:none!important}

/* Helados del Eje: el producto completo queda centrado y a escala uniforme
   dentro de un área reservada. No invade el texto, el fondo ni otras fichas. */
.sab__grid.sab__grid--eje{row-gap:36px}
.sab__grid.sab__grid--eje .sab__it{position:relative;isolation:isolate;z-index:auto;overflow:visible;padding-top:0;background:transparent;box-shadow:none}
.sab__grid.sab__grid--eje .sab__it::before{content:"";position:absolute;inset:28px 0 0;background:#fff;border-radius:var(--r-l);box-shadow:var(--shadow-card);z-index:-1;pointer-events:none}
.sab__grid.sab__grid--eje .sab__it::after{display:none}
.sab__grid.sab__grid--eje .sab__product{height:clamp(220px,20vw,280px);margin:0;padding:0 18px 12px;box-sizing:border-box;display:block;overflow:visible;pointer-events:none}
.sab__grid.sab__grid--eje .sab__product img{position:static;width:100%!important;height:100%!important;min-width:0;min-height:0;max-width:100%!important;max-height:100%!important;display:block;object-fit:contain!important;object-position:center;filter:drop-shadow(0 6px 8px rgba(16,66,103,.12));border-radius:0;transform:none!important;transition:none!important}
.sab__grid.sab__grid--eje .sab__b{position:relative}
.sab__grid.sab__grid--eje .sab__it:hover,.sab__grid.sab__grid--eje .sab__it:focus-within{transform:none;box-shadow:none}

/* La salida impresa/PDF conserva las tarjetas completas y evita que una
   ficha o su imagen se dividan entre páginas. */
@media print{
  .cat__grid--plano .sab__it,.sab__grid.sab__grid--eje .sab__it{break-inside:avoid;page-break-inside:avoid}
  .cat__grid--plano .sab__it img{margin:0!important;object-fit:contain!important}
  .sab__grid.sab__grid--eje .sab__product{height:210px;margin:0;overflow:visible}
  .sab__grid.sab__grid--eje .sab__product img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;transform:none!important}
}

@media(max-width:900px){
  .listos__in{grid-template-columns:1fr;gap:28px;padding-top:0}
  .listos__txt{padding:54px 0 0 100px;min-height:126px}
  .listos__paleta{display:block;left:0;top:-34px;width:90px}
  .ft__in{grid-template-columns:1fr 1fr 120px;align-items:start}
  .ft__brand{grid-column:auto}
  .ft__brand img{width:210px}
  .ft__data{grid-column:1/3}
  .ft__art{grid-column:3;grid-row:1/3;min-height:260px}
  .ft__cone{display:block;width:105px;margin-bottom:-42px}
  .hi__foto img:not(.heart){
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 7%,#000 17%,#000 100%);
    mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 7%,#000 17%,#000 100%);
  }
}

@media(max-width:640px){
  .ig__feed{margin-top:22px}
  .lf select.field{padding-right:52px;background-position:right 18px center}
  .listos{padding-bottom:28px}
  .listos__in{padding-inline:18px;padding-bottom:30px}
  .listos__txt{padding:44px 0 0 74px;min-height:112px}
  .listos__paleta{display:block;left:0;top:-25px;width:68px}
  .listos__h{font-size:42px}
  .ft__in{grid-template-columns:1fr;gap:22px;padding:24px 26px 42px}
  .ft__brand,.ft__data,.ft__art{grid-column:auto;grid-row:auto}
  .ft__brand img{width:190px}
  .ft__nav{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
  .ft__art{display:none}
  .ft__curve,.listos>.curve{height:52px}
  .cat__grid--plano{padding-top:0;row-gap:28px}
}

/* =================================================================
   v2.3.1 — Revisión del cliente «REV WEB» contra el Home aprobado
   (Iglú Web Home 4 + Iglu_Home_Desktop_Medidas). El arte mide 3840 px y
   se implementa a 1920 px: cada medida se expresa como fracción de ese
   ancho (vw) para conservar la proporción en cualquier pantalla. Solo
   cubre lo señalado: cabecera, carrusel, «Elige tu mundo», degradado del
   Eje, línea de tiempo, pin de cobertura y pie.
   ================================================================= */

/* 1. Cabecera: barra superior de 121 px y menú de 195 px a 1920; logo de
   170 px visibles, enlaces de 34,7 px repartidos con 75 px de separación. */
.topbar{min-height:clamp(44px,6.3vw,121px)}
.topbar__mark{width:auto;height:1.05em}
@media(min-width:641px){
  .topbar__in{font-family:var(--ff-display);font-weight:400;font-size:clamp(13px,1.95vw,37.4px);letter-spacing:.5px;gap:.42em}
  .topbar__wa{width:1.63em;height:1.63em;border:2px solid #fff}
  .topbar__wa svg{width:56%;height:56%}
}
.hd__in{max-width:1920px;min-height:clamp(66px,10.16vw,195px);padding-inline:8.7vw}
.hd__nav{gap:3.9vw}
.hd__nav>li>a{font-size:clamp(15px,1.81vw,34.7px)}
.hd__logo img{width:clamp(84px,8.85vw,170px)}
/* Con el menú más alto, los saltos internos no quedan debajo de él. */
#hablemos,#iglu-cobertura{scroll-margin-top:calc(clamp(66px,10.16vw,195px) + 16px)}

/* 2. Carrusel: sin el acercamiento animado. Ampliaba cada banner un 4,5 %
   por encima de su caja y el siguiente asomaba sobre el borde del actual
   (la «pestaña» que no encaja). Cada diapositiva recorta solo lo suyo. */
.hero__slides img,.hero picture img{animation:none!important;transform:none!important;will-change:auto}
.hero__slide{overflow:hidden}

/* 3. «Elige tu mundo»: tarjetas de 422 px con 32 px entre ellas y 68 px de
   margen; título de 57,6 px, tarjeta 38,7 px, texto 21,7 px seminegrita y
   botón centrado de 55 px de alto, como en la lámina. */
.mundos{padding-top:clamp(52px,4.74vw,91px)}
.mundos .container{max-width:1920px;padding-inline:max(20px,3.54vw)}
.mundos .h-sec{font-size:clamp(36px,3vw,57.6px);color:var(--purple-d)}
.mundos .sub-sec{font-size:clamp(17px,1.81vw,34.7px);line-height:1.2;max-width:none}
.mundos__grid{gap:1.67vw;margin-top:clamp(28px,3.96vw,76px)}
.mcard{background:#8DCCEB;border-radius:clamp(18px,1.46vw,28px);padding:clamp(14px,1.67vw,32px) clamp(14px,1.77vw,34px) clamp(14px,1.56vw,30px);gap:0}
.mcard__img{background:#E1F3FD;border-radius:clamp(12px,.83vw,16px)}
.mcard__t{font-size:clamp(22px,2.02vw,38.7px);line-height:1.02;margin-top:clamp(8px,.52vw,10px)}
.mcard__d{font-size:clamp(14px,1.13vw,21.7px);font-weight:600;line-height:1.2;margin-top:clamp(4px,.3vw,6px)}
.mcard .btn{align-self:center;margin-top:auto;font-size:clamp(14px,1.13vw,21.7px);line-height:1.15;min-height:clamp(44px,2.86vw,55px);
  padding:.35em clamp(14px,1.1vw,21px);background:#9064CC;text-align:center}
.mcard__d{margin-bottom:clamp(14px,1.2vw,23px)}
.mundos__deco{position:absolute;z-index:3;height:auto;pointer-events:none}
.mundos__deco--izq{left:1.51vw;top:2.86vw;width:9.95vw}
.mundos__deco--der{right:5.1vw;top:2.14vw;width:11.67vw}

/* 4. «Los helados del Eje» y «43 años»: un solo fondo continuo. El
   degradado aprobado baja hasta #7FDBFD (arranca en el tono de la sección
   anterior para no marcar otra línea) y el bloque del titular lo lleva
   hasta el cielo de la ilustración (#A0DAFD), sin cortes. */
.eje{background:linear-gradient(180deg,var(--fondo) 0%,#7FDBFD 100%)}
.trayec{background:var(--fondo);padding-top:0}
.trayec>.container{max-width:none;padding-top:56px;padding-bottom:26px;background:linear-gradient(180deg,#7FDBFD 0%,#A0DAFD 100%)}
.trayec__img{margin-top:0}
.trayec__esc img{width:100%;height:auto}

/* 5. Pin de cobertura protagonista: nace al final de «LLEGAMOS», se apoya
   en su línea y sube por encima del titular (2,5 veces su letra). La
   sección gana aire arriba para que el pin no toque el bloque anterior. */
.cober{padding-top:calc(clamp(54px,6.102vw,108px) * 1.7)}
.cober__l1{position:relative;display:inline-block}
.cober__pin{position:absolute;left:calc(100% - .1em);right:auto;top:auto;bottom:-.12em;width:auto;height:2.5em;max-width:none;z-index:2}
@media(max-width:980px){
  .cober__pin{display:block;position:absolute;width:auto;height:2.1em}
}

/* 6. Pie: logo de 415 px visibles (el archivo trae margen propio), menú
   y datos de 26 px en x = 713 y 1010, iconos de 47 px y el cono con su
   leche saliendo por el borde derecho, como en el pie aprobado. */
.ft__arte{display:none}
@media(min-width:901px){
  .ft__in{max-width:none;grid-template-columns:28.5vw 15.5vw minmax(0,1fr);column-gap:0;align-items:center;
    padding:6.5vw 0 6.7vw 8.6vw}
  .ft__brand img{width:25.05vw;height:auto}
  .ft__nav a{display:block;white-space:nowrap;font-size:clamp(15px,1.354vw,26px);line-height:2;padding-block:0}
  .ft__data{font-size:clamp(15px,1.354vw,26px);line-height:1.2;max-width:none;position:relative;z-index:2}
  .ft__data p{margin:0 0 1.2em}
  .ft__data a{min-height:0}
  .ft__soc{gap:.42vw;margin-top:0}
  .ft__soc a{width:clamp(29px,2.45vw,47px);height:clamp(29px,2.45vw,47px)}
  .ft__soc svg{width:62%;height:62%}
  .ft__art{position:absolute;right:0;bottom:0;width:33.8vw;height:auto;min-height:0;display:block;z-index:1;pointer-events:none}
  .ft__arte{display:block;width:100%;height:auto}
  .ft__cone{display:none}
}

/* =================================================================
   v2.3.2 — Curva del bloque «¿Listos para sonreír?»
   En el Home aprobado la curva azul tiene la misma forma, pero mucho más
   alta: nace a la altura del borde superior del formulario y lo cruza en
   diagonal hacia la derecha, de modo que casi todo el formulario queda
   sobre el azul. En escritorio se dibuja esa curva (curva-listos.svg,
   trazo copiado del Home 4) detrás del contenido. La curva anterior queda
   invisible pero conserva su alto: el título y el formulario no se mueven.
   En tableta y celular el formulario va debajo del título blanco, así que
   se conserva la curva anterior.
   ================================================================= */
@media(min-width:901px){
  /* El contenido empieza en clamp(56px,5.3vw,82px) - 1px + 12px de relleno;
     el pico de la curva (0,521vw bajo el borde del SVG) queda a esa altura. */
  .listos::before{content:"";position:absolute;left:0;top:0;width:100%;z-index:0;pointer-events:none;
    height:calc(clamp(56px,5.3vw,82px) + 11px + 12.5vw);
    background:url('../img/curva-listos.svg') center bottom/100% auto no-repeat,
      linear-gradient(var(--fondo),var(--fondo)) center top/100% calc(100% - 13.02vw + 1px) no-repeat}
  .listos>.curve{visibility:hidden}
  .listos__in{position:relative;z-index:1}
}

/* =================================================================
   v2.3.3 — Paleta del bloque «¿Listos para sonreír?» al tamaño del diseño
   En el Home 4 la paleta se ve de 381 px de alto a 1920 (aquí medía 164).
   Nace unos 82 px por encima del borde superior del formulario, y el
   título empieza 197 px por debajo de ese borde, con el palito a su
   izquierda. En escritorio se replica esa relación: la columna de texto y
   el formulario arrancan arriba (el formulario queda donde lo espera la
   curva de 2.3.2), el título baja para dejar sitio y la paleta crece.
   Tableta y celular no cambian. Además, la capa clara de la curva sube
   2 px: con la pantalla escalada al 125-150 % asomaba una línea azul en
   el borde superior del bloque.
   ================================================================= */
@media(min-width:901px){
  .listos::before{top:-2px;height:calc(clamp(56px,5.3vw,82px) + 13px + 12.5vw)}
  .listos__txt{align-self:start;padding-top:calc(12.35vw - 15px)}
  .listos__form:has(.lf){align-self:start}
  /* 16,7vw de ancho = 381 px visibles de alto a 1920, con la parte de arriba
     82 px sobre el formulario como en el diseño. En este recurso el cuerpo
     de la paleta llega al 81 % de su alto y el palito al 38 % de su ancho:
     el cuerpo termina justo encima del título y el palito queda a la
     izquierda del «¿», con margen para el vaivén de la animación. En
     pantallas angostas se corre lo justo para no salirse por la izquierda. */
  .listos__paleta{width:16.7vw;top:-5.53vw;
    left:max(calc(-6.35vw - 10px), calc(4px - .99vw - (100vw - min(100vw, 1280px)) / 2 - clamp(28px, 4.5vw, 66px)))}
}

/* =================================================================
   v2.3.4 — Degradado azul sobre el pie, en todo el sitio
   En el Home y en las internas aprobadas (Iglú Web Internas 4), el fondo
   claro se vuelve azul (#7FDBFD) al acercarse a la curva del pie, y esa
   curva es la misma grande del Home en todas las páginas.
   · La sección que queda justo encima de la curva (la anterior al bloque
     «¿Listos?», o la última antes del pie) se degrada en su parte baja:
     30vw, mínimo 260 px, o todo su alto si es más baja.
   · La zona de la curva sigue el degradado hasta #7FDBFD.
   · En computador, el pie de las páginas que no terminan en «¿Listos?»
     usa la curva del Home (curva-azul.svg: el mismo trazo del Home 4, con
     el azul por debajo y transparente por encima). En tableta y celular
     las curvas conservan su forma y reciben solo el degradado.
   ================================================================= */
:root{--azul-pie:#B3E8FE}
main>:has(+ .listos),main>:last-child:not(.listos){
  background:linear-gradient(180deg,var(--fondo),var(--azul-pie)) center bottom/100% min(100%,max(30vw,260px)) no-repeat,var(--fondo)}
.listos>.curve,.ft__curve{background:linear-gradient(180deg,var(--azul-pie),#7FDBFD)}
/* La curva se monta 2 px sobre la sección de arriba (mismo color en ese
   borde) y se pinta por encima de ella: si la unión cae entre dos píxeles,
   no asoma una línea clara. */
.listos>.curve{position:relative;top:-2px}
.ft__curve{position:relative;margin-top:-2px}
@media(min-width:901px){
  .listos::before{background:url('../img/curva-azul.svg') center bottom/100% auto no-repeat,
    linear-gradient(180deg,var(--azul-pie),#7FDBFD)}
  .ft__curve{height:13.03vw;background:url('../img/curva-azul.svg') center bottom/100% auto no-repeat,
    linear-gradient(180deg,var(--azul-pie),#7FDBFD)}
  .ft__curve path{fill:none}
}

/* Corazón celeste detrás del mapa de «Llegamos a tu ciudad», como en el
   Home 4: arranca al 75,5 % del ancho y al 61 % del alto del mapa, mide el
   31,3 % de su ancho y asoma por la derecha y por debajo. */
.cober__map{position:relative}
.cober__map>a{display:block;position:relative;z-index:1}
.cober__corazon{position:absolute;left:75.5%;top:61.1%;width:31.3%;height:auto;max-width:none;z-index:0;pointer-events:none}
/* Sin el borde redondeado ni la sombra que «.cober__map img» le da al mapa. */
.cober__map .cober__corazon{border-radius:0;box-shadow:none}
/* En celular el margen lateral es de 18 px: el corazón asoma solo 14 px
   por la derecha para no generar desplazamiento horizontal. */
@media(max-width:640px){
  .cober__corazon{left:auto;right:-14px}
}
/* El pin de «Llegamos» (2.3.1) sobresalía de la pantalla en celulares de
   360 px o menos y permitía desplazar la página de lado. Ahí se reduce un
   poco; en 320 px, donde no cabe a la derecha de la palabra, se recorta
   en el borde de la sección en vez de desbordar la página. */
@media(max-width:374px){
  .cober__pin{height:1.8em}
}
.cober{overflow-x:clip}


/* contacto v2: botón centrado, tarjetas Canales directos y Planta, y Atajos a todo el ancho */
.ct__cta{display:flex;justify-content:center;margin-top:28px}
.ct__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:36px auto 0;max-width:1100px;align-items:stretch}
.ct__planta .ct__ch{border-bottom:0}
.ct__atajos{grid-column:1/-1;text-align:center}
.ct__atajos .ct__links{display:inline-block;text-align:left;margin:0 auto}
@media (max-width:768px){.ct__grid{grid-template-columns:1fr}}
