:root {
  --bg:#050505;
  --surface:#0d0d0d;
  --surface-soft:#141414;
  --surface-raised:#181818;
  --border:#272727;
  --border-strong:#343434;
  --text:#f7f7f7;
  --muted:#b6b6b6;
  --muted-2:#8d8d8d;
  --primary:#25d366;
  --primary-dark:#0f7b3c;
  --danger:#ff5757;
  --shadow:0 18px 45px rgba(0,0,0,.34);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.45;
}

a { color:inherit; }
button,input { font:inherit; }

.container {
  width:min(1160px, calc(100% - 32px));
  margin:auto;
}

/* Header */
header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(5,5,5,.88);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(16px);
}

.header-inner {
  min-height:76px;
  display:grid;
  grid-template-columns:auto minmax(260px, 520px) auto;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand {
  color:#fff;
  text-decoration:none;
  font-size:1.48rem;
  font-weight:900;
  letter-spacing:0;
  white-space:nowrap;
}

.brand span { color:var(--primary); }

nav {
  display:flex;
  align-items:center;
  gap:8px;
}

.nav-link {
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border-radius:8px;
  padding:8px 12px;
  color:#e8e8e8;
  font-size:.9rem;
  font-weight:800;
}

.nav-link.current { color:var(--primary); }

.nav-link.cta {
  color:#07130a;
  background:var(--primary);
}

.nav-link.cta:hover { filter:brightness(1.06); }

.eyebrow {
  color:var(--primary);
  text-transform:uppercase;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:10px;
}

h1 {
  margin:0;
  max-width:780px;
  font-size:clamp(2.25rem,4vw,3.6rem);
  line-height:1;
  letter-spacing:0;
}

.search-area {
  width:100%;
}

.header-search{
  justify-self:center;
}

.search-box {
  min-height:48px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 16px;
  border:1px solid var(--border-strong);
  border-radius:10px;
  background:#101010;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
  transition:border-color .18s ease, box-shadow .18s ease;
}

.search-box:focus-within {
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,211,102,.11);
}

.search-icon {
  width:24px;
  flex:0 0 auto;
  color:var(--primary);
  font-size:1.2rem;
  text-align:center;
}

.search-box input {
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:#fff;
}

