@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root{
  --green:#0b7a53;
  --green-dark:#07583d;
  --lime:#a7cf38;
  --orange:#f28a2f;
  --blue:#42b8d4;
  --ink:#10211b;
  --cream:#f7f3e9;
  --paper:#fffdf8;
  --white:#fff;
  --line:rgba(16,33,27,.14);
  --max:1440px;
  --radius:34px;
  --shadow:0 28px 70px rgba(16,33,27,.14);
  --ease:cubic-bezier(.2,.8,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"DM Sans",system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit}
address{font-style:normal}
::selection{background:var(--lime);color:var(--ink)}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.skip-link{
  position:fixed;left:16px;top:-80px;z-index:9999;background:#000;color:#fff;
  padding:12px 18px;border-radius:12px;
}
.skip-link:focus{top:16px}

.site-header{
  position:fixed;z-index:1000;left:0;right:0;top:0;
  padding:18px 24px;
  transition:padding .35s var(--ease),background .35s var(--ease),backdrop-filter .35s;
}
.site-header.is-scrolled{
  padding-top:10px;padding-bottom:10px;
  background:rgba(255,253,248,.84);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(16,33,27,.06);
}
.header-shell{
  max-width:var(--max);margin:auto;display:grid;
  grid-template-columns:180px 1fr auto;align-items:center;gap:24px;
}
.brand{display:flex;align-items:center;width:152px;height:72px}
.brand img{object-fit:contain;object-position:left center}
.main-nav{justify-self:center;display:flex;align-items:center;gap:28px;font-size:14px;font-weight:700}
.main-nav>a{position:relative;padding:11px 0}
.main-nav>a:not(.nav-calendar):not(.nav-enroll)::after{
  content:"";position:absolute;left:0;bottom:5px;width:100%;height:2px;background:var(--orange);
  transform:scaleX(0);transform-origin:right;transition:transform .25s var(--ease);
}
.main-nav>a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-calendar,.nav-enroll{
  padding:11px 16px!important;border-radius:999px;
}
.nav-calendar{background:var(--blue);color:#082d37}
.nav-enroll{background:var(--orange);color:#2e1404}
.lang-switch{display:flex;gap:6px;font-size:12px;font-weight:800;align-items:center}
.lang-switch a[aria-current="page"]{color:var(--green)}
.menu-toggle{display:none;border:0;background:transparent;padding:8px}
.menu-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:var(--ink);margin:5px 0}

.hero{
  position:relative;min-height:920px;padding:150px 24px 80px;
  background:linear-gradient(120deg,var(--cream) 0 54%,#dff3ed 54% 100%);
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;width:420px;height:420px;border-radius:50%;
  background:var(--lime);right:-180px;top:40px;opacity:.85;
}
.hero::after{
  content:"";position:absolute;width:260px;height:260px;border-radius:48% 52% 62% 38%;
  border:55px solid var(--orange);left:-135px;bottom:90px;transform:rotate(-20deg);opacity:.9;
}
.hero-bg{position:absolute;pointer-events:none}
.hero-bg-a{left:47%;top:120px;width:110px;height:110px;border-radius:50%;background:var(--blue);opacity:.8}
.hero-bg-b{left:43%;bottom:40px;width:160px;height:34px;background:var(--green);transform:rotate(-8deg);border-radius:999px}
.hero-shell{
  position:relative;z-index:2;max-width:var(--max);margin:auto;
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(650px,1.18fr);gap:34px;align-items:center;
}
.hero-copy{padding-left:4vw}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;margin:0 0 24px;
  text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800;
}
.eyebrow::before{content:"";width:36px;height:3px;background:var(--orange);border-radius:99px}
.hero h1{
  font-family:"Manrope",sans-serif;font-weight:800;line-height:.9;letter-spacing:-.055em;
  font-size:clamp(66px,7.4vw,126px);margin:0;max-width:7ch;
}
.hero h1 span{display:block}
.hero h1 span:nth-child(1){color:var(--green)}
.hero h1 span:nth-child(2){color:var(--orange)}
.hero h1 span:nth-child(3){color:#167b9a}
.hero-lead{font-size:19px;line-height:1.6;max-width:600px;margin:30px 0 32px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 23px;
  border-radius:999px;font-size:14px;font-weight:800;transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.btn:hover{transform:translateY(-3px)}
.btn-dark{background:var(--ink);color:#fff;box-shadow:0 12px 30px rgba(16,33,27,.18)}
.btn-light{background:#fff;color:var(--ink);border:1px solid var(--line)}
.hero-mosaic{position:relative;height:680px}
.tile{
  position:absolute;margin:0;overflow:hidden;border-radius:30px;box-shadow:var(--shadow);
  background:#ddd;
}
.tile img{transition:transform 1.1s var(--ease)}
.tile:hover img{transform:scale(1.055)}
.tile-a{left:8%;top:4%;width:49%;height:44%;transform:rotate(-3deg)}
.tile-b{right:2%;top:13%;width:41%;height:55%;transform:rotate(4deg)}
.tile-c{left:0;bottom:3%;width:42%;height:42%;transform:rotate(3deg)}
.tile-d{left:40%;bottom:0;width:32%;height:31%;transform:rotate(-5deg)}
.hero-stamp{
  position:absolute;right:6%;bottom:8%;z-index:5;width:145px;height:145px;border-radius:50%;
  background:var(--lime);display:grid;place-content:center;text-align:center;transform:rotate(8deg);
  border:9px solid var(--paper);box-shadow:0 20px 40px rgba(16,33,27,.13);
}
.hero-stamp strong{font:800 29px/1 "Manrope",sans-serif}
.hero-stamp span{font-size:11px;font-weight:800;letter-spacing:.24em;margin-top:8px}
.scroll-cue{
  position:absolute;right:34px;bottom:30px;z-index:4;display:flex;align-items:center;gap:10px;
  writing-mode:vertical-rl;font-size:10px;letter-spacing:.18em;font-weight:800;
}
.scroll-cue i{display:block;width:1px;height:55px;background:var(--ink)}

.calendar-priority{position:relative;z-index:5;margin:-22px 24px 0}
.calendar-inner{
  max-width:var(--max);margin:auto;min-height:175px;border-radius:32px;padding:30px 36px;
  background:var(--orange);display:grid;grid-template-columns:1fr 2.2fr 1fr;gap:30px;align-items:center;
  box-shadow:0 24px 70px rgba(149,73,8,.23);
}
.calendar-kicker{display:flex;align-items:center;gap:14px;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.12em}
.calendar-number{
  width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(16,33,27,.28);border-radius:50%;
  font:700 15px "Manrope",sans-serif;
}
.calendar-title p{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.calendar-title h2{margin:0;font:800 clamp(29px,3.5vw,56px)/.98 "Manrope",sans-serif;letter-spacing:-.045em}
.calendar-arrow{justify-self:end;display:flex;align-items:center;gap:14px;font-size:13px;font-weight:800}
.calendar-arrow b{width:54px;height:54px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:22px}

.section-shell{max-width:var(--max);margin:auto;padding-left:24px;padding-right:24px}
.section-index{text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:800;margin:0 0 18px}
.section-index.light{color:rgba(255,255,255,.74)}
.text-link{
  display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:14px;padding-bottom:6px;border-bottom:2px solid currentColor;
}
.text-link span{transition:transform .2s var(--ease)}
.text-link:hover span{transform:translate(3px,-3px)}
.text-link-light{color:white}

.saturday-section{
  position:relative;padding:140px 0 130px;background:var(--paper);overflow:hidden;
}
.section-orbit{position:absolute;border:1px solid rgba(16,33,27,.13);border-radius:50%}
.orbit-one{width:520px;height:520px;right:-220px;top:-80px}
.saturday-grid{
  display:grid;grid-template-columns:1.05fr .78fr .28fr;gap:54px;align-items:center;
}
.saturday-photo{height:650px;border-radius:0 80px 0 80px;overflow:hidden;position:relative;box-shadow:var(--shadow)}
.photo-label{
  position:absolute;left:24px;bottom:24px;background:rgba(255,255,255,.9);backdrop-filter:blur(9px);
  padding:10px 14px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
}
.saturday-copy h2,.about-copy h2,.teachers-title h2,.gallery-intro h2,.location-copy h2{
  font:800 clamp(46px,5.3vw,82px)/.96 "Manrope",sans-serif;letter-spacing:-.055em;margin:0 0 25px;
}
.saturday-copy p:not(.section-index){font-size:18px;line-height:1.65;color:#39463f}
.saturday-accent{
  align-self:end;margin-bottom:70px;background:var(--blue);min-height:260px;border-radius:100px 100px 20px 20px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(4deg);
}
.saturday-accent span{font:800 62px/.8 "Manrope",sans-serif}
.saturday-accent small{margin:9px 0}
.saturday-accent em{font-style:normal;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;margin-top:10px}

.about-cascade{padding:0 0 140px;background:#f0ede4;overflow:hidden}
.about-ribbon{
  width:110%;margin-left:-5%;background:var(--lime);padding:22px 0;display:flex;gap:50px;white-space:nowrap;
  transform:rotate(-2deg);font:800 clamp(20px,2.2vw,34px) "Manrope",sans-serif;letter-spacing:-.03em;
}
.about-grid{
  display:grid;grid-template-columns:.75fr .9fr .48fr;gap:35px;align-items:end;margin-top:95px;
}
.about-copy{align-self:center;padding-left:3vw}
.about-name{font-size:18px;line-height:1.6;margin:0 0 28px}
.about-image{overflow:hidden;box-shadow:var(--shadow)}
.image-tall{height:680px;border-radius:140px 20px 20px 20px}
.image-small{height:430px;border-radius:20px 20px 130px 20px;margin-bottom:-50px}

.curriculum-section{background:var(--green-dark);color:#fff;padding:135px 0 150px;overflow:hidden}
.curriculum-head{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end}
.curriculum-head p{grid-column:1}
.curriculum-head h2{
  grid-column:1;margin:0;font:800 clamp(56px,7vw,110px)/.9 "Manrope",sans-serif;letter-spacing:-.06em;
}
.curriculum-head .text-link{grid-column:2;grid-row:1 / span 2;align-self:end;margin-bottom:8px}
.curriculum-stage{position:relative;height:900px;margin-top:50px}
.curriculum-word{
  position:absolute;font:800 clamp(90px,13vw,210px)/.8 "Manrope",sans-serif;
  letter-spacing:-.075em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.5);
  z-index:1;
}
.word-one{left:-2%;top:7%}.word-two{right:-4%;bottom:8%}
.curriculum-photo{position:absolute;margin:0;overflow:hidden;z-index:2;box-shadow:0 30px 70px rgba(0,0,0,.25)}
.cp-one{left:10%;top:14%;width:45%;height:58%;border-radius:22px 160px 22px 22px;transform:rotate(-3deg)}
.cp-two{right:7%;top:27%;width:35%;height:48%;border-radius:150px 22px 22px 22px;transform:rotate(5deg)}
.age-panel{
  position:absolute;z-index:4;left:51%;bottom:10%;width:190px;height:190px;border-radius:50%;
  background:var(--orange);color:var(--ink);display:grid;place-content:center;text-align:center;transform:rotate(-6deg);
}
.age-panel span{font:800 48px/1 "Manrope",sans-serif}.age-panel small{font-weight:800;text-transform:uppercase;letter-spacing:.15em;margin-top:7px}

.teachers-section{padding:130px 0;background:var(--paper);overflow:hidden}
.teachers-title{
  display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:55px;
}
.teachers-title h2{margin-bottom:0}
.teachers-title .text-link{margin-bottom:12px}
.teachers-track{
  display:grid;grid-template-columns:.8fr 1.4fr .8fr;gap:24px;
}
.teacher-panel{margin:0;height:500px;border-radius:180px 180px 24px 24px;overflow:hidden}
.teacher-wide{height:610px;border-radius:28px;transform:translateY(-35px)}
.teacher-panel img{transition:transform .7s var(--ease);filter:saturate(.96)}
.teacher-panel:hover img{transform:scale(1.04)}

.gallery-section{background:#18393f;padding:135px 0 150px;color:#fff}
.gallery-shell{display:grid;grid-template-columns:.34fr .66fr;gap:60px}
.gallery-intro{position:sticky;top:120px;align-self:start}
.gallery-intro h2{margin-bottom:30px}
.masonry{columns:2;column-gap:20px}
.masonry-item{break-inside:avoid;margin:0 0 20px;height:310px;border-radius:22px;overflow:hidden;background:#2a4e54}
.masonry-item.tall{height:530px}.masonry-item.wide{height:390px}
.masonry-item img{transition:transform .7s var(--ease)}
.masonry-item:hover img{transform:scale(1.045)}

.enroll-section{
  min-height:760px;display:grid;grid-template-columns:1.15fr .85fr;position:relative;overflow:hidden;background:var(--lime);
}
.enroll-photo{margin:55px 0 55px 55px;border-radius:32px 160px 32px 32px;overflow:hidden;z-index:2;box-shadow:var(--shadow)}
.enroll-copy{padding:100px 7vw 100px 6vw;align-self:center;z-index:2}
.enroll-copy h2{font:800 clamp(55px,6vw,94px)/.91 "Manrope",sans-serif;letter-spacing:-.06em;margin:0 0 35px}
.enroll-shape{
  position:absolute;width:420px;height:420px;border:70px solid var(--orange);border-radius:50%;
  right:-170px;bottom:-170px;z-index:1;
}

.location-section{
  display:grid;grid-template-columns:.42fr .58fr;min-height:660px;background:var(--cream);
}
.location-copy{padding:120px max(40px,6vw);align-self:center}
.location-copy h2{margin-bottom:30px}
.location-copy address{font:700 24px/1.45 "Manrope",sans-serif}
.location-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:32px}
.location-links a{font-size:13px;font-weight:800;border-bottom:2px solid var(--ink);padding-bottom:5px}
.map-wrap{min-height:660px}
.map-wrap iframe{width:100%;height:100%;min-height:660px;border:0;filter:saturate(.85) contrast(1.03)}

.site-footer{background:var(--ink);color:#fff;padding:70px 5vw 24px}
.footer-top{
  max-width:var(--max);margin:auto;display:grid;grid-template-columns:180px 1fr auto;align-items:center;
  border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:42px;
}
.footer-brand{width:150px;height:80px;display:block;background:#fff;border-radius:18px;padding:8px 12px}
.footer-brand img{object-fit:contain}
.footer-top p{font:700 clamp(24px,3vw,46px) "Manrope",sans-serif;letter-spacing:-.04em;margin:0}
.footer-calendar{
  width:145px;height:145px;border-radius:50%;background:var(--orange);color:var(--ink);display:grid;place-content:center;text-align:center;
  font-size:13px;font-weight:800;transition:transform .25s var(--ease);
}
.footer-calendar:hover{transform:rotate(5deg) scale(1.03)}
.footer-grid{
  max-width:var(--max);margin:55px auto;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;
}
.footer-grid>div{display:flex;flex-direction:column;gap:12px}
.footer-grid h3{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--blue);margin:0 0 8px}
.footer-grid a,.footer-grid address{font-size:14px;line-height:1.7;color:rgba(255,255,255,.78)}
.footer-grid a:hover{color:#fff}
.footer-bottom{
  max-width:var(--max);margin:auto;display:flex;justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:11px;color:rgba(255,255,255,.5);
}

.reveal{
  opacity:0;transform:translateY(32px);
  transition:opacity .85s var(--ease),transform .85s var(--ease);
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.tile.reveal.is-visible,.curriculum-photo.reveal.is-visible{transform:var(--base-transform,none)}
.tile-a{--base-transform:rotate(-3deg)}
.tile-b{--base-transform:rotate(4deg)}
.tile-c{--base-transform:rotate(3deg)}
.tile-d{--base-transform:rotate(-5deg)}
.cp-one{--base-transform:rotate(-3deg)}
.cp-two{--base-transform:rotate(5deg)}

@media (max-width:1180px){
  .header-shell{grid-template-columns:150px 1fr auto}
  .main-nav{gap:17px;font-size:12px}
  .hero-shell{grid-template-columns:.8fr 1.2fr}
  .hero-mosaic{height:580px}
  .saturday-grid{grid-template-columns:1fr .75fr}
  .saturday-accent{display:none}
  .about-grid{grid-template-columns:.8fr 1fr .45fr}
}

@media (max-width:900px){
  .site-header{padding:10px 14px}
  .header-shell{grid-template-columns:1fr auto auto;gap:8px}
  .brand{width:122px;height:56px}
  .menu-toggle{display:block;z-index:1002}
  .lang-switch{margin-left:8px}
  .main-nav{
    position:fixed;inset:0;z-index:1001;background:var(--cream);
    display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
    padding:90px 30px;gap:18px;font:800 30px/1 "Manrope",sans-serif;
    transform:translateX(100%);transition:transform .45s var(--ease);
  }
  .main-nav.is-open{transform:translateX(0)}
  .nav-calendar,.nav-enroll{font:800 22px "Manrope",sans-serif;padding:12px 18px!important}
  .menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle.is-open span:nth-child(2){opacity:0}
  .menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .menu-toggle span:not(.sr-only){transition:.25s}

  .hero{min-height:auto;padding:112px 16px 60px;background:linear-gradient(180deg,var(--cream) 0 43%,#dff3ed 43%)}
  .hero::before{width:220px;height:220px;right:-100px;top:75px}
  .hero::after{width:150px;height:150px;border-width:34px;left:-80px;bottom:80px}
  .hero-shell{display:block}
  .hero-copy{padding:28px 2px 24px}
  .hero h1{font-size:clamp(57px,17vw,84px);max-width:none}
  .hero-lead{font-size:16px;margin:22px 0}
  .hero-mosaic{height:540px;margin-top:16px}
  .tile-a{left:0;top:2%;width:66%;height:45%}
  .tile-b{right:-7%;top:16%;width:47%;height:51%}
  .tile-c{left:3%;bottom:1%;width:50%;height:41%}
  .tile-d{left:47%;bottom:0;width:36%;height:29%}
  .hero-stamp{width:105px;height:105px;right:3%;bottom:3%;border-width:6px}
  .hero-stamp strong{font-size:22px}.hero-stamp span{font-size:9px}
  .scroll-cue{display:none}

  .calendar-priority{margin:-12px 12px 0}
  .calendar-inner{
    grid-template-columns:1fr auto;gap:15px;padding:25px 22px;border-radius:24px;
  }
  .calendar-kicker{grid-column:1 / -1}
  .calendar-title h2{font-size:35px}
  .calendar-arrow span{display:none}

  .saturday-section{padding:90px 0}
  .saturday-grid{display:flex;flex-direction:column;gap:28px;align-items:stretch}
  .saturday-photo{height:470px;border-radius:0 65px 0 65px;order:1}
  .saturday-copy{order:2}
  .saturday-copy h2,.about-copy h2,.teachers-title h2,.gallery-intro h2,.location-copy h2{font-size:48px}
  .saturday-copy p:not(.section-index){font-size:16px}

  .about-cascade{padding-bottom:90px}
  .about-ribbon{padding:15px 0;gap:30px}
  .about-grid{display:grid;grid-template-columns:1fr .7fr;gap:14px;margin-top:65px}
  .about-copy{grid-column:1 / -1;padding:0 0 20px}
  .image-tall{height:440px;border-radius:90px 18px 18px 18px}
  .image-small{height:315px;border-radius:18px 18px 80px 18px;margin:80px 0 0}

  .curriculum-section{padding:90px 0}
  .curriculum-head{display:block}
  .curriculum-head h2{font-size:64px;margin-bottom:20px}
  .curriculum-stage{height:690px}
  .curriculum-word{font-size:25vw}
  .word-one{top:7%}.word-two{bottom:7%}
  .cp-one{left:0;top:16%;width:65%;height:52%;border-radius:18px 90px 18px 18px}
  .cp-two{right:0;top:34%;width:49%;height:43%;border-radius:80px 18px 18px 18px}
  .age-panel{left:auto;right:3%;bottom:2%;width:130px;height:130px}
  .age-panel span{font-size:34px}

  .teachers-section{padding:90px 0}
  .teachers-title{display:block}
  .teachers-title h2{margin-bottom:20px}
  .teachers-track{
    display:grid;grid-template-columns:1fr 1fr;grid-template-rows:330px 260px;gap:12px;
  }
  .teacher-panel,.teacher-wide{height:auto;transform:none;border-radius:80px 80px 18px 18px}
  .teacher-wide{grid-column:1 / -1;grid-row:2;border-radius:18px}

  .gallery-section{padding:90px 0}
  .gallery-shell{display:block}
  .gallery-intro{position:static;margin-bottom:42px}
  .masonry{columns:2;column-gap:10px}
  .masonry-item{margin-bottom:10px;height:220px;border-radius:15px}
  .masonry-item.tall{height:360px}.masonry-item.wide{height:280px}

  .enroll-section{display:flex;flex-direction:column;min-height:auto}
  .enroll-photo{height:390px;margin:30px 14px 0;border-radius:22px 80px 22px 22px}
  .enroll-copy{padding:55px 20px 80px}
  .enroll-copy h2{font-size:58px}

  .location-section{display:flex;flex-direction:column}
  .location-copy{padding:80px 20px 50px}
  .map-wrap,.map-wrap iframe{min-height:450px}

  .site-footer{padding:55px 20px 22px}
  .footer-top{grid-template-columns:1fr auto;gap:20px}
  .footer-brand{width:120px;height:65px}
  .footer-top p{grid-column:1 / -1;grid-row:2;font-size:30px}
  .footer-calendar{grid-column:2;grid-row:1 / span 2;width:105px;height:105px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:38px 20px}
}

@media (max-width:520px){
  .hero h1{font-size:16.2vw}
  .hero-mosaic{height:455px}
  .hero-actions .btn{flex:1}
  .calendar-title h2{font-size:29px}
  .calendar-number{width:42px;height:42px}
  .section-shell{padding-left:16px;padding-right:16px}
  .saturday-photo{height:390px}
  .about-grid{grid-template-columns:1fr .66fr}
  .image-tall{height:360px}
  .image-small{height:250px}
  .curriculum-stage{height:590px}
  .cp-one{width:72%;height:52%}
  .cp-two{width:48%;height:39%;top:39%}
  .age-panel{width:112px;height:112px}
  .teachers-track{grid-template-rows:290px 230px}
  .masonry{columns:2}
  .masonry-item{height:180px}.masonry-item.tall{height:290px}.masonry-item.wide{height:230px}
  .enroll-copy h2{font-size:49px}
  .footer-grid{grid-template-columns:1fr}
}

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


/* ============================================================
   CENY HOME V4
   Correcciones puntuales sobre la HOME V1 aprobada.
   Clases únicas en maestros para evitar conflictos/caché.
   ============================================================ */

html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

/* BRANDING */
.header-shell{
  grid-template-columns:minmax(230px,320px) minmax(0,1fr) auto;
}
.brand{
  width:min(310px,23vw);
  height:70px;
}
.brand img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
}
.hero-stamp{
  overflow:hidden;
  padding:10px;
  background:rgba(255,253,248,.96);
}
.hero-stamp img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.hero-stamp strong,
.hero-stamp span{display:none}

.footer-brand{
  width:min(310px,27vw);
  height:76px;
  padding:0;
  border-radius:0;
  background:transparent;
}
.footer-brand img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
}

/* QUIÉNES SOMOS — imagen de aula solicitada */
.about-image.image-tall img{
  object-position:center center;
}

/* ============================================================
   MAESTROS — composición de burbujas REALMENTE contenida
   Ninguna foto puede superar su círculo.
   ============================================================ */
.ceny-teachers{
  position:relative;
  padding:125px 0 145px;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 24%, rgba(66,184,212,.15) 0 92px, transparent 93px),
    radial-gradient(circle at 61% 79%, rgba(167,207,56,.18) 0 72px, transparent 73px),
    var(--paper);
}
.ceny-teachers::before{
  content:"";
  position:absolute;
  width:430px;
  height:430px;
  border:1px solid rgba(16,33,27,.10);
  border-radius:50%;
  right:-150px;
  top:55px;
}
.ceny-teachers__grid{
  display:grid;
  grid-template-columns:minmax(310px,.40fr) minmax(560px,.60fr);
  gap:60px;
  align-items:center;
}
.ceny-teachers__copy{
  position:relative;
  z-index:3;
}
.ceny-teachers__copy h2{
  margin:0 0 24px;
  font:800 clamp(50px,5.3vw,82px)/.96 "Manrope",sans-serif;
  letter-spacing:-.055em;
}
.ceny-teachers__copy > p:not(.section-index){
  max-width:430px;
  margin:0 0 26px;
  font-size:17px;
  line-height:1.65;
  color:#465149;
}

.ceny-teachers__bubbles{
  position:relative;
  min-height:585px;
  min-width:0;
}

/* Base absoluta y con tamaño cerrado: evita fotos gigantes incluso si la foto original es enorme. */
.ceny-teacher-bubble{
  position:absolute;
  display:block;
  width:220px;
  height:270px;
  z-index:2;
  text-align:center;
  color:var(--ink);
  transition:transform .35s var(--ease);
}
.ceny-teacher-bubble:hover{
  transform:translateY(-9px);
  z-index:6;
}
.ceny-teacher-bubble__frame{
  position:relative;
  display:block;
  width:220px;
  height:220px;
  max-width:220px;
  max-height:220px;
  overflow:hidden;
  border-radius:50%;
  background:#fff;
  border:9px solid var(--paper);
  box-shadow:0 24px 55px rgba(16,33,27,.17);
  isolation:isolate;
}
.ceny-teacher-bubble__frame::before{
  content:"";
  position:absolute;
  inset:-12px;
  border-radius:50%;
  z-index:-1;
}
.ceny-teacher-bubble__frame img{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:0 !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center 22% !important;
  border-radius:50% !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}
.ceny-teacher-bubble__meta{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  max-width:220px;
  min-height:54px;
  margin-top:-8px;
  padding:9px 15px 8px;
  background:rgba(255,253,248,.96);
  border:1px solid rgba(16,33,27,.09);
  border-radius:999px;
  box-shadow:0 10px 24px rgba(16,33,27,.10);
}
.ceny-teacher-bubble__meta strong{
  font:800 13px/1.15 "Manrope",sans-serif;
}
.ceny-teacher-bubble__meta small{
  margin-top:4px;
  font-size:9px;
  font-weight:800;
  line-height:1;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#68716b;
}

/* Tres burbujas con ritmos y colores diferentes */
.ceny-teacher-bubble--monica{
  left:2%;
  top:18px;
}
.ceny-teacher-bubble--monica .ceny-teacher-bubble__frame{
  outline:16px solid var(--orange);
  outline-offset:-7px;
}
.ceny-teacher-bubble--sandra{
  width:250px;
  height:300px;
  right:4%;
  top:110px;
}
.ceny-teacher-bubble--sandra .ceny-teacher-bubble__frame{
  width:250px;
  height:250px;
  max-width:250px;
  max-height:250px;
  outline:16px solid var(--blue);
  outline-offset:-7px;
}
.ceny-teacher-bubble--sandra .ceny-teacher-bubble__meta{max-width:240px}
.ceny-teacher-bubble--elia{
  width:195px;
  height:245px;
  left:28%;
  bottom:4px;
}
.ceny-teacher-bubble--elia .ceny-teacher-bubble__frame{
  width:195px;
  height:195px;
  max-width:195px;
  max-height:195px;
  outline:15px solid var(--lime);
  outline-offset:-7px;
}
.ceny-teacher-bubble--elia .ceny-teacher-bubble__meta{max-width:195px}

.ceny-teachers__all{
  position:absolute;
  right:28%;
  bottom:2px;
  z-index:5;
  width:116px;
  height:116px;
  border-radius:50%;
  display:grid;
  place-content:center;
  text-align:center;
  background:var(--green);
  color:#fff;
  box-shadow:0 18px 38px rgba(7,88,61,.22);
  transition:transform .3s var(--ease);
}
.ceny-teachers__all:hover{
  transform:rotate(6deg) scale(1.04);
}
.ceny-teachers__all span{
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.10em;
}
.ceny-teachers__all b{
  margin-top:3px;
  font-size:22px;
}

/* TABLET: disposición específica */
@media (min-width:768px) and (max-width:1180px){
  .header-shell{
    grid-template-columns:minmax(205px,270px) minmax(0,1fr) auto;
  }
  .brand{width:min(260px,26vw)}
  .main-nav{gap:13px;font-size:11px}

  .ceny-teachers{
    padding:105px 0 120px;
  }
  .ceny-teachers__grid{
    grid-template-columns:minmax(260px,.40fr) minmax(430px,.60fr);
    gap:28px;
  }
  .ceny-teachers__bubbles{min-height:520px}

  .ceny-teacher-bubble--monica{
    width:185px;height:235px;left:0;top:18px;
  }
  .ceny-teacher-bubble--monica .ceny-teacher-bubble__frame{
    width:185px;height:185px;max-width:185px;max-height:185px;
  }

  .ceny-teacher-bubble--sandra{
    width:210px;height:260px;right:0;top:92px;
  }
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__frame{
    width:210px;height:210px;max-width:210px;max-height:210px;
  }

  .ceny-teacher-bubble--elia{
    width:165px;height:215px;left:23%;bottom:2px;
  }
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__frame{
    width:165px;height:165px;max-width:165px;max-height:165px;
  }

  .ceny-teachers__all{
    width:96px;height:96px;
    right:21%;bottom:5px;
  }
}

/* MÓVIL: no es el desktop apilado; carrusel visual de retratos */
@media (max-width:767px){
  .header-shell{
    grid-template-columns:minmax(0,1fr) auto auto;
  }
  .brand{
    width:min(230px,63vw);
    height:56px;
  }
  .main-nav{
    visibility:hidden;
    opacity:0;
    pointer-events:none;
  }
  .main-nav.is-open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
  }

  .ceny-teachers{
    padding:86px 0 100px;
  }
  .ceny-teachers__grid{
    display:block;
  }
  .ceny-teachers__copy{
    padding-right:10px;
    margin-bottom:42px;
  }
  .ceny-teachers__copy h2{
    font-size:48px;
  }

  .ceny-teachers__bubbles{
    min-height:0;
    display:flex;
    align-items:flex-start;
    gap:22px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:18px 16px 60px 4px;
    scrollbar-width:none;
  }
  .ceny-teachers__bubbles::-webkit-scrollbar{display:none}

  .ceny-teacher-bubble,
  .ceny-teacher-bubble--monica,
  .ceny-teacher-bubble--sandra,
  .ceny-teacher-bubble--elia{
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    flex:0 0 172px;
    width:172px;
    height:222px;
    scroll-snap-align:start;
  }
  .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--monica .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__frame{
    width:172px;
    height:172px;
    max-width:172px;
    max-height:172px;
  }
  .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__meta{
    max-width:172px;
    padding-left:10px;
    padding-right:10px;
  }
  .ceny-teacher-bubble__meta strong{font-size:11px}
  .ceny-teachers__all{
    position:relative;
    right:auto;
    bottom:auto;
    flex:0 0 98px;
    width:98px;
    height:98px;
    margin:39px 12px 0 2px;
    scroll-snap-align:start;
  }
}

/* MÓVIL PEQUEÑO */
@media (max-width:520px){
  .brand{width:min(215px,64vw)}
  .ceny-teacher-bubble,
  .ceny-teacher-bubble--monica,
  .ceny-teacher-bubble--sandra,
  .ceny-teacher-bubble--elia{
    flex-basis:154px;
    width:154px;
    height:204px;
  }
  .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--monica .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__frame{
    width:154px;
    height:154px;
    max-width:154px;
    max-height:154px;
  }
  .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__meta{
    max-width:154px;
  }
}

/* REDUCED MOTION */
@media (prefers-reduced-motion:reduce){
  .ceny-teacher-bubble:hover,
  .ceny-teachers__all:hover{
    transform:none!important;
  }
}


/* ============================================================
   CENY HOME V6 — cierre de FRONTEND
   Branding exacto + Maestros móvil + Footer
   ============================================================ */

/* ---------- LOGO / WORDMARK REGISTRADO ---------- */
.ceny-brand-lockup{
  display:flex !important;
  align-items:center;
  gap:13px;
  width:auto !important;
  max-width:430px;
  height:70px;
  overflow:visible;
}
.ceny-brand-symbol{
  flex:0 0 64px;
  width:64px !important;
  height:64px !important;
  object-fit:contain !important;
}
.ceny-brand-wordmark{
  flex:0 1 300px;
  width:min(300px,19vw) !important;
  height:auto !important;
  max-height:54px;
  object-fit:contain !important;
  object-position:left center !important;
}

/* El grid deja espacio real al wordmark; no vuelve a reducirlo a texto diminuto. */
.header-shell{
  grid-template-columns:minmax(330px,440px) minmax(0,1fr) auto !important;
  column-gap:22px;
}

/* ---------- MAESTROS: desktop queda intacto ---------- */
.ceny-teachers-mobile-nav{
  display:none;
}

/* ---------- FOOTER: sin texto duplicado ni solapamiento ---------- */
.footer-top{
  grid-template-columns:minmax(380px,1.2fr) minmax(140px,.8fr) auto !important;
  align-items:center;
  gap:35px;
}
.ceny-footer-lockup{
  display:flex !important;
  align-items:center;
  gap:16px;
  width:100% !important;
  max-width:510px;
  height:auto !important;
  min-height:92px;
  padding:10px 0 !important;
  background:transparent !important;
  border-radius:0 !important;
}
.ceny-footer-symbol{
  flex:0 0 84px;
  width:84px !important;
  height:84px !important;
  object-fit:contain !important;
}
.ceny-footer-wordmark{
  width:min(360px,28vw) !important;
  height:auto !important;
  max-height:66px;
  object-fit:contain !important;
  object-position:left center !important;
}

/* ---------- TABLET ---------- */
@media (min-width:768px) and (max-width:1180px){
  .header-shell{
    grid-template-columns:minmax(280px,350px) minmax(0,1fr) auto !important;
  }
  .ceny-brand-symbol{
    flex-basis:58px;
    width:58px !important;
    height:58px !important;
  }
  .ceny-brand-wordmark{
    width:min(255px,22vw) !important;
    max-height:48px;
  }

  .footer-top{
    grid-template-columns:minmax(310px,1fr) auto !important;
  }
  .ceny-footer-lockup{
    max-width:430px;
  }
  .ceny-footer-symbol{
    flex-basis:72px;
    width:72px !important;
    height:72px !important;
  }
  .ceny-footer-wordmark{
    width:min(310px,31vw) !important;
  }
}

/* ---------- MÓVIL: branding ---------- */
@media (max-width:767px){
  .header-shell{
    grid-template-columns:minmax(0,1fr) auto auto !important;
  }
  .ceny-brand-lockup{
    gap:8px;
    max-width:calc(100vw - 108px);
    height:56px;
  }
  .ceny-brand-symbol{
    flex:0 0 45px;
    width:45px !important;
    height:45px !important;
  }
  .ceny-brand-wordmark{
    width:min(190px,46vw) !important;
    max-height:39px;
  }

  /* MAESTROS MÓVIL:
     una persona completa por pantalla, snap central y navegación visible.
     Desktop no cambia. */
  .ceny-teachers-mobile-nav{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:25px;
  }
  .ceny-teachers-mobile-nav button{
    width:44px;
    height:44px;
    border:1px solid rgba(16,33,27,.18);
    border-radius:50%;
    background:#fff;
    color:var(--ink);
    font-size:20px;
    cursor:pointer;
    box-shadow:0 8px 22px rgba(16,33,27,.08);
  }
  .teacher-mobile-counter{
    min-width:52px;
    text-align:center;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
  }

  .ceny-teachers__bubbles{
    display:flex !important;
    align-items:flex-start;
    gap:18px;
    width:100%;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:calc((100vw - min(280px,76vw))/2);
    padding:
      22px
      calc((100vw - min(280px,76vw))/2)
      68px !important;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .ceny-teachers__bubbles::-webkit-scrollbar{display:none}

  .ceny-teacher-bubble,
  .ceny-teacher-bubble--monica,
  .ceny-teacher-bubble--sandra,
  .ceny-teacher-bubble--elia{
    position:relative !important;
    inset:auto !important;
    flex:0 0 min(280px,76vw) !important;
    width:min(280px,76vw) !important;
    height:auto !important;
    min-height:330px;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
  }

  .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--monica .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__frame{
    width:min(250px,68vw) !important;
    height:min(250px,68vw) !important;
    max-width:min(250px,68vw) !important;
    max-height:min(250px,68vw) !important;
    flex:0 0 min(250px,68vw);
  }

  .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__meta{
    width:auto;
    max-width:245px !important;
    min-height:58px;
    margin-top:-11px;
    padding:10px 17px 9px;
  }
  .ceny-teacher-bubble__meta strong{
    font-size:13px;
  }
  .ceny-teacher-bubble__meta small{
    font-size:9px;
  }

  /* El botón "Ver equipo" deja de ocupar un slide y queda fuera del carrusel visual. */
  .ceny-teachers__all{
    display:none !important;
  }

  /* Footer móvil: el logo ocupa su línea, calendario debajo.
     No hay ningún texto duplicado que pueda montarse. */
  .footer-top{
    display:flex !important;
    flex-direction:column;
    align-items:flex-start;
    gap:24px;
  }
  .ceny-footer-lockup{
    width:100% !important;
    max-width:100%;
    min-height:76px;
    gap:12px;
  }
  .ceny-footer-symbol{
    flex:0 0 64px;
    width:64px !important;
    height:64px !important;
  }
  .ceny-footer-wordmark{
    width:min(265px,64vw) !important;
    max-height:52px;
  }
  .footer-calendar{
    width:auto !important;
    height:auto !important;
    min-height:48px;
    padding:13px 20px;
    border-radius:999px !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
  }
}

@media (max-width:420px){
  .ceny-brand-lockup{
    max-width:calc(100vw - 92px);
  }
  .ceny-brand-symbol{
    flex-basis:40px;
    width:40px !important;
    height:40px !important;
  }
  .ceny-brand-wordmark{
    width:min(155px,43vw) !important;
  }

  .ceny-teachers__bubbles{
    scroll-padding-inline:calc((100vw - 76vw)/2);
    padding-left:12vw !important;
    padding-right:12vw !important;
  }

  .ceny-footer-symbol{
    flex-basis:56px;
    width:56px !important;
    height:56px !important;
  }
  .ceny-footer-wordmark{
    width:min(225px,62vw) !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .ceny-teachers__bubbles{
    scroll-behavior:auto !important;
  }
}


/* ============================================================
   CENY HOME V7 — cierre final FRONTEND
   Footer: wordmark claro sobre fondo verde oscuro.
   Header permanece con wordmark oscuro.
   ============================================================ */

.site-footer .ceny-footer-wordmark{
  filter: brightness(0) invert(1) !important;
  opacity: .96;
}


/* ============================================================
   CENY HOME V8 — ampliar burbujas de maestros a 6 perfiles
   ============================================================ */

/* Más altura para una composición de dos niveles en desktop */
.ceny-teachers__bubbles{
  min-height:760px;
}

.ceny-teacher-bubble--virginia{
  width:205px;
  height:255px;
  left:2%;
  bottom:32px;
}
.ceny-teacher-bubble--virginia .ceny-teacher-bubble__frame{
  width:205px;
  height:205px;
  max-width:205px;
  max-height:205px;
  outline:15px solid var(--blue);
  outline-offset:-7px;
}

.ceny-teacher-bubble--victoria{
  width:225px;
  height:275px;
  left:37%;
  top:245px;
}
.ceny-teacher-bubble--victoria .ceny-teacher-bubble__frame{
  width:225px;
  height:225px;
  max-width:225px;
  max-height:225px;
  outline:15px solid var(--orange);
  outline-offset:-7px;
}

.ceny-teacher-bubble--carlota{
  width:190px;
  height:245px;
  right:3%;
  bottom:18px;
}
.ceny-teacher-bubble--carlota .ceny-teacher-bubble__frame{
  width:190px;
  height:190px;
  max-width:190px;
  max-height:190px;
  outline:14px solid var(--lime);
  outline-offset:-7px;
}
.ceny-teacher-bubble--carlota .ceny-teacher-bubble__meta{
  max-width:210px;
}
.ceny-teacher-bubble--carlota .ceny-teacher-bubble__meta strong{
  font-size:12px;
}

/* Reubicar el acceso al equipo para que no choque con las nuevas burbujas */
.ceny-teachers__all{
  right:18%;
  bottom:275px;
}

/* TABLET */
@media (min-width:768px) and (max-width:1180px){
  .ceny-teachers__bubbles{
    min-height:690px;
  }

  .ceny-teacher-bubble--virginia{
    width:165px;
    height:215px;
    left:0;
    bottom:20px;
  }
  .ceny-teacher-bubble--virginia .ceny-teacher-bubble__frame{
    width:165px;
    height:165px;
    max-width:165px;
    max-height:165px;
  }

  .ceny-teacher-bubble--victoria{
    width:180px;
    height:230px;
    left:34%;
    top:280px;
  }
  .ceny-teacher-bubble--victoria .ceny-teacher-bubble__frame{
    width:180px;
    height:180px;
    max-width:180px;
    max-height:180px;
  }

  .ceny-teacher-bubble--carlota{
    width:155px;
    height:205px;
    right:0;
    bottom:8px;
  }
  .ceny-teacher-bubble--carlota .ceny-teacher-bubble__frame{
    width:155px;
    height:155px;
    max-width:155px;
    max-height:155px;
  }

  .ceny-teachers__all{
    right:11%;
    bottom:245px;
  }
}

/* MÓVIL:
   los tres nuevos perfiles heredan exactamente el carrusel centrado,
   un maestro completo por vez, igual que los tres perfiles existentes. */
@media (max-width:767px){
  .ceny-teacher-bubble--virginia,
  .ceny-teacher-bubble--victoria,
  .ceny-teacher-bubble--carlota{
    position:relative !important;
    inset:auto !important;
    flex:0 0 min(280px,76vw) !important;
    width:min(280px,76vw) !important;
    height:auto !important;
    min-height:330px;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
  }

  .ceny-teacher-bubble--virginia .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--victoria .ceny-teacher-bubble__frame,
  .ceny-teacher-bubble--carlota .ceny-teacher-bubble__frame{
    width:min(250px,68vw) !important;
    height:min(250px,68vw) !important;
    max-width:min(250px,68vw) !important;
    max-height:min(250px,68vw) !important;
    flex:0 0 min(250px,68vw);
  }

  .ceny-teacher-bubble--virginia .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--victoria .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--carlota .ceny-teacher-bubble__meta{
    max-width:245px !important;
  }
}

@media (max-width:420px){
  .ceny-teacher-bubble--virginia,
  .ceny-teacher-bubble--victoria,
  .ceny-teacher-bubble--carlota{
    flex-basis:76vw !important;
    width:76vw !important;
  }
}


/* ============================================================
   CENY HOME V9 — CIERRE DEFINITIVO FRONTEND
   Maestros:
   - Desktop/tablet: solo burbujas, SIN nombres.
   - Móvil: nombres visibles, separados y sin superposición.
   - Se elimina el gran espacio vacío bajo el carrusel móvil.
   ============================================================ */

/* DESKTOP + TABLET: composición limpia, solo retratos */
@media (min-width:768px){
  .ceny-teacher-bubble__meta{
    display:none !important;
  }

  /* Como ya no hay etiquetas, la altura visual de cada burbuja
     termina justo después del retrato. */
  .ceny-teacher-bubble{
    height:auto !important;
  }

  .ceny-teacher-bubble--monica{height:285px !important}
  .ceny-teacher-bubble--sandra{height:340px !important}
  .ceny-teacher-bubble--elia{height:245px !important}
  .ceny-teacher-bubble--virginia{height:205px !important}
  .ceny-teacher-bubble--victoria{height:225px !important}
  .ceny-teacher-bubble--carlota{height:190px !important}
}

/* MÓVIL: carrusel compacto, sin hueco inferior y etiquetas limpias */
@media (max-width:767px){
  .ceny-teachers{
    padding-bottom:72px !important;
  }

  .ceny-teachers__bubbles{
    min-height:0 !important;
    height:auto !important;
    align-items:flex-start !important;
    padding-top:14px !important;
    padding-bottom:26px !important;
  }

  .ceny-teacher-bubble,
  .ceny-teacher-bubble--monica,
  .ceny-teacher-bubble--sandra,
  .ceny-teacher-bubble--elia,
  .ceny-teacher-bubble--virginia,
  .ceny-teacher-bubble--victoria,
  .ceny-teacher-bubble--carlota{
    min-height:0 !important;
    height:auto !important;
    padding-bottom:0 !important;
  }

  /* En móvil sí aparecen los nombres, pero debajo de la foto,
     nunca montados sobre el círculo. */
  .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--sandra .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--elia .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--virginia .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--victoria .ceny-teacher-bubble__meta,
  .ceny-teacher-bubble--carlota .ceny-teacher-bubble__meta{
    display:flex !important;
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:calc(100% - 18px) !important;
    max-width:230px !important;
    min-height:0 !important;
    margin:12px auto 0 !important;
    padding:10px 12px 9px !important;
    border-radius:18px !important;
    line-height:1.2;
  }

  .ceny-teacher-bubble__meta strong{
    font-size:13px !important;
    line-height:1.2 !important;
    white-space:normal !important;
  }

  .ceny-teacher-bubble__meta small{
    margin-top:5px !important;
    font-size:8px !important;
    line-height:1.2 !important;
    letter-spacing:.08em !important;
    white-space:normal !important;
  }

  /* Mantener suficiente espacio entre el carrusel y la sección siguiente,
     sin el vacío de cientos de píxeles que aparecía antes. */
  .ceny-teachers__grid{
    padding-bottom:0 !important;
  }
}

/* MÓVIL PEQUEÑO */
@media (max-width:420px){
  .ceny-teachers{
    padding-bottom:58px !important;
  }

  .ceny-teachers__bubbles{
    padding-bottom:20px !important;
  }

  .ceny-teacher-bubble__meta{
    width:calc(100% - 12px) !important;
    margin-top:10px !important;
  }
}


/* ============================================================
   CENY HOME V10
   1) Separación final de burbujas de maestros en desktop.
   2) Calendario prioritario = PRÓXIMA CLASE + acceso secundario.
   ============================================================ */

/* Evitar choque de Virginia / Elia en desktop grande */
@media (min-width:1181px){
  .ceny-teacher-bubble--virginia{
    left:0 !important;
    bottom:18px !important;
  }
  .ceny-teacher-bubble--elia{
    left:37% !important;
    bottom:0 !important;
  }
  .ceny-teacher-bubble--victoria{
    left:50% !important;
    top:215px !important;
  }
  .ceny-teacher-bubble--carlota{
    right:0 !important;
    bottom:6px !important;
  }
}

/* PRÓXIMA CLASE */
.calendar-inner--next{
  min-height:205px;
  grid-template-columns:1.25fr .75fr;
  gap:0;
  padding:0;
  overflow:hidden;
}

.next-class-primary{
  position:relative;
  min-height:205px;
  padding:30px 38px 28px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  column-gap:28px;
  align-items:center;
  background:var(--orange);
}

.next-class-eyebrow{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:12px;
  text-transform:uppercase;
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
}

.next-class-date{
  grid-column:1;
  grid-row:2;
  display:flex;
  align-items:center;
  gap:18px;
}

.next-class-day{
  font:800 clamp(64px,6vw,98px)/.8 "Manrope",sans-serif;
  letter-spacing:-.06em;
}

.next-class-date-copy{
  display:flex;
  flex-direction:column;
  gap:5px;
}

.next-class-date-copy strong{
  font:800 clamp(22px,2.2vw,34px)/1 "Manrope",sans-serif;
  letter-spacing:-.03em;
}

.next-class-date-copy small{
  font-size:11px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.next-class-status{
  grid-column:2;
  grid-row:2;
  max-width:360px;
  margin:0;
  font-size:14px;
  line-height:1.5;
}

.calendar-secondary{
  padding:30px 34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--blue);
}

.calendar-secondary p{
  margin:0 0 6px;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.15em;
}

.calendar-secondary h2{
  margin:0 0 22px;
  font:800 clamp(25px,2.6vw,40px)/.95 "Manrope",sans-serif;
  letter-spacing:-.04em;
}

.calendar-secondary .calendar-arrow{
  justify-self:auto;
  align-self:flex-start;
}

.calendar-secondary .calendar-arrow b{
  width:46px;
  height:46px;
}

/* Tablet */
@media (min-width:768px) and (max-width:1180px){
  .calendar-inner--next{
    grid-template-columns:1.15fr .85fr;
  }
  .next-class-primary{
    padding:28px 26px;
    column-gap:18px;
  }
  .next-class-status{
    max-width:250px;
    font-size:13px;
  }
}

/* Mobile: primero la fecha, luego calendario pequeño */
@media (max-width:767px){
  .calendar-inner--next{
    grid-template-columns:1fr;
  }

  .next-class-primary{
    min-height:180px;
    padding:26px 22px;
    display:block;
  }

  .next-class-eyebrow{
    margin-bottom:18px;
  }

  .next-class-date{
    display:flex;
    align-items:center;
    margin-bottom:15px;
  }

  .next-class-day{
    font-size:74px;
  }

  .next-class-date-copy strong{
    font-size:26px;
  }

  .next-class-status{
    max-width:none;
    font-size:13px;
  }

  .calendar-secondary{
    min-height:128px;
    padding:22px;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto;
    column-gap:16px;
    align-items:center;
  }

  .calendar-secondary p{
    grid-column:1;
    grid-row:1;
  }

  .calendar-secondary h2{
    grid-column:1;
    grid-row:2;
    margin:0;
    font-size:27px;
  }

  .calendar-secondary .calendar-arrow{
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
  }

  .calendar-secondary .calendar-arrow span{
    display:none;
  }
}


/* ============================================================
   CENY HOME FINAL — CALENDARIO
   Una sola prioridad: PRÓXIMA CLASE.
   Un único acceso secundario al calendario completo.
   ============================================================ */

.calendar-inner--next{
  grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr) !important;
}

.next-class-primary{
  min-height:210px !important;
}

.next-class-date{
  align-items:center !important;
}

.next-class-day{
  min-width:1.35ch;
}

.next-class-status{
  font-weight:500;
}

.calendar-secondary{
  min-height:210px;
  padding:30px 34px !important;
  justify-content:center !important;
}

.calendar-secondary > p{
  margin:0 0 16px !important;
  font-size:11px !important;
  font-weight:800 !important;
  text-transform:uppercase;
  letter-spacing:.16em;
}

.calendar-secondary-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  width:100%;
  font:800 clamp(18px,2vw,28px)/1.05 "Manrope",sans-serif;
  letter-spacing:-.025em;
}

.calendar-secondary-link b{
  flex:0 0 52px;
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--ink);
  color:#fff;
  font-size:22px;
  transition:transform .25s var(--ease);
}

.calendar-secondary-link:hover b{
  transform:translate(3px,-3px);
}

/* Móvil: fecha primero; calendario debajo como acceso breve. */
@media (max-width:767px){
  .calendar-inner--next{
    grid-template-columns:1fr !important;
  }

  .next-class-primary{
    min-height:0 !important;
    padding:26px 22px 24px !important;
  }

  .next-class-date{
    margin-bottom:12px !important;
  }

  .next-class-status{
    margin:0 !important;
  }

  .calendar-secondary{
    min-height:112px !important;
    padding:20px 22px !important;
    display:block !important;
  }

  .calendar-secondary > p{
    margin-bottom:10px !important;
  }

  .calendar-secondary-link{
    font-size:25px;
  }

  .calendar-secondary-link b{
    flex-basis:46px;
    width:46px;
    height:46px;
  }
}


/* ============================================================
   AJUSTE FINAL MAESTROS — composición limpia en PC
   Se elimina el botón circular redundante "VER EQUIPO".
   El CTA principal permanece a la izquierda.
   ============================================================ */

@media (min-width:1181px){
  .ceny-teachers__all{
    display:none !important;
  }

  .ceny-teacher-bubble--sandra{
    right:1% !important;
    top:34px !important;
    left:auto !important;
  }

  .ceny-teacher-bubble--victoria{
    left:43% !important;
    top:300px !important;
    right:auto !important;
  }

  .ceny-teacher-bubble--virginia{
    left:0 !important;
    bottom:12px !important;
  }

  .ceny-teacher-bubble--elia{
    left:36% !important;
    bottom:-10px !important;
  }

  .ceny-teacher-bubble--carlota{
    right:0 !important;
    bottom:0 !important;
  }
}

@media (min-width:768px) and (max-width:1180px){
  .ceny-teachers__all{
    display:none !important;
  }
}


/* AJUSTE DEFINITIVO — Victoria García más a la izquierda en PC */
@media (min-width:1181px){
  .ceny-teacher-bubble--victoria{
    left:34% !important;
    right:auto !important;
  }
}


/* AJUSTE FINAL REAL — Victoria García claramente más a la izquierda */
@media (min-width:1181px){
  .ceny-teacher-bubble--victoria{
    left:18% !important;
    right:auto !important;
    top:300px !important;
  }
}


/* ============================================================
   AJUSTE FINAL — recuperar botón VER EQUIPO en el hueco libre
   ============================================================ */
@media (min-width:1181px){
  .ceny-teachers__all{
    display:grid !important;
    position:absolute !important;
    left:60% !important;
    right:auto !important;
    top:365px !important;
    bottom:auto !important;
    width:112px !important;
    height:112px !important;
    border-radius:50% !important;
    z-index:8 !important;
  }
}

/* En tablet se mantiene oculto para no recargar la composición. */
@media (min-width:768px) and (max-width:1180px){
  .ceny-teachers__all{
    display:none !important;
  }
}

/* En móvil sigue oculto: ya existe el CTA textual arriba. */
@media (max-width:767px){
  .ceny-teachers__all{
    display:none !important;
  }
}
