/* ═══════════════════════════════════════════════════════════
   COLORPILLARS PRESCHOOL — luminous registro
   Cream canvas · caterpillar circles as the motion system
   ═══════════════════════════════════════════════════════════ */
:root{
  --cream:#FBF6EC;
  --paper:#FFFDF8;
  --ink:#3B342A;
  --ink2:#8B8172;
  --verde:#57B947;
  --coral:#F0574B;
  --naranja:#F7A72B;
  --teal:#26B6C4;
  --amarillo:#FCC626;
  --rosa:#FF8FB1;
  --shadow:0 18px 50px -18px rgba(90,70,40,.28);
  --shadow-sm:0 10px 26px -14px rgba(90,70,40,.30);
  --ease-boing:cubic-bezier(.34,1.56,.4,1);
  --maxw:1180px;
  --pad:clamp(20px,5vw,64px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{
  font-family:"Nunito",system-ui,sans-serif;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
body.pre{overflow:hidden}
h1,h2,h3,.brand__word,.pill__word,.loader__word{font-family:"Fredoka",sans-serif;font-weight:600;line-height:1.02;letter-spacing:-.01em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
sup{color:var(--coral);font-weight:800}

/* speckle / paper texture on cream */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background:
    radial-gradient(circle at 15% 20%, rgba(87,185,71,.05), transparent 22%),
    radial-gradient(circle at 85% 12%, rgba(240,87,75,.05), transparent 22%),
    radial-gradient(circle at 78% 82%, rgba(38,182,196,.05), transparent 22%),
    radial-gradient(circle at 8% 78%, rgba(252,198,38,.06), transparent 22%);
}

/* ───────── buttons ───────── */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:"Fredoka",sans-serif;font-weight:500;font-size:1.02rem;
  padding:.85em 1.5em;border-radius:100px;cursor:pointer;border:none;
  transition:transform .3s var(--ease-boing), box-shadow .3s, background .3s, color .3s;
  white-space:nowrap;
}
.btn--fill{background:var(--coral);color:#fff;box-shadow:0 12px 24px -8px rgba(240,87,75,.55)}
.btn--fill:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 18px 30px -8px rgba(240,87,75,.6)}
.btn--ghost{background:transparent;color:var(--ink);border:2.5px solid rgba(59,52,42,.16)}
.btn--ghost:hover{transform:translateY(-3px);border-color:var(--verde);color:var(--verde)}
.btn--ghost-dark{color:#fff;border-color:rgba(255,255,255,.5)}
.btn--ghost-dark:hover{background:#fff;color:var(--teal);border-color:#fff}

.eyebrow{font-family:"Fredoka",sans-serif;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;color:var(--coral)}
.eyebrow--light{color:rgba(255,255,255,.85)}

/* ═══════════ LOADER ═══════════ */
#loader{position:fixed;inset:0;z-index:999;background:var(--cream);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;
  transition:opacity .7s ease, visibility .7s}
#loader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader__cat{display:flex}
.loader__cat span{width:26px;height:26px;border-radius:50%;background:var(--c);margin-left:-8px;
  animation:hop 1s var(--ease-boing) infinite;box-shadow:var(--shadow-sm)}
.loader__cat span:nth-child(1){margin-left:0;animation-delay:0s}
.loader__cat span:nth-child(2){animation-delay:.1s}
.loader__cat span:nth-child(3){animation-delay:.2s}
.loader__cat span:nth-child(4){animation-delay:.3s}
.loader__cat span:nth-child(5){animation-delay:.4s}
@keyframes hop{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-16px)}}
.loader__word{font-size:1.3rem;color:var(--ink2);letter-spacing:.02em}

/* ═══════════ NAV ═══════════ */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px var(--pad);
  transition:padding .4s, background .4s, box-shadow .4s;}
.nav.scrolled{background:rgba(251,246,236,.82);backdrop-filter:blur(14px);
  box-shadow:0 6px 24px -16px rgba(90,70,40,.4);padding:9px var(--pad)}
