/* ==============================
   Pulse — fixes (ambiances / DJ / photos)
   ============================== */

/* Event pages: Ambiances (4 rooms) */
.amb-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
@media (max-width: 1100px){
  .amb-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .amb-grid{ grid-template-columns: 1fr; }
}
.amb-card{
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  overflow: hidden;
  background: rgba(0,0,0,.18);
  backdrop-filter: blur(6px);
}
.amb-photo{
  width: 100%;
  aspect-ratio: 1 / 1;
  position: relative;
  overflow: hidden;
}
.amb-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.amb-body{
  padding: 14px 14px 16px;
  text-align: center;
}
.amb-time{ opacity: .9; font-size: 14px; margin-bottom: 6px; }
.amb-title{ font-weight: 800; font-size: 18px; margin-bottom: 10px; }
.amb-desc{ opacity: .95; line-height: 1.35; }

/* Event pages: Afterwork DJ inline */
/* Compact + left aligned container (Afterwork pages) */
.awDjWrap{display:flex;justify-content:flex-start;margin-top:10px}
.awDjCard{
  width:min(420px, 100%);
  display:grid;
  grid-template-columns: 84px 1fr;
  gap:14px;
  align-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:10px 12px;
  background:rgba(255,255,255,.04);
  box-shadow:0 18px 60px rgba(0,0,0,.45);
}
.awDjPhotoWrap{width:84px;height:84px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.25)}
.awDjPhoto{width:100%;height:100%;object-fit:cover;display:block}
.awDjMeta{display:flex;flex-direction:column;gap:6px;min-width:0;align-items:center;text-align:center}
.awDjName{font-weight:1000;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.awDjDesc{color:rgba(255,255,255,.78);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-afterwork .awDjMeta .igBtn{margin-top:2px;max-width:260px}
@media(max-width:520px){
  .awDjCard{grid-template-columns:72px 1fr;padding:10px 12px;border-radius:16px}
  .awDjPhotoWrap{width:72px;height:72px;border-radius:14px}
  .page-afterwork .awDjMeta .igBtn{max-width:100%}
}

/* Afterwork pages currently render DJ as a .person block (server template).
   Make it compact and properly centered inside, while keeping the whole block left-aligned. */
body.page-afterwork .event-section .person{
  width:min(420px, 100%);
  margin-left:0;
  margin-right:auto;
  grid-template-columns:72px 1fr;
  gap:12px;
  padding:10px 12px;
}
body.page-afterwork .event-section .person .person-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:4px;
}
body.page-afterwork .event-section .person .person-desc{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
body.page-afterwork .event-section .person .igbtn,
body.page-afterwork .event-section .person .igBtn{
  width:100%;
  max-width:260px;
  justify-content:center;
}

/* XXL / event ambiances: ensure full text is readable (no ellipsis/clamp). */
body.page-xxl .event-section .card .card-body{
  padding:14px 14px 16px;
  text-align:center;
}
body.page-xxl .event-section .card .card-title{
  font-weight:900;
  font-size:18px;
  margin:6px 0 8px;
}
body.page-xxl .event-section .card .card-line{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.35;
  opacity:.95;
}
.dj-inline{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin-top: 10px;
}
.dj-photo{
  width: 74px;
  height: 74px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  flex: 0 0 auto;
}
.dj-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Photos page: enforce square tiles */
.photo-grid{
  /* VendrediX-like grid: responsive square tiles, always aligned */
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
}
@media (max-width: 480px){
  .photo-grid{ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
}
.photo-item{
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 16px;
}
.photo-item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


:root{
  --bg:#0b0b10;
  --card:rgba(255,255,255,.06);
  --stroke:rgba(255,255,255,.12);
  --txt:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.68);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(900px 500px at 10% 0%, rgba(255,0,170,.22), transparent 55%),
radial-gradient(900px 520px at 95% 8%, rgba(0,200,255,.20), transparent 58%),
linear-gradient(180deg,#07070b,#0b0b10 40%,#07070b);
color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica,Arial,sans-serif}
a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:22px}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border:1px solid var(--stroke);background:rgba(0,0,0,.25);backdrop-filter:blur(14px);border-radius:16px;position:sticky;top:12px;z-index:20}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.02em}
.brand .dot{width:18px;height:18px;border-radius:7px;background:linear-gradient(135deg, rgba(255,0,170,1), rgba(0,200,255,1))}
.menu{display:flex;gap:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:12px}
.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--stroke);background:var(--card);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.chip.free{background:linear-gradient(135deg, rgba(0,200,255,.14), rgba(0,255,120,.12))}
.chip.xxl{background:linear-gradient(135deg, rgba(255,0,170,.18), rgba(255,45,85,.12))}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:18px}
.card{grid-column:span 12;border:1px solid var(--stroke);background:rgba(0,0,0,.25);backdrop-filter:blur(16px);border-radius:18px;overflow:hidden}
@media(min-width:860px){.card{grid-column:span 6}}
@media(min-width:1050px){.card{grid-column:span 4}}
.thumb{height:170px;background:linear-gradient(135deg, rgba(255,0,170,.18), rgba(0,200,255,.14));display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--stroke);overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;opacity:.9}
.thumb img.defaultVisual{object-fit:contain; padding:18px; opacity:1;}
.body{padding:14px 14px 16px}
.title{font-size:18px;font-weight:900;margin:8px 0 6px}
.meta{color:rgba(215,225,255,.78);font-size:13px;line-height:1.35}
.btns{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--stroke);background:rgba(255,255,255,.06);padding:10px 12px;border-radius:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:12px}
.btn.primary{background:linear-gradient(135deg, rgba(255,0,170,.22), rgba(0,200,255,.18))}
.h1{font-size:28px;font-weight:1000;letter-spacing:.14em;text-transform:uppercase;margin:18px 0 6px}
.sub{color:var(--muted);margin:0 0 12px}
.section{margin-top:18px}
.panel{border:1px solid var(--stroke);background:rgba(0,0,0,.22);border-radius:18px;padding:14px}
.slider{display:flex;gap:14px;overflow:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.slide{min-width:260px;max-width:260px;scroll-snap-align:start;border:1px solid var(--stroke);background:rgba(255,255,255,.05);border-radius:16px;overflow:hidden}
.slide .p{height:120px;border-bottom:1px solid var(--stroke)}
.slide .p img{width:100%;height:100%;object-fit:cover}
.slide .c{padding:12px}
.slide .c{ text-align:center; }
.slide .c .n{ text-align:center; }
.slide .c .small{ text-align:center; }

/* --- Rooms (Ambiences) — Neon identity + readability + hover club --- */
.room-time{
  display:inline-block;
  margin:6px auto 8px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-weight:800;
  font-size:12.5px;
  letter-spacing:.03em;
}

/* Slider cards (templates) */
.slide.room-card{
  position:relative;
  background:rgba(10,10,12,.75);
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.slide.room-card::before{
  content:"";
  position:absolute;
  top:0; left:0; width:100%; height:4px;
  z-index:3;
  opacity:.95;
}
.slide.room-card .p{ position:relative; }
.slide.room-card .p::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.10) 0%, rgba(0,0,0,.45) 60%, rgba(0,0,0,.78) 100%);
  pointer-events:none;
}
.slide.room-card .p img{
  filter:contrast(1.1) saturate(1.2) brightness(.85);
  transition:filter .35s ease, transform .35s ease;
}
.slide.room-card:hover{
  transform:translateY(-6px) scale(1.02);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 18px 45px rgba(0,0,0,.65);
}
.slide.room-card:hover .p img{
  filter:contrast(1.15) saturate(1.25) brightness(1.10);
  transform:scale(1.03);
}
.slide.room-cabaret::before{ background:linear-gradient(90deg,#ff4da6,#ff87d1); }
.slide.room-bitchy::before{ background:linear-gradient(90deg,#c44dff,#ff4da6); }
.slide.room-electric::before{ background:linear-gradient(90deg,#00d9ff,#0077ff); }
.slide.room-red::before{ background:linear-gradient(90deg,#ff2a2a,#ff0000); }


.slide .c .n{font-weight:1000}
.small{color:var(--muted);font-size:13px;line-height:1.35;margin-top:4px}
.twocol{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:900px){.twocol{grid-template-columns:1fr 1fr}}
.person{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;padding:10px;border:1px solid var(--stroke);border-radius:14px;background:rgba(255,255,255,.04)}
.avatar{width:56px;height:56px;border-radius:14px;border:1px solid var(--stroke);overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.footer{margin:26px 0 12px;color:var(--muted);font-size:12px;text-align:center}

/* --- Premium UX --- */
@media (prefers-reduced-motion: no-preference){
  .card,.panel,.slide,.person{animation:fadeUp .55s ease both}
  .card{animation-delay:.04s}
  .panel{animation-delay:.02s}
  @keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
}
.menu a{opacity:.85}
.menu a:hover{opacity:1}
/* Legal/Privacy premium cards */
.legalGrid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}
@media(min-width:900px){.legalGrid{grid-template-columns:1fr 1fr}}
.legalCard{
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  padding:18px;
  background:
    radial-gradient(1100px 500px at 10% 0%, rgba(255,0,170,.42), transparent 55%),
    radial-gradient(900px 520px at 95% 8%, rgba(0,200,255,.34), transparent 58%),
    linear-gradient(135deg, rgba(255,0,170,.18), rgba(0,200,255,.14));
  box-shadow: 0 18px 60px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.04) inset;
  backdrop-filter: blur(14px);
}
.legalCard h3{
  margin:0 0 10px 0;
  font-size:14px;
  font-weight:1000;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.95;
}
.legalCard p, .legalCard li{color:rgba(255,255,255,.78);line-height:1.5;font-size:13px}
.legalCard .pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  font-size:12px;font-weight:1000;letter-spacing:.1em;text-transform:uppercase;
}
.legalNote{
  margin-top:14px;
  border:1px dashed rgba(255,255,255,.18);
  border-radius:16px;
  padding:14px;
  color:rgba(255,255,255,.72);
  background:rgba(255,255,255,.03);
}

/* --- Food Menu block --- */
.menuCard{
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  padding:18px;
  background:
    radial-gradient(1100px 500px at 10% 0%, rgba(255,0,170,.36), transparent 55%),
    radial-gradient(900px 520px at 95% 8%, rgba(0,200,255,.28), transparent 58%),
    linear-gradient(135deg, rgba(255,0,170,.16), rgba(0,200,255,.12));
  box-shadow: 0 18px 60px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.04) inset;
  backdrop-filter: blur(14px);
}

/* Afterwork menus — match Pulse XXL colors */
#food.menuCard{
  background:
    radial-gradient(980px 520px at 12% 0%, rgba(255,45,149,.52), transparent 58%),
    radial-gradient(880px 520px at 98% 8%, rgba(255,106,0,.38), transparent 62%),
    linear-gradient(135deg, rgba(255,45,149,.28), rgba(255,106,0,.22));
}
#drinks.menuCard{
  background:
    radial-gradient(980px 520px at 12% 0%, rgba(106,0,255,.48), transparent 58%),
    radial-gradient(880px 520px at 98% 8%, rgba(0,195,255,.34), transparent 62%),
    linear-gradient(135deg, rgba(106,0,255,.26), rgba(0,195,255,.20));
}
.menuCard h3{
  margin:0 0 10px 0;
  font-size:14px;
  font-weight:1000;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.95;
}
.menuCard .menuLine{color:rgba(255,255,255,.78);font-size:13px;line-height:1.55}
.menuCard .menuBtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.menuModalBackdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.72);
  display:none;align-items:center;justify-content:center;padding:18px;z-index:999
}
.menuModal{
  width:min(980px, 96vw);height:min(82vh, 760px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;overflow:hidden;
  background:rgba(0,0,0,.55);backdrop-filter:blur(18px);
  box-shadow:0 28px 90px rgba(0,0,0,.65);
}
.menuModalTop{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.12)
}
.menuModalTop .t{font-weight:1000;letter-spacing:.1em;text-transform:uppercase;font-size:12px;opacity:.9}
.menuModalTop button{
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.9);border-radius:12px;padding:8px 10px;font-weight:1000;cursor:pointer
}
.menuModal iframe{width:100%;height:calc(100% - 50px);border:0;background:#111}

/* Logo (Pulse) — bigger, tap-friendly, premium */
.brand{
  gap:10px;
  width:72px;
  height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 55px rgba(0,0,0,.55);
}
.brand img{display:block}

/* Mobile Sticky CTA (conversion) */
body{padding-bottom:86px}
@media(min-width:768px){body{padding-bottom:0}}
.sticky-cta{
  position:fixed;
  bottom:14px;
  left:50%;
  /* use 3D transform to reduce iOS Safari repaint/jank on fixed elements */
  transform:translate3d(-50%,0,0);
  width:92%;
  max-width:560px;
  padding:14px 18px;
  border-radius:42px;
  text-align:center;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:linear-gradient(90deg,#ff3b3b,#ff9f1a,#ffe600,#2ecc71,#00c2ff,#6c63ff,#ff4fd8);
  color:rgba(0,0,0,.88);
  box-shadow:0 14px 55px rgba(0,0,0,.7);
  z-index:9999;
  border:1px solid rgba(255,255,255,.18);
  transition: transform .35s ease, opacity .35s ease;
  /* Mobile Safari: reduce double-tap / hover activation issues */
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  cursor: pointer;
}
.sticky-cta:active{transform:translate3d(-50%,0,0) scale(.99)}
@media(min-width:768px){.sticky-cta{display:none;}}

.menuStack{display:grid;gap:14px;margin-top:14px;max-width:980px;margin-left:auto;margin-right:auto}

.brand{display:flex;align-items:center;gap:10px}
.brandLogo{
  height:54px;
  width:54px;
  display:block;
  object-fit:contain;
  padding:0;
  background:none;
  box-shadow:none;
  border-radius:0;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.40));
}
.brandName{display:none}
@media(min-width:768px){
  .brand{width:96px;height:96px;border-radius:22px}
  .brandLogo{width:72px;height:72px}
}
@media(max-width:520px){
  .brandName{display:none}
  .brandLogo{
  height:54px;
  width:54px;
  display:block;
  object-fit:contain;
  padding:0;
  background:none;
  box-shadow:none;
  border-radius:0;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.40));
}
}

