:root{
  --cream:#F3F0E3; --red:#E60000; --black:#121112; --grey:#4a4744;
  --display:'Anton','Archivo Black',Impact,'Arial Narrow',sans-serif;
  --body:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --gut:clamp(16px,5vw,48px);
  --head:62px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--black);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
ul{list-style:none;margin:0;padding:0}
p,h1,h2,h3{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.black :focus-visible,.red :focus-visible{outline-color:var(--cream)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
section[id]{scroll-margin-top:calc(var(--head) + 4px)}

/* fondos planos */
.cream{background:var(--cream);color:var(--black)}
.red{background:var(--red);color:var(--black)}
.black{background:var(--black);color:var(--cream)}
main>section,.foot{padding:clamp(56px,9vw,104px) var(--gut);text-align:center}

/* ilustraciones: siempre completas */
.art{width:100%;height:auto;object-fit:contain}

.dot{font-style:normal;color:var(--red);padding:0 .18em}
.red .dot{color:var(--cream)}
.black .dot{color:var(--red)}

/* tipografía */
h1,h2,h3,.label,.btn,.sticky,.info,.names,.next,.count b,.eds b{font-family:var(--display);font-weight:400;text-transform:uppercase}
.label{font-size:clamp(13px,3.4vw,17px);letter-spacing:.3em;margin-right:-.3em;color:var(--red)}
.label--cream{color:var(--cream)}
.label--red{color:var(--red)}
.big{font-size:clamp(46px,12vw,128px);line-height:.98;margin-top:.25em}
.big--cream{color:var(--cream)}
.big--black{color:var(--black)}
.lead{font-size:clamp(17px,4.4vw,22px);line-height:1.5;max-width:40em;margin:1em auto 0}
.next{display:inline-block;margin-top:clamp(28px,6vw,48px);font-size:clamp(18px,4.6vw,24px);letter-spacing:.08em;text-decoration:none;border-bottom:3px solid currentColor;padding-bottom:2px}
.next--cream{color:var(--cream)}
.next--black{color:var(--black)}
.next:hover{color:var(--red)}
.black .next:hover{color:var(--red)}
.red .next:hover{color:var(--cream)}

/* botones */
.btn{display:inline-block;font-size:clamp(20px,5.4vw,28px);letter-spacing:.06em;line-height:1.1;text-decoration:none;padding:.55em 1.2em .5em;border:3px solid var(--black);cursor:pointer;text-align:center}
.btn--red{background:var(--red);color:var(--cream)}
.btn--black{background:var(--black);color:var(--cream)}
.btn--cream{background:var(--cream);color:var(--black);border-color:var(--cream)}
.btn--sm{font-size:18px;padding:.5em 1em .45em}
.btn--red:hover{background:var(--black)}
.btn--black:hover{background:var(--cream);color:var(--black)}
.btn--cream:hover{background:var(--red);color:var(--cream);border-color:var(--red)}
.red .btn--black{border-color:var(--black)}

/* header fijo */
.top{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--head);display:flex;align-items:center;gap:20px;padding:0 var(--gut);background:var(--cream);border-bottom:3px solid var(--black)}
.brand{display:block;flex:none}
.brand img{height:34px;width:auto}
.nav{margin-left:auto}
.nav ul{display:flex;gap:clamp(14px,2.4vw,34px)}
.nav a{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:17px;text-decoration:none;padding:6px 0;border-bottom:3px solid transparent}
.nav a:hover{border-bottom-color:var(--black)}
.nav a.on{color:var(--red);border-bottom-color:var(--red)}
.top-cta{flex:none}
.burger{display:none;margin-left:auto;width:46px;height:46px;border:3px solid var(--black);background:var(--cream);cursor:pointer;padding:0;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:3px;background:var(--black);transition:transform .2s,opacity .2s}
.burger span:nth-child(1){top:12px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:28px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:820px){
  .burger{display:block}
  .top-cta{display:none}
  .nav{position:fixed;top:var(--head);left:0;right:0;margin:0;background:var(--cream);border-bottom:3px solid var(--black);display:none}
  .nav.open{display:block}
  .nav ul{flex-direction:column;gap:0}
  .nav a{display:block;font-size:26px;padding:16px var(--gut);border:0;border-top:3px solid var(--black)}
  .nav li:first-child a{border-top:0}
  .nav a.on{background:var(--red);color:var(--cream)}
}

/* 1. inicio */
.hero{padding-top:calc(var(--head) + clamp(28px,6vw,64px));padding-bottom:0;overflow:hidden}
.logo-wrap{margin:0 auto;max-width:min(92vw,720px)}
.logo{width:100%}
.info{font-size:clamp(28px,8vw,60px);letter-spacing:.01em;line-height:1.1;margin-top:clamp(14px,3vw,28px)}
.info--lugar{font-size:clamp(16px,4.6vw,34px);margin-top:.5em;margin-bottom:clamp(20px,4vw,36px)}
.count{margin:clamp(24px,5vw,40px) auto clamp(24px,5vw,44px)}
.count-label{margin-bottom:12px}
.count-row{display:flex;justify-content:center;gap:clamp(8px,2vw,16px)}
.count-row div{border:3px solid var(--black);min-width:clamp(78px,24vw,120px);padding:10px 8px 8px;background:var(--cream)}
.count b{display:block;font-size:clamp(40px,11vw,64px);line-height:1;color:var(--black)}
.count span{display:block;font-family:var(--display);text-transform:uppercase;font-size:13px;letter-spacing:.25em;margin-right:-.25em;color:var(--red);margin-top:4px}
.count-done{font-family:var(--display);text-transform:uppercase;font-size:clamp(24px,6vw,36px);color:var(--red)}
.hero-art{width:min(100%,820px);margin:0 auto}

/* 2. qué es */
.eds{display:grid;gap:clamp(28px,5vw,48px);max-width:1100px;margin:clamp(36px,7vw,64px) auto 0}
.eds li{display:flex;flex-direction:column;align-items:center;border-top:3px solid var(--cream);padding-top:20px}
.eds b{font-size:clamp(80px,22vw,140px);line-height:.95;color:var(--red);margin-top:6px}
.ed-u{font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:clamp(15px,3.6vw,18px);margin-top:4px}
.eds p{margin-top:10px;max-width:16em}
@media (min-width:760px){.eds{grid-template-columns:repeat(3,1fr)}}

/* 3. festival */
.cards{display:grid;gap:16px;max-width:1100px;margin:clamp(32px,6vw,56px) auto 0;text-align:left}
.card{background:var(--cream);border:3px solid var(--black);padding:22px 20px 24px}
.card h3{font-size:clamp(26px,6vw,32px);line-height:1.05;color:var(--black)}
.card-tag{font-family:var(--display);text-transform:uppercase;font-size:13px;letter-spacing:.25em;color:var(--red);margin:8px 0 10px}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.cards{grid-template-columns:repeat(3,1fr)}}

