:root{
  --navy:#293345; --blue:#3b8f98; --sky:#e3f1f5; --cream:#f4f4ef; --ink:#3b4657; --muted:#6c7789;
  --yellow:#fedc92; --radius:28px; --serif:'Fredoka','Nunito',system-ui,sans-serif; --sans:'Nunito',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;font-family:var(--sans);color:var(--ink);background:#fff;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);color:var(--navy);line-height:1.15;margin:0 0 .5em;font-weight:600}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem)}
h3{font-size:1.1rem;font-family:var(--sans);font-weight:700}
.accent{color:var(--blue)}
.ico{font-size:1.15em;line-height:1;vertical-align:-.15em;flex:none}
.sparks{width:.8em;height:.8em;vertical-align:top;margin-left:.1em}
.eyebrow{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:700;margin-bottom:.6rem}

/* Botones */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.6rem;border-radius:999px;font-weight:700;font-size:.95rem;border:2px solid var(--navy);cursor:pointer;font-family:inherit;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--navy);color:#fff}
.btn-outline{background:transparent;color:var(--navy)}
.btn-sm{padding:.6rem 1.1rem;font-size:.8rem}
.link{color:var(--navy);font-weight:700;font-size:.85rem;display:inline-flex;gap:.4rem;align-items:center}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}

/* Header */
.site-header{--logo:184px;--h:calc(var(--logo)*112/184);position:sticky;top:0;transition:height .25s ease,filter .25s ease;z-index:50;display:flex;align-items:center;gap:2.2rem;height:var(--h);padding:0 3.5rem 0 calc(var(--logo) + 3.5rem);background:#fff;border-radius:0 0 80px 0;filter:drop-shadow(0 5px 10px rgba(41,51,69,.07))}
.site-header .logo{transition:width .25s ease,height .25s ease;position:absolute;left:1.6rem;top:calc(var(--logo)*8/184);width:var(--logo);height:var(--logo);border-radius:50%;background:#fff;display:grid;place-items:center}
.site-header .logo img,.site-header .logo-ph{width:100%;height:100%;border-radius:50%;object-fit:contain;transform:scale(1.12)}
/* Curva cóncava que une el círculo del logo con la barra */
/* Curva cóncava (SVG) que une el círculo del logo con la barra; escala con --logo */
.logo-curve{position:absolute;left:calc(var(--logo)*170/184);top:calc(var(--logo)*103/184);width:calc(var(--logo)*46/184);height:calc(var(--logo)*40/184);overflow:visible;pointer-events:none;transition:width .25s ease,height .25s ease,left .25s ease,top .25s ease}
.logo img{height:64px}
.logo-ph{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--sky);color:var(--blue);font:700 .9rem/1.1 var(--sans);text-align:center;text-transform:uppercase;letter-spacing:.05em}
.nav{white-space:nowrap;display:flex;align-items:center;gap:2rem;flex:1;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--navy)}
.nav a:not(.btn):not(.lang-switch){padding:.5rem 0;border-bottom:2px solid transparent;transition:border-color .2s}
.nav a:not(.btn):not(.lang-switch):hover,.nav a.active{border-color:var(--blue)}
.nav .btn{margin-left:auto;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;padding:.9rem 1.8rem}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;font-size:1.6rem;color:var(--navy)}

