:root{
  --bg:#15100c;
  --bg-raised:#1d1712;
  --paper:#f5ecdd;
  --ink:#cdbfa9;
  --ink-dim:#8f8270;
  --magenta:#e8237f;
  --yellow:#f2d525;
  --brass:#c79a3d;
  --line:rgba(245,236,221,.14);
  --line-strong:rgba(245,236,221,.26);
  --display:'Anton',Impact,'Arial Narrow Bold',sans-serif;
  --script:'Permanent Marker','Segoe Print','Bradley Hand',cursive;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  overflow-x:hidden;
}
h1,h2,h3{
  font-family:var(--display);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.01em;
  color:var(--paper);
  margin:0;
  text-wrap:balance;
}
em{font-family:var(--script);font-style:normal;font-weight:400;color:var(--magenta);text-transform:none;letter-spacing:0;}
.mono{font-family:var(--display);font-weight:400;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
:focus-visible{outline:2px solid var(--magenta);outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}

/* ---------- monkey logo widget (reused in nav + footer) ---------- */
.mk-logo{position:relative;width:clamp(120px,15vw,220px);aspect-ratio:1/1;flex:none;filter:drop-shadow(0 8px 22px rgba(0,0,0,.6));}
.mk-logo--lg{width:clamp(130px,16vw,230px);}
.mk-glow{
  position:absolute;inset:-16%;border-radius:50%;
  background:radial-gradient(circle, rgba(232,35,127,0.5) 0%, rgba(199,154,61,0.24) 45%, rgba(0,0,0,0) 72%);
  filter:blur(14px);
  animation:mkGlowPulse 4.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes mkGlowPulse{0%,100%{opacity:.55;transform:scale(.96);}50%{opacity:.9;transform:scale(1.04);}}
.mk-badge-wrap{width:100%;height:100%;animation:mkIntro .6s cubic-bezier(.2,.7,.3,1.2) both;}
@keyframes mkIntro{0%{opacity:0;transform:scale(.9);}100%{opacity:1;transform:scale(1);}}
.mk-badge{position:relative;width:100%;height:100%;animation:mkFloat 5s ease-in-out infinite;transform-origin:50% 60%;will-change:transform;}
@keyframes mkFloat{0%,100%{transform:translateY(0) rotate(0deg);}25%{transform:translateY(-3px) rotate(-.5deg);}50%{transform:translateY(-5px) rotate(0deg);}75%{transform:translateY(-3px) rotate(.5deg);}}
.mk-badge-img{width:100%;height:100%;display:block;border-radius:50%;-webkit-user-drag:none;user-select:none;pointer-events:none;}
.mk-pupil{position:absolute;width:8.453%;height:10.207%;left:38.915%;top:38.038%;pointer-events:none;-webkit-user-drag:none;user-select:none;transform:translate(0px,0px);transition:transform .09s ease-out;}
.mk-pupil.blink{transform:translate(0px,0px) scaleY(.15);}
.mk-pupil-right{width:7.496%;height:9.171%;left:57.018%;top:38.517%;}
.mk-tongue{position:absolute;width:14.195%;height:15.949%;left:42.743%;top:59.091%;transform-origin:50% 0%;pointer-events:none;-webkit-user-drag:none;user-select:none;animation:mkTongueIdle 2.6s ease-in-out infinite;}
@keyframes mkTongueIdle{0%,100%{transform:translateY(0) scaleY(1) rotate(-2deg);}50%{transform:translateY(1.5%) scaleY(1.035) rotate(2deg);}}

/* ---------- nav (floats over the hero image) ---------- */
nav{
  position:absolute;top:0;left:0;right:0;z-index:20;
  display:grid;grid-template-columns:1fr auto .62fr;align-items:flex-start;gap:16px;
  padding:22px 28px;
}
.brand{display:flex;align-items:center;gap:18px;}
.brand-text{line-height:1.2;}
.brand-name{font-size:clamp(28px,4vw,48px);letter-spacing:.08em;color:var(--paper);text-shadow:0 2px 12px rgba(0,0,0,.65);}
.brand-tag{display:block;font-size:clamp(14px,1.6vw,19px);letter-spacing:.05em;color:var(--ink);text-transform:uppercase;margin-top:6px;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.nav-menu{display:flex;align-items:center;gap:34px;padding-top:20px;justify-self:center;flex-wrap:wrap;justify-content:center;}
.nav-menu .text-link{font-size:16px;}
.nav-links{display:flex;align-items:center;gap:18px;padding-top:14px;justify-self:end;}
.nav-link{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);
  padding-bottom:2px;border-bottom:1px solid transparent;text-shadow:0 2px 10px rgba(0,0,0,.6);
  transition:color .2s ease,border-color .2s ease;
}
.nav-link:hover{color:var(--magenta);border-color:var(--magenta);}
.nav-phone{font-size:16px;letter-spacing:.04em;}
.icon-link{
  display:inline-flex;color:var(--paper);
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.6));
  transition:color .2s ease,transform .2s ease;
}
.icon-link:hover{color:var(--magenta);transform:translateY(-1px);}

