/* LIVETICKETS v6 — Identidad oscura + naranja, inspirada en la referencia
   que compartiste (Okai — Agency & Portfolio Template): fondo casi negro,
   un único acento vívido (naranja, no dos tonos separados como antes),
   tipografía geométrica redondeada en un solo peso de familia, botones en
   píldora completa. Es un cambio real de sistema, no una repintada de la
   v5 (azul marino + serif): tokens de superficie invertidos (el "blanco"
   ahora es el texto, no el fondo), y cada componente que asumía "tarjeta
   oscura sobre página clara" se revisó uno por uno para que siga
   destacando sobre una página que ahora también es oscura.
   Sigue sin haber un solo degradado de color en toda la hoja — el brillo
   naranja del botón primario en hover es una sombra de color sólido
   (box-shadow), no un gradiente de fondo. */
:root{
  --bg-app:#131315;--bg-surface:#1D1D21;--bg-subtle:#232327;--bg-dark:#0A0A0B;--bg-spotlight:#241710;
  --text-primary:#F4F3F0;--text-secondary:#A9A9AE;--text-muted:#797980;--text-inverse:#131315;
  --border-subtle:#2C2C31;--border-strong:#404046;--border-dark:#1C1C1E;
  --primary:#FF5A36;--primary-hover:#FF7A5C;--primary-light:rgba(255,90,54,.16);--primary-text:#FF9270;
  --accent:#FF5A36;--accent-hover:#FF7A5C;--accent-light:rgba(255,90,54,.16);--accent-text:#FF9270;
  --success:#3FB86A;--success-light:rgba(63,184,106,.16);--success-text:#7FE39C;
  --warning:#F0A93E;--warning-light:rgba(240,169,62,.16);--warning-text:#FBC876;
  --danger:#F2604D;--danger-light:rgba(242,96,77,.16);--danger-text:#FF9587;
  --font-heading:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-body:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display:var(--font-body);
  --radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;
  --shadow-xs:0 1px 3px rgba(0,0,0,.35);
  --shadow-sm:0 3px 8px rgba(0,0,0,.4);
  --shadow-md:0 8px 20px rgba(0,0,0,.45);
  --shadow-lg:0 20px 48px rgba(0,0,0,.5);
  --shadow-xl:0 20px 48px rgba(0,0,0,.5);
  --shadow-glow:0 10px 28px rgba(255,90,54,.35);
  --ease-out:cubic-bezier(.2,0,0,1);
  --ease-spring:cubic-bezier(.2,0,0,1);
  --ease-smooth:cubic-bezier(.4,0,.2,1);
  --dur-fast:120ms;--dur-normal:180ms;--dur-slow:240ms;
}
/* Transición nativa entre páginas (View Transitions API) — cross-fade
   suave al navegar, sin JS. Progressive enhancement: se ignora sola donde
   no hay soporte. */
@view-transition{navigation:auto}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{font-family:var(--font-body);color:var(--text-primary);background-color:var(--bg-app);line-height:1.6;font-size:16px;min-height:100vh}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;color:var(--text-primary);line-height:1.2;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,4.5vw,2.75rem)}h2{font-size:clamp(1.3rem,3vw,1.85rem)}h3{font-size:clamp(1.05rem,2vw,1.2rem)}h4{font-size:1.05rem}
a{color:var(--primary);text-decoration:none;transition:color var(--dur-fast) var(--ease-smooth)}a:hover{color:var(--primary-hover)}
p{color:var(--text-secondary);margin-bottom:1rem;max-width:70ch}p:last-child{margin-bottom:0}
img{max-width:100%;height:auto;display:block}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}
@media(min-width:640px){.container{padding:0 24px}}
@media(min-width:1200px){.container{padding:0 32px}}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}

/* Enlace "saltar al contenido" — invisible hasta que se navega con Tab. */
.skip-link{position:absolute;left:12px;top:-48px;background:var(--primary);color:#fff;padding:10px 18px;border-radius:var(--radius-full);font-weight:700;font-size:13.5px;z-index:1000;transition:top var(--dur-normal) var(--ease-out)}
.skip-link:focus{top:12px;color:#fff}

/* Textura de grano — ruido a opacidad muy baja sobre los paneles
   "spotlight" (héroe de evento, banner de vendedores, cuenta regresiva,
   panel financiero admin). SVG en línea, sin imagen ni degradado de
   color: la diferencia entre un bloque de color plano y una superficie
   con algo de tacto. */
.event-hero-card,.sell-hero-banner,.countdown-panel,.contact-primary-card,.stage-placeholder,.finance-hero{position:relative}
.event-hero-card::after,.sell-hero-banner::after,.countdown-panel::after,.contact-primary-card::after,.stage-placeholder::after,.finance-hero::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0.1 0.1 0.1 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:150px 150px}

/* Subrayado tipo marcador — trazo dibujado a mano (SVG, no gradiente)
   bajo la palabra clave del titular. Uso: <span class="marker-underline">. */
.marker-underline{position:relative;white-space:nowrap;color:var(--primary)}
.marker-underline::after{content:'';position:absolute;left:-2px;right:-2px;bottom:-.08em;height:.3em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M2 14 C 40 6, 90 18, 130 10 S 180 4, 198 12' stroke='%23FF5A36' stroke-width='7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:100% 100%;z-index:-1;opacity:.55}

@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes shimmer{from{background-position:-400px 0}to{background-position:400px 0}}
@keyframes dotPulse{0%,100%{box-shadow:0 0 0 0 rgba(63,184,106,.4)}50%{box-shadow:0 0 0 5px rgba(63,184,106,0)}}
/* Punto "en vivo" de marca — el único loop infinito decorativo de toda
   la hoja, reservado a la firma (isotipo + junto al wordmark). */
@keyframes liveRing{0%{transform:scale(.7);opacity:.6}75%,100%{transform:scale(2.1);opacity:0}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
/* Sello giratorio (ver ticket.php) — un anillo de texto SVG rotando muy
   lento alrededor de un check fijo. Es el único otro loop infinito de la
   hoja además del punto "en vivo"; se detiene solo con
   prefers-reduced-motion (regla global de arriba). */
.spin-badge{position:relative;width:88px;height:88px;flex-shrink:0;display:none}
@media(min-width:640px){.spin-badge{display:block}}
.spin-badge-ring{width:100%;height:100%;animation:spinSlow 18s linear infinite}
.spin-badge-ring path{fill:none}
.spin-badge-ring text{fill:var(--primary-text)}
.spin-badge-center{position:absolute;inset:0;margin:auto;width:38px;height:38px;border-radius:50%;background-color:var(--bg-surface);border:1px solid var(--border-subtle);display:grid;place-items:center;color:var(--primary);font-size:15px;box-shadow:var(--shadow-xs)}
.anim-fade-up{animation:fadeInUp var(--dur-slow) var(--ease-out) both}
.anim-fade-in{animation:fadeIn var(--dur-slow) var(--ease-out) both}
.anim-scale-in{animation:scaleIn var(--dur-slow) var(--ease-out) both}
.anim-delay-1{animation-delay:40ms}.anim-delay-2{animation-delay:80ms}.anim-delay-3{animation-delay:120ms}.anim-delay-4{animation-delay:160ms}.anim-delay-5{animation-delay:200ms}
.logo-mark-svg .live-ring{animation:liveRing 2.6s var(--ease-out) infinite;transform-box:fill-box;transform-origin:center}
.brand-dot{position:relative;display:inline-block;width:6px;height:6px;border-radius:50%;background-color:var(--primary);margin-left:3px;vertical-align:middle}
.brand-dot::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--primary);animation:liveRing 2.6s var(--ease-out) infinite}