/* Placeholder de fotos */
.ph{width:100%;height:100%;min-height:120px;position:relative;background:
  radial-gradient(circle at 20% 25%,rgba(255,255,255,.55) 0 14%,transparent 15%),
  radial-gradient(circle at 78% 70%,rgba(245,197,66,.28) 0 18%,transparent 19%),
  linear-gradient(135deg,#d6eaf8,#f6ecd6)}
.ph::after{content:"";position:absolute;inset:0;margin:auto;width:44px;height:44px;opacity:.35;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23123e75' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E")}
.hero-photo img,.split-photo img,.cta-photo img,.safety-photo img{width:100%;height:100%;object-fit:cover}

/* Secciones */
section{position:relative}
/* Banner de fondo (assets/img/hero_home.png, 1882x836): la foto va a la derecha y el texto sobre la zona clara. */
.hero{position:relative;display:flex;align-items:center;margin-top:-112px;padding:14rem 2rem 2.5rem 4rem;overflow:hidden;
  background:var(--hero-bg,linear-gradient(110deg,var(--cream) 45%,#d5eaf1)) center/cover no-repeat,var(--cream)}
@media (min-width:1181px){.hero{aspect-ratio:1882/836;min-height:560px}}
.hero-text{position:relative;z-index:2;width:44%;max-width:600px}
.hero-text p{font-size:1.15rem;color:var(--muted);max-width:32em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.blob{border-radius:180px 40px 40px 120px}
.blob-r{border-radius:0 120px 120px 0}
.blob-l{border-radius:120px 0 0 120px}

.panel{margin:1.2rem 1.5rem;padding:2rem;border-radius:var(--radius)}
.cream{background:var(--cream)}
.blue{background:var(--sky)}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.programs{display:grid;grid-template-columns:minmax(200px,250px) 1fr;grid-template-rows:auto 1fr;column-gap:1.6rem;row-gap:.4rem;padding:1.6rem 1.8rem 1.8rem;background:linear-gradient(135deg,#eaf5f8,#dcedf2);border-radius:34px}
.programs-intro{grid-column:1;grid-row:1/3;align-self:center;padding-left:.6rem}
.programs-intro h2{font-size:clamp(1.7rem,2.6vw,2.3rem);margin:0}
.programs-all{grid-column:2;grid-row:1;justify-self:end}
.program-grid{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(6,1fr);gap:.9rem}
.program-card{display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 6px 16px rgba(41,51,69,.08);transition:transform .2s,box-shadow .2s}
.program-card:hover{transform:translateY(-4px);box-shadow:0 10px 22px rgba(41,51,69,.14)}
.program-card>img,.program-card>.ph{aspect-ratio:1/.88;height:auto;object-fit:cover;object-position:center 22%;width:100%;border-radius:14px 14px 0 0}
.program-card .label{flex:1;min-height:56px;padding:.65rem .4rem;text-align:center;display:flex;flex-direction:column;justify-content:center;font-size:.9rem;color:var(--navy)}
.program-card .label strong{font-weight:800}
.program-card small{color:var(--muted);font-size:.72rem}

.why{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:1.5rem;padding:2.5rem 2rem;align-items:start}
.reason{text-align:left;padding-left:1.2rem;border-left:1px solid #e3e8ee}
.reason p{font-size:.85rem;color:var(--muted);margin:0}
.round{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;color:var(--navy);margin-bottom:.6rem}
.round .ico{font-size:28px;vertical-align:0}

.split{display:grid;align-items:center;gap:2rem;margin:1rem 0}
.purpose{grid-template-columns:1.1fr 1fr .8fr;background:var(--sky);padding:0 2rem 0 0;border-radius:0 var(--radius) var(--radius) 0;margin-right:0}
.purpose .split-photo{height:100%;min-height:340px}
.purpose .split-body{padding:2rem 0}
.pillars{list-style:none;margin:0;padding:1rem 0;display:grid;gap:1rem;font-weight:700;color:var(--navy);font-size:.9rem}
.pillars li{display:flex;align-items:center;gap:.8rem}
.pillars .round{width:52px;height:52px;margin:0}
.community{grid-template-columns:1fr 1.2fr;padding-left:2rem}
.community .split-photo{min-height:300px;height:100%;overflow:hidden}

.safety-wrap{display:grid;grid-template-columns:.8fr 1.3fr 1fr;align-items:stretch;gap:0}
.safety-photo{overflow:hidden;min-height:320px}
.safety{margin:1rem 0}
.safety p{color:var(--muted)}
.resources h2{font-size:1.5rem}
.resources ul{list-style:none;margin:1rem 0 0;padding:1rem;background:#fff;border-radius:20px}
.resources li a{display:flex;align-items:center;gap:.8rem;padding:.55rem .4rem;font-size:.9rem;color:var(--navy);border-bottom:1px solid #eef1f5}
.resources li:last-child a{border:0}
.resources li a:hover{color:var(--blue)}

.cta{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;background:linear-gradient(120deg,var(--sky) 55%,#fff);margin-top:1rem;overflow:hidden}
.cta-text{padding:2rem 2rem 2rem 3rem;max-width:480px}
.cta-photo{height:340px;overflow:hidden}

.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 3rem;border-top:1px solid #eef1f5}
.site-footer .logo img,.site-footer .logo-ph{height:90px;width:90px}
.contact{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2rem;font-size:.85rem;color:var(--navy);font-weight:600}
.contact li{display:flex;gap:.6rem;align-items:center}
.contact .ico{color:var(--navy);font-size:1.5em}
.social{display:flex;gap:.8rem}
.social a{display:grid;place-items:center;width:40px;height:40px;border:2px solid var(--navy);border-radius:50%;color:var(--navy)}
.legal{width:100%;text-align:right;font-size:.7rem;color:var(--muted);margin:0}

/* Formulario */
.form-page{background:var(--cream);padding:3rem 1rem}
.form-card{max-width:560px;margin:0 auto;background:#fff;padding:2.2rem;border-radius:var(--radius);box-shadow:0 8px 30px rgba(41,51,69,.08)}
.form-card form{display:grid;gap:1rem}
.form-card label{display:grid;gap:.3rem;font-weight:700;font-size:.85rem;color:var(--navy)}
.form-card input,.form-card select,.form-card textarea{padding:.7rem .9rem;border:1.5px solid #d5dde6;border-radius:12px;font:inherit;color:var(--ink)}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.err{color:#c0392b;font-weight:600;font-size:.8rem}
.ok{background:#e6f4e8;color:#256b34;padding:1rem;border-radius:12px;font-weight:700}
.hp{position:absolute;left:-9999px}

/* Responsive */
@media (max-width:1180px){
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;flex:none;flex-direction:column;align-items:flex-start;background:#fff;border-radius:0 0 28px 0;padding:1rem 2rem 1.5rem;box-shadow:0 10px 20px rgba(0,0,0,.08)}
  .nav.open{display:flex}
  .purpose,.community,.cta{grid-template-columns:1fr}
  .hero{display:block;min-height:560px;padding:10rem 1.5rem 3rem;background-position:72% center}
  .hero.has-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(253,251,247,.94) 48%,rgba(253,251,247,0));z-index:1}
  .hero-text{width:auto;max-width:none}
  .programs{grid-template-columns:1fr;grid-template-rows:auto auto auto}
  .programs-intro{grid-column:1;grid-row:1;padding:0 0 .6rem}
  .programs-all{grid-column:1;grid-row:3;justify-self:start;margin-top:.8rem}
  .program-grid{grid-column:1;grid-row:2;grid-template-columns:repeat(3,1fr)}
  .why{grid-template-columns:1fr 1fr}
  .why-title{grid-column:1/-1}
  .purpose{border-radius:0 var(--radius) var(--radius) 0;padding:0 1.5rem 1.5rem 0}
  .purpose .split-body,.pillars{padding-left:1.5rem}
  .community{padding:0 0 0 1.5rem}
  .community .split-body{padding-right:1.5rem}
  .safety-wrap{grid-template-columns:1fr}
  .safety-photo{min-height:260px}
  .safety{margin:1rem 1.5rem}
  .cta-text{padding:2rem 1.5rem}
  .legal{text-align:left}
}
@media (max-width:560px){
  .site-header{--logo:112px;padding:0 1rem 0 calc(var(--logo) + 1.6rem);border-radius:0 0 44px 0}


  .program-grid{grid-template-columns:repeat(2,1fr)}
  .why{grid-template-columns:1fr}
  .site-footer{padding:1.5rem}
}

/* Header fijo: se compacta al hacer scroll */
.site-header.scrolled{--logo:131px;filter:drop-shadow(0 6px 12px rgba(41,51,69,.16))}

.lang-switch{display:inline-flex;align-items:center;gap:.5rem;margin-left:auto;padding:.35rem .95rem .35rem .4rem;border-radius:999px;background:linear-gradient(180deg,#ffe6b0,var(--yellow));color:var(--navy);border:2.5px solid var(--navy);box-shadow:0 4px 0 var(--navy);font:800 .85rem/1 var(--sans);text-transform:none;letter-spacing:.02em;transition:transform .15s,box-shadow .15s}
.lang-switch .lang-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:var(--blue);animation:globe-bob 2.6s ease-in-out infinite}
.lang-switch .lang-ico .ico{font-size:18px;vertical-align:0}
.lang-switch:hover{transform:translateY(-2px) rotate(-3deg);box-shadow:0 6px 0 var(--navy)}
.lang-switch:active{transform:translateY(3px);box-shadow:0 1px 0 var(--navy)}
@keyframes globe-bob{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(12deg) scale(1.08)}}
@media (prefers-reduced-motion:reduce){.lang-switch .lang-ico{animation:none}.lang-switch:hover{transform:none}}
.lang-switch+.btn{margin-left:0}
@media (max-width:1180px){
  .site-header.scrolled{--logo:92px}
  .lang-switch{margin-left:0}
}

/* Comunidad + Seguridad + Rincón de padres (tres columnas) */
.trio{position:relative;display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:1.6rem;align-items:stretch;padding:2rem 2rem 4.5rem}
.trio h2{font-size:clamp(1.5rem,2.2vw,2rem);margin:0 0 .8rem}
.trio .eyebrow{margin-bottom:.4rem}
.trio-community{display:flex;flex-direction:column;padding:.4rem .6rem}
.trio-photo{border-radius:28px;overflow:hidden;aspect-ratio:16/8;margin:.3rem 0 1rem;background:#eee}
.trio-photo img,.trio-photo .ph{width:100%;height:100%;object-fit:cover}
.trio-community p{color:var(--muted);margin:0 0 .8rem;font-size:.95rem}
.trio .link{margin-top:auto}
.trio-safety{position:relative;min-height:440px;border-radius:32px;overflow:hidden;display:flex;align-items:flex-end;color:#fff}
.trio-safety .trio-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.trio-safety::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,38,55,.72) 0%,rgba(30,38,55,.35) 55%,rgba(30,38,55,0) 100%),linear-gradient(0deg,rgba(30,38,55,.55),rgba(30,38,55,0) 55%)}
.trio-safety-body{position:relative;z-index:2;max-width:78%;padding:1.8rem}
.trio-safety h2{color:#fff}
.trio-safety .eyebrow{color:#fff;opacity:.9}
.trio-safety p{margin:0 0 1.2rem;font-size:.95rem}
.btn-light{background:#fff;color:var(--navy);border-color:#fff;box-shadow:0 6px 16px rgba(0,0,0,.15)}
.trio-parents{position:relative;background:linear-gradient(160deg,#eaf5f8,#dcedf2);border-radius:32px;padding:1.8rem 1.8rem 1.6rem;display:flex;flex-direction:column;overflow:hidden}
.trio-parents .leaves{position:absolute;top:8px;right:14px;width:74px;height:84px}
.trio-parents ul{list-style:none;margin:.6rem 0 1.2rem;padding:0}
.trio-parents li a{display:flex;align-items:center;gap:.9rem;padding:.6rem .3rem;font-size:.92rem;color:var(--navy)}
.trio-parents li a:hover{color:var(--blue)}
.trio-parents .ico{font-size:1.25em}
/* Ola azul marino inferior */
.trio::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56px;pointer-events:none;background:
  radial-gradient(120px 56px at 6% 100%,var(--navy) 0 98%,transparent 100%),
  radial-gradient(140px 44px at 96% 100%,var(--navy) 0 98%,transparent 100%)}
@media (max-width:1180px){
  .trio{grid-template-columns:1fr}
  .trio-safety{min-height:380px}
  .trio-safety-body{max-width:100%}
}

/* =====================  Tema infantil  ===================== */
:root{
  --serif:'Fredoka','Nunito',system-ui,sans-serif;
  --coral:#f9897b; --sun:#fedc92; --mint:#84cfcc; --sky2:#6cc0c9; --lilac:#a5678e;
  --teal:#51aab3; --lime:#d0e6a5; --slate:#8f9cb5; --skyblue:#82c0d5;
}
h1,h2{font-weight:600;letter-spacing:-.005em}
h3{font-family:var(--serif);font-weight:600}

/* Palabras destacadas con subrayado ondulado */
h1 .accent,h2 .accent{text-decoration:underline wavy var(--sun) 3px;text-underline-offset:9px;text-decoration-skip-ink:none}

/* Etiquetas con punto de color */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:800}
.eyebrow::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:var(--coral);box-shadow:.9rem 0 0 -1px var(--sun),1.8rem 0 0 -1px var(--mint);margin-right:1.9rem}

/* Botones tipo "sticker" */
.btn{border-width:2.5px;font-weight:800;box-shadow:0 4px 0 rgba(41,51,69,.9);transition:transform .15s cubic-bezier(.3,1.6,.5,1),box-shadow .15s}
.btn-primary{box-shadow:0 4px 0 #1a2230}
.btn:hover{transform:translateY(-3px) rotate(-1.5deg);box-shadow:0 7px 0 rgba(41,51,69,.9)}
.btn-primary:hover{box-shadow:0 7px 0 #1a2230}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(41,51,69,.9)}
.btn-sm{box-shadow:0 3px 0 #1a2230}
.btn-light{box-shadow:0 4px 0 rgba(0,0,0,.25)}
.link{font-weight:800}

/* Programas: tarjetas de colores que se menean */
.program-card{border:3px solid transparent}
.program-card:nth-child(1){border-color:#fbc9c1}.program-card:nth-child(2){border-color:#fee9c2}
.program-card:nth-child(3){border-color:#c6e8e6}.program-card:nth-child(4){border-color:#c5e4ec}
.program-card:nth-child(5){border-color:#e0c7d8}.program-card:nth-child(6){border-color:#f6dcc9}
.program-card:nth-child(odd):hover{transform:translateY(-6px) rotate(-2.5deg)}
.program-card:nth-child(even):hover{transform:translateY(-6px) rotate(2.5deg)}
.program-card .label strong{font-family:var(--serif);font-weight:600;font-size:1rem}

/* Por qué elegirnos: iconos de colores vivos y confeti */
.why{background:
  radial-gradient(circle at 4% 20%,rgba(254,220,146,.35) 0 7px,transparent 8px),
  radial-gradient(circle at 96% 75%,rgba(249,137,123,.3) 0 9px,transparent 10px),
  radial-gradient(circle at 48% 96%,rgba(132,207,204,.35) 0 6px,transparent 7px)}
.reason{border-left:2px dashed #d7e3e6}
.reason .round{border:3px solid #fff;box-shadow:0 5px 0 rgba(41,51,69,.12);transition:transform .25s cubic-bezier(.3,1.7,.5,1)}
.reason:hover .round{transform:rotate(-10deg) scale(1.12)}
.reason:nth-of-type(1) .round{background:#fdd9d3!important;color:#e26f61}
.reason:nth-of-type(2) .round{background:#dceff5!important;color:#3b8f98}
.reason:nth-of-type(3) .round{background:#fef0cf!important;color:#b98a2c}
.reason:nth-of-type(4) .round{background:#e4f0c8!important;color:#3f9a94}

/* Propuesta: pilares */
.pillars .round{border:3px solid #fff;box-shadow:0 4px 0 rgba(41,51,69,.12)}
.pillars li:hover .round{animation:wiggle .5s}

/* Tres columnas */
.trio-photo,.trio-safety,.trio-parents{border:4px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.08),0 14px 26px rgba(41,51,69,.08)}
.trio-parents li a{border-radius:14px;transition:background .2s,transform .2s}
.trio-parents li a:hover{background:#fff;transform:translateX(4px)}
.trio-parents li:nth-child(6n+1) .ico{color:var(--coral)}.trio-parents li:nth-child(6n+2) .ico{color:var(--sky2)}
.trio-parents li:nth-child(6n+3) .ico{color:var(--mint)}.trio-parents li:nth-child(6n+4) .ico{color:#d9a23a}
.trio-parents li:nth-child(6n+5) .ico{color:var(--lilac)}.trio-parents li:nth-child(6n+6) .ico{color:var(--coral)}

/* CTA final con estrellas flotantes */
.cta::before,.cta::after{content:"★";position:absolute;color:var(--sun);font-size:2rem;animation:float 4s ease-in-out infinite;pointer-events:none}
.cta::before{top:18%;left:44%}
.cta::after{bottom:16%;left:38%;color:var(--coral);font-size:1.4rem;animation-delay:-2s}

/* Destellos animados */
.sparks{animation:twinkle 2.4s ease-in-out infinite;transform-origin:center}

/* Pie de página */
.site-footer{border-top:4px dotted #d3e5e8}
.social a{border-width:2.5px;box-shadow:0 3px 0 var(--navy);transition:transform .2s cubic-bezier(.3,1.7,.5,1)}
.social a:hover{transform:translateY(-3px) rotate(-8deg);background:var(--sun)}

/* Entrada suave al hacer scroll */
.reveal{opacity:0;transform:translateY(24px) scale(.97);transition:opacity .6s ease,transform .6s cubic-bezier(.3,1.5,.5,1)}
.reveal.in{opacity:1;transform:none}

@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(12deg)}}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(8deg)}}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .sparks,.cta::before,.cta::after{animation:none}
  .btn:hover,.program-card:hover,.reason:hover .round,.social a:hover{transform:none}
}

/* Aprender con propósito: foto con borde derecho ondulado */
.purpose .split-photo{clip-path:url(#purpose-clip);border-radius:0;overflow:hidden}
.purpose .split-photo img{object-position:35% center}
@media (min-width:1181px){
  .purpose{grid-template-columns:1.7fr 1fr .75fr}
  .purpose .split-photo img{object-position:center}
}

/* =====================  Más infantil (2)  ===================== */
/* Cinta arcoíris arriba de la página */
body::before{content:"";position:fixed;top:0;left:0;right:0;height:6px;z-index:100;background:linear-gradient(90deg,var(--coral) 0 20%,var(--sun) 20% 40%,var(--mint) 40% 60%,var(--sky2) 60% 80%,var(--lilac) 80%)}

/* Logo con vida */
.site-header .logo{animation:bob 4s ease-in-out infinite}
.site-header .logo:hover{animation:wiggle .6s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* Hero: estrellas y globos flotando */
.hero::before{content:"★";position:absolute;z-index:2;left:40%;top:36%;font-size:1.6rem;color:var(--sun);animation:float 4.5s ease-in-out infinite;pointer-events:none}
.hero::after{content:"●";position:absolute;z-index:2;left:6%;bottom:9%;font-size:1.1rem;color:var(--coral);animation:float 5s ease-in-out -1.5s infinite;pointer-events:none}

/* Programas: nombre y borde en color */
.program-card:nth-child(1) .label strong{color:#e26f61}.program-card:nth-child(2) .label strong{color:#b98a2c}
.program-card:nth-child(3) .label strong{color:#3f9a94}.program-card:nth-child(4) .label strong{color:#3b8f98}
.program-card:nth-child(5) .label strong{color:#8a4f76}.program-card:nth-child(6) .label strong{color:#d9855a}

/* Por qué elegirnos: tarjetas tipo stickers */
.why{position:relative;gap:1.2rem}
.why .reason{background:#fff;border:3px solid #e3ebed;border-left-width:3px;border-radius:28px;padding:1.3rem 1.1rem;box-shadow:0 6px 0 rgba(41,51,69,.07);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.why .reason:nth-child(2){border-color:#fbc2b9;transform:rotate(-1.5deg)}
.why .reason:nth-child(3){border-color:#b9e0e5;transform:rotate(1.2deg)}
.why .reason:nth-child(4){border-color:#fedc92;transform:rotate(-1deg)}
.why .reason:nth-child(5){border-color:#d0e6a5;transform:rotate(1.5deg)}
.why .reason:hover{transform:rotate(0) translateY(-6px)}
.why .reason:nth-child(2) .round{background:#fdd9d3!important;color:#e26f61}
.why .reason:nth-child(3) .round{background:#dceff5!important;color:#3b8f98}
.why .reason:nth-child(4) .round{background:#fef0cf!important;color:#b98a2c}
.why .reason:nth-child(5) .round{background:#e4f0c8!important;color:#3f9a94}
.why .reason.reveal.in{transform:none}
.why::before{content:"✦";position:absolute;right:3%;top:10%;font-size:1.8rem;color:var(--lilac);animation:twinkle 3s ease-in-out infinite}
.why::after{content:"☁";position:absolute;left:1%;bottom:2%;font-size:2.6rem;color:#cde7ed;animation:float 7s ease-in-out infinite}

/* Propuesta: nubes y estrellas */
.purpose::before{content:"★";position:absolute;right:30%;top:10%;font-size:1.4rem;color:var(--sun);animation:twinkle 2.8s ease-in-out infinite;z-index:2}
.purpose::after{content:"☁";position:absolute;right:2%;bottom:6%;font-size:2.4rem;color:#fff;opacity:.9;animation:float 6s ease-in-out infinite}

/* Foto de comunidad como polaroid inclinada */
.trio-photo{transform:rotate(-2deg);border-width:6px;border-radius:22px}
.trio-photo:hover{transform:rotate(0)}
.trio::before{content:"✿";position:absolute;left:33%;top:3%;font-size:1.8rem;color:var(--coral);animation:float 5s ease-in-out infinite}

/* Botón "sticker" del Rincón de padres y estrellas en listas */
.trio-parents li a::after{content:"";margin-left:auto}
.pillars li{background:#fff;border-radius:999px;padding:.35rem 1rem .35rem .4rem;box-shadow:0 4px 0 rgba(41,51,69,.08)}

/* Títulos más grandes y alegres */
h1{font-weight:700}
.trio h2,.programs-intro h2{font-weight:600}

@media (max-width:1180px){
  .why .reason{transform:none!important}
  .hero::before{left:auto;right:8%;top:28%}
}
@media (prefers-reduced-motion:reduce){
  .site-header .logo,.hero::before,.hero::after,.why::before,.why::after,.purpose::before,.purpose::after,.trio::before{animation:none}
}
.trio-safety .trio-bg{object-position:60% 30%}
/* Seguridad: la niña queda a la derecha para que el texto no tape el elefante */
.trio-safety .trio-bg{object-position:30% 8%}
.trio-safety-body{max-width:64%}
@media (max-width:1180px){.trio-safety-body{max-width:100%}.trio-safety .trio-bg{object-position:60% 20%}}
.cta-photo img{object-position:center 38%}

/* =====================  Página Nosotros  ===================== */
.page-hero{position:relative;margin-top:-112px;padding:11rem 2rem 4rem;text-align:center;overflow:hidden;
  background:radial-gradient(circle at 12% 30%,rgba(254,220,146,.35) 0 9%,transparent 9.5%),radial-gradient(circle at 90% 70%,rgba(132,207,204,.35) 0 11%,transparent 11.5%),linear-gradient(180deg,var(--sky),var(--cream))}
.page-hero h1{max-width:18ch;margin:.3rem auto 1rem}
.page-hero p{max-width:40em;margin:0 auto;font-size:1.15rem;color:var(--muted)}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:34px;background:radial-gradient(60px 34px at 60px 34px,#fff 98%,transparent) 0 0/120px 34px repeat-x}

.about-story{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1180px;margin:0 auto;padding:3rem 2rem}
.about-photo{border-radius:32px;overflow:hidden;border:6px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.08),0 16px 30px rgba(41,51,69,.1);transform:rotate(-1.5deg);aspect-ratio:4/3}
.about-photo img,.about-photo .ph{width:100%;height:100%;object-fit:cover}
.about-story-body p{color:var(--muted);font-size:1.05rem}
.about-story-body .btn{margin-top:.6rem}

.about-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;max-width:1180px;margin:0 auto;padding:1rem 2rem 3rem}
.pillar-card{padding:1.8rem;border-radius:30px;border:3px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.07)}
.pillar-card p{margin:0;color:var(--ink)}
.pillar-mission{background:#dceff5}.pillar-vision{background:#fef0cf}.pillar-approach{background:#e4f0c8}
.pillar-card .round{background:#fff;box-shadow:0 4px 0 rgba(41,51,69,.1)}
.pillar-mission .round{color:#3b8f98}.pillar-vision .round{color:#b98a2c}.pillar-approach .round{color:#5b8f2a}
.pillar-card:hover .round{animation:wiggle .5s}

.about-values{max-width:1180px;margin:0 auto;padding:2rem 2rem 4rem;text-align:center}
.values-head{margin-bottom:2rem}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;text-align:left}
.value{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center;padding:1.2rem 1.3rem;background:#fff;border:3px solid #e3ebed;border-radius:26px;box-shadow:0 6px 0 rgba(41,51,69,.06);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.value:hover{transform:translateY(-5px) rotate(-1deg)}
.value .round{grid-row:1/3;margin:0}
.value h3{margin:0}
.value p{margin:0;font-size:.9rem;color:var(--muted)}
.value-0{border-color:#fbc2b9}.value-0 .round{background:#fdd9d3;color:#e26f61}
.value-1{border-color:#fedc92}.value-1 .round{background:#fef0cf;color:#b98a2c}
.value-2{border-color:#d0e6a5}.value-2 .round{background:#e4f0c8;color:#5b8f2a}
.value-3{border-color:#b9e0e5}.value-3 .round{background:#dceff5;color:#3b8f98}
.value-4{border-color:#e0c7d8}.value-4 .round{background:#f3e3ec;color:#8a4f76}
.value-5{border-color:#c5d0e6}.value-5 .round{background:#e3e8f3;color:#5a6b8f}

@media (max-width:1180px){
  .about-story{grid-template-columns:1fr;gap:2rem}
  .about-pillars{grid-template-columns:1fr}
  .values-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .values-grid{grid-template-columns:1fr}
  .page-hero{padding:9rem 1.2rem 3.5rem}
}
.nav a.active:not(.btn):not(.lang-switch){border-color:var(--blue)}
.about-story-body p{font-size:1rem;line-height:1.65}
.about-story{align-items:start}
.about-photo{position:sticky;top:130px}
@media (max-width:1180px){.about-photo{position:relative;top:0}}

/* =====================  Página Programas  ===================== */
.prog-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:start;max-width:1180px;margin:0 auto;padding:3rem 2rem 2rem}
.prog-intro-text p{color:var(--muted);font-size:1.02rem;line-height:1.7}
.prog-intro-text .lead{color:var(--navy);font-size:1.15rem;font-weight:600}
.prog-highlights{display:grid;gap:1rem}
.highlight{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;background:#fff;border:3px solid #e3ebed;border-radius:24px;box-shadow:0 6px 0 rgba(41,51,69,.06);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.highlight:hover{transform:translateX(6px) rotate(-.6deg)}
.highlight .round{margin:0;flex:none}
.highlight h3{margin:0 0 .1rem}
.highlight p{margin:0;font-size:.9rem;color:var(--muted)}
.highlight-individual{border-color:#fbc2b9}.highlight-individual .round{background:#fdd9d3;color:#e26f61}
.highlight-practices{border-color:#fedc92}.highlight-practices .round{background:#fef0cf;color:#b98a2c}
.highlight-staff{border-color:#b9e0e5}.highlight-staff .round{background:#dceff5;color:#3b8f98}
.highlight-certified{border-color:#d0e6a5}.highlight-certified .round{background:#e4f0c8;color:#5b8f2a}

.goals{max-width:1080px;margin:0 auto;padding:3rem 2rem 3.5rem;text-align:center}
.goals-head p{color:var(--muted);margin:.2rem 0 1.6rem}
.goals-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;text-align:left}
.goal{padding:1.8rem;border-radius:30px;border:3px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.07)}
.goal p{margin:0;color:var(--ink)}
.goal-one{background:#fdd9d3}.goal-two{background:#dceff5}
.goal .round{background:#fff;box-shadow:0 4px 0 rgba(41,51,69,.1)}
.goal-one .round{color:#e26f61}.goal-two .round{color:#3b8f98}
.goals-closing{margin:2rem auto 0;max-width:34em;font-family:var(--serif);font-size:1.25rem;color:var(--navy)}

@media (max-width:1180px){
  .prog-intro{grid-template-columns:1fr;gap:1.6rem}
}
@media (max-width:700px){
  .goals-grid{grid-template-columns:1fr}
}

/* Nuestros estudiantes */
.about-students{display:grid;grid-template-columns:1fr 1.1fr;gap:2.5rem;align-items:center;max-width:1180px;margin:0 auto;padding:2rem 2rem 3rem}
.students-quote{position:relative;margin:0;padding:2.6rem 2.2rem 2.2rem;border-radius:34px;background:var(--navy);color:#fff;box-shadow:0 10px 0 rgba(41,51,69,.15)}
.students-quote .bi-quote{position:absolute;top:-.2rem;left:1rem;font-size:5rem;line-height:1;color:var(--sun)}
.students-quote p{position:relative;margin:0;font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.3}
.students-body p{color:var(--muted);line-height:1.7}
.students-chips{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;font-weight:800;font-size:.9rem;color:var(--navy);background:#fff;border:2.5px solid #e3ebed;box-shadow:0 3px 0 rgba(41,51,69,.08)}
.chip-learners{border-color:#fedc92;background:#fef0cf}.chip-friends{border-color:#fbc2b9;background:#fdd9d3}.chip-explorers{border-color:#b9e0e5;background:#dceff5}

/* Organigrama */
.about-org{max-width:1100px;margin:0 auto;padding:1rem 2rem 3.5rem;text-align:center}
.about-org figure{margin:1.5rem 0 0;padding:1rem;background:#fff;border:3px solid #e3ebed;border-radius:28px;box-shadow:0 8px 0 rgba(41,51,69,.06)}
.about-org img{width:100%;height:auto;border-radius:16px}

@media (max-width:1180px){.about-students{grid-template-columns:1fr}}
/* Cita: el signo de comillas ya no se encima con el texto */
.students-quote{padding:4.2rem 2.2rem 2.2rem}
.students-quote .bi-quote{top:.6rem;left:1.4rem;font-size:4.5rem}
/* Las tres etiquetas: una fila horizontal debajo del bloque */
.students-chips{grid-column:1/-1;margin:.6rem 0 0;justify-content:center;flex-wrap:nowrap;gap:1rem}
.students-chips .chip{flex:1 1 0;justify-content:center;max-width:280px;padding:.75rem 1.2rem;font-size:1rem}
.students-chips .chip i{font-size:1.2rem}
@media (max-width:700px){
  .students-chips{flex-wrap:wrap}
  .students-chips .chip{flex:1 1 100%;max-width:none}
}

/* =====================  Header en forma de nube  ===================== */
.site-header{--p:1;border-radius:0}
.site-header::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 1px);height:calc(var(--p)*36px);pointer-events:none;z-index:-1;
  background:
    radial-gradient(circle at calc(var(--p)*40px) 0,#fff calc(var(--p)*39px),transparent calc(var(--p)*40px)) 0 0/calc(var(--p)*80px) calc(var(--p)*30px) repeat-x,
    radial-gradient(circle at calc(var(--p)*30px) 0,#fff calc(var(--p)*29px),transparent calc(var(--p)*30px)) calc(var(--p)*40px) 0/calc(var(--p)*60px) calc(var(--p)*22px) repeat-x,
    radial-gradient(circle at calc(var(--p)*44px) 0,#cfe8ee calc(var(--p)*43px),transparent calc(var(--p)*44px)) calc(var(--p)*22px) 0/calc(var(--p)*88px) calc(var(--p)*36px) repeat-x}
.site-header .logo-curve{display:none}
.site-header .logo{z-index:3}
@media (max-width:1180px){.site-header{--p:.6}}
/* Nube más redondeada: dos hileras de burbujas blancas de distinto tamaño */
.site-header::after{height:calc(var(--p)*34px);
  background:
    radial-gradient(circle at calc(var(--p)*34px) 0,#fff calc(var(--p)*33px),transparent calc(var(--p)*34px)) 0 0/calc(var(--p)*68px) calc(var(--p)*26px) repeat-x,
    radial-gradient(circle at calc(var(--p)*26px) 0,#fff calc(var(--p)*25px),transparent calc(var(--p)*26px)) calc(var(--p)*34px) 0/calc(var(--p)*52px) calc(var(--p)*34px) repeat-x}
/* Nube llamativa: burbujas más grandes con una segunda nube turquesa detrás */
.site-header{--p:1.5}
@media (max-width:1180px){.site-header{--p:.9}}
.site-header::before{content:"";position:absolute;left:0;right:0;top:calc(100% + var(--p)*4px);height:calc(var(--p)*34px);pointer-events:none;z-index:-2;
  background:
    radial-gradient(circle at calc(var(--p)*34px) 0,#a9dbe0 calc(var(--p)*33px),transparent calc(var(--p)*34px)) calc(var(--p)*20px) 0/calc(var(--p)*68px) calc(var(--p)*26px) repeat-x,
    radial-gradient(circle at calc(var(--p)*26px) 0,#a9dbe0 calc(var(--p)*25px),transparent calc(var(--p)*26px)) calc(var(--p)*54px) 0/calc(var(--p)*52px) calc(var(--p)*34px) repeat-x}
/* Nube tipo sticker: sin segunda capa; sombra sólida turquesa que sigue toda la silueta */
.site-header::before{display:none}
.site-header{filter:drop-shadow(0 5px 0 #b7e0e4) drop-shadow(0 10px 12px rgba(41,51,69,.1))}
.site-header.scrolled{filter:drop-shadow(0 4px 0 #b7e0e4) drop-shadow(0 8px 12px rgba(41,51,69,.16))}

/* =====================  Header nube (SVG)  ===================== */
.site-header{--p:1;--puff-h:45.5}
.site-header::before{display:none}
.site-header::after{height:calc(var(--puff-h)*1px*var(--p));top:calc(100% - 1px);z-index:-1;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 45.5' preserveAspectRatio='none'><path d='M0 0H1000A38.0 38.0 0 0 1 924.0 0A27.3 27.3 0 0 1 869.4 0A44.6 44.6 0 0 1 780.2 0A30.6 30.6 0 0 1 719.0 0A40.5 40.5 0 0 1 638.0 0A25.6 25.6 0 0 1 586.8 0A43.0 43.0 0 0 1 500.8 0A33.1 33.1 0 0 1 434.7 0A39.7 39.7 0 0 1 355.4 0A28.9 28.9 0 0 1 297.5 0A45.5 45.5 0 0 1 206.6 0A34.7 34.7 0 0 1 137.2 0A41.3 41.3 0 0 1 54.5 0A27.3 27.3 0 0 1 0.0 0Z' fill='%23fff'/></svg>") repeat-x 0 0/1000px 100%}
@media (max-width:1180px){.site-header{--p:.62} .site-header::after{background-size:620px 100%}}

/* =====================  Currículo y enfoque por edades  ===================== */
.curriculum,.stages{max-width:1180px;margin:0 auto;padding:3rem 2rem 1rem}
.curr-head{text-align:center;margin-bottom:2rem}
.curr-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:1.4rem;align-items:stretch}
.curr-card{padding:2rem;border-radius:32px;border:3px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.07)}
.curr-card h3{display:flex;align-items:center;gap:.6rem;font-size:1.35rem;margin:0 0 .8rem}
.curr-card h3 .bi{font-size:1.5rem}
.curr-card p{color:var(--ink);line-height:1.65}
.curr-preschool{background:#fef0cf}.curr-preschool h3 .bi{color:#b98a2c}
.curr-elementary{background:#dceff5}.curr-elementary h3 .bi{color:#3b8f98}
.domains{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.domains li{padding:.35rem .8rem;border-radius:999px;background:#fff;font-size:.82rem;font-weight:800;color:var(--navy);box-shadow:0 3px 0 rgba(41,51,69,.08)}
.hmh{display:grid;gap:.7rem;margin:1rem 0}
.hmh-item{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center;padding:.8rem 1rem;background:#fff;border-radius:20px;box-shadow:0 4px 0 rgba(41,51,69,.08)}
.hmh-item .bi{grid-row:1/3;font-size:1.6rem}
.hmh-item span{font-size:.88rem;color:var(--muted)}
.hmh-reading .bi{color:#e26f61}.hmh-math .bi{color:#b98a2c}.hmh-science .bi{color:#3f9a94}
.curr-note{font-size:.92rem;margin:0}
.curr-philosophy{max-width:52em;margin:2rem auto 0;text-align:center;color:var(--muted);line-height:1.75}

.stages-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.stage{padding:1.5rem 1.6rem;background:#fff;border:3px solid #e3ebed;border-radius:28px;box-shadow:0 6px 0 rgba(41,51,69,.06);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.stage:hover{transform:translateY(-5px) rotate(-.6deg)}
.stage header{display:flex;align-items:center;gap:.9rem;margin-bottom:.8rem}
.stage .round{margin:0;flex:none}
.stage h3{margin:0}
.stage-age{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.stage-tag{font-family:var(--serif);font-size:1.15rem;color:var(--navy);margin:0 0 .5rem}
.stage p:last-child{margin:0;color:var(--muted);font-size:.95rem;line-height:1.65}
.stage-0{border-color:#fbc2b9}.stage-0 .round{background:#fdd9d3;color:#e26f61}
.stage-1{border-color:#fedc92}.stage-1 .round{background:#fef0cf;color:#b98a2c}
.stage-2{border-color:#d0e6a5}.stage-2 .round{background:#e4f0c8;color:#5b8f2a}
.stage-3{border-color:#b9e0e5}.stage-3 .round{background:#dceff5;color:#3b8f98}
.stage-4{border-color:#e0c7d8}.stage-4 .round{background:#f3e3ec;color:#8a4f76}

@media (max-width:1180px){.curr-grid{grid-template-columns:1fr}}
@media (max-width:760px){.stages-grid{grid-template-columns:1fr}.curriculum,.stages{padding-left:1.2rem;padding-right:1.2rem}}

/* =====================  Footer profesional  ===================== */
.site-footer{position:relative;display:block;margin-top:63px;padding:0;background:var(--navy);color:#dbe3ec;border-top:0;font-size:.95rem}
.site-footer::before{content:"";position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:63px;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 62.9' preserveAspectRatio='none'><path d='M0 62.9H1200A52.4 52.4 0 0 0 1095.2 62.9A38.1 38.1 0 0 0 1019.0 62.9A61.9 61.9 0 0 0 895.2 62.9A42.9 42.9 0 0 0 809.5 62.9A57.1 57.1 0 0 0 695.2 62.9A36.2 36.2 0 0 0 622.9 62.9A59.0 59.0 0 0 0 504.8 62.9A45.7 45.7 0 0 0 413.3 62.9A56.2 56.2 0 0 0 301.0 62.9A40.0 40.0 0 0 0 221.0 62.9A62.9 62.9 0 0 0 95.2 62.9A47.6 47.6 0 0 0 -0.0 62.9Z' fill='%23293345'/></svg>") repeat-x 0 0/1200px 100%}
.footer-inner{max-width:1180px;margin:0 auto;padding:3.5rem 2rem 2.5rem;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2.5rem}
.footer-brand .logo{display:inline-grid;place-items:center;width:104px;height:104px;border-radius:50%;background:#fff;margin-bottom:1rem;box-shadow:0 5px 0 rgba(0,0,0,.2)}
.footer-brand .logo img,.footer-brand .logo-ph{width:100%;height:100%;object-fit:contain;transform:scale(1.1);border-radius:50%}
.footer-brand p{margin:0 0 1.2rem;max-width:26em;line-height:1.65;color:#c3cdda}
.site-footer h4{margin:0 0 1rem;color:#fff;font-family:var(--serif);font-size:1.1rem;font-weight:600}
.site-footer h4::after{content:"";display:block;width:34px;height:4px;border-radius:4px;margin-top:.45rem;background:linear-gradient(90deg,var(--coral),var(--sun),var(--mint))}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.footer-col a{color:#dbe3ec;transition:color .2s,padding-left .2s}
.footer-col a:hover{color:var(--sun);padding-left:4px}
.footer-contact li{display:flex;gap:.7rem;align-items:flex-start;line-height:1.5}
.footer-contact .ico{color:var(--sun);font-size:1.15em;margin-top:.1rem}
.footer-contact .btn{margin-top:1.3rem}
.btn-sun{background:var(--sun);color:var(--navy);border-color:var(--sun);box-shadow:0 4px 0 rgba(0,0,0,.25)}
.site-footer .social{display:flex;gap:.7rem}
.site-footer .social a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:2px solid rgba(255,255,255,.35);color:#fff;box-shadow:none}
.site-footer .social a:hover{background:var(--sun);border-color:var(--sun);color:var(--navy);transform:translateY(-3px) rotate(-8deg)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;max-width:1180px;margin:0 auto;padding:1.2rem 2rem 1.6rem;font-size:.82rem;color:#9fadbf}
.footer-bottom p{margin:0}
.footer-bottom a{color:#c3cdda}.footer-bottom a:hover{color:var(--sun)}
.footer-bottom span{margin:0 .6rem}
@media (max-width:1000px){.footer-inner{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.footer-inner{grid-template-columns:1fr;padding:3rem 1.4rem 1.5rem}.footer-bottom{padding:1.1rem 1.4rem 1.5rem}}
.footer-col a.btn-sun,.footer-col a.btn-sun:hover{color:var(--navy);padding-left:1.1rem}

/* =====================  Bienestar, seguridad y salud  ===================== */
.protocols{max-width:980px;margin:0 auto;padding:3rem 2rem 1rem;display:grid;gap:1.4rem}
.protocol{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;padding:1.8rem;border-radius:32px;border:3px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.07)}
.protocol .round{width:64px;height:64px;margin:0;background:#fff;box-shadow:0 4px 0 rgba(41,51,69,.1)}
.protocol h2{font-size:1.4rem;margin:0 0 .5rem}
.protocol p{margin:0 0 1rem;color:var(--ink);line-height:1.65}
.protocol-0{background:#fdd9d3}.protocol-0 .round{color:#e26f61}
.protocol-1{background:#dceff5}.protocol-1 .round{color:#3b8f98}
.protocol-2{background:#fef0cf}.protocol-2 .round{color:#b98a2c}
.doc-buttons{display:flex;flex-wrap:wrap;gap:.7rem}
.doc-buttons .btn{background:#fff}
.btn.is-disabled{opacity:.6;cursor:not-allowed;box-shadow:none;pointer-events:none}

.safety-message{max-width:900px;margin:0 auto;padding:2rem 2rem 3.5rem;text-align:center}
.key-message{display:inline-flex;align-items:flex-start;gap:.7rem;text-align:left;margin:0 0 2rem;padding:1rem 1.4rem;border-radius:22px;background:#e4f0c8;color:var(--navy);font-weight:700}
.key-message .bi{color:#5b8f2a;font-size:1.3rem;margin-top:.1rem}
.safety-quote{position:relative;margin:0 auto 2rem;padding:3.6rem 2.2rem 2rem;border-radius:32px;background:var(--navy);color:#fff;box-shadow:0 10px 0 rgba(41,51,69,.15)}
.safety-quote .bi-quote{position:absolute;top:.4rem;left:1.4rem;font-size:4.5rem;line-height:1;color:var(--sun)}
.safety-quote p{margin:0;font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.6rem);line-height:1.4}
.safety-contact h3{margin:0 0 .6rem}
.safety-contact ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.8rem;color:var(--navy);font-weight:700}
.safety-contact li{display:flex;align-items:center;gap:.5rem}
.safety-contact .ico{color:var(--blue)}
@media (max-width:640px){.protocol{grid-template-columns:1fr}.protocols{padding-left:1.2rem;padding-right:1.2rem}}

/* =====================  Nuestra comunidad  ===================== */
.community-intro{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1080px;margin:0 auto;padding:3rem 2rem 2rem}
.community-photo{border-radius:32px;overflow:hidden;border:6px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.08),0 16px 30px rgba(41,51,69,.1);transform:rotate(-1.5deg);aspect-ratio:4/3}
.community-photo img,.community-photo .ph{width:100%;height:100%;object-fit:cover}
.community-intro-body .round{background:#dceff5;color:#3b8f98}
.community-intro-body p,.inclusive-text p{color:var(--muted);line-height:1.75}
.involvement{max-width:1100px;margin:0 auto;padding:2rem 2rem 1rem}
.involvement-intro{color:var(--muted);margin:.4rem 0 0}
.activity-grid{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.activity{display:flex;align-items:center;gap:.9rem;padding:.9rem 1.1rem;background:#fff;border:3px solid #e3ebed;border-radius:24px;box-shadow:0 5px 0 rgba(41,51,69,.06);font-weight:700;font-size:.92rem;color:var(--navy);line-height:1.35;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.activity:hover{transform:translateY(-4px) rotate(-.8deg)}
.activity .round{width:46px;height:46px;margin:0;flex:none}
.activity .round .ico{font-size:22px}
.activity-0{border-color:#fbc2b9}.activity-0 .round{background:#fdd9d3;color:#e26f61}
.activity-1{border-color:#fedc92}.activity-1 .round{background:#fef0cf;color:#b98a2c}
.activity-2{border-color:#d0e6a5}.activity-2 .round{background:#e4f0c8;color:#5b8f2a}
.activity-3{border-color:#b9e0e5}.activity-3 .round{background:#dceff5;color:#3b8f98}
.activity-4{border-color:#e0c7d8}.activity-4 .round{background:#f3e3ec;color:#8a4f76}
.involvement-outro{display:flex;justify-content:center;align-items:center;gap:.6rem;margin:1.6rem auto 0;max-width:46em;text-align:center;color:var(--navy);font-weight:700}
.involvement-outro .bi{color:var(--blue);font-size:1.2rem}
.inclusive{max-width:900px;margin:0 auto;padding:3rem 2rem 1rem;text-align:center}
.inclusive .safety-quote{margin-top:2rem}
.community-docs{max-width:900px;margin:0 auto;padding:2rem 2rem 4rem;text-align:center}
.docs-updated{margin:0 0 1.2rem;color:var(--muted);font-size:.9rem}
.doc-buttons-center{justify-content:center}
@media (max-width:1180px){.community-intro{grid-template-columns:1fr;gap:2rem}.activity-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.activity-grid{grid-template-columns:1fr}}

/* =====================  Calendario interactivo  ===================== */
.cal-section{max-width:1180px;margin:0 auto;padding:3rem 1.5rem 1rem}
.cal-head{text-align:center;margin-bottom:1.6rem}
.cal-head p{max-width:40em;margin:.4rem auto 0;color:var(--muted)}
.cal{scroll-margin-top:110px}
.cal-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-bottom:1.4rem}
.cal-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem 1rem;border-radius:999px;border:2.5px solid var(--c);background:#fff;color:var(--navy);font:800 .85rem var(--sans);cursor:pointer;box-shadow:0 3px 0 rgba(41,51,69,.1);transition:transform .15s,background .15s,opacity .15s}
.cal-chip .dot{width:.8rem;height:.8rem;border-radius:50%;background:var(--c)}
.cal-chip:not(.is-on){opacity:.55;background:#f3f5f6}
.cal-chip:not(.is-on) .dot{background:transparent;border:2px solid var(--c)}
.cal-chip:hover{transform:translateY(-2px)}
.cal-layout{display:grid;grid-template-columns:1fr 340px;gap:1.4rem;align-items:start}
.cal-main{background:#fff;border:3px solid #e3ebed;border-radius:30px;padding:1.2rem;box-shadow:0 8px 0 rgba(41,51,69,.06)}
.cal-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.cal-title{flex:1;margin:0;text-align:center;font-size:1.4rem}
.cal-nav{width:42px;height:42px;border-radius:50%;border:2.5px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer;display:grid;place-items:center;box-shadow:0 3px 0 var(--navy);transition:transform .15s}
.cal-nav:hover{transform:translateY(-2px);background:var(--sun)}
.cal-nav:active{transform:translateY(2px);box-shadow:0 1px 0 var(--navy)}
.cal-today{white-space:nowrap}
.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}
.cal-weekdays span{text-align:center;font-weight:800;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);padding:.3rem 0}
.cal-cell{position:relative;min-height:88px;padding:.4rem .45rem;border-radius:16px;border:2px solid #edf1f3;background:#fafbfb;text-align:left;font:inherit;color:var(--navy);cursor:pointer;display:flex;flex-direction:column;gap:.25rem;transition:transform .15s,border-color .15s,background .15s}
.cal-cell.is-empty{background:transparent;border-color:transparent;cursor:default}
.cal-cell:not(.is-empty):hover{transform:translateY(-2px);border-color:var(--teal);background:#fff}
.cal-num{font-weight:800;font-size:.95rem}
.cal-cell.is-today .cal-num{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--navy);color:#fff}
.cal-cell.is-selected{border-color:var(--navy);background:#fff;box-shadow:0 4px 0 rgba(41,51,69,.12)}
.cal-dots{display:flex;gap:3px}
.cal-dots i{width:8px;height:8px;border-radius:50%}
.cal-mini{margin-top:auto;font-size:.68rem;font-weight:800;line-height:1.2;color:#fff;background:var(--c);border-radius:8px;padding:.2rem .35rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cal-side{display:grid;gap:1rem}
.cal-panel{background:#fff;border:3px solid #e3ebed;border-radius:26px;padding:1.1rem 1.2rem;box-shadow:0 6px 0 rgba(41,51,69,.06)}
.cal-panel h3{margin:0 0 .6rem;font-size:1.05rem}
.cal-day{background:#fef0cf;border-color:#fff}
.cal-events{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.cal-ev{position:relative;padding:.6rem .8rem .6rem 1rem;border-radius:16px;background:#fff;border-left:6px solid var(--c);box-shadow:0 3px 0 rgba(41,51,69,.06);display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem}
.cal-ev strong{font-size:.92rem;color:var(--navy)}
.cal-ev-date{font-size:.78rem;color:var(--muted);font-weight:700}
.cal-ev p{flex-basis:100%;margin:0;font-size:.85rem;color:var(--muted)}
.cal-tag{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.7rem;font-weight:800;color:#fff;background:var(--c)}
.cal-empty{color:var(--muted);font-size:.9rem}
.cal-ics{justify-self:start}
.cal-note{display:flex;gap:.6rem;justify-content:center;align-items:flex-start;max-width:46em;margin:1.4rem auto 0;text-align:center;color:var(--muted);font-size:.9rem}
.cal-note .bi{color:var(--blue);margin-top:.15rem}
.cal-pdf{text-align:center;margin:.6rem 0 0}
@media (max-width:1000px){.cal-layout{grid-template-columns:1fr}}
@media (max-width:640px){
  .cal-section{padding-left:.6rem;padding-right:.6rem}
  .cal-main{padding:.7rem}
  .cal-cell{min-height:56px;padding:.3rem}
  .cal-mini{display:none}
  .cal-title{font-size:1.1rem}
  .cal-weekdays span{font-size:.62rem;letter-spacing:0}
}

/* Menú móvil: deja libre el espacio que ocupa el logo que sobresale de la barra */
@media (max-width:1180px){
  .nav{padding-top:calc(var(--logo) - var(--h) + 1.6rem);border-radius:0 0 28px 28px}
  .nav.open{gap:1.1rem}
}

/* Heroes en pantallas pequeñas: el contenido empieza debajo del logo que sobresale del header */
:root{--hdr-h:112px}
@media (max-width:1180px){
  :root{--hdr-h:68px;--hdr-clear:117px}
  .hero,.page-hero{margin-top:calc(var(--hdr-h) * -1)}
  .hero,.page-hero{padding-top:calc(var(--hdr-clear) + 1.6rem)}
}

/* =====================  Organigrama  ===================== */
.about-org{max-width:960px;margin:0 auto;padding:1rem 2rem 4rem;text-align:center}
.org{position:relative;margin-top:2rem;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,64px);row-gap:48px;text-align:center}
.org-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.org-lines path{fill:none;stroke:var(--navy);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.org-node{position:relative;z-index:1;justify-self:center;width:84%;display:grid;place-items:center;padding:.4rem .8rem;border:3px solid #fff;border-radius:20px;box-shadow:0 5px 0 rgba(41,51,69,.16);font-family:var(--serif);font-weight:600;font-size:1.05rem;line-height:1.2;color:var(--navy);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.org-node:hover{transform:translateY(-4px) rotate(-1deg)}
.org-l1{grid-row:1;grid-column:2}
.org-l2{grid-row:2}.org-l3{grid-row:3}.org-l4{grid-row:4}
.org-a{grid-column:1}.org-b{grid-column:2}.org-c{grid-column:3}
.org-l1.org-blue{font-size:1.25rem}
.org-blue{background:#82c0d5}
.org-coral{background:#f9897b}
.org-lime{background:#d0e6a5}
.org-plum{background:#a5678e;color:#fff}

/* Móvil: lista jerárquica vertical (sin conectores) */
@media (max-width:700px){
  .org{grid-template-columns:1fr;grid-template-rows:none;row-gap:.8rem;text-align:left;padding-left:0}
  .org-lines{display:none}
  .org-node{width:auto;justify-self:stretch;place-items:center start;padding:.75rem 1rem;min-height:56px}
  .org-l1,.org-l2,.org-l3,.org-l4{grid-row:auto;grid-column:1}
  .org-l2{margin-left:1rem}.org-l3{margin-left:2rem}.org-l4{margin-left:2rem}
  .org-l2::before,.org-l3::before,.org-l4::before{content:"";position:absolute;left:-.8rem;top:50%;width:.8rem;border-top:2.5px solid var(--navy)}
}

/* =====================  Botón flotante de WhatsApp  ===================== */
.wa-float{position:fixed;right:1.2rem;bottom:1.2rem;z-index:90;display:flex;align-items:center;gap:.6rem;height:58px;padding:0 1rem 0 .4rem;border-radius:999px;background:#25d366;color:#fff;font-weight:800;font-size:.9rem;box-shadow:0 5px 0 #128c4a,0 12px 24px rgba(0,0,0,.2);transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .2s}
.wa-float .bi{order:-1;display:grid;place-items:center;width:46px;height:46px;font-size:1.9rem;line-height:1}
.wa-float .wa-label{white-space:nowrap;max-width:0;overflow:hidden;opacity:0;transition:max-width .3s ease,opacity .2s ease}
.wa-float:hover,.wa-float:focus-visible{transform:translateY(-3px) rotate(-2deg);box-shadow:0 8px 0 #128c4a,0 16px 28px rgba(0,0,0,.22)}
.wa-float:hover .wa-label,.wa-float:focus-visible .wa-label{max-width:14em;opacity:1}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:inherit;border:3px solid #25d366;animation:wa-pulse 2.4s ease-out infinite;pointer-events:none}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.35,1.5);opacity:0}}
@media (max-width:640px){.wa-float{right:.8rem;bottom:.8rem;padding:0 .3rem 0 .3rem;height:54px}.wa-float .bi{width:46px;height:46px}}
@media (prefers-reduced-motion:reduce){.wa-float::before{animation:none;display:none}}

/* Accesibilidad: enlace para saltar al contenido */
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:200;padding:.7rem 1.1rem;background:var(--navy);color:#fff;border-radius:12px;font-weight:800;transition:top .2s}
.skip-link:focus{top:1rem}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* =====================  Rincón de padres  ===================== */
.parent-resources{max-width:1100px;margin:0 auto;padding:3rem 2rem 1rem;text-align:center;scroll-margin-top:110px}
.pres-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.8rem;text-align:left}
.pres{display:flex;flex-direction:column;padding:1.5rem;border-radius:28px;border:3px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.07);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.pres:hover{transform:translateY(-5px) rotate(-.6deg)}
.pres h3{margin:0 0 .4rem;font-size:1.1rem}
.pres p{margin:0 0 1rem;color:var(--ink);font-size:.92rem;line-height:1.6}
.pres .doc-buttons{margin-top:auto}
.pres .round{background:#fff;box-shadow:0 4px 0 rgba(41,51,69,.1)}
.pres-0{background:#fdd9d3}.pres-0 .round{color:#e26f61}
.pres-1{background:#dceff5}.pres-1 .round{color:#3b8f98}
.pres-2{background:#fef0cf}.pres-2 .round{color:#b98a2c}
.pres-3{background:#e4f0c8}.pres-3 .round{color:#5b8f2a}
.pres-4{background:#f3e3ec}.pres-4 .round{color:#8a4f76}
.parent-form{max-width:900px;margin:0 auto;padding:3rem 2rem 1rem;scroll-margin-top:110px}
.form-frame{background:#fff;border:3px solid #e3ebed;border-radius:30px;box-shadow:0 8px 0 rgba(41,51,69,.06);overflow:hidden}
.form-frame iframe{display:block;width:100%;height:1100px;border:0}
.form-open{text-align:center;margin:1rem 0 0}
.parents-quote-wrap{max-width:900px;margin:0 auto;padding:2rem 2rem 1rem}
.parents-quote-wrap .safety-quote{margin:0}
.visit-us{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:stretch;max-width:1180px;margin:0 auto;padding:3rem 2rem 3.5rem;scroll-margin-top:110px}
.visit-info p{color:var(--muted);line-height:1.7}
.visit-list{list-style:none;margin:1.2rem 0 1.6rem;padding:0;display:grid;gap:.9rem}
.visit-list li{display:flex;gap:.9rem;align-items:flex-start}
.visit-list .ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#dceff5;color:#3b8f98;font-size:1.15rem;vertical-align:0}
.visit-list strong{display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.visit-list span,.visit-list a{color:var(--navy);font-weight:700}
.visit-map{min-height:380px;border-radius:32px;overflow:hidden;border:6px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.08),0 16px 30px rgba(41,51,69,.1)}
.visit-map iframe{width:100%;height:100%;min-height:380px;border:0;display:block}
@media (max-width:1000px){.pres-grid{grid-template-columns:1fr 1fr}.visit-us{grid-template-columns:1fr}}
@media (max-width:640px){.pres-grid{grid-template-columns:1fr}.parent-resources,.parent-form,.visit-us,.parents-quote-wrap{padding-left:1.2rem;padding-right:1.2rem}.form-frame iframe{height:900px}}

/* =====================  Rincón de padres v2  ===================== */
.quick-facts{max-width:1180px;margin:-1.5rem auto 0;padding:0 2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative;z-index:2}
.qf{padding:1.3rem 1.2rem;background:#fff;border:3px solid #e3ebed;border-radius:26px;box-shadow:0 7px 0 rgba(41,51,69,.07);text-align:left;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.qf:hover{transform:translateY(-5px) rotate(-.6deg)}
.qf h2{margin:.5rem 0 .2rem;font-size:.75rem;font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.qf strong{display:block;font-family:var(--serif);font-size:1.12rem;line-height:1.25;color:var(--navy)}
.qf p{margin:.4rem 0 0;font-size:.85rem;color:var(--muted);line-height:1.5}
.qf .round{width:48px;height:48px;margin:0}
.qf-0{border-color:#fedc92}.qf-0 .round{background:#fef0cf;color:#b98a2c}
.qf-1{border-color:#b9e0e5}.qf-1 .round{background:#dceff5;color:#3b8f98}
.qf-2{border-color:#fbc2b9}.qf-2 .round{background:#fdd9d3;color:#e26f61}
.qf-3{border-color:#d0e6a5}.qf-3 .round{background:#e4f0c8;color:#5b8f2a}

.day-flow{max-width:900px;margin:0 auto;padding:4rem 2rem 1rem}
.timeline{list-style:none;margin:2rem 0 0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:29px;top:12px;bottom:12px;width:0;border-left:4px dotted #b9e0e5}
.tl{position:relative;display:grid;grid-template-columns:62px 1fr;gap:1rem;margin-bottom:1.2rem;align-items:start}
.tl-dot{position:relative;z-index:1;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:4px solid #fff;font-size:1.5rem;box-shadow:0 5px 0 rgba(41,51,69,.12)}
.tl-card{padding:1rem 1.3rem;background:#fff;border:3px solid #e3ebed;border-radius:24px;box-shadow:0 5px 0 rgba(41,51,69,.06)}
.tl-card h3{margin:.1rem 0 .3rem;font-size:1.1rem}
.tl-card p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.6}
.tl-time{display:inline-block;padding:.15rem .7rem;border-radius:999px;font-size:.78rem;font-weight:800;color:var(--navy)}
.tl-0 .tl-dot,.tl-0 .tl-time{background:#fef0cf;color:#b98a2c}
.tl-1 .tl-dot,.tl-1 .tl-time{background:#dceff5;color:#3b8f98}
.tl-2 .tl-dot,.tl-2 .tl-time{background:#fdd9d3;color:#e26f61}
.tl-3 .tl-dot,.tl-3 .tl-time{background:#f3e3ec;color:#8a4f76}
.tl-4 .tl-dot,.tl-4 .tl-time{background:#e4f0c8;color:#5b8f2a}

.faq{max-width:900px;margin:0 auto;padding:3rem 2rem 1rem;scroll-margin-top:110px}
.faq-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:0 0 1.6rem}
.faq-tabs .cal-chip:not(.is-on){opacity:.65}
.faq-list{display:grid;gap:.8rem}
.faq-item{background:#fff;border:3px solid #e3ebed;border-radius:22px;box-shadow:0 4px 0 rgba(41,51,69,.06);overflow:hidden;transition:border-color .2s}
.faq-item[hidden]{display:none}
.faq-item[open]{border-color:var(--teal)}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.3rem;cursor:pointer;list-style:none;font-weight:800;color:var(--navy)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .bi{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#dceff5;color:#3b8f98;transition:transform .25s,background .2s}
.faq-item[open] summary .bi{transform:rotate(45deg);background:var(--sun);color:var(--navy)}
.faq-item p{margin:0;padding:0 1.3rem 1.2rem;color:var(--muted);line-height:1.7;font-size:.96rem}
.faq-schedule{border-left:8px solid #e0a92b}.faq-health{border-left:8px solid #f9897b}.faq-meals{border-left:8px solid #51aab3}.faq-pickup{border-left:8px solid #a5678e}.faq-daily{border-left:8px solid #7aa93b}
.faq-more{text-align:center;margin:1.4rem 0 0;color:var(--muted)}

.bring{max-width:900px;margin:0 auto;padding:3rem 2rem 1rem}
.bring-card{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;padding:2rem;background:#e4f0c8;border:3px solid #fff;border-radius:34px;box-shadow:0 9px 0 rgba(41,51,69,.08)}
.bring-head p{color:var(--ink);margin:.4rem 0 0}
.bring-bar{height:14px;margin:1.2rem 0 .5rem;background:#fff;border-radius:999px;overflow:hidden;box-shadow:inset 0 2px 0 rgba(41,51,69,.08)}
.bring-bar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--coral),var(--sun),var(--mint));transition:width .4s cubic-bezier(.3,1.4,.5,1)}
.bring-count{font-weight:800;color:var(--navy)!important;margin:0!important}
.bring.is-complete .bring-count::after{content:" 🎉"}
.bring-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.bring-list label{display:flex;gap:.8rem;align-items:flex-start;padding:.7rem .9rem;background:#fff;border-radius:16px;cursor:pointer;font-size:.92rem;line-height:1.45;color:var(--navy);box-shadow:0 3px 0 rgba(41,51,69,.07);transition:transform .15s}
.bring-list label:hover{transform:translateX(3px)}
.bring-list input{position:absolute;opacity:0;pointer-events:none}
.bring-list .box{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:9px;border:2.5px solid var(--navy);background:#fff;color:transparent;font-size:1rem;transition:background .15s,color .15s,transform .2s}
.bring-list input:checked+.box{background:var(--mint);color:var(--navy);transform:rotate(-6deg) scale(1.08)}
.bring-list input:checked~span:last-child{text-decoration:line-through;opacity:.6}
.bring-list input:focus-visible+.box{outline:3px solid var(--blue);outline-offset:2px}

@media (max-width:1000px){.quick-facts{grid-template-columns:1fr 1fr}.bring-card{grid-template-columns:1fr}}
@media (max-width:560px){.quick-facts{grid-template-columns:1fr;padding:0 1.2rem}.day-flow,.faq,.bring{padding-left:1.2rem;padding-right:1.2rem}.tl{grid-template-columns:50px 1fr}.tl-dot{width:48px;height:48px;font-size:1.2rem}.timeline::before{left:24px}}
@media (prefers-reduced-motion:reduce){.bring-bar span{transition:none}}

/* Preguntas frecuentes en 2 columnas */
.faq{max-width:1100px}
.faq-list{grid-template-columns:repeat(2,1fr);align-items:start;gap:.9rem 1.2rem}
@media (max-width:820px){.faq-list{grid-template-columns:1fr}}

/* Línea de tiempo: el conector va de un punto al siguiente y termina en el último punto */
.timeline::before{display:none}
.tl:not(:last-child)::before{content:"";position:absolute;left:29px;top:58px;bottom:-1.2rem;border-left:4px dotted #b9e0e5}
@media (max-width:560px){.tl:not(:last-child)::before{left:24px;top:48px}}

/* =====================  After School  ===================== */
.afterschool{max-width:1180px;margin:0 auto;padding:4rem 1.5rem 1rem;scroll-margin-top:110px}
.as-head{text-align:center;margin-bottom:2rem}
.as-head p{max-width:38em;margin:.4rem auto 0;color:var(--muted)}
.as-badge{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.8rem;padding:.4rem 1.1rem;border-radius:999px;background:var(--coral);color:#fff;font-weight:800;font-size:.9rem;box-shadow:0 4px 0 rgba(41,51,69,.2);transform:rotate(-2deg);animation:wiggle 2.8s ease-in-out infinite}
.as-head .eyebrow{display:flex;justify-content:center}
.as-days{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem}
.as-day{display:flex;flex-direction:column;gap:.8rem;padding:1rem;border-radius:26px;border:3px solid #fff;box-shadow:0 7px 0 rgba(41,51,69,.07);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.as-day:hover{transform:translateY(-6px) rotate(-.8deg)}
.as-day h3{margin:0;padding:.35rem .8rem;border-radius:999px;background:#fff;text-align:center;font-size:1rem;box-shadow:0 3px 0 rgba(41,51,69,.08)}
.as-slot{display:flex;flex-direction:column;gap:.35rem;padding:.7rem .8rem;background:#fff;border-radius:18px;font-size:.88rem;line-height:1.35}
.as-time{display:flex;align-items:center;gap:.4rem;font-weight:800;color:var(--navy)}
.as-act{display:flex;align-items:flex-start;gap:.5rem;color:var(--ink);font-weight:700}
.as-act .bi{flex:none;font-size:1.25rem;margin-top:-.1rem}
.as-day-0{background:#dceff5}.as-day-0 h3,.as-day-0 .as-time .bi,.as-day-0 .as-act .bi{color:#2b6f9a}
.as-day-1{background:#e4f0c8}.as-day-1 h3,.as-day-1 .as-time .bi,.as-day-1 .as-act .bi{color:#4f7f24}
.as-day-2{background:#f3e3ec}.as-day-2 h3,.as-day-2 .as-time .bi,.as-day-2 .as-act .bi{color:#8a4f76}
.as-day-3{background:#fef0cf}.as-day-3 h3,.as-day-3 .as-time .bi,.as-day-3 .as-act .bi{color:#b0801c}
.as-day-4{background:#fdd9d3}.as-day-4 h3,.as-day-4 .as-time .bi,.as-day-4 .as-act .bi{color:#d24f63}
.as-price{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.8rem 1.4rem;margin-top:1.6rem;padding:1.2rem 1.6rem;background:var(--navy);color:#fff;border-radius:999px;box-shadow:0 8px 0 rgba(41,51,69,.18)}
.as-price>.bi{font-size:2rem;color:var(--sun)}
.as-price p{margin:0;font-family:var(--serif);font-size:1.1rem;max-width:30em;text-align:center}
.as-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.as-price .btn-light{color:var(--navy)}

/* Franja del inicio */
.as-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1.4rem;max-width:1100px;margin:1.2rem auto 0;padding:1rem 1.6rem;background:linear-gradient(100deg,#f3e3ec,#fef0cf 50%,#dceff5);border:3px solid #fff;border-radius:999px;box-shadow:0 7px 0 rgba(41,51,69,.08);color:var(--navy);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.as-banner:hover{transform:translateY(-4px) rotate(-.4deg)}
.as-banner-badge{padding:.3rem .9rem;border-radius:999px;background:var(--coral);color:#fff;font-weight:800;font-size:.85rem;white-space:nowrap}
.as-banner-text{font-size:1rem;text-align:center}
.as-banner-text strong{font-family:var(--serif);font-size:1.15rem}
.as-banner-cta{display:inline-flex;align-items:center;gap:.4rem;font-weight:800;padding:.4rem 1rem;border-radius:999px;background:var(--navy);color:#fff}

@media (max-width:1000px){.as-days{grid-template-columns:repeat(2,1fr)}.as-day-4{grid-column:1/-1}}
@media (max-width:560px){.as-days{grid-template-columns:1fr}.as-price{border-radius:32px;flex-direction:column;text-align:center}.as-banner{border-radius:32px;margin:1rem 1rem 0}}
@media (prefers-reduced-motion:reduce){.as-badge{animation:none}}
/* After School: columnas del mismo ancho */
.as-days{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1000px){.as-days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.as-days{grid-template-columns:minmax(0,1fr)}}

/* =====================  Summer Camp  ===================== */
.summer-hero{background:radial-gradient(circle at 12% 30%,rgba(254,220,146,.6) 0 11%,transparent 11.5%),radial-gradient(circle at 90% 65%,rgba(249,137,123,.28) 0 10%,transparent 10.5%),linear-gradient(180deg,#fff3d1,var(--cream))}
.summer-actions{justify-content:center}
.summer-banner{background:linear-gradient(100deg,#fef0cf,#fdd9d3 55%,#dceff5)}
.summer-banner .as-banner-badge{background:#e0a92b}
.summer-intro{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1080px;margin:0 auto;padding:3rem 2rem 1rem}
.summer-photo{position:relative;border-radius:32px;overflow:hidden;border:6px solid #fff;box-shadow:0 8px 0 rgba(41,51,69,.08),0 16px 30px rgba(41,51,69,.1);transform:rotate(1.5deg);aspect-ratio:4/3}
.summer-photo img,.summer-photo .ph{width:100%;height:100%;object-fit:cover}
.summer-sun{position:absolute;top:.6rem;right:.8rem;font-size:2.4rem;color:var(--sun);filter:drop-shadow(0 2px 0 rgba(0,0,0,.2));animation:twinkle 3s ease-in-out infinite}
.summer-intro-body p{color:var(--muted);line-height:1.75}
.summer-why,.summer-plan,.summer-steps{max-width:1100px;margin:0 auto;padding:3rem 2rem 1rem;text-align:center}
.summer-grid{grid-template-columns:repeat(4,1fr)}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;margin-top:1.6rem;text-align:left}
.plan-col{padding:1.4rem 1.6rem;background:#fff;border:3px solid #fedc92;border-radius:28px;box-shadow:0 7px 0 rgba(41,51,69,.07)}
.plan-col h3{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem}
.plan-col h3 .bi{color:#b98a2c}
.plan-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.plan-col li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .9rem;background:#fef0cf;border-radius:14px;font-size:.95rem}
.plan-empty{display:flex;flex-direction:column;align-items:center;gap:.8rem;max-width:640px;margin:1.4rem auto 0;padding:1.6rem;background:#fef0cf;border:3px dashed #e0a92b;border-radius:30px}
.plan-empty .bi-sun{font-size:2.4rem;color:#e0a92b}
.plan-empty p{margin:0;color:var(--ink);line-height:1.65}
.steps{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:left;counter-reset:s}
.step{padding:1.3rem 1.2rem;border-radius:26px;border:3px solid #fff;box-shadow:0 7px 0 rgba(41,51,69,.07)}
.step h3{margin:.6rem 0 .3rem;font-size:1.05rem}
.step p{margin:0;font-size:.9rem;color:var(--ink);line-height:1.55}
.step-n{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--navy);box-shadow:0 4px 0 rgba(41,51,69,.12)}
.step-0{background:#fdd9d3}.step-1{background:#fef0cf}.step-2{background:#dceff5}.step-3{background:#e4f0c8}
.summer-faq .faq-list{grid-template-columns:1fr}
.summer-cta{max-width:900px;margin:3rem auto 0;padding:2.6rem 2rem;text-align:center;background:var(--navy);color:#fff;border-radius:40px 40px 0 0}
.summer-cta h2{color:#fff}
.summer-cta p{color:#c9d3e0}
@media (max-width:1000px){.summer-grid,.steps{grid-template-columns:1fr 1fr}.summer-intro{grid-template-columns:1fr;gap:2rem}}
@media (max-width:560px){.summer-grid,.steps{grid-template-columns:1fr}.summer-why,.summer-plan,.summer-steps,.summer-intro{padding-left:1.2rem;padding-right:1.2rem}}

/* Menú de escritorio más compacto: caben 7 enlaces + idioma + botón desde 1181 px */
@media (min-width:1181px){
  .site-header{gap:1.2rem;padding-right:1.5rem}
  .nav{gap:1.05rem;letter-spacing:.04em}
  .nav .btn{padding:.8rem 1.1rem}
  .lang-switch{padding:.3rem .8rem .3rem .35rem}
}
@media (min-width:1181px) and (max-width:1330px){
  .nav{gap:.8rem;font-size:.66rem}
  .nav .btn{font-size:.66rem;padding:.75rem .95rem}
  .lang-switch .lang-text{font-size:.78rem}
}

/* Corrige desbordamiento horizontal entre 1181 y 1260 px (aspect-ratio + min-height del hero) */
@media (min-width:1181px) and (max-width:1260px){
  .hero{aspect-ratio:auto;min-height:560px}
  .nav{gap:.6rem}
  .nav .btn{padding:.7rem .85rem}
  .site-header{padding-right:1rem}
}

/* Summer Camp: semanas */
.summer-weeks{max-width:1180px;margin:0 auto;padding:4rem 1.5rem 1rem;scroll-margin-top:110px}
.summer-weeks .curr-head p{max-width:40em;margin:.4rem auto 0;color:var(--muted)}
.week-tabs{display:flex;gap:.6rem;overflow-x:auto;padding:.4rem .2rem 1rem;margin-bottom:.4rem;scroll-snap-type:x proximity;scrollbar-width:thin}
.week-tab{flex:none;display:grid;grid-template-columns:auto 1fr;column-gap:.6rem;align-items:center;min-width:150px;padding:.6rem .9rem;border-radius:20px;border:3px solid var(--wc,#e3ebed);background:#fff;color:var(--navy);text-align:left;cursor:pointer;font:inherit;box-shadow:0 4px 0 rgba(41,51,69,.08);scroll-snap-align:center;transition:transform .15s,background .15s,box-shadow .15s}
.week-tab .bi{grid-row:1/3;font-size:1.5rem;color:var(--wc)}
.week-tab .wk-n{font-weight:800;font-size:.85rem}
.week-tab .wk-d{font-size:.72rem;color:var(--muted);font-weight:700}
.week-tab:hover{transform:translateY(-3px)}
.week-tab.is-on{background:var(--wc);color:#fff;box-shadow:0 6px 0 rgba(41,51,69,.2);transform:translateY(-2px)}
.week-tab.is-on .bi,.week-tab.is-on .wk-d{color:#fff}
.week-tab:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.wk-0{--wc:#e0925a;--wt:#fdd9d3}.wk-1{--wc:#4aa3ac;--wt:#dceff5}.wk-2{--wc:#7aa93b;--wt:#e4f0c8}.wk-3{--wc:#a5678e;--wt:#f3e3ec}.wk-4{--wc:#d9a23a;--wt:#fef0cf}
.week-panel{padding:1.4rem;border-radius:32px;background:var(--wt);border:3px solid #fff;box-shadow:0 9px 0 rgba(41,51,69,.08)}
.week-panel[hidden]{display:none}
.week-head{display:flex;gap:1rem;align-items:center;margin-bottom:1.2rem}
.week-head .round{background:#fff;color:var(--wc);box-shadow:0 4px 0 rgba(41,51,69,.1);flex:none;margin:0}
.week-head h3{margin:.1rem 0 .2rem;font-size:1.5rem}
.week-head p{margin:0;color:var(--ink);font-size:.95rem}
.week-dates{display:inline-block;padding:.15rem .8rem;border-radius:999px;background:var(--wc);color:#fff;font-size:.78rem;font-weight:800}
.week-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}
.wd{display:flex;flex-direction:column;gap:.6rem;padding:.9rem;background:#fff;border-radius:22px;box-shadow:0 4px 0 rgba(41,51,69,.08)}
.wd h4{margin:0;font-family:var(--serif);font-size:1.05rem;color:var(--navy);display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.wd-slot{padding:.6rem .7rem;border-radius:14px;background:#f6f8f9}
.wd-label{display:flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--wc)}
.wd-slot p{margin:.25rem 0 0;font-size:.84rem;line-height:1.45;color:var(--ink)}
.wd.has-trip{outline:3px dashed var(--wc);outline-offset:-3px}
.trip-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .55rem;border-radius:999px;background:var(--wc);color:#fff;font-family:var(--sans);font-size:.66rem;font-weight:800}
.week-note{display:flex;gap:.6rem;justify-content:center;align-items:flex-start;max-width:44em;margin:1.4rem auto 0;text-align:center;color:var(--muted);font-size:.92rem}
.week-note .bi{color:var(--blue);margin-top:.15rem}
@media (max-width:1100px){.week-days{grid-template-columns:repeat(2,minmax(0,1fr))}.wd:last-child{grid-column:1/-1}}
@media (max-width:560px){.week-days{grid-template-columns:minmax(0,1fr)}.week-head{align-items:flex-start}.summer-weeks{padding-left:.8rem;padding-right:.8rem}}

/* =====================  Comunicaciones  ===================== */
.board{max-width:1100px;margin:0 auto;padding:3.5rem 1.5rem 1rem;scroll-margin-top:110px}
.board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;align-items:start}
.ann{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.3rem 1.4rem;background:#fff;border:3px solid #e3ebed;border-left:10px solid var(--c);border-radius:26px;box-shadow:0 6px 0 rgba(41,51,69,.07);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.ann[hidden]{display:none}
.ann:hover{transform:translateY(-4px) rotate(-.4deg)}
.ann.is-pinned{background:linear-gradient(135deg,#fff,#fff8e6)}
.ann header{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}
.ann-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--c);color:#fff;font-size:1.1rem}
.ann-tag{padding:.12rem .7rem;border-radius:999px;background:#f3f6f7;color:var(--navy);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.ann-pin{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;color:#c0553f;font-size:.78rem;font-weight:800}
.ann h3{margin:.3rem 0 0;font-size:1.15rem;line-height:1.25}
.ann time{font-size:.8rem;font-weight:700;color:var(--muted)}
.ann p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.6}
.ann .link{margin-top:.3rem}
.board-empty{text-align:center;margin:1.2rem 0 0;color:var(--muted)}
.channels{max-width:1100px;margin:0 auto;padding:3rem 1.5rem 1rem;text-align:center}
.channels .pres-grid{text-align:left}
.ch-sub{font-weight:800;color:var(--navy)!important;font-size:.95rem!important;margin:-.4rem 0 .9rem!important;word-break:break-word}
.meeting{max-width:1000px;margin:3rem auto 0;padding:1.8rem 2rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2rem;background:var(--navy);color:#fff;border-radius:36px;box-shadow:0 9px 0 rgba(41,51,69,.2)}
.meeting-body{display:flex;gap:1.2rem;align-items:flex-start;flex:1 1 420px}
.meeting-body .round{flex:none;margin:0;background:var(--sun);color:var(--navy)}
.meeting h2{color:#fff;font-size:1.5rem;margin:0 0 .4rem}
.meeting p{margin:0;color:#c9d3e0;line-height:1.65}
.meeting .actions{margin:0}
.concern{max-width:1000px;margin:1.6rem auto 0;padding:1.2rem 1.6rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;background:#f3e3ec;border:3px solid #fff;border-radius:30px;box-shadow:0 6px 0 rgba(41,51,69,.07)}
.concern>.bi{font-size:2rem;color:#8a4f76}
.concern div{flex:1 1 320px}
.concern h3{margin:0 0 .2rem}
.concern p{margin:0;color:var(--ink);font-size:.93rem;line-height:1.6}
@media (max-width:820px){.board-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.board,.channels{padding-left:.9rem;padding-right:.9rem}.meeting,.concern{margin-left:.9rem;margin-right:.9rem}}

/* =====================  Menú con submenús  ===================== */
.nav-item{position:relative;display:flex;align-items:center;gap:.15rem}
.nav-item>a{padding:.5rem 0;border-bottom:2px solid transparent}
.nav-item.is-active>a,.nav-item>a:hover{border-color:var(--blue)}
.sub-toggle{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--navy);cursor:pointer;font-size:.7rem;transition:transform .2s,background .2s}
.sub-toggle:hover{background:#dceff5}
.nav-item.open .sub-toggle{transform:rotate(180deg)}
.sub{list-style:none;margin:0;padding:.5rem;position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);min-width:210px;background:#fff;border:3px solid #dceff5;border-radius:22px;box-shadow:0 8px 0 rgba(41,51,69,.1),0 18px 30px rgba(41,51,69,.12);opacity:0;visibility:hidden;transition:opacity .18s,transform .18s,visibility .18s;z-index:60;text-transform:none;letter-spacing:0}
.sub::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.sub li a{display:block;padding:.6rem .9rem;border-radius:14px;border:0;font-size:.85rem;font-weight:800;white-space:nowrap;color:var(--navy)}
.sub li a:hover,.sub li a.active{background:#fef0cf;border:0}
.nav-item:hover>.sub,.nav-item.open>.sub,.nav-item:focus-within>.sub{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
@media (max-width:1180px){
  .nav-item{display:block}
  .nav-item>a{display:inline-block}
  .sub-toggle{display:none}
  .sub{position:static;transform:none;opacity:1;visibility:visible;min-width:0;margin:.4rem 0 0 .4rem;padding:0 0 0 .8rem;background:transparent;border:0;border-left:3px dotted #b9e0e5;border-radius:0;box-shadow:none}
  .sub::before{display:none}
  .nav-item:hover>.sub,.nav-item.open>.sub,.nav-item:focus-within>.sub{transform:none}
  .sub li a{padding:.45rem .4rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
}
@media (min-width:1181px){
  .nav{gap:1.6rem}
  .nav .btn{padding:.85rem 1.4rem}
}

/* Etiqueta "Inscripciones abiertas" que abre WhatsApp */
a.as-banner-badge,a.as-badge{text-decoration:none;color:#fff;transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .2s}
a.as-banner-badge:hover,a.as-badge:hover{transform:translateY(-3px) rotate(-2deg) scale(1.05);box-shadow:0 5px 0 rgba(41,51,69,.25)}
.as-banner-wa{background:#25d366!important;box-shadow:0 3px 0 #128c4a}
.as-banner-wa .bi{font-size:1rem}
a.as-badge{background:#25d366;box-shadow:0 4px 0 #128c4a;animation:none}
.as-banner:hover{transform:none}

/* =====================  Galería  ===================== */
.gallery{max-width:1180px;margin:0 auto;padding:4rem 1.5rem 1rem;scroll-margin-top:110px}
.gallery .curr-head p{max-width:40em;margin:.4rem auto 0;color:var(--muted)}
.gallery-grid{column-count:4;column-gap:.9rem;margin-top:.4rem}
.g-item{position:relative;display:block;width:100%;margin:0 0 .9rem;padding:0;border:4px solid #fff;border-radius:22px;overflow:hidden;background:#e8eef0;cursor:zoom-in;break-inside:avoid;box-shadow:0 6px 0 rgba(41,51,69,.08),0 10px 20px rgba(41,51,69,.08);transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .2s}
.g-item img{display:block;width:100%;height:auto}
.g-item:hover,.g-item:focus-visible{transform:translateY(-4px) rotate(-.8deg);box-shadow:0 10px 0 rgba(41,51,69,.1),0 16px 26px rgba(41,51,69,.14)}
.g-item:nth-child(3n):hover{transform:translateY(-4px) rotate(.8deg)}
.g-item:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.g-zoom{position:absolute;right:.5rem;bottom:.5rem;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);font-size:.9rem;opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s}
.g-item:hover .g-zoom,.g-item:focus-visible .g-zoom{opacity:1;transform:none}
.g-item[hidden]{display:none}
.gallery-more{text-align:center;margin-top:.6rem}
.gallery-more[hidden]{display:none}

.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;color:#fff}
.lightbox::backdrop{background:rgba(24,30,44,.92)}
.lightbox[open]{display:flex;align-items:center;justify-content:center;gap:.5rem}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:.7rem;max-width:min(92vw,1100px)}
.lightbox img{max-width:100%;max-height:78vh;width:auto;height:auto;border-radius:18px;border:5px solid #fff;box-shadow:0 12px 40px rgba(0,0,0,.5);background:#222}
.lightbox figcaption{font-weight:700;font-size:.95rem;text-align:center;color:#dbe3ec}
.lb-close,.lb-nav{display:grid;place-items:center;flex:none;width:48px;height:48px;border:2.5px solid #fff;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.3rem;cursor:pointer;transition:background .15s,transform .15s}
.lb-close:hover,.lb-nav:hover{background:var(--sun);color:var(--navy);transform:scale(1.08)}
.lb-close{position:absolute;top:1rem;right:1rem;z-index:2}
@media (max-width:1000px){.gallery-grid{column-count:3}}
@media (max-width:680px){.gallery-grid{column-count:2;column-gap:.6rem}.g-item{margin-bottom:.6rem;border-width:3px;border-radius:16px}.gallery{padding-left:.9rem;padding-right:.9rem}.lb-nav{position:absolute;bottom:1rem;width:44px;height:44px}.lb-prev{left:1rem}.lb-next{right:1rem}}
@media (prefers-reduced-motion:reduce){.g-item,.g-zoom{transition:none}}

/* Botón de WhatsApp en la confirmación de la visita */
.btn-wa{background:#25d366;color:#fff;border-color:#128c4a;box-shadow:0 4px 0 #128c4a}
.btn-wa:hover{box-shadow:0 7px 0 #128c4a}
.wa-send{margin:1.2rem 0;padding:1.1rem 1.2rem;background:#e4f7ec;border:3px dashed #25d366;border-radius:24px;text-align:center}
.wa-send p{margin:0 0 .8rem;color:var(--navy);font-weight:700}

/* Formulario y páginas de error: dejan espacio para las burbujas de la nube del header */
.form-page{padding-top:6.5rem}
@media (max-width:1180px){.form-page{padding-top:5.2rem}}

/* Acceso al panel (icono en escritorio, icono + texto en el menú móvil) */
.nav a.nav-login{display:inline-flex;align-items:center;gap:.5rem;padding:0;border:0;color:var(--navy);font-weight:800;transition:color .15s,transform .15s}
.nav a.nav-login i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eef4f6;font-size:1.35rem;color:var(--navy);transition:background .15s,color .15s}
.nav a.nav-login span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nav a.nav-login:hover i{background:var(--navy);color:#fff}
@media (max-width:1180px){.nav a.nav-login span{position:static;width:auto;height:auto;clip:auto}}