.nav-toggle{
  display:none;background:none;border:0;padding:6px;margin:-6px -6px 0 0;
  color:var(--paper);filter:drop-shadow(0 2px 8px rgba(0,0,0,.6));cursor:pointer;
  z-index:21;position:relative;
}
.nav-toggle svg{display:block;}
.nav-toggle .icon-close{display:none;}
.nav-toggle[aria-expanded="true"] .icon-menu{display:none;}
.nav-toggle[aria-expanded="true"] .icon-close{display:block;}
.nav-panel{display:contents;}
.nav-scrim{
  display:none;position:fixed;inset:0;background:rgba(10,7,5,.6);
  opacity:0;transition:opacity .25s ease;z-index:18;
}
.nav-scrim.open{display:block;opacity:1;}

@media (max-width:820px), (max-height:520px) and (orientation:landscape){
  nav{grid-template-columns:1fr auto;align-items:center;padding-top:18px;padding-bottom:18px;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .nav-panel{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:fixed;top:0;right:0;bottom:0;width:min(82vw,340px);
    background:var(--bg-raised);padding:90px 30px 30px;z-index:19;
    transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.3,1);
    box-shadow:-16px 0 48px rgba(0,0,0,.45);overflow-y:auto;
  }
  .nav-panel.open{transform:translateX(0);}
  .nav-menu{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding-top:0;}
  .nav-menu .text-link{width:100%;padding:16px 0;border-bottom:1px solid var(--line);font-size:16px;}
  .nav-links{flex-direction:column;align-items:flex-start;gap:16px;justify-self:auto;padding-top:26px;}
  .nav-phone{font-size:18px;}
}

/* ---------- buttons ---------- */
.stamp-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:15px 28px;
  background:var(--magenta);color:#1a0510;
  font-family:var(--display);font-weight:400;font-size:14px;
  letter-spacing:.06em;text-transform:uppercase;
  border-radius:3px;
  box-shadow:4px 4px 0 var(--brass);
  transition:transform .18s ease, box-shadow .18s ease;
}
.stamp-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--brass);}
.kids-btn{
  position:absolute;right:28px;bottom:64px;z-index:15;
  background:var(--yellow);box-shadow:4px 4px 0 var(--magenta);
}
.kids-btn:hover{box-shadow:6px 6px 0 var(--magenta);}
.text-link{
  font-family:var(--display);font-size:13px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--paper);text-underline-offset:5px;text-decoration:underline;text-decoration-color:rgba(245,236,221,.4);
  transition:color .2s ease, text-decoration-color .2s ease;
}
.text-link:hover{color:var(--magenta);text-decoration-color:var(--magenta);}
.text-link[aria-current="page"]{color:var(--magenta);text-decoration-color:var(--magenta);}

/* ---------- hero : full-bleed image ---------- */
.hero{
  position:relative;
  min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;
  background:var(--bg);
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 55%;
  display:block;-webkit-user-drag:none;user-select:none;
}
.hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg, rgba(21,16,12,.62) 0%, rgba(21,16,12,.12) 24%, rgba(21,16,12,.2) 52%, rgba(21,16,12,.95) 100%);
}

