/* ==========================================================
   CHIMOXOS — site styles, built from the brand kit
   Grounds: azul · amarillo · noche · rosa
   Type: graffiti marker (titles, like the wordmark)
         Lexend Zetta (labels, like the tagline)
         Lexend Exa (headings) · Lexend (body)
   Hearts: cempasúchil = standard · guiño = comedy & short-form
           estrella = premieres & Talento Local
   ========================================================== */
:root{
  --azul:#4A57F0;
  --azul-claro:#6672FF;
  --rosa:#FF0A8A;
  --rosa-claro:#FF5BAE;
  --chicle:#FF5BAE;      /* the only pink the logo/hearts may sit on */
  --naranja:#FF8A46;
  --amarillo:#FFB903;
  --verde:#6CB80A;
  --noche:#1C0F30;
  --blanco:#FFFFFF;

  --f-marker:"Permanent Marker","Marker Felt","Comic Sans MS",cursive;
  --f-label:"Lexend Zetta","Lexend","Arial",sans-serif;
  --f-head:"Lexend Exa","Lexend","Arial",sans-serif;
  --f-body:"Lexend",system-ui,-apple-system,"Segoe UI",sans-serif;

  --gutter:max(20px, env(safe-area-inset-left, 0px));
  --max:1160px;
  --radius:28px;
  color-scheme:light;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:clip}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--f-body);font-size:17px;line-height:1.65;color:var(--blanco);background:var(--azul);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--amarillo);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* two languages, one page: show the active one */
html[data-lang="en"] [lang="es"],html[data-lang="es"] [lang="en"]{display:none!important}

.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:max(20px, env(safe-area-inset-right, 0px))}
.band{padding-block:clamp(72px,9vw,120px)}
.band--azul{background:var(--azul);color:var(--blanco)}
.band--amarillo{background:var(--amarillo);color:var(--noche)}
.band--noche{background:var(--noche);color:var(--blanco)}
.band--rosa{background:var(--rosa);color:var(--blanco)}

/* ---------- type ---------- */
.label{font-family:var(--f-label);font-weight:600;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--amarillo)}
.band--amarillo .label{color:var(--rosa)}
.band--rosa .label{color:var(--amarillo)}
.title{font-family:var(--f-marker);font-weight:400;font-size:clamp(2.8rem,8vw,5.8rem);line-height:.95;color:var(--rosa);text-wrap:balance}
.h2{font-family:var(--f-head);font-weight:700;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.1;letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance}
.band--amarillo .h2{color:var(--rosa)}
.band--noche .h2{color:var(--amarillo)}
.h3{font-family:var(--f-head);font-weight:700;font-size:1.15rem;line-height:1.2;text-transform:uppercase}
.lede{font-size:clamp(1.08rem,1.8vw,1.28rem);max-width:58ch}
.h2 + .lede,.h2 + p{margin-top:1rem}
.label + .h2{margin-top:.2rem}
.prose{display:grid;gap:1.1rem;max-width:62ch;font-size:1.08rem}
.stack{display:grid;gap:1.2rem}
.tagline{font-family:var(--f-label);font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--amarillo);font-size:clamp(.66rem,1.6vw,.95rem)}

/* brush underline, like the wordmark's */
.swoosh{display:block;width:min(340px,70%);height:22px;margin-top:.6rem}
.swoosh path{fill:none;stroke:var(--rosa);stroke-width:9;stroke-linecap:round}
.band--rosa .swoosh path{stroke:var(--amarillo)}

/* ---------- buttons ---------- */
.btns{display:flex;flex-wrap:wrap;gap:.9rem}
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--f-label);font-weight:600;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:1.05rem 1.6rem;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn--rosa{background:var(--rosa);color:var(--blanco)}
.btn--rosa:hover{background:var(--rosa-claro)}
.btn--amarillo{background:var(--amarillo);color:var(--noche)}
.btn--line{border-color:currentColor}
.btn--line:hover{background:var(--amarillo);border-color:var(--amarillo);color:var(--noche)}

