:root{
  --black:#0B0706; --black-2:#150C0A; --maroon:#5C0B0F; --red:#A31E17; --red-2:#C4271D;
  --gold:#D4A843; --gold-light:#E9CE8F; --cream:#F3E7D8; --cream-2:#FBF6EC; --ink:#1C1310;
  --display:'Broadway','Limelight', Georgia, serif; --label:'Montserrat', sans-serif; --body:'Montserrat', sans-serif;
  --maxw:1240px;
}
.i-dancers{background-image:url("images/hero-dancers.jpg");}
.i-group{background-image:url("images/experiencias/group.jpg");}
.i-piano{background-image:url("images/experiencias/piano.jpg");}
.i-congas{background-image:url("images/experiencias/congas.jpg");}
.i-crowd{background-image:url("images/experiencias/crowd.jpg");}
.i-intercon{background-image:url("images/experiencias/intercon.jpg");}
.i-stadium{background-image:url("images/concierto-estadio.jpg");}
.i-teatro{background-image:url("images/experiencias/teatro.jpg");}
.i-ccultural{background-image:url("images/experiencias/centro-cultural.jpg");}
.i-ermita{background-image:url("images/experiencias/ermita.jpg");}
.i-callesabor{background-image:url("images/experiencias/calle-sabor.jpg");}
.i-barrio{background-image:url("images/experiencias/barrio-obrero.jpg");}
.i-ruben{background-image:url("images/artistas/ruben.jpg");}
.i-jerry{background-image:url("images/artistas/jerry.jpg");}
.i-guayacan{background-image:url("images/artistas/guayacan.jpg");}
.i-tito{background-image:url("images/artistas/tito.jpg");}
.i-lebron{background-image:url("images/artistas/lebron.jpg");}
.i-bobby{background-image:url("images/artistas/bobby.jpg");}
.i-oscar{background-image:url("images/artistas/oscar.jpg");}
.i-gianmarco{background-image:url("images/artistas/gianmarco.jpg");}
.i-kike{background-image:url("images/artistas/kike.jpg");}
.i-norberto{background-image:url("images/artistas/norberto.jpg");}
.i-guaynaa{background-image:url("images/artistas/guaynaa.jpg");}
.i-henry{background-image:url("images/artistas/henry.jpg");}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--black); color:var(--cream); font-family:var(--body); line-height:1.6; overflow-x:hidden;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 26px;}
.eyebrow{font-family:var(--label); font-weight:800; letter-spacing:.28em; text-transform:uppercase; font-size:11.5px; color:var(--gold);}
h2.title{font-family:var(--display); font-weight:800; font-size:clamp(32px,5.4vw,62px); line-height:1.04; color:var(--cream-2); letter-spacing:.015em; text-transform:uppercase; margin-top:14px;}
.sub{font-family:var(--label); font-weight:600; letter-spacing:.02em; text-transform:uppercase; font-size:clamp(12px,1.6vw,14px); color:rgba(243,231,216,.62); margin-top:16px; max-width:640px;}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; font-family:var(--label); font-weight:800; letter-spacing:.1em; text-transform:uppercase; font-size:12.5px; padding:15px 28px; border-radius:40px; transition:transform .2s, background .2s, color .2s; cursor:pointer; border:1px solid transparent; white-space:nowrap;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--gold); color:var(--black);}
.btn-primary:hover{background:var(--gold-light);}
.btn-ghost{background:transparent; color:var(--cream-2); border-color:rgba(243,231,216,.4);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-light);}
.btn-red{background:var(--red-2); color:var(--cream-2);}
.btn-red:hover{background:var(--red);}

/* Reveal */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:none;}

/* ============ NAV ============ */
.nav{position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:16px 26px; transition:background .3s, padding .3s, border-color .3s; border-bottom:1px solid transparent;}
.nav.scrolled{background:rgba(11,7,6,.92); backdrop-filter:blur(10px); padding:12px 26px; border-bottom-color:rgba(212,168,67,.18);}
.nav-logo{display:flex; align-items:center; gap:9px; font-family:var(--label); font-weight:800; letter-spacing:.02em; color:var(--cream-2); font-size:15px;}
.nav-logo b{font-weight:900; color:var(--cream-2);}
.nav-logo .bar{width:1px; height:20px; background:rgba(243,231,216,.4);}
.nav-logo .sw{font-family:var(--label); font-weight:800; font-size:13px; letter-spacing:.14em; text-transform:uppercase;}
.nav-links{display:flex; align-items:center; gap:28px;}
.nav-links a{font-family:var(--label); font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:12px; color:var(--cream); transition:color .2s;}
.nav-links a:hover{color:var(--gold-light);}
.nav-right{display:flex; align-items:center; gap:18px;}
.nav-burger{display:none; flex-direction:column; gap:5px; width:26px; background:none; border:none; cursor:pointer; padding:4px;}
.nav-burger span{height:2px; background:var(--cream-2); border-radius:2px; transition:.3s;}