.top-notice{background:var(--bg-dark);color:#B9B9BE;font-size:11.5px;font-weight:600;text-align:center;padding:7px 16px;letter-spacing:.01em}
.top-notice i{color:var(--accent);margin-right:5px}

.site-header{background-color:rgba(19,19,21,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100;transition:box-shadow var(--dur-normal) ease,background-color var(--dur-normal) ease}
.site-header.scrolled{box-shadow:var(--shadow-sm);background-color:rgba(19,19,21,.97)}
.header-row{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px;position:relative}
@media(min-width:768px){.header-row{height:74px;gap:20px}}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;flex-shrink:0}
.brand-mark{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;transition:transform var(--dur-normal) var(--ease-out)}
.brand-mark .logo-mark-svg{display:block}
.brand:hover .brand-mark{transform:scale(1.05) rotate(-4deg)}
@media(min-width:768px){.brand-mark{width:38px;height:38px}}
/* Isotipo completo (logo-full.png) — reemplaza el ícono cuadrado + texto
   en header/footer/auth/errores. Ancho automático a partir de una altura
   fija por contexto (ver estilos inline puntuales); el propio archivo ya
   viene recortado a su contenido real y con el fondo negro vuelto
   transparente. */
.brand-logo-img{height:28px;width:auto;display:block;transition:transform var(--dur-normal) var(--ease-out)}
@media(min-width:768px){.brand-logo-img{height:32px}}
.brand:hover .brand-logo-img{transform:scale(1.04)}
.brand-name{font-family:var(--font-heading);font-size:17px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}
.brand-name strong{color:var(--text-primary);font-weight:700}
@media(min-width:480px){.brand-name{font-size:19px}}
.main-nav{display:none;align-items:center;gap:2px;flex:1;margin-left:14px;min-width:0}
/* 900px, no 768px: a las 4 rutas del nav + logo + acciones de header
   (con sesión iniciada: campana, "Mi cuenta", cerrar sesión) NO les cabe
   en 768px (iPad portrait real) — se midió overflow real de ~110px ahí. */
@media(min-width:900px){.main-nav{display:flex}}
.main-nav a{position:relative;text-decoration:none;font-weight:600;font-size:14px;color:var(--text-secondary);padding:10px 14px;transition:color var(--dur-fast) ease;white-space:nowrap}
.main-nav a::after{content:'';position:absolute;left:14px;right:14px;bottom:6px;height:2px;background:var(--accent);border-radius:var(--radius-full);transform:scaleX(0);transform-origin:center;transition:transform var(--dur-normal) var(--ease-out)}
.main-nav a:hover{color:var(--text-primary)}
.main-nav a:hover::after{transform:scaleX(1)}
.main-nav a.active{color:var(--text-primary)}
.main-nav a.active::after{transform:scaleX(1)}
.favorite-btn{width:40px;height:40px;border-radius:50%;background-color:var(--bg-subtle);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:16px;display:grid;place-items:center;cursor:pointer;transition:background var(--dur-fast) ease,color var(--dur-fast) ease,border-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}
.favorite-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}
.favorite-btn:active{transform:scale(.92)}
.favorite-btn.active{color:var(--danger);background-color:var(--danger-light);border-color:rgba(242,96,77,.4)}
.notif-bell{position:relative;display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:16px;transition:background var(--dur-fast) ease,color var(--dur-fast) ease}
.notif-bell:hover{background-color:var(--bg-subtle);color:var(--text-primary)}
.notif-dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 3px;border-radius:9px;background-color:var(--danger);color:#fff;font-size:9.5px;font-weight:800;display:grid;place-items:center;line-height:1;border:2px solid var(--bg-app)}
@media(min-width:600px){.notif-bell{display:inline-flex}}
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.header-actions::before{content:'';width:1px;height:22px;background-color:var(--border-subtle);margin-right:2px;display:none}
@media(min-width:600px){.header-actions::before{display:block}}
.header-actions .btn-ghost{display:none;border-color:var(--border-strong)}
@media(min-width:600px){.header-actions .btn-ghost{display:inline-flex}}
.nav-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:16px;color:var(--text-primary);cursor:pointer;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease;-webkit-tap-highlight-color:transparent}
.nav-toggle:hover{background-color:var(--bg-subtle);border-color:var(--border-strong)}
.nav-toggle .icon-close{display:none}
.nav-toggle.active .icon-open{display:none}
.nav-toggle.active .icon-close{display:block}
.nav-toggle.active{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary)}
@media(min-width:900px){.nav-toggle{display:none}}
.mobile-menu{display:none;position:absolute;top:calc(100% + 8px);left:12px;right:12px;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:99;overflow:hidden;padding:8px}
.mobile-menu.open{display:block;animation:slideDown var(--dur-normal) var(--ease-out)}
.mobile-menu a{display:flex;align-items:center;gap:12px;padding:12px 12px;font-weight:600;font-size:15px;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:background var(--dur-fast) ease,color var(--dur-fast) ease}
.mobile-menu a i{width:30px;height:30px;border-radius:9px;background-color:var(--bg-subtle);color:var(--text-secondary);display:grid;place-items:center;font-size:13px;flex-shrink:0;transition:background var(--dur-fast) ease,color var(--dur-fast) ease}
.mobile-menu a:hover{background-color:var(--bg-subtle);color:var(--text-primary)}
.mobile-menu a.active{color:var(--primary-text)}
.mobile-menu a.active i{background-color:var(--primary);color:#FFF}
.mobile-menu-actions{padding:12px 8px 4px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border-subtle);margin-top:8px}
.inline-form{display:inline}