/* ---------- header ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--azul);border-bottom:2px solid rgba(255,255,255,.12)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--azul)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:72px}
.brand img{height:34px;width:auto}
.nav{display:flex;align-items:center;gap:1.2rem}
.nav a{text-decoration:none;font-weight:500;font-size:.9rem;white-space:nowrap;position:relative;padding-block:.3rem}
.nav a:hover{color:var(--amarillo)}
.nav a[aria-current="page"]{color:var(--amarillo)}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;border-radius:4px;background:var(--rosa)}
.nav .nav__cta{background:var(--amarillo);color:var(--noche);padding:.5rem 1.1rem;border-radius:999px;font-weight:700}
.nav .nav__cta:hover{color:var(--noche);background:var(--blanco)}
.nav .nav__cta[aria-current="page"]::after{display:none}
.header-tools{display:flex;align-items:center;gap:1rem}
.lang{display:flex;gap:2px;background:rgba(28,15,48,.35);border-radius:999px;padding:3px;border:0;cursor:pointer;font-family:var(--f-label);font-size:.62rem;font-weight:600;letter-spacing:.14em}
.lang span{padding:.4rem .6rem;border-radius:999px;color:rgba(255,255,255,.7)}
html[data-lang="en"] .lang__en,html[data-lang="es"] .lang__es{background:var(--amarillo);color:var(--noche)}
.menu-btn{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:7px}
.menu-btn span{display:block;width:26px;height:3px;border-radius:3px;background:var(--blanco);transition:transform .3s}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-5px) rotate(-45deg)}

/* ---------- halo: a brand heart with its rays ---------- */
.halo{--size:220px;position:relative;width:var(--size);aspect-ratio:1;max-width:100%;display:grid;place-items:center;flex:none}
.halo img{width:52%;position:relative;z-index:1;transform-origin:50% 60%}
.halo i{position:absolute;left:50%;top:50%;width:calc(var(--size)*.03);height:calc(var(--size)*.11);margin-left:calc(var(--size)*-.015);background:var(--amarillo);border-radius:99px;transform:rotate(calc(var(--n)*30deg)) translateY(calc(var(--size)*-.45));transform-origin:50% 0;animation:ray 3.2s ease-in-out infinite;animation-delay:calc(var(--n)*-.27s)}
@keyframes ray{0%,100%{opacity:1}50%{opacity:.35}}
.halo--beat img{animation:beat 2.4s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}12%{transform:scale(1.07)}24%{transform:scale(1)}36%{transform:scale(1.04)}}

/* ---------- home hero ---------- */
.hero{text-align:center;padding-block:clamp(48px,7vw,90px) clamp(64px,8vw,100px)}
.hero .halo{--size:clamp(170px,26vw,260px);margin:0 auto}
.hero__mark{width:min(820px,100%);margin:clamp(-10px,-1vw,0px) auto 0}
.hero .tagline{margin-top:1rem}
.hero .lede{margin:1.8rem auto 2.2rem;color:var(--blanco)}
.hero .btns{justify-content:center}

/* ---------- page hero (inner pages) ---------- */
.page-hero{padding-block:clamp(56px,8vw,100px)}
.page-hero .wrap{display:grid;grid-template-columns:1fr auto;align-items:center;gap:clamp(24px,5vw,72px)}
.page-hero .halo{--size:clamp(150px,22vw,250px)}
.page-hero .lede{margin-top:1.4rem}
.page-hero--noche{background:var(--noche)}
.page-hero--noche .lede{color:rgba(255,255,255,.88)}

