/* =========================================================
   MAKETICKET — Estilos v3
   Light theme sofisticado · texturas + tipografía display
   ========================================================= */

:root{
  --bg:            #FFFFFF;
  --bg-soft:       #FAFAF7;
  --bg-cream:      #FBF8F2;
  --bg-elev:       #FFFFFF;
  --surface:       #F4F4F0;
  --border:        #ECECEC;
  --border-strong: #D6D6D6;
  --text:          #0A0A0A;
  --text-muted:    #5A5A5A;
  --text-dim:      #909090;
  --primary:       #E41C34;          /* rojo Maketicket */
  --primary-hover: #C61428;
  --primary-soft:  #FFF1F3;
  --primary-glow:  rgba(228,28,52,0.18);
  --ink:           #0A0A0A;           /* near-black para contraste */
  --accent-warm:   #F5C84B;           /* dorado como guiño a los flyers */
  --success:       #16A34A;
  --gradient:      linear-gradient(135deg,#E41C34 0%,#FF5570 100%);
  --shadow-xs:     0 1px 2px rgba(0,0,0,0.05);
  --shadow-sm:     0 2px 4px rgba(0,0,0,0.04), 0 4px 8px rgba(0,0,0,0.04);
  --shadow:        0 4px 16px rgba(10,10,10,0.06), 0 12px 32px -8px rgba(10,10,10,0.10);
  --shadow-lg:     0 24px 60px -20px rgba(10,10,10,0.25);
  --radius:        16px;
  --radius-sm:     10px;
  --radius-lg:     24px;
  --max-w:         1600px;
  --font-display:  'Fraunces','Playfair Display',Georgia,serif;
  --font-sans:     'Inter',system-ui,sans-serif;
  --font-mono:     'Space Grotesk','Inter',sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* Textura sutil de puntos */
  background-image:
    radial-gradient(circle at 1px 1px, rgba(10,10,10,0.025) 1px, transparent 0);
  background-size: 24px 24px;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none;transition:opacity .2s ease}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--primary);color:#fff}

/* ======= Layout ======= */
.container{
  width:100%;max-width:var(--max-w);margin:0 auto;padding:0 28px;
}
.section{padding:90px 0}
.section-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);
  font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.18em;
  color:var(--primary);margin-bottom:14px;
}
.section-eyebrow::before{
  content:'';width:24px;height:1px;background:var(--primary);
}
.section-title{
  font-family:var(--font-display);
  font-size:clamp(2.2rem,4.2vw,3.4rem);
  font-weight:600;
  letter-spacing:-0.025em;
  line-height:1.05;
  margin-bottom:14px;
  color:var(--ink);
  font-variation-settings: "SOFT" 30, "WONK" 0;
}
.section-title em{
  font-style:italic;color:var(--primary);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}
.section-subtitle{
  color:var(--text-muted);font-size:1.05rem;
  margin-bottom:40px;max-width:680px;line-height:1.65;
}

/* ======= Header ======= */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid var(--border);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.logo{display:flex;align-items:center;gap:10px;color:var(--text)}
.logo img{height:44px;width:auto;display:block}
.logo-text{font-family:var(--font-display);font-weight:600;font-size:1.55rem;letter-spacing:-0.02em}

@media (max-width:640px){
  .header-inner{height:72px}
  .logo img{height:38px}
}
.nav{display:flex;gap:32px;align-items:center}
.nav a:not(.btn){color:var(--text);font-size:.93rem;font-weight:500;transition:color .2s ease;position:relative}
.nav a:not(.btn):hover{color:var(--primary)}
.nav a:not(.btn)::after{
  content:'';position:absolute;bottom:-6px;left:0;right:0;height:2px;
  background:var(--primary);transform:scaleX(0);transform-origin:center;
  transition:transform .25s ease;
}
.nav a:not(.btn):hover::after{transform:scaleX(1)}
.nav .btn{padding:10px 22px;font-size:.88rem}
.mobile-toggle{
  display:none;color:var(--text);
  background:transparent;border:none;cursor:pointer;
  padding:8px;border-radius:8px;
  transition:background .15s ease;
}
.mobile-toggle:hover{background:rgba(0,0,0,0.05)}
.mobile-toggle svg{width:24px;height:24px;display:block}
@media (max-width:880px){.nav{display:none}.mobile-toggle{display:block}}

/* ======= Buttons ======= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 28px;border-radius:50px;
  font-weight:600;font-size:.95rem;
  font-family:var(--font-sans);
  transition:all .25s cubic-bezier(.4,0,.2,1);
  cursor:pointer;white-space:nowrap;
  border:1.5px solid transparent;
  line-height:1;
}
.btn-primary{
  background:var(--primary);color:#ffffff;
  font-weight:700;                         /* refuerza legibilidad sobre rojo */
  text-rendering:optimizeLegibility;
  letter-spacing:.005em;
  box-shadow:0 4px 12px -2px rgba(228,28,52,0.35);
}
.btn-primary:hover{
  background:var(--primary-hover);
  transform:translateY(-2px);
  box-shadow:0 12px 28px -8px rgba(228,28,52,0.55);
}
.btn-secondary{
  background:transparent;color:var(--text);
  border-color:var(--border-strong);
}
.btn-secondary:hover{background:var(--bg-soft);border-color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#222;transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:var(--bg-soft)}
.btn-large{padding:17px 34px;font-size:1rem}
.btn-full{width:100%}

/* ======= Hero ======= */
.hero{
  position:relative;
  padding:80px 0 50px;
  overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(800px 400px at 92% 10%, rgba(228,28,52,0.08), transparent 60%),
    radial-gradient(700px 350px at 5% 90%, rgba(245,200,75,0.10), transparent 65%);
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:1;text-align:center;max-width:900px;margin:0 auto;
}
.hero-logo{
  display:flex;flex-direction:column;align-items:center;
  margin-bottom:28px;gap:14px;
  animation:heroLogoIn .8s cubic-bezier(.4,0,.2,1);
}
.hero-logo img{
  height:80px;width:auto;
  animation: heroLogoFloat 4s ease-in-out infinite, heroLogoIn .8s cubic-bezier(.4,0,.2,1);
  transform-origin:center;
}
@keyframes heroLogoFloat{
  0%, 100% {
    transform: translateY(0) scale(1);
    filter: drop-shadow(0 4px 12px rgba(228,28,52,0.15));
  }
  50% {
    transform: translateY(-8px) scale(1.02);
    filter: drop-shadow(0 12px 24px rgba(228,28,52,0.28));
  }
}
.hero-logo:hover img{
  animation-play-state: paused;
  transform: translateY(-4px) scale(1.05);
  filter: drop-shadow(0 14px 28px rgba(228,28,52,0.35));
  transition: all .3s ease;
}
.hero-logo-stamp{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);
  font-size:.78rem;
  color:var(--text-muted);
  letter-spacing:.05em;
  text-transform:uppercase;
  background:#fff;
  padding:7px 16px;
  border-radius:50px;
  border:1px solid var(--border);
  box-shadow:var(--shadow-xs);
}
.hero-logo-stamp strong{
  color:var(--ink);font-weight:700;letter-spacing:0;
  text-transform:lowercase;font-size:.85rem;
}
.hero-logo-stamp .stamp-dot{
  width:7px;height:7px;border-radius:50%;
  background:#16A34A;
  box-shadow:0 0 0 3px rgba(22,163,74,0.15);
}
.hero-logo-stamp .stamp-sep{color:var(--border-strong)}
@media (max-width:640px){
  .hero-logo{margin-bottom:20px;gap:10px}
  .hero-logo img{height:58px}
  .hero-logo-stamp{font-size:.7rem;padding:6px 12px}
  .hero-logo-stamp strong{font-size:.75rem}
}
@keyframes heroLogoIn{
  from{opacity:0;transform:translateY(-12px) scale(0.95)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;background:#fff;
  border:1px solid var(--border);
  border-radius:50px;
  font-size:.82rem;font-weight:500;color:var(--text-muted);
  margin-bottom:24px;box-shadow:var(--shadow-xs);
}
.hero-badge::before{
  content:'';width:8px;height:8px;border-radius:50%;
  background:var(--primary);
  box-shadow:0 0 0 4px rgba(228,28,52,0.18);
}
.hero h1{
  font-family:var(--font-display);
  font-size:clamp(2.5rem,5.5vw,4.4rem);
  font-weight:500;letter-spacing:-0.035em;line-height:1.02;
  margin-bottom:24px;color:var(--ink);
  font-variation-settings:"SOFT" 50;
}
.hero h1 .accent{
  font-style:italic;color:var(--primary);
  font-variation-settings:"SOFT" 100, "WONK" 1;
}
.hero p{
  font-size:1.18rem;color:var(--text-muted);
  max-width:640px;margin:0 auto 36px;line-height:1.55;
}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-meta{
  display:flex;justify-content:center;gap:32px;flex-wrap:wrap;
  margin-top:48px;color:var(--text-dim);font-size:.85rem;
}
.hero-meta strong{color:var(--ink);font-weight:600;font-family:var(--font-mono)}

/* ======= Carrusel ======= */
.carousel{
  position:relative;
  margin:30px auto 0;
  max-width:var(--max-w);
  padding:0 28px;
}
.carousel-track-wrap{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  background:var(--ink);
  aspect-ratio:8/3;
  max-height:560px;
}
.carousel-track{
  display:flex;height:100%;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.carousel-slide{
  flex:0 0 100%;height:100%;
  position:relative;cursor:pointer;
  overflow:hidden;
}
.carousel-slide img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 6s ease-out;
}
.carousel-slide:hover img{transform:scale(1.04)}
.carousel-caption{
  position:absolute;left:0;right:0;bottom:0;
  padding:36px 40px;
  background:linear-gradient(to top, rgba(0,0,0,0.85), rgba(0,0,0,0.35) 60%, transparent);
  color:#fff;
}
.carousel-caption h3{
  font-family:var(--font-display);
  font-size:clamp(1.4rem,2.4vw,2.2rem);
  font-weight:500;letter-spacing:-0.02em;
  margin-bottom:6px;
}
.carousel-caption p{
  font-size:.95rem;opacity:.85;
  font-family:var(--font-mono);
  letter-spacing:.03em;
}
.carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.95);color:var(--ink);
  display:grid;place-items:center;font-size:1.2rem;
  cursor:pointer;z-index:5;
  transition:all .2s ease;
  box-shadow:var(--shadow-sm);
}
.carousel-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
.carousel-arrow.prev{left:16px}
.carousel-arrow.next{right:16px}
.carousel-dots{
  display:flex;gap:8px;justify-content:center;
  margin-top:18px;
}
.carousel-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--border-strong);
  cursor:pointer;transition:all .25s ease;
}
.carousel-dot.active{background:var(--primary);width:24px;border-radius:4px}