.brandLink{color:inherit;text-decoration:none;display:inline-flex}
.brandLink:focus{outline:2px solid rgba(255,255,255,.35);outline-offset:4px;border-radius:12px}

.btn.disabled{opacity:.55;cursor:not-allowed}

/* Countdown */
.countdown{
  margin-top:10px;
  display:inline-flex;
  gap:10px;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(12px);
}
.countdown .label{
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
  opacity:.9;
}
.countdown .time{
  font-weight:1000;
  font-size:12px;
}


/* ===== Pulse Premium Enhancements ===== */

body{
  background:#07080c;
}

.hero{
  padding:60px 20px 40px;
  text-align:center;
  position:relative;
  overflow:hidden;
}

/* Big logo watermark behind the title */
.hero::before{content:'';position:absolute;inset:0;background:none;opacity:0;pointer-events:none;}

.hero h1{
  font-size:34px;
  letter-spacing:.15em;
  margin:0;
}

.hero p{
  opacity:.7;
  margin-top:10px;
  letter-spacing:.08em;
}

/* --- Home hero: neon circle + watermark (editable from back-office) --- */
.hero.heroNeon{
  padding:70px 20px 45px;
}

.heroNeonCircle{
  width:clamp(190px, 48vw, 280px);
  height:clamp(190px, 48vw, 280px);
  margin:0 auto;
  border-radius:50%;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(0,0,0,.30);

  /* White neon (strong, clean) */
  box-shadow:
    0 0 0 2px rgba(255,255,255,.28),
    0 0 16px rgba(255,255,255,.85),
    0 0 34px rgba(255,255,255,.55),
    0 0 70px rgba(255,255,255,.32),
    0 18px 90px rgba(0,0,0,.65);
}
.heroNeonCircle::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.55);
  box-shadow:
    0 0 10px rgba(255,255,255,.95),
    0 0 26px rgba(255,255,255,.70),
    0 0 55px rgba(255,255,255,.42);
  opacity:1;
  animation: pulseWhiteNeon 2.6s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.heroNeonCircle::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:50%;
  background:rgba(0,0,0,.55);
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.10),
    inset 0 0 30px rgba(255,255,255,.06);
  pointer-events:none;
  z-index:0;
}
@keyframes pulseWhiteNeon{
  0%,100%{ opacity: .92; filter: saturate(1); }
  50%{ opacity: 1; filter: saturate(1.05); }
}

.heroWatermark{
  position:relative;
  z-index:1;
  width:72%;
  height:72%;
  object-fit:contain;
  display:block;
  transform: rotate(0deg);
  filter:
    drop-shadow(0 14px 40px rgba(0,0,0,.78))
    drop-shadow(0 0 16px rgba(255,255,255,.25));
}

/* Pulse XXL: stronger red neon emphasis */
.card.cardXXL{
  box-shadow:
    0 0 0 1px rgba(255,40,90,.28),
    0 0 28px rgba(255,0,80,.22),
    0 0 70px rgba(255,0,60,.12);
}

/* Afterwork: teal/green neon accent (keeps coherence with "Free afterwork" chips) */
.card.cardAfterwork{
  box-shadow:
    0 0 0 1px rgba(50,220,205,.22),
    0 0 26px rgba(50,220,205,.18),
    0 0 70px rgba(50,220,205,.10);
}
.card.cardXXL .chip.xxl{
  border-color: rgba(255,0,80,.55) !important;
  background: rgba(255,0,80,.12) !important;
  box-shadow: 0 0 18px rgba(255,0,80,.30) !important;
}
.card.cardXXL .countdown{
  border-color: rgba(255,0,80,.55) !important;
  background: rgba(255,0,80,.10) !important;
  box-shadow: 0 0 20px rgba(255,0,80,.22) !important;
}
.btn.xxlTicket{
  /* Make the ticket CTA unmistakably red */
  border-color: rgba(255,0,51,.95) !important;
  background: linear-gradient(90deg, rgba(255,0,51,.95), rgba(255,72,0,.92)) !important;
  color: #ffffff !important;
  box-shadow:
    0 0 0 1px rgba(255,0,51,.35),
    0 0 26px rgba(255,0,51,.35),
    0 0 48px rgba(255,0,51,.18) !important;
  text-shadow: 0 0 10px rgba(255,0,51,.35);
}

.btn.xxlTicket.xxlTicketUrgent{
  box-shadow:
    0 0 0 1px rgba(255,0,51,.45),
    0 0 34px rgba(255,0,51,.55),
    0 0 68px rgba(255,0,51,.28) !important;
  animation: pulseTicketGlow 1.2s ease-in-out infinite;
}

@keyframes pulseTicketGlow{
  0%, 100%{ transform: translateZ(0) scale(1); filter: brightness(1); }
  50%{ transform: translateZ(0) scale(1.03); filter: brightness(1.08); }
}


.pulseGlow{
  text-shadow:0 0 18px rgba(255,0,170,.35), 0 0 28px rgba(0,200,255,.25);
}

.sectionWhy{
  padding:60px 20px;
  text-align:center;
}

.sectionWhy ul{
  list-style:none;
  padding:0;
  margin-top:20px;
}

.sectionWhy li{
  margin:10px 0;
  opacity:.85;
}

