/* ───────────────────────────────────────────────────────────────────────
   BNE.LIVE — 2026 Redesign
   Single SANS direction · dark-primary · Archivo editorial-industrial
   Source of truth: Claude Design handoff (BNE Live Redesign.html)
   ─────────────────────────────────────────────────────────────────────── */

:root {
  /* Palette — dark (default) */
  --bne-bg:         #0c0d10;
  --bne-bg-elev:    #131519;
  --bne-bg-card:    #181b21;
  --bne-fg:         #e8eaee;
  --bne-fg-dim:     rgba(232,234,238,0.55);
  --bne-fg-faint:   rgba(232,234,238,0.28);
  --bne-line:       rgba(232,234,238,0.08);
  --bne-line-strong:rgba(232,234,238,0.16);

  /* Accent — muted slate/blue */
  --bne-accent:     oklch(68% 0.11 240);
  --bne-accent-ink: #ffffff;
  --bne-danger:     #e5484d;
  --bne-success:    #30a46c;

  /* Type stack — Archivo primary (editorial-industrial) */
  --bne-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --bne-body:    'Inter', 'Helvetica Neue', Arial, sans-serif;
  --bne-mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Geometry */
  --bne-radius:      6px;
  --bne-radius-lg:   8px;
  --bne-radius-xl:   12px;
  --bne-shell-max:   1360px;
  --bne-gap:         32px;

  /* Motion */
  --bne-ease:        cubic-bezier(.2,.8,.2,1);
  --bne-fast:        160ms var(--bne-ease);
  --bne-med:         260ms var(--bne-ease);

  /* Poster */
  --bne-poster-radius: 6px;
}

/* ── Light mode (via .bne-light on html/body) ─────────────────────── */
.bne-light {
  --bne-bg:         #f4f5f7;
  --bne-bg-elev:    #eaecef;
  --bne-bg-card:    #ffffff;
  --bne-fg:         #0c0d10;
  --bne-fg-dim:     rgba(12,13,16,0.55);
  --bne-fg-faint:   rgba(12,13,16,0.28);
  --bne-line:       rgba(12,13,16,0.08);
  --bne-line-strong:rgba(12,13,16,0.18);
}

/* ── Global reset + base voice ───────────────────────────────────── */
html, body {
  background: var(--bne-bg) !important;
  color: var(--bne-fg);
  font-family: var(--bne-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: 0;
}
body { min-height: 100vh; }

/* Kill the legacy radial gradient + ellipse */
body::before, body::after { display: none !important; }
.Ellipse { display: none !important; }

.main {
  background: var(--bne-bg);
  color: var(--bne-fg);
  min-height: 100vh;
}

a { color: var(--bne-fg); transition: opacity var(--bne-fast); }
a:hover { color: var(--bne-fg); opacity: .7; text-decoration: none; }

h1, h2, h3, h4, h5, h6,
.ux-title, .form_title {
  font-family: var(--bne-display);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--bne-fg);
  margin: 0 0 12px;
}

.ux-title, h1 { font-size: 44px; line-height: 1.02; }
h2 { font-size: 32px; line-height: 1.08; }
h3 { font-size: 24px; line-height: 1.12; }
h4 { font-size: 18px; line-height: 1.2; }

p { color: var(--bne-fg); margin: 0 0 12px; }

::selection { background: var(--bne-accent); color: var(--bne-accent-ink); }

/* Mono accents for dates / meta */
.bne-mono, .event_list_time, .plan_price, .plan_price_fee,
.plan_sale_price {
  font-family: var(--bne-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 11px;
}

/* ── UX shell container ─────────────────────────────────────────── */
.ux-shell {
  background: transparent;
  padding: 48px 0 96px;
}
.ux-shell .container {
  max-width: var(--bne-shell-max);
  padding-left: 32px;
  padding-right: 32px;
}

@media (max-width: 640px) {
  .ux-shell { padding: 28px 0 64px; }
  .ux-shell .container { padding-left: 20px; padding-right: 20px; }
  .ux-title, h1 { font-size: 30px; }
}

/* ── HEADER — minimal: wordmark + avatar/sign-in ──────────────────── */
.header {
  background: var(--bne-bg);
  border-bottom: 1px solid var(--bne-line);
  position: sticky; top: 0; z-index: 100;
  padding: 0;
}
.header .container { max-width: var(--bne-shell-max); padding: 0 32px; }
.header_inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0;
  min-height: 64px;
}
.header_inner > .col-sm-6 {
  flex: 0 0 auto; max-width: none; width: auto;
  padding: 0;
}
.header_inner > .col-sm-6:last-child { margin-left: auto; }

.header_logo { display: none; } /* legacy image logo — replaced by wordmark */
.bne-wordmark {
  display: inline-block;
  font-family: var(--bne-display);
  font-weight: 800;
  letter-spacing: -0.03em;
  font-size: 20px;
  color: var(--bne-fg) !important;
  text-decoration: none !important;
  transition: opacity var(--bne-fast);
}
.bne-wordmark:hover { opacity: .75; color: var(--bne-fg) !important; }

.header_right_section { text-align: right; }
.header_right_section .dropdown { display: inline-block; }
.header_right_section .dropdown-toggle {
  background: transparent; border: none;
  font-family: var(--bne-body); font-size: 13px;
  color: var(--bne-fg); cursor: pointer;
  padding: 0; display: inline-flex; align-items: center; gap: 10px;
}
.header_right_section .dropdown-toggle::after { display: none; }
.header_right_section .dropdown-toggle span {
  font-weight: 500; letter-spacing: -0.005em;
}

.header_user_icon {
  width: 36px !important; height: 36px !important;
  border-radius: 50%;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  padding: 8px;
  filter: invert(1) brightness(1.1);
  opacity: .9;
  transition: opacity var(--bne-fast);
}
.bne-light .header_user_icon { filter: none; opacity: .8; }
.header_user_icon:hover { opacity: 1; }

.bne-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bne-accent), var(--bne-fg-dim));
  color: var(--bne-accent-ink);
  font-family: var(--bne-display); font-weight: 700; font-size: 13px;
  letter-spacing: 0; text-transform: uppercase;
}

.bne-signin {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 18px;
  background: var(--bne-fg); color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg); border-radius: var(--bne-radius);
  font-family: var(--bne-body); font-size: 13px; font-weight: 500;
  text-decoration: none !important;
  min-height: 40px;
  transition: opacity var(--bne-fast);
}
.bne-signin:hover { opacity: .85; color: var(--bne-bg) !important; }

.dropdown-divider {
  height: 1px; background: var(--bne-line);
  margin: 6px 4px; border: none;
}

.dropdown-menu {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  padding: 6px; margin-top: 8px; min-width: 220px;
}
.dropdown-item {
  color: var(--bne-fg) !important;
  font-family: var(--bne-body); font-size: 13px;
  padding: 10px 12px; border-radius: 4px;
  transition: background var(--bne-fast);
}
.dropdown-item:hover, .dropdown-item:focus {
  background: var(--bne-bg) !important;
  color: var(--bne-fg) !important;
}

/* ── FOOTER — minimal ─────────────────────────────────────────────── */
.footer, footer, .footer_sec {
  background: var(--bne-bg) !important;
  color: var(--bne-fg-dim);
  border-top: 1px solid var(--bne-line);
  padding: 32px 0 !important;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
}
.footer *, footer *, .footer_sec * {
  color: var(--bne-fg-dim) !important;
}
.footer a:hover, footer a:hover { color: var(--bne-fg) !important; opacity: 1; }

.bne-footer-row {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  flex-wrap: wrap; padding: 16px 0;
  max-width: var(--bne-shell-max); margin: 0 auto;
}
.bne-footer-brand { display: inline-flex; align-items: baseline; gap: 12px; }
.bne-footer-wordmark {
  font-family: var(--bne-display); font-weight: 800; letter-spacing: -0.03em;
  font-size: 14px; text-transform: none;
  color: var(--bne-fg) !important; text-decoration: none;
}
.bne-footer-tag {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.12em; color: var(--bne-fg-dim) !important;
}
.bne-footer-nav { display: flex; gap: 20px; flex-wrap: wrap; }
.bne-footer-nav a {
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.12em; text-transform: uppercase;
  text-decoration: none !important;
}
.bne-footer-nav a:hover { color: var(--bne-fg) !important; }
.bne-footer-copy { color: var(--bne-fg-dim) !important; }

/* ───────────────────────────────────────────────────────────────────
   HOMEPAGE v2 — BNE-only class namespace.
   These selectors do NOT appear in style.css so we sidestep the legacy
   `.grid_event_list .event_list_box { width: 23% }` cascade entirely.
   ─────────────────────────────────────────────────────────────────── */

.bne-visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.bne-home {
  background: var(--bne-bg);
  color: var(--bne-fg);
  padding: 40px 0 96px;
  min-height: calc(100vh - 64px);
}
.bne-home-shell {
  max-width: var(--bne-shell-max);
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) { .bne-home-shell { padding: 0 20px; } }

.bne-home-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--bne-gap);
  width: 100%;
  margin: 0;
}
@media (max-width: 1100px) { .bne-home-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
@media (max-width: 760px)  { .bne-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 420px)  { .bne-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

a.bne-card,
a.bne-card:hover,
a.bne-card:focus {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  text-decoration: none;
  color: inherit;
}

.bne-card-inner {
  --bne-poster-hue: 220;
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 320px;
  border-radius: var(--bne-radius-lg);
  overflow: hidden;
  border: 1px solid var(--bne-line);
  cursor: pointer;
  transition: transform var(--bne-med), border-color var(--bne-med), box-shadow var(--bne-med);
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 38%, 14%) 0%,
      hsl(var(--bne-poster-hue), 20%, 8%) 55%,
      var(--bne-bg) 100%);
}
a.bne-card:hover .bne-card-inner,
a.bne-card:focus-visible .bne-card-inner {
  transform: translateY(-2px);
  border-color: var(--bne-line-strong);
  box-shadow: 0 14px 40px rgba(0,0,0,0.35);
}

/* Sold-out treatment matches design's GridCard `opacity: 0.55` wrap. */
a.bne-card.is-sold-out { opacity: 0.55; }
a.bne-card.is-sold-out:hover .bne-card-inner { transform: none; }
a.bne-card.is-sold-out .bne-card-tag { color: var(--bne-fg-faint); }

.bne-card-photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: saturate(.9) contrast(1.02);
}

.bne-card-inner::before {
  content: '';
  position: absolute; inset: 0; z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.6) 78%, rgba(0,0,0,0.9) 100%),
    linear-gradient(165deg, hsla(var(--bne-poster-hue), 35%, 15%, 0.4) 0%, rgba(0,0,0,0) 65%);
}

.bne-card-frame {
  position: absolute; inset: 10px;
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: calc(var(--bne-radius-lg) - 4px);
  z-index: 3;
  pointer-events: none;
}

.bne-card-top {
  position: absolute;
  top: 22px; left: 24px; right: 24px;
  z-index: 4;
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 12px;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.14em;
  color: rgba(255,255,255,0.7);
  line-height: 1.2;
}
.bne-card-date, .bne-card-city {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bne-card-city { text-align: right; }

.bne-card-bottom {
  position: absolute;
  left: 24px; right: 24px; bottom: 24px;
  z-index: 4;
  color: #ffffff;
}
.bne-card-tag {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.18em;
  color: var(--bne-accent);
  margin-bottom: 10px;
  text-transform: uppercase;
}
.bne-card-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 26px;
  line-height: 0.95;
  letter-spacing: -0.035em;
  margin: 0;
  color: #ffffff;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-card-subtitle {
  font-family: var(--bne-body);
  font-size: 13px;
  color: rgba(255,255,255,0.72);
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (min-width: 1280px) { .bne-card-title { font-size: 28px; } }
@media (max-width: 760px) {
  .bne-card-top { top: 16px; left: 18px; right: 18px; font-size: 10px; letter-spacing: 0.1em; }
  .bne-card-bottom { left: 18px; right: 18px; bottom: 18px; }
  .bne-card-title { font-size: 20px; }
  .bne-card-subtitle { font-size: 12px; }
  .bne-card-frame { inset: 8px; }
}

.bne-home-empty {
  grid-column: 1 / -1;
  padding: 80px 32px;
  text-align: center;
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius-lg);
  background: var(--bne-bg-card);
}
.bne-home-empty-kicker {
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.2em;
  color: var(--bne-fg-dim);
  margin-bottom: 12px;
}
.bne-home-empty p {
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  font-size: 14px;
  margin: 0;
}

.bne-home-pagination {
  margin-top: 56px;
  display: flex; justify-content: center;
}
.bne-home-pagination .pagination,
.bne-home-pagination ul.pagination {
  display: flex; gap: 4px;
  margin: 0; padding: 0;
  list-style: none;
}
.bne-home-pagination .page-item { margin: 0; }
.bne-home-pagination .page-link,
.bne-home-pagination span.page-link,
.bne-home-pagination a.page-link {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim);
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.08em;
  padding: 8px 14px;
  min-width: 40px; min-height: 38px;
  text-decoration: none;
  line-height: 1;
  box-shadow: none;
  transition: all var(--bne-fast);
}
.bne-home-pagination .page-link:hover {
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  border-color: var(--bne-line-strong);
}
.bne-home-pagination .page-item.active .page-link {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border-color: var(--bne-fg);
}
.bne-home-pagination .page-item.disabled .page-link {
  opacity: 0.35;
  color: var(--bne-fg-faint);
}