@media (max-width:1024px){
  .carousel-track-wrap{aspect-ratio:16/9;max-height:none}
}
@media (max-width:640px){
  .carousel{padding:0 16px;margin-top:20px}
  .carousel-track-wrap{border-radius:var(--radius)}
  .carousel-caption{padding:20px 22px}
  .carousel-arrow{width:36px;height:36px}
}

/* ======= Filtros / búsqueda ======= */
.events-toolbar{
  display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  margin-bottom:32px;
}
.filter-chip{
  padding:9px 18px;border-radius:50px;
  border:1px solid var(--border-strong);
  background:#fff;color:var(--text);
  font-size:.88rem;font-weight:500;cursor:pointer;
  transition:all .2s ease;font-family:var(--font-sans);
}
.filter-chip:hover{border-color:var(--ink);color:var(--ink)}
.filter-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.search-box{flex:1;min-width:220px;max-width:340px;position:relative}
.search-box input{
  width:100%;padding:11px 14px 11px 40px;
  border:1px solid var(--border-strong);
  border-radius:50px;font-size:.92rem;font-family:inherit;
  background:#fff;color:var(--text);
  transition:border-color .2s ease;
}
.search-box input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(0,0,0,0.04)}
.search-box::before{
  content:'';position:absolute;left:14px;top:50%;
  width:16px;height:16px;
  transform:translateY(-50%);
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A5A5A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.35-4.35'/></svg>") center/contain no-repeat;
}

/* ======= Events Grid ======= */
.events{padding:60px 0 100px}
.events-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:24px;
}
.event-card{
  position:relative;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
  display:flex;flex-direction:column;
}
.event-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow);
}
.event-img{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--bg-soft)}
.event-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.event-card:hover .event-img img{transform:scale(1.06)}
/* Contenedor de badges arriba del flyer — se acomoda sin solapamientos */
.event-img{display:block}
.event-img .badges-stack{
  position:absolute;top:12px;left:12px;right:12px;
  z-index:2;
  display:flex;flex-wrap:wrap;gap:6px;
  pointer-events:none; /* no bloquea el click al card */
}
.event-img .badges-stack > *{pointer-events:auto}

.event-tag{
  background:rgba(255,255,255,0.95);
  backdrop-filter:blur(10px);
  color:var(--ink);padding:5px 10px;border-radius:50px;
  font-size:.66rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;
  font-family:var(--font-mono);
  line-height:1;
  white-space:nowrap;
}
.event-tag.tag-hot{background:var(--primary);color:#fff}
.event-tag.tag-soon{background:var(--ink);color:#fff}
.event-tag.tag-sold-out{background:#888;color:#fff}
.event-tag.tag-multi{
  background:#fff;color:var(--ink);
  border:1px solid var(--border-strong);
}
.event-tag.tag-multi::before{content:'📅 '}
.event-body{
  padding:20px 22px 22px;
  display:flex;flex-direction:column;flex:1;gap:8px;
}
.event-date{
  font-size:.78rem;color:var(--primary);
  font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  font-family:var(--font-mono);
}
.event-title{
  font-family:var(--font-display);
  font-size:1.25rem;font-weight:500;line-height:1.15;
  letter-spacing:-0.015em;color:var(--ink);
}
.event-venue{
  color:var(--text-muted);font-size:.88rem;
  display:flex;align-items:flex-start;gap:6px;
  margin-top:2px;
}
.event-venue::before{content:'·';color:var(--primary);font-weight:bold}
.event-cta{
  margin-top:auto;padding-top:8px;
  display:flex;align-items:center;justify-content:space-between;
  font-weight:600;font-size:.9rem;color:var(--ink);
  font-family:var(--font-sans);
}
.event-cta-arrow{
  width:32px;height:32px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;
  transition:all .25s ease;
}
.event-card:hover .event-cta-arrow{
  background:var(--primary);color:#fff;transform:translateX(4px);
}

.empty-state{
  grid-column:1/-1;
  text-align:center;padding:80px 20px;
  color:var(--text-muted);
}
.empty-state h3{font-family:var(--font-display);color:var(--text);margin-bottom:6px;font-size:1.4rem;font-weight:500}

/* ======= Event Detail ======= */
.event-hero{
  position:relative;padding:50px 0 40px;
  overflow:hidden;
}
.event-hero::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:radial-gradient(700px 400px at 90% 10%, rgba(228,28,52,0.05), transparent 60%);
  pointer-events:none;
}
.event-hero-inner{
  display:grid;grid-template-columns:0.9fr 1.1fr;gap:50px;align-items:start;
  position:relative;z-index:1;
}
@media (max-width:900px){.event-hero-inner{grid-template-columns:1fr;gap:32px}}
.event-hero-img{
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-lg);
  aspect-ratio:4/5;background:var(--bg-soft);
  position:sticky;top:96px;
}
@media (max-width:900px){.event-hero-img{position:static}}
.event-hero-img img{width:100%;height:100%;object-fit:cover}
.event-hero-info .event-date{margin-bottom:14px;font-size:.88rem}
.event-hero-info h1{
  font-family:var(--font-display);
  font-size:clamp(2.1rem,4.2vw,3.2rem);
  font-weight:500;letter-spacing:-0.025em;line-height:1.05;
  margin-bottom:16px;color:var(--ink);
}
.event-description{
  color:var(--text-muted);font-size:1.04rem;
  margin-bottom:24px;line-height:1.65;
}

/* Date selector para eventos multi-día */
.date-selector{
  margin:24px 0 32px;
  background:var(--bg-cream);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:20px 22px;
}
.date-selector h4{
  font-family:var(--font-mono);
  font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink);margin-bottom:14px;
}
.date-list{display:flex;flex-direction:column;gap:10px}
.date-item{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:14px 16px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  transition:all .2s ease;
}
.date-item:hover{border-color:var(--primary);box-shadow:var(--shadow-xs)}
.date-item.highlight{
  background:linear-gradient(135deg,var(--primary-soft) 0%,#fff 100%);
  border-color:var(--primary);
}
.date-item-info strong{
  font-family:var(--font-display);
  font-weight:500;font-size:1.05rem;
  letter-spacing:-0.01em;color:var(--ink);
  display:block;
}
.date-item-info span{
  font-family:var(--font-mono);
  font-size:.82rem;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.06em;
}
.date-item .btn{padding:10px 20px;font-size:.85rem;flex-shrink:0}

.event-meta{display:grid;gap:10px;margin:24px 0 28px}
.event-meta-row{
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;background:var(--bg-soft);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
}
.event-meta-row strong{
  display:block;font-size:.7rem;color:var(--text-dim);
  text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:2px;font-weight:700;font-family:var(--font-mono);
}
.event-meta-row span{font-size:.96rem;font-weight:500;color:var(--text)}
.event-meta-icon{
  width:38px;height:38px;flex-shrink:0;border-radius:10px;
  background:#fff;color:var(--primary);
  display:grid;place-items:center;font-size:1rem;
  border:1px solid var(--border);
}

/* ======= Layout NUEVO del detalle (v6) ======= */
.event-detail-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:50px;
  align-items:start;
  position:relative;z-index:1;
  margin-bottom:60px;
}
@media (max-width:900px){.event-detail-grid{grid-template-columns:1fr;gap:32px}}

/* Fila 2: Precios izquierda + Plano derecha */
.event-detail-row2{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:50px;
  align-items:start;
  margin-bottom:60px;
}
@media (max-width:900px){.event-detail-row2{grid-template-columns:1fr;gap:32px}}