.brand{display:flex;align-items:center;gap:11px}
/* real hand-lettered wordmark (logo artwork) */
.brand__logo{height:38px;width:auto;display:block;transition:height .4s}
.nav.scrolled .brand__logo{height:32px}
.brand__cat{display:flex}
.brand__cat i{width:15px;height:15px;border-radius:50%;background:var(--c);margin-left:-5px;box-shadow:0 3px 6px -3px rgba(0,0,0,.3)}
.brand__cat i:first-child{margin-left:0}
.brand__word{font-size:1.5rem;color:var(--ink)}
.brand__word b{color:var(--c);font-weight:700}
.nav__links{display:flex;gap:26px}
.nav__links a{font-family:"Fredoka",sans-serif;font-weight:500;font-size:1rem;color:var(--ink);position:relative;padding:4px 0}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2.5px;border-radius:3px;background:var(--coral);transition:width .3s var(--ease-boing)}
.nav__links a:hover::after{width:100%}
.nav__cta{font-family:"Fredoka",sans-serif;font-weight:500;background:var(--verde);color:#fff;
  padding:.6em 1.25em;border-radius:100px;font-size:.98rem;transition:transform .3s var(--ease-boing),box-shadow .3s;
  box-shadow:0 10px 20px -8px rgba(87,185,71,.5)}
.nav__cta:hover{transform:translateY(-2px) scale(1.04)}

/* ═══════════ HERO ═══════════ */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:120px var(--pad) 80px;overflow:hidden;z-index:1}
.hero__bubbles{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero__bubbles .bub{position:absolute;border-radius:50%;opacity:.5;
  filter:blur(.3px);will-change:transform}

.brand__catimg{height:30px;width:auto;display:block}

/* ── crayon-writing hero: the caterpillar walks and "writes" the headline ── */
.hero__write{position:relative;z-index:2;display:inline-block;margin:6px auto}
.hero__mascot{display:block;margin:0 auto 10px;width:clamp(160px,19vw,260px);height:auto;
  position:relative;z-index:2;opacity:0;
  filter:drop-shadow(0 14px 22px rgba(90,70,40,.22))}
.hero__title--crayon{font-family:"Schoolbell",cursive;font-weight:400;
  font-size:clamp(2.7rem,7.2vw,5.4rem);line-height:1.06;letter-spacing:.015em;color:var(--ink)}
.hero__title--crayon .ch{display:inline-block;will-change:transform}
.hero__title--crayon em{font-style:normal;position:relative;white-space:nowrap}
.hero__title--crayon .squig{position:absolute;left:1%;bottom:-16px;width:96%;height:auto;overflow:visible;pointer-events:none}
.hero__wordmark{width:clamp(300px,45vw,580px);height:auto;
  filter:drop-shadow(0 10px 16px rgba(90,70,40,.13))}
.hero__preimg{width:clamp(150px,20vw,270px);height:auto;margin-top:2px;filter:drop-shadow(0 6px 10px rgba(90,70,40,.10))}
.hero__pre{font-family:"Fredoka",sans-serif;font-weight:500;color:var(--verde);
  text-transform:uppercase;letter-spacing:.44em;padding-left:.44em;
  font-size:clamp(.7rem,1.4vw,.94rem)}
.hero__cat .seg{position:absolute;border-radius:50%;bottom:0;
  box-shadow:0 10px 20px -8px rgba(90,70,40,.4);will-change:transform,opacity}
.cat__head{position:absolute;bottom:0;border-radius:50%;background:var(--verde);
  box-shadow:0 12px 22px -8px rgba(90,70,40,.45);will-change:transform,opacity}
.cat__antenna{position:absolute;top:6%;width:4px;height:26px;background:var(--ink);border-radius:4px;transform-origin:bottom}
.cat__antenna i{position:absolute;top:-9px;left:50%;width:12px;height:12px;border-radius:50%;background:var(--coral);transform:translateX(-50%)}
.cat__antenna--l{left:26%;transform:rotate(-22deg)}
.cat__antenna--r{right:26%;transform:rotate(22deg)}
.cat__antenna--l i{background:var(--amarillo)}
.cat__antenna--r i{background:var(--coral)}
.cat__face{position:absolute;inset:0}
.cat__eyes{position:absolute;top:38%;left:0;right:0;display:flex;justify-content:center;gap:22%}
.cat__eyes span{width:14px;height:14px;border-radius:50%;background:#fff;position:relative}
.cat__eyes span::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--ink);top:4px;left:4px}
.cat__cheeks{position:absolute;top:56%;left:0;right:0;display:flex;justify-content:center;gap:44%}
.cat__cheeks span{width:11px;height:8px;border-radius:50%;background:rgba(255,255,255,.5)}
.cat__smile{position:absolute;top:58%;left:50%;transform:translateX(-50%);width:26px;height:13px;
  border:3.5px solid #fff;border-top:none;border-radius:0 0 26px 26px}

.hero__copy{position:relative;z-index:3;max-width:920px}
.hero__kicker{font-family:"Fredoka",sans-serif;font-weight:500;color:var(--ink2);
  font-size:clamp(.85rem,1.6vw,1.02rem);letter-spacing:.02em;margin-bottom:16px}
.hero__title{font-size:clamp(2.7rem,7.6vw,5.9rem);color:var(--ink);margin-bottom:22px}
.hero__title span{display:block}
.hero__title em{font-style:normal;color:var(--coral)}
.hero__title u{text-decoration:none;color:var(--teal);position:relative}
.hero__title u::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.06em;height:.14em;
  background:var(--amarillo);border-radius:6px;z-index:-1;opacity:.85}
