/* ===== Afterglow — shared stylesheet ===== */
:root{
  --bg: #0a0a0e;
  --surface: #131318;
  --surface-raised: #1a1a22;
  --ink: #f5f3f7;
  --ink-soft: #a8a3b5;
  --ink-faint: #6b6779;
  --accent: #ff2d87;
  --accent-cyan: #00e5ff;
  --accent-soft: rgba(255,45,135,0.14);
  --gold: #e8c468;
  --line: #232330;
  --maxw: 1180px;
}
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
body{
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  background-image: radial-gradient(circle at 15% 0%, rgba(255,45,135,0.08), transparent 40%), radial-gradient(circle at 85% 15%, rgba(0,229,255,0.06), transparent 40%);
  background-attachment: fixed;
}
h1,h2,h3{
  font-family: 'Anton', sans-serif;
  font-weight: 400;
  line-height: 1.0;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.01em;
}
.mono{ font-family: 'Azeret Mono', monospace; }
a{ color: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{ outline: 2px solid var(--accent-cyan); outline-offset: 3px; }
.wrap{ max-width: var(--maxw); margin: 0 auto; padding: 0 26px; }

/* TICKER */
.ticker-bar{ background: var(--accent); color: #14020c; overflow: hidden; white-space: nowrap; padding: 9px 0; }
.ticker-track{ display: inline-block; animation: ticker 22s linear infinite; font-family:'Azeret Mono',monospace; font-size:0.78rem; font-weight:700; letter-spacing:0.04em; }
.ticker-track span{ margin: 0 22px; }
@keyframes ticker{ 0%{ transform: translateX(0); } 100%{ transform: translateX(-50%); } }

/* NAV */
header.site{ position: sticky; top: 0; z-index: 60; background: rgba(10,10,14,0.85); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
nav{ display:flex; align-items:center; justify-content:space-between; padding: 20px 0; }
.logo{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-family:'Anton',sans-serif; font-size:1.5rem; letter-spacing:0.03em; }
.logo .mark{ width:10px; height:10px; border-radius:50%; background: var(--accent); box-shadow: 0 0 12px 2px var(--accent); }
.nav-links{ display:flex; gap:32px; list-style:none; margin:0; padding:0; }
.nav-links a{ text-decoration:none; font-size:0.84rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-soft); transition: color .15s ease; }
.nav-links a:hover, .nav-links a.current{ color: var(--accent-cyan); }
.nav-cta{ font-family:'Azeret Mono',monospace; font-size:0.8rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; text-decoration:none; color: var(--bg); background: var(--accent); padding:11px 20px; border-radius:100px; white-space:nowrap; transition: box-shadow .15s ease, background .15s ease; }
.nav-cta:hover{ box-shadow: 0 0 20px 2px rgba(255,45,135,0.5); }
@media (max-width:860px){ .nav-links{ display:none; } }

/* BUTTONS */
.btn{ display:inline-flex; align-items:center; gap:8px; font-family:'Azeret Mono',monospace; font-size:0.82rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; text-decoration:none; padding:14px 24px; border-radius:100px; transition: box-shadow .15s ease, background .15s ease, transform .1s ease; border: 1px solid transparent; }
.btn-neon{ background: var(--accent); color:#14020c; }
.btn-neon:hover{ box-shadow: 0 0 24px 3px rgba(255,45,135,0.55); transform: translateY(-1px); }
.btn-line{ background: transparent; color: var(--ink); border-color: var(--line); }
.btn-line:hover{ border-color: var(--accent-cyan); color: var(--accent-cyan); }
.btn-full{ width:100%; justify-content:center; }
.btn:active{ transform: scale(0.98); }
.btn:disabled{ opacity:0.5; cursor:not-allowed; }

/* HERO */
.hero{ padding: 74px 0 64px; text-align:center; }
.hero-eyebrow{ font-family:'Azeret Mono',monospace; font-size:0.8rem; color: var(--accent-cyan); letter-spacing:0.05em; text-transform:uppercase; margin-bottom:20px; display:inline-flex; align-items:center; gap:8px; }
.hero-eyebrow .live-dot{ width:7px; height:7px; border-radius:50%; background: var(--accent); box-shadow: 0 0 8px 1px var(--accent); animation: blink 1.6s ease-in-out infinite; }
@keyframes blink{ 0%,100%{ opacity:1; } 50%{ opacity:0.3; } }
.hero h1{ font-size: clamp(3rem, 9vw, 6.5rem); text-shadow: 0 0 40px rgba(255,45,135,0.35); }
.hero h1 .cyan{ color: var(--accent-cyan); text-shadow: 0 0 30px rgba(0,229,255,0.4); }
.hero .lead{ margin: 20px auto 0; font-size:1.05rem; color:var(--ink-soft); max-width:46ch; }
.hero-ctas{ margin-top:32px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* PAGE HEADER */
.page-header{ padding: 60px 0 46px; text-align:center; border-bottom:1px solid var(--line); }
.page-header .hero-eyebrow{ justify-content:center; display:inline-flex; }
.page-header h1{ font-size: clamp(2.2rem, 5vw, 3.6rem); }
.page-header p{ margin:16px auto 0; color:var(--ink-soft); max-width:52ch; }

/* SECTIONS */
section{ padding: 68px 0; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:36px; flex-wrap:wrap; gap:16px; }
.section-head h2{ font-size: clamp(1.8rem, 3.6vw, 2.5rem); }
.section-head p{ color:var(--ink-soft); font-size:0.96rem; margin:0; max-width:44ch; }
.view-all{ font-family:'Azeret Mono',monospace; font-size:0.8rem; font-weight:700; color: var(--accent-cyan); text-decoration:none; text-transform:uppercase; letter-spacing:0.03em; }
.view-all:hover{ text-decoration:underline; }

/* EVENT CARDS */
.event-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:20px; }
@media (max-width:760px){ .event-grid{ grid-template-columns:1fr; } }
.event-card{ background: var(--surface); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.event-visual{ height:150px; position:relative; display:flex; align-items:flex-end; padding:16px; }
.event-visual .date-badge{ background: rgba(10,10,14,0.75); backdrop-filter: blur(4px); border:1px solid rgba(255,255,255,0.15); border-radius:10px; padding:8px 12px; }
.event-visual .date-badge .day{ font-family:'Anton',sans-serif; font-size:1.4rem; line-height:1; }
.event-visual .date-badge .mon{ font-family:'Azeret Mono',monospace; font-size:0.65rem; color:var(--ink-soft); text-transform:uppercase; }
.event-body{ padding:20px 22px 24px; }
.event-body .night-tag{ font-family:'Azeret Mono',monospace; font-size:0.72rem; color: var(--accent-cyan); text-transform:uppercase; letter-spacing:0.04em; }
.event-body h3{ font-size:1.4rem; margin-top:6px; text-transform:none; }
.event-body p{ margin-top:8px; font-size:0.88rem; color:var(--ink-soft); }
.event-body .event-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:16px; }
.event-body .price-from{ font-family:'Azeret Mono',monospace; font-size:0.8rem; color:var(--gold); }
.event-link{ font-family:'Azeret Mono',monospace; font-size:0.78rem; font-weight:700; text-decoration:none; color:var(--accent); text-transform:uppercase; letter-spacing:0.02em; }
.event-link:hover{ text-decoration:underline; }

/* GALLERY */
.gallery-strip{ display:grid; grid-template-columns: repeat(6, 1fr); gap:8px; }
@media (max-width:760px){ .gallery-strip{ grid-template-columns: repeat(3,1fr); } }
.gallery-tile{ aspect-ratio: 3/4; border-radius:10px; position:relative; overflow:hidden; }
.gallery-tile span{ position:absolute; bottom:8px; left:8px; font-family:'Azeret Mono',monospace; font-size:0.6rem; color:rgba(255,255,255,0.85); text-transform:uppercase; }

/* TABLE MAP — signature element */
.venue-map{ background: var(--surface); border:1px solid var(--line); border-radius:18px; padding:28px; }
.venue-map svg{ width:100%; height:auto; }
.map-legend{ display:flex; gap:20px; flex-wrap:wrap; margin-top:18px; font-family:'Azeret Mono',monospace; font-size:0.74rem; color:var(--ink-soft); }
.map-legend .dot{ width:9px; height:9px; border-radius:2px; display:inline-block; margin-right:6px; }

/* TABLE TIERS */
.tier-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:18px; }
@media (max-width:860px){ .tier-grid{ grid-template-columns:1fr; } }
.tier-card{ background: var(--surface); border:1.5px solid var(--line); border-radius:16px; padding:26px; cursor:pointer; transition: border-color .15s ease, background .15s ease; position:relative; }
.tier-card input{ position:absolute; opacity:0; pointer-events:none; }
.tier-card.selected{ border-color: var(--accent); background: linear-gradient(180deg, rgba(255,45,135,0.08), transparent); }
.tier-card .tier-name{ font-family:'Anton',sans-serif; font-size:1.3rem; text-transform:uppercase; }
.tier-card .tier-badge{ font-family:'Azeret Mono',monospace; font-size:0.65rem; color:var(--gold); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:8px; display:block; }
.tier-card .tier-price{ font-family:'Azeret Mono',monospace; font-size:1.6rem; color:var(--accent-cyan); margin-top:10px; }
.tier-card .tier-price span{ font-size:0.8rem; color:var(--ink-faint); }
.tier-card ul{ list-style:none; padding:0; margin: 16px 0 0; display:flex; flex-direction:column; gap:8px; font-size:0.85rem; color:var(--ink-soft); }
.tier-card li::before{ content:'—'; color:var(--accent); margin-right:8px; }

/* BOOKING FORM */
.book-grid{ display:grid; grid-template-columns: 1.1fr 0.9fr; gap:50px; }
@media (max-width:900px){ .book-grid{ grid-template-columns:1fr; gap:34px; } }
.book-form .field{ margin-bottom:18px; }
.book-form label{ display:block; font-family:'Azeret Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em; color:var(--ink-soft); margin-bottom:8px; }
.book-form input, .book-form select, .book-form textarea{ width:100%; font-family:'Plus Jakarta Sans',sans-serif; font-size:0.95rem; padding:13px 14px; border-radius:10px; border:1px solid var(--line); background: var(--surface-raised); color:var(--ink); }
.book-form textarea{ resize:vertical; }
.book-form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:520px){ .book-form .form-row{ grid-template-columns:1fr; } }
.book-status{ margin-top:14px; font-size:0.85rem; min-height:1.2em; }
.book-status.success{ color: var(--accent-cyan); }
.book-status.error{ color: var(--accent); }

.book-summary{ background: var(--surface); border:1px solid var(--line); border-radius:16px; padding:26px; align-self:start; }
.book-summary h3{ font-size:1.15rem; text-transform:none; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; }
.book-summary .row{ display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px dashed var(--line); font-size:0.9rem; }
.book-summary .row .label{ color:var(--ink-faint); }
.book-summary .note{ margin-top:16px; font-size:0.8rem; color:var(--ink-faint); }

/* FAQ */
.faq-item{ border-bottom:1px solid var(--line); padding:22px 0; }
.faq-item h3{ font-size:1.02rem; font-weight:700; font-family:'Plus Jakarta Sans',sans-serif; text-transform:none; }
.faq-item p{ margin-top:10px; color:var(--ink-soft); font-size:0.92rem; }

/* CONTACT INFO */
.info-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
@media (max-width:760px){ .info-grid{ grid-template-columns:1fr; } }
.info-card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:24px; }
.info-card h4{ font-family:'Azeret Mono',monospace; font-size:0.72rem; color:var(--accent-cyan); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:10px; }
.info-card p{ margin:0; font-size:0.95rem; color:var(--ink); }

footer{ border-top:1px solid var(--line); padding: 44px 0; }
.footer-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; }
.footer-col h4{ font-family:'Azeret Mono',monospace; font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:14px; }
.footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.footer-col a{ text-decoration:none; font-size:0.9rem; color:var(--ink-soft); }
.footer-col a:hover{ color: var(--accent-cyan); }
.footer-bottom{ margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:0.78rem; color:var(--ink-faint); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
