/* One border value for the dark theme (owner 2026-09-28): 22 percent white on every screen, 35 on
   iOS, where the same line reads fainter ("more in iphone safari"). Every border on the site reads
   var(--bv-line) (or --bv-line-solid where a solid grey is needed), so this is the one place to move it. */
:root { --bv-line: rgba(255,255,255,0.15); --bv-line-solid: #35354f; --bv-lift: 0 1px 3px rgba(255,255,255,0.06); }
/* One value on every device (owner 2026-09-28): the stronger iPhone line of 2026-09-27 answered a Safari extension (Noir) darkening the page, not the phone. */
/* ============================================================
   Sports Bar AI — Event Detail Page Styles
   ============================================================ */

.event-detail-page {
  padding-top: 16px;
  padding-bottom: 80px;
}

/* --- Breadcrumb --- */
.ed-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 16px;
}
.ed-breadcrumb a {
  color: var(--brand-blue);
  text-decoration: none;
}
.ed-breadcrumb a:hover { text-decoration: underline; }
.ed-breadcrumb svg { opacity: 0.5; flex-shrink: 0; }

/* --- Event Hero Card --- */
.ed-cover { margin-bottom: 20px; }

/* Card footer info (inside fixture-card-body) */
.ed-card-footer-inner {
  padding: 14px 20px;
}
.ed-card-footer-inner .ed-title {
  font-size: 1.1rem;
  margin-bottom: 6px;
}
.ed-card-footer-inner .ed-subtitle {
  font-size: 0.8rem;
}
.ed-footer-line {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 4px;
}
.ed-footer-line svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.ed-hero-card {
  background: var(--bg-card);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-lg);
  padding: 32px 24px;
  text-align: center;
}
.ed-hc-league {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
  opacity: 0.7;
}
.ed-hc-league img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}
.ed-hc-league span {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ed-hc-matchup {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
}
.ed-hc-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  min-width: 100px;
}
.ed-hc-team img {
  width: 80px;
  height: 80px;
  object-fit: contain;
}
.ed-hc-team-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.ed-hc-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 80px;
}
.ed-hc-vs {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text-muted);
  letter-spacing: 0.05em;
}
.ed-hc-score {
  font-size: 2rem;
  font-weight: 800;
  color: var(--text);
  letter-spacing: 0.05em;
}
.ed-hc-time {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--brand-blue);
}
.ed-hc-date {
  font-size: 0.75rem;
  color: var(--text-muted);
}
.ed-hc-status {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--brand-orange, #f39322);
  text-transform: uppercase;
  margin-top: 4px;
}
.ed-hero-card-general {
  padding: 40px 24px;
}
.ed-hc-general-title {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 8px;
}

/* --- Header --- */
.ed-header {
  margin-bottom: 24px;
}
.ed-header-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.ed-title {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.3;
  margin-bottom: 8px;
}
.ed-subtitle {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  color: var(--text-secondary);
  font-size: 0.85rem;
}
.ed-date-line, .ed-venue-line {
  display: flex;
  align-items: center;
  gap: 6px;
}
.ed-date-line svg, .ed-venue-line svg {
  width: 16px;
  height: 16px;
  opacity: 0.6;
}

/* --- Content Grid --- */
.ed-grid {
  display: block;
}
.ed-grid-inner {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 24px;
  align-items: start;
}
.ed-section-full {
  width: 100%;
}

/* --- Main Column --- */
.ed-section {
  margin-bottom: 20px;
  width: 100%;
  min-width: 0;
}
.ed-about-card,
.ed-chart-card,
.ed-ga-card,
.ed-booking-card {
  width: 100%;
  box-sizing: border-box;
}
.ed-section-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
/* "More Locations" heading sits below the Event Details info card —
   needs breathing room. */
.ed-also-showing {
  margin-top: 32px;
}
.ed-chart-card {
  background: var(--bg-card);
  border: 1px solid rgba(74,161,217,0.15);
  border-radius: 14px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(74,161,217,0.06), inset 0 1px 0 rgba(255,255,255,0.04);
}
.ed-section-title svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  opacity: 0.7;
}
.ed-description {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--text-secondary);
}
.ed-description p { margin: 0 0 10px; }
.ed-description p:last-child { margin-bottom: 0; }