.hero__tag{font-size:clamp(1.05rem,2.4vw,1.4rem);color:var(--ink);margin-bottom:34px;font-weight:600}
.hero__tag b{color:var(--c);font-weight:800}
.hero__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ink2)}
.hero__scroll span{font-family:"Fredoka",sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}
.hero__scroll i{width:2px;height:36px;background:linear-gradient(var(--coral),transparent);border-radius:2px;animation:scrolldot 1.8s ease-in-out infinite}
@keyframes scrolldot{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ═══════════ NOSOTROS / CARTA ═══════════ */
.letter{position:relative;z-index:1;max-width:820px;margin:0 auto;
  padding:clamp(70px,12vw,150px) var(--pad);text-align:center}
.letter__mark{display:flex;justify-content:center;margin-bottom:26px}
.letter__mark i{width:20px;height:20px;border-radius:50%;background:var(--c);margin-left:-6px;box-shadow:var(--shadow-sm)}
.letter__mark i:first-child{margin-left:0}
.letter__eyebrow{font-family:"Fredoka",sans-serif;font-weight:600;color:var(--coral);letter-spacing:.1em;text-transform:uppercase;font-size:.82rem;margin-bottom:18px}
.letter__lead{font-family:"Fredoka",sans-serif;font-weight:500;font-size:clamp(1.4rem,3.4vw,2.15rem);
  line-height:1.28;color:var(--ink);margin-bottom:26px}
.letter__lead b{color:var(--verde);font-weight:600}
.letter__body{font-size:clamp(1.02rem,1.8vw,1.18rem);color:var(--ink2);max-width:640px;margin:0 auto 34px}
.letter__sign{font-size:1.05rem;color:var(--ink);line-height:1.5}
.letter__sign b{font-family:"Fredoka",sans-serif;font-weight:600;color:var(--ink)}
.letter__sign span{color:var(--ink2);font-size:.92rem}

/* ═══════════ PILARES (signature deck) ═══════════ */
.pillars{position:relative;height:460vh;z-index:1}
.pillars__sticky{position:sticky;top:0;height:100svh;overflow:hidden;
  display:flex;align-items:center;justify-content:center}
.pillars__bg{position:absolute;inset:0;background:var(--verde);z-index:0;transition:none}
.pillars__bg::after{content:"";position:absolute;inset:0;opacity:.16;
  background:radial-gradient(circle at 30% 20%, rgba(255,255,255,.5), transparent 45%)}
.pillars__head{position:absolute;top:clamp(90px,12vh,130px);left:0;right:0;z-index:3;text-align:center}
.pillars__eyebrow{font-family:"Fredoka",sans-serif;font-weight:600;color:#fff;
  letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;opacity:.9}
.pillars__eyebrow span{font-weight:700}

.pillars__stage{position:relative;z-index:2;width:100%;max-width:var(--maxw);
  padding:0 var(--pad);height:56vh;display:flex;align-items:center;justify-content:center}
.pill{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;opacity:0;
  padding:0 var(--pad);will-change:transform,opacity}
.pill__mini{font-family:"Fredoka",sans-serif;font-weight:500;color:rgba(255,255,255,.85);
  font-size:clamp(1rem,2.4vw,1.5rem);margin-bottom:-.06em}
.pill__word{font-size:clamp(4.5rem,18vw,15rem);color:#fff;font-weight:700;line-height:.9;
  text-shadow:0 20px 50px rgba(0,0,0,.14)}
.pill__desc{font-family:"Nunito",sans-serif;font-weight:600;color:#fff;max-width:520px;
  font-size:clamp(1rem,1.9vw,1.28rem);margin-top:18px;opacity:.96;text-shadow:0 2px 12px rgba(0,0,0,.1)}

/* crawling caterpillar (real logo) along the bottom */
.crawler{position:absolute;bottom:clamp(56px,12vh,110px);left:0;z-index:2;will-change:transform}
.crawler__img{width:clamp(140px,17vw,215px);height:auto;display:block;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.22));will-change:transform}

