/* ==========================================================================
   JS Entertainment — Premium Events Platform
   Author: Senior Web Developer for Mr. Williams
   ========================================================================== */

:root{
  --gold:#c9a464;
  --gold-2:#e8c98a;
  --gold-soft:#a8854b;
  --bg-0:#05060a;
  --bg-1:#0a0c12;
  --bg-2:#101218;
  --bg-3:#171a22;
  --line:rgba(201,164,100,.22);
  --line-soft:rgba(255,255,255,.08);
  --text:#f4eee0;
  --text-dim:#bfb6a4;
  --text-mute:#8b8579;
  --danger:#ff5b6b;
  --success:#3ddc97;
  --shadow-lg:0 20px 60px rgba(0,0,0,.55);
  --shadow-md:0 10px 30px rgba(0,0,0,.45);
  --r-lg:18px;
  --r-md:12px;
  --r-sm:8px;
  --t-fast:.2s ease;
  --t:.35s cubic-bezier(.2,.8,.2,1);
  --t-slow:.7s cubic-bezier(.2,.8,.2,1);
}

/* ============================ RESET / BASE ============================ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Inter','Open Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(201,164,100,.10), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(201,164,100,.06), transparent 60%),
    var(--bg-0);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--gold);text-decoration:none;transition:color var(--t-fast)}
a:hover{color:var(--gold-2)}
h1,h2,h3,h4,h5,h6{
  font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;
  font-weight:700;
  letter-spacing:.4px;
  margin:0 0 .6em;
  line-height:1.15;
  color:var(--text);
}
p{margin:0 0 1em;color:var(--text-dim)}
.section{padding:80px 0;position:relative}
.container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 20px;
}

/* ============================ NAVBAR ============================ */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:14px 0;
  background:rgba(8,9,14,.55);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
  transition:background var(--t),padding var(--t);
}
.navbar.scrolled{background:rgba(5,6,10,.85);padding:10px 0}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Playfair Display',Georgia,serif;
  color:var(--gold);font-weight:800;font-size:1.55rem;letter-spacing:.18em;
}
.brand .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.nav-links a{color:var(--text);font-weight:500;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}
.nav-links a:hover{color:var(--gold)}
.nav-toggle{display:none;background:transparent;border:1px solid var(--line);color:var(--text);width:42px;height:42px;border-radius:10px;cursor:pointer}
.nav-toggle:focus-visible{outline:2px solid var(--gold)}

/* Basket / cart icon in nav */
.nav-cart{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.04);border:1px solid var(--line-soft);
  color:var(--text)!important;font-size:1.15rem;
  transition:all var(--t-fast);
  text-decoration:none;
}
.nav-cart:hover{border-color:var(--gold);color:var(--gold)!important;background:rgba(201,164,100,.08)}
.nav-cart .nav-cart-count{
  position:absolute;top:-4px;right:-4px;
  min-width:20px;height:20px;padding:0 5px;border-radius:999px;
  background:var(--gold);color:#1a1206;
  font-family:'Inter',sans-serif;font-weight:800;font-size:.7rem;
  display:inline-flex;align-items:center;justify-content:center;
  letter-spacing:0;line-height:1;border:2px solid var(--bg-0);
  box-shadow:0 2px 8px rgba(201,164,100,.45);
  animation:cartPop .35s cubic-bezier(.2,.8,.2,1);
}
.nav-cart .nav-cart-label{display:none}
@keyframes cartPop{0%{transform:scale(0)}60%{transform:scale(1.2)}100%{transform:scale(1)}}
@media (max-width:900px){
  .nav-cart{width:auto;height:auto;border-radius:8px;padding:8px 14px;justify-content:flex-start;gap:10px;background:transparent;border:1px solid var(--line-soft)}
  .nav-cart .nav-cart-label{display:inline;font-weight:600;font-size:.92rem;letter-spacing:.06em;text-transform:uppercase}
  .nav-cart .nav-cart-count{position:static;margin-left:auto}
}

@media (max-width:900px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  .nav-links{
    position:absolute;top:64px;right:14px;left:14px;
    flex-direction:column;align-items:flex-start;gap:6px;
    background:rgba(8,9,14,.96);backdrop-filter:blur(14px);
    border:1px solid var(--line);border-radius:14px;
    padding:14px 16px 22px;
    transform:translateY(-8px);opacity:0;pointer-events:none;
    transition:opacity var(--t),transform var(--t);
    max-height:calc(100vh - 80px);overflow-y:auto;
  }
  .nav-links.open{opacity:1;transform:translateY(0);pointer-events:auto}
  /* Dividers live on the <li>, NOT the <a>, so they can't clip the pill's border */
  .nav-links li{
    width:100%;
    overflow:visible;
    border-bottom:1px solid var(--line-soft);
  }
  .nav-links li:last-child{border-bottom:none}
  .nav-links a{display:block;padding:12px 6px;width:100%}
  /* CTA row: no divider on its own li so the pill stands alone with full rounded edges */
  .nav-links li.has-cta{border-bottom:none}
  .nav-links li.has-cta a.btn{
    display:inline-flex;
    width:auto;
    margin:18px 0 24px;
    padding:14px 30px;
    line-height:1.1;
    border:1px solid var(--gold);
  }
  /* Basket already carries its own outline */
  .nav-links .nav-cart-li{margin-top:6px;border-top:none;padding-top:0}
  .nav-cart{padding:12px 14px;min-height:48px}
}

/* ============================ BUTTONS ============================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-weight:600;font-size:.92rem;letter-spacing:.1em;
  text-transform:uppercase;cursor:pointer;
  padding:13px 26px;border-radius:50px;border:1px solid transparent;
  transition:transform var(--t),box-shadow var(--t),background var(--t),color var(--t),border-color var(--t);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-soft) 100%);
  color:#1b140a;border-color:var(--gold);
  box-shadow:0 10px 25px rgba(201,164,100,.25);
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(201,164,100,.45);color:#0a0a0a}
.btn-ghost{
  background:transparent;color:var(--text);border-color:var(--line);
}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-outline{background:transparent;color:var(--gold);border-color:var(--gold)}
.btn-outline:hover{background:var(--gold);color:#0a0a0a}
.btn-lg{padding:16px 34px;font-size:1rem}
.btn-sm{padding:9px 18px;font-size:.8rem}
.btn-block{width:100%}

/* ============================ HERO ============================ */
.hero{
  position:relative;min-height:92vh;display:flex;align-items:center;
  padding:120px 0 80px;overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(1100px 600px at 80% 110%, rgba(201,164,100,.14), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(201,164,100,.08), transparent 60%),
    linear-gradient(180deg, #07080d 0%, #04050a 100%);
}
/* Soft branded photo overlay — kept very light so the dark theme stays dominant */
/* Slot kept for any future tinting work; image now handled by .hero-bg below. */
.hero::before{
  content:"";position:absolute;inset:0;
  z-index:-2;
  pointer-events:none;
}
/* Top + bottom vignette to keep typography crisp over the photo */
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(5,6,10,.40) 0%, rgba(5,6,10,.0) 25%, rgba(5,6,10,.0) 60%, rgba(5,6,10,.85) 100%),
    radial-gradient(800px 400px at 80% 100%,rgba(201,164,100,.18),transparent 60%),
    radial-gradient(600px 300px at 0% 0%,rgba(201,164,100,.10),transparent 70%);
}

/* ============= HERO SLIDESHOW =============
   5 stacked photos behind the hero text. JS rotates `.is-active`
   every 3 seconds; identical opacity + blend on every slide. */