/* ── Legacy homepage classes (kept so old admin/previews still render) ─ */
.event_list_sec { padding-top: 40px; }
.event_list_sec .text-center.pb-4 { display: none; } /* hide legacy h1 */
.event_list_sec .container { max-width: var(--bne-shell-max); }

.grid_event_list,
.event_list_sec .grid_event_list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: var(--bne-gap) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-content: stretch !important;
  flex-wrap: unset !important;
}
@media (max-width: 1100px) {
  .grid_event_list, .event_list_sec .grid_event_list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 24px !important; }
}
@media (max-width: 760px) {
  .grid_event_list, .event_list_sec .grid_event_list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
}
@media (max-width: 420px) {
  .grid_event_list, .event_list_sec .grid_event_list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
}

/* ── POSTER CARD — editorial, typographic, photo-optional ──────────────
   Matches the Claude design handoff: tonal gradient hue derived per event
   id (set via inline --bne-poster-hue), inset frame, date top-left, city
   top-right, tag + title + subtitle bottom.  When an image is supplied it
   sits behind a vignette so the typography always reads. */

/* Override legacy style.css `.grid_event_list .event_list_box { width: 23%; padding: 15px; ... }`
   with higher-specificity + !important so the card stretches to fill the grid cell. */
.grid_event_list .event_list_box,
.grid_event_list > .event_list_box,
.event_list_box.bne-poster,
.event_list_box {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  color: inherit !important;
  width: 100% !important;
  max-width: none !important;
  position: relative;
}
.bne-poster,
.bne-poster:hover { text-decoration: none !important; color: inherit !important; }

.grid_event_list .event_list_box_inner,
.grid_event_list .bne-poster-inner,
.event_list_box_inner,
.bne-poster-inner {
  position: relative;
  width: 100% !important;
  aspect-ratio: 4 / 5;
  min-height: 320px;                  /* safety floor if aspect-ratio is unsupported */
  border-radius: var(--bne-poster-radius) !important;
  overflow: hidden;
  border: 1px solid var(--bne-line) !important;
  padding: 0 !important;
  cursor: pointer;
  transition: transform var(--bne-med), border-color var(--bne-med), box-shadow var(--bne-med);

  /* Tonal gradient by event id — mirrors the design's oklch(18% 0.04 {hue}) → bg gradient. */
  --bne-poster-hue: 220;
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 38%, 14%) 0%,
      hsl(var(--bne-poster-hue), 20%, 8%) 55%,
      var(--bne-bg) 100%) !important;
}
.bne-light .bne-poster-inner {
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 36%, 92%) 0%,
      hsl(var(--bne-poster-hue), 18%, 96%) 55%,
      var(--bne-bg-card) 100%);
}

.event_list_box_inner:hover,
.bne-poster:hover .bne-poster-inner {
  transform: translateY(-2px);
  border-color: var(--bne-line-strong);
  box-shadow: 0 14px 40px rgba(0,0,0,0.25);
}

/* Photo backdrop (optional) — sits at z=1, under the text overlays. */
.bne-poster-photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: saturate(.9) contrast(1.02);
}
/* Vignette + darkening overlay so title/date always read. */
.bne-poster-inner::before {
  content: '';
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.55) 78%, rgba(0,0,0,0.85) 100%),
    linear-gradient(165deg, hsl(var(--bne-poster-hue), 35%, 15%) 0%, rgba(0,0,0,0) 65%);
  pointer-events: none;
}
.bne-light .bne-poster-inner::before {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.35) 82%, rgba(0,0,0,0.55) 100%);
}

/* Inset frame — 1px line at 8px inset, per design. */
.bne-poster-frame {
  position: absolute; inset: 8px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: calc(var(--bne-poster-radius) - 2px);
  z-index: 3;
  pointer-events: none;
}
.bne-light .bne-poster-frame { border-color: rgba(0,0,0,0.06); }

/* Top row — date + city in mono. */
.bne-poster-top {
  position: absolute; top: 18px; left: 20px; right: 20px;
  z-index: 4;
  display: flex; justify-content: space-between;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em;
  color: rgba(255,255,255,0.65);
}
.bne-light .bne-poster-top { color: rgba(0,0,0,0.55); }
.bne-poster-city { text-align: right; }

/* Bottom block — tag + title + subtitle. */
.bne-poster-bottom {
  position: absolute; left: 20px; right: 20px; bottom: 20px;
  z-index: 4;
  color: #fff;
}
.bne-light .bne-poster-bottom { color: var(--bne-fg); }

.bne-poster-tag {
  font-family: var(--bne-mono);
  font-size: 9px; letter-spacing: 0.16em;
  color: var(--bne-accent);
  margin-bottom: 8px;
}
.bne-poster-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 24px;
  line-height: 0.95;
  letter-spacing: -0.035em;
  margin: 0;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-poster-subtitle {
  font-family: var(--bne-body);
  font-size: 12px;
  color: rgba(255,255,255,0.7);
  margin-top: 6px;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-light .bne-poster-subtitle { color: var(--bne-fg-dim); }

/* Bigger title on wide screens. */
@media (min-width: 1200px) {
  .bne-poster-title { font-size: 28px; }
}

/* Legacy selector aliases — older templates may still use these classes. */
.event_list_img_list {
  position: absolute !important;
  inset: 0;
  width: 100% !important; height: 100% !important;
  max-width: none !important; max-height: none !important;
  object-fit: cover;
  border-radius: 0;
  z-index: 1;
}
.event_list_box_inner > img.bne-img-fallback-state,
.bne-poster-photo.bne-img-fallback-state { opacity: 0; }

/* Legacy attend-button (used inside event tiles and elsewhere). */
.attend_main { display: none; } /* no inline CTA on the new poster cards */
.attend_button {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 12px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff !important;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
  border-radius: var(--bne-radius);
  min-height: 36px;
  transition: all var(--bne-fast);
}
.attend_button:hover { background: rgba(255,255,255,0.2); color: #fff !important; opacity: 1; }
.attend_button img { width: 10px; height: 10px; filter: invert(1); }

.bne-empty-state {
  grid-column: 1 / -1;
  padding: 96px 24px; text-align: center;
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius-lg);
  background: var(--bne-bg-card);
}
.bne-empty-state-mono {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bne-fg-dim); margin-bottom: 8px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Pagination — override Bootstrap 4's blue chevrons */
.pagination,
ul.pagination {
  gap: 4px !important;
  margin-top: 48px !important;
  margin-bottom: 0 !important;
  justify-content: center !important;
  padding: 0 !important;
  list-style: none;
  display: flex !important;
}
.pagination .page-item,
ul.pagination li.page-item { margin: 0 !important; }
.pagination .page-link,
ul.pagination .page-link,
.pagination li span.page-link,
.pagination li a.page-link {
  background: transparent !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
  border-radius: var(--bne-radius) !important;
  font-family: var(--bne-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  padding: 8px 14px !important;
  min-width: 40px;
  text-align: center;
  transition: all var(--bne-fast);
  box-shadow: none !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.pagination .page-link:hover,
ul.pagination .page-link:hover {
  background: var(--bne-bg-elev) !important;
  color: var(--bne-fg) !important;
  border-color: var(--bne-line-strong) !important;
}
.pagination .page-item.active .page-link,
ul.pagination .page-item.active .page-link {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
}
.pagination .page-item.disabled .page-link,
ul.pagination .page-item.disabled .page-link {
  opacity: 0.35 !important;
  color: var(--bne-fg-faint) !important;
}
/* Chevron HTML entities inside page-link inherit color */
.pagination .page-link span,
.pagination .page-link[aria-hidden] { color: inherit !important; }

/* ── POSTER — 9:16 variant (hero / event detail) ──────────────────── */
.bne-poster--tall { width: 100%; }
.bne-poster-inner--tall {
  aspect-ratio: 9 / 16;
}
.bne-poster-inner--tall .bne-poster-top {
  font-size: 12px; letter-spacing: 0.14em;
  top: 24px; left: 28px; right: 28px;
}
.bne-poster-inner--tall .bne-poster-bottom {
  left: 28px; right: 28px; bottom: 28px;
}
.bne-poster-inner--tall .bne-poster-tag {
  font-size: 11px; letter-spacing: 0.18em; margin-bottom: 14px;
}
.bne-poster-inner--tall .bne-poster-title {
  font-size: 52px; line-height: 0.92;
  -webkit-line-clamp: 5;
}
.bne-poster-inner--tall .bne-poster-subtitle {
  font-size: 14px; margin-top: 10px;
}
.bne-poster-inner--tall .bne-poster-frame {
  inset: 12px;
}

/* ── EVENT DETAIL — editorial hero + body ─────────────────────────── */
.bne-event {
  background: var(--bne-bg);
  color: var(--bne-fg);
  min-height: calc(100vh - 64px);
}
.bne-event-shell {
  max-width: var(--bne-shell-max);
  margin: 0 auto;
  padding: 40px 32px 96px;
}
@media (max-width: 640px) { .bne-event-shell { padding: 24px 20px 64px; } }

.bne-event-crumb {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-faint);
  margin-bottom: 28px;
  display: flex; align-items: center; gap: 10px;
}
.bne-event-back {
  background: transparent; border: none; padding: 0;
  font: inherit; letter-spacing: inherit; color: inherit !important;
  cursor: pointer; text-decoration: none !important;
}
.bne-event-back:hover { color: var(--bne-fg) !important; opacity: 1; }
.bne-event-crumb-sep { opacity: .5; }

.bne-event-hero {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 56px;
  align-items: start;
}
@media (max-width: 920px) {
  .bne-event-hero {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.bne-event-poster-col {
  position: sticky; top: 88px;
  display: flex; flex-direction: column; gap: 20px;
}
@media (max-width: 920px) {
  .bne-event-poster-col { position: static; max-width: 420px; }
}

.bne-event-share {
  display: flex; justify-content: flex-end; align-items: center;
  position: relative;
}
.bne-share-btn {
  background: transparent; border: none; cursor: pointer;
  padding: 0; color: var(--bne-fg-dim);
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
}
.bne-share-btn:hover { color: var(--bne-fg); }

.bne-event-rail { min-width: 0; }
.bne-event-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(36px, 4.4vw, 64px);
  line-height: 1.0;
  letter-spacing: -0.035em;
  margin: 0 0 16px;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-event-support {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  margin-bottom: 40px;
}
.bne-event-support a {
  color: var(--bne-fg) !important;
  border-bottom: 1px solid var(--bne-line-strong);
  text-decoration: none !important;
  padding-bottom: 1px;
}
.bne-event-support a:hover { border-color: var(--bne-accent); opacity: 1; }

.bne-event-meta {
  margin: 0 0 32px;
  padding: 0;
  border-top: 1px solid var(--bne-line);
}
.bne-event-meta-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid var(--bne-line);
  margin: 0;
}
.bne-event-meta-row dt {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-dim);
  font-weight: 500;
  margin: 0;
  padding-top: 2px;
}
.bne-event-meta-row dd {
  margin: 0;
  display: flex; flex-direction: column; gap: 4px;
  font-family: var(--bne-body);
  color: var(--bne-fg);
}
.bne-event-meta-row dd strong {
  font-weight: 500;
  font-size: 15px;
  letter-spacing: -0.005em;
}
.bne-event-meta-row dd span {
  font-size: 13px;
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
}
.bne-event-meta-row dd p { margin: 0; color: var(--bne-fg-dim); font-size: 13px; }
.bne-event-inline-link {
  align-self: flex-start;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-accent) !important;
  text-decoration: none !important;
  margin-top: 4px;
}
.bne-event-inline-link:hover { opacity: .8; }

.bne-event-cta-row {
  display: flex; gap: 12px; margin-top: 8px;
  flex-wrap: wrap;
}
.bne-event-cta {
  flex: 1 1 auto;
  min-width: 200px;
  min-height: 56px !important;
  font-size: 15px !important;
}

.bne-event-body {
  margin-top: 72px;
  padding-top: 48px;
  border-top: 1px solid var(--bne-line);
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 56px;
}
@media (max-width: 780px) {
  .bne-event-body {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 48px;
    padding-top: 32px;
  }
}
.bne-event-body-label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-event-body-copy {
  max-width: 680px;
  font-family: var(--bne-body);
  font-size: 16px; line-height: 1.65;
  color: var(--bne-fg);
  opacity: .9;
}
.bne-event-body-copy p:first-child {
  font-family: var(--bne-display);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.45;
  color: var(--bne-fg);
  opacity: 1;
  letter-spacing: -0.01em;
  margin: 0 0 24px;
  text-wrap: pretty;
}
.bne-event-body-copy p {
  margin: 0 0 14px;
  text-wrap: pretty;
}

/* Heart / wishlist button next to primary CTA (matches design's square button) */
.bne-event-wishlist {
  width: 52px; height: 52px; flex: 0 0 52px;
  background: transparent;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-size: 18px;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background var(--bne-fast), border-color var(--bne-fast), color var(--bne-fast);
}
.bne-event-wishlist:hover {
  background: var(--bne-bg-elev);
  border-color: var(--bne-accent);
  color: var(--bne-accent);
}
.bne-event-wishlist.is-saved { color: var(--bne-accent); border-color: var(--bne-accent); }

/* ── Event-detail extras: Venue block + Also on related events ───── */
.bne-event-extras {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid var(--bne-line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
@media (max-width: 820px) {
  .bne-event-extras { grid-template-columns: 1fr; gap: 32px; }
}
.bne-event-extra-col { min-width: 0; }
.bne-event-extra-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 28px;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--bne-fg);
  margin: 12px 0 4px;
}
.bne-event-extra-muted {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin: 0 0 18px;
}
.bne-event-map-placeholder {
  height: 200px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  background-image:
    linear-gradient(transparent 23px, rgba(232,234,238,0.04) 24px),
    linear-gradient(90deg, transparent 23px, rgba(232,234,238,0.04) 24px);
  background-size: 24px 24px;
}
.bne-event-facts {
  display: flex; gap: 32px; flex-wrap: wrap;
  margin-top: 20px;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-dim);
  text-transform: uppercase;
}