/* Mobile full-screen menu */
.mobile-menu{position:fixed; inset:0; z-index:200; background:var(--black); display:flex; flex-direction:column; padding:26px; transform:translateY(-100%); transition:transform .45s cubic-bezier(.7,0,.2,1); opacity:0; visibility:hidden;}
.mobile-menu.open{transform:translateY(0); opacity:1; visibility:visible;}
.mm-top{display:flex; justify-content:space-between; align-items:center;}
.mm-close{background:none; border:none; color:var(--cream-2); font-size:30px; cursor:pointer; line-height:1;}
.mm-links{display:flex; flex-direction:column; gap:6px; margin:auto 0;}
.mm-links a{font-family:var(--display); font-weight:800; font-size:40px; color:var(--cream-2); padding:8px 0; border-bottom:1px solid rgba(212,168,67,.12); text-transform:uppercase;}
.mm-links a:active{color:var(--gold);}
.mm-cta{margin-top:20px;}

/* ============ HERO ============ */
.hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden;}
.hero-bg{position:absolute; inset:0; background-position:center 20%; background-size:cover; background-repeat:no-repeat; animation:heroZoom 22s ease-in-out infinite alternate; z-index:0;}
@keyframes heroZoom{from{transform:scale(1.02);} to{transform:scale(1.12);}}
.hero-veil{position:absolute; inset:0; z-index:1; background:
   linear-gradient(180deg, rgba(11,7,6,.55) 0%, rgba(11,7,6,.15) 30%, rgba(11,7,6,.5) 65%, rgba(11,7,6,.96) 100%),
   linear-gradient(90deg, rgba(11,7,6,.7), transparent 60%);}