.desktopSticky{
  position:fixed;
  /* Lift the CTA higher so it doesn't fall into the bottom shadow / browser chrome */
  bottom:90px;
  right:30px;
  padding:14px 20px;
  border-radius:999px;
  background:linear-gradient(90deg,#ff3b3b,#ff9f1a,#ffe600,#2ecc71,#00c2ff,#6c63ff,#ff4fd8);
  color:rgba(0,0,0,.88);
  font-weight:800;
  text-decoration:none;
  box-shadow:0 14px 50px rgba(0,0,0,.65);
  outline:1px solid rgba(255,255,255,.18);
  outline-offset:2px;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.45));
  z-index:9999;
  transition: transform .35s ease, opacity .35s ease;
}

/* On small laptop heights, keep it visible without covering content */
@media(max-height:760px){
  .desktopSticky{bottom:70px;}
}

/* Hide sticky CTAs when dates section is visible */
.desktopSticky.is-hidden{
  opacity:0;
  transform: translateY(140%);
  pointer-events:none;
  z-index:0;
}
.sticky-cta.is-hidden{
  opacity:0;
  transform: translate3d(-50%,140%,0);
  pointer-events:none;
  z-index:0;
}

/* Compact mode (Dates section in view): keep it visible but less intrusive */
.desktopSticky.is-compact{
  opacity:0.92;
  transform: scale(.88);
  bottom:26px;
}
@media(max-height:760px){
  .desktopSticky.is-compact{bottom:18px;}
}
.sticky-cta.is-compact{
  opacity:0.92;
  transform: translate3d(-50%,0,0) scale(.92);
  bottom:18px;
}

@media(max-width:768px){
  .desktopSticky{display:none;}
}

.card:hover{
  transform:translateY(-6px);
  transition:.3s ease;
  box-shadow:0 15px 40px rgba(0,0,0,.5);
}



/* ===== Large Logo Watermark Enhancements ===== */

.headerLogo{background:none;}

.hero{
  position:relative;
  overflow:hidden;
}

.hero::before{content:'';position:absolute;inset:0;background:none;opacity:0;pointer-events:none;}

.eventHeader{
  position:relative;
}

.eventHeader::before{content:'';position:absolute;inset:0;background:none;opacity:0;pointer-events:none;}


/* Lang switch */
.langSwitch{display:inline-flex;gap:8px;align-items:center;margin-left:10px}
.langSwitch a{font-weight:900;letter-spacing:.08em;opacity:.7;text-decoration:none}
.langSwitch a.active{opacity:1}
.langSwitch .sep{opacity:.35}
@media(max-width:520px){
  .langSwitch{margin-left:0}
}


/* Backoffice lineup cards */
.artist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:10px}
.artist-card{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px}
.artist-card img{width:56px;height:56px;border-radius:12px;object-fit:cover;flex:0 0 56px}


/* Mobile Hamburger Nav */
.menuToggle{
  display:none;
  width:44px;height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.92);
  font-size:20px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.menuToggle:active{transform:scale(.98)}

@media(max-width:920px){
  .nav{
    flex-wrap:wrap;
    gap:10px;
    padding:12px 12px;
  }
  .menuToggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:auto;
  }

  /* Hide desktop rows */
  .menu{display:none; width:100%; flex-direction:column; gap:10px; margin-top:10px}
  .langSwitch{display:none; width:100%; justify-content:center; margin-top:8px}

  /* When open, show dropdown in normal flow (no absolute positioning) */
  .nav.open .menu{display:flex}
  .nav.open .langSwitch{display:flex}

  .menu a{
    padding:10px 12px;
    border-radius:14px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    font-size:12px;
  }

  /* Remove duplicate brand text on mobile */
  .brandName{display:none}

  /* Bigger, tap-friendly logo */
  .brandLogo{
  height:54px;
  width:54px;
  display:block;
  object-fit:contain;
  padding:0;
  background:none;
  box-shadow:none;
  border-radius:0;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.40));
}
}

/* Better iPhone safe-area spacing for sticky CTA:
   keep HEIGHT stable (don't change padding), only move it up using bottom. */
.sticky-cta{ bottom: calc(14px + env(safe-area-inset-bottom)); }
.sticky-cta.is-compact{ bottom: calc(18px + env(safe-area-inset-bottom)); }

/* ===== Rainbow Sticky CTA (Pulse) ===== */
.desktopSticky, .sticky-cta {
  background: linear-gradient(90deg,#ff3b3b,#ff9f1a,#ffe600,#2ecc71,#00c2ff,#6c63ff,#ff4fd8);
  background-size: 240% 240%;
  animation: rainbowShift 6s ease-in-out infinite;
}
@keyframes rainbowShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ===== Hero Watermark (editable via backoffice) ===== */
.hero{position:relative;overflow:hidden}
.heroWatermarkImg{
  position:absolute !important;
  left:50%;
  top:54%;
  transform:translate(-50%,-50%) rotate(-6deg);

  height:78%;
  width:auto;
  max-height:78%;
  max-width:95vw;

  object-fit:contain;
  opacity:0.16;
  pointer-events:none;
  z-index:0;
  filter: drop-shadow(0 18px 60px rgba(0,0,0,.45));
}

@media (max-width: 640px){
  .heroWatermarkImg{
    top:56%;
    height:82%;
    max-height:82%;
  }
}


/* ===== Vivid accents (less white, more Pulse) ===== */
:root{
  --pulse-pink: rgba(255,0,170,1);
  --pulse-cyan: rgba(0,200,255,1);
  --pulse-lime: rgba(0,255,120,1);
}

.chip{color:rgba(255,255,255,.92)}
.chip.free{
  color:rgba(185,255,240,.95);
  border-color:rgba(0,200,255,.35);
  box-shadow:0 0 0 1px rgba(0,200,255,.10) inset, 0 8px 24px rgba(0,200,255,.12);
}
.chip.xxl{
  color:rgba(255,200,235,.95);
  border-color:rgba(255,0,170,.35);
  box-shadow:0 0 0 1px rgba(255,0,170,.10) inset, 0 8px 24px rgba(255,0,170,.12);
}

.countdown{color:rgba(255,255,255,.92)}
.chip.free ~ .countdown{
  border-color:rgba(0,200,255,.28);
  background:linear-gradient(135deg, rgba(0,200,255,.14), rgba(0,255,120,.10));
}
.chip.xxl ~ .countdown{
  border-color:rgba(255,0,170,.28);
  background:linear-gradient(135deg, rgba(255,0,170,.14), rgba(255,45,85,.10));
}
.countdown .label{
  opacity:1;
  color:rgba(215,225,255,.82);
}
.chip.free ~ .countdown .label{color:rgba(170,255,240,.92)}
.chip.xxl ~ .countdown .label{color:rgba(255,190,235,.92)}
.countdown .time{
  letter-spacing:.06em;
}
.chip.free ~ .countdown .time{color:rgba(205,255,246,.98)}
.chip.xxl ~ .countdown .time{color:rgba(255,210,240,.98)}

.chip.free ~ .btns .btn:not(.primary){
  border-color:rgba(0,200,255,.28);
  background:linear-gradient(135deg, rgba(0,200,255,.14), rgba(0,255,120,.10));
}
.chip.xxl ~ .btns .btn:not(.primary){
  border-color:rgba(255,0,170,.28);
  background:linear-gradient(135deg, rgba(255,0,170,.14), rgba(255,45,85,.10));
}

/* Section titles on event pages (matches "Mentions légales" energy) */
.sectionTitle{
  font-weight:1000;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:12px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(135deg, rgba(255,0,170,.14), rgba(0,200,255,.12));
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
.sectionTitle::before{
  content:'';
  width:10px;
  height:10px;
  border-radius:50%;
  background:linear-gradient(135deg, rgba(255,0,170,1), rgba(0,200,255,1));
  box-shadow:0 0 0 2px rgba(255,255,255,.10) inset;
}

/* Person names in line-up */
.personName{
  font-weight:1000;
  letter-spacing:.02em;
  background:linear-gradient(135deg, rgba(255,0,170,1), rgba(0,200,255,1));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}


/* Next event ticker */
.nextEventTicker{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 14px;
  z-index: 9999;
  display:flex;
  justify-content:center;
  pointer-events:none;
  z-index:0;
}
.nextEventTicker a{
  pointer-events:auto;
  max-width: min(860px, calc(100% - 24px));
  width:100%;
  border-radius: 14px;
  padding: 12px 14px;
  text-decoration:none;
  color: inherit;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.16);
  overflow:hidden;
}
.nextEventTicker .track{
  display:flex;
  gap: 18px;
  white-space:nowrap;
  will-change: transform;
  animation: nextTicker 18s linear infinite;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nextEventTicker .dot{
  opacity:.7;
}
@keyframes nextTicker{
  0%{ transform: translateX(0); }
  100%{ transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .nextEventTicker .track{ animation:none; }
}


/* Event page: XXL performers & DJs two-column layout + smaller photos */
.twoCols{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:860px){.twoCols{grid-template-columns:1fr 1fr}}

.artist{border:1px solid var(--stroke);background:rgba(0,0,0,.25);backdrop-filter:blur(16px);border-radius:18px;overflow:hidden}
.artistMeta{padding:10px 12px}
.artistName{font-weight:800;letter-spacing:.02em}
.artistDesc{opacity:.8;margin-top:2px;font-size:13px;line-height:1.25}
.igBtn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.26);
  /* Instagram-like gradient */
  background: linear-gradient(135deg,
    rgba(245,133,41,.22),
    rgba(221,42,123,.22),
    rgba(129,52,175,.18),
    rgba(81,91,212,.16)
  );
  text-decoration:none;
  color:rgba(255,255,255,.95);
  font-weight:950;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  max-width:fit-content;
  box-shadow:
    0 0 22px rgba(221,42,123,.18),
    0 0 22px rgba(81,91,212,.14);
  -webkit-tap-highlight-color: transparent;
}
.igBtn:before{content:none;}
.igIcon{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background: linear-gradient(135deg,#f58529,#dd2a7b,#8134af,#515bd4);
  box-shadow:0 0 16px rgba(221,42,123,.22), 0 0 16px rgba(81,91,212,.18);
  /* Ensure the Instagram glyph is always visible inside the gradient square */
  color:#fff;
}
.igIcon svg{width:12px;height:12px;display:block}
.igIcon svg *{stroke:#fff !important; fill:none;}
.igBtn:hover{filter:brightness(1.08);border-color:rgba(255,255,255,.40)}
.igBtn:active{transform:translateY(1px)}
.artistPhoto{display:block;width:100%;height:150px;object-fit:cover;opacity:.92}

/* Slightly smaller than ambience photos: allow ambience cards to stay bigger */
@media(min-width:860px){.artistPhoto{height:160px}}

/* Ambiences should match performer/DJ card sizing and align left-to-right */
.ambience-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:10px
}

/* Ambiances: titre -> image -> texte (plus lisible) */
.artist.ambience{display:flex;flex-direction:column}
.ambienceName{padding:10px 12px 0 12px; text-align:center; font-weight:950; letter-spacing:.04em}
.ambiencePhoto{height:170px; object-fit:contain; background:rgba(0,0,0,.18)}
.ambienceMeta{
  padding:10px 12px 12px 12px;
  text-align:center;
  background:linear-gradient(to bottom, rgba(0,0,0,.20) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.78) 100%);
  border-top:1px solid rgba(255,255,255,.08);
}
.artist.ambience .artistDesc{
  width:100%;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  display:block;
  line-height:1.35;
}


/* Ambiences description: strong neon (line1 + line2) */
.artist.ambience .ambLine1,
.artist.ambience .ambLine2{
  display:block;
  margin-top:6px;
  padding:8px 10px;
  border-radius:12px;
  background: rgba(0,0,0,.38);
  border: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(6px);
}

.artist.ambience .ambLine1{
  font-weight:950;
  letter-spacing:.03em;
  font-size:14px;
  color: var(--pulseText, rgba(255,255,255,.98));
  text-shadow:
    0 0 8px var(--pulseGlow, rgba(255,80,180,.75)),
    0 0 18px var(--pulseGlow, rgba(255,80,180,.65)),
    0 0 34px var(--pulseGlow2, rgba(255,80,180,.40)),
    0 0 60px rgba(255,255,255,.10),
    0 3px 14px rgba(0,0,0,.80);
}

.artist.ambience .ambLine2{
  font-weight:850;
  font-size:13.5px;
  color: var(--pulseText2, rgba(255,255,255,.92));
  text-shadow:
    0 0 8px var(--pulseGlow2, rgba(0,200,255,.45)),
    0 0 18px var(--pulseGlow2, rgba(0,200,255,.40)),
    0 0 34px rgba(255,255,255,.10),
    0 3px 14px rgba(0,0,0,.85);
}


/* Reuse the same per-room glow variables as room cards */
.artist.ambience.room-cabaret{  --pulseGlow: rgba(255,80,180,.55); --pulseGlow2: rgba(255,80,180,.30);  --pulseText: rgba(255,120,210,.98); --pulseText2: rgba(255,230,245,.92); }
.artist.ambience.room-bitchy{   --pulseGlow: rgba(255,0,160,.55);  --pulseGlow2: rgba(255,0,160,.30);  --pulseText: rgba(205,120,255,.98); --pulseText2: rgba(245,225,255,.92); }
.artist.ambience.room-electric{ --pulseGlow: rgba(0,200,255,.55);  --pulseGlow2: rgba(0,200,255,.30);  --pulseText: rgba(120,220,255,.98); --pulseText2: rgba(220,245,255,.92); }
.artist.ambience.room-red{      --pulseGlow: rgba(255,40,40,.60);  --pulseGlow2: rgba(255,40,40,.32);  --pulseText: rgba(255,110,110,.98); --pulseText2: rgba(255,230,230,.92); }

/* Subtle inner glow on the ambience card itself */
.artist.ambience{
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
    0 0 22px var(--pulseGlow2, rgba(170,0,255,.18));
}
.artist.ambience:hover{
  box-shadow:
    0 0 0 1px rgba(255,255,255,.14),
    0 0 14px var(--pulseGlow, rgba(170,0,255,.22)),
    0 0 34px var(--pulseGlow2, rgba(170,0,255,.18));
}

@media(min-width:700px){.ambience-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.ambience-grid{grid-template-columns:repeat(4,1fr)}}

/* Center performer/DJ blocks like the ambience cards (requested) */
.artist-grid .artistMeta{ text-align:center; }
.artist-grid .igBtn{ margin-left:auto; margin-right:auto; }




/* Photos — full page grid + lightbox */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  padding:8px 0 0 0;
}
@media (max-width:1100px){ .photo-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width:820px){ .photo-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:520px){ .photo-grid{ grid-template-columns:1fr; } }
.photo-item{
  border:0;
  padding:0;
  background:transparent;
  border-radius:18px;
  overflow:hidden;
  aspect-ratio: 1 / 1;
  cursor:pointer;
  display:block;
}
.photo-item img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:rgba(0,0,0,.22);
  display:block;
  transform:scale(1);
  transition:transform .35s ease;
}
.photo-item:hover img{ transform:scale(1.04); }