.pillars__dots{position:absolute;bottom:clamp(28px,5vh,44px);left:50%;transform:translateX(-50%);
  z-index:3;display:flex;gap:10px}
.pillars__dots b{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45);transition:transform .4s var(--ease-boing),background .4s}
.pillars__dots b.on{background:#fff;transform:scale(1.5)}

/* ═══════════ SECTION HEAD (shared) ═══════════ */
.section__head{max-width:760px;margin:0 auto clamp(40px,6vw,64px);text-align:center;padding:0 var(--pad)}
.section__title{font-size:clamp(2.1rem,5vw,3.5rem);color:var(--ink);margin:12px 0}
.section__sub{font-size:clamp(1rem,1.8vw,1.18rem);color:var(--ink2)}
.section__sub b{color:var(--coral);font-weight:700}

/* ═══════════ PROGRAMAS ═══════════ */
.programs{position:relative;z-index:1;padding:clamp(80px,12vw,140px) 0}
.programs__grid{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.prog{background:var(--paper);border-radius:30px;padding:34px 26px 30px;text-align:center;
  box-shadow:var(--shadow);position:relative;overflow:hidden;
  border:2px solid rgba(0,0,0,.03);transition:transform .4s var(--ease-boing)}
.prog::before{content:"";position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:var(--c);opacity:.1}
.prog:hover{transform:translateY(-8px)}
.prog__bubble{width:80px;height:80px;border-radius:50%;background:var(--c);
  display:flex;align-items:center;justify-content:center;font-size:2.1rem;margin:0 auto 18px;
  box-shadow:0 12px 22px -8px var(--c);position:relative}
.prog__age{font-family:"Fredoka",sans-serif;font-weight:600;color:var(--c);font-size:.92rem;letter-spacing:.04em;margin-bottom:4px}
.prog__name{font-size:1.4rem;color:var(--ink);margin-bottom:10px}
.prog__name sup{color:var(--ink2)}
.prog__txt{font-size:.98rem;color:var(--ink2);line-height:1.5}
.programs__note{text-align:center;color:var(--ink2);font-size:.9rem;margin-top:28px;padding:0 var(--pad)}
.programs__note b{color:var(--coral)}

/* ═══════════ UN DÍA — gallery ═══════════ */
.day{position:relative;z-index:1;padding:clamp(40px,7vw,90px) 0 clamp(80px,12vw,130px);
  background:linear-gradient(180deg,transparent, rgba(38,182,196,.05) 40%, transparent)}
.gallery{max-width:1120px;margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(16px,2.5vw,34px);align-items:center}
.ph{position:relative;will-change:transform;min-width:0}
.ph figcaption{font-family:"Fredoka",sans-serif;font-weight:500;text-align:center;
  color:var(--ink2);font-size:.92rem;margin-top:12px}
.ph__frame{overflow:hidden;box-shadow:var(--shadow)}
.ph__frame img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-boing)}
.ph:hover .ph__frame img{transform:scale(1.06)}
/* circular bubble frames */
.ph--bubble .ph__frame{border-radius:50%;aspect-ratio:1;border:8px solid var(--paper)}
.ph--bubble .ph__frame::after{content:"";position:absolute}
/* polaroid frames */
.ph--polar .ph__frame{border-radius:14px;aspect-ratio:.86;background:var(--paper);
  padding:12px 12px 40px;border:1px solid rgba(0,0,0,.05)}