.hero-content{position:relative;z-index:2;padding:0 28px 64px;max-width:900px;}
.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:0 0 18px;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.hero-content h1{
  font-size:clamp(34px,6.2vw,74px);
  line-height:1.08;
  max-width:15ch;
  text-shadow:0 4px 24px rgba(0,0,0,.45);
}
.subtitle{max-width:52ch;margin:20px 0 32px;color:var(--paper);opacity:.86;font-size:16px;line-height:1.65;text-shadow:0 2px 14px rgba(0,0,0,.4);}
.cta-row{display:flex;gap:26px;flex-wrap:wrap;align-items:center;}

/* ---------- facts bar ---------- */
.facts{
  position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:56px 28px 0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
}
.fact{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:6px;}
.fact-num{font-size:22px;color:var(--yellow);letter-spacing:.02em;}
.fact-label{font-size:12px;color:var(--ink-dim);line-height:1.4;}
@media (max-width:760px){.facts{grid-template-columns:repeat(2,1fr);gap:24px;padding:44px 24px 0;}}

/* ---------- disciplines ---------- */
.steps{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:80px 28px 110px;}
.section-head{max-width:44ch;margin-bottom:52px;}
.section-head h2{font-size:clamp(26px,3.6vw,38px);line-height:1.2;}
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.step{border-top:1px solid var(--line);padding-top:22px;}
.step h3{font-size:18px;font-weight:500;margin-bottom:10px;}
.step p{margin:0;color:var(--ink-dim);font-size:13px;line-height:1.6;}
@media (max-width:900px){.steps-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:760px){.steps{padding:60px 24px 80px;}.steps-grid{grid-template-columns:1fr;gap:28px;}}