.hero-bg{
  position:absolute;inset:0;z-index:-2;
  pointer-events:none;overflow:hidden;
}
.hero-bg-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  opacity:0;
  mix-blend-mode:screen;
  filter:saturate(1.1) contrast(1.05);
  transform:translate3d(40px,0,0) scale(1.02);
  transition:opacity 1.4s ease, transform 1.6s ease;
  will-change:opacity, transform;
}
.hero-bg-img.is-active{
  opacity:.18;
  transform:translate3d(0,0,0) scale(1);
}
@media (max-width:640px){
  /* On mobile, ease the photos back a touch more so the text stays the hero */
  .hero-bg-img.is-active{opacity:.14}
}
@media (prefers-reduced-motion: reduce){
  .hero-bg-img{transition:opacity .4s ease;transform:none}
  .hero-bg-img.is-active{transform:none}
}
.hero-content{max-width:780px}
/* Desktop: widen the hero a touch so "Secure your section." sits on one line. */
@media (min-width:992px){
  .hero-content{max-width:960px}
  .hero h1 .hl2{white-space:nowrap}
}
.hero .eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);
  margin-bottom:18px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;
  background:rgba(201,164,100,.05);
}
.hero h1{
  font-size:clamp(2.4rem,6vw,5rem);
  margin-bottom:18px;
  line-height:1.05;letter-spacing:.5px;
}
.hero h1 .accent{
  background:linear-gradient(135deg,var(--gold-2),var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.lead{
  color:var(--text);font-size:clamp(1rem,1.6vw,1.18rem);
  max-width:620px;margin-bottom:32px;
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-stats{
  display:flex;gap:36px;margin-top:60px;flex-wrap:wrap;
}
.hero-stats .stat strong{display:block;font-family:'Playfair Display',serif;color:var(--gold);font-size:1.7rem;line-height:1}
.hero-stats .stat span{color:var(--text-mute);text-transform:uppercase;letter-spacing:.18em;font-size:.7rem}

/* Page hero (smaller, for inner pages) */
.page-hero{
  position:relative;padding:160px 0 60px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(900px 400px at 50% 0%,rgba(201,164,100,.18),transparent 60%);
  z-index:-1;
}
.page-hero .eyebrow{font-size:.78rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);display:inline-block;margin-bottom:12px}
.page-hero h1{font-size:clamp(2.2rem,5.5vw,4.6rem);margin-bottom:14px}
.page-hero p{max-width:720px;color:var(--text-dim)}

/* ============================ SECTION HEADINGS ============================ */
.section-head{text-align:center;max-width:740px;margin:0 auto 50px}
.section-head .eyebrow{
  display:inline-block;font-size:.78rem;letter-spacing:.36em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px;
}
.section-head h2{font-size:clamp(2rem,4.4vw,3rem);margin-bottom:14px}
.section-head p{color:var(--text-dim);font-size:1.05rem}

/* ============================ EVENTS CAROUSEL ============================ */
.events{position:relative;padding-bottom:90px}
.carousel-wrap{position:relative}
.carousel-track{
  display:flex;gap:24px;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:10px 4px 30px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track .event-card{
  flex:0 0 calc((100% - 48px)/3);
  scroll-snap-align:start;
}
@media (max-width:991px){
  .carousel-track .event-card{flex:0 0 calc((100% - 24px)/2)}
}
@media (max-width:640px){
  .carousel-track{gap:18px;padding-left:14px;padding-right:14px}
  .carousel-track .event-card{flex:0 0 86%;}
}

.carousel-arrows{
  /* Aligned with the centre of the card image (~120px from track top), not the
     vertical centre of the whole card. This keeps the arrows clear of the
     date/title/price area that sits under the image. */
  position:absolute;top:130px;left:0;right:0;display:flex;justify-content:space-between;
  pointer-events:none;transform:translateY(-50%);padding:0 4px;z-index:5;
}
@media (max-width:991px){.carousel-arrows{top:120px}}
@media (max-width:640px){.carousel-arrows{top:96px}}
.carousel-arrow{
  pointer-events:auto;
  width:54px;height:54px;border-radius:50%;
  background:rgba(8,9,14,.85);border:1px solid var(--line);color:var(--gold);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:1.1rem;
  transition:all var(--t);
  backdrop-filter:blur(8px);
  box-shadow:var(--shadow-md);
}
.carousel-arrow:hover{background:var(--gold);color:#0a0a0a;border-color:var(--gold);transform:scale(1.06)}
.carousel-arrow:disabled{opacity:.35;cursor:not-allowed;transform:none}
.carousel-arrow.prev{margin-left:-18px}
.carousel-arrow.next{margin-right:-18px}
@media (max-width:640px){
  .carousel-arrow{width:46px;height:46px}
  .carousel-arrow.prev{margin-left:-8px}
  .carousel-arrow.next{margin-right:-8px}
}

.carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:6px}
.carousel-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.18);border:none;cursor:pointer;
  transition:all var(--t);
}
.carousel-dot.active{background:var(--gold);width:26px;border-radius:6px}

/* ============================ EVENT CARD ============================ */
.event-card{
  position:relative;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line-soft);
  border-radius:var(--r-lg);
  overflow:hidden;
  display:flex;flex-direction:column;
  min-height:480px;
  transition:transform var(--t),border-color var(--t),box-shadow var(--t);
  will-change:transform;
}
.event-card:hover{
  transform:translateY(-6px);
  border-color:var(--line);
  box-shadow:var(--shadow-lg);
}
.event-card .ec-media{
  position:relative;height:240px;overflow:hidden;
  background:#0a0c12;
}
.event-card .ec-media img,
.event-card .ec-media .ec-graphic{
  width:100%;height:100%;object-fit:cover;
  transition:transform var(--t-slow);
}
/* Ladies Night photo: shift focal point toward the top so the face is in frame */
.event-card .ec-media img.ec-img-face{object-position:center 18%}
.event-card:hover .ec-media img{transform:scale(1.06)}
.ec-graphic{
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-weight:800;
  text-align:center;padding:18px;line-height:1.05;letter-spacing:.04em;
  text-shadow:0 4px 30px rgba(0,0,0,.4);
}
.ec-graphic.pink{background:linear-gradient(135deg,#ff2d87,#ff4ea1 60%,#c91265);color:#fff;font-size:1.6rem}
.ec-graphic.yellow{background:linear-gradient(135deg,#f4c243,#f9d77a 60%,#cf9a18);color:#1a1500;font-size:1.6rem}
.ec-graphic.blue{background:linear-gradient(135deg,#7ec8ff,#a8e0ff 60%,#3da5e8);color:#0a1a2a;font-size:1.6rem}
.ec-graphic.purple{background:linear-gradient(135deg,#7e3df0,#a665ff 60%,#4e1ec1);color:#fff;font-size:1.6rem}
.ec-graphic.white{background:linear-gradient(135deg,#f5f5f5,#ffffff 60%,#cfcfcf);color:#1a1a1a;font-size:1.6rem}
.ec-graphic small{display:block;font-family:'Inter',sans-serif;font-weight:600;font-size:.7rem;letter-spacing:.36em;text-transform:uppercase;opacity:.8;margin-bottom:8px}

.event-card .ec-badge{
  position:absolute;top:14px;left:14px;
  background:rgba(0,0,0,.6);backdrop-filter:blur(6px);
  border:1px solid var(--line);
  color:var(--gold);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;
}
.event-card .ec-body{padding:22px;display:flex;flex-direction:column;flex:1;gap:8px}
.event-card .ec-date{color:var(--gold);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.event-card h3{font-size:1.45rem;margin:2px 0 4px}
.event-card .ec-loc{color:var(--text-mute);font-size:.92rem;display:inline-flex;align-items:center;gap:6px}
.event-card .ec-foot{
  margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:18px;
  border-top:1px solid var(--line-soft);
}
.event-card .ec-price{color:var(--text);font-weight:700;font-size:1.05rem}
.event-card .ec-price small{display:block;color:var(--text-mute);font-weight:500;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}

/* ============================ FORMS ============================ */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.field label{
  display:block;color:var(--text-dim);font-size:.78rem;letter-spacing:.18em;
  text-transform:uppercase;margin-bottom:8px;font-weight:600;
}
.input,.select,.textarea{
  width:100%;
  background:var(--bg-1);
  color:var(--text);
  border:1px solid var(--line-soft);
  border-radius:var(--r-md);
  padding:13px 14px;
  font:inherit;
  transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);
}
.input:focus,.select:focus,.textarea:focus{
  outline:none;border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,164,100,.18);
  background:var(--bg-2);
}
.textarea{min-height:110px;resize:vertical}
.select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:42px}

/* ============================ EVENT DETAIL ============================ */
.event-detail{padding:60px 0 90px}
.event-detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px}
@media (max-width:900px){.event-detail-grid{grid-template-columns:1fr;gap:40px}}
.detail-title{
  font-size:clamp(2.4rem,5.6vw,4.4rem);line-height:1;margin-bottom:14px;
}
.detail-title small{
  display:block;font-family:'Inter',sans-serif;color:var(--gold);
  font-weight:600;font-size:.8rem;letter-spacing:.36em;text-transform:uppercase;
  margin-bottom:10px;
}
.detail-desc{
  font-size:1.1rem;color:var(--text-dim);
  white-space:pre-line;
  margin-bottom:30px;
}
.detail-meta{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0;
}
.detail-meta div{
  background:var(--bg-2);border:1px solid var(--line-soft);
  border-radius:var(--r-md);padding:14px;
}
.detail-meta div small{display:block;color:var(--text-mute);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:4px}
.detail-meta div strong{color:var(--text);font-family:'Playfair Display',serif;font-size:1.05rem}
.booking-card{
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:28px;
  position:sticky;top:100px;
  box-shadow:var(--shadow-md);
}
.booking-card h3{font-size:1.5rem;margin-bottom:6px}
.booking-card .sub{color:var(--text-mute);margin-bottom:20px;font-size:.92rem}

/* ============================ WHITE PARTY ============================ */
.wp-hero{
  position:relative;min-height:90vh;display:flex;align-items:center;
  padding:140px 0 70px;overflow:hidden;color:#fff;
}
.wp-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.85)),
    url('img/atlonhiteparty.jpg') center/cover no-repeat;
}
.wp-hero h1{
  font-family:'Playfair Display',serif;
  font-size:clamp(3rem,8vw,6.4rem);line-height:.95;margin-bottom:14px;
  background:linear-gradient(135deg,#fff,#dcdcdc 60%,var(--gold-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.wp-hero .meta{display:flex;gap:24px;flex-wrap:wrap;margin-top:28px;color:var(--text-dim);font-size:.95rem}
.wp-hero .meta i{color:var(--gold);margin-right:6px}

.tickets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:900px){.tickets-grid{grid-template-columns:1fr}}
.ticket-card{
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line-soft);
  border-radius:var(--r-lg);
  padding:28px;
  display:flex;flex-direction:column;gap:16px;
  transition:border-color var(--t),transform var(--t),box-shadow var(--t);
  position:relative;overflow:hidden;
}
.ticket-card.featured{border-color:var(--gold);box-shadow:0 0 0 1px rgba(201,164,100,.4),var(--shadow-md)}
.ticket-card.featured::after{
  content:"Most Popular";position:absolute;top:14px;right:14px;
  background:var(--gold);color:#1a1206;padding:5px 12px;border-radius:999px;
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;
}
.ticket-card:hover{transform:translateY(-4px);border-color:var(--line)}
.ticket-card h3{font-size:1.5rem;margin-bottom:0}
.ticket-card .price{font-family:'Playfair Display',serif;font-size:2.4rem;color:var(--gold);line-height:1}
.ticket-card .price small{font-size:.8rem;color:var(--text-mute);font-family:'Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase}
.ticket-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.ticket-card ul li{color:var(--text-dim);display:flex;align-items:flex-start;gap:8px;font-size:.92rem}
.ticket-card ul li i{color:var(--gold);margin-top:3px}

.qty-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line-soft);margin-top:auto}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:50px;overflow:hidden}
.qty button{
  background:transparent;color:var(--text);border:0;width:38px;height:38px;cursor:pointer;font-size:1.1rem;
  transition:background var(--t-fast);
}
.qty button:hover{background:rgba(201,164,100,.12);color:var(--gold)}
.qty input{
  width:46px;text-align:center;background:transparent;color:var(--text);border:0;
  font:inherit;font-weight:700;
}
.qty input:focus{outline:none}

/* Summary panel */
.summary{
  position:sticky;top:100px;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;
  box-shadow:var(--shadow-md);
}
.summary h3{font-size:1.3rem;margin-bottom:16px}
.summary .row{display:flex;justify-content:space-between;color:var(--text-dim);padding:8px 0;border-bottom:1px dashed var(--line-soft);font-size:.95rem}
.summary .row.total{font-family:'Playfair Display',serif;color:var(--gold);font-size:1.4rem;border-bottom:0;padding-top:14px}
.summary .empty{color:var(--text-mute);font-style:italic;padding:14px 0}

/* Venue map */
.venue-map{
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 10px,transparent 10px 20px),
    radial-gradient(circle at 50% 60%,rgba(201,164,100,.18),transparent 70%),
    var(--bg-2);
  border:1px solid var(--line);border-radius:var(--r-lg);
  padding:30px;text-align:center;position:relative;min-height:280px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.venue-map .stage{
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:#1a1206;
  padding:14px 50px;border-radius:50px;font-weight:800;letter-spacing:.4em;text-transform:uppercase;
  margin-bottom:24px;box-shadow:0 8px 30px rgba(201,164,100,.4);
}
.venue-map .floor{
  display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;max-width:480px;margin:0 auto;
}
.venue-map .table{
  aspect-ratio:1;border-radius:50%;
  background:rgba(255,255,255,.06);border:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:center;
  color:var(--text-mute);font-size:.62rem;
}
.venue-map .table.vip{background:rgba(201,164,100,.18);border-color:var(--gold);color:var(--gold)}
.venue-map .table.std{background:rgba(255,255,255,.10);color:var(--text-dim)}
.venue-map p{margin:18px 0 0;color:var(--text-mute);font-size:.85rem;letter-spacing:.18em;text-transform:uppercase}

/* Stepper */
.steps{display:flex;justify-content:center;gap:30px;margin:0 auto 40px;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:10px;color:var(--text-mute);font-size:.86rem;letter-spacing:.14em;text-transform:uppercase}
.step .num{
  width:34px;height:34px;border-radius:50%;border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-mute);
}
.step.active{color:var(--gold)}
.step.active .num{background:var(--gold);color:#1a1206;border-color:var(--gold)}
.step.done .num{background:rgba(201,164,100,.2);color:var(--gold);border-color:var(--gold)}
.step + .step::before{content:"";display:inline-block;width:30px;height:1px;background:var(--line);margin-right:6px;align-self:center}

/* Mock card preview */
.card-preview{
  background:linear-gradient(135deg,#0a0c12,#1c1f2a);
  border:1px solid var(--line);border-radius:18px;padding:22px;
  position:relative;overflow:hidden;min-height:180px;color:#fff;
  box-shadow:var(--shadow-md);
}
.card-preview::after{content:"";position:absolute;top:-30%;right:-30%;width:300px;height:300px;background:radial-gradient(circle,rgba(201,164,100,.25),transparent 70%);}
.card-preview .number{font-family:'Courier New',monospace;font-size:1.25rem;letter-spacing:.18em;margin-top:50px}
.card-preview .row2{display:flex;justify-content:space-between;margin-top:18px;font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.18em}

/* ============================ FOOTER ============================ */
.footer{
  background:linear-gradient(180deg,var(--bg-1),#03040810);
  border-top:1px solid var(--line);
  padding:70px 0 30px;
  margin-top:60px;
}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;
}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}
.footer h4{
  font-family:'Inter',sans-serif;font-size:.78rem;color:var(--gold);
  text-transform:uppercase;letter-spacing:.32em;margin-bottom:18px;font-weight:700;
}
.footer .brand-block .brand{font-size:1.7rem;margin-bottom:14px}
.footer p{color:var(--text-dim);font-size:.95rem;line-height:1.7;margin-bottom:14px}
.footer-list{list-style:none;padding:0;margin:0}
.footer-list li{margin-bottom:10px}
.footer-list a{color:var(--text-dim);font-size:.94rem}
.footer-list a:hover{color:var(--gold)}
.address{color:var(--text-dim);font-style:normal;line-height:1.7;font-size:.94rem}
.address strong{color:var(--text);display:block;margin-bottom:4px;font-family:'Playfair Display',serif;font-weight:600;letter-spacing:.04em;font-size:1.05rem}

.socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.04);border:1px solid var(--line-soft);
  color:var(--text);font-size:1.05rem;
  transition:all var(--t);
}
.socials a:hover{
  background:var(--gold);color:#0a0a0a;border-color:var(--gold);
  transform:translateY(-2px);box-shadow:0 8px 20px rgba(201,164,100,.35);
}