.bne-event-related-list {
  margin-top: 12px;
  border-top: 1px solid var(--bne-line);
}
a.bne-event-related-item {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--bne-line);
  text-decoration: none !important;
  color: var(--bne-fg) !important;
  transition: padding var(--bne-fast);
}
a.bne-event-related-item:hover { padding-left: 6px; }
a.bne-event-related-item:hover .bne-event-related-arrow { transform: translateX(4px); opacity: 1; }
.bne-event-related-date {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--bne-fg);
}
.bne-event-related-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bne-event-related-copy strong {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-event-related-copy span {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-event-related-arrow {
  font-family: var(--bne-mono);
  font-size: 18px;
  color: var(--bne-fg-faint);
  opacity: .6;
  transition: transform var(--bne-fast), opacity var(--bne-fast);
}
.bne-event-related-empty {
  padding: 28px 0;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  text-align: center;
}

/* ──────────────────────────────────────────────────────────────────
   YOUR TICKETS — 1:1 with the design's DeskTickets component.
   HELLO, NAME kicker + 64px Archivo title + counts · last sign in
   UPCOMING 2-col card grid (QR corner + dashed divider + CTA)
   PAST row list with big day number + venue + ATTENDED chip
   ────────────────────────────────────────────────────────────────── */

.bne-tickets {
  background: var(--bne-bg);
  color: var(--bne-fg);
  padding: 56px 0 96px;
  min-height: calc(100vh - 64px);
}
.bne-tickets-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px;
}
@media (max-width: 640px) { .bne-tickets-shell { padding: 0 20px; } .bne-tickets { padding: 28px 0 56px; } }

.bne-tickets-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 56px;
  gap: 24px; flex-wrap: wrap;
}
.bne-tickets-head .bne-admin-kicker {
  margin-bottom: 14px;
  color: var(--bne-fg-faint) !important;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase;
}
.bne-tickets-h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(44px, 5.2vw, 64px);
  letter-spacing: -0.035em;
  line-height: 1;
  color: var(--bne-fg);
  margin: 0;
}
.bne-tickets-headmeta {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  text-align: right;
}

.bne-tickets-banner {
  max-width: 1280px;
  margin: 24px auto 0;
  padding: 0 48px;
}
@media (max-width: 640px) { .bne-tickets-banner { padding: 0 20px; } }

/* UPCOMING grid */
.bne-tickets-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 24px;
}
@media (max-width: 780px) { .bne-tickets-grid { grid-template-columns: 1fr; } }

/* Ticket card */
.bne-ticket-card {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 28px;
  display: flex; flex-direction: column; gap: 18px;
  transition: border-color var(--bne-fast), transform var(--bne-fast);
}
.bne-ticket-card:hover {
  border-color: var(--bne-line-strong);
  transform: translateY(-1px);
}
.bne-ticket-card-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px;
}
.bne-ticket-card-copy { min-width: 0; flex: 1; }
.bne-ticket-card-meta {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em;
  color: var(--bne-fg-dim);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.bne-ticket-card-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--bne-fg);
  margin: 0;
  text-wrap: balance;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-ticket-card-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin-top: 4px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.bne-ticket-card-qr {
  width: 64px; height: 64px; flex-shrink: 0;
  border: 1px solid var(--bne-line);
  border-radius: 6px;
  background: var(--bne-bg);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.bne-ticket-card-qr img {
  width: 100%; height: 100%; object-fit: contain;
  padding: 2px;
  background: #fff;
}
.bne-ticket-card-qr-stripe {
  width: 100%; height: 100%;
  background: var(--bne-bg);
  background-image: repeating-linear-gradient(45deg, var(--bne-fg) 0 2px, transparent 2px 5px);
  opacity: 0.85;
}

.bne-ticket-card-foot {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap;
  padding-top: 16px;
  border-top: 1px dashed var(--bne-line);
}
.bne-ticket-card-foot-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 12px 20px;
  min-width: 0; flex: 1;
}
.bne-ticket-card-foot-meta > div {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 13px; color: var(--bne-fg);
}
.bne-ticket-card-foot-meta span {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  font-weight: 400;
}
.bne-ticket-card-foot-meta strong {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
}
.bne-ticket-card-actions {
  display: flex; gap: 8px; flex-wrap: wrap;
  align-items: center;
}
.bne-ticket-card-actions .theme_btn,
.bne-ticket-card-actions .bne-auth-ghost {
  min-height: 38px !important;
  padding: 8px 14px !important;
  font-size: 12px !important;
  width: auto !important;
  white-space: nowrap;
}

/* PAST rows */
.bne-tickets-past {
  border-top: 1px solid var(--bne-line);
}
.bne-tickets-past-row {
  display: grid;
  grid-template-columns: 80px 1.5fr 1fr 110px auto;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid var(--bne-line);
  align-items: center;
  opacity: 0.62;
}
@media (max-width: 820px) {
  .bne-tickets-past-row {
    grid-template-columns: 60px 1fr auto;
    gap: 14px;
  }
  .bne-tickets-past-row > :nth-child(3),
  .bne-tickets-past-row > :nth-child(4) { display: none; }
}

.bne-tickets-past-date {
  display: flex; flex-direction: column;
}
.bne-tickets-past-day {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 22px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
}
.bne-tickets-past-month {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--bne-fg-dim);
  margin-top: 4px;
}
.bne-tickets-past-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-tickets-past-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-tickets-past-status {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
.bne-tickets-past-receipt {
  padding: 6px 12px !important;
  min-height: 34px !important;
  font-size: 12px !important;
  width: auto !important;
}

/* ── Legacy event-detail classes (kept for any stray view usage) ──── */
.event_detail_sec { padding-top: 48px; padding-bottom: 96px; }
.event_detail_sec .container { max-width: var(--bne-shell-max); }
.event_detail_sec .row { --bs-gutter-x: 64px; gap: 0; }
.event_detail_left, .event_detail_right { padding: 0 16px; }
.event_detail_left_inner {
  position: sticky; top: 88px;
  /* Tonal fallback for when the hero image can't load — no jarring light admin box. */
  background: var(--bne-bg-elev);
  background-image: linear-gradient(165deg, rgba(125,155,220,0.22) 0%, rgba(232,234,238,0.02) 100%);
  border-radius: var(--bne-radius-lg);
  overflow: hidden;
}
.event_list_img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;                 /* 4:5 reads better on web than 9:16 */
  object-fit: cover;
  border-radius: var(--bne-radius-lg);
  border: 1px solid var(--bne-line);
  background: transparent;
}
.event_list_img.bne-img-fallback-state { opacity: 0; }
.event_detail_left_inner .event_img_btm_txt,
.event_detail_left_inner .share_event_txt {
  padding: 0 16px;
}
.event_detail_left_inner .event_img_btm_txt { padding-top: 16px; }
.event_detail_left_inner .share_event_txt { padding-bottom: 16px; }

.event_img_btm_txt {
  display: flex; flex-direction: column; gap: 10px; margin-top: 20px;
}
.event_img_btm_txt .event_like_icon {
  font-size: 22px; cursor: pointer; color: var(--bne-fg-dim);
}

.share_event_txt {
  margin-top: 12px; text-align: left !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-fg-dim);
  display: flex; align-items: center; gap: 8px;
}
.share_event_txt img { width: 14px; height: 14px; filter: invert(.75); opacity: .8; }
.bne-light .share_event_txt img { filter: invert(.4); }
.share_event_txt .btn-link { color: var(--bne-fg-dim) !important; padding: 0; font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.share_event_txt .btn-link:hover { color: var(--bne-fg) !important; opacity: 1; text-decoration: none; }

.event_detail_box_inner { padding: 0; }
.bne-eyebrow {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--bne-accent); margin-bottom: 16px;
}

.event_detail_box_inner h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(32px, 3.4vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin: 0 0 28px;
  color: var(--bne-fg);
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

.host_txt, .event_schedule_txt, .event_location_txt {
  display: flex !important; gap: 14px;
  padding: 16px 0;
  border-top: 1px solid var(--bne-line);
  align-items: flex-start;
}
.host_txt img, .event_schedule_txt img, .event_location_txt img {
  width: 16px !important; height: 16px; opacity: .6; filter: invert(.8);
  margin-top: 2px; flex-shrink: 0;
}
.bne-light .host_txt img, .bne-light .event_schedule_txt img, .bne-light .event_location_txt img { filter: none; opacity: .5; }
.event_right_txt { flex: 1; }
.event_right_txt span {
  font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--bne-fg-dim); display: block; margin-bottom: 4px;
}
.event_right_txt .event_date_txt span,
.event_right_txt > .event_date_txt > span {
  font-family: var(--bne-body); font-size: 15px; letter-spacing: -0.005em;
  text-transform: none; color: var(--bne-fg); font-weight: 500; margin: 0;
}
.event_right_txt a {
  color: var(--bne-accent); text-decoration: none;
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
}
.event_right_txt a:hover { opacity: .8; color: var(--bne-accent); }
.event_right_txt p {
  font-size: 13px; color: var(--bne-fg-dim); margin: 2px 0;
}

.tickets_price_list_left {
  display: flex; gap: 14px; align-items: center;
  padding: 16px 0; border-top: 1px solid var(--bne-line);
}
.tickets_price_list_left img { width: 16px !important; opacity: .6; filter: invert(.8); }
.bne-light .tickets_price_list_left img { filter: none; opacity: .5; }
.plan_sale_price { color: var(--bne-fg); font-family: var(--bne-display); font-weight: 700; font-size: 20px; letter-spacing: -0.02em; text-transform: none; }
.tickets_price_left_list_inner p {
  display: flex; align-items: baseline; gap: 6px;
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--bne-fg-dim); margin: 0;
}
.plan_price { font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--bne-fg-dim); }

.event_btm_detail {
  margin-top: 32px;
  padding: 24px 0; border-top: 1px solid var(--bne-line);
}
.event_btm_detail_title {
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--bne-fg-dim); margin-bottom: 14px;
}
.event_details {
  font-family: var(--bne-body); font-size: 15px; line-height: 1.55;
  color: var(--bne-fg); opacity: .85;
}

/* CTA buttons (primary) */
.theme_btn, .buy_tickets_btn, .attend_button.theme_btn, .form_submit_btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--bne-body);
  font-size: 14px; font-weight: 500;
  letter-spacing: -0.005em;
  padding: 14px 24px;
  background: var(--bne-fg);
  color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
  border-radius: var(--bne-radius);
  text-transform: none;
  min-height: 48px;
  transition: opacity var(--bne-fast), transform var(--bne-fast);
  cursor: pointer;
  box-shadow: none;
}
.theme_btn:hover, .buy_tickets_btn:hover, .form_submit_btn:hover {
  opacity: .85; color: var(--bne-bg) !important;
}
.theme_btn:disabled, .buy_tickets_btn:disabled, .form_submit_btn:disabled {
  opacity: .4; cursor: not-allowed;
}
.buy_tickets_btn { width: 100%; }

/* ── BUY TICKET — editorial checkout (DeskCheckout match) ─────────── */
.bne-buy {
  background: var(--bne-bg);
  color: var(--bne-fg);
  min-height: calc(100vh - 64px);
  padding: 0;
}
.buy_tickets_sec { padding: 0; background: transparent; }

.bne-buy-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 32px 96px;
}
@media (max-width: 640px) { .bne-buy-shell { padding: 24px 20px 48px; } }

.bne-buy-heading {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(36px, 4.4vw, 52px);
  letter-spacing: -0.03em;
  margin: 0 0 48px;
  color: var(--bne-fg);
}

.bne-buy-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 56px;
  align-items: start;
}
@media (max-width: 960px) {
  .bne-buy-grid { grid-template-columns: 1fr; gap: 32px; }
}

.bne-buy-section { margin-bottom: 40px; }
.bne-buy-section:last-of-type { margin-bottom: 0; }
.bne-section-label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  margin-bottom: 14px;
  text-transform: uppercase;
}

/* Tier list — row per ticket tier */
.bne-tier-list { border-top: 1px solid var(--bne-line); }
.tickets_price_list.bne-tier-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 32px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--bne-line);
  background: transparent;
  border-radius: 0;
  margin: 0;
}
.tickets_price_list.bne-tier-row:hover { border-color: var(--bne-line); background: transparent; }
.bne-tier-info { min-width: 0; }
.bne-tier-name {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  margin: 0;
}
.bne-tier-desc {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 4px;
  line-height: 1.5;
}
.bne-tier-price {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg);
  text-align: right;
  white-space: nowrap;
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
}
.bne-tier-dollar {
  font-family: var(--bne-body); color: var(--bne-fg);
  margin-right: 1px;
}
.plan_sale_price {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--bne-fg);
  text-transform: none;
}
.plan_price_fee.bne-tier-fee {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  margin: 0;
}
.bne-tier-qty { display: flex; align-items: center; }

