/* Nightlife discovery: artwork leads, controls stay quiet. Loaded after legacy styles. */
.organizer-section { max-width: 1320px; margin: 1rem auto 3rem; padding: 0 1.5rem; }
.organizer-banner { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 3rem; padding: 3rem; border-radius: 24px; overflow: hidden; color: #100c22; background: repeating-linear-gradient(-13deg, #9977ee 0 26px, #a384fa 26px 52px); }
.organizer-eyebrow { font: 600 .9rem var(--font-body); text-transform: uppercase; letter-spacing: .2em; margin-bottom: .75rem; }
.organizer-copy h2 { font: 900 clamp(3.8rem, 6.5vw, 6rem)/.87 var(--font-display); text-transform: uppercase; letter-spacing: -.025em; color: #100c22; }
.organizer-description { max-width: 49ch; margin: 1.2rem 0 1rem; color: #100c22; font-size: 1rem; line-height: 1.65; }
.organizer-copy .organizer-eyebrow { color: #100c22; }
.organizer-publish { display: inline-flex; align-items: center; gap: .6rem; min-height: 48px; padding: .75rem 1.4rem; border: 0; border-radius: 999px; background: #100c22; color: #f8f5ff; font: 600 .9rem var(--font-body); cursor: pointer; }
.organizer-publish span { font-size: 1.4rem; line-height: 1; }
.organizer-publish:hover { background: #29203f; }
.organizer-publish:focus-visible { outline: 3px solid #100c22; outline-offset: 5px; }
.organizer-art { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 1.5rem 0; }
.organizer-poster { position: relative; flex: 0 0 46%; aspect-ratio: 4/5; max-width: 185px; border-radius: 12px; overflow: hidden; padding: 12px; box-shadow: 0 18px 24px #26164835; display: flex; flex-direction: column; justify-content: flex-end; }
.organizer-poster-party { background: #79d6ed; transform: rotate(-7deg); z-index: 1; }
.organizer-poster-dance { background: #102d3d; color: #f8f5ff; transform: rotate(4deg); margin-left: .75rem; }
.organizer-poster-dance::before { content: ''; position: absolute; inset: 0 0 48%; background: repeating-linear-gradient(-8deg, #dacda3 0 7px, #102d3d 7px 16px); }
.poster-brand { position: absolute; right: 10px; top: 9px; font: 500 5px var(--font-body); letter-spacing: .15em; }
.organizer-poster strong { position: relative; font: 800 clamp(2rem, 3.7vw, 3.3rem)/.9 var(--font-display); text-transform: uppercase; }
.organizer-poster small { position: relative; margin-top: .5rem; font: 500 5px/1.7 monospace; letter-spacing: .12em; }
.poster-discoball { position: absolute; top: 14%; left: 28%; width: 45%; aspect-ratio: 1; border-radius: 50%; background: repeating-linear-gradient(0deg, transparent 0 9px, #56448e 9px 10px), repeating-linear-gradient(90deg, transparent 0 9px, #56448e 9px 10px), radial-gradient(circle at 70% 70%, #bde9f3, #b091f4 50%, #6448a1); box-shadow: inset -8px -5px 12px #5052a35c; }
.poster-spark { position: absolute; right: 9%; top: 10%; color: #fff; background: #102d3d; border-radius: 50%; font-size: 2.8rem; line-height: 1; }
@media (max-width: 768px) {
  .organizer-section { padding: 0 1rem; margin-bottom: 2rem; }
  .organizer-banner { grid-template-columns: 1fr; padding: 2rem 1.5rem; gap: 1rem; border-radius: 20px; }
  .organizer-copy h2 { font-size: clamp(3.8rem, 15vw, 5rem); }
  .organizer-description { font-size: .95rem; }
  .organizer-art { max-width: 350px; width: 100%; margin: auto; }
  .organizer-poster strong { font-size: clamp(2.5rem, 10vw, 3.3rem); }
}
.map-heading { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin:1rem 0 1.5rem; }
.map-heading h2 { font:800 clamp(2.2rem,4vw,3.5rem)/1.05 var(--font-display); margin-bottom:.6rem; }
.map-heading p:not(.section-eyebrow) { color:var(--text-muted); font-size:.9rem; }
.map-list-toggle { flex-shrink:0; background:var(--cyan); color:#101213; border:0; border-radius:5px; padding:.8rem 1rem; font:600 .9rem var(--font-body); cursor:pointer; }
.map-workspace { display:grid; grid-template-columns:330px minmax(0,1fr); border:1px solid #ffffff30; border-radius:14px; overflow:hidden; background:#14191c; }
.map-results { height:620px; overflow:auto; padding:1.3rem; border-right:1px solid #ffffff25; }
.map-results h3 { font:700 1.7rem var(--font-display); }
.map-result-count { color:var(--text-muted); font-size:.8rem; margin:.4rem 0 1rem; }
.map-event-row { display:flex; align-items:start; gap:.8rem; padding:1rem 0; border-top:1px solid #ffffff20; }
.map-event-row img { width:76px; height:90px; object-fit:contain; border-radius:5px; background:#202426; }
.map-event-row>div { min-width:0; }
.map-event-row button { text-align:left; color:var(--text); background:none; border:0; padding:0; font:700 1.25rem/1.1 var(--font-display); cursor:pointer; }
.map-event-row button:hover,.map-event-row button:focus-visible { color:var(--cyan); }
.map-event-row p { margin:.4rem 0; color:var(--text-muted); font-size:.75rem; }
.map-event-row a { display:inline-block; padding:.4rem 0; color:var(--cyan); font-size:.75rem; }
.map-results-empty { font-size:.9rem; line-height:1.6; color:var(--text-muted); }
.map-canvas-wrap { position:relative; min-width:0; }
#nightlife-map { height:620px; width:100%; background:#152027; z-index:0; }
#nightlife-map .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) brightness(.65) saturate(.4); }
.map-price-marker span { display:block; white-space:nowrap; text-align:center; border:1px solid var(--cyan); background:#14272c; color:var(--cyan); border-radius:7px; padding:6px 9px; font:700 13px var(--font-body); box-shadow:0 3px 10px #0007; }
.map-price-marker:hover span { background:var(--cyan); color:#101213; }
#nightlife-map .leaflet-control-zoom a { background:#182126; color:var(--text); border-color:#ffffff30; }
#nightlife-map .leaflet-control-attribution { background:#101213dc; color:#adb4b7; }
#nightlife-map .leaflet-control-attribution a { color:var(--cyan); }
#nightlife-map .leaflet-popup-content-wrapper,#nightlife-map .leaflet-popup-tip { background:#182126; color:var(--text); }
#nightlife-map .mpopup-img { height:130px; object-fit:contain; background:#101213; }
#nightlife-map .mpopup-title { color:var(--text); }
#map-view:fullscreen { padding:1rem; overflow:auto; background:var(--bg); }
@media(max-width:768px) {
 .map-heading { align-items:start; flex-direction:column; }
 .map-workspace { grid-template-columns:1fr; }
 .map-canvas-wrap { grid-row:1; }
 #nightlife-map { height:420px; }
 .map-results { height:300px; border-right:0; border-top:1px solid #ffffff25; }
 .map-event-row img { width:65px; height:76px; }
}
.map-mode .hero-section, .map-mode .featured-section { display:none; }
.map-mode .search-section { margin-top:72px; }
@media(max-width:768px) { .map-mode .search-section { margin-top:60px; } }
#map-view { border:0; }
.map-workspace, .map-heading { width:100%; }
#nightlife-map .mpopup { display:grid; grid-template-columns:80px minmax(0,1fr); gap:10px; padding:14px; }
#nightlife-map .mpopup-img { width:80px; height:100px; border-radius:4px; }
#nightlife-map .mpopup-body { padding:0; }
#nightlife-map .mpopup-title { font-size:1.2rem; margin:.3rem 0; }
#nightlife-map .mpopup-meta { font-size:.7rem; margin:.4rem 0; }
#nightlife-map .mpopup-btn { background:none; color:var(--cyan); padding:.5rem 0; text-align:left; }
#nightlife-map .leaflet-popup-content-wrapper { border:1px solid var(--cyan); border-radius:10px; }
.map-canvas-wrap .map-ctrl-btn { min-height:44px; border-radius:5px; }
.map-event-row.is-selected { background:#71dfdf12; border-color:var(--cyan); }
:root {
  --bg: #101213;
  --bg-card: #181b1d;
  --bg-surface: #202426;
  --text: #f4f4ed;
  --text-muted: #adb4b7;
  --cyan: #71dfdf;
  --violet: var(--cyan);
  --border-dim: 1px solid #ffffff24;
}
html { scroll-padding-top: 88px; }
header, header.scrolled { background: #101213f5; border-bottom: var(--border-dim); backdrop-filter: none; }
.nav { height: 72px; max-width: 1320px; gap: 1.5rem; }
.logo-text { font-size: 2rem; }
.nav-links a { text-transform: none; letter-spacing: 0; font-size: .9rem; }
.nav-city-wrapper { border: 0; padding-inline: .5rem; }
.btn-primary, .auth-login-btn { border-radius: 4px; min-height: 44px; }
.btn-primary { background: var(--cyan); color: var(--bg); }
.section-container, .search-section-inner { max-width: 1320px; }
.section-container { padding-block: 2.75rem; }
.hero-section { margin-top: 72px; height: 330px; }
.hero-image { object-position: center 48%; }
.hero-image-overlay { background: linear-gradient(90deg, #101213f0, #10121360 65%, #10121330), linear-gradient(0deg, #101213a0, transparent 60%); }
.hero-image-content { left: max(1.5rem, calc((100% - 1272px) / 2)); right: 1.5rem; bottom: 2rem; max-width: 900px; }
.hero-kicker { font-size: .7rem; letter-spacing: .13em; margin-bottom: 1rem; }
.hero-title { font-size: clamp(4rem, 7.5vw, 6.5rem); line-height: .94; letter-spacing: -.025em; max-width: none; }
.hero-description { margin-top: .8rem; font-size: 1rem; max-width: 52ch; }
.hero-video-toggle { min-height: 44px; margin-top: .8rem; border: 0; padding: 0; background: none; text-decoration: underline; text-underline-offset: 5px; font-size: .8rem; }
.search-section { background: var(--bg); box-shadow: none; border-bottom: var(--border-dim); }
.search-section-inner { padding-block: 1.3rem; }
.search-bar-container { padding: 0; }
.search-bar { background: var(--bg-card); border: 1px solid #ffffff30; border-radius: 5px; min-height: 56px; }
.search-filter-btn { border-left: var(--border-dim); border-radius: 0; min-height: 44px; color: var(--text); }
.quick-date-pills { margin-top: .8rem; padding-bottom: 0; gap: .6rem; }
.quick-date-pill { min-height: 44px; border-radius: 4px; border: var(--border-dim); background: transparent; padding: .55rem 1.1rem; font-size: .85rem; }
.search-filters { display: flex; flex-wrap: wrap; border: 0; }
.filter-price-group, .filter-geo-group, .reaction-filters { flex-basis: 100%; }
.section-eyebrow { font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 600; color: var(--cyan); margin-bottom: .5rem; }
.section-title { font-size: clamp(2.4rem, 4vw, 3.3rem); letter-spacing: -.015em; }
.section-header { align-items: end; margin-bottom: 1.5rem; }
.featured-section { background: var(--bg); border: 0; }
.featured-section .section-container { padding-bottom: .5rem; }
.featured-track { align-items: flex-start; gap: 1.5rem; padding: 4px 4px 12px; scroll-padding-inline: 4px; }
.featured-card { flex: 0 0 calc((100% - 4.5rem) / 4); min-width: 220px; }
.featured-card-media { border: 0; aspect-ratio: 1; background: var(--bg-card); isolation: isolate; }
.featured-card-media img { position: relative; width: 100%; height: 100%; object-fit: contain; }
.featured-card:hover .featured-card-media img { transform: none; }
.featured-card-info { position: static; padding: 1rem 0 0; }
.featured-card-info h3 { font-size: 1.6rem; line-height: 1.05; min-height: 2.1em; margin-bottom: .45rem; }
.featured-card-subtitle { color: var(--cyan); font-size: .8rem; }
.featured-card-venue { color: var(--text-muted); margin-top: .35rem; font-size: .8rem; }
.featured-price { display: block; margin-top: .55rem; color: var(--text); font-size: .85rem; font-weight: 600; }
.featured-btn { width: 44px; height: 44px; border: var(--border-dim); border-radius: 50%; color: var(--text); }
.sort-controls { display: flex; align-items: center; gap: .65rem; }
.sort-buttons, .sort-label { display: none; }
.event-scope-label { font-size: .8rem; }
#event-scope, .agenda-sort-select { min-height: 44px; background: var(--bg-card); border: var(--border-dim); color: var(--text); padding: .55rem .7rem; border-radius: 4px; font: inherit; font-size: .8rem; max-width: 100%; }
.grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; row-gap: 1.5rem; }
.agenda-day { grid-column: 1 / -1; font-size: 1.5rem; line-height: 1.2; letter-spacing: 0; padding: 1.15rem 0 0; border-top: var(--border-dim); }
.agenda-day::first-letter { text-transform: uppercase; }
.agenda-day:not(:first-child) { margin-top: 1rem; }
.grid > .card, .grid > .card:nth-child(6n + 1), .grid > .card:nth-child(6n + 2) { grid-column: span 3; }
.card { align-self: start; height: auto; background: transparent; border: 0; box-shadow: none; will-change: auto; transition: color .2s; }
.card:hover { transform: none; box-shadow: none; border: 0; }
.card-image-container { aspect-ratio: 1; background: var(--bg-card); border-radius: 3px; isolation: isolate; }
.card-image { position: relative; width: 100%; height: 100%; object-fit: contain; }
.featured-card-media img.poster-backdrop,
.card-image-container img.poster-backdrop {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; filter: blur(20px) brightness(.55);
  transform: scale(1.2); pointer-events: none; z-index: -1;
}
.featured-card:hover .featured-card-media img.poster-backdrop { transform: scale(1.2); }
.card-overlay, .card-date-badge { display: none; }
.card-content { padding: .9rem 0 .5rem; gap: .5rem; }
.card-badges { position: static; margin-bottom: .2rem; }
.badge { background: transparent; border: var(--border-dim); color: var(--text-muted); padding: .15rem .4rem; font: 500 .65rem var(--font-body); text-transform: uppercase; letter-spacing: .04em; backdrop-filter: none; }
.card-title { font-size: 1.6rem; text-transform: none; line-height: 1.08; min-height: 2.16em; text-wrap: pretty; }
.card-date-line { font-size: .76rem; font-weight: 500; }
.info-item { font-size: .8rem; line-height: 1.5; }
.card-footer { border: 0; padding-top: .3rem; flex-wrap: wrap; }
.card-price { font: 600 .85rem var(--font-body); text-transform: none; color: var(--text); }
.btn-card-action { flex: 0 0 auto; border: 0; padding-inline: 0; font: 500 .8rem var(--font-body); text-transform: none; letter-spacing: 0; }
.btn-card-action::after { content: '↗'; margin-left: .4rem; }
.btn-card-action:hover { background: none; color: var(--text); }
.btn-fav { background: #101213e8; border: 1px solid #ffffff30; border-radius: 50%; top: .6rem; right: .6rem; color: var(--text); }
.btn-fav:hover, .btn-fav.active { color: var(--cyan); background: var(--bg); }
.card-more { border-top: var(--border-dim); padding: .45rem 0; }
.card-more summary { min-height: 32px; padding-top: .35rem; font-size: .75rem; }
.card-more .btn-going { min-height: 44px; }
.styles-section { background: var(--bg); }
.styles-grid { margin-top: 1.5rem; }
.styles-grid .style-card, .styles-grid .style-card:last-child { min-height: 92px; padding-inline: 1rem; font-size: 2rem; }
.site-footer { background: var(--bg); border-top: var(--border-dim); }
.mobile-bottom-nav { background: #101213fa; border-top: var(--border-dim); backdrop-filter: none; }
.mobile-bottom-nav__btn.is-active { background: transparent; }
.det-hero { margin-top: 72px; height: auto; min-height: 290px; background: var(--bg-card); }
.det-hero-bg { opacity: .24; filter: blur(16px); }
.det-hero-overlay { background: linear-gradient(0deg, var(--bg), #10121370); }
.det-hero-inner { position: relative; max-width: 1320px; margin: auto; padding: 3rem 1.5rem 2rem; }
.det-title { font-size: clamp(2.6rem, 5vw, 4.8rem); max-width: 22ch; line-height: 1; }
.det-meta-pill { background: transparent; border: 0; padding-left: 0; }
.det-tag { border-radius: 3px; font-size: .75rem; }
.det-body { max-width: 1320px; grid-template-columns: minmax(0, 1fr) 340px; gap: 3rem; }
.det-main { min-width: 0; grid-column: 1; grid-row: 1; }
.det-sidebar { grid-column: 2; grid-row: 1; }
.det-action-card .det-social-proof { margin: .25rem 0; padding: .75rem 0; border: 0; border-block: var(--border-dim); background: transparent; }
.det-action-card .det-sp-actions { flex-wrap: wrap; }
.det-action-card .det-sp-btn, .det-btn-sec { min-height: 44px; }
.det-action-card .det-sp-counter { flex-direction: row; align-items: baseline; gap: .5rem; }
.det-action-card .det-sp-num { font-size: 1.3rem; }
.det-action-card .det-sp-counters { gap: 1.25rem; margin-bottom: .7rem; }
.det-action-divider { display: none; }
.det-action-secondary { display: grid; grid-template-columns: 1fr 1fr; }
.det-action-secondary a:last-child { grid-column: 1 / -1; }
.det-action-price { text-align: left; border: 0; padding-bottom: 0; }
.det-action-card { gap: .75rem; }
.det-action-card { background: var(--bg-card); border: var(--border-dim); border-radius: 5px; }
.det-btn-buy, .det-btn-buy:hover { background: var(--cyan); color: var(--bg); border-radius: 3px; }
.det-btn-buy:hover { filter: brightness(1.08); }
.det-section-title { border: 0; padding: 0; font-size: 1.8rem; text-transform: none; }
.det-gallery-main { aspect-ratio: auto; background: var(--bg-card); }
.det-gallery-main-img { width: 100%; height: auto; max-height: 650px; object-fit: contain; }
.det-gallery-main:hover .det-gallery-main-img { transform: none; }
.det-info-card { border: 0; border-bottom: var(--border-dim); padding-inline: 0; background: transparent; }
.det-info-icon { color: var(--cyan); border: 0; background: transparent; }
.det-countdown-wrap { background: transparent; border: 0; padding: 0; }
.det-fav { top: 1rem; right: 1.5rem; }
@media (max-width: 1024px) {
  .grid > .card, .grid > .card:nth-child(6n + 1), .grid > .card:nth-child(6n + 2) { grid-column: span 4; }
  .featured-card { flex-basis: calc((100% - 3rem) / 3); }
  .nav { gap: .75rem; }
  .det-body { gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 300px; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 72px; }
  .nav { height: 60px; padding-inline: 1rem; gap: .5rem; }
  .logo-text { font-size: 1.6rem; }
  .nav-city-wrapper { display: flex; padding: 0; min-width: 0; flex: 1; }
  .nav-city-wrapper select { width: 100%; max-width: 155px; min-height: 44px; font-size: .75rem; }
  .nav-actions > .btn-icon { display: none; }
  .nav-city-globe { display: none; }
  .hero-section { height: 224px; margin-top: 60px; }
  .hero-image-content { left: 1rem; right: 1rem; bottom: 1.2rem; }
  .hero-kicker { font-size: .6rem; margin-bottom: .6rem; }
  .hero-title { font-size: clamp(3rem, 12vw, 4.3rem); }
  .hero-description { font-size: .85rem; max-width: 36ch; margin-top: .55rem; }
  .hero-video-toggle { margin-top: .15rem; min-height: 36px; }
  .search-section-inner { padding: .9rem 1rem; }
  .search-bar { min-height: 50px; padding: .25rem; }
  .search-filter-btn { padding-inline: .6rem; min-height: 44px; }
  .search-filter-btn span { position: static; width: auto; height: auto; overflow: visible; clip: auto; font-size: .75rem; }
  .search-filter-btn svg { width: 16px; }
  .quick-date-pills { padding: 0; margin-top: .65rem; }
  .quick-date-pill { flex: 1; padding-inline: .6rem; justify-content: center; font-size: .8rem; }
  .section-container { padding: 1.75rem 1rem; }
  .section-title { font-size: 2.4rem; }
  .section-eyebrow { font-size: .6rem; }
  .featured-section .section-container { padding-block: 1.75rem .5rem; }
  .featured-header { margin-bottom: 1rem; }
  .featured-header .section-title { font-size: 2rem; }
  .featured-card { flex-basis: 64%; min-width: 0; }
  .featured-track { gap: 1rem; }
  .featured-card-info h3 { font-size: 1.5rem; }
  .sort-controls { display: flex; flex-wrap: wrap; width: 100%; gap: .6rem; margin-top: 1rem; }
  .sort-buttons { display: none; }
  .event-scope-label { width: auto; flex: 1; }
  #event-scope { flex: 1; }
  .agenda-sort-select { flex: 1; min-width: 0; }
  .section-header { margin-bottom: 1rem; }
  .grid { gap: 1rem; }
  .grid > .card, .grid > .card:nth-child(6n + 1), .grid > .card:nth-child(6n + 2) { grid-column: span 6; }
  .card-title { font-size: 1.35rem; }
  .agenda-day { font-size: 1.4rem; }
  .card-date-line { font-size: .7rem; }
  .card-price { font-size: .78rem; }
  .card-footer { gap: 0 .5rem; }
  .card-content { padding-top: .7rem; }
  .styles-grid .style-card, .styles-grid .style-card:last-child { flex-basis: 50%; font-size: 1.75rem; min-height: 72px; }
  .det-hero { margin-top: 60px; height: auto; min-height: 240px; }
  .det-hero-inner { padding: 3rem 1rem 1.5rem; }
  .det-title { font-size: clamp(2.3rem, 9vw, 3.4rem); }
  .det-body { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1rem 1rem 6rem; }
  .det-sidebar { position: static; grid-column: 1; grid-row: 1; }
  .det-main { grid-column: 1; grid-row: 2; }
  .det-gallery-main-img { max-height: 480px; }
  .det-fav { right: 1rem; top: .5rem; }
}
@media (max-width: 359px) {
  .grid > .card, .grid > .card:nth-child(6n + 1), .grid > .card:nth-child(6n + 2) { grid-column: 1 / -1; }
  .search-filter-btn span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .card, .featured-card, .det-btn-buy { transition: none; }
}