.hero-inner{position:relative; z-index:2; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 26px 8vh;}
.hero-eyebrow{font-family:var(--label); font-weight:700; letter-spacing:.4em; text-transform:uppercase; font-size:12px; color:var(--gold-light);}
.hero-logo{margin:12px 0 4px; line-height:.82;}
.hl-salsa{display:block; font-family:var(--display); font-weight:900; font-size:clamp(66px,15vw,190px); color:var(--cream-2); letter-spacing:-.02em;}
.hl-mw{display:inline-block; font-family:var(--label); font-weight:800; letter-spacing:.18em; font-size:clamp(15px,3.2vw,34px); background:var(--cream-2); color:var(--black); padding:5px 16px; margin-top:6px;}
.hero-bb{width:clamp(130px,15vw,205px); height:auto; margin-bottom:22px; display:block;}
.hero-swlogo{width:clamp(280px,54vw,640px); height:auto; display:block; margin-bottom:2px;}
.nav-bb{height:19px; width:auto; display:block;}
.ft-bb{height:17px; width:auto; display:inline-block; vertical-align:middle;}
.hero-badge{display:inline-flex; align-items:center; gap:9px; font-family:var(--label); font-weight:700; letter-spacing:.07em; text-transform:uppercase; font-size:11px; color:var(--cream); border:1px solid rgba(212,168,67,.4); border-radius:30px; padding:9px 16px; margin-top:22px;}
.hero-badge .dot{width:8px; height:8px; border-radius:50%; background:var(--gold); animation:pulse 2.2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(212,168,67,.55);}70%{box-shadow:0 0 0 8px rgba(212,168,67,0);}100%{box-shadow:0 0 0 0 rgba(212,168,67,0);}}
.countdown{display:flex; gap:12px; margin-top:26px; flex-wrap:wrap;}
.cd-item{background:rgba(212,168,67,.08); border:1px solid rgba(212,168,67,.25); border-radius:12px; padding:14px 16px; text-align:center; min-width:68px;}
.cd-num{display:block; font-family:var(--display); font-weight:800; font-size:clamp(24px,3.4vw,38px); color:var(--gold-light); line-height:1;}
.cd-label{display:block; font-family:var(--label); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:9px; color:rgba(243,231,216,.6); margin-top:6px;}
/* ============ CONTACTO ============ */
#contacto{background:var(--black-2);}
.ct-grid{display:grid; grid-template-columns:1.35fr 1fr; gap:46px; margin-top:44px;}
.ct-form{display:flex; flex-direction:column; gap:14px;}
.ct-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.ct-input{font-family:var(--body); font-size:14px; color:var(--cream); background:rgba(255,255,255,.03); border:1px solid rgba(212,168,67,.25); border-radius:10px; padding:15px 16px; width:100%; transition:border-color .2s;}
.ct-input::placeholder{color:rgba(243,231,216,.4);}
.ct-input:focus{outline:none; border-color:var(--gold);}
.ct-btn{margin-top:6px; align-self:flex-start;}
.ct-msg{font-family:var(--body); font-size:13.5px; margin-top:-4px;}
.ct-msg.success{color:var(--gold-light);}
.ct-msg.error{color:#e08a6a;}
.ct-side{display:flex; flex-direction:column; gap:30px; border-left:1px solid rgba(212,168,67,.15); padding-left:42px;}
.ct-side-label{font-family:var(--label); font-weight:800; letter-spacing:.16em; text-transform:uppercase; font-size:10.5px; color:var(--gold);}
.ct-side-value{font-family:var(--label); font-weight:600; font-size:16px; color:var(--cream-2); margin-top:8px; display:inline-block; transition:color .2s;}
.ct-side-value:hover{color:var(--gold-light);}
.ct-social{display:flex; gap:12px; margin-top:12px;}
.ct-social a{width:42px; height:42px; border-radius:50%; border:1px solid rgba(212,168,67,.3); display:flex; align-items:center; justify-content:center; color:var(--cream); transition:.2s;}
.ct-social a:hover{background:var(--gold); color:var(--black); border-color:var(--gold);}
.ct-social svg{width:18px; height:18px;}
@media(max-width:820px){.ct-grid{grid-template-columns:1fr;} .ct-side{border-left:none; padding-left:0; border-top:1px solid rgba(212,168,67,.15); padding-top:30px;} .ct-row{grid-template-columns:1fr;}}
.hero-meta{font-family:var(--label); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:clamp(12px,1.8vw,16px); color:var(--gold); margin-top:26px;}
.hero-line{font-family:var(--body); font-weight:400; font-size:clamp(15px,1.9vw,19px); color:rgba(243,231,216,.92); margin-top:16px; max-width:600px; line-height:1.55;}
.hero-line b{color:var(--cream-2); font-weight:700;}
.hero-btns{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
.hero-scroll{position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:2; font-family:var(--label); font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:rgba(243,231,216,.5); writing-mode:vertical-rl; display:flex; align-items:center; gap:8px;}

/* ============ SECTION base ============ */
section.blk{padding:clamp(70px,10vw,130px) 0; position:relative;}
.blk-head{margin-bottom:clamp(30px,5vw,54px);}

/* ============ ARTISTAS ============ */
#artistas{background:linear-gradient(180deg, var(--black), var(--black-2));}
.filters{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
.filter{font-family:var(--label); font-weight:700; letter-spacing:.1em; text-transform:uppercase; font-size:11px; padding:9px 18px; border-radius:30px; border:1px solid rgba(212,168,67,.3); color:var(--cream); background:transparent; cursor:pointer; transition:.2s;}
.filter.active{background:var(--gold); color:var(--black); border-color:var(--gold);}
.art-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px;}
.art{position:relative; overflow:hidden; border-radius:8px; cursor:pointer; background:var(--ink); aspect-ratio:1080/1350; isolation:isolate;}
.art-img{position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease, filter .4s ease; filter:saturate(.92) contrast(1.02);}
.art:hover .art-img{transform:scale(1.07); filter:saturate(1.1);}
.art-shade{position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(11,7,6,.15) 55%, rgba(11,7,6,.9) 100%); z-index:1;}
.art:hover .art-shade{background:linear-gradient(180deg, rgba(92,11,15,.25) 0%, rgba(11,7,6,.35) 45%, rgba(11,7,6,.92) 100%);}
.art-meta{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:18px 18px 20px;}
.art-cat{font-family:var(--label); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:9.5px; color:var(--gold-light); opacity:.85;}
.art-name{font-family:var(--label); font-weight:800; font-size:clamp(16px,1.9vw,23px); color:var(--cream-2); line-height:1.05; margin-top:5px; letter-spacing:.01em;}
.art-plus{position:absolute; top:14px; right:14px; z-index:2; width:30px; height:30px; border-radius:50%; border:1px solid rgba(243,231,216,.4); display:flex; align-items:center; justify-content:center; color:var(--cream-2); font-size:18px; opacity:0; transform:scale(.8); transition:.3s;}
.art:hover .art-plus{opacity:1; transform:scale(1);}
.soon{margin-top:20px; border:1px dashed rgba(212,168,67,.35); border-radius:10px; padding:34px 24px; text-align:center; background:radial-gradient(circle at 50% 0%, rgba(92,11,15,.35), transparent 70%);}
.soon-h{font-family:var(--display); font-weight:800; font-size:clamp(22px,3vw,34px); color:var(--cream-2); text-transform:uppercase; letter-spacing:.02em;}
.soon-p{font-family:var(--label); font-weight:700; letter-spacing:.2em; text-transform:uppercase; font-size:12px; color:var(--gold); margin-top:10px;}

/* ============ AGENDA ============ */
#agenda{background:var(--black-2);}
.daytabs{display:flex; gap:10px; margin-top:30px; flex-wrap:wrap;}
.daytab{font-family:var(--label); font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:12px; padding:12px 20px; border-radius:30px; border:1px solid rgba(212,168,67,.3); color:var(--cream); background:transparent; cursor:pointer; transition:.2s;}
.daytab.active{background:var(--gold); color:var(--black); border-color:var(--gold);}
.daypanel{display:none; margin-top:34px;}
.daypanel.active{display:block;}
.arow{display:grid; grid-template-columns:150px 1fr 190px; gap:24px; align-items:center; padding:22px 6px; border-top:1px solid rgba(243,231,216,.1); transition:background .2s;}
.arow:last-child{border-bottom:1px solid rgba(243,231,216,.1);}
.arow:hover{background:rgba(212,168,67,.04);}
.arow.big{background:linear-gradient(90deg, rgba(92,11,15,.5), transparent 70%); border-radius:10px; border-top:none;}
.arow.big + .arow{border-top:none;}
.a-time{font-family:var(--label); font-weight:800; font-size:14px; color:var(--gold); letter-spacing:.03em;}
.a-name{font-family:var(--label); font-weight:800; font-size:clamp(16px,1.9vw,23px); color:var(--cream-2); line-height:1.15; letter-spacing:.01em;}
.a-type{font-family:var(--label); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:10px; color:var(--gold-light); margin-top:6px;}
.a-place{font-family:var(--label); font-weight:600; letter-spacing:.04em; text-transform:uppercase; font-size:12px; color:rgba(243,231,216,.6); text-align:right;}
.agenda-note{font-family:var(--label); font-size:11.5px; letter-spacing:.05em; color:rgba(233,206,143,.5); margin-top:18px;}
.agenda-cta{margin-top:30px;}

.album-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px 28px; margin-top:44px;}
@media(max-width:900px){.album-grid{grid-template-columns:repeat(2,1fr); gap:30px 22px;}}
@media(max-width:520px){.album-grid{grid-template-columns:1fr;}}
.album{position:relative; aspect-ratio:1/1;}
.album-cover{position:absolute; left:0; top:0; width:88%; height:88%; border-radius:6px; overflow:hidden; box-shadow:0 18px 44px rgba(0,0,0,.55); z-index:2; cursor:pointer; transition:transform .4s;}
.album:hover .album-cover{transform:translateY(-5px);}
.album-img{position:absolute; inset:0; background-size:cover; background-position:center top; transition:transform .6s; filter:saturate(.95) contrast(1.02);}
.album:hover .album-img{transform:scale(1.07);}
.album-grad{position:absolute; inset:0; background:linear-gradient(180deg, transparent 42%, rgba(11,7,6,.15) 60%, rgba(11,7,6,.93) 100%);}
.album-name{position:absolute; left:16px; right:16px; bottom:15px; z-index:2; font-family:var(--display); font-weight:800; font-size:clamp(17px,1.9vw,25px); color:var(--cream-2); line-height:1.02; text-transform:uppercase; letter-spacing:.01em; text-shadow:0 2px 12px rgba(0,0,0,.55);}
.album-vinyl{position:absolute; right:0; top:13%; width:50%; height:62%; border-radius:50%; z-index:1; background:radial-gradient(circle at 50% 50%, #2b2420 0 10%, #0b0807 10% 12.5%, transparent 12.5%), repeating-radial-gradient(circle at 50% 50%, #17110f 0 2px, #0a0706 2px 4px), radial-gradient(circle,#0b0807,#0a0706); box-shadow:0 14px 40px rgba(0,0,0,.6); transition:transform .55s ease;}
.album:hover .album-vinyl{transform:translateX(7%) rotate(22deg);}
.img-ref{position:absolute; top:8px; left:8px; z-index:20; font-family:'Courier New',monospace; font-size:9px; letter-spacing:.01em; color:var(--gold-light); background:rgba(11,7,6,.74); border:1px solid rgba(212,168,67,.35); border-radius:5px; padding:3px 6px; pointer-events:none; max-width:calc(100% - 16px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.sec-ref{top:76px; right:14px; left:auto; bottom:auto;}
.artist-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px;}
@media(max-width:900px){.artist-grid{grid-template-columns:repeat(2,1fr); gap:16px;}}
@media(max-width:440px){.artist-grid{grid-template-columns:1fr;}}
.artist{position:relative; aspect-ratio:1080/1350; border-radius:10px; overflow:hidden; box-shadow:0 16px 40px rgba(0,0,0,.45); transition:transform .35s, box-shadow .35s;}
.artist:hover{transform:translateY(-6px); box-shadow:0 26px 60px rgba(0,0,0,.6);}
.artist-img{position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s;}
.artist:hover .artist-img{transform:scale(1.05);}
.artist-ph-grad{position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,7,6,.3) 0%, rgba(11,7,6,.5) 50%, rgba(11,7,6,.95) 100%); z-index:1;}
.artist-ph-name{position:absolute; left:18px; right:18px; bottom:18px; z-index:2; font-family:var(--display); font-weight:800; font-size:clamp(20px,2.4vw,30px); color:var(--cream-2); text-transform:uppercase; line-height:1.02;}
/* ============ AGENDA (matriz premium) ============ */
.ag2-wrap{margin-top:44px; border:1px solid rgba(212,168,67,.22); border-radius:16px; overflow:hidden; background:linear-gradient(180deg, rgba(21,12,10,.65), rgba(11,7,6,.35)); box-shadow:0 30px 80px rgba(0,0,0,.45);}
.ag2-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.ag2-table{width:100%; border-collapse:collapse; min-width:840px;}
.ag2-table th,.ag2-table td{padding:20px 22px; text-align:left; vertical-align:middle; border-right:1px solid rgba(212,168,67,.1); border-bottom:1px solid rgba(212,168,67,.1);}
.ag2-table td:last-child{border-right:none;}
.ag2-thead th{font-family:var(--label); font-weight:800; letter-spacing:.14em; text-transform:uppercase; font-size:12px; color:var(--gold); background:rgba(212,168,67,.06); padding:22px 22px; white-space:nowrap;}
.ag2-thead th.sede{color:var(--gold-light);}
.ag2-thead th.sat{color:var(--red-2); background:rgba(163,30,23,.14);}
.ag2-venue{font-family:var(--label); font-weight:800; font-size:15.5px; color:var(--cream-2); letter-spacing:.01em;}
.ag2-time{font-family:var(--label); font-weight:800; font-size:14px; color:var(--gold); letter-spacing:.02em;}
.ag2-loc{font-family:var(--label); font-weight:600; font-size:11px; color:rgba(233,206,143,.55); margin-top:5px; text-transform:uppercase; letter-spacing:.09em;}
.ag2-act{font-family:var(--label); font-weight:600; font-size:13.5px; color:var(--gold-light); line-height:1.35;}
.ag2-dash{color:rgba(243,231,216,.22); font-size:18px; text-align:center;}
.ag2-table tbody tr:hover td:not(.ag2-concert){background:rgba(212,168,67,.045);}
.ag2-night td{background:rgba(92,11,15,.32);}
.ag2-night .ag2-loc{color:rgba(233,206,143,.65);}
.ag2-concert{background:linear-gradient(155deg, var(--maroon) 0%, rgba(11,7,6,.96) 78%); text-align:center; vertical-align:middle; padding:32px 22px; min-width:210px;}
.ag2-concert .cc-eyebrow{font-family:var(--label); font-weight:800; letter-spacing:.16em; text-transform:uppercase; font-size:9.5px; color:var(--gold-light);}
.ag2-concert h3{font-family:var(--display); font-weight:800; font-size:clamp(22px,2.3vw,29px); color:var(--cream-2); line-height:1.05; margin:12px 0; text-transform:uppercase; letter-spacing:.01em;}
.ag2-concert .cc-meta{font-family:var(--label); font-weight:700; font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--cream); line-height:1.95;}
.ag2-concert .cc-desc{font-family:var(--body); font-size:12px; color:rgba(243,231,216,.72); margin-top:14px; line-height:1.6;}
.ag2-concert .btn{margin-top:20px; padding:12px 22px; font-size:11px;}
.ag2-hint{display:none; font-family:var(--label); font-weight:700; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(233,206,143,.5); margin-top:14px;}
@media(max-width:840px){.ag2-hint{display:block;}}
/* ============ EXPERIENCIAS ============ */
#experiencias{background:var(--black);}
.exp-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:44px;}
.exp{position:relative; min-height:300px; border-radius:10px; overflow:hidden; display:flex; align-items:flex-end; isolation:isolate;}
.exp-img{position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .7s ease; z-index:0;}
.exp:hover .exp-img{transform:scale(1.06);}
.exp-shade{position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(11,7,6,.2) 0%, rgba(11,7,6,.35) 45%, rgba(11,7,6,.93) 100%);}
.exp-body{position:relative; z-index:2; padding:28px 26px 30px; width:100%;}
.exp-num{font-family:var(--label); font-weight:800; letter-spacing:.2em; font-size:11px; color:var(--gold);}
.exp-cat{font-family:var(--label); font-weight:800; letter-spacing:.16em; text-transform:uppercase; font-size:10.5px; color:var(--gold); margin-top:9px;}
.exp-name{font-family:var(--display); font-weight:800; font-size:clamp(21px,2.3vw,31px); color:var(--cream-2); margin-top:0; line-height:1.08; text-transform:uppercase; letter-spacing:.02em;}
.exp-desc{font-family:var(--body); font-size:14.5px; color:rgba(243,231,216,.8); margin-top:12px; max-width:440px; max-height:0; opacity:0; overflow:hidden; transition:max-height .4s ease, opacity .4s ease, margin .4s ease;}
.exp:hover .exp-desc{max-height:120px; opacity:1;}
@media(hover:none){.exp-desc{max-height:120px; opacity:1;}}