.plan_add_btn.bne-tier-add {
  min-height: 36px;
  padding: 8px 20px;
  background: transparent;
  color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--bne-fast), border-color var(--bne-fast);
}
.plan_add_btn.bne-tier-add:hover {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg);
}

.plan_quantity_content { display: none; }
.bne-qty-stepper.plan_quantity_content {
  display: none; /* JS toggles on Add */
  align-items: center;
  gap: 10px;
}
.bne-qty-stepper[style*="block"] { display: flex !important; }
.plan_quntity_btns,
.bne-qty-stepper > div.plan_quntity_btns {
  display: inline-flex; align-items: center; gap: 10px;
  border: none; border-radius: 0;
}
.minus_btn, .plus_btn, .bne-qty-btn {
  width: 32px; height: 32px;
  background: transparent;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg) !important;
  font-family: var(--bne-mono);
  font-size: 14px;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 32px; padding: 0;
  transition: border-color var(--bne-fast);
}
.minus_btn:hover, .plus_btn:hover, .bne-qty-btn:hover { border-color: var(--bne-line-strong); }
.minus_btn:disabled, .plus_btn:disabled, .bne-qty-btn:disabled { opacity: .3; cursor: not-allowed; }
.qty_count, .bne-qty-count {
  width: 24px; text-align: center;
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg);
  border: none;
  background: transparent;
  padding: 0;
  align-self: center;
  display: inline-block;
}

/* Assigned seating CTA block */
.bne-seat-cta {
  display: flex; justify-content: space-between; align-items: center;
  gap: 20px;
  padding: 18px 20px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  flex-wrap: wrap;
}
.bne-seat-cta-copy { min-width: 0; flex: 1; }
.plan_add_btn.bne-seat-btn.bne-auth-ghost {
  min-height: 42px;
  padding: 10px 18px;
  background: transparent;
  color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 13px;
  flex-shrink: 0;
}
.plan_add_btn.bne-seat-btn:hover {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg);
}

/* Coupon row */
.tickets_price_coupon_list.bne-coupon-row {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 12px;
  align-items: flex-end;
}
.bne-coupon-row .bne-field { width: 100%; }
.coupon_field, .coupon_code {
  width: 100% !important;
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  font-family: var(--bne-body) !important;
  font-size: 14px !important;
  padding: 12px 14px !important;
  min-height: 48px;
  letter-spacing: 0 !important;
  text-transform: none !important;
  outline: none;
  box-sizing: border-box;
}
.coupon_field:focus, .coupon_code:focus {
  border-color: var(--bne-accent) !important;
  background: var(--bne-bg-card) !important;
}
.coupon_field::placeholder { color: var(--bne-fg-faint); }

/* Selected tickets mirror — shown below coupon as JS populates it */
.display_selected_tickets.bne-buy-selected { margin-top: 24px; }
.display_selected_tickets .tickets_price_list {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  padding: 14px 16px;
  margin-bottom: 8px;
}
.display_selected_tickets .tickets_price_list_inner {
  display: flex; justify-content: space-between; align-items: center;
}

/* Default .checkout_sec still used on seatChart as fixed bottom bar. */
.checkout_sec:not(.bne-buy-summary) {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
  background: var(--bne-bg-elev);
  border-top: 1px solid var(--bne-line-strong);
  padding: 16px 0;
  backdrop-filter: blur(20px);
}
.checkout_sec:not(.bne-buy-summary) .container { max-width: 1280px; }
.checkout_sec:not(.bne-buy-summary) .checkout_sec_inner {
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  flex-wrap: wrap;
}
.checkout_sec:not(.bne-buy-summary) .checkout_sec_left {
  display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-fg-dim);
}
.checkout_sec:not(.bne-buy-summary) .checkout_sec_left p {
  display: inline; margin: 0;
}
.checkout_sec:not(.bne-buy-summary) .checkout_total {
  font-family: var(--bne-display); font-weight: 800; font-size: 22px;
  color: var(--bne-fg); letter-spacing: -0.02em;
  padding-right: 16px; border-right: 1px solid var(--bne-line);
}
.checkout_sec:not(.bne-buy-summary) .checkout_discount,
.checkout_sec:not(.bne-buy-summary) .checkout_total_price,
.checkout_sec:not(.bne-buy-summary) .checkout_ticket {
  color: var(--bne-fg); font-weight: 500;
}
.checkout_sec:not(.bne-buy-summary) .checkout_sec_right {
  width: auto; min-width: 200px;
}

/* ── Right-side sticky ORDER SUMMARY (was fixed bottom bar) ───────── */
.bne-buy-summary-col { position: relative; }
.bne-buy-summary.checkout_sec {
  position: sticky;
  top: 40px;
  left: auto; right: auto; bottom: auto;
  z-index: 1;
  padding: 28px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  backdrop-filter: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (max-width: 960px) {
  .bne-buy-summary.checkout_sec { position: static; margin-top: 0; }
}

.bne-buy-summary-hero {
  display: flex; gap: 14px; align-items: flex-start;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-buy-summary-poster {
  width: 72px; height: 90px; aspect-ratio: 4/5;
  border-radius: var(--bne-radius);
  overflow: hidden;
  border: 1px solid var(--bne-line);
  flex-shrink: 0;
  background: linear-gradient(165deg, hsl(var(--bne-poster-hue,220), 38%, 14%) 0%, hsl(var(--bne-poster-hue,220), 20%, 8%) 100%);
  position: relative;
}
.bne-buy-summary-poster img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.bne-buy-summary-info { min-width: 0; flex: 1; }
.bne-buy-summary-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--bne-fg);
  margin: 0 0 6px;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-buy-summary-meta {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  line-height: 1.5;
}

.bne-buy-summary-lines {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 0 !important;
  background: transparent !important;
  margin: 0 !important;
}
.bne-buy-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  gap: 16px;
  border: none !important;
}
.bne-buy-summary-row span { display: inline; border: none !important; padding: 0 !important; }
.bne-buy-summary-total {
  padding: 14px 0 0 !important;
  margin-top: 10px !important;
  border-top: 1px solid var(--bne-line) !important;
  font-family: var(--bne-display) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  letter-spacing: -0.02em;
  color: var(--bne-fg) !important;
}
.bne-buy-summary-count {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  font-weight: 400;
  margin-left: 4px;
}

/* Force JS-updated values into theme colors */
.bne-buy-summary .checkout_total,
.bne-buy-summary .checkout_discount,
.bne-buy-summary .checkout_total_price {
  color: var(--bne-fg) !important;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  padding: 0;
  border: none;
  background: transparent;
}

.bne-buy-place.checkout_sec_right.buy_tickets_btn.theme_btn {
  width: 100% !important;
  min-width: 0 !important;
  margin: 6px 0 0;
  height: 50px;
  min-height: 50px !important;
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 14px; font-weight: 500;
  cursor: pointer;
  transition: opacity var(--bne-fast);
}
.bne-buy-place.checkout_sec_right.buy_tickets_btn.theme_btn:hover { opacity: .88; }
.bne-buy-place:disabled { opacity: .4; cursor: not-allowed; }
.bne-buy-place .checkout_btn { color: inherit; font: inherit; letter-spacing: 0; text-transform: none; }

/* ── MY EVENTS (host event list) ──────────────────────────────────── */
.bne-myevent { padding: 40px 0 96px; }
.bne-myevent-shell {
  max-width: 1200px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-myevent-shell { padding: 0 20px; } }

.bne-myevent-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap;
  margin-bottom: 32px;
}
.bne-myevent-h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(32px, 4vw, 48px);
  letter-spacing: -0.03em;
  margin: 0;
}
.bne-myevent-cta {
  min-width: auto !important;
  padding: 12px 20px !important;
  min-height: 42px !important;
}

.bne-panel--table { padding: 0; overflow: hidden; }
.bne-panel--table .dataTables_wrapper { padding: 20px 20px 8px; }
.bne-panel--table .dataTables_filter input {
  background: var(--bne-bg) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 8px 12px !important;
  font-family: var(--bne-body);
  font-size: 13px;
  min-height: 36px;
  margin-left: 8px;
}
.bne-panel--table .dataTables_length select {
  background: var(--bne-bg) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 6px 10px !important;
  font-family: var(--bne-body);
}
.bne-panel--table .dataTables_info {
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em;
}
.bne-panel--table .dataTables_paginate .paginate_button {
  background: transparent !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-mono); font-size: 11px;
  border-radius: var(--bne-radius) !important;
  padding: 6px 12px !important;
  margin: 0 2px;
}
.bne-panel--table .dataTables_paginate .paginate_button.current {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
}
.bne-myevent-table img {
  width: 56px; height: 72px;
  object-fit: cover;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
}
.bne-myevent-table .action_btn a,
.bne-myevent-table .action_btn button {
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  padding: 6px 10px;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.1em;
  text-decoration: none;
  cursor: pointer;
  margin-right: 6px;
  text-transform: uppercase;
  display: inline-block;
}
.bne-myevent-table .action_btn a:hover,
.bne-myevent-table .action_btn button:hover {
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  border-color: var(--bne-line-strong);
}

.bne-danger-btn {
  background: var(--bne-danger) !important;
  border-color: var(--bne-danger) !important;
  color: #fff !important;
}
.bne-danger-btn:hover { opacity: .88; }

/* ── STATIC ARTICLE PAGES (about / privacy / refund / support) ───── */
.bne-article { padding: 40px 0 96px; }
.bne-article-shell {
  max-width: 820px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-article-shell { padding: 0 20px; } }

.bne-article-h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(40px, 5vw, 68px);
  letter-spacing: -0.035em;
  line-height: 0.98;
  margin: 8px 0 24px;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-article-lede {
  font-family: var(--bne-body);
  font-size: 18px;
  line-height: 1.55;
  color: var(--bne-fg-dim);
  max-width: 680px;
  margin-bottom: 48px;
}
.bne-article-body {
  font-family: var(--bne-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--bne-fg);
  opacity: .92;
  max-width: 720px;
}
.bne-article-body h2 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.02em;
  margin: 40px 0 12px;
  color: var(--bne-fg);
  opacity: 1;
}
.bne-article-body p {
  margin: 0 0 16px;
  color: var(--bne-fg);
  opacity: .85;
}
.bne-article-body ul {
  padding-left: 20px;
  margin: 0 0 16px;
}
.bne-article-body li {
  margin-bottom: 6px;
  color: var(--bne-fg);
  opacity: .85;
}
.bne-article-body a {
  color: var(--bne-accent) !important;
  border-bottom: 1px solid var(--bne-line-strong);
  text-decoration: none !important;
}
.bne-article-body a:hover { border-color: var(--bne-accent); opacity: 1; }
.bne-article-body strong, .bne-article-body b { color: var(--bne-fg); opacity: 1; font-weight: 600; }

.bne-article-cta-row {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 40px;
}

/* Support grid */
.bne-support-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 24px;
}
@media (max-width: 640px) { .bne-support-grid { grid-template-columns: 1fr; } }
.bne-support-card {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 24px;
}
.bne-support-card .bne-section-label { margin-bottom: 14px; }
.bne-support-card p, .bne-support-card li {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: 0 0 10px;
  line-height: 1.55;
}
.bne-support-card strong {
  display: inline-block;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  font-weight: 500;
  margin-bottom: 2px;
}
.bne-support-card ul { padding-left: 18px; margin: 0; }
.bne-support-card ul li { list-style: disc; }
.bne-support-card a {
  color: var(--bne-accent) !important;
  text-decoration: none !important;
}
.bne-support-card a:hover { opacity: .8; }
.bne-support-note {
  font-family: var(--bne-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  color: var(--bne-fg-faint) !important;
  text-transform: uppercase;
  margin-top: 14px !important;
}

/* ── TOUR DATES ──────────────────────────────────────────────────── */
.bne-tour { padding: 48px 0 96px; }
.bne-tour-shell {
  max-width: 960px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-tour-shell { padding: 0 20px; } }

.bne-tour-head {
  text-align: center;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--bne-line);
  margin-bottom: 24px;
}
.bne-tour-head .bne-eyebrow { color: var(--bne-accent); }
.bne-tour-h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(48px, 6.5vw, 84px);
  letter-spacing: -0.035em;
  line-height: 0.96;
  margin: 8px 0 16px;
  color: var(--bne-fg);
}
.bne-tour-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  line-height: 1.55;
  max-width: 540px;
  margin: 0 auto;
}

.bne-tour-list { display: flex; flex-direction: column; }
.bne-tour-row {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 28px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--bne-line);
}
.bne-tour-row.is-past { opacity: .4; }
.bne-tour-row.is-past .bne-tour-city,
.bne-tour-row.is-past .bne-tour-venue { text-decoration: line-through; }

.bne-tour-date {
  display: flex; flex-direction: column;
  gap: 4px; align-items: flex-start;
}
.bne-tour-month {
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.18em;
  color: var(--bne-fg-faint);
}
.bne-tour-day {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 40px;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--bne-fg);
}

.bne-tour-where { min-width: 0; }
.bne-tour-city {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
  margin-bottom: 4px;
}
.bne-tour-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
}