.detail-pricing-col h2,
.detail-map-col h2{
  font-family:var(--font-display);
  font-size:1.6rem;font-weight:500;
  letter-spacing:-0.015em;color:var(--ink);
  margin-bottom:18px;
}
.detail-pricing-col h2 em,
.detail-map-col h2 em{
  font-style:italic;color:var(--primary);
}

.detail-pricing-col .pricing{
  grid-template-columns:1fr;
  margin-bottom:0;
}
@media (min-width:1100px){
  .detail-pricing-col .pricing{grid-template-columns:1fr 1fr;}
}

/* Plano con marco iOS-style */
.seating-map-card{
  background:#FFFFFF;
  border-radius:var(--radius-lg);
  padding:28px;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 12px 32px -10px rgba(0,0,0,0.18),
    0 24px 48px -20px rgba(0,0,0,0.12);
  border:1px solid rgba(0,0,0,0.04);
  overflow:hidden;
  position:relative;
}
.seating-map-card.bg-white{background:#FFFFFF}
.seating-map-card.bg-cream{background:var(--bg-cream)}
.seating-map-card.bg-dark{background:var(--ink)}
.seating-map-card.bg-dark .seating-map-caption{color:rgba(255,255,255,0.7)}

.seating-map-card img{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--radius);
}
.seating-map-caption{
  margin-top:14px;text-align:center;
  font-family:var(--font-mono);
  font-size:.75rem;color:var(--text-dim);
  text-transform:uppercase;letter-spacing:.1em;
}

/* Precio AGOTADA */
.price-tier.sold-out{
  background:var(--bg-soft);
  border-color:var(--border);
  opacity:0.65;
}
.price-tier.sold-out::before{
  content:'AGOTADA';
  position:absolute;top:-12px;left:50%;
  transform:translateX(-50%);
  background:#666;color:#fff;
  font-size:.66rem;font-weight:700;
  padding:5px 12px;border-radius:50px;
  letter-spacing:.08em;
  font-family:var(--font-mono);
}
.price-tier.sold-out .price-tier-amount{
  text-decoration:line-through;
  text-decoration-color:rgba(0,0,0,0.4);
}
.price-tier.sold-out:hover{
  transform:none;
  border-color:var(--border);
  box-shadow:none;
}

/* Banda de logos productores */
.producer-logos-band{
  margin:60px 0;
  padding:36px 32px;
  border-radius:var(--radius-lg);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.producer-logos-band.bg-dark{
  background:var(--ink);
  color:rgba(255,255,255,0.6);
}
.producer-logos-band.bg-red{
  background:var(--primary);
  color:rgba(255,255,255,0.85);
}
.producer-logos-band.bg-cream{
  background:var(--bg-cream);
  color:var(--text-muted);
  border:1px solid var(--border);
}
.producer-logos-band.bg-white{
  background:#fff;
  color:var(--text-muted);
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.producer-logos-band .eyebrow{
  font-family:var(--font-mono);
  font-size:.7rem;text-transform:uppercase;
  letter-spacing:.18em;font-weight:600;
  margin-bottom:18px;opacity:.7;
}
.producer-logos-band img{
  max-width:100%;height:auto;display:block;margin:0 auto;
  max-height:120px;
  object-fit:contain;
}

/* Sección Taquillas + Métodos de pago */
.ticket-outlets-section{
  background:var(--bg-soft);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:60px 0;
  margin-top:60px;
}
.outlets-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
  margin-bottom:32px;
}
.outlet-item{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:20px 22px;
  transition:all .25s ease;
  display:flex;flex-direction:column;gap:8px;
  text-decoration:none;color:inherit;
  position:relative;
}
.outlet-item:hover{
  border-color:var(--primary);
  transform:translateY(-3px);
  box-shadow:var(--shadow-sm);
}
.outlet-clickable{cursor:pointer}
.outlet-clickable:hover .outlet-map-icon{
  background:var(--primary);color:#fff;transform:scale(1.08);
}
.outlet-clickable:hover .outlet-cta{
  color:var(--primary);transform:translateX(3px);
}
.outlet-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:10px;
}
.outlet-name{
  font-family:var(--font-display);
  font-size:1.05rem;font-weight:500;
  letter-spacing:-0.01em;color:var(--ink);
  line-height:1.2;
}
.outlet-map-icon{
  flex-shrink:0;
  width:34px;height:34px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;
  transition:all .2s ease;
}
.outlet-detail{
  font-size:.85rem;color:var(--text-muted);
  line-height:1.4;
}
.outlet-address{
  font-size:.78rem;color:var(--text-dim);
  line-height:1.4;font-style:italic;
}
.outlet-hours{
  font-family:var(--font-mono);
  font-size:.78rem;color:var(--text);
  display:flex;align-items:center;gap:6px;
}
.outlet-hours::before{content:'🕒';font-size:.85rem}
.outlet-cta{
  font-family:var(--font-mono);
  font-size:.78rem;font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.06em;
  margin-top:6px;
  transition:all .25s ease;
}

/* En premium: el icono del mapa usa el color del evento */
body.premium-event-page .outlet-map-icon{
  background:color-mix(in srgb, var(--event-primary) 14%, rgba(255,255,255,0.7));
  color:var(--event-primary);
}
body.premium-event-page .outlet-clickable:hover .outlet-map-icon{
  background:var(--event-primary);
}
body.premium-event-page .outlet-clickable:hover .outlet-cta{
  color:var(--event-primary);
}

.payment-methods{
  display:flex;justify-content:center;flex-wrap:wrap;gap:10px;
  margin-top:24px;
}
.payment-chip{
  background:#fff;
  border:1px solid var(--border);
  border-radius:50px;
  padding:8px 16px;
  font-size:.85rem;
  color:var(--text);
  font-weight:500;
  font-family:var(--font-mono);
}

/* Plano */
.seating-map-wrap{
  background:var(--bg-soft);border:1px solid var(--border);
  border-radius:var(--radius);padding:24px;overflow:hidden;
}
.seating-map-wrap img{width:100%;border-radius:var(--radius-sm)}

/* Pricing */
.pricing{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;margin-bottom:40px;
}
.price-tier{
  padding:24px 20px;background:#fff;
  border:1px solid var(--border);border-radius:var(--radius);
  text-align:center;
  transition:all .25s ease;
  position:relative;
}
.price-tier:hover{
  border-color:var(--primary);
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
.price-tier.featured{
  background:var(--ink);border-color:var(--ink);position:relative;
}
.price-tier.featured::before{
  content:'⭐ MÁS VENDIDA';position:absolute;top:-12px;left:50%;
  transform:translateX(-50%);
  background:var(--primary);color:#fff;
  font-size:.66rem;font-weight:700;
  padding:5px 12px;border-radius:50px;
  letter-spacing:.08em;
  font-family:var(--font-mono);
}
.price-tier-name{
  font-family:var(--font-mono);
  font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;
  color:var(--text-muted);margin-bottom:10px;
}
.price-tier.featured .price-tier-name{color:rgba(255,255,255,0.7)}
.price-tier-amount{
  font-family:var(--font-display);
  font-size:1.9rem;font-weight:500;
  letter-spacing:-0.02em;color:var(--ink);
  line-height:1;
}
.price-tier.featured .price-tier-amount{color:#fff}
.price-tier-currency{
  font-size:.85rem;color:var(--text-muted);
  font-weight:500;margin-right:3px;
  font-family:var(--font-mono);
}
.price-tier.featured .price-tier-currency{color:rgba(255,255,255,0.6)}
.price-tier-note{
  font-size:.74rem;color:var(--text-dim);margin-top:6px;
}
.price-tier.featured .price-tier-note{color:rgba(255,255,255,0.6)}

/* CTA box */
.buy-cta-section{
  margin:48px auto;max-width:640px;
  background:linear-gradient(135deg,#fff 0%,var(--bg-cream) 100%);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:36px 32px;text-align:center;box-shadow:var(--shadow);
}
.buy-cta-section h3{
  font-family:var(--font-display);font-size:1.5rem;font-weight:500;
  margin-bottom:8px;color:var(--ink);letter-spacing:-0.01em;
}
.buy-cta-section p{color:var(--text-muted);font-size:.94rem;margin-bottom:22px}

.back-link{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--text-muted);font-size:.88rem;
  margin-bottom:18px;transition:color .2s ease;
  font-family:var(--font-mono);text-transform:uppercase;
  letter-spacing:.06em;font-weight:600;
}
.back-link:hover{color:var(--primary)}
.back-link::before{content:'←';font-family:var(--font-sans);font-weight:400}

/* ======= Espacios publicitarios ======= */
.ad-grid-card{
  grid-column:span 1;
  background:linear-gradient(135deg, var(--ink) 0%, #1f1f1f 100%);
  color:#fff;border-radius:var(--radius);
  overflow:hidden;padding:32px 26px;
  display:flex;flex-direction:column;justify-content:center;
  min-height:380px;
  position:relative;
}
.ad-grid-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%, rgba(228,28,52,0.25), transparent 60%);
  pointer-events:none;
}
.ad-grid-card > *{position:relative;z-index:1}
.ad-grid-card h3{
  font-family:var(--font-display);
  font-size:1.6rem;font-weight:500;line-height:1.1;
  margin-bottom:10px;letter-spacing:-0.015em;
}
.ad-grid-card h3 em{color:var(--accent-warm);font-style:italic}
.ad-grid-card p{font-size:.94rem;opacity:.85;margin-bottom:20px;line-height:1.5}
.ad-grid-card .btn{background:#fff;color:var(--ink);align-self:flex-start}
.ad-grid-card .btn:hover{background:var(--accent-warm)}
.ad-label{
  position:absolute;top:14px;right:14px;
  background:rgba(255,255,255,0.1);color:#fff;
  font-size:.65rem;padding:3px 8px;border-radius:4px;
  letter-spacing:.08em;text-transform:uppercase;
  font-weight:600;font-family:var(--font-mono);
}

/* ======= Sección Trust + Stats ======= */
.trust{
  background:var(--bg-cream);
  padding:90px 0;
  border-top:1px solid var(--border);
  position:relative;
}
.trust::before{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(10,10,10,0.04) 1px, transparent 0);
  background-size: 24px 24px;
  opacity:0.4;
  pointer-events:none;
}
.trust > *{position:relative;z-index:1}
.trust-header{text-align:center;margin-bottom:56px;max-width:720px;margin-left:auto;margin-right:auto}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:22px;
}
.trust-item{
  padding:30px 26px;background:#fff;border-radius:var(--radius);
  border:1px solid var(--border);
  transition:transform .25s ease,box-shadow .25s ease;
}
.trust-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.trust-icon{
  width:46px;height:46px;border-radius:12px;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;font-size:1.3rem;
  margin-bottom:16px;
}
.trust-item h3{
  font-family:var(--font-display);
  font-size:1.2rem;font-weight:500;
  margin-bottom:8px;letter-spacing:-0.01em;
}
.trust-item p{color:var(--text-muted);font-size:.94rem;line-height:1.55}

.stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;margin-top:60px;
  padding:36px;background:#fff;
  border:1px solid var(--border);border-radius:var(--radius-lg);
}
@media (max-width:680px){.stats{grid-template-columns:1fr;padding:24px}}
.stat{text-align:center;position:relative}
.stat:not(:last-child)::after{
  content:'';position:absolute;right:-12px;top:20%;height:60%;width:1px;
  background:var(--border);
}
@media (max-width:680px){.stat:not(:last-child)::after{display:none}}
.stat-num{
  font-family:var(--font-display);
  font-size:clamp(2.2rem,4vw,3rem);
  font-weight:500;line-height:1;
  letter-spacing:-0.025em;color:var(--ink);
}
.stat-num em{color:var(--primary);font-style:normal}
.stat-label{
  font-family:var(--font-mono);
  font-size:.78rem;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.1em;
  margin-top:8px;font-weight:500;
}

/* ======= Sectores ======= */
.sectors{padding:90px 0;background:#fff;border-top:1px solid var(--border)}
.sectors-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
@media (max-width:920px){.sectors-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.sectors-grid{grid-template-columns:1fr}}
.sector-item{
  background:var(--bg-soft);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:26px 22px;
  transition:all .25s ease;
  position:relative;
  overflow:hidden;
}
.sector-item::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--primary);
  transform:scaleY(0);transform-origin:top;
  transition:transform .25s ease;
}
.sector-item:hover{
  background:#fff;border-color:var(--border-strong);
  transform:translateY(-3px);box-shadow:var(--shadow-sm);
}
.sector-item:hover::before{transform:scaleY(1)}
.sector-icon{
  font-size:1.6rem;margin-bottom:12px;
  display:inline-flex;width:44px;height:44px;
  background:#fff;border:1px solid var(--border);
  border-radius:12px;align-items:center;justify-content:center;
}
.sector-item h3{
  font-family:var(--font-display);
  font-size:1.15rem;font-weight:500;
  letter-spacing:-0.01em;color:var(--ink);
  margin-bottom:6px;
}
.sector-item p{
  color:var(--text-muted);font-size:.88rem;line-height:1.55;
}

/* ======= Cómo trabajamos ======= */
.process{
  padding:90px 0;
  background:var(--bg-cream);
  border-top:1px solid var(--border);
  position:relative;
}
.process::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle at 1px 1px, rgba(10,10,10,0.04) 1px, transparent 0);
  background-size:24px 24px;opacity:0.4;pointer-events:none;
}
.process > *{position:relative;z-index:1}
.process-timeline{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;position:relative;
}
@media (max-width:980px){.process-timeline{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.process-timeline{grid-template-columns:1fr}}
.process-timeline::before{
  content:'';position:absolute;
  top:40px;left:6%;right:6%;height:2px;
  background:repeating-linear-gradient(
    to right,
    var(--border-strong) 0 8px,
    transparent 8px 16px
  );
  z-index:0;
}
@media (max-width:980px){.process-timeline::before{display:none}}
.process-step{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);padding:22px 20px;
  text-align:center;position:relative;z-index:1;
  transition:transform .25s ease,box-shadow .25s ease;
}
.process-step:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.process-num{
  width:48px;height:48px;border-radius:50%;
  background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:600;font-size:1.4rem;
  margin:0 auto 14px;
  box-shadow:0 4px 12px -3px rgba(228,28,52,0.45);
}
.process-step h3{
  font-family:var(--font-display);font-size:1.1rem;font-weight:500;
  letter-spacing:-0.01em;color:var(--ink);margin-bottom:6px;
}
.process-step p{color:var(--text-muted);font-size:.85rem;line-height:1.5}