.search-box input::placeholder { color:#777; }

/* Toolbar */
main { padding:26px 0 54px; }

.toolbar {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.filters {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.filter {
  min-height:34px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#111;
  color:#dcdcdc;
  cursor:pointer;
  padding:7px 12px;
  font-size:.84rem;
  font-weight:850;
}

.filter:hover,
.filter.active {
  border-color:var(--primary);
  background:var(--primary);
  color:#06130a;
}

.count {
  padding-top:7px;
  color:var(--muted);
  font-size:.9rem;
  font-weight:800;
  white-space:nowrap;
}

/* Cards */
.events-grid {
  display:grid;
  gap:18px;
}

.events-grid:not(.is-rendered) {
  min-height:520px;
  position:relative;
}

.events-grid:not(.is-rendered)::before {
  content:"";
  display:block;
  min-height:520px;
  border:1px solid var(--border);
  border-radius:8px;
  background:
    linear-gradient(90deg, transparent, rgba(255,255,255,.045), transparent) 0 0 / 220px 100% no-repeat,
    linear-gradient(#151515 0 0) 0 0 / 100% 56% no-repeat,
    linear-gradient(#1c1c1c 0 0) 18px 62% / 48% 18px no-repeat,
    linear-gradient(#151515 0 0) 18px calc(62% + 34px) / 72% 14px no-repeat,
    var(--surface);
}

.events-section {
  min-width:0;
}

.events-grid-main {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:start;
}

.events-grid-compact {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  align-items:start;
}

.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:8px 0 12px;
}

.primary-heading{
  margin-top:0;
}

.section-heading h2 {
  margin:0;
  font-size:1.26rem;
  letter-spacing:0;
}

.primary-heading h2{
  font-size:1.72rem;
}

.section-heading span {
  color:var(--muted-2);
  font-size:.82rem;
  font-weight:800;
}

.event-card {
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface);
  box-shadow:var(--shadow);
  transition:transform .18s ease, border-color .18s ease, background .18s ease;
  cursor:pointer;
}

.event-card:hover {
  transform:translateY(-3px);
  border-color:#3c3c3c;
  background:#101010;
}

.event-card:focus-visible {
  outline:2px solid var(--primary);
  outline-offset:3px;
}

.event-media {
  position:relative;
  aspect-ratio:16/9;
  background:#111;
  overflow:hidden;
}

.event-media-link {
  display:block;
  width:100%;
  height:100%;
  color:inherit;
  text-decoration:none;
}

.event-media img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .25s ease;
}

.event-card:hover .event-media img { transform:scale(1.035); }

.soldout-badge {
  display:none;
  position:absolute;
  top:11px;
  right:11px;
  z-index:2;
  border-radius:999px;
  background:var(--danger);
  color:#fff;
  padding:6px 9px;
  font-size:.72rem;
  font-weight:950;
}

.event-card.soldout .soldout-badge { display:inline-flex; }
.event-card.finished{
  background:#0f0f0f;
  border-color:#242424;
}
.event-card.finished .event-media img{
  filter:grayscale(.9) saturate(.35) brightness(.72);
}
.event-card.finished .event-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(15,23,42,.28);
  pointer-events:none;
}
.event-card.finished .soldout-badge{
  display:inline-flex;
  z-index:3;
  border-radius:8px;
  background:#be123c;
  letter-spacing:.06em;
}

.event-body {
  position:relative;
  min-height:268px;
  display:flex;
  flex:1;
  flex-direction:column;
  padding:18px;
}

.event-card.no-image .event-body {
  min-height:0;
  padding-top:20px;
  background:
    linear-gradient(135deg, rgba(37,211,102,.12), transparent 34%),
    linear-gradient(180deg, #131313 0%, #0d0d0d 100%);
}

.event-card.no-image .event-body::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--primary),rgba(37,211,102,0));
}

.event-card.no-image .description {
  -webkit-line-clamp:2;
}

.events-grid-compact .event-card.no-image .event-body {
  padding:18px;
}

.events-grid-compact .event-card.no-image .meta {
  margin-top:12px;
}

.events-grid-compact .event-card.no-image .card-footer {
  margin-top:16px;
}

.event-kicker {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin-bottom:12px;
}

.functions-pill {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  padding:4px 8px;
  color:#07130a;
  background:var(--primary);
  font-size:.72rem;
  font-weight:900;
  line-height:1;
}
.finished-pill{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  border-radius:8px;
  padding:5px 9px;
  color:#fff;
  background:#be123c;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.06em;
  line-height:1;
}

.event-title {
  margin:0;
  color:#fff;
  font-size:1.24rem;
  line-height:1.14;
  letter-spacing:0;
  overflow-wrap:anywhere;
}

.description {
  margin:9px 0 0;
  color:#c8c8c8;
  font-size:.9rem;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.meta {
  display:grid;
  gap:8px;
  margin:16px 0 0;
  color:#d7d7d7;
  font-size:.9rem;
}

.meta-row {
  min-width:0;
  display:flex;
  align-items:flex-start;
  gap:8px;
}

.meta-icon {
  flex:0 0 auto;
  color:var(--primary);
  line-height:1.35;
}

.card-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  padding-top:0;
}

.event-card.has-image .card-footer { margin-top:auto; padding-top:20px; }

.availability {
  color:#9ee7b7;
  font-size:.8rem;
  font-weight:750;
  letter-spacing:0;
  line-height:1.25;
  max-width:58%;
}

.event-card.soldout .availability {
  color:#ff8c8c;
  font-weight:800;
}
.event-card.finished .availability{
  color:#fda4af;
}