.menu-cta{display:flex;flex-direction:column;gap:10px}
.menu-cta a{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:13px 16px;border:1px solid var(--line-soft);border-radius:50px;
  color:var(--text);font-weight:600;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;
  transition:all var(--t);
}
.menu-cta a:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,164,100,.05);transform:translateX(2px)}
.menu-cta a i{color:var(--gold)}

.copyright{
  text-align:center;border-top:1px solid var(--line-soft);
  padding-top:24px;margin-top:50px;color:var(--text-mute);font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;
}

/* ============================ TOAST ============================ */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--bg-2);border:1px solid var(--gold);color:var(--text);
  padding:14px 22px;border-radius:50px;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:10px;
  opacity:0;pointer-events:none;transition:all var(--t);z-index:9999;font-weight:500;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast i{color:var(--gold)}
.toast.error{border-color:var(--danger)}
.toast.error i{color:var(--danger)}
.toast.success i{color:var(--success)}

/* ============================ THANK YOU ============================ */
.thanks{
  min-height:100vh;display:flex;align-items:center;padding:140px 0 80px;text-align:center;
  position:relative;overflow:hidden;
}
.thanks::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(800px 400px at 50% 0%,rgba(201,164,100,.18),transparent 60%);
}
.thanks .check{
  width:90px;height:90px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#1a1206;display:inline-flex;align-items:center;justify-content:center;
  font-size:2.6rem;margin:0 auto 26px;
  box-shadow:0 0 0 8px rgba(201,164,100,.18),0 0 0 18px rgba(201,164,100,.06);
  animation:pop .6s cubic-bezier(.2,.8,.2,1) 1;
}
@keyframes pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
.thanks h1{font-size:clamp(2.2rem,6vw,4rem);margin-bottom:14px}
.thanks p.lead{font-size:1.15rem;color:var(--text-dim);max-width:560px;margin:0 auto 24px}
.thanks .ref{
  display:inline-block;background:var(--bg-2);border:1px dashed var(--line);
  padding:10px 20px;border-radius:50px;color:var(--gold);font-family:'Courier New',monospace;
  letter-spacing:.18em;margin:14px 0 28px;
}