.breadcrumb-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:18px}
.breadcrumb-nav a{color:var(--text-secondary);font-weight:600;text-decoration:none;transition:color var(--dur-fast) ease}
.breadcrumb-nav a:hover{color:var(--primary)}
.breadcrumb-nav i{font-size:9px;color:var(--border-strong)}
.breadcrumb-nav .current{color:var(--text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:38ch}

/* Botones en píldora completa (radio total) — el lenguaje visual de la
   referencia: "SEE PROJECTS", "SEE WORK". Un único tono de reacción al
   pasar el mouse y un brillo de color sólido (box-shadow, no degradado)
   en el primario. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 20px;border-radius:var(--radius-full);font-family:var(--font-body);font-weight:600;font-size:14px;text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;line-height:1.4;position:relative;overflow:hidden;transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-normal) ease;-webkit-tap-highlight-color:transparent;user-select:none}
.btn[hidden]{display:none}
.btn:active{transform:scale(.97)}
/* Onda al hacer clic (ver site.js) — feedback táctil real anclado al
   punto exacto del clic. currentColor con opacidad baja funciona sobre
   cualquier variante sin declarar un color aparte por botón. */
.btn-ripple{position:absolute;border-radius:50%;background-color:currentColor;opacity:.22;transform:scale(0);animation:rippleGrow .5s var(--ease-out) forwards;pointer-events:none}
@keyframes rippleGrow{to{transform:scale(1);opacity:0}}
.btn-primary{background-color:var(--primary);color:#FFF}
.btn-primary:hover{background-color:var(--primary-hover);color:#FFF;box-shadow:var(--shadow-glow);transform:translateY(-1px)}
.btn-dark{background-color:var(--bg-dark);color:#FFF;border-color:var(--border-strong)}
.btn-dark:hover{background-color:#000;color:#FFF}
.btn-ghost{background-color:transparent;color:var(--text-primary);border-color:var(--border-strong)}
.btn-ghost:hover{background-color:var(--bg-subtle);border-color:var(--text-secondary)}
.btn-danger{background-color:var(--danger);color:#FFF}
.btn-danger:hover{background-color:#D8483A;color:#FFF}
.btn-success{background-color:var(--success);color:#FFF}
.btn-success:hover{background-color:#2E9C56;color:#FFF}
.btn-block{width:100%}
.btn-lg{padding:14px 26px;font-size:15px}
.btn-sm{padding:7px 14px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:disabled:hover{background-color:var(--primary);box-shadow:none;transform:none}
.btn:disabled:active{transform:none}

/* -----------------------------------------------------------------
   Hero de búsqueda: buscador primero, resultados debajo. Los hijos del
   bloque de copy entran en cascada corta SOLO aquí — única coreografía
   de entrada de toda la página.
   ----------------------------------------------------------------- */
/* Trama de puntos — textura de fondo repetible (SVG en mosaico, no
   degradado) a opacidad casi invisible; es la que separa un panel de
   color plano de una superficie con algo de diseño gráfico detrás. Se
   repite en el héroe y el pie de página. */
.hero-discovery{background-color:var(--bg-app);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.4' fill='%23FF5A36' fill-opacity='.35'/%3E%3C/svg%3E");background-repeat:repeat;border-bottom:1px solid var(--border-subtle);padding:16px 0 14px}
@media(min-width:640px){.hero-discovery{padding:38px 0 32px}}
.hero-copy>*{animation:fadeInUp var(--dur-slow) var(--ease-out) both}
.hero-copy>*:nth-child(1){animation-delay:0ms}
.hero-copy>*:nth-child(2){animation-delay:70ms}
.hero-copy>*:nth-child(3){animation-delay:140ms}
.hero-copy>*:nth-child(4){animation-delay:210ms}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-text);margin:0 0 10px}
.live-dot{position:relative;width:7px;height:7px;border-radius:50%;background-color:var(--accent);flex-shrink:0}
.live-dot::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--accent);animation:liveRing 2.2s var(--ease-out) infinite}
.hero-clean-title{color:var(--text-primary);font-family:var(--font-heading);font-size:clamp(1.4rem,5vw,2.6rem);font-weight:700;letter-spacing:-.02em;margin:0 0 10px;line-height:1.12}
.hero-clean-sub{color:var(--text-secondary);font-size:13.5px;line-height:1.55;max-width:62ch;margin:0 0 18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(min-width:640px){.hero-clean-sub{font-size:15.5px}}
.search-bar-wrap{max-width:820px}
.search-box-v2{display:flex;align-items:center;gap:8px;background-color:var(--bg-surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-full);padding:5px 6px 5px 20px;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-normal) ease}
.search-box-v2:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.search-box-v2 i.search-icon{color:var(--text-muted);font-size:14px;flex-shrink:0;transition:color var(--dur-fast) ease}
.search-box-v2:focus-within i.search-icon{color:var(--primary)}
.search-box-v2 input{flex:1;min-width:0;border:none;padding:8px 4px;font-size:14px;font-family:var(--font-body);color:var(--text-primary);background:transparent}
@media(min-width:640px){.search-box-v2 input{font-size:15px}}
.search-box-v2 input::placeholder{color:var(--text-muted)}
.search-box-v2 input:focus{outline:none}
.search-box-v2 .btn{padding:9px 16px;font-size:13px;flex-shrink:0}
.search-box-v2 .btn span{display:none}
@media(min-width:480px){.search-box-v2 .btn{padding:9px 20px;font-size:14px}.search-box-v2 .btn span{display:inline}}
.filter-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;align-items:center}
.filter-pills-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;display:inline-flex;align-items:center;gap:4px;margin-right:2px;flex-shrink:0}
.filter-pill{display:inline-flex;align-items:center;padding:5px 13px;border-radius:var(--radius-full);font-size:12.5px;font-weight:600;color:var(--text-secondary);background-color:var(--bg-surface);border:1px solid var(--border-subtle);text-decoration:none;white-space:nowrap;transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease;-webkit-tap-highlight-color:transparent}
.filter-pill:hover{border-color:var(--border-strong);color:var(--text-primary)}
.filter-pill.active{background-color:var(--primary);border-color:var(--primary);color:#fff}

/* -----------------------------------------------------------------
   Marquesina "en cartelera" — franja tipo cine/teatro con los próximos
   eventos desplazándose sin fin. Contenido real, duplicado UNA vez en el
   PHP para que el bucle 0→-50% sea perfecto sin salto ni JS.
   ----------------------------------------------------------------- */
.live-ticker{background-color:var(--primary);overflow:hidden;position:relative;border-bottom:1px solid var(--border-dark)}
.live-ticker-track{display:flex;width:max-content;animation:tickerScroll 32s linear infinite}
.live-ticker:hover .live-ticker-track,.live-ticker:focus-within .live-ticker-track{animation-play-state:paused}
@keyframes tickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.live-ticker-item{display:flex;align-items:center;gap:10px;padding:11px 28px;white-space:nowrap;color:#fff;text-decoration:none;font-size:13.5px;font-weight:700;border-right:1px solid rgba(255,255,255,.22);transition:opacity var(--dur-fast) ease}
.live-ticker-item:hover{opacity:.8}
.live-ticker-item .live-dot{background-color:#fff}
.live-ticker-item .live-dot::after{border-color:#fff}
.live-ticker-item time{color:rgba(255,255,255,.75);font-weight:500}
.live-ticker-item i{color:rgba(255,255,255,.75);font-size:11px}

#boletas{padding-top:20px}
.section-title{display:flex;align-items:baseline;justify-content:space-between;margin:16px 0 16px;flex-wrap:wrap;gap:8px}
.section-title h2{font-size:clamp(1.1rem,2.6vw,1.4rem);margin-bottom:0;position:relative;padding-bottom:11px}
/* Rayita de acento bajo cada título de sección — ancla visual discreta,
   el mismo naranja de marca, sin convertir el título en un botón. */
.section-title h2::after{content:'';position:absolute;left:0;bottom:0;width:34px;height:3px;background-color:var(--primary);border-radius:var(--radius-full)}

/* -----------------------------------------------------------------
   Lista de boletas — filas horizontales (miniatura · datos · precio+CTA).
   ----------------------------------------------------------------- */
.ticket-list{display:flex;flex-direction:column;gap:10px;margin-bottom:40px}
.ticket-item-card{display:flex;align-items:center;gap:14px;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px;text-decoration:none;color:var(--text-primary);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,background-color var(--dur-fast) ease,transform var(--dur-normal) var(--ease-out)}
.ticket-item-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm),0 0 0 1px rgba(255,90,54,.12);background-color:var(--bg-subtle);transform:translateY(-2px)}
.ticket-item-thumb{width:52px;height:52px;border-radius:var(--radius-md);background-color:var(--primary);color:#fff;display:grid;place-items:center;font-size:18px;flex-shrink:0}
@media(min-width:560px){.ticket-item-thumb{width:68px;height:68px;font-size:22px;border-radius:var(--radius-lg)}}
.ticket-item-main{flex:1;min-width:0}
.ticket-head{display:flex;align-items:center;gap:6px;margin-bottom:5px;flex-wrap:wrap}
.ticket-item-card h3{font-family:var(--font-heading);font-weight:600;font-size:.95rem;margin-bottom:3px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:560px){.ticket-item-card h3{font-size:1.08rem}}
.ticket-meta-line{font-size:11.5px;color:var(--text-secondary);display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticket-meta-line i{color:var(--text-muted);font-size:10.5px}
.ticket-seat-line{font-size:12px;color:var(--text-secondary);font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none}
@media(min-width:480px){.ticket-seat-line{display:block}}
.ticket-seat-line i{color:var(--primary);margin-right:2px}
.ticket-item-side{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.ticket-footer{margin-top:auto;padding-top:0;border-top:none}
.ticket-price-row{margin-bottom:0}
.ticket-price-label{display:none;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:2px}
@media(min-width:640px){.ticket-price-label{display:block}}
.price-val{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--text-primary)}
@media(min-width:480px){.price-val{font-size:19px}}
.ticket-buy-btn{font-size:12.5px;padding:8px 14px;font-weight:700;gap:6px}
.ticket-buy-btn i{transition:transform var(--dur-normal) var(--ease-out)}
.ticket-item-card:hover .ticket-buy-btn i{transform:translateX(3px)}
@media(min-width:480px){.ticket-buy-btn{font-size:13.5px;padding:10px 18px}}

.event-featured-banner{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 24px;border-left:4px solid var(--primary);flex-wrap:wrap}
@media(min-width:640px){.event-featured-banner{padding:22px 26px;margin-bottom:28px}}
.event-featured-left{display:flex;align-items:center;gap:14px;flex:1 1 240px;min-width:0}
.event-featured-date{background-color:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:8px 12px;text-align:center;min-width:58px;flex-shrink:0}
.event-featured-date .month{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);display:block}
.event-featured-date .day{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--text-primary);line-height:1.1;display:block}

.trust-bar{display:grid;grid-template-columns:1fr;gap:12px;padding:18px;background-color:var(--bg-subtle);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);margin:0 0 48px}
@media(min-width:540px){.trust-bar{grid-template-columns:repeat(3,1fr);gap:16px;padding:22px}}
@media(min-width:640px){.trust-bar{padding:24px;gap:20px}}
.trust-bar-item{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:var(--radius-md);transition:background-color var(--dur-fast) ease}
.trust-bar-item:hover{background-color:var(--bg-surface)}
.trust-bar-item .icon{width:36px;height:36px;border-radius:var(--radius-full);background-color:var(--bg-surface);border:1px solid var(--border-subtle);display:grid;place-items:center;color:var(--primary);flex-shrink:0;font-size:16px;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}
.trust-bar-item:hover .icon{background-color:var(--primary);color:#fff}
.trust-bar-item strong{display:block;font-size:13.5px;color:var(--text-primary);margin-bottom:2px}
.trust-bar-item p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}

.stats-carousel{display:flex;align-items:center;gap:14px;background-color:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px 16px;margin:0 0 28px;min-height:34px}
.stats-carousel-track{position:relative;flex:1;min-height:34px}
.stats-slide{position:absolute;inset:0;display:flex;align-items:center;gap:10px;opacity:0;transition:opacity .4s ease;pointer-events:none}
.stats-slide.active{opacity:1;pointer-events:auto}
.stats-icon{width:32px;height:32px;border-radius:var(--radius-full);background-color:var(--bg-surface);border:1px solid var(--border-subtle);display:grid;place-items:center;color:var(--primary);flex-shrink:0;font-size:13.5px}
.stats-text{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;min-width:0}
.stats-text strong{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--text-primary);flex-shrink:0;font-variant-numeric:tabular-nums}
.stats-text span{font-size:12px;color:var(--text-secondary);line-height:1.3}
@media(min-width:480px){.stats-carousel{padding:14px 20px}.stats-icon{width:36px;height:36px;font-size:15px}.stats-text strong{font-size:20px}.stats-text span{font-size:12.5px}}
.stats-dots{display:flex;gap:5px;flex-shrink:0}
.stats-dot{width:6px;height:6px;border-radius:50%;background-color:var(--border-strong);transition:background-color var(--dur-normal) ease}
.stats-dot.active{background-color:var(--primary)}

/* -----------------------------------------------------------------
   Carrusel de eventos — scroll horizontal con snap. Cada tarjeta gira
   un par de grados al pasar el mouse — guiño a la energía de collage
   inclinado de la referencia, contenido SOLO a las tarjetas de
   descubrimiento (nunca a una fila de compra real).
   ----------------------------------------------------------------- */
.event-scroll-row{display:flex;gap:16px;overflow-x:auto;padding:2px 2px 14px;margin:0 -2px 42px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.event-scroll-row::-webkit-scrollbar{height:7px}
.event-scroll-row::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:var(--radius-full)}
.event-scroll-row::-webkit-scrollbar-track{background-color:transparent}
.ticket-card{scroll-snap-align:start;flex:0 0 220px;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:var(--text-primary);display:flex;flex-direction:column;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-normal) var(--ease-out)}
@media(min-width:640px){.ticket-card{flex-basis:250px}}
.ticket-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md),0 10px 26px rgba(255,90,54,.16);transform:translateY(-4px) rotate(-1deg)}
.ticket-card .thumb{aspect-ratio:3/4;overflow:hidden;background-color:var(--bg-dark);position:relative;display:flex;align-items:center;justify-content:center}
.ticket-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}
.ticket-card:hover .thumb img{transform:scale(1.06)}
.stage-placeholder{width:100%;height:100%;background-color:var(--primary);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative}
.stage-placeholder-icon{width:40px;height:40px;color:rgba(255,255,255,.75);z-index:1}
.stage-placeholder-tag{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#fff;background-color:rgba(0,0,0,.22);padding:3px 9px;border-radius:var(--radius-full);z-index:1;margin-top:8px}
.ticket-card .body{padding:12px 14px 14px;display:flex;flex-direction:column;flex:1}
.ticket-card h3{font-family:var(--font-heading);font-size:1rem;font-weight:600;margin-bottom:5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticket-card .meta{font-size:12px;color:var(--text-secondary);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.ticket-card .price-row{margin-top:auto;padding-top:10px;border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;gap:8px}
.ticket-card .from{font-size:11px;font-weight:600;color:var(--text-muted)}
.ticket-card .price{font-family:var(--font-display);font-weight:700;font-size:15.5px;color:var(--text-primary)}
.ticket-card.is-featured{border:2px solid var(--accent)}
.featured-badge{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;gap:5px;background-color:#fff;color:var(--primary);font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:4px 10px;border-radius:var(--radius-full)}
.badge-invert{background-color:rgba(255,255,255,.16)!important;color:#fff!important;border-color:rgba(255,255,255,.3)!important}

.card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:20px}
@media(min-width:640px){.card{padding:32px}}
.card-title{margin-top:0;font-size:1.35rem;margin-bottom:6px}
.lede{font-size:1.05rem;color:var(--text-secondary);line-height:1.65;max-width:65ch}
.ticket-detail-wrap{padding-top:24px;padding-bottom:56px}
@media(min-width:640px){.ticket-detail-wrap{padding-top:40px;padding-bottom:80px}}
.ticket-detail{display:grid;grid-template-columns:1fr;gap:20px;align-items:start;grid-template-areas:"header" "seller" "stub" "howitworks"}
.ticket-header{grid-area:header}
.seller-card{grid-area:seller}
.ticket-stub{grid-area:stub}
.ticket-howitworks{grid-area:howitworks}
@media(min-width:900px){.ticket-detail{grid-template-columns:1.15fr .85fr;gap:48px;grid-template-areas:"header stub" "seller stub" "howitworks stub"}}
.ticket-stub{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:22px;position:relative;overflow:hidden}
@media(min-width:640px){.ticket-stub{padding:32px}}
@media(min-width:900px){.ticket-stub{position:sticky;top:96px}}
.ticket-stub .kicker{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);background-color:var(--accent-light);padding:4px 10px;border-radius:var(--radius-full)}
.ticket-stub h2{font-size:1.3rem;margin:12px 0 8px}
.ticket-stub .loc{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13.5px;margin-bottom:5px}
.stub-divider{border:none;border-top:2px dashed var(--border-strong);margin:20px -22px;position:relative}
@media(min-width:640px){.stub-divider{margin:24px -32px}}
.stub-divider::before,.stub-divider::after{content:'';position:absolute;top:-12px;width:24px;height:24px;background-color:var(--bg-app);border-radius:50%;border:1px solid var(--border-subtle)}
.stub-divider::before{left:-12px}.stub-divider::after{right:-12px}
.stub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.stub-field{background-color:var(--bg-subtle);padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:border-color var(--dur-fast) ease}
.stub-field:hover{border-color:var(--border-strong)}
.stub-field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-muted);margin-bottom:2px}
.stub-field span{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--text-primary)}
.stub-price-wrap{margin:18px 0;padding:14px;background-color:var(--accent-light);border-radius:var(--radius-md);text-align:center;border:1px solid rgba(255,90,54,.35)}
.stub-price-wrap .label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text);margin-bottom:4px}
.stub-price{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--accent-text);line-height:1}
@media(min-width:640px){.stub-price{font-size:32px}}
.stub-barcode{display:flex;justify-content:center;align-items:flex-end;gap:2px;height:36px;margin-top:16px;opacity:.35}
.stub-barcode span{background-color:var(--text-primary);width:2px;height:100%}
.stub-barcode span:nth-child(2n){width:3px}.stub-barcode span:nth-child(3n){width:1px}.stub-barcode span:nth-child(5n){width:4px}.stub-barcode span:nth-child(7n){height:75%}
.countdown-panel{text-align:center;background:var(--bg-spotlight);color:#FFF;border-radius:var(--radius-lg);padding:22px 18px;margin-bottom:18px;border:1px solid var(--border-dark);overflow:hidden}
.countdown-panel>*{position:relative;z-index:1}
.countdown-panel .label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#B9B0AA;margin-bottom:6px;display:flex;align-items:center;justify-content:center;gap:8px}
.countdown-panel .label::before{content:'';width:8px;height:8px;border-radius:50%;background-color:var(--success);animation:dotPulse 1.6s ease infinite}
.countdown-digits{font-family:var(--font-display);font-size:48px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1.1;color:#FFF;transition:color var(--dur-normal) ease}
@keyframes digitTick{0%{transform:scale(1.05)}100%{transform:scale(1)}}
.countdown-digits.tick{animation:digitTick .35s var(--ease-out)}
@media(min-width:640px){.countdown-digits{font-size:54px}}
.countdown-panel[data-level="normal"] .countdown-digits{color:#FFF}
.countdown-panel[data-level="attention"] .countdown-digits{color:#F0A93E}
.countdown-panel[data-level="warning"] .countdown-digits{color:#F2854D}
.countdown-panel[data-level="critical"] .countdown-digits{color:#F2604D}
.status-timeline{list-style:none;margin:0 0 22px;background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:14px 18px}
.status-timeline li{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:14px;color:var(--text-muted);position:relative}
.status-timeline li:not(:last-child)::after{content:'';position:absolute;left:11px;top:28px;bottom:-4px;width:2px;background-color:var(--border-subtle)}
.status-timeline li .dot{width:24px;height:24px;border-radius:50%;border:2px solid var(--border-strong);display:grid;place-items:center;flex-shrink:0;font-size:11px;font-weight:700;background-color:var(--bg-surface);z-index:1;transition:background-color var(--dur-normal) ease,border-color var(--dur-normal) ease}
.status-timeline li.done{color:var(--text-primary);font-weight:600}
.status-timeline li.done .dot{background-color:var(--success);border-color:var(--success);color:#0A0A0B}
.status-timeline li.done::after{background-color:var(--success)}
.status-timeline li.current{color:var(--primary);font-weight:700}
.status-timeline li.current .dot{background-color:var(--primary);border-color:var(--primary);color:#FFF}
.mobile-buy-bar{display:none}
@media(max-width:899px){
  .mobile-buy-bar{display:flex;align-items:center;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:80;background-color:var(--bg-surface);border-top:1px solid var(--border-subtle);padding:10px 16px;box-shadow:0 -10px 24px rgba(0,0,0,.35)}
  .mobile-buy-bar-price{flex:1;min-width:0}
  .mobile-buy-bar-price .label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:700}
  .mobile-buy-bar-price .val{display:block;font-family:var(--font-display);font-weight:800;font-size:19px;color:var(--text-primary);line-height:1.2}
  .mobile-buy-bar .btn{flex-shrink:0}
  .ticket-detail-wrap{padding-bottom:88px}
}

/* Fondo con video promocional (ficha de boleta de BTS) — ver ticket.php.
   Overlay a color sólido semitransparente (no degradado) para que el
   título, las migas de pan y cualquier texto que no esté sobre una
   tarjeta opaca se sigan leyendo sin importar el fotograma del video. */
.bts-bg-video{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.bts-bg-overlay{position:fixed;inset:0;background-color:rgba(10,10,11,.74);z-index:-1}
@media(prefers-reduced-motion:reduce){.bts-bg-video{display:none}}

/* -----------------------------------------------------------------
   Login / registro / recuperar / restablecer contraseña — layout partido
   (panel de marca + formulario) en vez de una tarjeta flotando sola en
   una página vacía. El panel es decorativo (aria no aplica, no hay nada
   interactivo perdido) y se oculta en mobile.
   ----------------------------------------------------------------- */
.auth-shell{display:grid;grid-template-columns:1fr;min-height:72vh}
@media(min-width:960px){.auth-shell{grid-template-columns:1.05fr 1fr;min-height:640px}}
.auth-visual{display:none;position:relative;background-color:var(--bg-dark);padding:48px;flex-direction:column;justify-content:space-between;overflow:hidden;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.4' fill='%23FF5A36' fill-opacity='.35'/%3E%3C/svg%3E");background-repeat:repeat}
@media(min-width:960px){.auth-visual{display:flex}}
.auth-visual-top{position:relative;z-index:1;display:flex;align-items:center;gap:9px}
.auth-visual-title{position:relative;z-index:1;font-family:var(--font-heading);font-weight:700;font-size:clamp(1.7rem,3vw,2.4rem);color:#fff;line-height:1.16;letter-spacing:-.02em;margin:40px 0 14px}
.auth-visual-sub{position:relative;z-index:1;color:#B9B0AA;font-size:14.5px;line-height:1.6;max-width:36ch;margin-bottom:32px}
.auth-visual-points{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;gap:16px}
.auth-visual-point{display:flex;align-items:center;gap:12px;color:#fff;font-size:14px;font-weight:600}
.auth-visual-point i{width:34px;height:34px;border-radius:50%;background-color:rgba(255,90,54,.16);color:var(--primary-text);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.auth-form-col{display:flex;align-items:center;justify-content:center;padding:40px 16px}
@media(min-width:640px){.auth-form-col{padding:56px 24px}}
.auth-card{width:100%;max-width:440px}

/* Botón de mostrar/ocultar contraseña, dentro del propio campo. */
.input-with-action{position:relative}
.input-with-action input{padding-right:44px}
.input-toggle-btn{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:50%;display:grid;place-items:center;font-size:15px;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}
.input-toggle-btn:hover{background-color:var(--bg-subtle);color:var(--text-primary)}

/* Indicador en vivo de "las contraseñas coinciden" al confirmar
   contraseña (registro y restablecer) — puramente informativo, el
   servidor vuelve a validar la coincidencia real al recibir el formulario. */
.password-match-hint{font-size:12px;margin-top:6px;display:flex;align-items:center;gap:6px;font-weight:600}
.password-match-hint.is-match{color:var(--success)}
.password-match-hint.is-mismatch{color:var(--danger)}

.narrow-form{max-width:480px;margin:36px auto 64px;padding:0 4px}
@media(min-width:640px){.narrow-form{margin:48px auto 80px}}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:6px}
.form-group input[type=text],.form-group input[type=email],.form-group input[type=tel],.form-group input[type=password],.form-group input[type=file],.form-group select,.form-group textarea{width:100%;padding:11px 16px;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:15px;color:var(--text-primary);background-color:var(--bg-surface);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-normal) ease;appearance:none;-webkit-appearance:none}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.form-group textarea{resize:vertical;min-height:90px}
.form-hint{font-size:12px;color:var(--text-muted);margin-top:5px}
.form-row{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:480px){.form-row{grid-template-columns:1fr 1fr}}
.payment-method-tabs{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.payment-method-tabs label{flex:1;min-width:110px;text-align:center;padding:12px 14px;border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;font-weight:700;font-size:14px;color:var(--text-secondary);transition:border-color var(--dur-fast) ease,color var(--dur-fast) ease;background-color:var(--bg-surface);-webkit-tap-highlight-color:transparent}
.payment-method-tabs label:hover{border-color:var(--border-strong);color:var(--text-primary)}
.payment-method-tabs input{display:none}
.payment-method-tabs input:checked~*,.payment-method-tabs label:has(input:checked){border-color:var(--primary);background-color:var(--primary-light);color:var(--primary-text)}
.payment-instructions{background-color:var(--bg-subtle);border-radius:var(--radius-md);padding:16px 18px;font-size:14px;margin-bottom:18px;border:1px solid var(--border-subtle)}
.payment-instructions dt{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:12px}
.payment-instructions dt:first-child{margin-top:0}
.payment-instructions dd{margin:3px 0 0;color:var(--text-primary);font-weight:600}
.card-brand-logos{display:flex;gap:10px;align-items:center;margin-bottom:16px}
.card-brand-logos i{font-size:26px;color:var(--primary)}

.copy-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border:1.5px solid var(--border-strong);background-color:var(--bg-surface);color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;transition:border-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}
.copy-btn:hover{border-color:var(--primary);color:var(--primary)}
.copy-btn:active{transform:scale(.9)}
.copy-btn.copied{border-color:var(--success);color:var(--success);background-color:var(--success-light)}

.file-drop{position:relative;display:block;border:2px dashed var(--border-strong);border-radius:var(--radius-md);background-color:var(--bg-subtle);cursor:pointer;transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease;padding:22px 16px;text-align:center}
.file-drop:hover{border-color:var(--primary);background-color:var(--primary-light)}
.file-drop.is-dragover{border-color:var(--primary);background-color:var(--primary-light)}
.file-drop.has-file{border-style:solid;border-color:var(--success);background-color:var(--success-light)}
.file-drop input[type="file"]{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.file-drop-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-secondary)}
.file-drop-empty i{font-size:26px;color:var(--primary);margin-bottom:2px}
.file-drop-empty strong{color:var(--text-primary);font-size:14.5px}
.file-drop-empty span{font-size:12.5px;color:var(--text-muted)}
.file-drop-chosen{display:flex;align-items:center;gap:12px;text-align:left}
.file-drop-empty[hidden],.file-drop-chosen[hidden]{display:none}
.file-drop-chosen i.fa-file-lines{font-size:26px;color:var(--success);flex-shrink:0}
.file-drop-info{flex:1;min-width:0;display:flex;flex-direction:column}
.file-drop-name{font-size:14px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-drop-size{font-size:12px;color:var(--text-muted)}
.file-drop-clear{position:relative;z-index:1;width:28px;height:28px;flex-shrink:0;border:none;border-radius:50%;background-color:var(--bg-app);color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}
.file-drop-clear:hover{background-color:var(--danger-light);color:var(--danger)}
.file-drop-error{color:var(--danger)}

@keyframes spin{to{transform:rotate(360deg)}}
.btn.is-loading{pointer-events:none;opacity:.85}
.btn.is-loading .btn-label{visibility:hidden}
.btn.is-loading::before{content:'';position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);border-top-color:#FFF;animation:spin .7s linear infinite}

.reservation-support-note{display:flex;gap:14px;background-color:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:18px 20px;margin-top:18px}
.reservation-support-note>i{font-size:20px;color:var(--primary);flex-shrink:0;margin-top:2px}
.reservation-support-note strong{display:block;color:var(--text-primary);font-size:14.5px;margin-bottom:4px}
.reservation-support-note p{font-size:13.5px;margin-bottom:12px}
.reservation-support-actions{display:flex;gap:8px;flex-wrap:wrap}

.delivery-confirm-card{display:flex;gap:14px;background-color:var(--warning-light);border:1px solid rgba(240,169,62,.35);border-radius:var(--radius-md);padding:18px 20px;margin-top:18px}
.delivery-confirm-card>i{font-size:22px;color:var(--warning);flex-shrink:0;margin-top:2px}
.delivery-confirm-card strong{display:block;color:var(--text-primary);font-size:14.5px;margin-bottom:4px}
.delivery-confirm-card p{font-size:13.5px;margin-bottom:12px}
.delivery-confirm-card.is-done{background-color:var(--success-light);border-color:rgba(63,184,106,.35)}
.delivery-confirm-card.is-done>i{color:var(--success)}
.delivery-confirm-card.is-done p{margin-bottom:0}
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:var(--radius-full);font-size:11.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.badge-green{background-color:var(--success-light);color:var(--success-text);border:1px solid rgba(63,184,106,.35)}
.badge-amber{background-color:var(--warning-light);color:var(--warning-text);border:1px solid rgba(240,169,62,.35)}
.badge-red{background-color:var(--danger-light);color:var(--danger-text);border:1px solid rgba(242,96,77,.35)}
.badge-violet{background-color:var(--primary-light);color:var(--primary-text);border:1px solid rgba(255,90,54,.35)}
.badge-neutral{background-color:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-subtle)}
.flash{padding:12px 18px;border-radius:var(--radius-md);margin:16px auto;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;animation:slideDown var(--dur-normal) ease}
.flash-error{background-color:var(--danger-light);color:var(--danger-text);border:1px solid rgba(242,96,77,.35)}
.flash-success{background-color:var(--success-light);color:var(--success-text);border:1px solid rgba(63,184,106,.35)}
.site-footer{background-color:var(--bg-dark);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.4' fill='%23FF5A36' fill-opacity='.3'/%3E%3C/svg%3E");background-repeat:repeat;border-top:1px solid var(--border-subtle);margin-top:32px;padding:24px 0 16px}
@media(min-width:640px){.site-footer{margin-top:72px;padding:56px 0 32px}}
.footer-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:640px){.footer-grid{grid-template-columns:1fr 1fr;gap:40px}}
@media(min-width:960px){.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:48px}}
.footer-links-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
@media(min-width:640px){.footer-links-row{display:contents}}
.footer-grid h4{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--text-muted);margin-bottom:8px}
@media(min-width:640px){.footer-grid h4{margin-bottom:14px}}
.footer-col a,.footer-grid a{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text-secondary);font-size:13px;margin-bottom:7px;transition:color var(--dur-fast) ease,transform var(--dur-fast) ease}
@media(min-width:640px){.footer-col a,.footer-grid a{font-size:14px;margin-bottom:11px}}
.footer-col a:hover,.footer-grid a:hover{color:var(--text-primary);transform:translateX(3px)}
.footer-col a i{color:var(--text-muted);font-size:12px;width:14px;text-align:center;flex-shrink:0;transition:color var(--dur-fast) ease}
.footer-col a:hover i{color:var(--primary)}
.footer-brand-col{max-width:360px}
.footer-brand-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
@media(min-width:640px){.footer-brand-row{margin-bottom:14px}}
.brand-mark-sm{width:32px;height:32px;flex-shrink:0}
.footer-lede{font-size:12.5px;line-height:1.5;margin-bottom:10px}
@media(min-width:640px){.footer-lede{font-size:14px;line-height:1.65;margin-bottom:18px}}
.footer-trust-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;font-weight:600;color:var(--text-muted)}
.footer-trust-row span{display:inline-flex;align-items:center;gap:6px}
.footer-trust-row i{color:var(--success)}
.footer-bottom{color:var(--text-muted);font-size:11.5px;line-height:1.5;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}
@media(min-width:640px){.footer-bottom{font-size:12.5px;line-height:1.6;margin-top:36px;padding-top:18px;gap:16px;flex-direction:row;justify-content:space-between;align-items:center}.footer-bottom>div:last-child{text-align:right}}

.whatsapp-fab{position:fixed;right:14px;bottom:14px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background-color:#2E9C56;color:#FFF;box-shadow:var(--shadow-md);z-index:50;transition:box-shadow var(--dur-normal) ease,transform var(--dur-normal) var(--ease-out);text-decoration:none}
.whatsapp-fab:hover{box-shadow:var(--shadow-lg);color:#FFF;transform:translateY(-2px)}
.whatsapp-fab-icon{font-size:24px;line-height:1;display:grid;place-items:center}
.whatsapp-fab-text{display:none}
@media(min-width:640px){
  .whatsapp-fab{right:24px;bottom:24px;width:auto;height:auto;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:12px;padding:6px 22px 6px 6px;border:1px solid var(--border-subtle);background-color:var(--bg-surface);box-shadow:var(--shadow-md)}
  .whatsapp-fab:hover{box-shadow:var(--shadow-lg)}
  .whatsapp-fab-icon{width:44px;height:44px;flex-shrink:0;border-radius:50%;background-color:#2E9C56;color:#FFF;font-size:21px}
  .whatsapp-fab-text{display:block;font-size:13.5px;font-weight:600;color:var(--text-secondary);line-height:1.3;white-space:nowrap}
  .whatsapp-fab-text strong{display:block;font-weight:800;color:var(--text-primary);font-size:14.5px}
}
.cookie-banner{position:fixed;left:12px;right:76px;bottom:12px;z-index:60;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:0;font-size:11.5px;color:var(--text-secondary);line-height:1.45}
.cookie-banner p i{color:var(--primary);margin-right:2px}
.cookie-banner a{color:var(--primary);font-weight:600;text-decoration:underline}
.cookie-banner .btn{align-self:flex-end}
@media(min-width:640px){.cookie-banner{left:16px;right:auto;bottom:16px;max-width:380px;flex-direction:row;align-items:center;padding:14px 18px}.cookie-banner p{font-size:12.5px}.cookie-banner .btn{align-self:auto}}
.admin-shell{display:flex;min-height:100vh;flex-direction:column}
@media(min-width:900px){.admin-shell{flex-direction:row}}
.admin-sidebar{width:100%;background-color:var(--bg-dark);color:#F4F5F6;padding:18px 16px;display:flex;flex-direction:column;border-bottom:1px solid var(--border-dark)}
@media(min-width:900px){.admin-sidebar{width:250px;flex-shrink:0;border-bottom:none;border-right:1px solid var(--border-dark);padding:28px 20px}}
.admin-sidebar .brand-name{color:#FFF}
.admin-sidebar nav{margin-top:20px;display:flex;flex-direction:column;gap:4px;flex:1}
@media(max-width:900px){.admin-sidebar nav{flex-direction:row;flex-wrap:wrap;margin-top:12px;gap:4px}}
.admin-sidebar nav a{padding:9px 12px;border-radius:var(--radius-md);text-decoration:none;color:#8A8A90;font-weight:600;font-size:13.5px;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease;display:flex;align-items:center;gap:9px;white-space:nowrap}
.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background-color:rgba(255,255,255,.08);color:#FFF}
.admin-main{flex:1;padding:20px 16px;background-color:var(--bg-app);min-width:0}
@media(min-width:640px){.admin-main{padding:32px 28px}}
@media(min-width:900px){.admin-main{padding:40px 48px}}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}
@media(min-width:640px){.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:36px}}
.metric-card{background-color:var(--bg-surface);border-radius:var(--radius-lg);padding:16px 18px;border:1px solid var(--border-subtle)}
@media(min-width:640px){.metric-card{padding:24px}}
.metric-card .n{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--text-primary);line-height:1.1;margin-bottom:4px}
@media(min-width:640px){.metric-card .n{font-size:36px}}
.metric-card .l{font-size:12.5px;font-weight:600;color:var(--text-muted)}
.admin-table{width:100%;border-collapse:collapse;background-color:var(--bg-surface);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle)}
.admin-table th,.admin-table td{text-align:left;padding:12px 16px;font-size:13.5px;border-bottom:1px solid var(--border-subtle)}
@media(min-width:640px){.admin-table th,.admin-table td{padding:16px 20px;font-size:14px}}
.admin-table th{background-color:var(--bg-subtle);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}
.admin-table tbody tr:hover{background-color:var(--bg-subtle)}
.admin-table tr:last-child td{border-bottom:none}

@media(max-width:680px){
  .stack-table thead{display:none}
  .stack-table,.stack-table tbody,.stack-table tr,.stack-table td{display:block;width:100%}
  .stack-table{border:none;box-shadow:none;background:transparent}
  .stack-table tr{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:12px;padding:4px 0}
  .stack-table tr:last-child{margin-bottom:0}
  .stack-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 16px;text-align:right;border-bottom:1px solid var(--border-subtle)}
  .stack-table td:last-child{border-bottom:none}
  .stack-table td::before{content:attr(data-label);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;flex-shrink:0;padding-top:2px}
}

.delivery-summary{background-color:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 20px}
.delivery-summary[hidden]{display:none}
.delivery-summary-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--success-text);background-color:var(--success-light);border:1px solid rgba(63,184,106,.35);padding:3px 10px;border-radius:var(--radius-full);margin-bottom:14px}
.delivery-summary-row{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-top:1px dashed var(--border-strong)}
.delivery-summary-row:first-of-type{border-top:none;padding-top:0}
.delivery-summary-row i{width:32px;height:32px;border-radius:50%;background-color:var(--bg-app);color:var(--primary);display:grid;place-items:center;flex-shrink:0;font-size:13px;border:1px solid var(--border-subtle)}
.delivery-summary-row>div{min-width:0}
.delivery-summary-row strong{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:3px}
.delivery-summary-row span{font-size:14px;color:var(--text-primary);font-weight:600;word-break:break-word}
#deliveryFormWrap[hidden]{display:none}

.avatar-upload{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.avatar-preview{position:relative;width:92px;height:92px;border-radius:50%;flex-shrink:0;background-color:var(--primary);color:#fff;display:grid;place-items:center;font-family:var(--font-heading);font-weight:700;font-size:32px;overflow:hidden}
.avatar-preview img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-upload-actions{display:flex;flex-direction:column;gap:8px}
.avatar-upload-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.avatar-upload-actions input[type="file"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.receipt-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px;background-color:var(--bg-subtle)}
.receipt-preview img{width:100%;display:block}
.receipt-preview iframe{width:100%;height:420px;border:none}
@media(min-width:640px){.receipt-preview iframe{height:520px}}
.hero-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--accent-text);background-color:var(--accent-light);border:1px solid rgba(255,90,54,.35);padding:4px 12px;border-radius:var(--radius-full);margin-bottom:8px}
.reveal{opacity:0;transform:translateY(10px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-scale{opacity:0;transform:scale(.98);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.reveal-scale.visible{opacity:1;transform:scale(1)}
.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--border-subtle) 50%,var(--bg-subtle) 75%);background-size:400px 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-md)}
.text-center{text-align:center}
.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}
.two-col-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:640px){.two-col-grid{grid-template-columns:repeat(2,1fr)}}
.review-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
@media(min-width:960px){.review-grid{grid-template-columns:1.2fr .8fr;gap:32px}}
@media(max-width:480px){.btn-lg{padding:12px 20px;font-size:14px}.stub-price{font-size:22px}.countdown-digits{font-size:38px}.trust-bar{margin-bottom:28px}.badge{font-size:11px;padding:3px 9px}}

/* ---------------------------------------------------------------------
   Páginas informativas (Eventos / Cómo funciona / Contacto)
   --------------------------------------------------------------------- */
.page-hero{padding-top:40px;padding-bottom:36px;text-align:center}
@media(min-width:640px){.page-hero{padding-top:56px;padding-bottom:44px}}
.page-hero .lede{margin:0 auto;max-width:60ch}
.page-hero h1{margin:8px 0 12px}

.steps-timeline{list-style:none;margin:0;padding:0}
.steps-timeline .step{display:flex;gap:16px;position:relative;padding-bottom:26px}
.steps-timeline .step:last-child{padding-bottom:0}
.steps-timeline .step:not(:last-child)::before{content:'';position:absolute;left:21px;top:44px;bottom:2px;width:2px;background:repeating-linear-gradient(to bottom,var(--border-strong) 0,var(--border-strong) 4px,transparent 4px,transparent 9px)}
.steps-timeline .step-num{width:42px;height:42px;border-radius:50%;background:var(--primary-light);color:var(--primary-text);display:grid;place-items:center;font-weight:800;font-family:var(--font-display);font-size:15px;flex-shrink:0;z-index:1;border:3px solid var(--bg-surface);box-shadow:0 0 0 1px var(--border-subtle);transition:transform var(--dur-normal) var(--ease-out)}
.steps-timeline .step:hover .step-num{transform:scale(1.08)}
.steps-timeline.variant-success .step-num{background:var(--success-light);color:var(--success-text)}
.steps-timeline .step-body{padding-top:7px}
.steps-timeline .step-body strong{display:block;font-size:15.5px;color:var(--text-primary);margin-bottom:4px}
.steps-timeline .step-body p{margin:0;font-size:14px;line-height:1.6}

.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.section-heading .icon-badge{width:38px;height:38px;border-radius:var(--radius-md);display:grid;place-items:center;flex-shrink:0;font-size:16px}
.section-heading h2{margin:0;font-size:1.4rem}

.accordion-item{border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:10px;overflow:hidden;background-color:var(--bg-surface);transition:border-color var(--dur-fast) ease}
.accordion-item:hover{border-color:var(--border-strong)}
.accordion-item[open]{border-color:var(--primary)}
.accordion-item summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:700;font-size:14.5px;color:var(--text-primary);display:flex;justify-content:space-between;align-items:center;gap:14px;transition:background-color var(--dur-fast) ease;-webkit-tap-highlight-color:transparent}
.accordion-item summary::-webkit-details-marker{display:none}
.accordion-item summary:hover{background-color:var(--bg-subtle)}
.accordion-item summary i{color:var(--text-muted);font-size:13px;flex-shrink:0;transition:transform var(--dur-normal) var(--ease-out),color var(--dur-fast) ease}
.accordion-item[open] summary i{transform:rotate(180deg);color:var(--primary)}
.accordion-item .accordion-body{padding:0 18px 18px;font-size:14px;color:var(--text-secondary);line-height:1.7;animation:fadeIn var(--dur-normal) ease}

.payment-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-normal) var(--ease-out)}
.payment-card:hover{box-shadow:var(--shadow-sm),0 0 0 1px rgba(255,90,54,.12);border-color:var(--border-strong);transform:translateY(-2px)}
.payment-card .icon-badge{width:44px;height:44px;border-radius:var(--radius-md);display:grid;place-items:center;font-size:19px;margin-bottom:14px}
.payment-card h3{margin:0 0 6px;font-size:1.05rem}
.payment-card p{font-size:13.5px;margin-bottom:0}