.photo-lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:24px;
}
.photo-lightbox.open{ display:flex; }
.photo-full{
  max-width:min(1100px, 94vw);
  max-height:90vh;
  border-radius:20px;
}
.photo-close{
  position:fixed;
  top:18px;
  right:18px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:26px;
  line-height:40px;
  cursor:pointer;
}


/* --- Line-up cards: make DJ/performers photos smaller + layout nicer --- */
/* IMPORTANT: do NOT affect ambience cards (which are vertical). */
.artist:not(.ambience){
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}
.artist:not(.ambience) .artistMeta{padding:12px 12px; flex:1; min-width:0;}
.artist:not(.ambience) .artistPhoto{
  width:120px;
  height:120px;
  border-radius:14px;
  object-fit:cover;
  flex:0 0 auto;
  margin:12px;
}
/* On small screens, keep it comfortable */
@media (max-width:560px){
  .artist:not(.ambience){flex-direction:row;}
  .artist:not(.ambience) .artistPhoto{width:96px;height:96px;margin:10px;}
}
/* --- Patch v9.5: use uploaded hero watermark instead of static pseudo --- */
.hero::before{display:none !important; background:none !important; content:none !important;}
.heroWatermarkImg{width:min(640px, 82vw) !important; max-height:70vh !important; height:auto !important; opacity:0.12 !important; z-index:0; transform:translate(-50%,-50%) rotate(-4deg) !important; object-fit:contain !important;}
.hero h1, .hero p{position:relative; z-index:1;}

/* --- Patch v9.5: Photos grid denser + square thumbnails --- */
.gallery{grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important; gap:14px !important; padding:24px !important;}
.gallery-item{aspect-ratio: 1 / 1;}
.gallery-item img{width:100%;height:100%;display:block;object-fit:cover}
@media (min-width: 900px){.gallery{grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;}}


/* Ensure hero content stays above watermark */
.hero > *:not(.heroWatermarkImg){position:relative;z-index:1;}
.hero > .heroWatermarkImg{z-index:0;}


/* Keep uploaded logos contained */
.brandLogo{max-width:54px;max-height:54px;}
.eventHero .brandLogo{max-width:54px;max-height:54px;}


/* --- Hotfix: logo + event visuals sizing --- */
.brand{ overflow:hidden; }
.brand img{ width:100%; height:100%; object-fit:contain; display:block; }

.cardVisual{ position:relative; width:100%; aspect-ratio: 16 / 9; overflow:hidden; border-radius:18px; }
.cardVisual img, .cardVisual .cardVisualImg{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

@supports not (aspect-ratio: 16 / 9){
  .cardVisual{ height: 200px; }
}

/* Backoffice photo thumbs (ensure images display even from /backoffice/) */
.photoThumb img{ width:100%; height:100%; object-fit:cover; display:block; }




/* ===== Pulse v9.15 overrides (Photos + Watermark + Default visual robustness) ===== */

/* Photos page: VendrediX-like square grid */
.photo-grid{
  display:grid !important;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
  gap: 12px !important;
}
@media (max-width: 820px){
  .photo-grid{ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important; gap: 10px !important; }
}
@media (max-width: 520px){
  .photo-grid{ grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)) !important; gap: 8px !important; }
}

.photo-item{
  aspect-ratio: 1 / 1 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  border: 0 !important;
  padding: 0 !important;
  background: rgba(255,255,255,.04) !important;
}

.photo-item img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important; /* fill like VendrediX */
  background: transparent !important;
}

/* Hero watermark: smaller and never clipped */
.heroWatermarkImg{
  top: 52% !important;
  transform: translate(-50%,-50%) rotate(-6deg) !important;
  width: min(520px, 78vw) !important;
  max-width: 78vw !important;
  max-height: 62% !important;
  opacity: 0.11 !important;
}
@media (max-width: 520px){
  .heroWatermarkImg{
    width: min(420px, 86vw) !important;
    max-width: 86vw !important;
    max-height: 56% !important;
    opacity: 0.10 !important;
  }
}



/* === Override v9.16: hero watermark smaller & fully contained === */
.hero{ overflow:hidden !important; }
.heroWatermarkImg{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform: translate(-50%,-50%) rotate(-6deg) !important;
  width: min(420px, 70vw) !important;
  max-width: 70vw !important;
  max-height: 220px !important;
  height: auto !important;
  opacity: .18 !important;
  object-fit: contain !important;
  pointer-events:none !important;
}