/* ======= FAQ ======= */
.faq-section{
  padding:90px 0;background:#fff;
  border-top:1px solid var(--border);
}
.faq-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  max-width:980px;margin:0 auto;
}
@media (max-width:780px){.faq-grid{grid-template-columns:1fr}}
.faq-item{
  background:var(--bg-soft);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:0;
  transition:border-color .2s ease;
}
.faq-item:hover{border-color:var(--border-strong)}
.faq-item[open]{border-color:var(--primary);background:#fff}
.faq-item summary{
  cursor:pointer;
  padding:20px 22px;
  font-family:var(--font-display);
  font-weight:500;font-size:1.02rem;
  color:var(--ink);letter-spacing:-0.005em;
  list-style:none;
  display:flex;justify-content:space-between;align-items:center;
  gap:14px;line-height:1.3;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:'+';
  font-family:var(--font-sans);
  font-size:1.6rem;font-weight:300;color:var(--primary);
  flex-shrink:0;
  transition:transform .25s ease;
  line-height:1;
}
.faq-item[open] summary::after{
  content:'−';transform:rotate(0deg);
}
.faq-item p{
  padding:0 22px 22px;
  color:var(--text-muted);
  font-size:.95rem;line-height:1.65;
}

/* ======= Footer ======= */
.footer{
  padding:70px 0 30px;
  background:var(--ink);
  color:rgba(255,255,255,0.7);
  position:relative;
  overflow:hidden;
}
.footer::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:1px;background:linear-gradient(90deg, transparent, var(--primary), transparent);
}
.footer-grid{
  display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;
  gap:48px;margin-bottom:48px;
}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;gap:32px}}
.footer-brand img{filter:brightness(0) invert(1);height:30px;margin-bottom:18px}
.footer-brand .mission{
  font-family:var(--font-display);font-style:italic;
  color:rgba(255,255,255,0.85);
  font-size:1.05rem;line-height:1.5;max-width:380px;
  margin-bottom:20px;
}
.footer h4{
  font-family:var(--font-mono);
  font-size:.74rem;text-transform:uppercase;
  letter-spacing:.12em;color:rgba(255,255,255,0.5);
  margin-bottom:16px;font-weight:600;
}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer ul a{color:rgba(255,255,255,0.7);font-size:.93rem;transition:color .2s ease}
.footer ul a:hover{color:#fff}
.footer-social{display:flex;gap:10px;margin-top:18px}
.footer-social a{
  width:38px;height:38px;display:grid;place-items:center;
  background:rgba(255,255,255,0.08);color:#fff;
  border-radius:50%;transition:all .25s ease;
  font-size:.8rem;font-weight:700;
  font-family:var(--font-mono);
}
.footer-social a:hover{background:var(--primary);transform:translateY(-3px)}
.footer-bottom{
  padding-top:30px;border-top:1px solid rgba(255,255,255,0.08);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;color:rgba(255,255,255,0.45);font-size:.82rem;
}

/* ======= Countdown badge ======= */
.countdown-badge{
  background:rgba(255,255,255,0.95);
  backdrop-filter:blur(10px);
  color:var(--ink);
  padding:5px 10px;
  border-radius:50px;
  font-size:.66rem;font-weight:700;
  font-family:var(--font-mono);
  text-transform:uppercase;letter-spacing:.05em;
  display:inline-flex;align-items:center;gap:5px;
  line-height:1;
  white-space:nowrap;
}
.countdown-badge .countdown-icon{font-size:.78rem;line-height:1}
.countdown-badge.urgent{
  background:var(--accent-warm);
  color:var(--ink);
}
.countdown-badge.critical{
  background:var(--primary);color:#fff;
  animation:pulseCountdown 2s infinite;
}
.countdown-badge.detail{
  position:static;
  font-size:.78rem;padding:7px 14px;
}
@keyframes pulseCountdown{
  0%, 100% { transform:scale(1); box-shadow: 0 0 0 0 rgba(228,28,52,0.5); }
  50% { transform:scale(1.05); box-shadow: 0 0 0 8px rgba(228,28,52,0); }
}

/* ======= Compartir WhatsApp + toolbar detalle ======= */
.detail-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;margin-bottom:18px;flex-wrap:wrap;
}
.detail-actions{display:flex;align-items:center;gap:10px}
.share-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:50px;
  font-size:.85rem;font-weight:600;
  transition:all .2s ease;
  border:1px solid var(--border-strong);
  background:#fff;color:var(--text);
}
.share-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.share-whatsapp{background:#25D366;color:#fff;border-color:#25D366}
.share-whatsapp:hover{background:#1FB855;border-color:#1FB855}

/* ======= Filtros: filas + meses ======= */
.toolbar-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.filter-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter-months .month-chip{
  background:var(--bg-cream);
  border-color:var(--border);
}
.filter-months .month-chip.active{
  background:var(--primary);color:#fff;border-color:var(--primary);
}

/* ======= Buscador global (estilo Ticketmaster) ======= */
.global-search{
  position:relative;
  margin:24px 0 0;
  max-width:680px;
}
.global-search-box{
  position:relative;
  display:flex;align-items:center;
  background:#fff;
  border:1.5px solid var(--border-strong);
  border-radius:50px;
  padding:0 14px;
  transition:all .2s ease;
}
.global-search-box:focus-within{
  border-color:var(--ink);
  box-shadow:0 8px 24px -8px rgba(0,0,0,0.18), 0 0 0 4px rgba(0,0,0,0.04);
}
.global-search-box::before{
  content:'';
  width:18px;height:18px;flex-shrink:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F0F14' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.35-4.35'/></svg>") center/contain no-repeat;
}
.global-search-box input{
  flex:1;
  padding:16px 14px;
  border:none;outline:none;background:transparent;
  font-size:1rem;font-family:inherit;color:var(--text);
}
.global-search-box input::placeholder{color:var(--text-dim)}
.global-search-clear{
  width:28px;height:28px;border-radius:50%;
  background:var(--bg-soft);color:var(--text);
  font-size:.85rem;font-weight:bold;
  display:grid;place-items:center;
  flex-shrink:0;cursor:pointer;
  transition:all .15s ease;
}
.global-search-clear:hover{background:var(--primary);color:#fff}

.global-search-results{
  position:absolute;top:calc(100% + 8px);left:0;right:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:
    0 1px 2px rgba(0,0,0,0.08),
    0 24px 48px -12px rgba(0,0,0,0.25);
  max-height:480px;overflow-y:auto;
  z-index:200;                         /* arriba de advertiser-bar / carousel / siguientes secciones */
  padding:8px;
}
/* El contenedor del search también necesita stacking context propio
   para que el dropdown absolute no quede atrapado detrás del flow posterior */
.global-search{position:relative;z-index:60}
.global-search--hero{z-index:60}
.global-search-results[hidden]{display:none}
.search-results-footer{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 14px;margin-top:6px;
  border-top:1px solid var(--border);
  background:var(--bg-soft);
  border-radius:0 0 var(--radius) var(--radius);
  font-size:.82rem;font-family:var(--font-mono);
  color:var(--text-muted);letter-spacing:.02em;
}
.search-jump{
  color:var(--primary);font-weight:600;text-decoration:none;
  transition:opacity .15s ease;
}
.search-jump:hover{opacity:.75}
.search-result{
  display:flex;gap:14px;align-items:center;
  padding:10px;border-radius:var(--radius-sm);
  transition:background .15s ease;
}
.search-result:hover{background:var(--bg-soft)}
.search-result img{
  width:56px;height:70px;
  object-fit:cover;border-radius:8px;flex-shrink:0;
  background:var(--bg-soft);
}
.search-result-info{flex:1;min-width:0}
.search-result-title{
  font-family:var(--font-display);
  font-weight:500;font-size:1rem;
  color:var(--ink);margin-bottom:2px;
  line-height:1.2;letter-spacing:-0.005em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.search-result-meta{
  color:var(--text-muted);font-size:.82rem;
  font-family:var(--font-mono);letter-spacing:.02em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.search-empty{
  text-align:center;color:var(--text-muted);
  font-size:.92rem;padding:24px;
}

/* ======= Barra de publicidad horizontal ======= */
.advertiser-bar{
  position:relative;
  margin:20px auto 0;
  max-width:var(--max-w);
  padding:0 28px;
  min-height:88px;
}
@media (max-width:900px){
  .advertiser-bar{min-height:140px;padding:0 16px}
  .advertiser-slide{left:16px;right:16px}
}
@media (max-width:520px){
  .advertiser-bar{min-height:170px}
  .advertiser-slide{flex-wrap:wrap;gap:10px;padding:14px 18px}
  .advertiser-body strong{font-size:1rem}
  .advertiser-body span{font-size:.82rem}
  .advertiser-cta{font-size:.72rem;padding:6px 12px}
}
.advertiser-slide{
  position:absolute;left:28px;right:28px;top:0;
  display:flex;align-items:center;gap:20px;
  padding:18px 26px;
  border-radius:var(--radius);
  border:1px solid rgba(0,0,0,0.06);
  text-decoration:none;
  opacity:0;visibility:hidden;
  transition:opacity .5s ease, transform .5s ease;
  transform:translateY(10px);
  box-shadow:var(--shadow-sm);
}
.advertiser-slide.active{opacity:1;visibility:visible;transform:translateY(0)}
.advertiser-label{
  font-family:var(--font-mono);
  font-size:.65rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;
  padding:3px 8px;border-radius:4px;
  background:rgba(0,0,0,0.06);
  flex-shrink:0;
}
.advertiser-img{
  max-height:60px;width:auto;
  flex-shrink:0;
}
.advertiser-body{
  flex:1;display:flex;flex-direction:column;
  gap:2px;min-width:0;
}
.advertiser-body strong{
  font-family:var(--font-display);
  font-size:1.08rem;font-weight:500;
  letter-spacing:-0.01em;
}
.advertiser-body span{
  font-size:.88rem;opacity:.85;
  overflow:hidden;text-overflow:ellipsis;
}
.advertiser-cta{
  font-family:var(--font-mono);
  font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;
  padding:8px 16px;border:1.5px solid;border-radius:50px;
  flex-shrink:0;
  transition:transform .2s ease;
}
.advertiser-slide:hover .advertiser-cta{transform:translateX(3px)}

/* ======= Página legal (Términos / Privacidad) ======= */
.legal-page{padding:50px 0 80px;min-height:60vh}
.legal-header{margin-bottom:48px}
.legal-header h1{
  font-family:var(--font-display);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:500;letter-spacing:-0.025em;line-height:1.05;
  margin-bottom:12px;color:var(--ink);
}
.legal-header h1 em{font-style:italic;color:var(--primary)}
.legal-meta{
  color:var(--text-muted);font-size:.95rem;
  margin-bottom:24px;
}
.legal-tabs{
  display:flex;gap:4px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:1px solid var(--border);
}
.legal-tab{
  padding:10px 18px;border-radius:50px;
  font-size:.92rem;font-weight:500;
  color:var(--text-muted);
  background:var(--bg-soft);
  border:1px solid var(--border);
  transition:all .2s ease;
}
.legal-tab:hover{color:var(--ink);border-color:var(--border-strong)}
.legal-tab.active{
  background:var(--ink);color:#fff;border-color:var(--ink);
}
.legal-content{
  max-width:760px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:48px;
  box-shadow:var(--shadow-sm);
}
.legal-content section{margin-bottom:36px}
.legal-content h2{
  font-family:var(--font-display);
  font-size:1.4rem;font-weight:500;
  letter-spacing:-0.015em;color:var(--ink);
  margin-bottom:14px;line-height:1.2;
}
.legal-content h3{
  font-family:var(--font-display);
  font-size:1.1rem;font-weight:500;
  color:var(--ink);margin:18px 0 8px;
}
.legal-content p{
  color:var(--text);font-size:.96rem;
  line-height:1.7;margin-bottom:12px;
}
.legal-content a{
  color:var(--primary);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.legal-content a:hover{text-decoration-thickness:2px}
.legal-content ul.legal-list,
.legal-content ol.legal-list{
  margin:12px 0 16px 18px;
  padding-left:8px;
}
.legal-content ul.legal-list li,
.legal-content ol.legal-list li{
  margin-bottom:8px;line-height:1.65;color:var(--text);
}
.legal-content .legal-footer{
  margin-top:32px;padding-top:20px;
  border-top:1px solid var(--border);
  font-size:.88rem;color:var(--text-muted);
}
@media (max-width:680px){
  .legal-content{padding:28px 22px}
  .legal-content h2{font-size:1.2rem}
}

/* ============================================================
   BANNER STICKY de VISTA PREVIA (eventos en draft)
   ============================================================ */
.draft-banner{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:linear-gradient(90deg,#FFB800 0%,#F5C84B 100%);
  color:var(--ink);
  padding:9px 18px;
  display:flex;align-items:center;justify-content:center;
  gap:10px;flex-wrap:wrap;
  font-family:var(--font-mono);
  font-size:.82rem;font-weight:500;
  letter-spacing:.04em;
  box-shadow:0 2px 8px rgba(0,0,0,0.12);
}
.draft-banner strong{
  font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;
}
.draft-banner .draft-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--primary);
  animation:pulseCountdown 2s infinite;
  flex-shrink:0;
}
.draft-banner .draft-divider{opacity:.5}

/* Variante: evento ya culminado (archivo) — tono sobrio, sin pulso */
.draft-banner-ended{
  background:linear-gradient(90deg,#1f1f1f 0%,#363636 100%);
  color:#f5f1ea;
}
.draft-banner-ended .draft-dot{
  background:#9aa0a6;
  animation:none;
}
.draft-banner-ended .draft-divider{opacity:.45}

@media (max-width:640px){
  .draft-banner{font-size:.7rem;padding:7px 14px}
  .draft-banner .draft-divider{display:none}
  .draft-banner > span:last-child{display:none}
}

/* ============================================================
   LAYOUT PREMIUM — TEMA AMBIENTE (colores del arte del evento)
   ============================================================ */
:root{
  --event-primary: var(--primary);
  --event-accent:  var(--secondary, #00BCD4);
  --event-dark:    var(--ink);
}

/* Cuando la página es de un evento premium, el body se convierte en
   un fondo ambient inmersivo con los colores del banner del evento.
   Los bordes laterales muestran el banner blureado;
   el centro tiene un white overlay sutil para legibilidad del contenido. */
body.premium-event-page{
  position:relative;
  background:#0F0F14;  /* fallback oscuro mientras carga el banner */
}
body.premium-event-page::before{
  content:'';
  position:fixed;inset:-40px;z-index:-2;
  background-image:var(--event-ambient-bg);
  background-size:cover;
  background-position:center;
  filter:blur(60px) brightness(0.95) saturate(1.65);
  opacity:0.85;            /* banner ahora se VE bien en los costados */
  transform:scale(1.15);
  pointer-events:none;
}
/* Overlay en gradiente radial: blanco translúcido en el centro
   (para que el contenido sea legible) que se desvanece hacia los bordes
   (para que se vea el banner en los costados) */
body.premium-event-page::after{
  content:'';
  position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse 80% 100% at 50% 50%,
      rgba(255,255,255,0.92) 0%,
      rgba(255,255,255,0.85) 25%,
      rgba(255,255,255,0.55) 55%,
      rgba(255,255,255,0.25) 80%,
      rgba(255,255,255,0.05) 100%);
  pointer-events:none;
}

/* En mobile (sin costados expuestos), volver al wash sutil tradicional */
@media (max-width:980px){
  body.premium-event-page::before{
    opacity:0.30;
    filter:blur(70px) brightness(1.1) saturate(1.5);
  }
  body.premium-event-page::after{
    background:linear-gradient(180deg,
      rgba(255,255,255,0.65) 0%,
      rgba(255,255,255,0.85) 50%,
      rgba(255,255,255,0.95) 100%);
  }
}

/* Header / footer mantienen su fondo neutro (encima del ambient) */
body.premium-event-page .header{background:rgba(255,255,255,0.88);backdrop-filter:blur(24px) saturate(180%)}
body.premium-event-page .ticket-outlets-section{background:rgba(250,250,247,0.78);backdrop-filter:blur(24px)}

/* Sección precios + plano: cards con efectos del color del evento */
body.premium-event-page .event-detail-row2{
  position:relative;
  padding:48px 0;
  margin-bottom:60px;
}
body.premium-event-page .event-detail-row2::before{
  content:'';
  position:absolute;inset:-40px -28px;
  background:
    radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--event-primary) 18%, transparent), transparent 55%),
    radial-gradient(circle at 85% 85%, color-mix(in srgb, var(--event-accent) 18%, transparent), transparent 55%);
  z-index:0;
  border-radius:var(--radius-lg);
  pointer-events:none;
}
body.premium-event-page .event-detail-row2 > *{position:relative;z-index:1}

/* Cards de precio en premium: borde sutil con tema */
body.premium-event-page .price-tier{
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(12px);
  border-color:rgba(0,0,0,0.06);
  transition:all .25s ease;
}
body.premium-event-page .price-tier:hover{
  border-color:var(--event-primary);
  box-shadow:0 12px 28px -8px color-mix(in srgb, var(--event-primary) 35%, transparent);
}
body.premium-event-page .price-tier.featured{
  background:linear-gradient(135deg, var(--event-dark) 0%, color-mix(in srgb, var(--event-dark) 70%, var(--event-primary)) 100%);
  border:none;
}
body.premium-event-page .price-tier.featured::before{
  background:var(--event-primary);
}

/* Plano en premium — efecto LIQUID GLASS (tipo visionOS) */
body.premium-event-page .seating-map-card{
  position:relative;
  background:rgba(255,255,255,0.42);
  backdrop-filter:blur(38px) saturate(200%) brightness(1.08);
  -webkit-backdrop-filter:blur(38px) saturate(200%) brightness(1.08);
  border:1px solid rgba(255,255,255,0.55);
  border-radius:28px;
  overflow:visible;
  box-shadow:
    /* Inner highlights (efecto cristal) */
    inset 0 1.5px 1px rgba(255,255,255,0.95),
    inset 0 -1px 1px rgba(255,255,255,0.2),
    inset 1.5px 0 1px rgba(255,255,255,0.35),
    inset -1.5px 0 1px rgba(255,255,255,0.35),
    /* Sombra exterior con colores del evento */
    0 2px 4px rgba(0,0,0,0.04),
    0 24px 48px -16px color-mix(in srgb, var(--event-primary) 38%, rgba(0,0,0,0.15)),
    0 44px 80px -24px color-mix(in srgb, var(--event-accent) 28%, rgba(0,0,0,0.1));
  transition:transform .4s ease, box-shadow .4s ease;
}

/* Specular highlight superior (reflejo de luz tipo cristal) */
body.premium-event-page .seating-map-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:55%;
  background:linear-gradient(180deg,
    rgba(255,255,255,0.6) 0%,
    rgba(255,255,255,0.25) 35%,
    rgba(255,255,255,0.05) 70%,
    transparent 100%
  );
  border-radius:27px 27px 0 0;
  pointer-events:none;
  z-index:1;
}

/* Edge glow inferior (luz de neón con colores del evento) */
body.premium-event-page .seating-map-card::after{
  content:'';
  position:absolute;
  bottom:-4px;left:8%;right:8%;
  height:8px;
  background:linear-gradient(90deg,
    transparent 0%,
    color-mix(in srgb, var(--event-primary) 60%, transparent) 30%,
    color-mix(in srgb, var(--event-accent) 60%, transparent) 70%,
    transparent 100%
  );
  filter:blur(12px);
  pointer-events:none;
  z-index:0;
  opacity:0.7;
  transition:opacity .4s ease;
}

/* Contenido del card flotando encima de los pseudo-elements */
body.premium-event-page .seating-map-card > *{
  position:relative;
  z-index:2;
}

/* Imagen del plano: borde sutil + sombra interna para integrarla */
body.premium-event-page .seating-map-card img{
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.5);
  box-shadow:
    0 4px 16px rgba(0,0,0,0.06),
    0 1px 2px rgba(0,0,0,0.04);
}

/* Hover: el cristal se "anima" */
body.premium-event-page .seating-map-card:hover{
  transform:translateY(-2px);
  box-shadow:
    inset 0 1.5px 1px rgba(255,255,255,1),
    inset 0 -1px 1px rgba(255,255,255,0.25),
    inset 1.5px 0 1px rgba(255,255,255,0.4),
    inset -1.5px 0 1px rgba(255,255,255,0.4),
    0 4px 8px rgba(0,0,0,0.06),
    0 32px 60px -16px color-mix(in srgb, var(--event-primary) 45%, rgba(0,0,0,0.18)),
    0 56px 100px -24px color-mix(in srgb, var(--event-accent) 35%, rgba(0,0,0,0.12));
}
body.premium-event-page .seating-map-card:hover::after{
  opacity:1;
}

/* Mobile: simplificar para performance (el blur de 38px es pesado) */
@media (max-width:760px){
  body.premium-event-page .seating-map-card{
    backdrop-filter:blur(20px) saturate(160%);
    -webkit-backdrop-filter:blur(20px) saturate(160%);
    background:rgba(255,255,255,0.65);
  }
}

/* Eyebrows + section-titles dentro del row2 con color del evento */
body.premium-event-page .event-detail-row2 .section-eyebrow{color:var(--event-primary)}
body.premium-event-page .event-detail-row2 .section-eyebrow::before{background:var(--event-primary)}
body.premium-event-page .event-detail-row2 h2 em{color:var(--event-primary)}

/* Sección de embeds artista: fondo themed sutil */
body.premium-event-page .artist-media{
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--event-primary) 6%, transparent) 0%,
      color-mix(in srgb, var(--event-accent) 6%, transparent) 100%),
    transparent;
  border:none;
}
body.premium-event-page .artist-media .section-eyebrow{color:var(--event-primary)}
body.premium-event-page .artist-media .section-eyebrow::before{background:var(--event-primary)}
body.premium-event-page .artist-media h2 em{color:var(--event-primary)}