.bne-tour-btn {
  min-height: 42px !important;
  padding: 10px 20px !important;
  font-size: 13px;
}
.bne-tour-badge {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-dim);
  border: 1px solid var(--bne-line);
  padding: 8px 14px;
  border-radius: var(--bne-radius);
}
.bne-tour-badge--past {
  color: var(--bne-fg-faint);
  border-color: var(--bne-line);
}

@media (max-width: 540px) {
  .bne-tour-row {
    grid-template-columns: 64px 1fr;
    gap: 20px;
  }
  .bne-tour-cta {
    grid-column: 1 / -1;
    margin-top: 8px;
  }
  .bne-tour-day { font-size: 32px; }
  .bne-tour-city { font-size: 17px; }
}

/* ── EVENT EDITOR (add-event / edit-event) ────────────────────────── */
.bne-event-editor { padding: 40px 0 96px; }
.bne-event-editor-shell {
  max-width: 980px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-event-editor-shell { padding: 0 20px; } }

.bne-event-editor-h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(36px, 4.4vw, 56px);
  letter-spacing: -0.03em;
  line-height: 1;
  margin: 8px 0 12px;
  color: var(--bne-fg);
}
.bne-event-editor-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  margin: 0 0 36px;
  line-height: 1.55;
  max-width: 640px;
}
.bne-event-editor-hint {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin: 0 0 16px;
}

.bne-event-editor-section {
  padding: 32px 0;
  border-top: 1px solid var(--bne-line);
  display: flex; flex-direction: column; gap: 14px;
}
.bne-event-editor-section:first-of-type { border-top: none; padding-top: 8px; }
.bne-event-editor-section .bne-section-label { margin: 0 0 6px; }

.bne-field-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 620px) { .bne-field-grid--3 { grid-template-columns: 1fr; } }

/* Native date/time inputs — keep consistent dark theme */
input[type="date"].form_field_input,
input[type="time"].form_field_input,
input[type="number"].form_field_input,
input[type="tel"].form_field_input,
input[type="email"].form_field_input,
input[type="text"].form_field_input,
textarea.form_field_input {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 12px 14px !important;
  font-family: var(--bne-body) !important;
  font-size: 14px !important;
  min-height: 48px;
  width: 100%;
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--bne-fast);
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
  filter: invert(.7);
  cursor: pointer;
}
input.form_field_input:focus,
textarea.form_field_input:focus {
  border-color: var(--bne-accent) !important;
  background: var(--bne-bg-card) !important;
}
input.form_field_input[readonly] {
  opacity: .7;
  cursor: not-allowed;
}

/* CKEditor container */
.bne-editor {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: 0 0 var(--bne-radius) var(--bne-radius);
  color: var(--bne-fg);
  min-height: 180px;
  max-height: 280px;
  overflow: auto;
  padding: 12px;
}
.bne-editor-toolbar {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-bottom: none;
  border-radius: var(--bne-radius) var(--bne-radius) 0 0;
}
.ck.ck-toolbar {
  background: transparent !important;
  border: none !important;
}
.ck.ck-toolbar .ck-button,
.ck.ck-toolbar .ck-dropdown__button {
  color: var(--bne-fg) !important;
  background: transparent !important;
}
.ck.ck-toolbar .ck-button:hover,
.ck.ck-toolbar .ck-dropdown__button:hover {
  background: var(--bne-bg-elev) !important;
}
.ck.ck-toolbar .ck-button.ck-on {
  background: var(--bne-accent) !important;
  color: var(--bne-accent-ink) !important;
}
.ck.ck-content { color: var(--bne-fg); font-family: var(--bne-body); font-size: 14px; }
.ck.ck-content p, .ck.ck-content li { color: var(--bne-fg); }
.ck-focused { border-color: var(--bne-accent) !important; box-shadow: none !important; outline: none !important; }

/* Editor action bar */
.bne-event-editor-actions {
  display: flex; justify-content: flex-end; gap: 10px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--bne-line);
  flex-wrap: wrap;
}

/* Ticket tier table (inside add-event / edit-event) */
.bne-tier-table {
  margin: 0;
  color: var(--bne-fg);
}
.bne-tier-table thead th {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-faint);
  font-weight: 500;
  border-bottom: 1px solid var(--bne-line-strong) !important;
  padding: 14px 12px;
  background: transparent;
}
.bne-tier-table tbody td {
  border-bottom: 1px solid var(--bne-line) !important;
  padding: 12px 12px;
  vertical-align: middle;
}
.bne-tier-table tbody tr { background: transparent !important; }
.bne-tier-table input.form_field,
.bne-tier-table textarea.form_field {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 8px 12px !important;
  font-family: var(--bne-body) !important;
  font-size: 13px !important;
  min-height: 38px;
  width: 100%;
}
.bne-tier-table input.form_field:focus,
.bne-tier-table textarea.form_field:focus {
  border-color: var(--bne-accent) !important;
}
.bne-tier-remove {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim) !important;
  background: transparent;
  font-size: 16px; line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  transition: border-color var(--bne-fast), color var(--bne-fast);
}
.bne-tier-remove:hover {
  border-color: var(--bne-danger);
  color: var(--bne-danger) !important;
}

.bne-event-editor-rowadd { margin: 14px 0 24px; }
.bne-event-editor-addline {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  font-size: 12px;
  min-height: 36px !important;
  height: 36px;
  width: auto !important;
  text-decoration: none !important;
}

/* Tabs */
.bne-tabs {
  display: flex; gap: 2px;
  border-bottom: 1px solid var(--bne-line);
  margin: 8px 0 32px;
}
.bne-tab {
  background: transparent;
  border: none;
  color: var(--bne-fg-dim);
  padding: 12px 16px;
  font-family: var(--bne-body);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color var(--bne-fast), border-color var(--bne-fast);
  margin-bottom: -1px;
}
.bne-tab:hover { color: var(--bne-fg); }
.bne-tab.is-active,
.bne-tab.active,
.bne-tab[aria-selected="true"] {
  color: var(--bne-fg);
  border-bottom-color: var(--bne-accent);
}

.bne-seat-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  padding: 20px 0 32px;
  border-bottom: 1px solid var(--bne-line);
  margin-bottom: 32px;
}
.bne-seat-meta > div {
  display: flex; flex-direction: column; gap: 6px;
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg);
}
.bne-seat-meta .bne-section-label {
  margin: 0;
}

.bne-buy-summary-footnote {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  text-align: center;
  line-height: 1.6;
  margin-top: 6px;
  text-transform: uppercase;
}
.display_selected_tickets .plan_price_title { color: var(--bne-accent); }

/* ── SEAT CHART ──────────────────────────────────────────────────── */
.seatChart_sec, .seatchart, .seat-chart-wrapper {
  padding: 48px 0 140px;
  background: var(--bne-bg);
  min-height: 80vh;
}
.seatChart_sec .container { max-width: var(--bne-shell-max); }
.seatChart_sec h1, .seatChart_sec h2 {
  font-family: var(--bne-display); font-weight: 800;
  letter-spacing: -0.025em;
}
.seat-row, .seat_row { display: flex; gap: 6px; justify-content: center; margin-bottom: 6px; flex-wrap: wrap; }
.seat, .seat_box, [class*="seat-"] {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  border-radius: 4px; min-width: 28px; height: 28px;
  font-family: var(--bne-mono); font-size: 10px;
  transition: all var(--bne-fast);
}
.seat.available, .seat_available, .available-seat { background: var(--bne-bg-elev); border-color: var(--bne-line-strong); cursor: pointer; }
.seat.available:hover, .seat_available:hover { background: var(--bne-accent); color: var(--bne-accent-ink); border-color: var(--bne-accent); }
.seat.selected, .seat_selected, .selected-seat { background: var(--bne-accent) !important; color: var(--bne-accent-ink) !important; border-color: var(--bne-accent) !important; }
.seat.booked, .seat.sold, .seat_sold, .booked-seat { opacity: .25; cursor: not-allowed; }
.stage, .stage-bar, .seat_stage {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  color: var(--bne-fg-dim);
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.2em;
  text-transform: uppercase; padding: 12px; border-radius: var(--bne-radius);
  text-align: center; margin-bottom: 32px;
}
.seat-legend, .legend {
  display: flex; gap: 20px; font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-fg-dim); margin: 24px 0;
  flex-wrap: wrap; justify-content: center;
}
.legend-item { display: inline-flex; align-items: center; gap: 6px; }

/* Seat chart btn-sm buttons (dynamically generated) */
.buy_tickets_sec .btn.btn-sm {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  border-radius: 4px;
  font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.04em;
  min-height: 32px; min-width: 32px;
  padding: 4px 8px;
  transition: all var(--bne-fast);
}
.buy_tickets_sec .btn.btn-sm.active {
  background: var(--bne-accent) !important;
  border-color: var(--bne-accent) !important;
  color: var(--bne-accent-ink) !important;
}
.buy_tickets_sec .btn.btn-sm:hover:not(:disabled) {
  border-color: var(--bne-accent); color: var(--bne-fg);
}
.buy_tickets_sec .btn.btn-sm:disabled {
  opacity: .25; cursor: not-allowed;
}
.sold_out {
  background: transparent; border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim); font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  padding: 10px 16px; border-radius: var(--bne-radius);
  cursor: not-allowed;
}

.display_selected_seats {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 16px 20px; margin-top: 12px;
}

/* ── AUTH — two-column editorial split (login / register / forgot) ──
   Hides the main layout's header+footer wrapper so the auth page takes
   the full viewport, matching the design's full-bleed split. */

.bne-auth {
  position: fixed; inset: 0;
  display: grid;
  grid-template-columns: 1fr 520px;
  background: var(--bne-bg);
  color: var(--bne-fg);
  z-index: 10;
  overflow: auto;
}
.bne-auth--register { grid-template-columns: 1fr 1fr; }
.bne-auth--single {
  display: block; /* single-column, centered */
  padding: 0;
}

@media (max-width: 900px) {
  .bne-auth, .bne-auth--register {
    position: static;
    grid-template-columns: 1fr;
    min-height: calc(100vh - 64px);
  }
}

/* Hide the global header + footer + loader ornaments when on an auth page
   so the editorial split goes edge-to-edge as the design specifies. */
body.bne-auth-page { overflow: hidden; }
body.bne-auth-page .header,
body.bne-auth-page .footer,
body.bne-auth-page > .Ellipse,
body.bne-auth-page .main > .Ellipse { display: none !important; }
body.bne-auth-page .main { background: transparent; padding: 0; margin: 0; }
body.bne-auth-page #status { display: none; }

/* Left editorial panel */
.bne-auth-editorial {
  padding: 48px 56px;
  background: var(--bne-bg-elev);
  border-right: 1px solid var(--bne-line);
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 100%;
  gap: 48px;
}
.bne-auth-editorial--gradient {
  background:
    radial-gradient(120% 80% at 0% 0%, hsl(240, 32%, 18%) 0%, transparent 60%),
    linear-gradient(165deg, hsl(220, 38%, 14%) 0%, var(--bne-bg) 80%);
  border-right: 1px solid var(--bne-line);
}
@media (max-width: 900px) {
  .bne-auth-editorial { padding: 32px 24px; border-right: none; border-bottom: 1px solid var(--bne-line); }
}

.bne-auth-wordmark {
  font-family: var(--bne-display);
  font-weight: 800;
  letter-spacing: -0.03em;
  font-size: 20px;
  color: var(--bne-fg) !important;
  text-decoration: none !important;
  align-self: flex-start;
}
.bne-auth-wordmark--floating {
  position: fixed; top: 32px; left: 32px; z-index: 11;
}
@media (max-width: 640px) {
  .bne-auth-wordmark--floating { top: 20px; left: 20px; font-size: 17px; }
}

.bne-auth-editorial-main { max-width: 520px; }
.bne-auth-kicker {
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.16em;
  color: var(--bne-fg-faint);
  margin-bottom: 20px;
}
.bne-auth-kicker--accent { color: var(--bne-accent); }

.bne-auth-headline {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  margin: 0;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-auth-headline--xl { font-size: clamp(40px, 5vw, 68px); }
.bne-auth-accent { color: var(--bne-accent); }

.bne-auth-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--bne-fg-dim);
  margin: 24px 0 0;
  max-width: 420px;
}
.bne-auth-foot {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
}
.bne-auth-stats {
  display: flex; gap: 40px; flex-wrap: wrap;
}
.bne-auth-stats .n {
  font-family: var(--bne-display);
  font-weight: 800; font-size: 28px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
}
.bne-auth-stats .l {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  margin-top: 4px;
}

/* Right form column */
.bne-auth-form-col {
  padding: 72px 64px;
  display: flex; flex-direction: column; justify-content: center;
  max-width: 520px;
  width: 100%;
  align-self: center;
  justify-self: center;
}
.bne-auth-form-col--wide {
  padding: 64px 80px;
  max-width: 640px;
}
@media (max-width: 900px) {
  .bne-auth-form-col, .bne-auth-form-col--wide { padding: 40px 24px; }
}

.bne-auth-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(32px, 3.2vw, 44px);
  letter-spacing: -0.03em;
  margin: 0 0 36px;
  color: var(--bne-fg);
}
.bne-auth-intro {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: -16px 0 32px;
  line-height: 1.55;
}

.bne-auth-form {
  display: flex; flex-direction: column; gap: 14px;
}
.bne-field-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
@media (max-width: 520px) { .bne-field-grid { grid-template-columns: 1fr; gap: 0; } }