/* ===== FINAL FIX v9.22 (Watermark + Default visuals + Photos grid) ===== */

/* 1) Hero watermark: ALWAYS contained, always smaller, never clipped */
.hero{ overflow:hidden !important; }
.heroWatermarkImg{
  position:absolute !important;
  left:50% !important;
  top:46% !important;
  transform: translate(-50%,-50%) rotate(-6deg) !important;
  /* Smaller than before: the uploaded watermark was still visually too big */
  width: min(300px, 56vw) !important;
  max-width: 56vw !important;
  max-height: min(190px, 42vh) !important;
  height: auto !important;
  object-fit: contain !important;
  opacity: 0.11 !important;
  pointer-events:none !important;
  z-index:0 !important;
}
@media (max-width:520px){
  .heroWatermarkImg{
    width: min(250px, 74vw) !important;
    max-width: 74vw !important;
    max-height: min(160px, 34vh) !important;
    opacity: 0.09 !important;
  }
}
/* Keep hero text above watermark */
.hero > *:not(.heroWatermarkImg){ position:relative; z-index:1; }

/* 2) Default visuals (fallback logo): MUST fit inside cards (no cropping) */
.thumb img.defaultVisual{
  object-fit: contain !important;
  box-sizing: border-box !important;
  padding: 34px !important;
  width: 100% !important;
  height: 100% !important;
  transform: scale(.96) !important;
  opacity: 1 !important;
}
@media (max-width:520px){
  .thumb img.defaultVisual{ padding: 26px !important; transform: scale(.98) !important; }
}

/* 3) Photos lightbox: full screen, NO nav overlay */
body.lb-open{ overflow:hidden; }
body.lb-open .nav{ opacity:0 !important; pointer-events:none !important; }

/* 4) Photos grid: VendrediX-like aligned squares */
.photo-grid{
  grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)) !important;
  gap: 10px !important;
}
@media (max-width:820px){
  .photo-grid{ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important; }
}
@media (max-width:520px){
  .photo-grid{ grid-template-columns: repeat(auto-fill, minmax(115px, 1fr)) !important; gap: 8px !important; }
}
.photo-item img{
  object-fit: cover !important; /* thumbnails look clean and dense like VendrediX */
  background: transparent !important;
}

.photo-lightbox__backdrop{
  position:absolute; inset:0;
  background:rgba(0,0,0,.92);
}
#photo_lightbox.photo-lightbox{
  position:fixed; inset:0;
  display:flex;
  align-items:center; justify-content:center;
  z-index: 100000; /* above sticky nav */
  padding: 18px;
}
#photo_lightbox[aria-hidden="true"]{ display:none; }
.photo-lightbox__panel{
  position:relative;
  width:min(1200px, 96vw);
  height:min(88vh, 900px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  overflow:hidden;
  background:rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 30px 90px rgba(0,0,0,.65);
}
.photo-lightbox__close{
  position:absolute; top:14px; right:14px;
  width:44px; height:44px; border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.35);
  color:#fff; font-size:26px; line-height:40px;
  cursor:pointer; z-index:2;
}
.photo-lightbox__download{
  position:absolute; top:16px; left:16px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  z-index:2;
}
.photo-lightbox__img{
  width:100%; height:100%;
  object-fit: contain;
  display:block;
}


/* ===== FINAL TUNE v9.25 (watermark centered + larger without cropping; card default logos unchanged) ===== */
.hero{ overflow:hidden !important; }

.heroWatermarkImg{
  position:absolute !important;
  left:50% !important;
  /* Center a bit LOWER than middle so text sits on top, but avoid cropping */
  top:54% !important;
  transform: translate(-50%,-50%) rotate(-6deg) !important;
  width: min(560px, 90vw) !important;
  max-width: 92vw !important;
  /* cap height so it never clips top/bottom of the hero */
  max-height: min(340px, 46vh) !important;
  height:auto !important;
  object-fit:contain !important;
  opacity: 0.14 !important;
  pointer-events:none !important;
  z-index:0 !important;
}

@media (max-width: 520px){
  .heroWatermarkImg{
    top:56% !important;
    width: min(500px, 92vw) !important;
    max-width: 94vw !important;
    max-height: min(320px, 40vh) !important;
    opacity: 0.13 !important;
  }
}

/* Default visual logos inside event cards: bigger but still fully contained */
.thumb img.defaultVisual{
  object-fit: contain !important;
  box-sizing: border-box !important;
  padding: 14px !important;
  transform: scale(1.06) !important;
}
@media (max-width: 520px){
  .thumb img.defaultVisual{
    padding: 10px !important;
    transform: scale(1.08) !important;
  }
}


/* ===== Patch v9.26: Hero watermark visible & never cut ===== */
.hero{position:relative; overflow:hidden;}
.heroWatermarkImg{
  position:absolute !important;
  left:50% !important;
  top:54% !important; /* slightly lower than center but safe */
  transform:translate(-50%,-50%) rotate(-6deg) !important;
  width:min(780px, 92vw) !important;
  max-width:92vw !important;
  max-height:76% !important; /* guarantees no crop top/bottom */
  height:auto !important;
  object-fit:contain !important;
  opacity:0.13 !important;
  z-index:0 !important;
  pointer-events:none !important;
}

.eventHeroCardImage{
  height:min(48vh, 420px) !important;
  background:rgba(0,0,0,.18);
}
.eventHeroCardImage .eventHeroPosterImg{
  object-fit: contain !important;
  padding: 12px;
  background: rgba(0,0,0,.14);
}
@media (max-width: 560px){
  .eventHeroCardImage{
    height:min(38vh, 300px) !important;
  }
  .eventHeroCardImage .eventHeroPosterImg{
    padding: 8px;
  }
}
@media (max-width: 560px){
  .heroWatermarkImg{
    top:56% !important;
    width:min(600px, 94vw) !important;
    max-width:94vw !important;
    max-height:70% !important;
    opacity:0.12 !important;
  }
}
.hero h1, .hero p{position:relative; z-index:1;}


/* ===== Event hero video (Option B) ===== */
.eventHeroVideo{
  position: relative;
  width: 100%;
  height: min(72vh, 560px);
  margin: 14px 0 18px;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.10);
}
.eventHeroVideoEl{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
  z-index: 1;
}
.eventHeroVideoOverlay{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 45%, rgba(0,0,0,.65) 100%);
  pointer-events:none;
  z-index: 3;
}

/* Poster-only hero (when video is disabled/unavailable but a poster image is provided) */
.eventHeroPoster{
  /* poster is displayed as a real <img> (contain), with a blurred cover background */
  background-image: var(--poster);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.eventHeroPoster::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--poster);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: blur(18px) saturate(1.05);
  transform: scale(1.12);
  opacity: .38;
  z-index: 0;
}

.eventHeroPosterImg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: contain;
  z-index: 2;
}
@media (max-width: 560px){
  .eventHeroVideo{
    height: 56vh;
    border-radius: 16px;
  }
}


/* Event hero image (uses event card image if provided) */
.eventHeroImage{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: saturate(1.05) contrast(1.05);
}
.eventHeroImageOverlay{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,.65) 100%);
}

/* Event pages: header logo (overridable via back-office shared.logo) */
body.page-afterwork .topbar,
body.page-xxl .topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
body.page-afterwork .eventBrand,
body.page-xxl .eventBrand{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
body.page-afterwork .eventBrandLogo,
body.page-xxl .eventBrandLogo{
  width:44px;
  height:44px;
  object-fit:contain;
  display:block;
}



/* ==============================
   NAVBAR — boost contrast + neon harmony
   (FR + EN, all pages)
   ============================== */
.nav{
  background: rgba(6,6,10,.62) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  backdrop-filter: blur(18px) saturate(1.25);
  box-shadow:
    0 24px 80px rgba(0,0,0,.68),
    0 0 18px rgba(255,255,255,.10),
    0 0 42px rgba(255,0,80,.14),
    0 0 44px rgba(170,0,255,.22) !important;
}
.nav::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:16px;
  pointer-events:none;
  background: radial-gradient(1200px 120px at 50% 0%,
    rgba(255,255,255,.14),
    rgba(255,255,255,0) 55%);
  mix-blend-mode: screen;
  opacity:.55;
}
.nav::after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:18px;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.20),
      rgba(255,0,80,.20),
      rgba(170,0,255,.22),
      rgba(0,200,255,.18),
      rgba(255,255,255,.20));
  opacity:.22;
  filter: blur(.2px);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  padding:1px;
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: navNeonSweep 5.6s ease-in-out infinite;
}
.nav{ position:sticky; }

@keyframes navNeonSweep{
  0%,100%{ opacity:.18; filter: blur(.2px) saturate(1); }
  50%{ opacity:.30; filter: blur(.2px) saturate(1.08); }
}
.menu a{
  color: rgba(255,255,255,.90) !important;
  text-shadow: 0 0 10px rgba(255,255,255,.06);
}
.menu a:hover{
  text-shadow:
    0 0 10px rgba(255,255,255,.18),
    0 0 18px rgba(170,0,255,.22);
}
.menu a.active{
  text-shadow:
    0 0 12px rgba(255,255,255,.22),
    0 0 20px rgba(170,0,255,.26);
}