.view-btn {
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  border:1px solid rgba(37,211,102,.75);
  background:rgba(37,211,102,.08);
  color:#8ff0b3;
  text-decoration:none;
  padding:9px 13px;
  font-size:.82rem;
  font-weight:950;
  white-space:nowrap;
  transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.event-card:hover .view-btn,
.view-btn:focus-visible {
  border-color:var(--primary);
  background:var(--primary);
  color:#06130a;
}

.view-btn:hover { transform:translateY(-1px); }
.event-card.soldout .view-btn {
  border-color:#efefef;
  background:#efefef;
  color:#161616;
}
.event-card.finished .view-btn{
  border-color:#3f3f46;
  background:#18181b;
  color:#f4f4f5;
}
.event-card.finished:hover .view-btn,
.event-card.finished .view-btn:focus-visible{
  border-color:#f4f4f5;
  background:#f4f4f5;
  color:#18181b;
}

.finished-events .events-grid-compact{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.finished-events .finished-no-image-grid{
  margin-top:12px;
}
.finished-events .event-card{
  box-shadow:0 10px 26px rgba(0,0,0,.22);
}
.finished-events .event-media{
  aspect-ratio:2.35/1;
}
.finished-events .event-body,
.finished-events .event-card.no-image .event-body{
  min-height:0;
  padding:14px;
}
.finished-events .event-title{
  font-size:1rem;
  line-height:1.16;
}
.finished-events .description{
  display:none;
}
.finished-events .meta{
  gap:5px;
  margin-top:10px;
  font-size:.78rem;
}
.finished-events .card-footer{
  margin-top:12px;
}
.finished-events .availability{
  font-size:.72rem;
}
.finished-events .view-btn{
  min-height:34px;
  padding:7px 10px;
  font-size:.74rem;
}

.empty {
  display:none;
  border:1px solid var(--border);
  border-radius:8px;
  background:#101010;
  color:var(--muted);
  padding:24px;
  text-align:center;
  font-weight:800;
}

/* Organizer */
.organizer {
  margin-top:30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:1px solid var(--border);
  border-radius:8px;
  background:linear-gradient(135deg,#121212,#080808);
  padding:24px;
}

.organizer h2 {
  margin:0;
  font-size:1.35rem;
}

.organizer p {
  max-width:680px;
  margin:6px 0 0;
  color:var(--muted);
}

.organizer-btn {
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:var(--primary);
  color:#06130a;
  text-decoration:none;
  padding:10px 14px;
  font-size:.82rem;
  font-weight:950;
  white-space:nowrap;
}

footer {
  border-top:1px solid var(--border);
  color:var(--muted-2);
  padding:24px 0;
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:16px;
}

footer a {
  color:#d6d6d6;
  text-decoration:none;
}

@media (max-width:980px) {
  .events-grid-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finished-events .events-grid-compact,
  .events-grid-compact { grid-template-columns:1fr; }
}

@media (max-width:720px) {
  .container { width:min(100% - 26px, 1160px); }
  .header-inner {
    min-height:0;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:12px;
    padding:13px 0;
  }
  .brand { font-size:1.34rem; }
  .header-search{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
  }
  nav {
    width:auto;
    overflow:auto;
    padding-bottom:2px;
    justify-self:end;
  }
  .nav-link { flex:0 0 auto; }
  .search-box { min-height:52px; border-radius:9px; }
  main { padding-top:20px; }
  .toolbar { flex-direction:column; margin-bottom:16px; }
  .count { padding-top:0; }
  .events-grid { gap:18px; }
  .events-grid:not(.is-rendered),
  .events-grid:not(.is-rendered)::before { min-height:940px; }
  .events-grid-main,
  .events-grid-compact { grid-template-columns:1fr; gap:14px; }
  .section-heading { margin-top:2px; }
  .primary-heading h2{ font-size:1.42rem; }
  .event-body { padding:17px; }
  .event-body,
  .event-card.no-image .event-body { min-height:0; }
  .event-title { font-size:1.2rem; }
  .card-footer {
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }
  .availability { white-space:normal; }
  .view-btn { width:100%; }
  .organizer {
    align-items:flex-start;
    flex-direction:column;
    padding:20px;
  }
  .organizer-btn { width:100%; }
  .footer-inner { flex-direction:column; }
}

@media (max-width:380px) {
  .brand { font-size:1.16rem; }
  .filter { font-size:.8rem; padding-inline:10px; }
}