/* ---------- talavera trim (from the kit's tile moodboard) ---------- */
.trim{height:44px;background-color:var(--amarillo);background-size:44px 44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'%3E%3Crect width='44' height='44' fill='%23FFB903'/%3E%3Cg fill='%234A57F0'%3E%3Ccircle cx='0' cy='0' r='9'/%3E%3Ccircle cx='44' cy='0' r='9'/%3E%3Ccircle cx='0' cy='44' r='9'/%3E%3Ccircle cx='44' cy='44' r='9'/%3E%3C/g%3E%3Cg fill='%23FF0A8A'%3E%3Cellipse cx='22' cy='11' rx='4.5' ry='7'/%3E%3Cellipse cx='22' cy='33' rx='4.5' ry='7'/%3E%3Cellipse cx='11' cy='22' rx='7' ry='4.5'/%3E%3Cellipse cx='33' cy='22' rx='7' ry='4.5'/%3E%3C/g%3E%3Cg fill='%236CB80A'%3E%3Ccircle cx='14' cy='14' r='2.6'/%3E%3Ccircle cx='30' cy='14' r='2.6'/%3E%3Ccircle cx='14' cy='30' r='2.6'/%3E%3Ccircle cx='30' cy='30' r='2.6'/%3E%3C/g%3E%3Ccircle cx='22' cy='22' r='5.5' fill='%23FF8A46'/%3E%3Ccircle cx='22' cy='22' r='2.2' fill='%23FFB903'/%3E%3C/svg%3E")}

/* ---------- marquee ribbon ---------- */
.ribbon{background:var(--chicle);color:var(--noche);overflow:hidden;border-block:3px solid var(--noche)}
.ribbon__track{display:flex;align-items:center;gap:1.6rem;width:max-content;padding-block:1rem;animation:marquee 34s linear infinite;font-family:var(--f-label);font-weight:600;font-size:.9rem;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap}
.ribbon__track img{width:22px;height:auto}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- doors (home → pages) ---------- */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.6rem}
.door{display:grid;grid-template-rows:auto 1fr auto;gap:1rem;padding:1.8rem;border-radius:var(--radius);text-decoration:none;min-height:300px;transition:transform .25s ease}
.door:hover{transform:translateY(-6px) rotate(-.6deg)}
.door img{width:72px}
.door p{font-size:1rem}
.door__go{font-family:var(--f-label);font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.door--azul{background:var(--azul);color:var(--blanco)}
.door--chicle{background:var(--chicle);color:var(--noche)}
.door--noche{background:var(--noche);color:var(--blanco)}
.door--azul .h3,.door--noche .h3{color:var(--amarillo)}
.door--chicle .h3{color:var(--noche)}

/* split layout */
.split{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(32px,6vw,90px);align-items:start}
.split > *{min-width:0}

/* names marquee on home */
.crew-strip{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}
.chip{font-family:var(--f-label);font-weight:600;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;padding:.55rem .9rem;border-radius:999px;border:2px solid rgba(255,255,255,.25)}
.chip--dot::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--rosa);margin-right:.55rem;vertical-align:1px}

/* ---------- nosotros ---------- */
.table-quote{background:var(--verde);color:var(--noche);border-radius:var(--radius);padding:clamp(28px,4vw,48px);position:relative}
.table-quote .title{color:var(--noche);font-size:clamp(2.2rem,5vw,3.6rem)}
.table-quote p{margin-top:1rem;font-weight:500}
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:2.4rem}
.value{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start;padding:1.6rem;border-radius:var(--radius);background:rgba(255,255,255,.08)}
.value img{width:44px}
.value .h3{color:var(--amarillo);margin-bottom:.4rem}
.tagline-break{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
.word{border-top:4px solid var(--rosa);padding-top:1.2rem}
.word__es{font-family:var(--f-marker);font-size:clamp(1.8rem,3.4vw,2.5rem);line-height:1.05;color:var(--rosa)}
.word__en{font-family:var(--f-label);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amarillo);margin:.5rem 0 .8rem}
.lineage{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:2rem}
.lineage__old{font-family:var(--f-marker);font-size:1.8rem;color:var(--rosa-claro);opacity:.75;text-decoration:line-through;text-decoration-thickness:3px}
.lineage__arrow{font-family:var(--f-label);color:var(--amarillo)}
.lineage img{height:44px;width:auto}