/* 4. lineup */
.lineup-flyers{display:grid;gap:20px;max-width:560px;margin:0 auto}
@media (min-width:768px){.lineup-flyers{grid-template-columns:1fr 1fr;max-width:1100px;gap:24px}}

/* 5. el lugar */
.map-layout{max-width:1200px;margin:clamp(28px,5vw,44px) auto 0;display:grid;gap:20px;text-align:left}
.map{position:relative;border:3px solid var(--cream);height:70vh;min-height:420px;background:var(--cream)}
.map iframe{width:100%;height:100%;border:0;display:block}
.map-gate,.map-done{font-family:var(--display);text-transform:uppercase;cursor:pointer;border:0}
.map-gate{position:absolute;inset:0;width:100%;background:rgba(18,17,18,.62);color:var(--cream);font-size:clamp(28px,8vw,48px);letter-spacing:.08em;z-index:2}
.map-done{position:absolute;top:10px;right:10px;z-index:3;background:var(--red);color:var(--cream);border:3px solid var(--black);font-size:20px;letter-spacing:.08em;padding:9px 18px 7px}
.map-gate[hidden],.map-done[hidden]{display:none}
.legend{display:grid;gap:8px;align-content:start}
.legend button{width:100%;display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;text-align:left;font:inherit;font-size:15px;line-height:1.35;color:var(--cream);background:var(--black);border:2px solid var(--cream);padding:10px 12px;cursor:pointer}
.legend i{display:block;width:22px;height:22px;border:2px solid var(--cream);margin-top:1px}
.legend b{display:block;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.06em;font-size:19px;line-height:1.1;margin-bottom:2px}
.legend button:hover{border-color:var(--red)}
.legend button[aria-pressed="true"]{background:var(--cream);color:var(--black);border-color:var(--cream)}
.legend button[aria-pressed="true"] i{border-color:var(--black)}
@media (min-width:900px){
  .map-layout{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:start}
  .map{height:600px;min-height:0}
}
.addr{font-family:var(--display);text-transform:uppercase;font-size:clamp(18px,4.8vw,28px);letter-spacing:.04em;margin:clamp(24px,5vw,36px) 0 18px}
.lugar .btn{margin-bottom:0}