/* ===================== /vende-con-nosotros ===================== */
.sell-hero-banner{background-color:var(--bg-spotlight);border-radius:var(--radius-xl);padding:36px 26px;display:flex;flex-direction:column;gap:22px;align-items:center;text-align:center;overflow:hidden;position:relative;margin-bottom:24px}
.sell-hero-banner>*{position:relative;z-index:1}
.sell-hero-illustration{width:170px;height:auto;flex-shrink:0;overflow:visible}
@media(min-width:768px){
  .sell-hero-banner{flex-direction:row;justify-content:space-between;text-align:left;padding:44px 48px}
  .sell-hero-illustration{width:220px}
}

.sell-benefits-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:8px}
@media(min-width:560px){.sell-benefits-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.sell-benefits-grid{grid-template-columns:repeat(4,1fr)}}

.sell-calculator{padding:26px 24px;margin-bottom:44px;display:grid;grid-template-columns:1fr;gap:26px}
@media(min-width:768px){.sell-calculator{grid-template-columns:1fr 1.25fr;align-items:center;gap:40px;padding:32px 36px}}
.sell-calculator-input label{display:block;font-weight:700;font-size:13px;color:var(--text-secondary);margin-bottom:8px}
.sell-calculator-input-wrap{display:flex;align-items:center;gap:8px;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);padding:10px 16px;transition:border-color var(--dur-fast) ease}
.sell-calculator-input-wrap:focus-within{border-color:var(--primary)}
.sell-calculator-input-wrap span{font-weight:700;color:var(--text-muted);font-size:18px}
.sell-calculator-input-wrap input{border:none;outline:none;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-primary);width:100%;background:transparent;padding:0}
.sell-calculator-input-wrap input::-webkit-outer-spin-button,.sell-calculator-input-wrap input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
#calcFaceValueRange{width:100%;margin-top:14px;accent-color:var(--primary);cursor:pointer}
.sell-calculator-results{display:flex;flex-direction:column;gap:2px;background-color:var(--bg-subtle);border-radius:var(--radius-md);padding:4px 18px}
.sell-calculator-result{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px dashed var(--border-strong)}
.sell-calculator-result:last-child{border-bottom:none}
.sell-calculator-result label{font-size:13px;color:var(--text-secondary);font-weight:600}
.sell-calculator-result span{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--text-primary);white-space:nowrap}
.sell-calculator-result span.is-negative{color:var(--danger)}
.sell-calculator-result.is-highlight span{color:var(--success);font-size:21px}
.sell-calculator-result.is-highlight label{font-size:14px;font-weight:800;color:var(--text-primary)}