/* ---------- footer ---------- */
footer{position:relative;z-index:1;border-top:1px solid var(--line);padding:56px 28px 28px;text-align:center;}
footer > .eyebrow{margin-bottom:10px;}
footer h2{font-size:clamp(28px,5vw,48px);max-width:16ch;margin:0 auto 12px;line-height:1.16;}
.footer-sub{max-width:46ch;margin:0 auto 22px;color:var(--ink-dim);font-size:15px;line-height:1.6;}
.footer-sub--2{max-width:none;}
@media (max-width:640px){.footer-sub--2{max-width:46ch;} .footer-sub--2 .br-desk{display:none;}}
.footer-bottom{
  display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:24px;
  max-width:1080px;margin:48px auto 0;padding-top:22px;border-top:1px solid var(--line);text-align:left;
}
.footer-bottom .brand-name,.footer-bottom .brand-tag{text-shadow:none;color:inherit;}
.footer-bottom .brand-name{color:var(--paper);}
.footer-bottom .nav-link{color:var(--ink);text-shadow:none;padding-top:0;}
.footer-bottom .nav-link:hover{color:var(--magenta);}
.footer-bottom .nav-links{padding-top:0;}
.footer-contact{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.copyright{color:var(--ink-dim);font-size:11px;width:100%;text-align:center;margin-top:28px;letter-spacing:.06em;text-transform:uppercase;}
@media (max-width:640px){.footer-contact{align-items:flex-start;}}

@media (max-width:640px){
  nav{padding:16px 18px;}
  .nav-links{gap:14px;}
  nav .brand-tag{display:none;}
  .mk-logo{width:80px;}
  .hero-content{padding-top:100px;padding-bottom:28px;}
  .cta-row{gap:16px;}
  .kids-btn{position:static;align-self:flex-start;margin:22px 0 32px 28px;padding:11px 18px;font-size:12px;}
  .nav-panel{width:min(86vw,300px);padding:80px 24px 24px;}
}
@media (max-width:420px){
  .brand-name{font-size:22px;}
  .footer-bottom .mk-logo--lg{width:64px;}
}

/* ---------- larger mobile type (readability on phones) ---------- */
@media (max-width:760px){
  .eyebrow{font-size:13px;}
  .subtitle{font-size:17px;}
  .fact-num{font-size:24px;}
  .fact-label{font-size:13px;}
  .step h3{font-size:19px;}
  .step p{font-size:14.5px;}
  .footer-sub{font-size:16px;}
  .footer-bottom .nav-link{font-size:13px;}
  .text-link{font-size:14px;}
  .stamp-btn{font-size:15px;}
}

/* ---------- short/landscape phones: keep nav from overlapping hero text ---------- */
@media (max-height:520px) and (orientation:landscape){
  nav{padding:12px 20px;}
  nav .brand-tag{display:none;}
  .mk-logo{width:46px;}
  .hero-content{padding-top:96px;padding-bottom:20px;}
  .hero-content h1{font-size:clamp(22px,5vw,34px);}
  .subtitle{font-size:14px;margin:10px 0 16px;}
  .eyebrow{margin-bottom:8px;}
  .cta-row{gap:12px;}
  .kids-btn{right:16px;bottom:14px;padding:9px 16px;font-size:11px;}
}

/* ---------- móvil: más oscurecido sobre la foto para que el texto se lea bien ---------- */
@media (max-width:760px){
  .hero-scrim{background:linear-gradient(180deg, rgba(21,16,12,.72) 0%, rgba(21,16,12,.38) 28%, rgba(21,16,12,.72) 58%, rgba(21,16,12,.96) 100%);}
}


/* ---------- cabecera corta (páginas interiores) ---------- */
.hero--short{min-height:0;height:clamp(330px,40vh,360px);justify-content:flex-end;}
.hero--short .mk-logo{width:clamp(90px,9vw,128px);}
.hero--short .hero-media img{object-position:50% 45%;}
.hero--short .hero-scrim{background:linear-gradient(90deg, rgba(21,16,12,.85) 0%, rgba(21,16,12,.55) 40%, rgba(21,16,12,.2) 75%), linear-gradient(180deg, rgba(21,16,12,.6) 0%, rgba(21,16,12,.1) 35%, rgba(21,16,12,.3) 70%, rgba(21,16,12,1) 100%);}
.hero--short .hero-content{width:100%;max-width:1180px;margin:0 auto;padding:0 28px 14px;}
.hero--short h1{max-width:none;font-size:clamp(32px,4.4vw,52px);}
.hero--short .eyebrow{margin-bottom:10px;}
.hero--short .subtitle{margin:10px 0 0;font-size:15px;}
footer.footer--slim{padding:90px 28px 32px;}
footer.footer--slim .copyright{margin-top:70px;padding-top:26px;border-top:1px solid var(--line);max-width:1080px;margin-left:auto;margin-right:auto;}
@media (max-width:760px){
  .hero--short{height:auto;min-height:300px;}
  .hero--short .mk-logo{width:80px;}
  .hero--short .hero-content{padding:104px 18px 14px;}
  .hero--short .subtitle{font-size:15px;}
  footer.footer--slim{padding-bottom:60px;}
}
@media (max-height:520px) and (orientation:landscape){
  .hero--short{height:auto;}
  .hero--short .mk-logo{width:46px;}
  .hero--short .hero-content{padding-top:84px;}
}

/* disciplinas de la portada, más grandes */
.eyebrow.eyebrow--big{
  font-size:17px;letter-spacing:.14em;margin-bottom:20px;
  text-shadow:1px 1px 0 #0d0803, 2px 2px 0 #0d0803;
}
@media (max-width:760px){.eyebrow.eyebrow--big{font-size:15px;letter-spacing:.1em;line-height:1.5;margin-bottom:12px;}}

/* nota discreta IA */
.ai-note{opacity:.55;white-space:nowrap;}
@media (max-width:640px){.ai-note{display:block;margin-top:4px;} .ai-dot{display:none;}}

/* ---------- móvil: sin recuadro azul al tocar ---------- */
html{-webkit-tap-highlight-color:transparent;}
*{-webkit-tap-highlight-color:transparent;}
.mk-logo,.mk-logo *,.brand,.brand *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.mk-logo img{-webkit-user-drag:none;pointer-events:none;}