.bne-field { display: flex; flex-direction: column; gap: 6px; }
.bne-field label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  font-weight: 500;
  margin: 0;
}
.bne-field input[type="text"],
.bne-field input[type="email"],
.bne-field input[type="password"],
.bne-field input[type="tel"],
.bne-field input[type="number"] {
  width: 100%;
  padding: 12px 14px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--bne-fast);
  min-height: 48px;
}
.bne-field input::placeholder { color: var(--bne-fg-faint); }
.bne-field input:focus {
  border-color: var(--bne-accent);
  background: var(--bne-bg-card);
}
.bne-field-hint {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  margin-top: 2px;
}

.bne-checkbox-row {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 6px 0 12px;
  cursor: pointer;
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  line-height: 1.5;
}
.bne-checkbox-row input[type=checkbox] {
  width: 16px; height: 16px;
  accent-color: var(--bne-accent);
  margin-top: 2px;
  flex-shrink: 0;
}
.bne-checkbox-row a {
  color: var(--bne-accent);
  text-decoration: underline;
}

.bne-auth-submit,
button.bne-auth-submit {
  margin-top: 10px;
  width: 100%;
  height: 50px;
  min-height: 50px !important;
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity var(--bne-fast);
}
.bne-auth-submit:hover { opacity: .88; }
.bne-auth-submit:disabled { opacity: .35; cursor: not-allowed; }

.bne-auth-forgot-row {
  text-align: right;
  margin: -4px 0 8px;
}
.bne-auth-forgot {
  background: transparent; border: none;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-accent) !important;
  text-decoration: none !important;
  padding: 0;
  cursor: pointer;
}
.bne-auth-forgot:hover { opacity: .8; }

.bne-auth-divider {
  display: flex; align-items: center; gap: 14px;
  margin: 14px 0 6px;
}
.bne-auth-divider::before,
.bne-auth-divider::after {
  content: ''; flex: 1; height: 1px;
  background: var(--bne-line);
}
.bne-auth-divider span {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
}

.bne-auth-ghost {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 46px;
  background: transparent;
  color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 13px;
  text-decoration: none !important;
  cursor: pointer;
  transition: border-color var(--bne-fast), background var(--bne-fast);
}
.bne-auth-ghost:hover {
  border-color: var(--bne-line-strong);
  background: var(--bne-bg-elev);
  color: var(--bne-fg) !important;
}

.bne-auth-foot-link {
  margin: 26px 0 0;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  text-align: left;
}
.bne-auth-foot-link a {
  color: var(--bne-fg) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--bne-line-strong);
  padding-bottom: 1px;
}
.bne-auth-foot-link a:hover { border-color: var(--bne-accent); opacity: 1; }

/* Single-column variant (forgot password, change password) */
.bne-auth-single-col {
  max-width: 440px;
  margin: 140px auto 80px;
  padding: 0 24px;
}
@media (max-width: 540px) { .bne-auth-single-col { margin-top: 110px; } }

/* Error state */
.bne-auth .error {
  display: block;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-danger);
  margin-top: 6px;
}

/* Upload row inside auth form */
.bne-auth .bne-upload-row {
  padding: 14px;
  background: var(--bne-bg-elev);
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius);
  display: flex; flex-direction: column; gap: 10px;
  margin: 4px 0;
}
.bne-auth .bne-upload-row label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  margin: 0;
}
.bne-auth .bne-upload-row input[type=file] {
  background: transparent;
  border: none;
  color: var(--bne-fg-dim);
  padding: 0;
  font-family: var(--bne-body);
  font-size: 13px;
}
.bne-auth .bne-upload-row input[type=file]::file-selector-button {
  background: transparent;
  color: var(--bne-fg);
  border: 1px solid var(--bne-line-strong);
  border-radius: 4px;
  padding: 6px 12px;
  margin-right: 10px;
  cursor: pointer;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
}

/* ── EDIT PROFILE — sidebar sub-nav + avatar + 2-col form ─────────── */
.bne-profile { padding: 28px 0 96px; }
.bne-profile-shell {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) { .bne-profile-shell { padding: 0 20px; } }

.bne-profile-alert { margin-bottom: 20px; }

.bne-profile-h1 {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 44px);
  letter-spacing: -0.03em;
  margin: 0 0 36px;
  color: var(--bne-fg);
}

.bne-profile-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 820px) {
  .bne-profile-grid { grid-template-columns: 1fr; gap: 24px; }
}

.bne-profile-subnav {
  border-right: 1px solid var(--bne-line);
  padding-right: 20px;
  display: flex; flex-direction: column;
}
@media (max-width: 820px) {
  .bne-profile-subnav {
    border-right: none;
    border-bottom: 1px solid var(--bne-line);
    padding-right: 0; padding-bottom: 12px;
    flex-direction: row;
    overflow-x: auto;
    scrollbar-width: none;
    gap: 2px;
  }
  .bne-profile-subnav::-webkit-scrollbar { display: none; }
}

.bne-profile-subnav-item {
  display: block;
  padding: 10px 12px;
  margin-left: -12px;
  margin-bottom: 2px;
  border-radius: 4px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim) !important;
  text-decoration: none !important;
  border-left: 2px solid transparent;
  transition: background var(--bne-fast), color var(--bne-fast);
  white-space: nowrap;
}
.bne-profile-subnav-item:hover {
  background: var(--bne-bg-elev);
  color: var(--bne-fg) !important;
  opacity: 1;
}
.bne-profile-subnav-item.is-active {
  background: var(--bne-bg-elev);
  color: var(--bne-fg) !important;
  border-left-color: var(--bne-accent);
}
.bne-profile-subnav-divider {
  height: 1px;
  background: var(--bne-line);
  margin: 14px 0 8px;
}
.bne-profile-subnav-logout {
  color: var(--bne-fg-dim) !important;
}
@media (max-width: 820px) {
  .bne-profile-subnav-item { margin-left: 0; border-left: none; border-bottom: 2px solid transparent; }
  .bne-profile-subnav-item.is-active { border-bottom-color: var(--bne-accent); border-left: none; }
  .bne-profile-subnav-divider { display: none; }
}

.bne-profile-form { max-width: 560px; display: flex; flex-direction: column; gap: 14px; }

.bne-profile-avatar-row {
  display: flex; align-items: center; gap: 18px;
  margin-bottom: 14px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-profile-avatar-img,
.bne-profile-avatar-initials {
  width: 72px; height: 72px; border-radius: 99px;
  flex-shrink: 0;
}
.bne-profile-avatar-img {
  object-fit: cover;
  border: 1px solid var(--bne-line-strong);
}
.bne-profile-avatar-initials {
  background: linear-gradient(135deg, var(--bne-accent), var(--bne-fg-dim));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--bne-display);
  font-weight: 700;
  color: var(--bne-accent-ink);
  font-size: 26px;
}
.bne-profile-change-btn {
  display: inline-block;
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  padding: 8px 14px;
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 12px;
  cursor: pointer;
  margin: 0;
  letter-spacing: 0;
  text-transform: none;
}
.bne-profile-change-btn:hover { background: var(--bne-bg-elev); }
.bne-profile-change-file {
  position: absolute; left: -9999px;
}
.bne-profile-avatar-hint {
  font-family: var(--bne-mono);
  font-size: 10px;
  color: var(--bne-fg-faint);
  letter-spacing: 0.08em;
  margin-top: 6px;
}

.bne-profile-actions {
  display: flex; gap: 10px; justify-content: flex-end;
  margin-top: 20px;
}
.bne-profile-discard,
.bne-hosted-cancel {
  width: auto; min-width: 120px;
  flex: 0 0 auto;
  text-decoration: none !important;
}
.bne-profile-save,
.bne-hosted-submit {
  width: auto !important;
  min-width: 160px;
}

/* ── REQUEST HOSTED — benefits cards + 2-col form + timeline ──────── */
.bne-hosted { padding: 28px 0 96px; }
.bne-hosted-shell {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) { .bne-hosted-shell { padding: 0 20px; } }

.bne-eyebrow--accent { color: var(--bne-accent); }

.bne-hosted-title {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: clamp(40px, 5vw, 56px);
  letter-spacing: -0.035em;
  line-height: 0.98;
  margin: 0;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-hosted-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  line-height: 1.55;
  max-width: 600px;
  margin: 16px 0 32px;
}

.bne-hosted-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 36px;
}
@media (max-width: 720px) {
  .bne-hosted-cards { grid-template-columns: 1fr; }
}
.bne-hosted-card {
  padding: 22px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
}
.bne-hosted-card .label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em;
  color: var(--bne-fg-faint);
  margin-bottom: 10px;
}
.bne-hosted-card .n {
  font-family: var(--bne-display);
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
}
.bne-hosted-card .d {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 6px;
}

.bne-hosted-split {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 820px) {
  .bne-hosted-split { grid-template-columns: 1fr; gap: 32px; }
}

.bne-hosted-form { display: flex; flex-direction: column; gap: 14px; }
.bne-hosted-form textarea {
  width: 100%;
  padding: 11px 14px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  resize: vertical;
  min-height: 100px;
  transition: border-color var(--bne-fast);
}
.bne-hosted-form textarea:focus {
  border-color: var(--bne-accent);
  background: var(--bne-bg-card);
}
.bne-hosted-form textarea::placeholder { color: var(--bne-fg-faint); }

.bne-hosted-chipset {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
@media (max-width: 520px) {
  .bne-hosted-chipset { grid-template-columns: repeat(2, 1fr); }
}
.bne-hosted-chip {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  padding: 11px 0;
  background: transparent;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  cursor: pointer;
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg);
  text-transform: none;
  letter-spacing: 0;
  transition: background var(--bne-fast), border-color var(--bne-fast);
}
.bne-hosted-chip:hover { border-color: var(--bne-line-strong); }
.bne-hosted-chip.is-active {
  background: var(--bne-bg-elev);
  border-color: var(--bne-line-strong);
}
.bne-hosted-chip input[type=radio] {
  position: absolute; opacity: 0; pointer-events: none;
}
.bne-hosted-chip span { position: relative; z-index: 1; }

.bne-hosted-actions {
  display: flex; gap: 10px; justify-content: flex-end;
  margin-top: 8px;
}

.bne-hosted-timeline {
  border-left: 1px solid var(--bne-line);
  padding-left: 32px;
}
@media (max-width: 820px) {
  .bne-hosted-timeline {
    border-left: none; border-top: 1px solid var(--bne-line);
    padding-left: 0; padding-top: 24px;
  }
}
.bne-hosted-timeline-list {
  list-style: none; padding: 0; margin: 0;
}
.bne-hosted-timeline-list li {
  display: flex; gap: 14px;
  padding-bottom: 18px; margin-bottom: 18px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-hosted-timeline-list li:last-of-type {
  border-bottom: none; margin-bottom: 6px;
}
.bne-hosted-timeline-list .n {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  width: 24px; flex-shrink: 0;
}
.bne-hosted-timeline-list strong {
  display: block;
  font-family: var(--bne-display);
  font-size: 15px; font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--bne-fg);
}
.bne-hosted-timeline-list span {
  display: block;
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 4px;
  line-height: 1.5;
}
.bne-hosted-help {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-faint);
  line-height: 1.55;
}
.bne-hosted-help a {
  color: var(--bne-accent) !important;
  text-decoration: none !important;
}

/* ── Legacy form styling (kept for other forms) ───────────────────── */
.register_form_sec { padding: 72px 0 96px; }
.register_form_sec .container { max-width: 480px; }
.register_form_sec .form_title, .register_form_sec h1 {
  font-family: var(--bne-display); font-weight: 800;
  font-size: 42px; letter-spacing: -0.03em;
  text-align: left !important;
  margin-bottom: 32px;
}
.register_form_sec .form_title::before,
.register_form_sec h1::before {
  content: 'BNE.LIVE';
  display: block;
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.25em; color: var(--bne-fg-dim);
  font-weight: 400; margin-bottom: 12px;
  text-transform: uppercase;
}

.register_form_inner { margin: 0 !important; }

.form_group, .input-group.form_group, .form-group {
  margin-bottom: 16px;
}
.input-group.form_group {
  display: flex; flex-wrap: nowrap; align-items: stretch;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  overflow: hidden;
  transition: border-color var(--bne-fast);
}
.input-group.form_group:focus-within { border-color: var(--bne-accent); }
.input-group-text {
  background: transparent;
  border: none; padding: 0 0 0 16px;
  display: flex; align-items: center;
}
.input-group-text img {
  width: 14px !important; opacity: .5; filter: invert(.8);
}
.bne-light .input-group-text img { filter: none; }

.form_field, .form-control, .form_field.form-control {
  background: transparent !important;
  border: none !important;
  color: var(--bne-fg) !important;
  padding: 14px 16px !important;
  font-family: var(--bne-body); font-size: 14px;
  min-height: 52px;
  box-shadow: none !important;
}
.form_field::placeholder, .form-control::placeholder {
  color: var(--bne-fg-faint); font-weight: 400;
}
.form_field:focus { outline: none; box-shadow: none; }

/* Standalone form-control (non input-group) */
.form-control:not(.form_field) {
  background: var(--bne-bg-card) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 12px 14px !important;
  font-family: var(--bne-body); font-size: 14px;
}
.form-control:not(.form_field):focus {
  border-color: var(--bne-accent) !important;
  box-shadow: 0 0 0 3px rgba(79,124,255,0.15) !important;
}
.col-form-label, label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 500;
  margin-bottom: 6px;
}