/* ============================ ANIMATIONS ============================ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity var(--t-slow),transform var(--t-slow)}
.reveal.visible{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ============================ HAPPY HOUR BANNER ============================ */
.happy-hour{
  margin:30px auto 0;max-width:780px;
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding:18px 26px;border-radius:50px;
  background:linear-gradient(135deg, rgba(201,164,100,.12), rgba(201,164,100,.04));
  border:1px solid var(--line);
  color:var(--text);font-size:1rem;letter-spacing:.02em;
  box-shadow:0 6px 24px rgba(0,0,0,.35);
  text-align:center;
}
.happy-hour i{color:var(--gold);font-size:1.45rem;flex-shrink:0}
.happy-hour strong{color:var(--gold);font-family:'Playfair Display',serif;font-weight:700;letter-spacing:.04em;margin-right:6px}
@media (max-width:640px){
  .happy-hour{flex-direction:column;gap:6px;padding:16px 20px;font-size:.92rem;border-radius:18px;text-align:center;line-height:1.45}
  .happy-hour i{font-size:1.6rem}
}

/* ============================ UTIL ============================ */
.text-gold{color:var(--gold)}
.text-center{text-align:center}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.mt-2{margin-top:14px}.mb-2{margin-bottom:14px}
.mt-3{margin-top:24px}.mb-3{margin-bottom:24px}
.mt-4{margin-top:36px}.mb-4{margin-bottom:36px}
.flex{display:flex}.gap-2{gap:14px}
.between{justify-content:space-between}.items-center{align-items:center}

/* ============================================================================
   WHITE PARTY · INTERACTIVE FLOOR PLAN
   ============================================================================ */