.sell-requirements{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:8px}
@media(min-width:640px){.sell-requirements{grid-template-columns:repeat(2,1fr)}}
.sell-requirement{display:flex;gap:12px;align-items:flex-start;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px 18px;transition:transform var(--dur-normal) var(--ease-out),box-shadow var(--dur-fast) ease}
.sell-requirement:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.sell-requirement i{color:var(--success);font-size:19px;margin-top:2px;flex-shrink:0}
.sell-requirement strong{display:block;font-size:14px;color:var(--text-primary);margin-bottom:3px}
.sell-requirement p{margin:0;font-size:12.5px;color:var(--text-secondary)}

.best-price-tag{background-color:var(--success-light);color:var(--success-text);border:1px solid rgba(63,184,106,.35)}

.mini-steps-strip{display:grid;grid-template-columns:1fr;gap:10px;margin:0 0 32px}
@media(min-width:640px){.mini-steps-strip{grid-template-columns:repeat(3,1fr);gap:14px}}
.mini-step{display:flex;align-items:center;gap:12px;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px}
.mini-step .num{width:28px;height:28px;border-radius:50%;background-color:var(--primary);color:#fff;font-family:var(--font-display);font-weight:800;font-size:13px;display:grid;place-items:center;flex-shrink:0}
.mini-step strong{display:block;font-size:13.5px;color:var(--text-primary)}
.mini-step span{display:block;font-size:12px;color:var(--text-muted)}

.event-hero-card{background-color:var(--bg-spotlight);border-radius:var(--radius-xl);padding:26px 24px;color:#fff;position:relative;overflow:hidden}
.event-hero-card>*{position:relative;z-index:1}
.event-hero-card h1{font-family:var(--font-heading)}
.event-hero-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.event-hero-fact{background-color:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-md);padding:10px 12px}
.event-hero-fact label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#B9B0AA;font-weight:700;margin-bottom:3px}
.event-hero-fact span{display:block;font-family:var(--font-display);font-weight:700;font-size:14.5px;color:#fff}

.contact-primary-card{background-color:#0F2E21;border-radius:var(--radius-xl);padding:32px 28px;color:#fff;position:relative;overflow:hidden}
.contact-primary-card>*{position:relative;z-index:1}
.contact-primary-card .response-chip{display:inline-flex;align-items:center;gap:6px;background-color:rgba(255,255,255,.14);padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:700;margin-bottom:14px}
.contact-primary-card .icon-badge{width:52px;height:52px;border-radius:var(--radius-lg);background-color:rgba(255,255,255,.14);display:grid;place-items:center;font-size:24px;margin-bottom:16px}
.contact-primary-card h3{color:#fff;margin:0 0 6px;font-size:1.4rem}
.contact-primary-card p{color:rgba(255,255,255,.82);margin-bottom:20px}
.contact-primary-card .btn-primary{background-color:#fff;color:var(--success-text)}
.contact-primary-card .btn-primary:hover{background-color:#EAF3EC;color:var(--success-text);box-shadow:none}

/* ---------------------------------------------------------------------
   Panel financiero (dashboard admin)
   --------------------------------------------------------------------- */
.finance-panel{display:flex;flex-direction:column;gap:16px}
.finance-hero{background-color:var(--bg-spotlight);border-radius:var(--radius-xl);padding:24px 26px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;position:relative;overflow:hidden}
.finance-hero>*{position:relative;z-index:1}
.finance-hero label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#B9B0AA;margin-bottom:6px}
.finance-hero .amount{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,4vw,2.4rem);color:#fff;line-height:1.1}
.finance-hero .sub{font-size:12.5px;color:#C9C3BE;margin-top:6px}
.finance-stat-row{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.finance-stat-row{grid-template-columns:repeat(3,1fr)}}
.finance-stat{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 18px}
.finance-stat label{display:block;font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.finance-stat span{display:block;font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--text-primary)}
.finance-stat small{display:block;font-size:11.5px;color:var(--text-muted);margin-top:2px}
.seller-rank-item{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:var(--radius-md)}
.seller-rank-item:hover{background-color:var(--bg-subtle)}
.seller-rank-item .rank{font-family:var(--font-display);font-weight:800;font-size:13px;color:var(--text-muted);width:26px;flex-shrink:0}
.seller-rank-item .who{flex:1;min-width:0}
.seller-rank-item .who strong{display:block;font-size:13.5px;color:var(--text-primary)}
.seller-rank-item .who small{display:block;font-size:11.5px;color:var(--text-muted)}
.seller-rank-item .amt{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--success-text);flex-shrink:0}

.seller-card{display:flex;align-items:center;gap:14px;background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 18px}
.seller-avatar{width:48px;height:48px;border-radius:50%;background-color:var(--primary);color:#fff;display:grid;place-items:center;font-family:var(--font-heading);font-weight:700;font-size:17px;flex-shrink:0;position:relative}
.seller-avatar .verified-dot{position:absolute;bottom:-2px;right:-2px;width:17px;height:17px;border-radius:50%;background-color:var(--success);border:2px solid var(--bg-surface);display:grid;place-items:center;color:#0A0A0B;font-size:8px}
.seller-info{min-width:0}
.seller-info .seller-name-row{display:flex;align-items:center;gap:7px;font-size:14.5px;color:var(--text-primary);font-weight:700;flex-wrap:wrap}
.seller-info .seller-name-row .badge{font-size:10px;padding:2px 8px}
.seller-meta{font-size:12.5px;color:var(--text-muted);margin-top:3px;display:flex;gap:12px;flex-wrap:wrap}
.seller-meta span{display:inline-flex;align-items:center;gap:5px}
.seller-meta i{font-size:11px;color:var(--text-muted)}
.ticket-howitworks{padding:16px 18px}
.ticket-howitworks h3{margin:0 0 10px;font-size:1.05rem}
.howitworks-steps{display:flex;flex-direction:column;gap:10px}
.howitworks-step{display:flex;gap:10px;align-items:flex-start}
.howitworks-num{width:22px;height:22px;border-radius:50%;background-color:var(--primary-light);color:var(--primary);font-weight:700;display:grid;place-items:center;flex-shrink:0;font-size:11px}
.howitworks-step strong{display:block;color:var(--text-primary);font-size:13px}
.howitworks-step p{margin:2px 0 0;font-size:12px;color:var(--text-secondary);line-height:1.4}
@media(min-width:640px){.ticket-howitworks{padding:20px 22px}.ticket-howitworks h3{font-size:1.1rem;margin-bottom:12px}.howitworks-steps{gap:12px}.howitworks-num{width:25px;height:25px;font-size:12px}.howitworks-step strong{font-size:13.5px}.howitworks-step p{font-size:12.5px}}

.trust-mini-row{display:flex;flex-wrap:wrap;gap:7px 14px;justify-content:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-subtle)}
.trust-mini-row span{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}
.trust-mini-row i{color:var(--success);font-size:11px}

.scarcity-badge{display:inline-flex;align-items:center;gap:6px;background-color:var(--danger-light);color:var(--danger-text);border:1px solid rgba(242,96,77,.35);font-size:11.5px;font-weight:800;padding:6px 13px;border-radius:var(--radius-full);margin-bottom:12px}
.urgency-badge{display:inline-flex;align-items:center;gap:6px;background-color:var(--warning-light);color:var(--warning-text);border:1px solid rgba(240,169,62,.35);font-size:11.5px;font-weight:800;padding:6px 13px;border-radius:var(--radius-full);margin-bottom:12px}

.btn-urgent{border:1px solid rgba(255,255,255,.35)}

.price-emphasis{background-color:var(--accent-light);border:1px solid rgba(255,90,54,.35);border-radius:var(--radius-md);padding:2px}

.promo-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s ease both}
.promo-modal-backdrop[hidden]{display:none}
.promo-modal-card{position:relative;width:100%;max-width:440px;max-height:90vh;background:var(--bg-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--border-subtle);animation:scaleIn .3s var(--ease-out) both;display:flex;flex-direction:column}
.promo-modal-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background var(--dur-fast) ease;z-index:2;-webkit-tap-highlight-color:transparent}
.promo-modal-close:hover{background:rgba(0,0,0,.7)}
.promo-modal-img-link{display:block;cursor:pointer}
.promo-modal-img{display:block;width:100%;max-height:72vh;object-fit:contain;background:var(--bg-dark)}
.promo-modal-brand{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-size:11.5px;color:var(--text-muted);border-top:1px solid var(--border-subtle);flex-shrink:0}
.promo-modal-brand .brand-mark{width:20px;height:20px;flex-shrink:0}
.promo-modal-brand strong{color:#fff}

.pagination-nav{display:flex;align-items:center;justify-content:center;gap:8px;margin:36px 0 8px;flex-wrap:wrap}
.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 15px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-weight:700;font-size:13.5px;text-decoration:none;transition:border-color var(--dur-fast) ease,color var(--dur-fast) ease;-webkit-tap-highlight-color:transparent}
.pagination-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}
.pagination-btn.is-current{background:var(--primary);border-color:var(--primary);color:#fff;cursor:default}
.pagination-btn.is-current:hover{color:#fff}
.pagination-btn.is-disabled{opacity:.35;pointer-events:none}
.pagination-ellipsis{color:var(--text-muted);font-weight:700;padding:0 2px;user-select:none}