/* ---------- movidas ---------- */
.movida{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,48px);align-items:center;padding-block:2.4rem;border-bottom:2px solid rgba(28,15,48,.15)}
.movida:last-child{border-bottom:0}
.movida__mark{width:clamp(90px,14vw,150px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center}
.movida__mark img{width:56%}
.movida--azul .movida__mark{background:var(--azul)}
.movida--chicle .movida__mark{background:var(--chicle)}
.movida--noche .movida__mark{background:var(--noche)}
.movida--verde .movida__mark{background:var(--verde)}
.movida--naranja .movida__mark{background:var(--naranja)}
.movida .h2{font-size:clamp(1.4rem,3vw,2.1rem)}
.movida p{max-width:60ch;margin-top:.6rem;font-size:1.05rem}
.badge{display:inline-block;font-family:var(--f-label);font-weight:600;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;background:var(--rosa);color:var(--blanco);padding:.4rem .8rem;border-radius:999px;margin-bottom:.8rem}
.empty{border:2px dashed currentColor;border-radius:var(--radius);padding:clamp(28px,4vw,44px);text-align:center;opacity:.9}
.empty .h3{margin-bottom:.5rem;color:var(--amarillo)}

/* ---------- equipo ---------- */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.member{border-radius:var(--radius);padding:1.6rem 1.4rem 1.8rem;display:grid;gap:.4rem;align-content:start;transition:transform .25s ease}
.member:hover{transform:translateY(-6px)}
.member__portrait{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;margin-bottom:.9rem;background:rgba(28,15,48,.22);overflow:hidden}
.member__portrait img{width:50%}
.member__portrait img.photo{width:100%;height:100%;object-fit:cover}
.member .h3{font-size:1rem}
.member p{font-size:.92rem;line-height:1.45}
.member .note{font-family:var(--f-label);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;margin-top:.5rem;opacity:.85}
.member__portrait{width:100%;max-width:200px}
.member:nth-child(4n+1){background:var(--azul);color:var(--blanco)}
.member:nth-child(4n+2){background:var(--chicle);color:var(--noche)}
.member:nth-child(4n+3){background:var(--naranja);color:var(--noche)}
.member:nth-child(4n+4){background:var(--verde);color:var(--noche)}
.member:nth-child(4n+1) .h3{color:var(--amarillo)}

/* ---------- talento ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem;counter-reset:step}
.step{background:var(--blanco);color:var(--noche);border-radius:var(--radius);padding:1.8rem}
.step::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--rosa);color:var(--blanco);font-family:var(--f-marker);font-size:1.5rem;margin-bottom:1rem}
.step .h3{color:var(--rosa);margin-bottom:.5rem}
.artists{display:grid;gap:1rem;margin-top:2rem}
.artist{display:grid;grid-template-columns:110px 1fr;gap:1.4rem;align-items:start;background:rgba(255,255,255,.07);border-radius:var(--radius);padding:1.4rem}
.artist > img{width:110px;height:110px;border-radius:50%;object-fit:cover;border:4px solid var(--chicle)}
.artist__heart{width:110px;height:110px;border-radius:50%;background:var(--azul);display:grid;place-items:center}
.artist__heart img{width:52%}
.artist > div{display:grid;gap:.35rem;min-width:0}
.artist .h3{color:var(--amarillo)}
.artist__role{font-family:var(--f-label);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rosa-claro);margin:.3rem 0 .6rem}

/* ---------- contacto ---------- */
.topics{display:grid;gap:.9rem;margin-top:1.8rem}
.topic{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start}
.topic img{width:34px;margin-top:2px}
.topic strong{display:block;font-family:var(--f-head);text-transform:uppercase;font-size:.95rem}
.form{background:var(--blanco);color:var(--noche);border-radius:var(--radius);padding:clamp(22px,3.5vw,40px);display:grid;gap:1.15rem}
.field{display:grid;gap:.4rem}
.field label{font-family:var(--f-label);font-weight:600;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rosa)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--noche);background:#F6F4FF;border:2px solid transparent;border-radius:14px;padding:.85rem 1rem;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--azul);background:var(--blanco)}
.form .btn{justify-self:start}
.form__status{font-weight:500;min-height:1.5em}
.form__status.ok{color:#2f7d08}.form__status.err{color:#c4006a}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- CTA band ---------- */
.cta{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta .title{color:var(--blanco);font-size:clamp(2.4rem,6vw,4.4rem)}

/* ---------- footer ---------- */
.site-footer{background:var(--noche);color:var(--blanco)}
.site-footer .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2rem;padding-block:64px 40px}
.site-footer .wordmark{width:240px}
.site-footer .tagline{margin-top:.9rem;font-size:.6rem}
.foot-links{display:grid;gap:.5rem;align-content:start}
.foot-links a{text-decoration:none;opacity:.85}
.foot-links a:hover{opacity:1;color:var(--amarillo)}
.foot-links .label{margin-bottom:.4rem}
.legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:1.4rem;font-size:.85rem;opacity:.75;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}


/* ---------- follow (home) ---------- */
.follow{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.4rem}
.follow__card{display:grid;gap:.7rem;align-content:start;padding:1.8rem;border-radius:var(--radius);text-decoration:none;transition:transform .25s ease}
.follow__card:hover{transform:translateY(-6px) rotate(.6deg)}
.follow__card svg{width:40px;height:40px}
.follow__card strong{font-family:var(--f-head);font-size:1.25rem;text-transform:uppercase}
.follow__card p{font-size:.95rem}
.follow__card--rosa{background:var(--rosa);color:var(--blanco)}
.follow__card--amarillo{background:var(--amarillo);color:var(--noche)}
.follow__card--naranja{background:var(--naranja);color:var(--noche)}
.follow__card--noche{background:var(--noche);color:var(--blanco)}
.follow__card--rosa svg,.follow__card--noche svg{color:var(--amarillo)}
.follow__card--amarillo svg,.follow__card--naranja svg{color:var(--rosa)}