.ph--polar .ph__frame img{border-radius:6px;aspect-ratio:1}
/* placement across 6-col grid with vertical offsets */
.ph--a{grid-column:1/3;transform:translateY(-14px)}
.ph--b{grid-column:3/5;transform:translateY(28px) rotate(-3deg)}
.ph--c{grid-column:5/7;transform:translateY(-20px)}
.ph--d{grid-column:1/3;transform:translateY(20px) rotate(3deg)}
.ph--e{grid-column:3/5;transform:translateY(-24px)}
.ph--f{grid-column:5/7;transform:translateY(14px) rotate(-2deg)}
.day__note{text-align:center;color:var(--ink2);font-size:.88rem;margin-top:44px;padding:0 var(--pad)}
.day__note b{color:var(--coral)}

/* ═══════════ TESTIMONIOS ═══════════ */
.testi{position:relative;z-index:1;padding:clamp(60px,10vw,120px) 0}
.testi__row{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tcard{background:var(--paper);border-radius:28px;padding:34px 30px;box-shadow:var(--shadow);
  position:relative;border-top:6px solid var(--c)}
.tcard__avatar{width:54px;height:54px;border-radius:50%;background:var(--c);margin-bottom:18px;
  box-shadow:0 8px 16px -6px var(--c)}
.tcard__quote{font-size:1.05rem;color:var(--ink);line-height:1.55;margin-bottom:16px;font-weight:600}
.tcard footer{color:var(--ink2);font-size:.94rem}
.tcard footer b{color:var(--c)}
.testi__note{text-align:center;color:var(--ink2);font-size:.88rem;margin-top:30px;padding:0 var(--pad)}
.testi__note b{color:var(--coral)}

/* ═══════════ VISÍTANOS ═══════════ */
.visit{position:relative;z-index:1;background:var(--teal);color:#fff;overflow:hidden;
  padding:clamp(70px,11vw,130px) 0;border-radius:52px 52px 0 0;margin-top:20px}
.visit__bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.visit__bubbles::before,.visit__bubbles::after{content:"";position:absolute;border-radius:50%;opacity:.14}
.visit__bubbles::before{width:340px;height:340px;background:var(--amarillo);top:-120px;right:-80px}
.visit__bubbles::after{width:260px;height:260px;background:var(--coral);bottom:-100px;left:-60px}
.visit__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,5vw,60px);align-items:center}
.visit__title{font-size:clamp(2.1rem,4.6vw,3.4rem);margin:14px 0 18px;color:#fff}
.visit__lead{font-size:clamp(1rem,1.8vw,1.18rem);opacity:.92;margin-bottom:26px;max-width:460px}
.visit__facts{list-style:none;display:flex;flex-direction:column;gap:14px;margin-bottom:30px}
.visit__facts li{display:flex;gap:14px;align-items:flex-start;font-size:1.02rem}
.vf__ic{width:42px;height:42px;flex:none;border-radius:50%;background:rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.visit__facts a{border-bottom:2px solid rgba(255,255,255,.4)}
.visit__facts a:hover{border-color:#fff}
.visit__actions{display:flex;gap:14px;flex-wrap:wrap}
.visit__actions .btn--fill{background:#fff;color:var(--teal)}
.visit__actions .btn--fill:hover{background:var(--amarillo);color:var(--ink)}

/* stylised map card */
.visit__map{position:relative}
.map__link{display:block;position:relative;aspect-ratio:1;border-radius:34px;overflow:hidden;
  background:#eaf7f4;box-shadow:var(--shadow);border:6px solid #fff}
.map__grid{position:absolute;inset:0;
  background:
    linear-gradient(rgba(38,182,196,.14) 2px,transparent 2px) 0 0/100% 44px,
    linear-gradient(90deg,rgba(38,182,196,.14) 2px,transparent 2px) 0 0/44px 100%,
    linear-gradient(135deg,#f2fbfa,#e2f4f2);
}
.map__grid::before{content:"";position:absolute;top:20%;left:-10%;width:130%;height:20px;background:var(--amarillo);opacity:.5;transform:rotate(-8deg);border-radius:10px}
.map__grid::after{content:"";position:absolute;top:60%;left:-10%;width:130%;height:26px;background:var(--verde);opacity:.35;transform:rotate(6deg);border-radius:12px}
.map__pin{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);z-index:2}
.map__dot{display:block;width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--coral);
  transform:rotate(-45deg);box-shadow:0 8px 14px -4px rgba(0,0,0,.35);position:relative}
.map__dot::after{content:"";position:absolute;top:7px;left:7px;width:12px;height:12px;border-radius:50%;background:#fff}
.map__pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:26px;height:26px;
  border-radius:50%;background:var(--coral);opacity:.4;animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.4}100%{transform:translate(-50%,-50%) scale(4);opacity:0}}
.map__tag{position:absolute;bottom:16px;left:16px;right:16px;z-index:2;background:#fff;color:var(--ink);
  border-radius:16px;padding:12px 16px;font-size:.92rem;box-shadow:var(--shadow-sm);font-family:"Fredoka",sans-serif;font-weight:500}
.map__tag b{color:var(--teal)}

/* ═══════════ FOOTER ═══════════ */
.foot{position:relative;z-index:1;background:var(--ink);color:#fff;padding:clamp(50px,8vw,80px) var(--pad) 40px}
.foot__top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
  padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand--foot .brand__word{color:#fff}
.brand__logo--foot{height:42px}
.foot__tag{font-family:"Fredoka",sans-serif;font-weight:400;color:rgba(255,255,255,.7);font-size:1.02rem}
.foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:36px 0}
.foot__cols b{font-family:"Fredoka",sans-serif;font-weight:600;display:block;margin-bottom:10px;font-size:1.05rem}
.foot__cols p{color:rgba(255,255,255,.6);font-size:.94rem;line-height:1.7}
.foot__cols a:hover{color:var(--amarillo)}
.foot__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  padding-top:26px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);font-size:.86rem}
.muted{color:rgba(255,255,255,.4)}

/* ═══════════ REVEAL / RISE states ═══════════ */
[data-reveal],[data-rise]{opacity:0}
body.ready .hero__scroll{opacity:1}

/* ═══════════ RESPONSIVE ═══════════ */
@media(max-width:920px){
  .nav__links{display:none}
  .programs__grid{grid-template-columns:repeat(2,1fr)}
  .testi__row{grid-template-columns:1fr;max-width:520px}
  .visit__inner{grid-template-columns:1fr}
  .visit__map{max-width:420px;margin:0 auto;width:100%}
  .foot__cols{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .nav{padding:12px 16px}
  .nav__cta{padding:.5em .9em;font-size:.82rem}
  .brand__logo{height:26px}
  .nav.scrolled .brand__logo{height:24px}
  .brand__logo--foot{height:34px}
  .brand__word{font-size:1.15rem}
  .brand__cat i{width:12px;height:12px}
  .hero__write{margin-top:4px}
  .hero__mascot{width:44vw;min-width:150px}
  .hero__title--crayon{font-size:clamp(2rem,9.4vw,2.7rem)}
  .hero__title--crayon .squig{bottom:-10px}
  .hero{padding-top:100px}
  .hero__kicker{font-size:.76rem;max-width:300px;margin-left:auto;margin-right:auto;line-height:1.4}
  .hero__title{font-size:clamp(2rem,8.4vw,3rem)}
  .hero__tag{font-size:1.05rem}
  .pillars{height:420vh}
  .pill__desc{font-size:1.02rem}
  .crawler{bottom:80px}
  .crawler__img{width:132px}
  /* gallery: stack to 2 columns, reset offsets */
  .section__title{font-size:clamp(1.65rem,6.6vw,2.2rem)}
  .section__sub,.programs__note,.day__note,.testi__note{font-size:.92rem}
  .gallery{grid-template-columns:repeat(2,1fr);gap:16px}
  .ph--a,.ph--b,.ph--c,.ph--d,.ph--e,.ph--f{grid-column:auto;transform:none;rotate:0deg}
  .ph--b,.ph--d,.ph--f{margin-top:0}
  .programs__grid{grid-template-columns:1fr;max-width:360px}
  .foot__cols{grid-template-columns:1fr}
  .foot__top,.foot__bottom{flex-direction:column;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