/* ===== GLASS UNIVERSAL en premium-event-page ===== */
/* Todos los bloques blancos pasan a vidrio con tinte del evento */

body.premium-event-page :where(
  .event-meta-row,
  .media-embed,
  .outlet-item,
  .buy-cta-section,
  .preview-buy-placeholder,
  .producer-logos-band.bg-white,
  .producer-logos-band.bg-cream
){
  background:rgba(255,255,255,0.72);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border:1px solid rgba(255,255,255,0.55);
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 14px 32px -12px color-mix(in srgb, var(--event-primary) 18%, rgba(0,0,0,0.08));
}

/* Iconos meta con tinte del evento */
body.premium-event-page .event-meta-icon{
  background:color-mix(in srgb, var(--event-primary) 14%, rgba(255,255,255,0.7));
  color:var(--event-primary);
  border:1px solid rgba(255,255,255,0.5);
}

/* Tarjetas de info tipo botón iOS flotante (override del glass universal) */
body.premium-event-page .event-meta{gap:12px}
body.premium-event-page .event-meta-row{
  background:rgba(255,255,255,0.96);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:1px solid rgba(0,0,0,0.04);
  border-radius:16px;
  padding:14px 18px;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 6px 14px -6px rgba(0,0,0,0.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
body.premium-event-page .event-meta-row:hover{
  transform:translateY(-1px);
  box-shadow:
    0 2px 4px rgba(0,0,0,0.05),
    0 10px 22px -8px rgba(0,0,0,0.12);
}

/* Date selector: fondo glass con halo del evento */
body.premium-event-page .date-selector{
  background:linear-gradient(135deg,
    rgba(255,255,255,0.85),
    color-mix(in srgb, var(--event-primary) 10%, rgba(255,255,255,0.75))
  );
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border:1px solid rgba(255,255,255,0.55);
}
body.premium-event-page .date-item{
  background:rgba(255,255,255,0.7);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.5);
  transition:all .25s ease;
}
body.premium-event-page .date-item:hover{
  border-color:var(--event-primary);
  background:rgba(255,255,255,0.92);
  transform:translateY(-2px);
}
body.premium-event-page .date-item.highlight{
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--event-primary) 18%, white),
    rgba(255,255,255,0.85)
  );
  border-color:var(--event-primary);
}