/* ---------- social links ---------- */
.social{display:grid;gap:.6rem}
.social__link{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:500}
.social__link svg{width:22px;height:22px;flex:none;color:var(--amarillo)}
.social__link:hover{color:var(--amarillo)}
.social--dark{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}
.social--dark .social__link{background:var(--noche);color:var(--blanco);padding:.6rem 1rem;border-radius:999px;font-size:.92rem}
.social--dark .social__link:hover{background:var(--rosa);color:var(--blanco)}

/* ---------- newsletter ---------- */
.foot-news{display:grid;gap:.9rem;align-content:start;max-width:520px}
.foot-news__title{color:var(--amarillo);margin-top:1.2rem}
.foot-news > p:not(.tagline){opacity:.85;font-size:.95rem}
.news{display:grid;gap:.8rem}
.news__row{display:flex;gap:.6rem;flex-wrap:wrap}
.news__row input{flex:1 1 220px;min-width:0;font:inherit;font-size:1rem;color:var(--noche);background:var(--blanco);border:2px solid transparent;border-radius:999px;padding:.85rem 1.2rem}
.news__row input:focus{outline:none;border-color:var(--amarillo)}
.news__lang{border:0;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.9rem;align-items:center}
.news__lang legend{float:left;font-family:var(--f-label);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--amarillo);margin-right:.4rem}
.news__lang label{display:flex;align-items:center;gap:.4rem;cursor:pointer}
.news__lang input{accent-color:var(--rosa)}
.news__status{min-height:1.4em;font-weight:500;font-size:.95rem}
.news__status.ok{color:var(--amarillo)}.news__status.err{color:var(--rosa-claro)}

@media (max-width:1020px){.follow{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.follow{grid-template-columns:1fr}}


/* ---------- section head ---------- */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;margin-bottom:2rem}
.section-head .h2{margin:0}
.count{font-family:var(--f-label);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amarillo)}
.count span{font-family:var(--f-marker);font-size:2rem;letter-spacing:0;color:var(--rosa);margin-right:.2rem}

/* ---------- events ---------- */
.events{display:grid;gap:1.2rem}
.event{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(16px,3vw,32px);align-items:start;background:var(--blanco);color:var(--noche);border-radius:var(--radius);padding:clamp(18px,2.6vw,28px)}
.event__date{display:grid;justify-items:center;align-content:center;min-width:92px;padding:.9rem .6rem 1rem;border-radius:20px;background:var(--rosa);color:var(--blanco);text-align:center}
.event__month{font-family:var(--f-label);font-weight:600;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--amarillo)}
.event__day{font-family:var(--f-marker);font-size:2.8rem;line-height:1}
.event__year{font-size:.75rem;opacity:.85}
.event__body{display:grid;gap:.45rem;min-width:0}
.event__type{display:flex;align-items:center;gap:.5rem;font-family:var(--f-label);font-weight:600;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rosa)}
.event__type img{width:20px}
.event__title{font-family:var(--f-head);font-weight:700;font-size:clamp(1.2rem,2.4vw,1.6rem);line-height:1.15;text-transform:uppercase;color:var(--azul)}
.event__when{font-weight:500}
.event__about{max-width:60ch}
.event__link{justify-self:start;margin-top:.4rem}
.event__poster{width:clamp(120px,16vw,200px);border-radius:18px;aspect-ratio:3/4;object-fit:cover}
.events--past{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.events--past .event{grid-template-columns:auto 1fr;background:rgba(255,255,255,.07);color:var(--blanco)}
.events--past .event__date{min-width:74px;background:rgba(255,255,255,.1)}
.events--past .event__day{font-size:2.1rem;color:var(--rosa-claro)}
.events--past .event__title{color:var(--amarillo);font-size:1.05rem}
.events--past .event__type{color:var(--rosa-claro)}
.events--past .event__about{font-size:.92rem;opacity:.85}
.band--azul .events .empty,.band--noche .events .empty{color:var(--blanco)}
.events > .empty,.partners > .empty,.venues > .empty{grid-column:1/-1}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}
.filter{font-family:var(--f-label);font-weight:600;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:.6rem 1rem;border-radius:999px;border:2px solid var(--noche);background:transparent;color:var(--noche);cursor:pointer}
.filter[aria-pressed="true"]{background:var(--noche);color:var(--amarillo)}
.filter:hover{background:var(--rosa);border-color:var(--rosa);color:var(--blanco)}