/* ============ CONCIERTO DE CIERRE ============ */
#concierto{position:relative; min-height:96svh; display:flex; align-items:center; overflow:hidden; text-align:center;}
.cc-bg{position:absolute; inset:0; background-position:center; background-size:cover; background-repeat:no-repeat; z-index:0;}
.cc-veil{position:absolute; inset:0; z-index:1; background:
   radial-gradient(circle at 50% 40%, rgba(92,11,15,.55), rgba(11,7,6,.85) 75%),
   linear-gradient(180deg, rgba(11,7,6,.85), rgba(11,7,6,.55) 40%, rgba(11,7,6,.95));}
.cc-inner{position:relative; z-index:2; width:100%; max-width:960px; margin:0 auto; padding:90px 26px;}
.cc-date{font-family:var(--label); font-weight:800; letter-spacing:.3em; text-transform:uppercase; font-size:clamp(12px,1.8vw,15px); color:var(--gold-light);}
.cc-title{font-family:var(--display); font-weight:900; font-size:clamp(42px,8vw,108px); line-height:.98; color:var(--cream-2); margin:18px 0; text-shadow:0 4px 40px rgba(0,0,0,.5); text-transform:uppercase; letter-spacing:.01em;}
.cc-title b{color:var(--red-2); font-style:italic;}
.cc-venue{font-family:var(--label); font-weight:800; letter-spacing:.16em; text-transform:uppercase; font-size:clamp(13px,2vw,18px); color:var(--cream); }
.cc-line{font-family:var(--body); font-style:italic; font-weight:500; font-size:clamp(17px,2.2vw,26px); color:var(--gold-light); margin:22px auto 0; max-width:600px;}
.cc-concert-logo{width:clamp(270px,44vw,540px); height:auto; margin:0 auto 22px; display:block; filter:drop-shadow(0 6px 30px rgba(0,0,0,.5));}
.cc-date-logo{width:clamp(150px,22vw,260px); height:auto; margin:0 auto 16px; display:block;}
.cc-venue-logo{width:clamp(240px,38vw,440px); height:auto; margin:0 auto 4px; display:block;}
.cc-btns{display:flex; gap:14px; justify-content:center; margin-top:34px; flex-wrap:wrap;}