/* Logo tile */
.brand{
  width:110px !important;
  height:110px !important;
  border-radius:24px !important;
  padding:4px !important;
  background: rgba(255,255,255,.085) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  box-shadow:
    0 18px 55px rgba(0,0,0,.55),
    0 0 18px rgba(255,255,255,.12),
    0 0 28px rgba(170,0,255,.26) !important;
  position:relative;
}
.brand::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:16px;
  pointer-events:none;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.10),
    inset 0 0 22px rgba(255,255,255,.06);
  opacity:.9;
}
.brand:hover{
  box-shadow:
    0 18px 55px rgba(0,0,0,.55),
    0 0 24px rgba(255,255,255,.16),
    0 0 40px rgba(170,0,255,.32) !important;
}
.brandLogo{
  width:100% !important;
  height:100% !important;
  filter:
    drop-shadow(0 10px 24px rgba(0,0,0,.45))
    drop-shadow(0 0 10px rgba(255,255,255,.14))
    drop-shadow(0 0 18px rgba(170,0,255,.20))
    drop-shadow(0 0 22px rgba(255,0,80,.14)) !important;
}

/* Mobile: keep it clean */
@media (max-width: 720px){
  /* Mobile: reduce navbar height so it doesn't eat the screen */
  .nav{ padding:8px 10px !important; top:8px !important; gap:12px !important; border-radius:14px !important; }
  .brand{ width:74px !important; height:74px !important; border-radius:18px !important; }
  .brandLogo{ width:100% !important; height:100% !important; }
}

/* --- Neon focus for "Prochaine soirée" card highlight (FLASHIER) --- */
.card.neonFocus{
  position:relative;
  overflow: visible !important;
  border-color: rgba(255,255,255,1) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.55),
    0 0 34px rgba(255,255,255,.36),
    0 0 72px rgba(170,0,255,.78),
    0 0 98px rgba(255,0,80,.58),
    0 0 120px rgba(0,200,255,.40),
    0 46px 140px rgba(0,0,0,.78) !important;
  transform: translateZ(0);
  animation: cardNeonPulse 0.85s ease-in-out 0s 5;
}
.card.neonFocus::before{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:18px;
  pointer-events:none;
  background: conic-gradient(from 0deg,
    rgba(255,0,170,.0),
    rgba(255,0,170,.78),
    rgba(0,200,255,.72),
    rgba(0,255,120,.55),
    rgba(255,230,0,.55),
    rgba(255,0,80,.72),
    rgba(255,0,170,.0)
  );
  filter: blur(14px) saturate(1.25);
  opacity:.82;
  mix-blend-mode: screen;
  animation: neonSpin 0.85s linear 0s 5;
}
.card.neonFocus::after{
  content:"";
  position:absolute;
  inset:6px;
  border-radius:14px;
  pointer-events:none;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.18),
    inset 0 0 36px rgba(170,0,255,.22),
    inset 0 0 34px rgba(255,0,80,.18),
    inset 0 0 28px rgba(0,200,255,.14);
  opacity:1;
}
@keyframes cardNeonPulse{
  0%{ filter:saturate(1.05) brightness(1.00); }
  45%{ filter:saturate(1.55) brightness(1.30); }
  100%{ filter:saturate(1.05) brightness(1.00); }
}
@keyframes neonSpin{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}


/* --- FIX: event detail hero should NOT show a second "reflection" background --- */
.eventHeroPoster{
  background-image: none !important;
}
.eventHeroPoster::before{
  display: none !important;
}




/* --- Mobile fix: prevent sticky NEXT EVENT button resizing during scroll (iOS Safari tap issue) --- */
@media (hover: none) and (pointer: coarse){
  .sticky-cta{
    /* avoid transform animations that can cancel taps while scrolling */
    transition: opacity .20s ease;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    /* keep tap area stable during Safari toolbar show/hide */
    padding-bottom: 14px;
  }
  .sticky-cta:active{
    transform: translate3d(-50%,0,0); /* no scale on touch */
  }
  .sticky-cta.is-compact{
    transform: translate3d(-50%,0,0); /* keep same size (no scale) */
  }
}