.forgot { color: var(--bne-fg-dim) !important; font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
.forgot:hover { color: var(--bne-fg) !important; }

.register_form .input-group.form_group + p,
.register_form_sec p {
  color: var(--bne-fg-dim); font-size: 13px; text-align: center; margin-top: 20px;
}
.register_form_sec p a { color: var(--bne-fg); text-decoration: none; border-bottom: 1px solid var(--bne-line-strong); }

.bne-form-meta {
  display: flex; justify-content: flex-end;
  margin-bottom: 16px;
}
.bne-form-foot {
  text-align: center;
  font-size: 13px; color: var(--bne-fg-dim);
  margin-top: 20px;
}
.bne-form-foot a {
  color: var(--bne-fg); text-decoration: none;
  border-bottom: 1px solid var(--bne-line-strong);
  padding-bottom: 1px;
}
.bne-form-foot a:hover { border-color: var(--bne-fg); opacity: 1; }

.bne-form-intro {
  font-size: 14px; color: var(--bne-fg-dim);
  margin: -16px 0 28px; line-height: 1.55;
}

.bne-profile-head {
  display: flex; align-items: center; gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px; border-bottom: 1px solid var(--bne-line);
}
.bne-profile-img {
  width: 72px; height: 72px; border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--bne-line-strong);
  background: var(--bne-bg-elev);
}
.bne-profile-head h1 {
  font-family: var(--bne-display); font-weight: 800;
  font-size: 28px; letter-spacing: -0.02em; line-height: 1;
  margin: 0; color: var(--bne-fg);
}
.bne-field-note {
  font-size: 12px; color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  margin: -8px 0 16px;
}

.bne-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 540px) { .bne-two-col { grid-template-columns: 1fr; gap: 0; } }

.bne-upload-row {
  padding: 16px; background: var(--bne-bg-card);
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius);
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 16px;
}
.bne-upload-row label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--bne-fg-dim);
  margin: 0;
}
.bne-upload-row input[type=file] {
  background: transparent !important;
  border: none !important;
  color: var(--bne-fg-dim) !important;
  padding: 0 !important;
  font-family: var(--bne-body); font-size: 13px;
}
.bne-upload-row input[type=file]::file-selector-button {
  background: var(--bne-bg-elev); color: var(--bne-fg);
  border: 1px solid var(--bne-line-strong); border-radius: 4px;
  padding: 6px 12px; margin-right: 10px; cursor: pointer;
  font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
}

.error, .alert-danger, .form_error_alert {
  background: rgba(229,72,77,0.08);
  border: 1px solid rgba(229,72,77,0.3);
  color: var(--bne-danger) !important;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; padding: 10px 14px; margin-top: 8px;
}
.alert-success {
  background: rgba(48,164,108,0.08);
  border: 1px solid rgba(48,164,108,0.3);
  color: var(--bne-success) !important;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; padding: 10px 14px;
}

/* ── ACCOUNT / DASHBOARD / BOOKINGS ───────────────────────────────── */
.dashboard_sec, .booking_sec, .event_sec, .my_event_sec {
  padding: 48px 0 96px;
}
.dashboard_sec .container,
.booking_sec .container,
.event_sec .container {
  max-width: var(--bne-shell-max);
}

.dashboard_sec h1, .booking_sec h1, .my_event_sec h1, .event_sec h1 {
  font-family: var(--bne-display); font-weight: 800;
  font-size: clamp(32px, 4vw, 52px); letter-spacing: -0.03em;
  margin-bottom: 32px;
}

.dashboard_box, .booking_box, .my_event_box,
.booking_list_box, .my_event_list_box, .dashboard_card {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 20px; margin-bottom: 16px;
  transition: border-color var(--bne-fast);
}
.dashboard_box:hover, .booking_box:hover, .my_event_box:hover { border-color: var(--bne-line-strong); }

.dashboard_box h4, .booking_box h4, .my_event_box h4 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 18px; letter-spacing: -0.01em; color: var(--bne-fg);
}

.booking_list_box .event_list_img_list,
.my_event_list_box img {
  width: 100%; max-width: 120px;
  aspect-ratio: 4/5; object-fit: cover;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
}

/* Stats tiles (dashboard) */
.stats_tile, .dashboard_stat {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 24px;
}
.stats_tile .label, .dashboard_stat .label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bne-fg-dim); margin-bottom: 10px;
}
.stats_tile .value, .dashboard_stat .value {
  font-family: var(--bne-display); font-weight: 800;
  font-size: 36px; letter-spacing: -0.025em; color: var(--bne-fg);
}

.bne-dash-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 32px; gap: 16px; flex-wrap: wrap;
}
.bne-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px; margin-bottom: 24px;
}
@media (max-width: 960px) { .bne-stats-grid { grid-template-columns: repeat(2, 1fr); } }
.bne-stats-chart { grid-column: span 2; }
@media (max-width: 960px) { .bne-stats-chart { grid-column: 1 / -1; } }
.bne-tile-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-bottom: 12px; flex-wrap: wrap;
}
.bne-date-range {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.08em;
  padding: 8px 12px !important; min-height: 36px;
  max-width: 260px;
}

.bne-panel {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 24px; margin-bottom: 24px;
}
.bne-panel-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 20px; padding-bottom: 16px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-table-wrap { overflow-x: auto; }

.bne-tickets-list {
  display: flex; flex-direction: column; gap: 16px;
}
.bne-ticket-card {
  display: grid;
  grid-template-columns: 140px 1fr 200px;
  gap: 24px;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 20px;
  transition: border-color var(--bne-fast);
}
.bne-ticket-card:hover { border-color: var(--bne-line-strong); }
@media (max-width: 820px) {
  .bne-ticket-card { grid-template-columns: 100px 1fr; }
  .bne-ticket-qr { grid-column: 1 / -1; border-top: 1px solid var(--bne-line); padding-top: 16px; }
}
.bne-ticket-poster img {
  width: 100%; aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
}
.bne-ticket-body h2 {
  font-family: var(--bne-display); font-weight: 800;
  font-size: 22px; line-height: 1.08; letter-spacing: -0.02em;
  margin: 4px 0 14px;
}
.bne-ticket-meta-row {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  color: var(--bne-accent);
}
.bne-dot-sep { color: var(--bne-fg-faint) !important; }
.bne-ticket-meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px 24px;
}
.bne-ticket-meta > div {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 14px; color: var(--bne-fg);
}
.bne-ticket-meta > div span {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 400;
}
.bne-ticket-meta strong { font-family: var(--bne-display); font-weight: 700; font-size: 16px; }

.bne-ticket-qr {
  display: flex; flex-direction: column; align-items: stretch; gap: 12px;
  border-left: 1px solid var(--bne-line); padding-left: 20px;
}
.bne-qr-wrap {
  background: #fff; border-radius: var(--bne-radius);
  padding: 10px; aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
}
.bne-qr-wrap img { width: 100%; height: 100%; object-fit: contain; }
.bne-ticket-id {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.12em; color: var(--bne-fg); text-align: center;
}
.bne-ticket-id span {
  display: block; font-size: 9px; color: var(--bne-fg-dim);
  letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 4px;
}
.bne-ticket-cta {
  display: flex; flex-direction: column; gap: 6px;
}
.bne-ticket-cta .theme_btn, .bne-ticket-cta .bne-ghost-btn {
  min-height: 40px; padding: 10px 14px; font-size: 12px;
}

/* Tables */
.table { color: var(--bne-fg); }
.table th {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 500;
  border-color: var(--bne-line-strong) !important;
  padding: 14px 12px;
}
.table td {
  border-color: var(--bne-line) !important;
  padding: 14px 12px;
  font-size: 14px;
}
.table-striped > tbody > tr:nth-of-type(odd) > * { background: transparent; color: var(--bne-fg); }

/* ── HOST / REQUEST HOSTED ─────────────────────────────────────── */
.host_sec, .request_hosted_sec {
  padding: 72px 0 96px;
}
.host_sec .container, .request_hosted_sec .container {
  max-width: 820px;
}
.host_sec h1, .request_hosted_sec h1 {
  font-family: var(--bne-display); font-weight: 800;
  font-size: clamp(40px, 6vw, 80px); letter-spacing: -0.035em;
  line-height: 0.98; margin-bottom: 20px;
}
.host_sec .lead, .request_hosted_sec .lead,
.host_sec p.intro {
  font-family: var(--bne-body); font-size: 18px; line-height: 1.5;
  color: var(--bne-fg-dim); margin-bottom: 40px;
}

.host_feature, .request_step {
  display: flex; gap: 16px; padding: 20px 0;
  border-top: 1px solid var(--bne-line);
}
.host_feature_num, .request_step_num {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.2em; color: var(--bne-fg-dim);
  min-width: 48px;
}

/* Host onboarding wizard */
.bne-page-shell { padding: 48px 0 96px; }
.bne-page-shell .container { max-width: 720px; }
.bne-page-title {
  font-family: var(--bne-display); font-weight: 800;
  font-size: clamp(32px, 4.5vw, 56px); letter-spacing: -0.03em;
  line-height: 1; margin-bottom: 12px;
}
.bne-page-subtitle {
  color: var(--bne-fg-dim); font-size: 15px;
  line-height: 1.55; margin-bottom: 32px;
}
.bne-card {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 32px;
}
.bne-card-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 24px; padding-bottom: 20px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-card-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 20px; letter-spacing: -0.015em; margin: 0;
}
.bne-step-pill {
  background: var(--bne-bg-elev);
  color: var(--bne-fg-dim);
  border: 1px solid var(--bne-line-strong);
  padding: 6px 12px;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
}
.bne-step-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 18px; letter-spacing: -0.01em; margin: 0 0 8px;
}
.bne-step-copy {
  color: var(--bne-fg-dim); font-size: 13px; margin-bottom: 24px;
}
.bne-input-label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 500;
  display: block; margin-bottom: 8px;
}
.form_field_input, .form-control.form_field_input {
  background: var(--bne-bg) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 12px 14px !important;
  font-family: var(--bne-body); font-size: 14px;
  min-height: 48px;
  width: 100%;
}
.form_field_input:focus {
  border-color: var(--bne-accent) !important;
  outline: none;
}
textarea.form_field_input { resize: vertical; min-height: 96px; }

.bne-checklist {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}
.bne-checklist label {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; font-family: var(--bne-body); font-size: 14px;
  background: var(--bne-bg); border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius); cursor: pointer;
  color: var(--bne-fg); text-transform: none; letter-spacing: 0;
  transition: border-color var(--bne-fast);
}
.bne-checklist label:hover { border-color: var(--bne-accent); }
.bne-checklist input[type=checkbox] {
  accent-color: var(--bne-accent);
  width: 16px; height: 16px;
}

.bne-muted-note {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
  font-size: 13px;
  border-radius: var(--bne-radius);
  padding: 14px 16px;
}

.bne-actions {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-top: 32px; padding-top: 24px;
  border-top: 1px solid var(--bne-line);
  flex-wrap: wrap;
}
.bne-actions-right { display: flex; gap: 8px; flex-wrap: wrap; }
.bne-actions .btn {
  padding: 10px 18px; min-height: 42px; border-radius: var(--bne-radius);
  font-family: var(--bne-body); font-size: 13px; font-weight: 500;
  letter-spacing: 0;
}
.bne-actions .btn-outline-light, .bne-actions .btn-outline-info {
  background: transparent; color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong);
}
.bne-actions .btn-outline-light:hover, .bne-actions .btn-outline-info:hover {
  background: var(--bne-bg-elev); color: var(--bne-fg) !important;
}
.bne-actions .btn-primary {
  background: var(--bne-fg) !important; color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
}
.bne-actions .btn-primary:hover { opacity: .85; }
.bne-actions .btn-success {
  background: var(--bne-accent) !important; color: var(--bne-accent-ink) !important;
  border: 1px solid var(--bne-accent);
}
.bne-actions .btn:disabled { opacity: .35; cursor: not-allowed; }

/* Alert colors for host status banner */
.alert-info {
  background: rgba(125,155,220,0.08) !important;
  border: 1px solid rgba(125,155,220,0.3) !important;
  color: var(--bne-accent) !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; border-radius: var(--bne-radius);
  padding: 12px 16px;
}
.alert-warning {
  background: rgba(245,158,11,0.08) !important;
  border: 1px solid rgba(245,158,11,0.3) !important;
  color: #f59e0b !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; border-radius: var(--bne-radius);
  padding: 12px 16px;
}
.alert-secondary {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
}

/* ── SUCCESS / CANCEL ─────────────────────────────────────────────── */
.success_sec, .cancel_sec {
  padding: 96px 0; text-align: center;
}
.success_sec h1, .cancel_sec h1 {
  font-family: var(--bne-display); font-weight: 800;
  font-size: clamp(40px, 6vw, 72px); letter-spacing: -0.035em;
  margin-bottom: 16px;
}
.success_sec p, .cancel_sec p {
  color: var(--bne-fg-dim); font-size: 16px; margin-bottom: 32px;
}
.bne-success-card {
  max-width: 560px; margin: 0 auto;
  padding: 56px 40px;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  text-align: center;
}
.bne-success-card .bne-eyebrow { margin-bottom: 20px; }
.bne-cta-row {
  display: inline-flex; gap: 12px; flex-wrap: wrap; justify-content: center;
}
.bne-ghost-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 24px;
  background: transparent; color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong); border-radius: var(--bne-radius);
  font-family: var(--bne-body); font-size: 14px; font-weight: 500;
  min-height: 48px; text-decoration: none !important;
  transition: background var(--bne-fast);
}
.bne-ghost-btn:hover { background: var(--bne-bg-elev); color: var(--bne-fg) !important; opacity: 1; }
.bne-inline-link { color: var(--bne-accent) !important; border-bottom: 1px solid currentColor; text-decoration: none !important; }