/* Embeds Spotify/YouTube: glass con título themed */
body.premium-event-page .media-embed h3{color:var(--event-dark, var(--ink))}

/* Outlet items en taquillas */
body.premium-event-page .outlet-item:hover{
  border-color:var(--event-primary);
  background:rgba(255,255,255,0.92);
  box-shadow:0 14px 28px -10px color-mix(in srgb, var(--event-primary) 30%, transparent);
}
body.premium-event-page .outlet-name{color:var(--event-dark, var(--ink))}

/* CTA box final con tinte */
body.premium-event-page .buy-cta-section{
  background:linear-gradient(135deg,
    rgba(255,255,255,0.85),
    color-mix(in srgb, var(--event-accent) 10%, rgba(255,255,255,0.75))
  );
}
body.premium-event-page .buy-cta-section .section-eyebrow{color:var(--event-primary)}
body.premium-event-page .buy-cta-section h3 em{color:var(--event-primary)}
body.premium-event-page .buy-cta-section .btn-primary{
  background:var(--event-primary);
}

/* Sección de taquillas con tinte */
body.premium-event-page .ticket-outlets-section{
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--event-primary) 5%, rgba(250,250,247,0.5)),
    color-mix(in srgb, var(--event-accent) 5%, rgba(250,250,247,0.5))
  );
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
body.premium-event-page .ticket-outlets-section .section-eyebrow{color:var(--event-primary)}
body.premium-event-page .ticket-outlets-section h2 em{color:var(--event-primary)}

/* Payment chips en taquillas con tinte sutil */
body.premium-event-page .payment-chip{
  background:rgba(255,255,255,0.78);
  backdrop-filter:blur(10px);
  border-color:rgba(255,255,255,0.55);
}

/* Galería: sombra del evento */
body.premium-event-page .gallery-item{
  box-shadow:
    0 8px 20px -8px color-mix(in srgb, var(--event-primary) 28%, rgba(0,0,0,0.1)),
    0 2px 4px rgba(0,0,0,0.04);
  border:1px solid rgba(255,255,255,0.5);
}

/* Botones primary del detalle premium usan el color del evento */
body.premium-event-page .event-hero-info .btn-primary,
body.premium-event-page .date-item .btn-primary{
  background:var(--event-primary);
  box-shadow:0 4px 12px -2px color-mix(in srgb, var(--event-primary) 45%, transparent);
}
body.premium-event-page .event-hero-info .btn-primary:hover,
body.premium-event-page .date-item .btn-primary:hover{
  background:color-mix(in srgb, var(--event-primary) 88%, black);
  box-shadow:0 12px 28px -8px color-mix(in srgb, var(--event-primary) 60%, transparent);
}

/* Producer logos band — si es 'dark' mantiene su negro pero recoge un acento del evento */
body.premium-event-page .producer-logos-band.bg-dark::after{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--event-primary) 25%, transparent), transparent 60%);
  pointer-events:none;
}

/* Logos productores en premium: MÁS GRANDES — casi todo el ancho del recuadro */
body.premium-event-page .producer-logos-band{
  padding:56px 40px;
  margin:80px 0;
  border-radius:var(--radius-lg);
}
body.premium-event-page .producer-logos-band .eyebrow{
  margin-bottom:32px;
}
body.premium-event-page .producer-logos-band img{
  max-height:280px;             /* antes 120px — más del doble */
  max-width:min(900px, 92%);     /* casi todo el ancho útil */
  width:auto;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,0.25));
}
@media (max-width:760px){
  body.premium-event-page .producer-logos-band{padding:40px 24px;margin:48px 0}
  body.premium-event-page .producer-logos-band img{max-height:180px;max-width:96%}
}
@media (max-width:480px){
  body.premium-event-page .producer-logos-band img{max-height:140px}
}

/* ============================================================
   LAYOUT PREMIUM (eventos VIP)
   ============================================================ */
.premium-hero{
  position:relative;
  min-height:720px;
  display:flex;align-items:flex-end;
  color:#fff;
  overflow:hidden;
  margin-bottom:-1px;
  background:#0A0A0A;
}
@media (min-width:1100px){.premium-hero{min-height:880px}}
@media (min-width:1600px){.premium-hero{min-height:980px}}

/* Capa 1: fondo ambient con blur del propio banner (toma sus colores) */
.premium-hero-bg{
  position:absolute;inset:-20px;          /* -20 evita que el blur muestre bordes */
  background-image:var(--bg-desktop);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  filter:blur(48px) brightness(0.5) saturate(1.4);
  transform:scale(1.15);
  z-index:0;
}
@media (max-width:768px){
  .premium-hero-bg{background-image:var(--bg-mobile)}
}

/* Capa 2: <picture> con la imagen del banner */
.premium-hero-picture{
  position:absolute;
  top:0;left:50%;
  transform:translateX(-50%);
  height:100%;
  z-index:1;
  display:block;
}
.premium-hero-image{
  height:100%;
  width:auto;
  max-width:none;
  object-fit:contain;
  filter:drop-shadow(0 20px 60px rgba(0,0,0,0.5));
  display:block;
}

/* Capa 3: gradiente sutil arriba (header) + fuerte abajo (legibilidad de texto) */
.premium-hero-overlay{
  position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(to bottom,
      rgba(10,10,15,0.55) 0%,
      rgba(10,10,15,0) 18%,
      rgba(10,10,15,0) 55%,
      rgba(10,10,15,0.88) 100%);
  pointer-events:none;
}

/* Contenido del hero — abajo encima del gradiente oscuro */
.premium-hero-inner{
  position:relative;z-index:3;
  padding:80px 28px 70px;
  width:100%;
}

/* ===== MOBILE PREMIUM HERO =====
   Usa la imagen vertical (heroBannerMobile) que ocupa todo el ancho.
   El texto va ABAJO de la imagen sobre fondo dark ambient. */
@media (max-width:768px){
  .premium-hero{
    min-height:auto;
    display:block;
    background:#0A0A0A;
  }
  .premium-hero-bg{
    inset:0;
    transform:scale(1.05);
    filter:blur(40px) brightness(0.45) saturate(1.5);
    opacity:0.7;
  }
  .premium-hero-picture{
    position:relative;
    top:auto;left:auto;transform:none;
    height:auto;
    width:100%;
    margin:0 auto;
    display:block;
  }
  .premium-hero-image{
    width:100%;
    height:auto;
    max-height:calc(100vh - 220px);
    object-fit:cover;
    filter:none;
  }
  /* Gradient overlay solo sobre la zona del texto */
  .premium-hero-overlay{
    background:linear-gradient(to bottom,
      transparent 0%,
      transparent 40%,
      rgba(10,10,15,0.5) 70%,
      rgba(10,10,15,0.95) 100%);
  }
  /* Texto va debajo de la imagen, encima del fondo blureado */
  .premium-hero-inner{
    padding:28px 22px 44px;
  }
  .premium-hero-title{
    font-size:clamp(1.8rem,7vw,2.4rem);
    margin-bottom:10px;
  }
  .premium-hero-subtitle{
    font-size:.95rem;
    margin-bottom:18px;
  }
  .premium-hero-meta{
    font-size:.82rem;
    gap:6px 16px;
  }
}