/* ─── Premium Card Header ─── */
.ed-card-header {
  background: linear-gradient(135deg, rgba(74,161,217,0.12) 0%, rgba(74,161,217,0.03) 50%, rgba(243,147,34,0.04) 100%);
  border-bottom: 1px solid rgba(74,161,217,0.15);
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.ed-card-header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(74,161,217,0.4), rgba(243,147,34,0.2), transparent);
}
.ed-card-header .ed-section-title {
  margin-bottom: 0;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ed-card-header .ed-section-title svg { opacity: 1; color: var(--brand-blue, #4aa1d9); width: 20px; height: 20px; }
.ed-card-header .ed-ticket-price { font-size: 1rem; font-weight: 700; color: rgba(255,255,255,0.9); }

/* --- About Card --- */
.ed-about-card {
  background: var(--bg-card);
  border: 1px solid rgba(74,161,217,0.15);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(74,161,217,0.06), inset 0 1px 0 rgba(255,255,255,0.04);
}
.ed-about-card .ed-description { padding: 20px; }

/* --- Info Card ---
   Box: full width.
   Two columns side-by-side (left: date/time/status, right: location/city/event-by).
   Each row inside a column splits 50/50 between [icon + label] and [value]. */
.ed-info-card {
  background: var(--bg-card);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 20px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.ed-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.ed-info-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ed-info-col + .ed-info-col {
  border-left: 1px solid var(--border-glass);
}
.ed-info-row {
  display: grid;
  grid-template-columns: 50% 50%;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-glass);
  min-width: 0;
}
.ed-info-col .ed-info-row:last-child { border-bottom: none; }
@media (max-width: 720px) {
  .ed-info-grid { grid-template-columns: 1fr; }
  .ed-info-col + .ed-info-col { border-left: none; border-top: 1px solid var(--border-glass); }
}
.ed-info-row > .ed-info-label-wrap {
  display: flex; align-items: center; gap: 10px; min-width: 0;
}
.ed-info-icon {
  width: 20px;
  height: 20px;
  color: var(--brand-blue);
  flex-shrink: 0;
}
.ed-info-icon svg { width: 20px; height: 20px; }
.ed-info-label {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.ed-info-value {
  font-size: 0.85rem;
  color: var(--text);
  flex: 1;
}

/* Fixture league in info card */
.ed-fixture-league {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border-glass);
}

/* --- Sidebar Cards --- */
.ed-org-card,
.ed-map-card {
  background: var(--bg-card);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 16px;
}
.ed-booking-card {
  background: var(--bg-card);
  border: 1px solid rgba(74,161,217,0.15);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(74,161,217,0.06), inset 0 1px 0 rgba(255,255,255,0.04);
}
.ed-booking-card-body { padding: 20px; }

/* Booking Card */
.ed-booking-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 16px;
}
.ed-booking-header svg {
  width: 20px;
  height: 20px;
  color: var(--brand-blue);
}
.ed-booking-header .ev-badge { margin-left: auto; }

.ed-ticket-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-glass);
}
.ed-ticket-row:last-child { border-bottom: none; }
.ed-ticket-name {
  font-size: 0.85rem;
  color: var(--text);
}
/* Auto-coupon banner — full width, sits ABOVE the ticket/seating sections.
   Layout: [-XX% DISCOUNT]   ............   [ENDS IN: HHh MMm SSs]
   Scales fluidly down to 320px without ever hiding words. */