/* ---------- collaborators & venues ---------- */
.h2 + .partners,.h2 + .venues{margin-top:2rem}
.partners{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.2rem}
.partner{display:grid;grid-template-columns:96px 1fr;gap:1.2rem;align-items:start;background:var(--blanco);color:var(--noche);border-radius:var(--radius);padding:1.4rem}
.partner > div{display:grid;gap:.35rem;min-width:0}
.partner .h3{color:var(--azul)}
.partner__img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid var(--rosa)}
.partner__img--heart{display:grid;place-items:center;background:var(--azul);border:0}
.partner__img--heart img{width:52%}
.partner__role{font-family:var(--f-label);font-weight:600;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rosa)}
.partner p{font-size:.95rem}
.partner__link{font-weight:700;color:var(--rosa);text-decoration:none}
.venues{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.venue{border-radius:var(--radius);overflow:hidden;background:rgba(255,255,255,.07);display:grid;align-content:start}
.venue__img{width:100%;aspect-ratio:16/9;object-fit:cover}
.venue__body{padding:1.5rem;display:grid;gap:.4rem}
.venue .h3{color:var(--amarillo)}
.venue__city{font-family:var(--f-label);font-weight:600;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rosa-claro)}
.venue p{font-size:.95rem}
.venue__count{font-weight:700;color:var(--amarillo)}
.venue__links{display:flex;gap:1.2rem;margin-top:.4rem}
.venue__links a{font-weight:700;text-decoration:none;color:var(--rosa-claro)}
.venue__links a:hover,.partner__link:hover{text-decoration:underline}

@media (max-width:640px){
  .event{grid-template-columns:auto 1fr}
  .event__poster{grid-column:1/-1;width:100%;aspect-ratio:16/10}
  .event__date{min-width:70px;padding:.7rem .4rem}
  .event__day{font-size:2.1rem}
  .events--past,.partners,.venues{grid-template-columns:1fr}
  .partner{grid-template-columns:64px 1fr}
  .partner__img{width:64px;height:64px}
}


/* ---------- interactive touches ---------- */
.halo{cursor:pointer;-webkit-tap-highlight-color:transparent}
.halo__rays{position:absolute;inset:0;transition:transform .1s linear}
.halo img{transition:translate .4s ease,rotate .4s ease}
.halo--pop img{animation:pop .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
.petal{position:fixed;z-index:200;width:12px;height:12px;border-radius:50%;pointer-events:none}
.petal--heart{width:22px;height:24px;border-radius:0;background:url("../img/heart-cempasuchil.png") center/contain no-repeat}
.ribbon:hover .ribbon__track{animation-play-state:paused}
.countdown{justify-self:start;font-family:var(--f-label);font-weight:600;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;background:var(--amarillo);color:var(--noche);padding:.35rem .7rem;border-radius:999px}
.countdown--soon{background:var(--verde);animation:nudge 2s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:none}50%{transform:translateY(-2px)}}
.member{cursor:pointer}
.burst{cursor:pointer}

/* tagline switch */
.switch{display:grid;gap:.6rem;justify-items:start;text-align:left;background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}
.switch .h2{color:var(--amarillo)}
.switch__word{display:inline-block;color:var(--chicle)}
.switch__word--in{animation:wordin .45s cubic-bezier(.3,1.4,.5,1)}
@keyframes wordin{from{opacity:0;transform:translateY(.4em) rotate(-3deg)}to{opacity:1;transform:none}}
.switch__hint{font-family:var(--f-label);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;opacity:.7}
.switch:hover .switch__hint{opacity:1;color:var(--amarillo)}