/* iPhones Pro Max (430px+) — un poco más de altura */
@media (min-width:415px) and (max-width:768px){
  .premium-hero-image{max-height:calc(100vh - 240px)}
}
.back-link-light{
  color:rgba(255,255,255,0.85);
  margin-bottom:18px;
}
.back-link-light:hover{color:#fff}
.premium-tag{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--primary);color:#fff;
  padding:6px 14px;border-radius:50px;
  font-family:var(--font-mono);
  font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:18px;
}
.premium-hero-title{
  font-family:var(--font-display);
  font-size:clamp(2.4rem,6vw,4.5rem);
  font-weight:500;letter-spacing:-0.025em;line-height:1.02;
  margin-bottom:14px;
  text-shadow:0 4px 24px rgba(0,0,0,0.4);
}
.premium-hero-subtitle{
  font-size:clamp(1rem,1.6vw,1.25rem);
  color:rgba(255,255,255,0.92);
  max-width:680px;
  margin-bottom:24px;
  line-height:1.5;
  text-shadow:0 2px 8px rgba(0,0,0,0.5);
}
.premium-hero-meta{
  display:flex;flex-wrap:wrap;gap:8px 22px;
  font-family:var(--font-mono);
  font-size:.92rem;
  color:rgba(255,255,255,0.9);
}
.premium-hero-meta span{
  display:inline-flex;align-items:center;gap:6px;
}

/* Hero secundario para eventos premium (sin imagen lateral) */
.event-hero-premium .event-hero-img{display:none}
.event-hero-premium .event-detail-grid{
  grid-template-columns:1fr;
  max-width:760px;margin:40px auto;
}
.event-hero-premium .event-hero-info h1{display:none}  /* ya está en premium-hero */
.event-hero-premium .event-date{display:none}
.event-hero-premium .event-description{margin-top:10px}

/* ======= Embeds artist media ======= */
.artist-media{
  background:var(--bg-cream);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.media-grid{
  display:grid;gap:24px;
  margin-top:24px;
}
.media-grid.two-col{grid-template-columns:1fr 1fr}
@media (max-width:900px){.media-grid.two-col{grid-template-columns:1fr}}
.media-embed{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow-sm);
}
.media-embed h3{
  font-family:var(--font-display);
  font-size:1.1rem;font-weight:500;
  margin-bottom:14px;color:var(--ink);
}
.media-spotify iframe{display:block;width:100%}
.media-youtube .youtube-wrap{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  border-radius:12px;overflow:hidden;
  background:#000;
}
.media-youtube .youtube-wrap iframe{
  position:absolute;inset:0;
  width:100%;height:100%;border:0;
}

/* ======= Galería ======= */
.artist-gallery .gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
  margin-top:24px;
}
.gallery-item{
  position:relative;
  aspect-ratio:1/1;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--bg-soft);
  transition:transform .25s ease;
}
.gallery-item:hover{transform:scale(1.02)}
.gallery-item img{
  width:100%;height:100%;
  object-fit:cover;display:block;
}

/* ======= Placeholder de venta en preview ======= */
.preview-buy-placeholder{
  display:flex;flex-direction:column;align-items:center;
  gap:4px;
  padding:18px 24px;
  background:#FFF8DD;
  border:1px dashed #B89200;
  border-radius:var(--radius);
  text-align:center;
  margin-top:14px;
}
.preview-buy-placeholder span{
  font-family:var(--font-mono);
  font-size:.85rem;font-weight:600;
  color:#8A6500;letter-spacing:.05em;
}
.preview-buy-placeholder small{
  font-size:.78rem;color:#8A6500;opacity:.85;
}

/* ======= Responsive ======= */
@media (max-width:640px){
  .section{padding:60px 0}
  .hero{padding:60px 0 20px}
  .events{padding:40px 0 80px}
  .events-grid{grid-template-columns:1fr 1fr;gap:16px}
  .event-body{padding:14px 14px 16px}
  .event-title{font-size:1rem}
  .event-venue{font-size:.78rem}
  .container{padding:0 16px}
  .btn-large{padding:14px 26px;font-size:.95rem}
  .price-tier{padding:18px 14px}
  .price-tier-amount{font-size:1.5rem}
}
@media (max-width:380px){.events-grid{grid-template-columns:1fr}}

/* ============================================================
   BREAKPOINTS ESPECIALES
   - Galaxy Z Fold abierto (~717x882)
   - Surface Duo (~540x720 dual screen)
   - Tablets grandes 14"+ (Samsung Tab S9 Ultra 14.6", iPad Pro 13")
   ============================================================ */

/* Galaxy Z Fold cuando se abre — el viewport es casi cuadrado.
   Aprovechamos para grid de 3 columnas en eventos y 2 en outlets. */
@media (min-width:700px) and (max-width:920px) and (min-aspect-ratio:7/10) and (max-aspect-ratio:1/1){
  .events-grid{grid-template-columns:repeat(3,1fr);gap:18px}
  .outlets-grid{grid-template-columns:repeat(2,1fr)}
  .sectors-grid{grid-template-columns:repeat(2,1fr)}
  .hero h1{font-size:3rem}
  .container{padding:0 22px}
  .advertiser-slide{flex-wrap:wrap;gap:14px}
  .event-detail-grid{grid-template-columns:0.95fr 1.05fr;gap:32px}
  .event-detail-row2{grid-template-columns:1fr 1.1fr;gap:32px}
}

/* Pantallas medianas 14"+ — primer breakpoint de aprovechamiento */
@media (min-width:1600px){
  :root{--max-w:1500px}
  .events-grid{grid-template-columns:repeat(5,1fr);gap:32px}
  .hero h1{font-size:5rem}
  .hero p{font-size:1.3rem;max-width:720px}
  .section-title{font-size:3rem}
  .event-detail-grid{gap:70px;grid-template-columns:0.8fr 1.2fr}
  .event-detail-row2{gap:70px}
  .detail-pricing-col .pricing{grid-template-columns:1fr 1fr}
  .carousel-track-wrap{max-height:640px}
}

/* Mac Studio Display, monitores 4K nativos (1920–2304 lógicos) */
@media (min-width:1900px){
  :root{--max-w:1760px}
  .events-grid{grid-template-columns:repeat(6,1fr)}
  .hero{padding:120px 0 80px}
  .carousel-track-wrap{max-height:720px}
}

/* Apple Pro Display XDR / iMac 5K · 4K nativos sin escalado (≥2400 lógicos) */
@media (min-width:2400px){
  :root{--max-w:2000px}
  .events-grid{grid-template-columns:repeat(7,1fr);gap:36px}
  .hero h1{font-size:6rem}
  .hero p{font-size:1.5rem;max-width:840px}
  .section-title{font-size:3.6rem}
  .carousel-track-wrap{max-height:800px}
}

/* Ultra-wide Samsung Odyssey 49" (32:9 · 5120×1440) y similares */
@media (min-width:3000px){
  :root{--max-w:2200px}
  .events-grid{grid-template-columns:repeat(8,1fr)}
  .carousel-track-wrap{max-height:820px}
}

/* En pantallas ultra-anchas con poca altura (32:9), cap del carrusel para no devorar viewport */
@media (min-aspect-ratio:21/9){
  .carousel-track-wrap{max-height:55vh}
}

/* Surface Duo / Fold cerrado modo cover */
@media (max-width:480px){
  .global-search-box input{font-size:.95rem;padding:14px 10px}
  .toolbar-row{margin-bottom:8px}
  .filter-chip{padding:7px 14px;font-size:.82rem}
  .detail-toolbar{gap:8px}
  .share-btn{padding:7px 12px;font-size:.8rem}
  .share-btn span{display:none}
  .advertiser-slide{flex-direction:column;align-items:flex-start;text-align:left;padding:14px 18px;gap:10px}
  .advertiser-img{max-height:40px}
  .countdown-badge{padding:4px 8px;font-size:.62rem}
  .event-tag{padding:4px 8px;font-size:.62rem}
  .event-img .badges-stack{top:8px;left:8px;right:8px;gap:4px}
}

/* Touch devices: agrandar áreas táctiles */
@media (hover:none){
  .filter-chip{min-height:42px}
  .btn{min-height:44px}
  .share-btn{min-height:40px}
  .event-card:hover{transform:none}
  .event-card:active{transform:scale(0.98)}
}

/* Print-friendly para tickets / términos */
@media print{
  .header, .footer, .carousel, .advertiser-bar, .events-toolbar, .global-search, .legal-tabs{display:none !important}
  body{background:#fff;color:#000}
  .legal-content{box-shadow:none;border:none;padding:0;max-width:none}
}

/* Reduced motion preference */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}
