:root {
  --bg:#0b0c0e; --surface:#14161a; --elev:#1b1e24; --fg:#eef0f3; --muted:#9aa3ae;
  --line:#2a2e36; --accent:#6ea8d8; --accent-fg:#081018; --warn:#c4a574;
}
html { box-sizing:border-box; }
*,*::before,*::after { box-sizing:inherit; }
html,body { margin:0; background:var(--bg); color:var(--fg); font-family:"IBM Plex Sans","Segoe UI",system-ui,sans-serif; }
a { color:inherit; }
.banner { background:var(--elev); color:var(--warn); text-align:center; padding:8px 16px; font-size:12px; border-bottom:1px solid var(--line); }
header,footer { border-color:var(--line); border-style:solid; border-width:0; }
header { border-bottom-width:1px; }
footer { border-top-width:1px; color:#6d7580; font-size:12px; line-height:1.5; }
.wrap { max-width:1120px; margin:0 auto; padding:20px 16px; }
.nav { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.brand { font-weight:600; font-size:18px; text-decoration:none; }
.brand span { margin-left:8px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
nav a { text-decoration:none; color:var(--muted); padding:8px 12px; border-radius:999px; font-size:14px; }
nav a:hover, nav a.active { background:var(--elev); color:var(--fg); }
h1 { font-size:clamp(28px,4vw,44px); font-weight:600; letter-spacing:-.03em; margin:12px 0; }
h2 { font-size:22px; margin:36px 0 12px; }
.kicker { font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); }
.lead,.prose { color:var(--muted); max-width:760px; line-height:1.65; }
.prose a { color:var(--accent); }
.hero {
  position:relative; min-height:360px; display:flex; align-items:flex-end;
  background:#111 url("https://www.buytickets.com/uploads/love_hands_crowd.jpg") center/cover no-repeat;
}
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,12,14,.25),rgba(11,12,14,.88)); }
.hero .wrap { position:relative; z-index:1; padding-bottom:36px; }
.hero h1, .hero .lead { color:#fff; }
.row { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.btn { display:inline-flex; align-items:center; height:42px; padding:0 16px; border-radius:999px; font-weight:600; font-size:14px; text-decoration:none; border:1px solid var(--line); background:var(--elev); color:var(--fg); cursor:pointer; }
.btn-primary { background:var(--accent); color:var(--accent-fg); border-color:var(--accent); }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; }
.grid a, .card {
  background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:16px; text-decoration:none; display:block;
}
.grid a:hover { border-color:var(--accent); }
.grid strong { display:block; margin-bottom:6px; }
.grid span { color:var(--muted); font-size:13px; }
.table { width:100%; border-collapse:collapse; }
.table td { padding:12px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
.table .d { color:var(--muted); font-size:13px; white-space:nowrap; width:130px; }
.table .v { color:var(--muted); font-size:13px; }
.map-frame { width:100%; height:820px; border:0; display:block; background:#fff; }
.faq dt { font-weight:600; margin-top:14px; }
.faq dd { margin:6px 0 0; color:var(--muted); }
.search { display:flex; gap:8px; margin-top:16px; flex-wrap:wrap; }
.search input, .nav-search input {
  flex:1; min-width:180px; height:44px; border-radius:999px; border:1px solid var(--line);
  background:var(--elev); color:var(--fg); padding:0 16px; font:inherit;
}
.nav-search { display:flex; gap:8px; align-items:center; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.chip { height:36px; padding:0 14px; border-radius:999px; border:1px solid var(--line); background:var(--elev); color:var(--muted); text-decoration:none; font-size:12px; font-weight:600; display:inline-flex; align-items:center; }
.chip.on { background:var(--accent); color:var(--accent-fg); border-color:var(--accent); }

/* TicketNetwork listing widget — light well so default TN greys are not lost on the dark page */
#tn_results_container {
  margin-top: 20px;
  background: #fff;
  color: #1a1a1a;
  border-radius: 16px;
  padding: 8px 4px 16px;
  overflow: auto;
  max-height: 78vh;
}
#tn_results_container,
#tn_results_container table,
#tn_results_container td,
#tn_results_container p,
#tn_results_container span {
  color: #1a1a1a !important;
  background: transparent;
}
#tn_results_container table { width: 100%; border-collapse: collapse; }
#tn_results_container .tnpl_row { border-bottom: 1px solid #e6e8ec; }
#tn_results_container .tnpl_td_date,
#tn_results_container .tnpl_td_event,
#tn_results_container .tnpl_td_btn { padding: 12px 10px; vertical-align: middle; }
#tn_results_container .tnpl_event { color: #0e1116 !important; font-weight: 600 !important; margin: 0 0 4px; }
#tn_results_container .tnpl_date,
#tn_results_container .tnpl_month,
#tn_results_container .tnpl_day_num,
#tn_results_container .tnpl_date_year { color: #0e1116 !important; }
#tn_results_container .tnpl_venue,
#tn_results_container .tnpl_location,
#tn_results_container .tnpl_time,
#tn_results_container .tnpl_day,
#tn_results_container .tnpl_venue_location { color: #4b5563 !important; }
#tn_results_container .tnpl_btn {
  display: inline-flex !important;
  align-items: center;
  background: #6ea8d8 !important;
  color: #081018 !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  padding: 8px 14px !important;
  font-weight: 600 !important;
}
#tn_results_container .tnpl_btn span { color: #081018 !important; }
#tn_results_container .tnpl_btn img { display: none; }
#tn_results_container .tnpl_footer,
#tn_results_container .tnpl_footer_link { color: #4b5563 !important; }

.suggest-wrap { position: relative; flex: 1; min-width: 180px; }
.suggest-wrap input { width: 100%; }
.suggest-box {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 40;
  background: #fff; color: #111; border-radius: 12px; overflow: hidden;
  box-shadow: 0 12px 40px rgba(0,0,0,.35); border: 1px solid #e6e8ec;
}
.suggest-item {
  display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
  width: 100%; text-align: left; border: 0; background: #fff; color: #111;
  padding: 10px 14px; font: inherit; cursor: pointer;
}
.suggest-item strong { font-weight: 600; color: #0e1116; }
.suggest-item span { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #6b7280; }
.suggest-item:hover, .suggest-item.on { background: #eef5fb; }


.home-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin: 8px 0 28px; }
.home-grid--3 { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.home-tile { background:var(--surface); border:1px solid var(--line); border-radius:16px; overflow:hidden; text-decoration:none; display:flex; flex-direction:column; }
.home-tile:hover { border-color:var(--accent); }
.home-tile-img { display:block; height:140px; background-size:cover; background-position:center; background-color:#1b1e24; }
.home-tile-cap { display:flex; justify-content:space-between; gap:8px; align-items:center; padding:10px 12px; }
.home-tile-name { font-weight:600; font-size:14px; }
.home-tile-go { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.home-how { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin: 12px 0 28px; }
.home-how div { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:16px; }
.home-how p { color:var(--muted); margin:8px 0 0; line-height:1.5; }
.prose a { color:var(--accent); }

.artist-hero { display:grid; grid-template-columns: 1.15fr .85fr; gap: 28px; align-items: center; padding-top: 28px; }
@media (max-width: 800px) { .artist-hero { grid-template-columns: 1fr; } }
.artist-photo { min-height: 340px; border-radius: 18px; background-size: cover; background-position: center 18%; border: 1px solid var(--line); }
.artist-inline { margin: 28px 0; }
.artist-inline img { width: 100%; max-height: 420px; object-fit: cover; object-position: center 20%; border-radius: 16px; display: block; }
.artist-inline figcaption { color: var(--muted); font-size: 13px; margin-top: 8px; }
.stay22-wrap { background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); margin: 8px 0 32px; }
#stay22-widget { display: block; width: 100%; border: 0; min-height: 460px; background: #fff; }