.floorplan-section{padding-top:30px}
.floorplan-wrap{
  background:linear-gradient(180deg,#0c0c14,#06060a);
  border:1px solid var(--line);
  border-radius:var(--r-lg, 16px);
  padding:20px;
  box-shadow:0 25px 70px rgba(0,0,0,.55);
}
.floorplan-legend{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;
  margin-bottom:16px;font-size:.85rem;color:var(--text-mute,#9a9aa6);
}
.floorplan-legend > span{display:inline-flex;align-items:center;gap:8px}
.floorplan-legend .legend-swatch{width:14px;height:14px;border-radius:4px;display:inline-block}
.floorplan-legend .swatch-vip     {background:linear-gradient(180deg,#f4d97a,#c89d2a);border:1px solid rgba(212,175,55,.6)}
.floorplan-legend .swatch-standing{background:linear-gradient(180deg,#3a4068,#1f223a);border:1px solid rgba(160,180,255,.45)}
.floorplan-legend .swatch-booked  {background:#3b1f23;border:1px solid rgba(239,68,68,.6)}
.floorplan-legend .fp-meta{margin-left:auto;color:var(--text,#e8e8ec)}

.floorplan-viewport{
  position:relative;width:100%;
  background:#0a0a12;border:1px solid rgba(255,255,255,.06);
  border-radius:12px;overflow:hidden;
}
.floorplan-viewport svg{display:block;width:100%;height:auto;max-height:74vh}

.floorplan-help{margin-top:14px;font-size:.85rem;color:var(--text-mute,#9a9aa6);text-align:center}
.floorplan-help i{color:var(--gold)}

/* Individual table groups inside the SVG */
.fp-table{cursor:pointer;transition:filter .18s ease, transform .18s ease}
.fp-table rect{transition:fill .2s ease, stroke .2s ease, filter .2s ease}

/* Standing tables (available) */
.fp-standing rect{
  fill:#262b48;stroke:rgba(160,180,255,.55);stroke-width:1.5;
  filter:drop-shadow(0 4px 10px rgba(99,121,255,.25));
}
.fp-standing:hover rect, .fp-standing:focus-visible rect{
  fill:#3a4276;stroke:#a0b4ff;stroke-width:2;
  filter:drop-shadow(0 6px 18px rgba(160,180,255,.55));
}

/* VIP tables (available) — gold/glowing */
.fp-vip rect{
  fill:url(#fp-vip-fill, linear-gradient(180deg,#d4af37,#9a7d23));
  fill:#caa138;stroke:#ecc35a;stroke-width:2;
  filter:drop-shadow(0 6px 14px rgba(212,175,55,.45));
}
.fp-vip:hover rect, .fp-vip:focus-visible rect{
  fill:#ecc35a;stroke:#fff5d0;stroke-width:2.5;
  filter:drop-shadow(0 8px 22px rgba(236,195,90,.7));
}

/* Booked / locked */
.fp-booked{cursor:not-allowed}
.fp-booked rect{
  fill:#3b1f23 !important;stroke:rgba(239,68,68,.6) !important;stroke-width:1.5 !important;
  stroke-dasharray:6 3;
  filter:grayscale(.5) brightness(.85);
}

/* Labels inside tables */
.fp-table-label{
  font-family:'Inter',system-ui,sans-serif;
  font-size:18px;font-weight:800;letter-spacing:1px;
  fill:#0a0a12;pointer-events:none;
}
.fp-standing .fp-table-label{fill:#fff;font-size:15px;letter-spacing:.5px}
.fp-vip .fp-table-label{fill:#0a0a12;font-weight:900}
.fp-booked .fp-table-label{fill:rgba(255,255,255,.55) !important}
.fp-table-sub{
  font-family:'Inter',sans-serif;font-size:9px;font-weight:600;letter-spacing:2px;
  fill:rgba(10,10,18,.7);pointer-events:none;
}
.fp-booked .fp-table-sub{fill:rgba(255,255,255,.4) !important}
.fp-table-booked-tag{
  font-size:9px;font-weight:800;letter-spacing:2px;
  fill:#fca5a5;pointer-events:none;
}
.fp-table-lock{
  font-family:'bootstrap-icons';font-size:11px;fill:#fca5a5;pointer-events:none;
}

/* ============================================================================
   GENERIC MODAL (used by floor plan + admin)
   ============================================================================ */
body.atl-modal-open{overflow:hidden}
/* Global guard: anything with the HTML5 [hidden] attribute must stay hidden,
   even if a class on the same element sets display:flex / grid / block. */
[hidden]{display:none!important}

.atl-modal{
  position:fixed;inset:0;z-index:120;
  display:flex;align-items:center;justify-content:center;
  padding:18px;
}
.atl-modal[hidden]{display:none!important}
.atl-modal-step[hidden]{display:none!important}
.atl-modal-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.74);
  backdrop-filter:blur(6px);
  animation:atlFadeIn .18s ease;
}
@keyframes atlFadeIn{from{opacity:0}to{opacity:1}}
.atl-modal-card{
  position:relative;z-index:1;width:min(560px, 100%);max-height:90vh;overflow:auto;
  background:linear-gradient(180deg,#14141a,#0c0c12);
  border:1px solid var(--line, #2a2a35);border-radius:18px;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
  padding:44px 30px 34px;color:var(--text, #e8e8ec);
  animation:atlPopIn .22s cubic-bezier(.2,.9,.3,1.4);
}
@keyframes atlPopIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.atl-modal-close{
  position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.05);border:1px solid var(--line, #2a2a35);
  color:var(--text-mute,#9a9aa6);display:grid;place-items:center;cursor:pointer;
  transition:all .15s ease;
}
.atl-modal-close:hover{color:#fff;background:rgba(255,255,255,.1)}

.atl-modal-head{margin:6px 0 16px}
.atl-modal-eyebrow{color:var(--gold,#d4af37);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.atl-modal-head h2{margin:6px 0 4px;font-family:'Playfair Display',Georgia,serif;font-size:1.8rem;letter-spacing:-.01em}
.atl-modal-head p{margin:0;color:var(--text-mute,#9a9aa6);font-size:.92rem}
.atl-modal-price-pill{
  display:inline-block;padding:5px 12px;border-radius:999px;
  background:rgba(212,175,55,.12);color:var(--gold,#d4af37);
  border:1px solid rgba(212,175,55,.35);
  font-size:.78rem;font-weight:600;letter-spacing:.04em;margin-bottom:18px;
}
.atl-modal-foot{margin:22px 0 4px;text-align:center;color:var(--text-mute,#9a9aa6);font-size:.78rem}

.atl-modal .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.atl-modal .form-grid .field.full{grid-column:1 / -1}
.atl-modal .field label{display:block;font-size:.78rem;color:var(--text-mute,#9a9aa6);margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}
.atl-modal .input,
.atl-modal .select,
.atl-modal .textarea{
  width:100%;padding:.65rem .8rem;background:#0c0c14;color:var(--text,#e8e8ec);
  border:1px solid var(--line,#2a2a35);border-radius:10px;font:inherit;outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.atl-modal .input:focus,
.atl-modal .select:focus,
.atl-modal .textarea:focus{border-color:var(--gold,#d4af37);box-shadow:0 0 0 3px rgba(212,175,55,.18)}
.atl-modal .textarea{resize:vertical;min-height:64px}

/* Success step */
.atl-modal-success{text-align:center;padding:14px 0 4px}
.atl-modal-success .success-tick{
  width:68px;height:68px;border-radius:50%;margin:0 auto 14px;
  display:grid;place-items:center;
  background:linear-gradient(180deg,#ecc35a,#d4af37);
  color:#0a0a14;font-size:2rem;font-weight:900;
  box-shadow:0 12px 30px rgba(212,175,55,.4);
}
.atl-modal-success h2{font-family:'Playfair Display',Georgia,serif;font-size:1.7rem;margin:0 0 6px}
.atl-modal-success p{margin:0 0 8px;color:var(--text,#e8e8ec)}
.atl-modal-success .muted{color:var(--text-mute,#9a9aa6);font-size:.9rem;margin-top:14px}
.atl-modal-success .success-ref{
  display:inline-block;margin:8px 0 4px;padding:6px 14px;border-radius:8px;
  background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.3);
  font-size:.9rem;color:var(--gold,#d4af37);
}
.atl-modal-success .success-ref code{font-family:Menlo,Consolas,monospace;letter-spacing:.06em;color:var(--gold,#d4af37)}
.atl-modal-success .success-bottles{margin:14px auto 4px;max-width:380px;text-align:left;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.success-bottles .sb-title{display:flex;align-items:center;gap:8px;color:var(--gold,#d4af37);font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.success-bottles .sb-row{display:flex;justify-content:space-between;gap:14px;font-size:.86rem;color:var(--text-mute);padding:4px 0}
.success-bottles .sb-row strong{color:var(--text);font-weight:600;text-align:right}
.success-bottles .sb-total{border-top:1px dashed var(--line);margin-top:6px;padding-top:8px}
.success-bottles .sb-total strong{color:var(--gold,#d4af37)}
.atl-modal-success .success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}

@media (max-width:560px){
  .atl-modal-card{padding:34px 18px 28px}
  .atl-modal .form-grid{grid-template-columns:1fr}
  .atl-modal-head h2{font-size:1.45rem}
}
body.jse-modal-open{overflow:hidden}
.atl-modal-package[hidden]{display:none!important}

/* ============================================================================
   JS ENTERTAINMENT — ULTRA-PRO LAYER (black & gold event platform)
   Extends the base theme: deeper blacks, richer gold, glassmorphism,
   refined type rhythm, and the big-event booking components.
   ============================================================================ */
:root{
  --ink:#050608;
  --glass:rgba(255,255,255,.045);
  --glass-2:rgba(255,255,255,.07);
  --glass-line:rgba(255,255,255,.10);
  --gold-grad:linear-gradient(135deg,var(--gold-2),var(--gold) 70%,var(--gold-soft));
  --hairline:linear-gradient(90deg,transparent,var(--line),transparent);
  --r-xl:24px;
}
.brand{text-transform:uppercase}
.brand-suffix{font-size:.5em;letter-spacing:.34em;color:var(--text-mute);display:block;margin-top:-2px}

/* Gradient hairline divider */
.hairline{height:1px;border:0;background:var(--hairline);margin:0}

/* Eyebrow gold gradient text accent */
.gold-text{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---- Floating WhatsApp button ---- */
.wa-float{
  position:fixed;right:20px;bottom:22px;z-index:900;
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 20px 13px 16px;border-radius:50px;
  background:linear-gradient(135deg,#25d366,#128c4b);color:#fff!important;
  font-weight:700;letter-spacing:.04em;font-size:.92rem;
  box-shadow:0 12px 30px rgba(18,140,75,.45);
  border:1px solid rgba(255,255,255,.18);
  transition:transform var(--t),box-shadow var(--t);
}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(18,140,75,.6);color:#fff!important}
.wa-float i{font-size:1.4rem}
@media (max-width:560px){.wa-float span{display:none}.wa-float{padding:14px;border-radius:50%}}

/* ---- Hero countdown / pills ---- */
.hero-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.hero-pill{
  display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;
  background:var(--glass);border:1px solid var(--glass-line);color:var(--text-dim);
  font-size:.82rem;letter-spacing:.04em;
}
.hero-pill i{color:var(--gold)}

/* ============ HOMEPAGE — FEATURED EVENT TILES ============ */
.events-feature{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media (max-width:860px){.events-feature{grid-template-columns:1fr}}
/* Show-more events toggle */
.ev-tile.ev-hidden{display:none}
.ev-tile.ev-hidden.ev-reveal{display:flex}
.events-more{display:flex;justify-content:center;margin-top:30px}
.events-more[hidden]{display:none}
.events-more .btn{min-width:230px}
.ev-tile{
  position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:540px;
  display:flex;flex-direction:column;justify-content:flex-end;
  border:1px solid var(--glass-line);
  box-shadow:var(--shadow-lg);isolation:isolate;
  transition:transform var(--t),border-color var(--t),box-shadow var(--t);
}
.ev-tile:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 30px 70px rgba(0,0,0,.6)}
.ev-tile-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow)}
.ev-tile:hover .ev-tile-bg{transform:scale(1.05)}
.ev-tile::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(5,6,8,.15) 0%,rgba(5,6,8,.55) 45%,rgba(5,6,8,.94) 100%);
}
.ev-tile.theme-white::after{background:linear-gradient(180deg,rgba(5,6,8,.12) 0%,rgba(5,6,8,.5) 45%,rgba(5,6,8,.92) 100%)}
.ev-tile-top{position:absolute;top:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ev-chip{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(8,9,14,.7);backdrop-filter:blur(8px);border:1px solid var(--gold);
  border-radius:14px;padding:8px 12px;min-width:62px;color:var(--gold);
}
.ev-chip .d{font-family:'Playfair Display',serif;font-size:1.5rem;line-height:1;font-weight:800}
.ev-chip .m{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;margin-top:3px}
.ev-flag{
  background:var(--gold-grad);color:#1a1206;font-weight:800;
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;align-self:flex-start;box-shadow:0 6px 18px rgba(201,164,100,.4);
}
.ev-tile-body{position:relative;padding:30px 28px 28px}
.ev-tile-body .ev-name{font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1;margin:0 0 6px}
.ev-tile-body .ev-tag{color:var(--text-dim);margin:0 0 14px;font-size:1rem}
.ev-tile-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--text-mute);font-size:.86rem;margin-bottom:18px}
.ev-tile-meta i{color:var(--gold);margin-right:6px}
.ev-tile-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ev-from{color:var(--text);font-weight:700;font-size:1rem}
.ev-from small{display:block;color:var(--text-mute);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.ev-tile-cta{display:flex;gap:10px;flex-wrap:wrap}

/* ============ CALENDAR OF EVENTS ============ */
.cal{max-width:780px;margin:0 auto;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(180deg,var(--bg-2),var(--bg-1))}
.cal-row{display:flex;align-items:center;gap:20px;padding:20px 24px;border-bottom:1px solid var(--line-soft);transition:background var(--t-fast)}
.cal-row:last-child{border-bottom:0}
.cal-row:hover{background:rgba(201,164,100,.05)}
.cal-date{
  flex:0 0 auto;width:66px;text-align:center;border:1px solid var(--line);border-radius:12px;padding:8px 4px;
  background:var(--ink);
}
.cal-date .d{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:800;color:var(--gold);line-height:1}
.cal-date .m{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-mute);margin-top:3px}
.cal-info{flex:1;min-width:0}
.cal-info h4{font-family:'Playfair Display',serif;font-size:1.2rem;margin:0 0 4px;color:var(--text)}
.cal-info span{color:var(--text-mute);font-size:.88rem}
.cal-info span i{color:var(--gold);margin-right:5px}
@media (max-width:560px){.cal-row{flex-wrap:wrap}.cal-cta{width:100%}}

/* ============ EVENT PAGE — HERO ============ */
.ev-hero{
  position:relative;min-height:86vh;display:flex;align-items:flex-end;
  padding:150px 0 56px;overflow:hidden;color:#fff;isolation:isolate;
}
.ev-hero .ev-hero-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.ev-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(4,5,8,.55),rgba(4,5,8,.6) 40%,rgba(4,5,8,.96));}
.ev-hero .eyebrow{display:inline-flex;gap:10px;align-items:center;color:var(--gold);letter-spacing:.3em;text-transform:uppercase;font-size:.78rem;margin-bottom:14px}
.ev-hero h1{font-size:clamp(2.8rem,8vw,6rem);line-height:.95;margin-bottom:14px}
.ev-hero .ev-lead{color:#dcdce0;max-width:640px;font-size:1.08rem;margin-bottom:22px}
.ev-hero.theme-white h1{background:linear-gradient(135deg,#fff,#e6e6e6 55%,var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.ev-hero.theme-black h1{background:linear-gradient(135deg,#fff,#c9c9cf 55%,var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* Event info grid (date/time/venue/dress/age) */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:8px 0 0}
.info-grid .info-cell{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-md);padding:14px 16px}
.info-grid .info-cell small{display:block;color:var(--text-mute);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px}
.info-grid .info-cell strong{color:#fff;font-family:'Playfair Display',serif;font-weight:600;font-size:1.02rem}
.info-grid .info-cell i{color:var(--gold);margin-right:6px}

/* ============ TICKET SELECT (entry) ============ */
.ticket-select{display:grid;grid-template-columns:1fr;gap:16px}
.ticket-row{
  display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:22px 24px;
  transition:border-color var(--t);
}
.ticket-row:hover{border-color:var(--line)}
.ticket-row .tr-info h3{margin:0 0 4px;font-size:1.3rem}
.ticket-row .tr-info p{margin:0;color:var(--text-mute);font-size:.9rem}
.ticket-row .tr-price{font-family:'Playfair Display',serif;color:var(--gold);font-size:1.7rem;line-height:1}
.ticket-row .tr-price small{display:block;font-family:'Inter',sans-serif;font-size:.66rem;color:var(--text-mute);letter-spacing:.16em;text-transform:uppercase}

/* ============ VIP BOTTLE PACKAGES ============ */
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:820px){.pkg-grid{grid-template-columns:1fr}}
.pkg-card{
  position:relative;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:26px;overflow:hidden;
  transition:transform var(--t),border-color var(--t),box-shadow var(--t);
}
.pkg-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold-grad);opacity:.7}
.pkg-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow-md)}
.pkg-card.feature{border-color:var(--gold)}
.pkg-card h3{font-size:1.35rem;margin-bottom:6px}
.pkg-card .pkg-price{font-family:'Playfair Display',serif;font-size:2rem;color:var(--gold);line-height:1;margin-bottom:14px}
.pkg-card ul{list-style:none;padding:0;margin:0 0 4px;display:flex;flex-direction:column;gap:8px}
.pkg-card ul li{color:var(--text-dim);font-size:.92rem;display:flex;gap:8px;align-items:flex-start}
.pkg-card ul li i{color:var(--gold);margin-top:3px}

/* ============ FAQ ACCORDION ============ */
.faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq-item{border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--bg-2);overflow:hidden;transition:border-color var(--t-fast)}
.faq-item[open]{border-color:var(--line)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--text);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{color:var(--gold);transition:transform var(--t)}
.faq-item[open] summary i{transform:rotate(45deg)}
.faq-item .faq-a{padding:0 22px 20px;color:var(--text-dim);font-size:.96rem;line-height:1.7}

/* ============ PAYMENT BADGES ============ */
.pay-badges{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pay-badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 13px;border-radius:10px;background:var(--glass);
  border:1px solid var(--glass-line);color:var(--text-dim);font-size:.82rem;font-weight:600;
}
.pay-badge i{font-size:1.1rem;color:var(--text)}
.pay-badge.is-primary{border-color:var(--gold);color:var(--text)}
.pay-note{margin-top:12px;color:var(--text-mute);font-size:.8rem;line-height:1.6}
.pay-note strong{color:var(--gold)}

/* ============ STICKY BUY BAR (event pages, mobile) ============ */
.buybar{
  position:fixed;left:0;right:0;bottom:0;z-index:850;
  display:none;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 18px;background:rgba(8,9,14,.92);backdrop-filter:blur(14px);
  border-top:1px solid var(--gold);box-shadow:0 -10px 30px rgba(0,0,0,.5);
}
.buybar .bb-price{color:var(--text);font-weight:700}
.buybar .bb-price small{display:block;color:var(--text-mute);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase}
@media (max-width:760px){.buybar{display:flex}body.has-buybar{padding-bottom:74px}}

/* ============ QR TICKET (thank-you) ============ */
.qr-ticket{
  max-width:340px;margin:24px auto 0;background:#fff;border-radius:16px;padding:22px;
  box-shadow:0 20px 50px rgba(0,0,0,.5);color:#0a0a0c;text-align:center;
}
.qr-ticket img{width:200px;height:200px;margin:0 auto;display:block}
.qr-ticket .qr-ref{font-family:'Courier New',monospace;letter-spacing:.14em;color:#0a0a0c;font-weight:700;margin-top:12px}
.qr-ticket .qr-cap{color:#6b7280;font-size:.78rem;margin-top:4px}

/* ============ AFTER-PARTY (ATLON socials) footer block ============ */
.afterparty{
  margin-top:14px;padding:18px 20px;border:1px dashed var(--line);border-radius:var(--r-md);
  background:rgba(201,164,100,.04);
}
.afterparty h5{font-family:'Inter',sans-serif;color:var(--gold);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;margin:0 0 6px}
.afterparty p{font-size:.86rem;color:var(--text-mute);margin:0 0 10px}

/* ============ BROADCAST SIGN-UP ============ */
.broadcast{
  max-width:720px;margin:0 auto;text-align:center;
  background:linear-gradient(135deg,rgba(201,164,100,.10),rgba(201,164,100,.03));
  border:1px solid var(--line);border-radius:var(--r-xl);padding:40px 28px;
}
.broadcast form{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:18px}
.broadcast input{flex:1;min-width:220px;max-width:340px}
@media (max-width:560px){.broadcast form{flex-direction:column}.broadcast input{max-width:none}}

/* ==========================================================================
   v2.1 — Brand logo, hero video, premium calendar & extra gold accents
   ========================================================================== */

/* ---- Brand logo lockup in navbar ---- */
.brand-logo{height:34px;width:auto;display:block;filter:drop-shadow(0 2px 10px rgba(201,164,100,.35))}
.brand-word{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:1.4rem;letter-spacing:.16em;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.navbar.scrolled .brand-logo{height:30px}
@media (max-width:560px){.brand-logo{height:30px}.brand-word{font-size:1.12rem;letter-spacing:.12em}}
@media (max-width:380px){.brand-word{display:none}}

/* Footer logo lockup */
.brand-footer{display:inline-block;margin-bottom:16px}
.brand-logo-lg{height:auto;width:190px;max-width:62%;filter:drop-shadow(0 6px 22px rgba(201,164,100,.30))}

/* ---- HERO BACKGROUND VIDEO ---- */
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:-2;opacity:.62;
  filter:saturate(1.06) contrast(1.03);
}
/* Stronger, directional scrim so headline copy stays crisp over motion */
.hero::after{
  background:
    linear-gradient(90deg, rgba(5,6,10,.88) 0%, rgba(5,6,10,.55) 42%, rgba(5,6,10,.18) 100%),
    linear-gradient(180deg, rgba(5,6,10,.55) 0%, rgba(5,6,10,0) 28%, rgba(5,6,10,0) 55%, rgba(5,6,10,.92) 100%),
    radial-gradient(800px 420px at 82% 100%, rgba(201,164,100,.20), transparent 60%),
    radial-gradient(600px 320px at 0% 0%, rgba(201,164,100,.12), transparent 70%);
}
@media (max-width:640px){.hero-video{opacity:.5}}
@media (prefers-reduced-motion: reduce){
  .hero-video{display:none}
  .hero-bg{background:#04050a center/cover no-repeat url('../img/hero-poster.jpg')}
}

/* ---- PREMIUM CALENDAR (calx) ---- */
.calx{
  display:block;max-width:920px;margin:0 auto;
}
.calx-solo{width:100%}
.calx-loading,.calx-empty{text-align:center;color:var(--text-mute);padding:30px}
.calx-cal{
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  border:1px solid var(--line);border-radius:var(--r-xl);
  padding:22px 22px 18px;box-shadow:var(--shadow-md);
}
.calx-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.calx-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;color:var(--text);letter-spacing:.02em}
.calx-nav{
  width:40px;height:40px;border-radius:50%;cursor:pointer;
  background:rgba(201,164,100,.06);border:1px solid var(--line);color:var(--gold);
  display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;
  transition:all var(--t-fast);
}
.calx-nav:hover{background:var(--gold);color:#0a0a0a;border-color:var(--gold);box-shadow:0 8px 22px rgba(201,164,100,.4)}
.calx-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px}
.calx-weekdays span{text-align:center;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute);font-weight:600}
.calx-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.calx-cell{
  position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  border-radius:12px;border:1px solid transparent;color:var(--text-dim);
  font-size:.95rem;font-weight:500;background:transparent;
}
.calx-cell.empty{border:0}
.calx-cell .n{line-height:1}
.calx-cell.today{border-color:var(--line);color:var(--text)}
.calx-cell.today::after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--text-mute)}
button.calx-cell{cursor:pointer;font-family:inherit}
a.calx-cell{cursor:pointer;text-decoration:none}
.calx-cell.has-event{
  background:rgba(201,164,100,.08);border-color:var(--line);color:var(--text);font-weight:700;
  box-shadow:inset 0 0 0 1px rgba(201,164,100,.12);transition:all var(--t-fast);
}
.calx-cell.has-event:hover{border-color:var(--gold);background:rgba(201,164,100,.16);transform:translateY(-1px)}
.calx-cell-dot{position:absolute;bottom:7px;width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}
.calx-cell.theme-white .calx-cell-dot{background:#f4f1ea;box-shadow:0 0 8px rgba(244,241,234,.9)}
.calx-cell.is-selected{
  background:var(--gold-grad);color:#1a1206;border-color:var(--gold);
  box-shadow:0 10px 26px rgba(201,164,100,.5);
}
.calx-cell.is-selected .calx-cell-dot{display:none}
.calx-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}
.calx-leg{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;color:var(--text-mute)}
.calx-leg-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}
.calx-leg-dot.theme-white{background:#f4f1ea;box-shadow:0 0 8px rgba(244,241,234,.8)}

/* Calendar detail panel */
.calx-panel{
  position:relative;overflow:hidden;border-radius:var(--r-xl);
  border:1px solid var(--glass-line);box-shadow:var(--shadow-lg);
  display:flex;align-items:flex-end;min-height:340px;isolation:isolate;
}
.calx-panel-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.calx-panel::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(5,6,8,.15) 0%,rgba(5,6,8,.6) 50%,rgba(5,6,8,.95) 100%)}
.calx-panel.theme-white::after{background:linear-gradient(180deg,rgba(5,6,8,.12) 0%,rgba(5,6,8,.55) 50%,rgba(5,6,8,.93) 100%)}
.calx-panel-body{position:relative;padding:26px 26px 24px;width:100%}
.calx-panel-date{display:inline-flex;align-items:center;gap:7px;color:var(--gold);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:8px}
.calx-panel-body h3{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1;margin:0 0 6px;color:#fff}
.calx-panel-body p{color:var(--text-dim);margin:0 0 14px;font-size:.95rem}
.calx-panel-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--text-mute);font-size:.84rem;margin-bottom:18px}
.calx-panel-meta i{color:var(--gold);margin-right:6px}
.calx-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.calx-panel-from{color:#fff;font-weight:700;font-size:1.05rem}
.calx-panel-from small{display:block;color:var(--text-mute);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
@media (max-width:860px){.calx{grid-template-columns:1fr}.calx-panel{min-height:300px}}

/* ---- EXTRA GOLD ACCENTS (v2.1) ---- */
.navbar{border-bottom:1px solid var(--line)}
.navbar.scrolled{border-bottom-color:rgba(201,164,100,.32);box-shadow:0 10px 30px rgba(0,0,0,.45)}
.section-head .eyebrow{position:relative;display:inline-block;padding-bottom:14px}
.section-head .eyebrow::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:54px;height:2px;background:var(--gold-grad);border-radius:2px}
.btn-outline{box-shadow:inset 0 0 0 1px rgba(201,164,100,.2)}
.btn-ghost{box-shadow:inset 0 0 0 1px rgba(201,164,100,.14)}
.hero-pill{box-shadow:inset 0 0 0 1px rgba(201,164,100,.14)}
.ev-tile{border:1px solid var(--line)}
.ev-tile:hover{box-shadow:0 30px 70px rgba(0,0,0,.6),0 0 0 1px rgba(201,164,100,.5)}
.broadcast{box-shadow:inset 0 0 0 1px rgba(201,164,100,.16),0 20px 50px rgba(0,0,0,.35)}
.footer{border-top:1px solid var(--line);box-shadow:0 -1px 0 rgba(201,164,100,.25)}
.afterparty{border:1px solid var(--line)}
/* refined hero headline weight */
.hero h1{font-weight:800;letter-spacing:.2px}
.hero .eyebrow{box-shadow:inset 0 0 0 1px rgba(201,164,100,.18)}

/* ==========================================================================
   v2.2 — date-chip year, brand bridge, mobile hero lift, multi-view calendar
   ========================================================================== */

/* Year line inside event-card date chip */
.ev-chip .y{font-size:.6rem;letter-spacing:.16em;font-weight:700;color:rgba(201,164,100,.85);margin-top:3px}

/* Mobile: lift hero content up (tighten gap below the fixed navbar) */
@media (max-width:640px){
  .hero{align-items:flex-start;min-height:auto;padding:96px 0 56px}
  .hero .eyebrow{margin-bottom:14px}
}

/* Brand bridge between hero and events */
.brand-bridge{display:flex;align-items:center;justify-content:center;gap:24px;max-width:680px;margin:0 auto;padding:48px 20px 4px}
.brand-bridge-logo{width:150px;height:auto;opacity:.92;filter:drop-shadow(0 6px 24px rgba(201,164,100,.28))}
.brand-bridge-rule{flex:1;max-width:170px;height:1px;background:var(--hairline)}
@media (max-width:560px){
  .brand-bridge{gap:14px;padding:34px 16px 2px}
  .brand-bridge-logo{width:120px}
  .brand-bridge-rule{max-width:80px}
}

/* ---- Calendar: header with zoom + nav ---- */
.calx-head{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px;min-height:40px}
.calx-navgroup{display:flex;align-items:center;gap:14px}
.calx-zoom{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;cursor:pointer;
  background:rgba(201,164,100,.06);border:1px solid var(--line);color:var(--gold);
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:'Inter',sans-serif;
  transition:all var(--t-fast);
}
.calx-zoom:hover{background:var(--gold);color:#0a0a0a;border-color:var(--gold);box-shadow:0 8px 22px rgba(201,164,100,.4)}
.calx-zoom[hidden]{display:none}
@media (max-width:560px){
  .calx-head{flex-direction:column;gap:10px}
  .calx-zoom{position:static;transform:none}
  .calx-title{font-size:1.25rem}
}

/* Multi-month overview grids (6-month default + year) */
.calx-multi{display:grid;gap:14px}
.calx-multi.six{grid-template-columns:repeat(3,1fr)}
.calx-multi.year{grid-template-columns:repeat(4,1fr)}
@media (max-width:760px){.calx-multi.six{grid-template-columns:repeat(2,1fr)}.calx-multi.year{grid-template-columns:repeat(3,1fr)}}
@media (max-width:480px){.calx-multi.six,.calx-multi.year{grid-template-columns:repeat(2,1fr)}}

.calx-mini{
  text-align:left;cursor:pointer;font-family:inherit;color:var(--text-dim);
  background:rgba(255,255,255,.02);border:1px solid var(--line-soft);border-radius:14px;
  padding:12px 12px 14px;transition:transform var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.calx-mini:hover{border-color:var(--gold);background:rgba(201,164,100,.08);transform:translateY(-2px)}
.calx-mini-name{display:block;font-family:'Playfair Display',serif;color:var(--text);font-weight:700;font-size:.98rem;margin-bottom:8px}
.calx-mini-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:3px}
.calx-mini-wd span{text-align:center;font-size:.54rem;color:var(--text-mute)}
.calx-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cm-d{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:.6rem;color:var(--text-mute);border-radius:5px}
.cm-d.empty{visibility:hidden}
.cm-d.today{color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.cm-d.has-event{background:var(--gold-grad);color:#1a1206;font-weight:800}
.cm-d.has-event.theme-white{background:linear-gradient(135deg,#fff,#e6e0d0);color:#1a1206}
.cm-dot{display:none}

/* ==========================================================================
   v2.4 — VIP tiers · bottle picker · After-Party band · Gallery
   ========================================================================== */

/* ---- VIP tier colours on the floor plan SVG ---- */
.fp-vip.fp-tier-gold  rect{fill:#d9b24a;stroke:#f4d97a;stroke-width:2}
.fp-vip.fp-tier-gold:hover  rect,.fp-vip.fp-tier-gold:focus-visible  rect{fill:#ecc35a;stroke:#fff5d0;stroke-width:2.5}
.fp-vip.fp-tier-black rect{fill:#23232c;stroke:#c9a464;stroke-width:2}
.fp-vip.fp-tier-black:hover rect,.fp-vip.fp-tier-black:focus-visible rect{fill:#34343f;stroke:#e7c884;stroke-width:2.5}
.fp-vip.fp-tier-green rect{fill:#2f8f63;stroke:#7fe0ad;stroke-width:2}
.fp-vip.fp-tier-green:hover rect,.fp-vip.fp-tier-green:focus-visible rect{fill:#37a875;stroke:#bff5db;stroke-width:2.5}
.fp-vip.fp-tier-gray  rect{fill:#5b6472;stroke:#aab4c6;stroke-width:2}
.fp-vip.fp-tier-gray:hover  rect,.fp-vip.fp-tier-gray:focus-visible  rect{fill:#6c7686;stroke:#d6deeb;stroke-width:2.5}
.fp-vip.fp-tier-gold  .fp-table-label{fill:#0a0a12}
.fp-vip.fp-tier-black .fp-table-label,
.fp-vip.fp-tier-green .fp-table-label,
.fp-vip.fp-tier-gray  .fp-table-label{fill:#fff}
.fp-vip.fp-tier-gold  .fp-table-sub{fill:rgba(10,10,18,.7)}
.fp-vip.fp-tier-black .fp-table-sub,
.fp-vip.fp-tier-green .fp-table-sub,
.fp-vip.fp-tier-gray  .fp-table-sub{fill:rgba(255,255,255,.85)}

/* ---- Tier legend swatches ---- */
.floorplan-legend .swatch-tier-gold {background:linear-gradient(180deg,#f4d97a,#c89d2a);border:1px solid rgba(212,175,55,.6)}
.floorplan-legend .swatch-tier-black{background:#23232c;border:1px solid #c9a464}
.floorplan-legend .swatch-tier-green{background:#2f8f63;border:1px solid #7fe0ad}
.floorplan-legend .swatch-tier-gray {background:#5b6472;border:1px solid #aab4c6}

/* ---- VIP tier cards (event page) ---- */
.tier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:860px){.tier-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.tier-grid{grid-template-columns:1fr}}
.tier-card{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);padding:26px 20px 22px;overflow:hidden}
.tier-card .tier-swatch{position:absolute;top:0;left:0;width:100%;height:6px}
.tier-card h3{font-family:'Inter',sans-serif;font-size:1.05rem;margin:6px 0 4px;color:var(--text)}
.tier-card .tier-price{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--gold);font-weight:800;margin-bottom:14px}
.tier-card ul{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:9px}
.tier-card li{display:flex;gap:9px;align-items:center;font-size:.85rem;color:var(--text-dim)}
.tier-card li i{color:var(--gold)}
.tier-card.tier-gold{border-color:rgba(212,175,55,.5)}

/* ---- Bottle picker (booking modal) ---- */
.tm-bottles{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.tm-bottles-title{font-family:'Inter',sans-serif;font-size:.96rem;margin:0 0 12px;display:flex;align-items:center;gap:8px;color:var(--text)}
.tm-bottles-title i{color:var(--gold)}
.bottle-group{margin-bottom:16px}
.bottle-group-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:.88rem;color:var(--text)}
.bottle-count{color:var(--gold);font-size:.78rem;font-weight:600;white-space:nowrap}
.bottle-note{font-size:.76rem;color:var(--text-mute);margin:0 0 8px}
.bottle-list{display:flex;flex-direction:column;gap:6px}
.bottle-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:10px}
.bottle-info{display:flex;flex-direction:column;min-width:0}
.bottle-name{font-size:.86rem;font-weight:600;color:var(--text)}
.bottle-price{font-size:.74rem;color:var(--text-mute)}
.bottle-qty{flex:0 0 auto}
.bottle-q{min-width:28px;text-align:center;display:inline-block;font-weight:700;color:var(--text)}
.bottle-total{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.bt-row{display:flex;justify-content:space-between;font-size:.84rem;color:var(--text-mute);padding:3px 0}
.bt-grand{color:var(--text);font-weight:700;font-size:1rem;border-top:1px solid var(--line);margin-top:6px;padding-top:8px}

/* ---- After-Party band (ATLON) ---- */
.afterparty-band{background:linear-gradient(180deg,rgba(201,164,100,.07),rgba(0,0,0,0));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0;text-align:center}
.afterparty-band .ap-eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--gold);letter-spacing:.22em;text-transform:uppercase;font-size:.74rem;font-weight:700}
.afterparty-band .ap-title{font-family:'Playfair Display',serif;font-size:clamp(1.9rem,5vw,2.9rem);margin:14px 0 12px;color:var(--text)}
.afterparty-band .ap-lead{max-width:620px;margin:0 auto 28px;color:var(--text-dim);font-size:1.04rem;line-height:1.6}
.afterparty-band .ap-lead strong{color:var(--gold)}
.ap-socials{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.ap-social{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border:1px solid rgba(212,175,55,.5);border-radius:999px;color:var(--text);font-weight:600;font-size:1rem;transition:all .2s ease;text-decoration:none}
.ap-social i{font-size:1.35rem;color:var(--gold);transition:color .2s ease}
.ap-social:hover{background:var(--gold);color:#0a0a12;transform:translateY(-2px)}
.ap-social:hover i{color:#0a0a12}
@media(max-width:560px){.afterparty-band{padding:46px 0}.ap-social{padding:12px 20px;font-size:.92rem}}

/* ---- Photo gallery promo (home) ---- */
.gallery-promo .gp-card{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:0;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:linear-gradient(180deg,rgba(201,164,100,.06),rgba(0,0,0,0));box-shadow:0 26px 60px rgba(0,0,0,.4)}
.gp-media{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:6px;min-height:340px;padding:6px}
.gp-img{display:block;border-radius:12px;background-size:cover;background-position:center;background-color:#15151c;filter:saturate(1.05)}
.gp-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,0) 40%,rgba(10,10,18,.55) 100%)}
.gp-body{position:relative;z-index:1;padding:44px 46px;display:flex;flex-direction:column;justify-content:center}
.gp-body .eyebrow{display:inline-flex;align-items:center;gap:8px}
.gp-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.6rem);margin:12px 0 12px;color:var(--text)}
.gp-lead{color:var(--text-dim);font-size:1.02rem;line-height:1.65;margin:0 0 26px;max-width:46ch}
.gp-lead strong{color:var(--gold)}
.gp-cta{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:860px){.gallery-promo .gp-card{grid-template-columns:1fr}.gp-media{order:-1;min-height:230px}.gp-media::after{background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(10,10,18,.6) 100%)}.gp-body{padding:32px 26px}}
@media(max-width:560px){.gp-cta{flex-direction:column}.gp-cta .btn{width:100%;justify-content:center}}

/* ---- Photo gallery page ---- */
.gallery-hero{text-align:center;padding:140px 0 26px}
.gallery-hero .eyebrow{justify-content:center}
.gallery-wrap{position:relative;min-height:240px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:760px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block;background:#15151c;border:1px solid var(--line-soft)}
.gallery-locked .gallery-grid{filter:blur(16px);pointer-events:none;user-select:none}
.gallery-gate{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px}
.gallery-gate-card{position:sticky;top:120px;background:rgba(8,8,13,.9);border:1px solid var(--line);border-radius:18px;padding:34px 28px;max-width:440px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}
.gallery-gate-card .lock-ic{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;background:rgba(201,164,100,.12);border:1px solid var(--line);color:var(--gold);font-size:1.5rem}
.gallery-gate-card h2{font-family:'Playfair Display',serif;font-size:1.5rem;margin:0 0 8px;color:var(--text)}
.gallery-gate-card p{color:var(--text-mute);font-size:.9rem;margin:0 0 18px}
.gallery-gate-card .input{margin-bottom:10px}
.gallery-gate-card .form-or{color:var(--text-mute);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;margin:8px 0}
.gallery-empty{text-align:center;color:var(--text-mute);padding:60px 0}