.ed-coupon-banner,
.ed-info-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(4px, 2vw, 12px);
  width: 100%;
  color: #fff;
  padding: clamp(6px, 1.8vw, 10px) clamp(8px, 2.5vw, 16px);
  border-radius: 8px;
  margin-bottom: 16px;
  /* Fluid font: 0.6rem at 320px → 0.85rem at 720px+ */
  font-size: clamp(0.6rem, 1.6vw, 0.85rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  box-sizing: border-box;
  flex-wrap: nowrap;             /* never wrap to two lines */
  white-space: nowrap;           /* keep each side on one line */
}
.ed-coupon-banner { background: #16a34a; }
.ed-info-banner   { background: var(--brand-blue, #4aa1d9); }
.ed-coupon-left, .ed-coupon-right {
  display: flex; align-items: baseline; gap: clamp(3px, 1vw, 6px);
  min-width: 0;                  /* allow flex children to shrink */
}
.ed-coupon-pct {
  font-weight: 900;
  /* Slightly larger than surrounding text for emphasis */
  font-size: clamp(0.72rem, 1.95vw, 1rem);
  letter-spacing: 0;
}
.ed-coupon-applied,
.ed-coupon-ends-label {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.95;
}
.ed-coupon-countdown {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
/* Unit letters (D/H/M/S) inside the countdown — muted so the digits dominate */
.ed-coupon-countdown .cd-u {
  opacity: 0.55;
  font-weight: 600;
  margin-left: 1px;
}

.ed-ticket-price {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--brand-blue);
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.ed-price-old {
  text-decoration: line-through;
  color: #b8bfcc;
  font-weight: 500;
}
.ed-sold-out-badge {
  font-size: 0.75rem; font-weight: 700; color: #fff;
  background: #e53e3e; padding: 4px 12px; border-radius: 6px;
  letter-spacing: 0.05em; text-transform: uppercase;
}
.ed-walkin-notice {
  font-size: 0.9rem; color: var(--brand-blue, #4aa1d9);
  padding: 16px 0 8px; text-align: center; font-weight: 500;
}
.ed-sold-out .ed-seatsio-inline { display: none; }
.ed-sold-out-alt { padding: 14px 0 4px; text-align: center; }
.ed-sold-out-alt p { margin: 0 0 12px; font-size: 0.9rem; color: var(--text-muted); display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; }
.ed-sold-out-alt-row { text-align: left; }
.ed-sold-out-alt-row .fixture-opener { display: block; margin: 0; }
.ed-book-btn-soldout { background: #e53e3e; opacity: 1; cursor: default; }
.ed-admission-card .ed-admission-body { padding: 14px 0 4px; font-size: 0.9rem; color: var(--text-muted); }
.ed-age-badge { font-size: 0.75rem; font-weight: 700; color: #fff; background: #16a34a; padding: 4px 10px; border-radius: 6px; }
.ed-price-tag {
  font-size: 0.65rem;
  font-weight: 700;
  color: #fff;
  background: #e53e3e;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ed-booking-info {
  font-size: 0.85rem;
  color: var(--text-muted);
  padding: 8px 0;
}

.ed-booking-totals {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 0.75rem;
  color: var(--text-muted);
  padding: 8px 0;
}

/* Highlight glow on Box Office card — fired when a seat is added on mobile.
   Two pulses of blue ring + soft halo, fades naturally. JS adds .ed-glow for
   the duration of the keyframe then removes the class. */
@keyframes edBoxGlow {
  0%   { box-shadow: 0 0 0 0 rgba(74,161,217,0); }
  20%  { box-shadow: 0 0 0 6px rgba(74,161,217,0.55), 0 0 28px 6px rgba(74,161,217,0.35); }
  60%  { box-shadow: 0 0 0 12px rgba(74,161,217,0), 0 0 36px 10px rgba(74,161,217,0); }
  100% { box-shadow: 0 0 0 0 rgba(74,161,217,0); }
}
.ed-booking-card.ed-glow {
  animation: edBoxGlow 1.8s ease-out;
}

/* "+ Add more seats" link inside Box Office seating block */
.ed-add-more-btn {
  display: block;
  width: 100%;
  margin: 8px 0 0;
  padding: 8px 12px;
  background: transparent;
  border: 1px dashed rgba(74,161,217,0.5);
  border-radius: var(--radius-sm);
  color: var(--brand-blue, #4aa1d9);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ed-add-more-btn:hover { background: rgba(74,161,217,0.08); border-color: var(--brand-blue, #4aa1d9); }

/* Box Office row actions (owner 2026-10-02): a table row slides, or opens on a
   mouse click, to show a red square delete button; Reset beside Add more. */
.ed-row-swipe { position: relative; overflow: hidden; margin-bottom: 10px; border-radius: var(--radius-sm); }
.ed-row-swipe .ed-row-face { position: relative; z-index: 1; margin-bottom: 0; background: var(--bg-card, #16162a); touch-action: pan-y; cursor: pointer; user-select: none; -webkit-user-select: none; }
.ed-row-del { position: absolute; top: 50%; transform: translateY(-50%); width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; background: #ef4444; color: #fff; border: 1px solid var(--bv-line); border-radius: 10px; cursor: pointer; padding: 0; }
.ed-row-del i { font-size: 18px; line-height: 1; }
.ed-row-del-l { left: 0; }
.ed-row-del-r { right: 0; }
.ed-add-more-line { display: flex; gap: 8px; align-items: stretch; margin-top: 8px; }
.ed-add-more-line .ed-add-more-btn { flex: 1; margin: 0; }
.ed-reset-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; background: transparent; border: 1px dashed #ef4444; border-radius: var(--radius-sm); color: #ef4444; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.02em; cursor: pointer; transition: background 0.15s ease; }
.ed-reset-btn > i { font-size: 0.79em !important; line-height: 1; }
.ed-reset-btn > span { line-height: 1; }
.ed-reset-btn:hover { background: rgba(239,68,68,0.08); }

.ed-book-btn {
  width: 100%;
  padding: 14px;
  border: none;
  border-radius: var(--radius-sm);
  background: #16a34a;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 12px;
  transition: background var(--transition), opacity var(--transition);
}
.ed-book-btn:hover:not(:disabled) { background: #15803d; }
.ed-book-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.ed-booking-note {
  text-align: center;
  font-size: 0.7rem;
  color: var(--text-muted);
  margin-top: 8px;
}
/* The venue's own age rule, under the box office button. Information only:
   nothing on this page gates on it, the venue checks at the door. */
.ed-age-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--bv-line);
}
.ed-age-note i { opacity: 0.6; }
.ed-booking-detail {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text);
  padding: 10px 0;
  letter-spacing: 0.02em;
}
/* ─── GA Ticket Picker ─── */
.ed-ga-card {
  background: var(--bg-card);
  border: 1px solid rgba(74,161,217,0.15);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(74,161,217,0.06), inset 0 1px 0 rgba(255,255,255,0.04);
}
.ed-ga-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
}
.ed-ga-name { font-size: 1.1rem; color: #fff; font-weight: 700; }
.ed-ga-controls { display: flex; align-items: center; gap: 8px; }
.ed-ticket-desc {
  font-size: 0.8rem;
  color: var(--text-muted, var(--bv-line));
  padding: 10px 20px 14px;
  border-top: 1px solid var(--bv-line);
}
.ed-sale-notice { padding: 8px 20px; font-size: 0.78rem; font-weight: 600; color: #4aa1d9; background: rgba(74,161,217,0.08); border-bottom: 1px solid var(--bv-line); }
.ed-sale-notice.ed-sale-ended { color: #b8bfcc; background: rgba(255,255,255,0.03); }
.ed-sale-disabled { opacity: 0.7; }
.ed-ga-btn {
  width: 42px; height: 42px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.06); color: #fff; font-size: 1.3rem; font-weight: 700;
  cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.15s;
  flex-shrink: 0; padding: 0; margin: 0;
}
.ed-ga-btn:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.25); }
.ed-ga-qty { font-size: 1.2rem; font-weight: 800; color: #fff; min-width: 32px; text-align: center; }
.ed-ga-ok {
  width: 42px !important; height: 42px !important; padding: 0 !important;
  min-width: auto !important; border-radius: 10px !important;
  background: #22c55e !important; border: 1px solid #22c55e !important;
  margin-top: 0 !important; flex-shrink: 0;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.ed-ga-ok:hover { background: #16a34a !important; }
/* ─── Order Item Lines ─── */
.ed-order-item { padding: 8px 0; border-bottom: 1px solid var(--bv-line); }
.ed-order-item:last-child { border-bottom: none; }
.ed-order-item-line { display: flex; justify-content: space-between; font-size: 0.85rem; color: #fff; padding: 4px 0; }
.ed-order-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.35);
  padding: 12px 0 4px;
}
.ed-order-divider::before,
.ed-order-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(255,255,255,0.08);
}
/* GA order line — big qty outside, name in rectangle box */
.ed-order-ga-line {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ed-order-ga-qty {
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  min-width: 28px;
  text-align: center;
}
.ed-order-ga-name-box {
  margin-left: auto;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--bv-line);
  border-radius: 8px;
  padding: 10px 14px;
}
/* Box Office badge — shared base */
.ev-badge-open, .ev-badge-timer, .ev-badge-closed {
  padding: 4px 14px;
  border-radius: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  min-width: 52px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: background 0.5s ease, color 0.5s ease, border-color 0.5s ease;
}
.ev-badge-open {
  background: rgba(34,197,94,0.15);
  color: #22c55e;
  border: 1px solid rgba(34,197,94,0.3);
}
/* Timer ramps from ORANGE → RED → DEEP RED matching the hold banner phases */
.ev-badge-timer {
  background: rgba(243,147,34,0.15);
  color: #f39322;
  border: 1px solid rgba(243,147,34,0.4);
}
.ev-badge-timer.ev-badge-warn {
  background: rgba(229,62,62,0.15);
  color: #e53e3e;
  border-color: rgba(229,62,62,0.45);
}
.ev-badge-timer.ev-badge-urgent {
  background: rgba(220,38,38,0.2);
  color: #ef4444;
  border-color: rgba(220,38,38,0.55);
}
.ev-badge-timer i, .ev-badge-timer svg { font-size: 11px; line-height: 1; }
.ev-badge-closed {
  background: rgba(239,68,68,0.12);
  color: #ef4444;
  border: 1px solid rgba(239,68,68,0.3);
}
.ed-booking-cols {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}
.ed-booking-col {
  flex: 1;
  text-align: center;
}
.ed-booking-col-label {
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--brand-blue, #4aa1d9);
  border-radius: 6px;
  padding: 6px 10px;
  margin-bottom: 8px;
}
.ed-booking-col-value {
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
}
.ed-booking-seats-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 0;
}
.ed-seat-pill {
  background: rgba(74, 161, 217, 0.15);
  color: var(--accent, #4aa1d9);
  border: 1px solid rgba(74, 161, 217, 0.3);
  border-radius: 6px;
  padding: 4px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* Org Card */
.ed-org-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-bottom: 8px;
}
.ed-org-header svg { width: 18px; height: 18px; }
.ed-org-name {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 4px;
}
.ed-org-desc {
  font-size: 0.8rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* Map Card */
.ed-map-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-bottom: 8px;
}
.ed-map-header svg { width: 18px; height: 18px; }
.ed-map-card-title {
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-glass);
}
.ed-map-card-title svg { width: 18px; height: 18px; flex-shrink: 0; }
.ed-leaflet-map {
  width: 100%;
  height: 180px;
  border-radius: var(--radius-sm, 8px);
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid var(--border-glass);
}
.ed-map-venue {
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 4px;
}
.ed-map-address {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 12px;
}
.ed-map-btns {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.ed-map-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: var(--radius-sm);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
  flex: 1;
  justify-content: center;
}
.ed-map-btn svg { width: 14px; height: 14px; }
.ed-map-btn,
.ed-map-uber, .ed-map-apple, .ed-map-google {
  background: #000;
  color: #fff;
  border: 1px solid #333;
}
.ed-map-btn:hover,
.ed-map-uber:hover, .ed-map-apple:hover, .ed-map-google:hover {
  background: #1a1a1a;
  border-color: #444;
}
.ed-map-btn i, .ed-map-btn svg { color: #fff !important; fill: currentColor; }

/* --- Walk-in / Ended Card --- */
.ed-walkin-card {
  background: rgba(239, 68, 68, 0.06);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: var(--radius-sm);
  padding: 14px 18px;
  margin-bottom: 24px;
}
.ed-walkin-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}
.ed-walkin-icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(74,161,217,0.12);
  border-radius: 50%;
  flex-shrink: 0;
}
.ed-walkin-icon svg { width: 16px; height: 16px; color: var(--brand-blue); }

/* Cancelled event (owner 2026-10-01): red disc, the badge pushed to the right */
.ed-walkin-icon-cancelled { background: rgba(239, 68, 68, 0.18); }
.ed-walkin-icon-cancelled i { color: #ef4444; font-size: 15px; }
.ed-cancelled-card .ed-walkin-header { margin-bottom: 0; }
.ed-cancelled-card .ed-walkin-header .ed-sold-out-badge { margin-left: auto; }
.ed-cancelled-card .ed-sold-out-alt { padding: 12px 0 0; }
.ed-cancelled-card .ed-sold-out-alt p { justify-content: flex-start; margin-bottom: 10px; }
.ed-cancelled-actions { padding-top: 12px; }

/* Live red pulsing dot inside walkin/live header icon */
.ed-walkin-icon-live {
  background: rgba(239, 68, 68, 0.18);
}
.ed-walkin-icon-live .ed-live-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ef4444;
  box-shadow: 0 0 0 0 rgba(239,68,68,0.6);
  animation: ed-live-pulse 1.6s ease-in-out infinite;
}
@keyframes ed-live-pulse {
  0%, 100% { transform: scale(1);   box-shadow: 0 0 0 0 rgba(239,68,68,0.6); }
  50%      { transform: scale(0.9); box-shadow: 0 0 0 6px rgba(239,68,68,0);  }
}

.ed-walkin-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}
.ed-walkin-message {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.55;
  margin: 0;
}
.ed-walkin-message strong { color: var(--brand-blue); font-weight: 700; }
.ed-walkin-map {
  width: 100%;
  height: 280px;
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
  overflow: hidden;
  border: 1px solid var(--border-glass);
}
.ed-walkin-btns {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.ed-walkin-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
  flex: 1;
  justify-content: center;
  min-width: 140px;
}
/* Uber Estimates Panel */
.ed-uber-panel {
  margin: 12px 0;
}
.ed-uber-btn {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: #000;
  border-radius: 12px;
  text-decoration: none;
  transition: transform 0.15s, box-shadow 0.15s;
  cursor: pointer;
  border: none;
}
.ed-uber-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
}
.ed-uber-btn:active { transform: scale(0.98); }
.ed-uber-loading { opacity: 0.6; }
.ed-uber-badge {
  width: 40px;
  height: 40px;
  background: #fff;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ed-uber-img {
  width: 26px;
  height: auto;
}
.ed-uber-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  min-width: 0;
}
.ed-uber-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}
.ed-uber-sub {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.01em;
}
.ed-uber-chevron {
  width: 20px;
  height: 20px;
  color: rgba(255,255,255,0.3);
  flex-shrink: 0;
}
.ed-uber-blurred {}
.ed-uber-placeholder .ed-uber-sub-blur { filter: blur(5px); }
.ed-uber-placeholder.ed-uber-loading .ed-uber-sub-blur { filter: none; }
.ed-uber-placeholder.ed-uber-loading .ed-uber-activate { display: none; }
.ed-uber-activate {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0;
  margin-top: 2px;
  background: none;
  border: none;
  color: #4aa1d9;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  pointer-events: auto;
}
.ed-uber-activate:hover { background: rgba(74,161,217,0.15); }
.ed-uber-activate:disabled { opacity: 0.6; cursor: wait; }

.ed-walkin-uber {
  background: #000;
  color: #fff;
  border: 1px solid #333;
}
.ed-walkin-uber:hover { background: #1a1a1a; }
.ed-walkin-apple {
  background: var(--bg-glass);
  color: var(--text);
  border: 1px solid var(--border-glass);
}
.ed-walkin-apple:hover { background: var(--bg-glass-hover); }
.ed-walkin-google {
  background: rgba(74,161,217,0.08);
  color: var(--brand-blue);
  border: 1px solid rgba(74,161,217,0.2);
}
.ed-walkin-google:hover { background: rgba(74,161,217,0.15); }

/* More events at location */
.ed-more-events {
  margin-top: 8px;
}
.ed-more-events .ed-section-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ed-more-events .ed-section-title svg { width: 20px; height: 20px; }
.ed-more-events-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (max-width: 639px) {
  .ed-walkin-card { padding: 20px 16px; }
  .ed-walkin-title { font-size: 1rem; }
  .ed-walkin-message { font-size: 0.85rem; }
  .ed-walkin-map { height: 220px; }
  .ed-walkin-btn { padding: 10px 14px; font-size: 0.8rem; min-width: 0; }
}

/* --- Error --- */
.ed-error {
  text-align: center;
  padding: 80px 20px;
  color: var(--text-secondary);
}
.ed-error h2 { font-size: 1.3rem; margin-bottom: 8px; color: var(--text); }
.ed-error p { margin-bottom: 20px; }
.ed-btn-primary {
  display: inline-block;
  padding: 12px 24px;
  background: var(--brand-blue);
  color: #fff;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.85rem;
}
.ed-btn-primary:hover { background: #3a8dc4; }

/* --- Checkout Form --- */
.ed-checkout-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ed-checkout-summary {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-glass);
}
.ed-checkout-line {
  display: flex;
  justify-content: space-between;
  font-size: 0.9rem;
  font-weight: 600;
}
.ed-checkout-seats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.ed-checkout-seat {
  background: rgba(74, 161, 217, 0.15);
  color: var(--accent, #4aa1d9);
  border: 1px solid rgba(74, 161, 217, 0.3);
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 0.8rem;
  font-weight: 500;
}
.ed-checkout-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ed-form-row {
  display: flex;
  gap: 8px;
}
.ed-form-row .ed-input {
  flex: 1;
}
.ed-input {
  width: 100%;
  padding: 10px 12px;
  background: var(--bg-glass, rgba(255,255,255,0.05));
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-size: 0.85rem;
  font-family: inherit;
  outline: none;
  transition: border-color var(--transition);
  box-sizing: border-box;
}
.ed-input:focus {
  border-color: var(--brand-blue);
}
.ed-input::placeholder {
  color: var(--text-muted);
}
.ed-promo-row {
  display: flex;
  gap: 8px;
}
.ed-promo-row .ed-input {
  flex: 1;
}
.ed-promo-btn {
  padding: 10px 16px;
  background: var(--bg-glass);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-sm);
  color: var(--brand-blue);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--transition);
}
.ed-promo-btn:hover {
  background: var(--bg-glass-hover);
}
.ed-stripe-label {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.ed-stripe-card {
  padding: 12px;
  background: var(--bg-glass, rgba(255,255,255,0.05));
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-sm);
}
.ed-stripe-error {
  font-size: 0.8rem;
  color: var(--brand-orange, #f39322);
  min-height: 18px;
}
.ed-checkout-secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.7rem;
  color: var(--text-muted);
  padding-top: 4px;
}
.ed-checkout-secure svg {
  width: 12px;
  height: 12px;
}

/* --- Checkout Success --- */
.ed-checkout-success {
  text-align: center;
  padding: 16px 0;
}
.ed-success-icon {
  margin-bottom: 12px;
}
.ed-success-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #22c55e;
  margin-bottom: 4px;
}
.ed-success-ref {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}
.ed-success-msg {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* Seats + Booking row (side by side on desktop) */
.ed-seats-row {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 24px;
  align-items: start;
  margin-bottom: 24px;
}
.ed-seats-main {
  min-width: 0;
  width: 100%;
}
.ed-seats-side {
  position: sticky;
  top: 80px;
  min-width: 0;
}

/* Mobile booking / extras: hidden on desktop, shown on mobile */
.ed-mobile-booking,
.ed-mobile-extras {
  display: none;
}

/* --- Responsive --- */
@media (max-width: 900px) {
  .ed-grid-inner { grid-template-columns: 1fr; }
  .ed-seats-row { grid-template-columns: 1fr; }
  .ed-seats-side { position: static; }
  /* Sidebar stacks below main on mobile (no longer hidden — there's only one
     map card now, and it lives in the sidebar). */
  .ed-sidebar { display: block; }
  .ed-mobile-booking,
  .ed-mobile-extras { display: block; }
  .ed-hc-team img { width: 64px; height: 64px; }
  .ed-hc-matchup { gap: 24px; }
}

@media (max-width: 600px) {
  .ed-title { font-size: 1.2rem; }
  .ed-subtitle { flex-direction: column; gap: 8px; }
  .ed-hc-team img { width: 48px; height: 48px; }
  .ed-hc-team-name { font-size: 0.75rem; }
  .ed-hc-matchup { gap: 16px; }
  .ed-hc-team { min-width: 70px; }
  .ed-hero-card { padding: 24px 16px; }
  /* Cards — elastic on mobile */
  .ed-seats-row,
  .ed-grid-inner { gap: 16px; }
  .ed-seats-main,
  .ed-seats-side,
  .ed-section,
  .ed-section-full { width: 100% !important; min-width: 0; overflow: hidden; }
  .ed-about-card,
  .ed-chart-card,
  .ed-ga-card,
  .ed-booking-card { border-radius: 12px; width: 100%; }
  .ed-card-header { padding: 12px 16px; }
  .ed-card-header .ed-section-title { font-size: 0.85rem; }
  .ed-card-header .ed-ticket-price { font-size: 0.9rem; }
  .ed-about-card .ed-description { padding: 16px; font-size: 0.85rem; }
  .ed-booking-card-body { padding: 16px; }
  .ed-ga-body { padding: 14px 16px; }
  .ed-ticket-desc { padding: 8px 16px 12px; font-size: 0.75rem; }
  .ed-section { margin-bottom: 16px; }
  .ed-seatsio-inline { height: 380px; }
  .ed-booking-cols { flex-wrap: wrap; }
  .ed-order-ga-qty { font-size: 1.3rem; }
  .ed-book-btn { font-size: 0.85rem; padding: 12px; }
}

/* ─── Seats.io Inline Chart ───────────────── */
.ed-seatsio-inline {
  width: 100%;
  height: 500px;
  overflow: hidden;
  background: var(--bg-card);
}
.ed-seatsio-status {
  padding: 12px 20px 0;
}
.ed-seats-hint {
  font-size: 0.8rem;
  color: var(--text-muted);
}
.ed-seats-selected-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: var(--bg-card);
  border: 1px solid var(--brand-blue-dim, rgba(74,161,217,0.3));
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  color: var(--text);
}
.ed-seats-confirm-btn {
  padding: 8px 20px;
  border: none;
  border-radius: var(--radius-sm);
  background: var(--brand-blue);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--transition);
}
.ed-seats-confirm-btn:hover { background: #3a8dc4; }
.ed-seats-confirmed {
  display: inline-block;
  padding: 10px 16px;
  background: rgba(34,197,94,0.1);
  border: 1px solid rgba(34,197,94,0.3);
  border-radius: var(--radius-sm);
  color: #22c55e;
  font-size: 0.85rem;
  font-weight: 600;
}

@media (max-width: 600px) {
  .ed-seats-selected-bar { flex-direction: column; text-align: center; }
}

/* ─── Seats.io Chart Modal ─────────────────── */
.seatsio-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.seatsio-overlay.open {
  opacity: 1;
  pointer-events: all;
}
.seatsio-modal {
  width: 95vw;
  max-width: 1100px;
  height: 85vh;
  background: var(--bg-card, #1a1a2e);
  border-radius: 16px;
  border: 1px solid var(--border-glass, var(--bv-line));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.95);
  transition: transform 0.3s;
}
.seatsio-overlay.open .seatsio-modal { transform: scale(1); }
.seatsio-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-glass, var(--bv-line));
}
.seatsio-modal-header h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text, #fff);
  margin: 0;
}
.seatsio-close {
  background: none;
  border: none;
  color: var(--text-muted, #888);
  font-size: 1.5rem;
  cursor: pointer;
  padding: 4px 8px;
  line-height: 1;
}
.seatsio-close:hover { color: var(--text, #fff); }
.seatsio-chart-container {
  flex: 1;
  min-height: 0;
}
.seatsio-modal-footer {
  padding: 12px 20px;
  border-top: 1px solid var(--border-glass, var(--bv-line));
  display: flex;
  align-items: center;
  gap: 16px;
}
.seatsio-selected {
  flex: 1;
  font-size: 0.8rem;
  color: var(--text-secondary, #aaa);
}
.seatsio-modal-footer .ed-book-btn {
  width: auto;
  padding: 10px 24px;
  margin-top: 0;
}
.ed-book-btn-selected {
  background: #16a34a !important;
  opacity: 1 !important;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.ed-book-btn-selected:hover { background: #15803d !important; }
/* Diagonal sweep cue — same pattern as the chevron opener, signals the
   button is ready to be clicked once items are selected. */
.ed-book-btn-selected::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(135deg,
      transparent 35%,
      rgba(255,255,255,0.45) 50%,
      transparent 65%) -120% -120% / 300% 300% no-repeat;
  animation: edBookBtnSweep 3.5s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}
.ed-book-btn-selected > * { position: relative; z-index: 1; }
@keyframes edBookBtnSweep {
  0%   { background-position: -120% -120%; }
  55%  { background-position:  120%  120%; }
  100% { background-position:  120%  120%; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-book-btn-selected::before { animation: none; opacity: 0; }
}

@media (max-width: 600px) {
  .seatsio-modal { width: 100vw; height: 100vh; border-radius: 0; }
}

/* ============================================================
   Event hero card — live / finished / scheduled states
   Mirrors fixture-detail.css .fd-* classes so event headers
   render with the same LIVE / FINAL / scheduled treatment.
   ============================================================ */
.fixture-card .fd-live-label {
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--live, #ef4444);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 4px;
}

.fixture-card .fd-score {
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
  display: block;
}

.fixture-card .fd-score.live {
  color: #fff;
}

.fixture-card .fd-time-display {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
  display: block;
}

@media (min-width: 1024px) {
  .fixture-card .fd-time-display { font-size: 1.4rem; }
}

.fixture-card .fd-date-display {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-top: 6px;
}

.fixture-card .fd-period {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--live, #ef4444);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  display: block;
  margin-top: 4px;
}

.fixture-card .fd-final-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: block;
  margin-top: 4px;
}

.fixture-card .fd-extra {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-top: 4px;
}

.fixture-card .status-dot.live::after {
  background: var(--live, #ef4444);
  animation: live-pulse 1.6s ease-in-out infinite;
}

@keyframes live-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.4; transform: scale(0.85); }
}

/* Big map below "event already started" walkin card */
.ed-walkin-bigmap {
  width: 100%;
  height: 360px;
  border-radius: 12px;
  margin-top: 16px;
  overflow: hidden;
  border: 1px solid var(--bv-line);
}
@media (max-width: 600px) {
  .ed-walkin-bigmap { height: 280px; }
}
.ed-walkin-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.ed-walkin-btn {
  flex: 1 1 0;
  min-width: 100px;
  text-align: center;
  padding: 10px 16px;
  border-radius: 8px;
  background: rgba(74,161,217,0.12);
  border: 1px solid rgba(74,161,217,0.3);
  color: #fff;
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  transition: background 0.2s;
}
.ed-walkin-btn:hover { background: rgba(74,161,217,0.22); }
.ed-walkin-btn-uber {
  background: rgba(0,0,0,0.8);
  border-color: rgba(255,255,255,0.18);
}

/* Tiny localized label under the English pill label. Never wider than the
   English term: the pill keeps its size, the sub clips inside it. */
.ed-booking-col-label { overflow: hidden; }
.ed-col-sub {
  display: block;
  font-size: 0.58em;
  line-height: 1.1;
  margin-top: 1px;
  color: inherit;
  font-weight: 600;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.02em;
}

/* GA first-come-first-served notice — amber warning box on the admission card */
.ed-ga-warning { display: flex; align-items: flex-start; gap: 9px; padding: 0 20px 16px; color: #f87171; font-size: 0.85rem; line-height: 1.45; font-weight: 600; }
@media (max-width: 720px) { .ed-ga-warning { padding: 0 16px 14px; } }

/* A light shadow under every box that sits on the page background, so it lifts off it (owner 2026-09-28). One value, --bv-lift, declared at the top. */
.ed-chart-card, .ed-booking-card, .ed-about-card { box-shadow: var(--bv-lift); }

/* Box Office button with its icon (2026-10-03). The icon sits ON THE TEXT'S
   BASELINE, so it matches the capitals on every system: the Font Awesome ticket
   draws from the baseline to 0.75em, and at 0.95em of the text that is the
   capital height (0.711em), so icon ink and letter ink share top and bottom.
   Box centring and per-font nudges read differently on macOS and Linux. */
.ed-book-btn { display: flex; align-items: baseline; justify-content: center; gap: 8px; line-height: 1; }
.ed-book-btn > i { font-size: 0.95em !important; line-height: 1; display: inline-block; vertical-align: baseline; transform: none; margin: -0.125em 0; } /* the icon box (0.875em up, 0.125em down) trimmed to its ink (baseline to 0.75em), like the trimmed label */
.ed-book-btn > span { display: block; transform: none; text-box: trim-both cap alphabetic; }
