:root {
    --bg: #0b1020;
    --panel: #121a33;
    --gold: #f4d35e;
    --jade1: #141414;
    --jade2: #101010;
    --bulb: 26px;
}
*{box-sizing:border-box}
html,body{height:100%}
body {
    margin: 0;
    color: #e5e7eb;
    background: #121113;
    font-family: 'Stack Sans Text', system-ui, Segoe UI, Roboto, Arial;
    padding-top: 70px;
    padding-bottom: 110px;
    scroll-behavior: smooth;
}


.container{max-width:1100px;margin:0 auto;padding:0 1rem}
.navbar{background:linear-gradient(180deg,#0c1226,#0b1120);border-bottom:2px solid rgba(244,211,94,.35);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.navbar .navbar-brand{color:var(--gold)} .navbar .nav-link{color:#cbd5e1}.navbar .nav-link:hover{color:#fff}
.hero-grad{background:linear-gradient(135deg,#0f172a,#111827)}
.carousel-caption{text-align:left;left:5%;right:5%;bottom:2rem}
.caption-card{background:rgba(7,11,24,.55);border:1px solid rgba(244,211,94,.35);border-radius:1rem;padding:1rem 1.25rem}
.separator{height:18px;background:radial-gradient(circle at 9px 9px,#ffd166 3px,transparent 4px) 0 0/36px 18px,radial-gradient(circle at 27px 9px,#ffd166 3px,transparent 4px) 0 0/36px 18px,linear-gradient(90deg,#2a1f00,#6b4e00,#2a1f00);border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(0,0,0,.6)}
.text-gold{color:var(--gold)}
.card-plain{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.25));border:1px solid rgba(244,211,94,.25);border-radius:.9rem;color:#e5e7eb}
.list-group-item{background:transparent;color:#cbd5e1;border-color:rgba(244,211,94,.15)}
.jade-panel{
  border-radius:14px;
  background:
    radial-gradient(800px 300px at 50% 0%, rgba(255,255,255,.06), transparent 60%),
    radial-gradient(600px 200px at 50% 100%, rgba(0,0,0,.30), transparent 60%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.04) 0 2px, rgba(255,255,255,0) 2px 4px),
    radial-gradient(circle at 30% 20%, var(--jade1), var(--jade2) 60%, #071f13 100%);
  padding: 1.25rem;
  border:1px solid rgba(244,211,94,.35);
  box-shadow: inset 0 2px 12px rgba(0,0,0,.35), 0 12px 24px rgba(0,0,0,.25);
}
.ticket-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.7rem}
@media (max-width:992px){.ticket-grid{grid-template-columns:repeat(4,1fr)}}
.ticket{
  position:relative; aspect-ratio:1/1; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  font-weight:900;
  border:2px solid rgba(244,211,94,.35);
  box-shadow:inset 0 0 0 4px rgba(0,0,0,.25), inset 0 0 18px rgba(0,0,0,.35), 0 6px 18px rgba(0,0,0,.35);
  text-shadow:0 1px 0 rgba(0,0,0,.45);
  transition:transform .15s ease, box-shadow .15s ease
}
.ticket:hover{transform:translateY(-2px); box-shadow:inset 0 0 0 4px rgba(0,0,0,.25), 0 10px 22px rgba(0,0,0,.45)}
.ticket span{font-size:.72rem;font-weight:700;opacity:.95;margin-top:.1rem}
.t-free {
    background: radial-gradient(circle at 50% 40%,#00d567 0%,#00713d 70%);
    color: #d1fae5
}
.t-res {background:radial-gradient(circle at 50% 40%,#7a4c00 0%,#402701 70%);color:#fde68a;cursor:not-allowed}
.t-paid{background:radial-gradient(circle at 50% 40%,#7a0b0b 0%,#3b0505 70%);color:#fecaca;cursor:not-allowed}
.t-selected{background:linear-gradient(180deg,#2563eb,#1d4ed8)!important;color:#fff!important;border-color:#93c5fd!important;box-shadow:0 0 22px rgba(37,99,235,.55), inset 0 0 18px rgba(255,255,255,.06)}
.legend{color:#cbd5e1}
.legend i{display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:.4rem}
.legend .free{background:#16a34a}.legend .res{background:#f59e0b}.legend .paid{background:#ef4444}

/* Marco de luces exterior sin línea + esquinas sin superposición */
.panel-lights{ position: relative; margin: 32px auto; }
.panel-lights .bulb-frame{
  position:absolute; inset:-32px; pointer-events:none; z-index:2; border-radius:34px;
}
.panel-lights .bulb-frame .b{
  position:absolute; display:block; opacity:.85; filter: drop-shadow(0 2px 2px rgba(0,0,0,.35));
  animation: bulbsGlow 2.4s ease-in-out infinite;
}
.panel-lights .bulb-frame .top,
.panel-lights .bulb-frame .bottom{
  left: calc(var(--bulb)/2); right: calc(var(--bulb)/2); height: var(--bulb); border-radius: var(--bulb);
  background: radial-gradient(circle, #ffe8a8 0 7px, #b97706 8px 11px, transparent 12px) center/48px 24px repeat-x;
}
.panel-lights .bulb-frame .top{ top:0; } .panel-lights .bulb-frame .bottom{ bottom:0; }
.panel-lights .bulb-frame .left,
.panel-lights .bulb-frame .right{
  top: calc(var(--bulb)/2); bottom: calc(var(--bulb)/2); width: var(--bulb); border-radius: var(--bulb);
  background: radial-gradient(circle, #ffe8a8 0 7px, #b97706 8px 11px, transparent 12px) center/24px 48px repeat-y;
}
.panel-lights .bulb-frame .left{ left:0; } .panel-lights .bulb-frame .right{ right:0; }
.panel-lights .bulb-frame::before,
.panel-lights .bulb-frame::after{
  content:""; position:absolute; width:var(--bulb); height:var(--bulb); border-radius:50%;
  background: radial-gradient(circle, #ffe8a8 0 7px, #b97706 8px 11px, transparent 12px);
  filter: drop-shadow(0 2px 2px rgba(0,0,0,.35));
}
.panel-lights .bulb-frame::before{ top:0; left:0; }
.panel-lights .bulb-frame::after { top:0; right:0; }
.panel-lights .bulb-frame .corner-bl,
.panel-lights .bulb-frame .corner-br{
  position:absolute; width:var(--bulb); height:var(--bulb); border-radius:50%;
  background: radial-gradient(circle, #ffe8a8 0 7px, #b97706 8px 11px, transparent 12px);
  filter: drop-shadow(0 2px 2px rgba(0,0,0,.35));
}
.panel-lights .bulb-frame .corner-bl{ bottom:0; left:0; }
.panel-lights .bulb-frame .corner-br{ bottom:0; right:0; }
@keyframes bulbsGlow{ 0%,100%{opacity:.6} 50%{opacity:1} }
#boletos > *:not(.bulb-frame){ position:relative; z-index:1; }

.countdown-fixed{position:fixed;left:0;right:0;bottom:0;z-index:1040;background:linear-gradient(90deg,#f7d774,#f4c84d,#f7d774);border-top:2px solid rgba(0,0,0,.25);box-shadow:0 -10px 30px rgba(0,0,0,.45);color:#111}
.cd-item{min-width:110px;text-align:center}.cd-num{font-weight:900;font-size:1.6rem;line-height:1;color:#111;text-shadow:0 1px 0 rgba(255,255,255,.6)}.cd-lbl{font-size:.75rem;opacity:.9}
.form-control,.form-select{background:var(--panel);color:#e5e7eb;border:1px solid rgba(244,211,94,.2)}
.form-control::placeholder{color:#94a3b8}
.btn-outline-secondary,.btn-outline-primary{border-color:rgba(244,211,94,.35);color:#e5e7eb}
.btn-outline-primary:hover{background:rgba(244,211,94,.15)}
.btn-outline-success{border-color:#10b981;color:#a7f3d0}.btn-outline-success:hover{background:rgba(16,185,129,.12)}
.fab-whats{position:fixed;right:18px;bottom:120px;z-index:1050;width:62px;height:62px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 30px rgba(0,0,0,.35),0 0 18px rgba(37,211,102,.6);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}

#pager .btn { min-width: 36px; }
#pager input::-webkit-outer-spin-button,
#pager input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#pager input[type=number] { -moz-appearance: textfield; }
/* Logo centrado debajo del hero */
.brand-logo {
    max-width: 65px;
    height: auto;
    filter: drop-shadow(0 8px 18px rgba(0,0,0,.35));
    image-rendering: -webkit-optimize-contrast;
}

/* Footer con espacio para el contador fijo */
.site-footer {
    background: linear-gradient(180deg, #0b1120, #0a0f1b);
    border-top: 2px solid rgba(244,211,94,.25);
    color: #cbd5e1;
    padding: 18px 0;
    text-align: center;
    /* deja espacio para el countdown fijo + respiración extra */
    padding-bottom: calc(18px + 110px);
}

    .site-footer a {
        color: var(--gold);
        text-decoration: none;
    }

        .site-footer a:hover {
            text-decoration: underline;
        }

/* === Scroll infinito === */
.inf-loader{display:flex;justify-content:center;align-items:center;padding:14px;margin-top:8px;font-weight:600;opacity:.75}
.inf-loader.d-none{display:none}
.inf-sentinel{width:100%;height:1px}
/* === Scroll infinito === */
.inf-loader {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 14px;
    margin-top: 8px;
    font-weight: 600;
    opacity: .75
}

    .inf-loader.d-none {
        display: none
    }

.inf-sentinel {
    width: 100%;
    height: 1px
}
/* Botón fijo de reserva (sin ícono) */
.reserve-fab {
    position: fixed;
    right: 20px;
    bottom: 95px;
    z-index: 1100;
    background: #ffc107;
    color: #0b1120;
    text-decoration: none;
    padding: 12px 18px;
    border-radius: 999px;
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(0,0,0,.35);
}

    .reserve-fab:hover {
        filter: brightness(1.05);
    }

@media (max-width:576px) {
    .reserve-fab {
        left: 45%;
        right: auto;
        transform: translateX(-50%);
        bottom: 165px;
    }
}
/* === Título principal con brillo azul suave === */
.hero-title {
    font-family: 'Stack Sans Text', sans-serif;
    font-weight: 700;
    color: #ffffff; /* azul claro base */
    text-align: center;
    text-shadow: 0 0 8px rgba(0,180,255,0.5), 0 0 10px rgba(0,180,255,0.3), 0 0 20px rgba(0,180,255,0.2);
}

/* Animación opcional de pulso de luz suave (puedes quitarla si no la quieres) */
@keyframes neonSoftPulse {
    0%, 100% {
        text-shadow: 0 0 4px rgba(0,180,255,0.5), 0 0 10px rgba(0,180,255,0.3), 0 0 20px rgba(0,180,255,0.2);
    }

    50% {
        text-shadow: 0 0 6px rgba(0,200,255,0.6), 0 0 14px rgba(0,200,255,0.4), 0 0 28px rgba(0,200,255,0.25);
    }
}

.hero-title {
    animation: neonSoftPulse 3s ease-in-out infinite alternate;
}

/* === Texto secundario centrado sin neón === */
.hero-text {
    font-family: 'Stack Sans Text', sans-serif;
    font-weight: 400;
    color: #e5e7eb;
    text-align: center;
    text-shadow: none;
    opacity: 0.9;
    line-height: 1.4;
}

/* === Contenedor del hero === */
.hero-container {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