/* ============ ENTRADAS ============ */
#entradas{background:linear-gradient(180deg, var(--black-2), var(--black));}
.tk-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:44px;}
.tk-grid-2{grid-template-columns:1fr 1fr; max-width:820px; margin-left:auto; margin-right:auto;}
.tk{border:1px solid rgba(212,168,67,.25); border-radius:14px; padding:34px 28px; background:var(--black-2); display:flex; flex-direction:column; transition:border-color .25s, transform .25s;}
.tk:hover{border-color:rgba(212,168,67,.6); transform:translateY(-4px);}
.tk.hot{background:linear-gradient(160deg, rgba(92,11,15,.55), var(--black-2)); border-color:rgba(212,168,67,.5);}
.tk-name{font-family:var(--label); font-weight:800; font-size:23px; color:var(--cream-2); line-height:1.05; letter-spacing:.01em;}
.tk-desc{font-family:var(--body); font-size:14px; color:rgba(243,231,216,.7); margin-top:14px; flex:1;}
.tk-price{font-family:var(--label); font-weight:800; letter-spacing:.04em; font-size:15px; color:var(--gold); margin-top:22px;}
.tk-price span{font-size:11px; color:rgba(243,231,216,.5); font-weight:600; letter-spacing:.14em; text-transform:uppercase; display:block; margin-bottom:2px;}
.tk .btn{margin-top:20px; width:100%;}
.tk-foot{margin-top:40px; text-align:center;}