/* ---------- newsletter page ---------- */
.perks{list-style:none;display:grid;gap:.8rem;margin-top:1.6rem;font-size:1.08rem;font-weight:500}
.perks li{display:flex;gap:.8rem;align-items:flex-start}
.perks li::before{content:"";flex:none;width:22px;height:24px;margin-top:2px;background:url("../img/heart-cempasuchil.png") center/contain no-repeat}
.news-card{background:var(--noche);color:var(--blanco);border-radius:var(--radius);padding:clamp(24px,4vw,44px);display:grid;gap:1.2rem;justify-items:start}
.news-card .burst{width:64px}
.news-card .news{width:100%}
.foot-news__past{color:var(--amarillo);font-weight:700;text-decoration:none;font-size:.95rem}
.foot-news__past:hover{text-decoration:underline}
.letter-tools{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.6rem}
.letter-tools input{flex:1 1 260px;min-width:0;font:inherit;font-size:1rem;color:var(--noche);background:var(--blanco);border:2px solid transparent;border-radius:999px;padding:.8rem 1.2rem}
.letter-tools input:focus{outline:none;border-color:var(--amarillo)}
.letter-tools .filters{margin:0}
.band--noche .filter{border-color:rgba(255,255,255,.35);color:var(--blanco)}
.band--noche .filter[aria-pressed="true"]{background:var(--amarillo);border-color:var(--amarillo);color:var(--noche)}
.letters{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}
.letters > .empty{grid-column:1/-1}
.letter{background:rgba(255,255,255,.07);border-radius:var(--radius);overflow:hidden;display:grid;align-content:start;transition:transform .25s ease}
.letter:hover{transform:translateY(-4px)}
.letter__img{width:100%;aspect-ratio:16/10;object-fit:cover}
.letter__body{padding:1.5rem;display:grid;gap:.5rem}
.letter__meta{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;font-family:var(--f-label);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.letter__no{font-family:var(--f-marker);font-size:1.3rem;letter-spacing:0;text-transform:none;color:var(--chicle)}
.letter__new{background:var(--verde);color:var(--noche);padding:.25rem .55rem;border-radius:999px}
.letter__title{font-family:var(--f-head);font-weight:700;font-size:1.1rem;line-height:1.2;text-transform:uppercase;color:var(--amarillo)}
.letter p{font-size:.95rem}
.letter__read{font-weight:700;color:var(--chicle);text-decoration:none}
.letter__read:hover{text-decoration:underline}
.letter--latest{grid-column:1/-1;background:var(--azul)}
.letter--latest .letter__title{font-size:clamp(1.3rem,2.6vw,1.8rem)}
.letter-none{margin-top:1rem;opacity:.8}

/* ---------- 404 ---------- */
.lost{min-height:62vh;display:grid;place-items:center;text-align:center}
.lost .halo{margin:0 auto 1rem}
.lost .btns{justify-content:center;margin-top:2rem}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .team{grid-template-columns:repeat(2,1fr)}
  .member:last-child:nth-child(odd){grid-column:1/-1}
  .member:last-child:nth-child(odd){text-align:center}
  .member:last-child:nth-child(odd) .member__portrait{width:50%;margin-inline:auto}
  .doors,.steps,.tagline-break{grid-template-columns:1fr}
  .door{min-height:0}
  .split{grid-template-columns:1fr}
  .site-footer .wrap{grid-template-columns:1fr 1fr}
  .site-footer .wrap > :first-child{grid-column:1/-1}
}
@media (max-width:1180px){
  .menu-btn{display:flex}
  .nav{position:fixed;left:0;right:0;top:calc(72px + env(safe-area-inset-top,0px));flex-direction:column;align-items:flex-start;gap:1.1rem;background:var(--azul);padding:1.6rem var(--gutter) 2rem;border-bottom:6px solid var(--rosa);transform:translateY(-130%);visibility:hidden;transition:transform .35s ease,visibility .35s}
  .nav.open{transform:none;visibility:visible}
  .nav a{font-size:1.2rem}
}
@media (max-width:860px){
  .page-hero .wrap{grid-template-columns:1fr}
  .page-hero .halo{order:-1;--size:150px}
  .values{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  .team{grid-template-columns:1fr 1fr;gap:.8rem}
  .member{padding:1.1rem .9rem 1.3rem;border-radius:20px}
  .member .h3{font-size:.82rem}
  .member p{font-size:.84rem}
  .movida{grid-template-columns:1fr;gap:1rem}
  .artist{grid-template-columns:1fr}
  .site-footer .wrap{grid-template-columns:1fr}
  .brand img{height:28px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