/* Instagram links on artist/DJ names: must LOOK clickable */
.iglink{
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  cursor: pointer;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.iglink::after{
  content: '↗';
  font-size: .95em;
  opacity: .75;
}
.iglink:hover{
  filter: drop-shadow(0 0 10px rgba(255,255,255,.28));
}
.iglink:focus{
  outline: 2px solid rgba(255,255,255,.35);
  outline-offset: 3px;
  border-radius: 8px;
}

/* Instagram button (artist / DJ) */
.titleWithIg{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.artistName{
  display: inline-block;
}
.igbtn, .igBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 999px;
  font-weight: 950;
  letter-spacing: .08em;
  font-size: 12px;
  text-transform: uppercase;
  color: rgba(255,255,255,.95);
  border: 1px solid rgba(255,255,255,.26);
  /* Instagram-ish gradient */
  background:
    linear-gradient(135deg,
      rgba(245,133,41,.28),
      rgba(221,42,123,.26),
      rgba(129,52,175,.22),
      rgba(81,91,212,.20)
    );
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  box-shadow:
    0 0 24px rgba(221,42,123,.18),
    0 0 24px rgba(81,91,212,.14);
}
.igbtn svg, .igBtn svg{width:16px;height:16px;display:block}
.igbtn .igIcon, .igBtn .igIcon{display:inline-flex;align-items:center;justify-content:center}
.igbtn:hover, .igBtn:hover{
  filter: brightness(1.08);
  border-color: rgba(255,255,255,.40);
}
.igbtn:active, .igBtn:active{
  transform: translateY(1px);
}
.igbtn:focus, .igBtn:focus{
  outline: 2px solid rgba(255,255,255,.35);
  outline-offset: 3px;
}


/* --- FIX: XXL Artist/DJ cards layout (single-line, centered, no IG clipping) --- */
.artist-grid .artist{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.artist-grid .artistMeta{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  padding:10px 12px 12px;
  gap:3px;
}
.artist-grid .artistName{
  width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.artist-grid .artistDesc{
  width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.artist-grid .igBtn{
  width:100%;
  justify-content:center;
  max-width:100%;
}

/* Pulse social footer */

.social-footer{
  display:flex;
  justify-content:center;
  gap:18px;
  margin:28px 0 18px;
}
.social-footer .sf{
  width:46px;
  height:46px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  transition: transform .15s ease, filter .15s ease;
}
.social-footer .sf:hover{ transform: scale(1.08); filter: brightness(1.05); }
.social-footer .sf svg{ width:22px; height:22px; fill:#fff; }
.social-footer .sf-ig{
  background: radial-gradient(circle at 30% 107%,
    #fdf497 0%, #fdf497 5%,
    #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.social-footer .sf-fb{ background:#1877F2; }
.social-footer .sf-wa{ background:#25D366; }

/* Community neon label (footer) */
.community-neon{
  margin-top: 8px;
  font-weight: 900;
  letter-spacing: .02em;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
  text-align:center;
  text-shadow:
    0 0 10px rgba(140,0,255,.55),
    0 0 22px rgba(0,240,255,.25);
}

@keyframes pulseNeonGlow{
  0%,100%{ filter: drop-shadow(0 0 0 rgba(0,0,0,0)); opacity: .92; }
  50%{ filter: drop-shadow(0 0 14px rgba(140,0,255,.35)); opacity: 1; }
}

.community-neon{
  animation: pulseNeonGlow 2.8s ease-in-out infinite;
}

/* Neon halo around social icons to match Pulse style */
.social-footer .sf{ position:relative; }
.social-footer .sf::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  background: inherit;
  opacity:.22;
  filter: blur(10px);
  z-index:-1;
  transition: opacity .15s ease;
}
.social-footer .sf:hover::before{ opacity:.34; }

.social-footer .sf-ig{ box-shadow: 0 10px 30px rgba(0,0,0,.35), 0 0 18px rgba(214,36,159,.38), 0 0 30px rgba(40,90,235,.22); }
.social-footer .sf-fb{ box-shadow: 0 10px 30px rgba(0,0,0,.35), 0 0 18px rgba(24,119,242,.45), 0 0 34px rgba(24,119,242,.25); }
.social-footer .sf-wa{ box-shadow: 0 10px 30px rgba(0,0,0,.35), 0 0 18px rgba(37,211,102,.45), 0 0 34px rgba(37,211,102,.25); }


/* ==============================
   Pulse — Neon boost for event pages (XXL / Afterwork)
   (No text changes, only styling)
   ============================== */

/* Main title + meta */
.page-xxl .h1,
.page-afterwork .h1{
  color: rgba(255,255,255,.98);
  text-shadow:
    0 0 6px rgba(255,46,155,.55),
    0 0 14px rgba(255,46,155,.35);
}

.page-xxl .sub,
.page-afterwork .sub{
  color: rgba(255,255,255,.88);
  text-shadow: 0 0 10px rgba(0,200,255,.18);
}

/* Section titles (e.g., "Les 4 ambiances") */
.page-xxl .sectionTitle,
.page-afterwork .sectionTitle{
  color: rgba(255,255,255,.96);
  text-shadow:
    0 0 6px rgba(0,200,255,.28),
    0 0 14px rgba(255,46,155,.20);
}

/* Top descriptive block (the paragraph + bullets) */
.page-xxl .eventDetails,
.page-afterwork .eventDetails{
  color: rgba(255,255,255,.92);
  font-size: 14px;
  line-height: 1.55;
}

.page-xxl .eventDetails strong,
.page-afterwork .eventDetails strong{
  color: rgba(255,255,255,.98);
  text-shadow:
    0 0 6px rgba(255,46,155,.45),
    0 0 12px rgba(255,46,155,.25);
}

.page-xxl .eventDetails ul,
.page-afterwork .eventDetails ul{
  margin-top: 10px;
}

.page-xxl .eventDetails li,
.page-afterwork .eventDetails li{
  color: rgba(255,255,255,.92);
  text-shadow: 0 0 10px rgba(0,200,255,.10);
}

.page-xxl .eventDetails li::marker,
.page-afterwork .eventDetails li::marker{
  color: rgba(255,46,155,.95);
  text-shadow: 0 0 10px rgba(255,46,155,.35);
}

/* Ambiences cards text */
.page-xxl .ambienceName,
.page-afterwork .ambienceName{
  color: rgba(255,255,255,.98);
  text-shadow:
    0 0 6px rgba(255,46,155,.40),
    0 0 12px rgba(255,46,155,.22);
}

.page-xxl .ambienceMeta .artistDesc,
.page-afterwork .ambienceMeta .artistDesc{
  color: rgba(255,255,255,.86);
  text-shadow: 0 0 10px rgba(0,200,255,.08);
}


/* ===== Pulse Neon Enhancement ===== */

.event-title,
.afterwork-title,
h1{
color:#ffffff;
text-shadow:
0 0 8px rgba(255,60,160,0.9),
0 0 18px rgba(255,60,160,0.7),
0 0 32px rgba(255,60,160,0.5);
}

.event-meta,
.afterwork-meta{
color:#e8e8e8;
text-shadow:0 0 6px rgba(255,60,160,0.45);
}

.event-description,
.afterwork-description,
.event-description li{
color:#f2f2f2;
text-shadow:0 0 4px rgba(255,60,160,0.35);
}

/* room cards glow */
.room-card h3{
text-shadow:
0 0 6px rgba(255,60,160,0.8),
0 0 14px rgba(255,60,160,0.6);
}

.room-card p{
text-shadow:0 0 4px rgba(255,60,160,0.35);
}



/* ===== Pulse Room Hover Glow ===== */

.room-card{
transition:all 0.35s ease;
}

.room-card:hover{
transform:translateY(-6px) scale(1.02);
box-shadow:
0 0 12px rgba(255,60,160,0.8),
0 0 24px rgba(255,60,160,0.6),
0 0 48px rgba(255,60,160,0.35);
border-color:rgba(255,60,160,0.7);
}

.room-card:hover h3{
text-shadow:
0 0 10px #ff3ca0,
0 0 22px #ff3ca0,
0 0 40px rgba(255,60,160,0.8);
}

.room-card:hover p{
text-shadow:0 0 8px rgba(255,60,160,0.6);
}



/* ===== Pulse: stronger readability on home cards ===== */
.card .meta{
  color: rgba(255,255,255,.84);
  text-shadow: 0 0 10px rgba(255,60,160,.18), 0 0 12px rgba(0,200,255,.10);
}
.card .small{
  color: rgba(255,255,255,.90);
  text-shadow: 0 0 10px rgba(0,200,255,.12);
}
.card .body{
  position: relative;
}
.card .body::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.00) 0%, rgba(0,0,0,0.35) 45%, rgba(0,0,0,0.55) 100%);
  pointer-events:none;
  z-index:0;
}
.card .body > *{ position:relative; z-index:1; }

/* ===== Pulse: ambience cards (4 rooms) — darker overlay + distinct glow ===== */
.room-card{
  position:relative;
  overflow:hidden;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.room-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:4px;
  z-index:3;
  opacity:.95;
}
.room-card::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.80) 100%);
  mix-blend-mode: multiply;
  pointer-events:none;
  z-index:1;
}
.room-card .card-img{
  filter: contrast(1.10) saturate(1.18) brightness(.82);
  transform: scale(1.02);
}
.room-card .card-body{
  position:relative;
  z-index:2;
}
.room-card .card-title{
  color: rgba(255,255,255,.98);
  text-shadow: 0 0 10px rgba(255,255,255,.18), 0 0 18px rgba(0,200,255,.14);
}
.room-card .card-line{
  color: rgba(255,255,255,.90);
  text-shadow: 0 0 10px rgba(0,0,0,.45), 0 0 14px rgba(0,200,255,.12);
}

.room-cabaret::before{ background:linear-gradient(90deg,#ff4da6,#ff87d1); }
.room-bitchy::before{ background:linear-gradient(90deg,#c44dff,#ff4da6); }
.room-electric::before{ background:linear-gradient(90deg,#00d9ff,#0077ff); }
.room-red::before{ background:linear-gradient(90deg,#ff2a2a,#ff0000); }

/* Per-room glow colors */
.room-cabaret{ --pulseGlow: rgba(255,80,180,.55); --pulseGlow2: rgba(255,80,180,.28); }
.room-bitchy{  --pulseGlow: rgba(255,0,160,.55);  --pulseGlow2: rgba(255,0,160,.28); }
.room-electric{--pulseGlow: rgba(0,200,255,.55);  --pulseGlow2: rgba(0,200,255,.28); }
.room-red{     --pulseGlow: rgba(255,40,40,.60);  --pulseGlow2: rgba(255,40,40,.30); }

.room-card{
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
    0 0 24px var(--pulseGlow2);
  border-color: rgba(255,255,255,.14);
}
.room-card:hover{
  transform: translateY(-6px) scale(1.02);
  border-color: var(--pulseGlow);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.14),
    0 0 14px var(--pulseGlow),
    0 0 34px var(--pulseGlow2),
    0 0 68px rgba(0,0,0,.20);
}
.room-card:hover .card-title{
  text-shadow:
    0 0 10px rgba(255,255,255,.22),
    0 0 26px var(--pulseGlow);
}


/* Badge glow sync (grid cards + slider) */
.room-cabaret .room-time{ box-shadow:0 0 12px rgba(255,80,180,.35); }
.room-bitchy .room-time{ box-shadow:0 0 12px rgba(196,77,255,.35); }
.room-electric .room-time{ box-shadow:0 0 12px rgba(0,200,255,.35); }
.room-red .room-time{ box-shadow:0 0 12px rgba(255,40,40,.40); }



/* =========================
   Pulse Neon Enhancements v3
   - Make room descriptions + nav + home cards less "fade"
   ========================= */

.event-desc{
  color: rgba(245,250,255,.96);
  line-height:1.45;
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.10);
  text-shadow:
    0 0 10px rgba(255,60,160,.35),
    0 0 18px rgba(0,200,255,.18);
}

/* Make the top list program (event-details) glow a bit more too */
.event-details, .event-details li{
  color: rgba(245,250,255,.96);
  text-shadow: 0 0 10px rgba(255,60,160,.22);
}

/* NAV: subtle neon and better hover */
.menu a{
  position:relative;
  color: rgba(240,245,255,.92);
  text-shadow: 0 0 10px rgba(255,60,160,.18);
  transition: transform .25s ease, text-shadow .25s ease, color .25s ease;
}
.menu a:hover{
  color:#fff;
  transform: translateY(-1px);
  text-shadow:
    0 0 10px rgba(255,60,160,.35),
    0 0 16px rgba(0,200,255,.18);
}
.menu a::after{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(255,0,170,.0), rgba(255,0,170,.65), rgba(0,200,255,.55), rgba(255,0,170,.0));
  opacity:0;
  transform: scaleX(.7);
  transition: opacity .25s ease, transform .25s ease;
}
.menu a:hover::after{
  opacity:1;
  transform: scaleX(1);
}

/* HOME CARDS: make the summary line glow more */
.card .small{
  color: rgba(245,250,255,.96) !important;
  text-shadow:
    0 0 10px rgba(255,60,160,.28),
    0 0 18px rgba(0,200,255,.16);
}

/* ROOMS: fix selectors to match actual markup (.card-title / .card-line) */
.room-card{
  position:relative;
  --g1: rgba(255,60,160,.55);
  --g2: rgba(0,200,255,.30);
  --bar: linear-gradient(90deg, rgba(255,0,170,.75), rgba(0,200,255,.55));
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.room-card::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:4px;
  background: var(--bar);
  z-index:2;
}

/* Per-room identity */
.room-card.room-cabaret{ --bar: linear-gradient(90deg, rgba(255,77,166,.9), rgba(255,135,209,.7)); --g1: rgba(255,77,166,.62); --g2: rgba(255,135,209,.28); }
.room-card.room-bitchy { --bar: linear-gradient(90deg, rgba(196,77,255,.9), rgba(255,77,166,.7)); --g1: rgba(196,77,255,.62); --g2: rgba(255,77,166,.24); }
.room-card.room-electric{ --bar: linear-gradient(90deg, rgba(0,217,255,.9), rgba(0,119,255,.75)); --g1: rgba(0,217,255,.58); --g2: rgba(0,119,255,.30); }
.room-card.room-red    { --bar: linear-gradient(90deg, rgba(255,42,42,.9), rgba(255,0,0,.75));   --g1: rgba(255,42,42,.60); --g2: rgba(255,0,0,.26); }

/* Title + lines */
.room-card .card-title{
  font-weight:900;
  letter-spacing:.02em;
  text-shadow:
    0 0 12px var(--g1),
    0 0 22px rgba(0,0,0,.25);
}
.room-card .card-line{
  color: rgba(235,245,255,.92);
  text-shadow: 0 0 10px rgba(0,0,0,.35);
}
.room-card .room-desc{
  color: rgba(245,250,255,.98);
  text-shadow:
    0 0 12px var(--g1),
    0 0 18px var(--g2),
    0 0 28px rgba(0,0,0,.35);
}

/* Hover club effect */
.room-card:hover{
  transform: translateY(-6px) scale(1.02);
  box-shadow:
    0 0 14px var(--g1),
    0 0 28px var(--g2),
    0 16px 42px rgba(0,0,0,.65);
  border-color: rgba(255,255,255,.22);
}
.room-card:hover .card-title{
  text-shadow:
    0 0 16px var(--g1),
    0 0 26px var(--g2),
    0 0 40px rgba(0,0,0,.35);
}

/* If a room image exists, give it more "club" contrast */
.room-card .card-img{
  transition: filter .35s ease, transform .35s ease;
  filter: contrast(1.10) saturate(1.18) brightness(.90);
}
.room-card:hover .card-img{
  transform: scale(1.02);
  filter: contrast(1.15) saturate(1.25) brightness(1.05);
}


/* Event cards (home + archives): make description "neon" and readable */
.cardDesc{
  margin-top:8px;
  font-size:13px;
  line-height:1.35;
  color: rgba(250,252,255,.98);
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(0,0,0,.30);
  border: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(2px);
  text-shadow:
    0 0 10px rgba(255,255,255,.14),
    0 0 18px rgba(170,0,255,.22),
    0 0 22px rgba(0,200,255,.16),
    0 0 16px rgba(0,0,0,.55);
}
.cardDesc::first-line{
  font-weight: 800;
  color: rgba(255,255,255,.99);
  text-shadow:
    0 0 10px rgba(255,255,255,.18),
    0 0 22px rgba(0,200,255,.22),
    0 0 26px rgba(255,60,160,.18);
}
.cardAfterwork .cardDesc{
  background: rgba(0,0,0,.28);
  border-color: rgba(0,200,255,.18);
  text-shadow:
    0 0 10px rgba(255,255,255,.10),
    0 0 20px rgba(0,200,255,.26),
    0 0 16px rgba(0,0,0,.55);
}
.cardXXL .cardDesc{
  background: rgba(0,0,0,.28);
  border-color: rgba(255,0,80,.18);
  text-shadow:
    0 0 10px rgba(255,255,255,.12),
    0 0 22px rgba(255,0,80,.22),
    0 0 22px rgba(170,0,255,.18),
    0 0 16px rgba(0,0,0,.55);
}

/* HOME: make the date/time line more neon + readable */
.card .meta{
  font-weight: 700;
  letter-spacing: .02em;
  color: rgba(255,255,255,.92);
  text-shadow:
    0 0 12px rgba(255,60,160,.22),
    0 0 18px rgba(0,200,255,.16),
    0 0 18px rgba(0,0,0,.40);
}

/* Navbar links: add neon underline so it feels less "fade" */
.menu a{
  position:relative;
  padding-bottom:6px;
}
.menu a::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:0px;
  height:2px;
  border-radius:2px;
  background: linear-gradient(90deg,
    rgba(255,0,80,.00),
    rgba(255,0,80,.55),
    rgba(170,0,255,.55),
    rgba(0,200,255,.45),
    rgba(255,255,255,.00));
  opacity:0;
  transform: scaleX(.65);
  transition: opacity .25s ease, transform .25s ease;
}
.menu a:hover::after,
.menu a.active::after{
  opacity:.9;
  transform: scaleX(1);
}


/* ===== Mobile navbar compact fix ===== */
@media (max-width: 720px){
  .container{padding:14px !important;}
  .nav{
    padding:6px 8px !important;
    top:6px !important;
    gap:10px !important;
    border-radius:12px !important;
    min-height:64px !important;
  }
  .brand{
    width:58px !important;
    height:58px !important;
    border-radius:14px !important;
    padding:3px !important;
    flex:0 0 58px !important;
  }
  .brandLogo{
    width:100% !important;
    height:100% !important;
  }
  .menuToggle{
    width:42px !important;
    height:42px !important;
    border-radius:12px !important;
    font-size:18px !important;
    flex:0 0 42px !important;
  }
  .menu{margin-top:8px !important;}
  .menu a{
    padding:9px 10px !important;
    font-size:11px !important;
    letter-spacing:.08em !important;
  }
}

@media (max-width: 420px){
  .nav{min-height:60px !important;}
  .brand{width:54px !important;height:54px !important;flex-basis:54px !important;}
  .menuToggle{width:40px !important;height:40px !important;flex-basis:40px !important;}
}


/* ===== Event page mobile sticky ticket CTA ===== */
.eventStickyCta{
  position:fixed;
  left:16px;
  right:16px;
  bottom:calc(10px + env(safe-area-inset-bottom));
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 18px;
  border-radius:999px;
  border:1px solid rgba(255,0,51,.96) !important;
  background:linear-gradient(90deg, rgba(255,0,51,.96) 0%, rgba(255,24,79,.95) 45%, rgba(255,72,0,.92) 100%) !important;
  color:#fff;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:15px;
  text-decoration:none;
  text-align:center;
  box-shadow:0 0 0 1px rgba(255,0,51,.38), 0 0 22px rgba(255,0,51,.45), 0 0 44px rgba(255,0,51,.20), 0 16px 40px rgba(0,0,0,.45) !important;
  z-index:2147483000;
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  backdrop-filter:blur(8px) saturate(1.05);
  -webkit-backdrop-filter:blur(8px) saturate(1.05);
}
.eventStickyCta::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.03));
  opacity:.45;
  pointer-events:none;
}
.eventStickyCta span{
  position:relative;
  z-index:1;
  pointer-events:none;
  text-shadow:0 0 10px rgba(255,0,51,.28);
}
.eventStickyCta:hover{
  box-shadow:0 0 0 1px rgba(255,0,51,.46), 0 0 28px rgba(255,0,51,.62), 0 0 56px rgba(255,0,51,.28), 0 18px 44px rgba(0,0,0,.5) !important;
}
.eventStickyCta:active{transform:scale(.985);}
body.hasEventStickyCta .footer{padding-bottom:96px;}
@media (min-width: 768px){
  .eventStickyCta{display:none;}
  body.hasEventStickyCta .footer{padding-bottom:0;}
}


.ticketUrlRow{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.ticketUrlRow input{flex:1;min-width:260px}
.ticketPresetWrap{min-width:260px;flex:0 0 260px}
.ticketPresetWrap select{width:100%}


/* ===== Final mobile positioning tweaks ===== */
@media (max-width: 767px){
  .nav{
    top:6px !important;
  }
  .container{
    padding-top:12px;
  }
  .eventStickyCta{
    left:12px;
    right:12px;
    bottom:calc(8px + env(safe-area-inset-bottom));
  }
}


/* ===== Event pages: tighter mobile header + working dropdown space ===== */
@media (max-width: 767px){
  body[data-pulse-page] .container{
    padding:10px 10px 16px !important;
  }
  body[data-pulse-page] .nav{
    top:4px !important;
    min-height:54px !important;
    padding:7px 8px !important;
    gap:8px !important;
    border-radius:14px !important;
  }
  body[data-pulse-page] .brandLink{
    flex:0 0 auto;
  }
  body[data-pulse-page] .brand{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    border-radius:12px !important;
    padding:2px !important;
    flex:0 0 48px !important;
  }
  body[data-pulse-page] .brandLogo{
    width:100% !important;
    height:100% !important;
  }
  body[data-pulse-page] .menuToggle{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    border-radius:12px !important;
    font-size:17px !important;
    flex:0 0 38px !important;
    position:relative;
    z-index:5;
  }
  body[data-pulse-page] .nav.open .menu,
  body[data-pulse-page] .nav.open .langSwitch{
    position:relative;
    z-index:4;
  }
  body[data-pulse-page] .menu{
    margin-top:8px !important;
  }
  body[data-pulse-page] .menu a{
    font-size:11px !important;
    padding:10px 12px !important;
  }
}

@media (max-width: 420px){
  body[data-pulse-page] .nav{
    min-height:50px !important;
    padding:6px 7px !important;
  }
  body[data-pulse-page] .brand{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    flex-basis:44px !important;
  }
  body[data-pulse-page] .menuToggle{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    flex-basis:36px !important;
  }
}

/* ===== Global mobile navbar compact size (match event pages across whole site) ===== */
@media (max-width: 767px){
  .container{
    padding:10px 10px 16px !important;
  }
  .nav{
    top:4px !important;
    min-height:54px !important;
    padding:7px 8px !important;
    gap:8px !important;
    border-radius:14px !important;
  }
  .brandLink{
    flex:0 0 auto;
  }
  .brand{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    border-radius:12px !important;
    padding:2px !important;
    flex:0 0 48px !important;
  }
  .brandLogo{
    width:100% !important;
    height:100% !important;
  }
  .menuToggle{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    border-radius:12px !important;
    font-size:17px !important;
    flex:0 0 38px !important;
    position:relative;
    z-index:5;
  }
  .nav.open .menu,
  .nav.open .langSwitch{
    position:relative;
    z-index:4;
  }
  .menu{
    margin-top:8px !important;
  }
  .menu a{
    font-size:11px !important;
    padding:10px 12px !important;
  }
}

@media (max-width: 420px){
  .nav{
    min-height:50px !important;
    padding:6px 7px !important;
  }
  .brand{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    flex-basis:44px !important;
  }
  .menuToggle{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    flex-basis:36px !important;
  }
}


/* Public event pages: Google Maps CTA */
.btn.btn-maps{
  border-color: rgba(120,220,255,.45);
  box-shadow: 0 0 0 1px rgba(120,220,255,.10) inset, 0 0 18px rgba(0,200,255,.16);
}
.btn.btn-maps:hover{
  border-color: rgba(120,220,255,.78);
  box-shadow: 0 0 0 1px rgba(120,220,255,.18) inset, 0 0 24px rgba(0,200,255,.28);
}


/* Public event pages: uploaded event image larger again, left-aligned, and without the dark frame */
.eventHeroCardImage{
  height:auto !important;
  min-height:0;
  margin: 10px 0 16px;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
}
.eventHeroCardImage::before,
.eventHeroCardImage .eventHeroVideoOverlay{
  display:none !important;
}
.eventHeroCardImage .eventHeroPosterImg{
  position: relative !important;
  inset: auto !important;
  display:block;
  width: min(760px, 92vw);
  max-width: 100%;
  height: auto !important;
  max-height: 460px;
  object-fit: contain !important;
  object-position: left top !important;
  padding: 0 !important;
  margin: 0;
  background: transparent !important;
  z-index: 1;
}
@media (max-width: 560px){
  .eventHeroCardImage{
    margin: 8px 0 12px;
  }
  .eventHeroCardImage .eventHeroPosterImg{
    width: 100%;
    max-height: 360px;
  }
}