/* ============ FOOTER ============ */
.tk-cta{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.tk-partner{display:flex; align-items:center; justify-content:center; gap:12px; margin-top:28px;}
.tk-partner span{font-family:var(--label); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:10px; color:rgba(243,231,216,.5);}
.tk-partner img{height:22px; width:auto;}
footer{background:var(--black); border-top:1px solid rgba(212,168,67,.18); padding:60px 0 34px;}
.ft-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.ft-brand .fb-logo{font-family:var(--label); font-weight:800; font-size:16px; color:var(--cream-2);}
.ft-brand .fb-logo .sw{font-family:var(--label); font-weight:800; letter-spacing:.1em; text-transform:uppercase;}
.ft-brand p{font-family:var(--label); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:12px; color:var(--gold); margin-top:12px;}
.ft-links{display:flex; gap:60px; flex-wrap:wrap;}
.ft-col a{display:block; font-family:var(--label); font-weight:600; letter-spacing:.08em; text-transform:uppercase; font-size:12px; color:rgba(243,231,216,.72); padding:6px 0; transition:color .2s;}
.ft-col a:hover{color:var(--gold-light);}
.ft-social{display:flex; gap:14px; margin-top:16px;}
.ft-social a{width:38px; height:38px; border-radius:50%; border:1px solid rgba(212,168,67,.3); display:flex; align-items:center; justify-content:center; color:var(--cream); transition:.2s;}
.ft-social a:hover{background:var(--gold); color:var(--black); border-color:var(--gold);}
.ft-social svg{width:16px; height:16px;}
.ft-bottom{margin-top:44px; padding-top:22px; border-top:1px solid rgba(243,231,216,.08); font-family:var(--label); font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:11px; color:rgba(243,231,216,.45);}
.ft-legal{margin-top:10px; font-family:var(--label); font-weight:600; letter-spacing:.03em; font-size:10.5px; color:rgba(243,231,216,.3);}

/* ============ ALIADOS ============ */
.sponsors{background:var(--black); border-top:1px solid rgba(212,168,67,.14); padding:90px 0;}
.sponsors-row{max-width:1400px; margin:0 auto; padding:0 26px; display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; overflow-x:auto; row-gap:50px; scrollbar-width:none;}
.sponsors-row::-webkit-scrollbar{display:none;}
.sponsor-item{position:relative; display:flex; align-items:center; justify-content:center; padding:0 18px; flex-shrink:0;}
.sponsor-item::before{content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:76px; background:linear-gradient(180deg, transparent, rgba(212,168,67,.3), transparent);}
.sponsor-item:first-child::before{display:none;}
.sponsor-item--tight{padding-left:6px;}
.sponsor-item--tight::before{display:none;}
.sponsor-item img{height:68px; width:auto; display:block; opacity:.85; filter:saturate(.9); transition:opacity .3s ease, transform .3s ease, filter .3s ease;}
.sponsor-item:hover img{opacity:1; transform:translateY(-2px); filter:saturate(1);}
.sponsor-item--brand img{height:88px;}
.sponsor-item img.logo-cali{height:54px;}
@media(max-width:820px){
  .sponsor-item{padding:0 14px;}
  .sponsor-item::before{height:56px;}
  .sponsor-item img{height:46px;}
  .sponsor-item--brand img{height:58px;}
  .sponsor-item img.logo-cali{height:36px;}
}
@media(max-width:560px){
  .sponsors-row{row-gap:34px;}
  .sponsor-item{padding:0 12px;}
  .sponsor-item::before{display:none;}
  .sponsor-item img{height:38px;}
  .sponsor-item--brand img{height:46px;}
  .sponsor-item img.logo-cali{height:30px;}
}

/* ============ MODAL ============ */
.modal{position:fixed; inset:0; z-index:300; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(5,3,2,.85); backdrop-filter:blur(6px);}
.modal.open{display:flex;}
.modal-card{background:var(--black-2); border:1px solid rgba(212,168,67,.3); border-radius:16px; max-width:820px; width:100%; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; max-height:88vh;}
.modal-img{background-size:cover; background-position:center; min-height:340px;}
.modal-body{padding:36px 34px; position:relative; overflow:auto;}
.modal-close{position:absolute; top:16px; right:18px; background:none; border:none; color:var(--cream-2); font-size:28px; cursor:pointer; line-height:1;}
.modal-cat{font-family:var(--label); font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:10px; color:var(--gold-light);}
.modal-name{font-family:var(--label); font-weight:800; font-size:clamp(26px,3.6vw,40px); color:var(--cream-2); line-height:1.05; margin-top:8px;}
.modal-desc{font-family:var(--body); font-size:15px; color:rgba(243,231,216,.78); margin-top:18px; line-height:1.7;}
.modal-facts{display:flex; gap:30px; margin-top:22px; flex-wrap:wrap;}
.mf-k{font-family:var(--label); font-weight:800; font-size:15px; color:var(--gold);}
.mf-l{font-family:var(--label); font-weight:600; letter-spacing:.14em; text-transform:uppercase; font-size:9.5px; color:rgba(243,231,216,.5); margin-top:3px;}
.modal-body .btn{margin-top:26px;}

/* ============ RESPONSIVE ============ */
@media(max-width:1000px){
  .nav-links{display:none;}
  .nav .btn-primary{display:none;}
  .nav-burger{display:flex;}
  .art-grid{grid-template-columns:repeat(2,1fr);}
  .modal-card{grid-template-columns:1fr; max-height:90vh;}
  .modal-img{min-height:220px;}
  .exp-grid{grid-template-columns:1fr;}
  .tk-grid{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .arow{grid-template-columns:1fr; gap:6px; padding:20px 4px;}
  .a-place{text-align:left;}
  .filters{gap:8px;}
  .hero-inner{padding-bottom:12vh;}
  .ft-links{gap:36px;}
}
/* Pantallas de poco alto (ej. laptops con escalado de Windows >100%): evita que
   el logo del hero quede detrás del nav, compactando el bloque de contenido. */
@media(max-height:820px) and (min-width:821px){
  .hero-inner{padding-top:96px;}
  .hero-bb{width:clamp(110px,12vw,165px); margin-bottom:12px;}
  .hero-logo{margin:8px 0 2px;}
  .hero-swlogo{width:clamp(240px,44vw,520px);}
  .hero-meta{margin-top:14px;}
  .hero-line{margin-top:10px;}
  .hero-badge{margin-top:14px; padding:7px 14px;}
  .countdown{margin-top:14px;}
  .cd-item{padding:9px 14px;}
  .hero-btns{margin-top:16px;}
}
@media(max-width:460px){
  .art-grid{grid-template-columns:1fr 1fr; gap:10px;}
}