/* ── MODALS (login/guest in event detail) ─────────────────────────── */
.modal-content {
  background: var(--bne-bg-card) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius-lg) !important;
  color: var(--bne-fg);
}
.modal-header {
  border-bottom: 1px solid var(--bne-line) !important;
  padding: 20px 24px;
}
.modal-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 20px; letter-spacing: -0.02em; color: var(--bne-fg);
}
.modal-body { padding: 24px; }
.btn-close { filter: invert(.9); opacity: .7; }
.bne-light .btn-close { filter: none; }

.login-theme_btn {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
  font-weight: 500;
}
.guest-user { font-weight: 500; }

/* ── MISC (loader, status, etc.) ──────────────────────────────────── */
#loader.background-loader {
  background: rgba(12,13,16,0.85);
  backdrop-filter: blur(8px);
}
.loader-text {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.24em; color: var(--bne-fg);
}

/* Focus ring */
:focus-visible {
  outline: 2px solid var(--bne-accent) !important;
  outline-offset: 2px;
  border-radius: 4px;
}

/* Accessibility — tap targets */
button, .btn, a.btn, input[type=submit], .theme_btn, .attend_button, .buy_tickets_btn, .page-link {
  min-height: 40px;
}

/* Hide legacy ornaments that conflict with the redesign */
.background-ellipse, .ellipse, .header::before, .header::after { display: none !important; }

/* Make sure sticky checkout doesn't get hidden behind page content */
body { padding-bottom: 0 !important; }
.buy_tickets_sec + .checkout_sec, .buy_tickets_sec ~ .checkout_sec {
  /* already fixed */
}

/* -------------------------------------------------------------------
   2026-04 Overhaul hardening
   Force one coherent UI system and neutralize remaining legacy bleed.
-------------------------------------------------------------------- */

/* Home posters: bigger, readable, and less dead-space on desktop */
.event_list_sec .container { max-width: 1480px; }
.grid_event_list .event_list_box_inner,
.grid_event_list .bne-poster-inner {
  min-height: clamp(360px, 38vw, 560px) !important;
}
.bne-poster-top,
.bne-poster-bottom { text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55); }
.bne-poster-tag { color: #9ec5ff; }

/* Ensure legacy card internals never shrink posters */
.grid_event_list .event_list_img_list,
.grid_event_list .event_list_img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

@media (max-width: 1200px) {
  .event_list_sec .container { max-width: var(--bne-shell-max); }
  .grid_event_list .event_list_box_inner,
  .grid_event_list .bne-poster-inner {
    min-height: clamp(320px, 42vw, 460px) !important;
  }
}
@media (max-width: 760px) {
  .grid_event_list .event_list_box_inner,
  .grid_event_list .bne-poster-inner {
    min-height: clamp(250px, 64vw, 370px) !important;
  }
  .bne-poster-title {
    font-size: clamp(18px, 7vw, 28px);
    line-height: 0.98;
  }
}
@media (max-width: 360px) {
  .ux-shell .container,
  .bne-event-shell,
  .bne-buy-shell { padding-left: 16px !important; padding-right: 16px !important; }
  .header .container { padding-left: 16px !important; padding-right: 16px !important; }
  .bne-wordmark { font-size: 18px; }
  .bne-signin { min-height: 38px; padding: 8px 14px; font-size: 12px; }
}

/* Checkout: never allow legacy fixed bar to overlay this redesigned summary */
.bne-buy-summary.checkout_sec {
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  z-index: 1 !important;
}
@media (min-width: 961px) {
  .bne-buy-summary.checkout_sec {
    position: sticky !important;
    top: 32px !important;
  }
}

/* Homepage Calendar Board */
.bne-calendar-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.8vw, 26px) !important;
}
.bne-calendar-card {
  width: 100% !important;
  display: block !important;
  text-decoration: none !important;
}
.bne-calendar-card-inner {
  position: relative;
  min-height: clamp(280px, 28vw, 420px) !important;
  border-radius: 14px !important;
  border: 1px solid rgba(232, 234, 238, 0.15) !important;
  overflow: hidden;
  background:
    radial-gradient(130% 100% at 0% 0%, rgba(255,255,255,0.1), rgba(255,255,255,0) 58%),
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 36%, 14%) 0%,
      hsl(var(--bne-poster-hue), 22%, 8%) 58%,
      #07090e 100%) !important;
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.32);
}
.bne-calendar-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.34;
  filter: saturate(1.05) contrast(1.02);
}
.bne-calendar-card-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7,10,16,0.16), rgba(7,10,16,0.84) 74%, rgba(7,10,16,0.96) 100%);
  pointer-events: none;
}
.bne-calendar-date,
.bne-calendar-content {
  position: relative;
  z-index: 2;
}
.bne-calendar-date {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 76px;
  border-radius: 12px;
  border: 1px solid rgba(232, 234, 238, 0.24);
  background: rgba(9, 12, 20, 0.78);
  backdrop-filter: blur(6px);
  text-align: center;
  padding: 9px 8px;
}
.bne-calendar-month {
  display: block;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: #9ec5ff;
}
.bne-calendar-day {
  display: block;
  font-family: var(--bne-display);
  font-size: 32px;
  line-height: 1;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.03em;
  margin: 6px 0 4px;
}
.bne-calendar-weekday {
  display: block;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(232,234,238,0.74);
}
.bne-calendar-content {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
}
.bne-calendar-time {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #9ec5ff;
  margin-bottom: 8px;
}
.bne-calendar-title {
  margin: 0;
  font-family: var(--bne-display);
  font-size: clamp(24px, 2.2vw, 38px);
  line-height: 0.95;
  letter-spacing: -0.035em;
  color: #fff;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-wrap: balance;
}
.bne-calendar-meta {
  margin-top: 8px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: rgba(232,234,238,0.8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bne-calendar-card:hover .bne-calendar-card-inner {
  transform: translateY(-3px);
  border-color: rgba(158, 197, 255, 0.42) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.42);
}

@media (max-width: 1100px) {
  .bne-calendar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .bne-calendar-card-inner { min-height: clamp(250px, 36vw, 360px) !important; }
}
@media (max-width: 760px) {
  .bne-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  .bne-calendar-card-inner { min-height: clamp(220px, 58vw, 320px) !important; }
  .bne-calendar-date {
    width: 60px;
    border-radius: 10px;
    padding: 7px 6px;
  }
  .bne-calendar-day { font-size: 26px; }
  .bne-calendar-title { font-size: clamp(17px, 7vw, 30px); }
  .bne-calendar-meta { font-size: 11px; }
}
@media (max-width: 420px) {
  .bne-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .bne-calendar-card-inner { min-height: clamp(194px, 64vw, 286px) !important; }
  .bne-calendar-content { left: 12px; right: 12px; bottom: 12px; }
}

/* Header parity (desktop design canvas) */
.header_inner {
  min-height: 74px;
  padding: 16px 0;
}
.header_right_section {
  display: flex;
  align-items: center;
  gap: 18px;
}
.bne-top-links {
  display: inline-flex;
  align-items: center;
  gap: 18px;
}
.bne-top-links a {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  text-decoration: none;
}
.bne-top-links a:hover { color: var(--bne-fg); opacity: 1; }
.bne-signin-ghost {
  background: transparent;
  color: var(--bne-fg) !important;
}
@media (max-width: 760px) {
  .bne-top-links { display: none; }
  .header_right_section { gap: 10px; }
}

/* Footer parity (4-column desktop footer) */
.footer {
  padding: 44px 0 26px !important;
}
.bne-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 48px);
}
.bne-footer-wordmark {
  display: inline-block;
  margin-bottom: 12px;
  font-size: 22px;
}
.bne-footer-copy-block {
  margin: 0;
  max-width: 420px;
  font-family: var(--bne-body);
  font-size: 13px;
  line-height: 1.6;
  text-transform: none;
  letter-spacing: 0;
  color: var(--bne-fg-dim) !important;
}
.bne-footer-col-title {
  margin-bottom: 12px;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-footer-col .bne-footer-nav {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bne-footer-col .bne-footer-nav a {
  font-family: var(--bne-body);
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}
.bne-footer-bottom {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--bne-line);
  display: flex;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
@media (max-width: 960px) {
  .bne-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .bne-footer-grid { grid-template-columns: 1fr; gap: 20px; }
  .footer { padding: 30px 0 22px !important; }
}

/* Improve visual rhythm in buy flow */
.bne-buy-heading {
  margin-bottom: 26px;
  font-size: clamp(34px, 5vw, 62px);
}
.bne-buy-grid {
  align-items: start;
  gap: clamp(24px, 4vw, 56px);
}
.bne-buy-section {
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  background: linear-gradient(140deg, rgba(255,255,255,0.03), rgba(255,255,255,0));
  padding: clamp(16px, 2.2vw, 24px);
}

/* Event detail text balance on mobile */
@media (max-width: 760px) {
  .bne-event-title { font-size: clamp(40px, 13vw, 58px) !important; }
  .bne-event-meta dd strong { font-size: 33px; }
}

/* ==========================================================================
   STRICT PARITY PASS (handoff closure)
   ========================================================================== */

.bne-card-photo { display: none !important; }

.bne-event-cta-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.bne-event-wishlist {
  width: 52px;
  height: 52px;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
  background: transparent;
  color: var(--bne-fg);
  font-family: var(--bne-display);
  font-size: 20px;
  cursor: pointer;
}
.bne-event-wishlist:hover { background: var(--bne-bg-elev); }

.bne-event-extras {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  padding-top: 44px;
  margin-top: 44px;
  border-top: 1px solid var(--bne-line);
}
.bne-event-extra-title {
  margin: 0;
  font-family: var(--bne-display);
  font-size: clamp(24px, 2.1vw, 30px);
  letter-spacing: -0.02em;
}
.bne-event-extra-muted {
  margin: 6px 0 18px;
  color: var(--bne-fg-dim);
  font-size: 13px;
}
.bne-event-map-placeholder {
  height: 200px;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bne-fg-faint);
  font: 10px/1.2 var(--bne-mono);
  letter-spacing: 0.1em;
}
.bne-event-facts {
  display: flex;
  gap: 22px;
  margin-top: 14px;
  color: var(--bne-fg-faint);
  font: 10px/1.2 var(--bne-mono);
  letter-spacing: 0.08em;
}
.bne-event-related-list { border-top: 1px solid var(--bne-line); }
.bne-event-related-item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--bne-line);
  color: inherit;
  text-decoration: none;
}
.bne-event-related-date {
  color: var(--bne-fg-faint);
  font: 10px/1.1 var(--bne-mono);
  letter-spacing: 0.1em;
}
.bne-event-related-copy strong {
  display: block;
  font: 600 15px/1.25 var(--bne-display);
  letter-spacing: -0.01em;
}
.bne-event-related-copy span {
  display: block;
  margin-top: 4px;
  color: var(--bne-fg-dim);
  font-size: 12px;
}
.bne-event-related-arrow { color: var(--bne-fg-faint); }
.bne-event-related-empty {
  padding: 12px 0;
  color: var(--bne-fg-dim);
  font-size: 13px;
}

.bne-buy-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.bne-buy-form-grid .bne-field { margin: 0; }
.bne-buy-form-grid .bne-field-span { grid-column: 1 / -1; }
.bne-payment-methods {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.bne-payment-chip {
  height: 44px;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
  background: transparent;
  color: var(--bne-fg);
  font-size: 13px;
  cursor: pointer;
}
.bne-payment-chip.is-active {
  background: var(--bne-bg-elev);
  border-color: var(--bne-line-strong);
}

.bne-auth-social-stack {
  display: grid;
  gap: 10px;
  margin: 12px 0;
}
.bne-auth-social-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.bne-hosted-shell--parity .bne-hosted-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 24px 0 28px;
}
.bne-hosted-kpi {
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
  padding: 18px;
}
.bne-hosted-kpi span {
  display: block;
  color: var(--bne-fg-faint);
  font: 10px/1.2 var(--bne-mono);
  letter-spacing: 0.12em;
}
.bne-hosted-kpi strong {
  display: block;
  margin-top: 8px;
  font: 700 28px/1 var(--bne-display);
  letter-spacing: -0.02em;
}
.bne-hosted-kpi p {
  margin: 8px 0 0;
  color: var(--bne-fg-dim);
  font-size: 12px;
}
.bne-hosted-split--parity {
  grid-template-columns: 1.4fr 1fr;
  align-items: start;
}

@media (max-width: 980px) {
  .bne-event-extras { grid-template-columns: 1fr; }
  .bne-payment-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bne-hosted-shell--parity .bne-hosted-kpis { grid-template-columns: 1fr; }
  .bne-hosted-split--parity { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .bne-buy-form-grid { grid-template-columns: 1fr; }
  .bne-event-related-item { grid-template-columns: 64px 1fr auto; }
}