/* 6. entradas */
.entradas-grid{max-width:1000px;margin:clamp(20px,4vw,36px) auto 0;display:grid;gap:clamp(24px,5vw,40px);align-items:center}
.card-art{position:relative;max-width:520px;margin:0 auto;container-type:inline-size;width:100%}
.card-text{position:absolute;left:43%;top:29.5%;width:60%;transform:translate(-50%,-50%) rotate(-12.5deg);color:var(--black);text-align:center}
.card-text p{font-family:var(--display);text-transform:uppercase}
.card-text .k{font-size:4.4cqw;letter-spacing:.3em;margin-right:-.3em;color:var(--red)}
.card-text .p1{font-size:15cqw;line-height:1}
.card-text .k2{margin-top:3cqw}
.card-text .p2{font-size:11cqw;line-height:1}
.entradas-info{display:grid;gap:1em;justify-items:center;font-size:clamp(18px,4.6vw,22px);line-height:1.4}
.entradas-info b{font-weight:600;color:var(--cream)}
.entradas-info .small{font-family:var(--display);text-transform:uppercase;font-size:14px;letter-spacing:.16em}
.entradas-info .why{font-size:clamp(16px,4vw,18px);max-width:34em;border-top:3px solid var(--black);padding-top:1em}
.entradas-info .btn{margin-top:.4em}
@media (min-width:900px){
  .entradas-grid{grid-template-columns:1fr 1fr}
  .entradas-info{justify-items:start;text-align:left}
}

/* 7. marcas */
.marcas-art{width:min(100%,460px);margin:0 auto 12px}
.cols{max-width:1000px;margin:clamp(28px,5vw,48px) auto 0;display:grid;gap:20px;text-align:left}
.col{border:3px solid var(--black);padding:22px 20px 24px}
.col h3{font-size:clamp(24px,5.6vw,30px);line-height:1.05;margin-bottom:12px}
.col li{padding-left:1.1em;position:relative;margin-top:.6em}
.col li::before{content:"•";color:var(--red);position:absolute;left:0}
@media (min-width:800px){.cols{grid-template-columns:1fr 1fr}}
.btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:clamp(28px,5vw,44px)}

/* footer */
.foot{padding-bottom:clamp(40px,8vw,72px)}
.foot-logo{width:min(70vw,300px);margin:0 auto 1.4em}
.foot-line{font-family:var(--display);text-transform:uppercase;text-wrap:balance;font-size:clamp(16px,4.2vw,28px);letter-spacing:.04em;margin-top:.5em}
.foot-line a{text-decoration:none;border-bottom:3px solid var(--red)}
.foot-small{font-family:var(--display);text-transform:uppercase;margin-top:1.6em;font-size:13px;letter-spacing:.3em;color:#b9b5a8}
.share{margin-top:1.6em}
.share-msg{min-height:1.5em;margin-top:.6em;font-size:15px}

/* botón fijo en celular */
.sticky{display:none}
@media (max-width:820px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .sticky{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--red);color:var(--cream);text-decoration:none;text-align:center;font-size:26px;letter-spacing:.12em;padding:16px 0 calc(14px + env(safe-area-inset-bottom,0px));border-top:3px solid var(--black)}
}

/* aparición al hacer scroll */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
}
[hidden]{display:none!important}
.lugar .next{display:block;width:max-content;margin-left:auto;margin-right:auto}
