/* ============ GIGHOST EVENTS — EDITORIAL MAGAZINE SYSTEM ============ */

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --accent-hue: 220;
  --accent: oklch(0.55 0.18 var(--accent-hue));
  --accent-soft: oklch(0.96 0.04 var(--accent-hue));
  --accent-ink: oklch(0.30 0.14 var(--accent-hue));

  --bg: #FAFAF7;
  --surface: #FFFFFF;
  --ink: #0F0F0E;
  --ink-soft: #4A4A47;
  --ink-mute: #8A8A85;
  --rule: #E5E2DC;
  --rule-strong: #1A1A18;

  --serif: 'Instrument Serif', Georgia, serif;
  --sans: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;
  --display: var(--serif);

  --gap: 24px;
  --pad: 32px;
  --font-scale: 1;
  --radius: 0px;
  --maxw: 1320px;

  --shadow: 0 1px 0 rgba(0,0,0,0.04), 0 12px 32px -16px rgba(0,0,0,0.12);
  --shadow-deep: 0 20px 60px -20px rgba(0,0,0,0.25);
}

[data-dark="1"] {
  --bg: #0E0E0C;
  --surface: #161614;
  --ink: #F5F4F0;
  --ink-soft: #B8B6B0;
  --ink-mute: #76746E;
  --rule: #2A2826;
  --rule-strong: #F5F4F0;
}

[data-font="sans"] { --display: var(--sans); }
[data-font="mono"] { --display: var(--mono); }
[data-font="serif"] { --display: var(--serif); }

[data-img="duotone"] .ec__img,
[data-img="duotone"] .hero__slide,
[data-img="duotone"] .city-card__img,
[data-img="duotone"] .editorial__media,
[data-img="duotone"] .org-banner,
[data-img="duotone"] .event-hero__img,
[data-img="duotone"] .city-hero__img {
  filter: grayscale(1) sepia(0.3) hue-rotate(180deg) saturate(2);
}
[data-img="grey"] .ec__img,
[data-img="grey"] .hero__slide,
[data-img="grey"] .city-card__img,
[data-img="grey"] .editorial__media,
[data-img="grey"] .org-banner,
[data-img="grey"] .event-hero__img,
[data-img="grey"] .city-hero__img {
  filter: grayscale(1) contrast(1.05);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: calc(16px * var(--font-scale));
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "ss01", "cv11";
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img { max-width: 100%; display: block; }

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }
@media (max-width: 720px) { .container { padding: 0 20px; } }

.main { min-height: 60vh; padding-bottom: 120px; }

/* ===== Top rebate banner ===== */
.top-rebate-banner {
  background: var(--ink);
  color: var(--bg);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}
.top-rebate-banner__inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 10px 32px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.top-rebate-banner__kicker {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--accent);
}
.top-rebate-banner__text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.92);
}
.top-rebate-banner__text strong {
  color: #fff;
}
.top-rebate-banner__close {
  margin-left: auto;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: #fff;
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
  padding: 0;
}
.top-rebate-banner__close:hover {
  background: rgba(255, 255, 255, 0.12);
}
@media (max-width: 780px) {
  .top-rebate-banner__inner {
    flex-wrap: wrap;
    gap: 8px 10px;
    padding: 10px 20px;
  }
  .top-rebate-banner__close {
    margin-left: 0;
  }
}

/* ===== Buttons ===== */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 22px;
  font-size: 14px; font-weight: 500;
  border: 1px solid transparent; border-radius: 0;
  cursor: pointer; text-decoration: none;
  transition: transform .15s ease, background .2s ease, color .2s ease;
  letter-spacing: 0.01em;
}
.btn--sm { padding: 8px 14px; font-size: 13px; }
.btn--block { width: 100%; justify-content: center; }
.btn--primary { background: var(--ink); color: var(--bg); }
.btn--primary:hover { background: var(--accent); color: white; }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--rule-strong); }
.btn--ghost:hover { background: var(--ink); color: var(--bg); }
.btn--outline { background: transparent; color: var(--ink); border-color: var(--rule-strong); }
.btn--outline:hover { background: var(--ink); color: var(--bg); }
.btn--light { color: white; border-color: rgba(255,255,255,0.4); }
.btn--light:hover { background: white; color: var(--ink); border-color: white; }

.icon-btn {
  background: transparent; border: 1px solid var(--rule);
  width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--ink); transition: all .15s;
}
.icon-btn:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.link-arrow {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 500;
  border-bottom: 1px solid currentColor; padding-bottom: 2px;
}

/* ===== Section titles ===== */
.section-title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--ink);
}
[data-font="serif"] .section-title { font-style: italic; }
.section-kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
  margin-bottom: 8px;
}
.section-sub {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-mute);
}

/* ===== Platform Header ===== */
.pheader {
  position: sticky; top: 0; z-index: 50;
  background: var(--bg);
  border-bottom: 1px solid transparent;
  transition: border-color .2s, background .2s;
}
.pheader--scrolled {
  border-bottom-color: var(--rule);
  background: color-mix(in oklab, var(--bg) 92%, transparent);
  backdrop-filter: blur(10px);
}
.pheader__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: flex; align-items: center; gap: 24px;
  padding: 18px 32px;
}
.pheader__brand {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin-top: -15px;
}
.pheader__brand-logo {
  display: block;
  width: 100%;
  max-width: 120px;
  height: auto;
}
.pheader__mark { font-size: 22px; color: var(--accent); transform: rotate(-15deg); display: inline-block; }
.pheader__name { font-weight: 500; }
.pheader__search { flex: 1; max-width: 480px; }
.pheader__nav {
  display: flex; gap: 24px; font-size: 14px; font-weight: 500;
}
.pheader__nav a { padding: 6px 0; border-bottom: 1px solid transparent; }
.pheader__nav a:hover { border-bottom-color: var(--ink); }
.pheader__actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.pheader__link, .pheader__user {
  background: transparent; border: none; color: var(--ink);
  font-size: 14px; font-weight: 500; padding: 8px 0;
  display: inline-flex; align-items: center; gap: 6px;
  border-bottom: 1px solid transparent;
}
.pheader__link:hover, .pheader__user:hover { border-bottom-color: var(--ink); }
.user-menu { position: relative; }
.user-menu__trigger { cursor: pointer; }
.user-menu__caret { font-size: 11px; color: var(--ink-mute); line-height: 1; }
.user-menu__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 220px;
  border: 1px solid var(--rule);
  background: var(--surface);
  box-shadow: var(--shadow);
  display: none;
  flex-direction: column;
  z-index: 70;
}
.user-menu.is-open .user-menu__panel { display: flex; }
.user-menu__panel a,
.user-menu__panel button {
  border: none;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  color: var(--ink);
  text-align: left;
  font-size: 13px;
  padding: 12px 14px;
  cursor: pointer;
}
.user-menu__panel a:last-child,
.user-menu__panel button:last-child { border-bottom: none; }
.user-menu__panel a:hover,
.user-menu__panel button:hover { background: var(--accent-soft); }
.pheader__cart {
  position: relative; background: transparent; border: 1px solid var(--rule);
  width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--ink);
}
.pheader__cart:hover { border-color: var(--ink); background: var(--ink); color: var(--bg); }
.cart-icon-img {
  width: 25px;
  height: 25px;
  display: block;
  object-fit: contain;
}
.cart-icon-img--hover {
  display: none;
}
.pheader__cart:hover .cart-icon-img--default,
.pheader__cart:focus-visible .cart-icon-img--default {
  display: none;
}
.pheader__cart:hover .cart-icon-img--hover,
.pheader__cart:focus-visible .cart-icon-img--hover {
  display: block;
}
.pheader__cart-badge {
  position: absolute; top: -6px; right: -6px;
  background: var(--accent); color: white;
  font-size: 10px; font-weight: 600; min-width: 18px; height: 18px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 99px; padding: 0 5px;
}
.pheader__cart-badge[hidden] {
  display: none !important;
}
.pheader__burger { display: none; }

@media (max-width: 1100px) {
  .pheader__nav, .pheader__search { display: none; }
  .pheader__burger { display: inline-flex; }
  .pheader .btn--ghost { display: none; }
}

/* ===== Search ===== */
.search {
  display: flex; align-items: center; gap: 8px;
  background: var(--surface);
  border: 1px solid var(--rule);
  padding: 0 0 0 14px;
  height: 44px;
  transition: border-color .15s;
}
.search:focus-within { border-color: var(--ink); }
.search--sm { height: 38px; }
.search__icon { color: var(--ink-mute); flex-shrink: 0; }
.search input {
  flex: 1; border: none; outline: none;
  background: transparent; color: var(--ink);
  font-family: inherit; font-size: 14px;
  height: 100%; padding: 0;
}
.search input::placeholder { color: var(--ink-mute); }
.search__submit {
  background: var(--ink); color: var(--bg);
  border: none; height: 100%;
  padding: 0 18px; font-size: 13px; font-weight: 500;
}
.search__submit:hover { background: var(--accent); color: white; }

.big-search {
  display: flex; align-items: center; gap: 14px;
  background: var(--surface);
  border: 1px solid var(--rule-strong);
  padding: 18px 24px;
  margin: 24px 0;
}
.big-search input {
  flex: 1; border: none; outline: none; background: transparent;
  font-family: var(--display);
  font-size: clamp(20px, 2.5vw, 32px);
  font-style: italic;
  color: var(--ink);
}
[data-font="sans"] .big-search input, [data-font="mono"] .big-search input { font-style: normal; }
.big-search input::placeholder { color: var(--ink-mute); }
.big-search__clear {
  background: transparent; border: 1px solid var(--rule); padding: 6px 12px;
  font-size: 12px;
}

/* ===== Hero ===== */
.hero {
  position: relative;
  height: 88vh; min-height: 640px; max-height: 880px;
  overflow: hidden;
  color: white;
  border-bottom: 1px solid var(--rule-strong);
}
.hero__media { position: absolute; inset: 0; }
.hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.2s ease;
}
.hero__slide.is-active { opacity: 1; }
.hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(15,15,14,0.2) 0%, rgba(15,15,14,0.5) 50%, rgba(15,15,14,0.85) 100%);
}
.hero__content {
  position: relative; height: 100%;
  max-width: var(--maxw); margin: 0 auto;
  padding: 80px 32px 56px;
  display: flex; flex-direction: column; justify-content: flex-end;
  gap: 24px;
}
.hero__eyebrow { display: flex; align-items: center; gap: 14px; }
.hero__kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  background: white; color: var(--ink);
  padding: 6px 12px;
}
.hero__discount {
  font-family: var(--display);
  font-size: 28px;
  font-style: italic;
  color: white;
}
.hero__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(48px, 8vw, 116px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin: 0;
  max-width: 12ch;
}
.hero__title-italic { font-style: italic; opacity: 0.9; }
[data-font="sans"] .hero__title-italic { font-style: normal; font-weight: 300; }
.hero__sub {
  font-size: 17px; max-width: 56ch; opacity: 0.85; margin: 0;
}
.hero__featured {
  border-top: 1px solid rgba(255,255,255,0.3);
  padding-top: 16px;
  display: grid; grid-template-columns: 1fr auto; gap: 8px 24px;
  align-items: end;
}
.hero__featured-meta {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.85;
  display: flex; gap: 10px; flex-wrap: wrap;
}
.hero__featured-title {
  font-family: var(--display);
  font-size: clamp(20px, 2.5vw, 28px);
  letter-spacing: -0.01em;
  grid-column: 1;
}
.hero__featured-price {
  display: flex; align-items: baseline; gap: 10px;
  font-family: var(--display);
  grid-row: 1 / span 2; grid-column: 2;
}
.hero__price-old { font-size: 18px; text-decoration: line-through; opacity: 0.6; }
.hero__price { font-size: 36px; font-style: italic; }
[data-font="sans"] .hero__price { font-style: normal; }
.hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.hero__dots { position: absolute; top: 24px; right: 32px; display: flex; gap: 8px; }
.hero__dot {
  width: 28px; height: 2px; background: rgba(255,255,255,0.4);
  border: none; padding: 0; cursor: pointer; transition: background .2s;
}
.hero__dot.is-active { background: white; }

@media (max-width: 720px) {
  .hero { height: auto; min-height: 0; padding-top: 30vh; }
  .hero__content { padding: 60px 20px 40px; }
  .hero__featured { grid-template-columns: 1fr; }
  .hero__featured-price { grid-row: auto; grid-column: auto; }
}

/* ===== Intro band ===== */
.intro {
  margin-top: 80px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--rule);
}
.intro__inner {
  display: grid;
  grid-template-columns: 1fr auto; gap: 40px;
  align-items: end;
}
.intro__lead {
  font-family: var(--display);
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ink);
  max-width: 64ch; margin: 0;
}
.intro__num {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--accent);
  margin-right: 18px;
  vertical-align: 6px;
}
@media (max-width: 720px) { .intro__inner { grid-template-columns: 1fr; } }

/* ===== Carousel ===== */
.carousel { margin-top: 80px; }
.category-carousel-stack { margin-top: 60px; margin-bottom: 20px; }
.carousel__head {
  display: flex; align-items: end; justify-content: space-between;
  gap: 24px; margin-bottom: 28px;
  padding-bottom: 18px; border-bottom: 1px solid var(--rule);
}
.carousel__ctrls { display: flex; align-items: center; gap: 14px; }
.carousel__track {
  display: flex; gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: 12px;
  scrollbar-width: none;
  align-items: stretch;
}
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track > * {
  flex: 0 0 calc((100% - 60px) / 4);
  scroll-snap-align: start; min-width: 280px;
  display: flex;
}
@media (max-width: 1000px) { .carousel__track > * { flex: 0 0 calc((100% - 40px) / 3); } }
@media (max-width: 720px) { .carousel__track > * { flex: 0 0 78%; } }

/* ===== Event Card ===== */
.ec {
  display: flex;
  flex-direction: column;
  color: inherit;
  background: var(--surface);
  transition: transform .25s ease;
  height: 100%;
}
[data-card="border"] .ec { border: 1px solid var(--rule); padding: 0; }
[data-card="editorial"] .ec { background: transparent; }
.ec:hover { transform: translateY(-3px); }
.ec__img {
  position: relative;
  aspect-ratio: 4 / 5;
  background-size: cover; background-position: center;
  overflow: hidden;
  filter: contrast(1.02);
}
[data-card="editorial"] .ec__img { aspect-ratio: 3 / 4; }
.ec__badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
}
.ec__badge {
  font-family: var(--mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.05em;
  background: var(--accent); color: white;
  padding: 4px 10px;
}
.ec__badge--warning {
  background: #9a3412;
}
.ec__cat {
  position: absolute; bottom: 12px; left: 12px;
  font-family: var(--mono); font-size: 10px;
  text-transform: uppercase; letter-spacing: 0.14em;
  background: rgba(255,255,255,0.92); color: var(--ink);
  padding: 4px 10px;
}
.ec__body {
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.ec__meta {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
  margin-bottom: 8px;
}
.ec__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: 22px; line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 6px;
  text-wrap: pretty;
  color: var(--ink);
}
.ec__venue {
  font-size: 13px; color: var(--ink-soft);
  margin-bottom: 12px;
}
.ec__price-row {
  display: flex; align-items: baseline; gap: 10px;
  font-family: var(--display);
  margin-top: auto;
}
.ec__price { font-size: 18px; color: var(--ink); }
.ec__price-old {
  font-size: 14px; color: var(--ink-mute);
  text-decoration: line-through;
}
.ec__save {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em;
  color: var(--accent);
}

.ec--compact .ec__img { aspect-ratio: 16 / 10; }
.ec--compact .ec__title { font-size: 18px; }

.ec--wide {
  display: grid; grid-template-columns: 280px 1fr; gap: 24px;
  padding: 24px 0;
  border-top: 1px solid var(--rule);
  background: transparent;
  height: auto;
}
.ec--wide:hover { transform: none; }
.ec--wide .ec__img { aspect-ratio: 4 / 3; }
.ec--wide .ec__body { padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ec--wide .ec__price-row { margin-top: 0; }
.ec--wide .ec__title { font-size: 30px; }
.ec--wide .ec__desc { color: var(--ink-soft); font-size: 14px; max-width: 60ch; margin: 4px 0 12px; }
.ec--wide .ec__bottom {
  margin-top: auto; padding-top: 12px;
  display: flex; justify-content: space-between; align-items: end;
  gap: 16px;
}
.ec--wide .ec__org {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ink-mute);
}
.ec--wide .ec__dot { color: var(--ink-mute); }
@media (max-width: 720px) { .ec--wide { grid-template-columns: 1fr; } }

.ec-with-badge { position: relative; display: flex; }
.ec-with-badge > .ec { width: 100%; }
.lm-badge {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
  background: var(--ink); color: var(--bg); padding: 4px 10px;
}

/* ===== Cities ===== */
.cities { margin-top: 80px; }
.cities__head {
  display: flex; justify-content: space-between; align-items: end;
  margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid var(--rule);
}
.cities__track {
  display: grid;
  grid-template-columns: repeat(6, 1fr); gap: 16px;
}
.city-card { display: block; color: inherit; transition: transform .2s; }
.city-card:hover { transform: translateY(-2px); }
.city-card__img {
  aspect-ratio: 1; background-size: cover; background-position: center;
  margin-bottom: 10px;
  filter: grayscale(0.4) contrast(1.1);
  transition: filter .3s;
}
.city-card:hover .city-card__img { filter: none; }
.city-card__name { font-family: var(--display); font-size: 22px; letter-spacing: -0.01em; }
.city-card__count {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ink-mute);
}
@media (max-width: 1000px) { .cities__track { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .cities__track { grid-template-columns: repeat(2, 1fr); } }

/* ===== Editorial spread ===== */
.editorial {
  margin-top: 100px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  background: var(--ink); color: var(--bg);
}
.editorial__media {
  background-size: cover; background-position: center;
  min-height: 520px;
}
.editorial__body {
  padding: clamp(40px, 6vw, 80px);
  display: flex; flex-direction: column; justify-content: center; gap: 18px;
}
.editorial__kicker {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.16em;
  color: var(--accent);
}
.editorial__title {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(40px, 5vw, 80px);
  line-height: 1; letter-spacing: -0.02em;
  margin: 0;
}
.editorial__italic { font-style: italic; }
.editorial__text { font-size: 16px; line-height: 1.6; opacity: 0.85; max-width: 50ch; }
.editorial .btn--outline { color: var(--bg); border-color: rgba(255,255,255,0.4); align-self: start; }
.editorial .btn--outline:hover { background: var(--bg); color: var(--ink); border-color: var(--bg); }
@media (max-width: 800px) { .editorial { grid-template-columns: 1fr; } .editorial__media { min-height: 320px; } }

/* ===== Orga strip ===== */
.orga-strip { margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1fr 2fr; gap: 60px; }
.orga-strip__controls { display: grid; gap: 10px; margin-top: 16px; max-width: 360px; }
.orga-directory { display: flex; flex-direction: column; }
.orga-directory__meta {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-mute);
  margin-top: 6px;
}
.orga-strip__list { display: flex; flex-direction: column; }
.orga-card {
  display: flex; align-items: center; gap: 20px;
  padding: 22px 0; border-bottom: 1px solid var(--rule);
  color: inherit; transition: padding .2s;
}
.orga-card:first-child { border-top: 1px solid var(--rule); }
.orga-card:hover { padding-left: 12px; background: var(--accent-soft); }
.orga-card__logo {
  width: 48px; height: 48px;
  display: inline-flex; align-items: center; justify-content: center;
  color: white; font-family: var(--mono); font-size: 14px; letter-spacing: 0.05em;
  flex-shrink: 0;
}
.orga-card--curated {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 16px;
}
.orga-card--curated .orga-card__content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.orga-card__logo-inline {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 100px;
  min-height: 50px;
  flex-shrink: 0;
}
.orga-card__logo-img {
  width: auto;
  height: auto;
  max-width: 100px;
  max-height: 50px;
  object-fit: contain;
}
.orga-card__logo-text {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink-soft);
}
.orga-card__name { font-family: var(--display); font-size: 22px; }
.orga-card__arrow { margin-left: auto; }
@media (max-width: 800px) { .orga-strip { grid-template-columns: 1fr; gap: 24px; } }

/* ===== CTA band ===== */
.cta-band {
  margin-top: 100px;
  background: var(--accent-soft);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.cta-band__inner { padding: 80px 32px; text-align: center; }
.cta-band h2 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(36px, 5vw, 64px);
  letter-spacing: -0.02em; margin: 0 0 12px;
}
.cta-band__italic { font-style: italic; color: var(--accent); }
.cta-band p { color: var(--ink-soft); margin: 0 0 24px; max-width: 50ch; margin-left: auto; margin-right: auto; }

/* ===== Page head ===== */
.page-head { margin: 40px 0 32px; }
.page-head--big { margin: 60px 0 48px; }
.page-head__kicker {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.16em;
  color: var(--accent); margin-bottom: 14px;
}
.page-head__title {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1; letter-spacing: -0.03em;
  margin: 0;
}
.page-head__title.big-title { font-size: clamp(48px, 8vw, 112px); }
.page-head__title .italic { font-style: italic; color: var(--accent); }
.page-head__sub {
  margin-top: 16px;
  font-size: 17px; color: var(--ink-soft); max-width: 60ch;
}

/* ===== Organizer onboarding ===== */
.onboarding-page {
  padding-top: 24px;
}
.onboarding-auth-note {
  margin: 0 0 24px;
  padding: 12px 16px;
  border-left: 3px solid var(--accent);
  background: var(--accent-soft);
  color: var(--ink-soft);
  font-size: 14px;
}
.onboarding-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--rule);
  background:
    radial-gradient(circle at top right, color-mix(in oklab, var(--accent) 15%, transparent), transparent 34%),
    linear-gradient(180deg, color-mix(in oklab, var(--surface) 92%, var(--accent-soft)), var(--surface));
}
.onboarding-hero__noise {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size: 40px 40px;
  opacity: 0.18;
  pointer-events: none;
}
.onboarding-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr);
  gap: 32px;
  padding: 44px;
}
.onboarding-hero__kicker,
.onboarding-section__kicker {
  margin: 0 0 14px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.onboarding-hero__title {
  margin: 0 0 18px;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(48px, 7vw, 92px);
  line-height: 0.95;
  letter-spacing: -0.035em;
}
.onboarding-hero__title span {
  color: var(--accent-ink);
  font-style: italic;
}
.onboarding-hero__lead {
  max-width: 58ch;
  margin: 0 0 26px;
  color: var(--ink-soft);
  font-size: 18px;
  line-height: 1.55;
}
.onboarding-hero__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.onboarding-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.onboarding-hero__stats div {
  padding: 14px;
  border: 1px solid var(--rule);
  background: rgba(255,255,255,0.55);
}
.onboarding-hero__stats strong {
  display: block;
  margin-bottom: 6px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.onboarding-hero__stats span {
  color: var(--ink-soft);
  font-size: 13px;
}
.onboarding-hero__panel {
  display: flex;
}
.onboarding-hero__panel-card {
  margin-left: auto;
  width: 100%;
  padding: 24px;
  border: 1px solid var(--rule-strong);
  background: var(--ink);
  color: var(--bg);
}
.onboarding-hero__panel-label {
  margin-bottom: 16px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.onboarding-hero__steps {
  margin: 0;
  padding-left: 20px;
  display: grid;
  gap: 12px;
}
.onboarding-hero__steps li {
  padding-left: 4px;
}
.onboarding-hero__hint {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.78);
  font-size: 14px;
}
.onboarding-section {
  margin-top: 48px;
}
.onboarding-section__head {
  margin-bottom: 22px;
}
.onboarding-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.onboarding-flow__item {
  padding: 24px;
  border: 1px solid var(--rule);
  background: var(--surface);
}
.onboarding-flow__num {
  margin-bottom: 16px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.onboarding-flow__item h3,
.onboarding-form__section-head h3,
.onboarding-plan__name {
  margin: 0 0 10px;
  font-family: var(--display);
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
}
.onboarding-flow__item p,
.onboarding-form__section-head p {
  margin: 0;
  color: var(--ink-soft);
}
.onboarding-plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.onboarding-plan {
  padding: 24px;
  border: 1px solid var(--rule);
  background: var(--surface);
  transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.onboarding-plan.is-active {
  border-color: var(--ink);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.onboarding-plan__top {
  display: flex;
  gap: 16px;
  justify-content: space-between;
  align-items: flex-start;
}
.onboarding-plan__code {
  margin: 0 0 10px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
}
.onboarding-plan__price {
  text-align: right;
}
.onboarding-plan__price strong {
  display: block;
  font-size: 28px;
  line-height: 1;
}
.onboarding-plan__price span,
.onboarding-plan__trial,
.onboarding-plan__desc {
  color: var(--ink-soft);
}
.onboarding-plan__trial {
  margin: 10px 0;
  font-family: var(--mono);
  font-size: 12px;
}
.onboarding-plan__desc {
  margin: 0 0 18px;
  min-height: 66px;
}
.onboarding-plan__meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.onboarding-plan__meta span {
  padding: 6px 8px;
  border: 1px solid var(--rule);
  font-size: 12px;
  color: var(--ink-soft);
}
.onboarding-form-shell {
  border: 1px solid var(--rule);
  background: var(--surface);
}
.onboarding-form {
  display: grid;
  gap: 0;
}
.onboarding-form__section {
  padding: 28px;
  border-bottom: 1px solid var(--rule);
}
.onboarding-form__section:last-of-type {
  border-bottom: none;
}
.onboarding-form__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}
.onboarding-form__grid .field-xl { grid-column: span 12; }
.onboarding-form__grid .field-l { grid-column: span 8; }
.onboarding-form__grid .field-m { grid-column: span 6; }
.onboarding-form__grid .field-s { grid-column: span 4; }
.onboarding-form__section-head {
  margin-bottom: 18px;
}
.onboarding-form label {
  display: grid;
  gap: 8px;
  align-content: start;
}
.onboarding-form label > span {
  font-size: 13px;
  color: var(--ink-soft);
}
.onboarding-form input[type="text"],
.onboarding-form input[type="email"],
.onboarding-form input[type="password"],
.onboarding-form input[type="url"],
.onboarding-form select {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--rule);
  background: var(--bg);
  color: var(--ink);
  font: inherit;
}
.onboarding-form input:focus,
.onboarding-form select:focus {
  outline: none;
  border-color: var(--ink);
}
.onboarding-form__switch span,
.onboarding-form__check span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
}
.onboarding-form__check a {
  border-bottom: 1px solid currentColor;
}
.onboarding-form .actions-inline {
  padding: 24px 28px 0;
}
.onboarding-form .hint {
  padding: 10px 28px 0;
}
.onboarding-form__after {
  padding: 18px 28px 28px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.field-error input,
.field-error select {
  border-color: #c62828;
}
.onboarding-plan--loading,
.onboarding-plan--empty {
  grid-column: 1 / -1;
  text-align: center;
}
@media (max-width: 1080px) {
  .onboarding-hero__grid,
  .onboarding-flow,
  .onboarding-plan-grid {
    grid-template-columns: 1fr;
  }
  .onboarding-hero__panel-card {
    margin-left: 0;
  }
  .onboarding-hero__stats {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 820px) {
  .onboarding-hero__grid {
    padding: 28px;
  }
  .onboarding-form__grid .field-l,
  .onboarding-form__grid .field-m,
  .onboarding-form__grid .field-s {
    grid-column: span 12;
  }
  .onboarding-form__section,
  .onboarding-form .actions-inline,
  .onboarding-form .hint,
  .onboarding-form__after {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ===== Organizer onboarding landing ===== */
.organizer-landing-page {
  --ol-bg: #0c0a08;
  --ol-bg-elev: #15120e;
  --ol-bg-elev-2: #1d1916;
  --ol-fg: #f5f1e8;
  --ol-fg-muted: rgba(245, 241, 232, 0.68);
  --ol-fg-faint: rgba(245, 241, 232, 0.42);
  --ol-line: rgba(245, 241, 232, 0.10);
  --ol-line-strong: rgba(245, 241, 232, 0.18);
  --ol-accent: #ff7a3d;
  --ol-accent-2: #c5a3ff;
  --ol-accent-fg: #0c0a08;
  --ol-grid-line: rgba(245, 241, 232, 0.05);
  position: relative;
  background: var(--ol-bg);
  color: var(--ol-fg);
  overflow: hidden;
}
.organizer-landing-page a {
  color: inherit;
}
.organizer-landing-page .container {
  max-width: 1320px;
}
.organizer-landing-shell {
  position: relative;
  z-index: 2;
}
.organizer-landing-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: transform .12s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.organizer-landing-btn:hover {
  transform: translateY(-1px);
}
.organizer-landing-btn--primary {
  background: var(--ol-accent);
  color: var(--ol-accent-fg);
}
.organizer-landing-btn--primary:hover {
  background: color-mix(in oklab, var(--ol-accent) 85%, white);
}
.organizer-landing-btn--ghost {
  border-color: var(--ol-line-strong);
  color: var(--ol-fg);
}
.organizer-landing-btn--ghost:hover {
  background: var(--ol-line);
}
.organizer-landing-auth-note {
  margin: 0 0 24px;
  padding: 12px 16px;
  border: 1px solid var(--ol-line-strong);
  background: color-mix(in oklab, var(--ol-bg-elev) 70%, transparent);
  color: var(--ol-fg-muted);
  font-size: 14px;
}
.organizer-landing-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}
.organizer-landing-brand__logo {
  width: auto;
  height: 30px;
}
.organizer-landing-brand small {
  color: var(--ol-fg-faint);
  font-size: 13px;
  font-family: var(--mono);
}
.organizer-landing-hero {
  position: relative;
  padding: 72px 0 100px;
  overflow: hidden;
}
.organizer-landing-hero__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--ol-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--ol-grid-line) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse at 50% 35%, black 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 35%, black 30%, transparent 75%);
  pointer-events: none;
}
.organizer-landing-hero__spot {
  position: absolute;
  width: 720px;
  height: 720px;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.65;
  pointer-events: none;
  animation: organizerLandingPulse 8s ease-in-out infinite;
}
.organizer-landing-hero__spot--left {
  left: -200px;
  top: -200px;
  background: radial-gradient(circle, color-mix(in oklab, var(--ol-accent) 35%, transparent) 0%, transparent 60%);
}
.organizer-landing-hero__spot--right {
  right: -200px;
  bottom: -100px;
  background: radial-gradient(circle, color-mix(in oklab, var(--ol-accent-2) 30%, transparent) 0%, transparent 60%);
}
.organizer-landing-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}
.organizer-landing-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px 6px 8px;
  border: 1px solid var(--ol-line-strong);
  border-radius: 999px;
  background: color-mix(in oklab, var(--ol-bg-elev) 60%, transparent);
  color: var(--ol-fg-muted);
  font-size: 12px;
  font-family: var(--mono);
  letter-spacing: 0.02em;
  margin-bottom: 28px;
}
.organizer-landing-eyebrow__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ol-accent);
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--ol-accent) 25%, transparent);
}
.organizer-landing-hero__title {
  margin: 0 0 28px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: clamp(52px, 9vw, 132px);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 0.92;
}
.organizer-landing-hero__title span {
  color: var(--ol-accent);
  font-style: italic;
  font-weight: 400;
}
.organizer-landing-hero__lead {
  max-width: 680px;
  margin: 0 auto 40px;
  color: var(--ol-fg-muted);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.45;
}
.organizer-landing-hero__actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 56px;
}
.organizer-landing-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.organizer-landing-stat {
  padding: 18px 16px;
  border: 1px solid var(--ol-line);
  background: color-mix(in oklab, var(--ol-bg-elev) 70%, transparent);
}
.organizer-landing-stat__value {
  display: block;
  margin-bottom: 8px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: 32px;
  line-height: 1;
}
.organizer-landing-stat__key {
  color: var(--ol-fg-muted);
  font-size: 13px;
}
.organizer-landing-section {
  padding: 56px 0;
}
.organizer-landing-section--tight {
  padding-top: 40px;
}
.organizer-landing-section-num {
  margin: 0 0 18px;
  color: var(--ol-fg-faint);
  font-size: 12px;
  font-family: var(--mono);
  letter-spacing: 0.08em;
}
.organizer-landing-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
  gap: 32px;
  align-items: end;
  margin-bottom: 28px;
}
.organizer-landing-section-head h2,
.organizer-landing-companion h2,
.organizer-landing-cta h2 {
  margin: 0;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: clamp(38px, 6vw, 80px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.organizer-landing-section-head h2 em,
.organizer-landing-companion h2 em,
.organizer-landing-cta h2 em {
  color: var(--ol-accent);
  font-style: italic;
  font-weight: 400;
}
.organizer-landing-section-head p,
.organizer-landing-companion__lead,
.organizer-landing-cta p {
  margin: 0;
  color: var(--ol-fg-muted);
  font-size: 16px;
  line-height: 1.55;
}
.organizer-landing-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.organizer-landing-step {
  min-height: 100%;
  padding: 28px;
  border: 1px solid var(--ol-line);
  background: var(--ol-bg-elev);
}
.organizer-landing-step__num,
.organizer-landing-tab__num {
  display: inline-flex;
  margin-bottom: 18px;
  color: var(--ol-accent);
  font-size: 12px;
  font-family: var(--mono);
  letter-spacing: 0.08em;
}
.organizer-landing-step h3,
.organizer-landing-tabpanel__copy h3,
.organizer-landing-plan__tag {
  margin: 0 0 12px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}
.organizer-landing-step p {
  margin: 0 0 14px;
  color: var(--ol-fg-muted);
}
.organizer-landing-step__meta {
  color: var(--ol-fg-faint);
  font-size: 12px;
  font-family: var(--mono);
}
.organizer-landing-tabs {
  border: 1px solid var(--ol-line);
  background: var(--ol-bg-elev);
}
.organizer-landing-tabs__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid var(--ol-line);
}
.organizer-landing-tab {
  flex: 1 1 180px;
  padding: 18px 22px;
  border-right: 1px solid var(--ol-line);
  color: var(--ol-fg-muted);
  text-align: left;
}
.organizer-landing-tab:last-child {
  border-right: none;
}
.organizer-landing-tab.is-active {
  background: var(--ol-bg);
  color: var(--ol-fg);
}
.organizer-landing-tabpanel {
  display: none;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 32px;
  padding: 28px;
}
.organizer-landing-tabpanel.is-active {
  display: grid;
}
.organizer-landing-tabpanel__lead {
  margin: 0 0 22px;
  color: var(--ol-fg-muted);
}
.organizer-landing-feature-list,
.organizer-landing-plan__features {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}
.organizer-landing-feature-list li,
.organizer-landing-plan__features li {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  color: var(--ol-fg-muted);
}
.organizer-landing-feature-list__check {
  color: var(--ol-accent);
  font-weight: 700;
}
.organizer-landing-mock,
.organizer-landing-ticket,
.organizer-landing-mail,
.organizer-landing-companion-vis {
  border: 1px solid var(--ol-line);
  background: var(--ol-bg);
}
.organizer-landing-mock__bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--ol-line);
}
.organizer-landing-mock__bar > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ol-fg-faint);
}
.organizer-landing-mock__url {
  margin-left: 8px;
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-mock__body {
  display: grid;
  grid-template-columns: 170px 1fr;
  min-height: 320px;
}
.organizer-landing-mock__body--customer {
  grid-template-columns: 140px 1fr;
}
.organizer-landing-mock__side {
  padding: 18px 14px;
  border-right: 1px solid var(--ol-line);
}
.organizer-landing-mock__section {
  margin-bottom: 12px;
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.organizer-landing-mock__link {
  padding: 10px 12px;
  color: var(--ol-fg-muted);
  font-size: 13px;
}
.organizer-landing-mock__link.is-active {
  background: var(--ol-bg-elev);
  color: var(--ol-fg);
}
.organizer-landing-mock__main {
  padding: 18px;
}
.organizer-landing-mock__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.organizer-landing-mock__head h4 {
  margin: 0;
  font-size: 18px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-weight: 500;
}
.organizer-landing-mock__cta,
.organizer-landing-mock__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border: 1px solid var(--ol-line);
  font-size: 11px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.organizer-landing-mock__tag--soft {
  color: var(--ol-accent);
  border-color: color-mix(in oklab, var(--ol-accent) 45%, var(--ol-line));
}
.organizer-landing-mock__table {
  display: grid;
  gap: 10px;
}
.organizer-landing-mock__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid var(--ol-line);
  color: var(--ol-fg-muted);
}
.organizer-landing-mock__row--wide {
  grid-template-columns: minmax(0, 1fr) auto;
}
.organizer-landing-mock__row strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ol-fg);
}
.organizer-landing-mock__row small {
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-mock__num {
  color: var(--ol-fg-faint);
  font-size: 12px;
  font-family: var(--mono);
}
.organizer-landing-org {
  padding: 22px;
}
.organizer-landing-org__nav {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.organizer-landing-org__logo,
.organizer-landing-mail__brand {
  font-size: 14px;
  font-family: var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ol-fg-faint);
}
.organizer-landing-org__links {
  display: flex;
  gap: 16px;
  color: var(--ol-fg-muted);
  font-size: 13px;
}
.organizer-landing-org__headline {
  margin-bottom: 10px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: clamp(30px, 4vw, 46px);
  line-height: 0.96;
  letter-spacing: -0.03em;
}
.organizer-landing-org__headline em {
  color: var(--ol-accent);
  font-style: italic;
  font-weight: 400;
}
.organizer-landing-org__sub {
  margin-bottom: 18px;
  color: var(--ol-fg-muted);
}
.organizer-landing-org__events {
  display: grid;
  gap: 10px;
}
.organizer-landing-org__event {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--ol-line);
}
.organizer-landing-org__date {
  display: grid;
  justify-items: center;
  gap: 2px;
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-org__date b {
  color: var(--ol-fg);
  font-size: 22px;
  line-height: 1;
}
.organizer-landing-org__title,
.organizer-landing-mail__event {
  margin-bottom: 4px;
  color: var(--ol-fg);
  font-weight: 500;
}
.organizer-landing-org__loc,
.organizer-landing-mail__meta {
  color: var(--ol-fg-faint);
  font-size: 12px;
}
.organizer-landing-org__btn {
  padding: 8px 12px;
  border: 1px solid var(--ol-line);
  font-size: 12px;
}
.organizer-landing-ticket {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px;
}
.organizer-landing-ticket__body {
  padding: 22px;
}
.organizer-landing-ticket__label,
.organizer-landing-ticket__meta,
.organizer-landing-ticket__num,
.organizer-landing-mail__time {
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-ticket__title {
  margin: 6px 0 16px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: 28px;
  line-height: 1;
}
.organizer-landing-ticket__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.organizer-landing-ticket__grid span {
  display: block;
  margin-bottom: 4px;
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-ticket__grid strong {
  font-size: 14px;
}
.organizer-landing-ticket__meta {
  margin-top: 10px;
}
.organizer-landing-ticket__stub {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 12px;
  padding: 18px;
  border-left: 1px dashed var(--ol-line);
}
.organizer-landing-ticket__qr,
.organizer-landing-mail__qr {
  width: 62px;
  height: 62px;
  background:
    linear-gradient(90deg, var(--ol-fg) 20%, transparent 20%, transparent 40%, var(--ol-fg) 40%, var(--ol-fg) 60%, transparent 60%, transparent 80%, var(--ol-fg) 80%),
    linear-gradient(var(--ol-fg) 20%, transparent 20%, transparent 40%, var(--ol-fg) 40%, var(--ol-fg) 60%, transparent 60%, transparent 80%, var(--ol-fg) 80%);
  background-size: 18px 18px;
}
.organizer-landing-mail__head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--ol-line);
}
.organizer-landing-mail__subject {
  color: var(--ol-fg);
  font-weight: 500;
}
.organizer-landing-mail__body {
  padding: 20px 18px;
}
.organizer-landing-mail__body h5 {
  margin: 10px 0 10px;
  font-size: 24px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-weight: 500;
}
.organizer-landing-mail__body p {
  margin: 0 0 18px;
  color: var(--ol-fg-muted);
}
.organizer-landing-mail__ticket {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--ol-line);
  background: var(--ol-bg-elev);
}
.organizer-landing-companion {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 32px;
  align-items: center;
}
.organizer-landing-companion__badge {
  display: inline-flex;
  margin-bottom: 18px;
  padding: 6px 10px;
  border: 1px solid var(--ol-line-strong);
  border-radius: 999px;
  color: var(--ol-fg-muted);
  font-size: 12px;
  font-family: var(--mono);
}
.organizer-landing-companion__list {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 14px;
}
.organizer-landing-companion__list li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}
.organizer-landing-companion__num {
  width: 34px;
  height: 34px;
  border: 1px solid var(--ol-line);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ol-accent);
  font-size: 12px;
  font-family: var(--mono);
}
.organizer-landing-companion__list b {
  color: var(--ol-fg);
}
.organizer-landing-companion__list span {
  color: var(--ol-fg-muted);
}
.organizer-landing-companion-vis {
  position: relative;
  min-height: 420px;
  padding: 24px;
  background:
    radial-gradient(circle at center, color-mix(in oklab, var(--ol-accent) 8%, transparent), transparent 60%),
    var(--ol-bg-elev);
}
.organizer-landing-companion-vis__hub {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 190px;
  height: 190px;
  border-radius: 50%;
  border: 1px solid var(--ol-line-strong);
  background: var(--ol-bg);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  text-align: center;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: 26px;
  line-height: 1;
}
.organizer-landing-companion-vis__hub span {
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-companion-vis__card {
  position: absolute;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: 230px;
  padding: 12px;
  border: 1px solid var(--ol-line);
  background: color-mix(in oklab, var(--ol-bg) 82%, transparent);
}
.organizer-landing-companion-vis__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ol-accent), var(--ol-accent-2));
}
.organizer-landing-companion-vis__avatar--b {
  background: linear-gradient(135deg, #89d5ff, #c5a3ff);
}
.organizer-landing-companion-vis__avatar--c {
  background: linear-gradient(135deg, #ffd57c, #ff7a3d);
}
.organizer-landing-companion-vis__avatar--d {
  background: linear-gradient(135deg, #99f4c6, #72d0ff);
}
.organizer-landing-companion-vis__name {
  color: var(--ol-fg);
  font-weight: 500;
}
.organizer-landing-companion-vis__meta {
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
}
.organizer-landing-companion-vis__status {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #7ef0a9;
}
.organizer-landing-companion-vis__lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.organizer-landing-companion-vis__lines line {
  stroke: var(--ol-line-strong);
  stroke-width: 0.35;
}
.organizer-landing-plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.organizer-landing-plan {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 24px;
  border: 1px solid var(--ol-line);
  background: var(--ol-bg-elev);
  transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.organizer-landing-plan:hover,
.organizer-landing-plan.is-active {
  border-color: var(--ol-line-strong);
  transform: translateY(-2px);
}
.organizer-landing-plan__name-line {
  color: var(--ol-fg-faint);
  font-size: 11px;
  font-family: var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.organizer-landing-plan__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.organizer-landing-plan__currency,
.organizer-landing-plan__per,
.organizer-landing-plan__trial,
.organizer-landing-plan__desc,
.organizer-landing-no-fees {
  color: var(--ol-fg-muted);
}
.organizer-landing-plan__amount {
  font-size: 44px;
  line-height: 0.95;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-weight: 500;
}
.organizer-landing-plan__per {
  font-size: 13px;
}
.organizer-landing-plan__trial {
  font-size: 12px;
  font-family: var(--mono);
}
.organizer-landing-plan__desc {
  min-height: 66px;
  line-height: 1.55;
}
.organizer-landing-plan__actions {
  padding-top: 6px;
}
.organizer-landing-plan--loading,
.organizer-landing-plan--empty {
  grid-column: 1 / -1;
  justify-items: center;
  text-align: center;
}
.organizer-landing-no-fees {
  margin-top: 20px;
  font-size: 14px;
}
.organizer-landing-form-shell {
  border: 1px solid var(--ol-line);
  background: var(--ol-bg-elev);
}
.organizer-landing-form {
  display: grid;
  gap: 0;
}
.organizer-landing-form__section {
  padding: 28px;
  border-bottom: 1px solid var(--ol-line);
}
.organizer-landing-form__section:last-of-type {
  border-bottom: none;
}
.organizer-landing-form__head {
  margin-bottom: 18px;
}
.organizer-landing-form__head h3 {
  margin: 0 0 8px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
}
.organizer-landing-form__head p {
  margin: 0;
  color: var(--ol-fg-muted);
}
.organizer-landing-form__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}
.organizer-landing-form__grid .field-xl { grid-column: span 12; }
.organizer-landing-form__grid .field-l { grid-column: span 8; }
.organizer-landing-form__grid .field-m { grid-column: span 6; }
.organizer-landing-form__grid .field-s { grid-column: span 4; }
.organizer-landing-form label {
  display: grid;
  gap: 8px;
  align-content: start;
}
.organizer-landing-form label > span {
  color: var(--ol-fg-muted);
  font-size: 13px;
}
.organizer-landing-form input[type="text"],
.organizer-landing-form input[type="email"],
.organizer-landing-form input[type="password"],
.organizer-landing-form input[type="url"],
.organizer-landing-form select {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--ol-line);
  background: var(--ol-bg);
  color: var(--ol-fg);
  font: inherit;
}
.organizer-landing-form input[type="text"]:focus,
.organizer-landing-form input[type="email"]:focus,
.organizer-landing-form input[type="password"]:focus,
.organizer-landing-form input[type="url"]:focus,
.organizer-landing-form select:focus {
  outline: none;
  border-color: var(--ol-line-strong);
}
.organizer-landing-form .location-autocomplete-wrap {
  position: relative;
}
.organizer-landing-form .location-autocomplete-wrap.is-open > input {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.organizer-landing-form .location-field-autocomplete {
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  right: 0;
  z-index: 16;
  max-height: 240px;
  overflow: auto;
  border: 1px solid var(--ol-line-strong);
  border-top: none;
  background: var(--ol-bg);
  box-shadow: 0 16px 40px rgba(8, 16, 28, 0.12);
}
.organizer-landing-form .location-field-autocomplete-item {
  width: 100%;
  display: block;
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--ol-line);
  background: transparent;
  padding: 0.7rem 0.85rem;
  color: var(--ol-fg);
  font: inherit;
}
.organizer-landing-form .location-field-autocomplete-item:last-child {
  border-bottom: none;
}
.organizer-landing-form .location-field-autocomplete-item:hover,
.organizer-landing-form .location-field-autocomplete-item:focus-visible {
  background: color-mix(in srgb, var(--ol-accent) 10%, white);
  outline: none;
}
.organizer-landing-form .location-field-autocomplete-item .location-name {
  display: block;
  font-weight: 700;
}
.organizer-landing-form input::placeholder {
  color: var(--ol-fg-faint);
}
.organizer-landing-form__switch span,
.organizer-landing-form__check span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ol-fg);
}
.organizer-landing-form__check a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.organizer-landing-form .actions-inline {
  padding: 24px 28px 0;
}
.organizer-landing-form .hint {
  padding: 10px 28px 0;
  color: var(--ol-fg-muted);
}
.organizer-landing-form__after {
  padding: 18px 28px 28px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.organizer-landing-page .field-error input,
.organizer-landing-page .field-error select {
  border-color: #ea6f6f;
}
.organizer-landing-faq {
  display: grid;
  gap: 14px;
}
.organizer-landing-faq__item {
  border-top: 1px solid var(--ol-line);
  padding-top: 18px;
}
.organizer-landing-faq__question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: start;
  color: inherit;
  text-align: left;
}
.organizer-landing-faq__question h4 {
  margin: 0;
  font-size: 24px;
  font-family: 'Bricolage Grotesque', var(--sans);
  font-weight: 500;
  line-height: 1.1;
}
.organizer-landing-faq__toggle {
  font-size: 24px;
  line-height: 1;
  color: var(--ol-accent);
}
.organizer-landing-faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s cubic-bezier(.4,0,.2,1), margin-top .25s ease;
}
.organizer-landing-faq__item.is-open .organizer-landing-faq__answer {
  max-height: 260px;
  margin-top: 12px;
}
.organizer-landing-faq__answer p {
  margin: 0;
  color: var(--ol-fg-muted);
}
.organizer-landing-cta {
  position: relative;
  border: 1px solid var(--ol-line);
  padding: 80px 48px;
  text-align: center;
  background:
    radial-gradient(ellipse at 50% 0%, color-mix(in oklab, var(--ol-accent) 25%, transparent), transparent 60%),
    var(--ol-bg-elev);
  overflow: hidden;
}
.organizer-landing-cta p {
  max-width: 560px;
  margin: 18px auto 0;
}
.organizer-landing-cta__actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
@keyframes organizerLandingPulse {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 0.85; }
}
@media (max-width: 1080px) {
  .organizer-landing-stats,
  .organizer-landing-steps,
  .organizer-landing-plan-grid,
  .organizer-landing-section-head,
  .organizer-landing-tabpanel,
  .organizer-landing-companion {
    grid-template-columns: 1fr;
  }
  .organizer-landing-tabpanel__mock {
    order: -1;
  }
}
@media (max-width: 820px) {
  .organizer-landing-hero {
    padding: 48px 0 72px;
  }
  .organizer-landing-hero__actions,
  .organizer-landing-cta__actions {
    align-items: stretch;
  }
  .organizer-landing-stats {
    grid-template-columns: 1fr;
  }
  .organizer-landing-tabs__bar {
    display: grid;
    grid-template-columns: 1fr;
  }
  .organizer-landing-tab {
    border-right: none;
    border-bottom: 1px solid var(--ol-line);
  }
  .organizer-landing-tab:last-child {
    border-bottom: none;
  }
  .organizer-landing-mock__body,
  .organizer-landing-ticket,
  .organizer-landing-org__event {
    grid-template-columns: 1fr;
  }
  .organizer-landing-mock__side,
  .organizer-landing-ticket__stub {
    border-right: none;
    border-left: none;
    border-top: 1px dashed var(--ol-line);
  }
  .organizer-landing-ticket__grid,
  .organizer-landing-form__grid .field-l,
  .organizer-landing-form__grid .field-m,
  .organizer-landing-form__grid .field-s {
    grid-column: span 12;
    grid-template-columns: 1fr;
  }
  .organizer-landing-form__section,
  .organizer-landing-form .actions-inline,
  .organizer-landing-form .hint,
  .organizer-landing-form__after,
  .organizer-landing-tabpanel,
  .organizer-landing-cta {
    padding-left: 20px;
    padding-right: 20px;
  }
  .organizer-landing-companion-vis {
    min-height: 520px;
  }
}

/* ===== Crumbs ===== */
.crumbs {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-mute);
  padding: 24px 0 0;
}
.crumbs a:hover { color: var(--ink); }
.crumbs__sep { opacity: 0.5; }

/* ===== Filter row + pills ===== */
.filter-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 16px 0 24px;
  border-bottom: 1px solid var(--rule); margin-bottom: 32px;
}
.filter-row__label {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-mute); margin-right: 12px;
  display: inline-flex; align-items: center; gap: 6px;
}
.pill {
  background: transparent; border: 1px solid var(--rule);
  padding: 6px 14px;
  font-size: 13px; color: var(--ink);
  transition: all .15s;
}
.pill:hover { border-color: var(--ink); }
.pill.is-active { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.filters {
  display: grid; grid-template-columns: 2fr 2fr 1fr; gap: 28px;
  padding: 24px 0; border-bottom: 1px solid var(--rule); margin-bottom: 32px;
}
.filters--single { grid-template-columns: 1fr; }
.filters--category { padding-top: 12px; }
.filters__group label {
  display: block; font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-mute); margin-bottom: 10px;
}
.filter-pills { display: flex; flex-wrap: wrap; gap: 6px; }

.filter-toolbar {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 14px;
  padding: 16px 0 18px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 8px;
}
.filter-toolbar__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
  padding-bottom: 9px;
}
.filter-toolbar__item { min-width: 220px; max-width: 280px; }
.filter-toolbar__item--sort { margin-left: auto; }
.filter-toolbar__item-label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
}
.filter-toolbar__select { min-width: 220px; }

.city-dropdown {
  position: relative;
  width: 100%;
  min-width: 220px;
  max-width: 280px;
}
.city-dropdown__trigger {
  width: 100%;
  text-align: left;
  border: 1px solid var(--rule);
  background: var(--surface);
  color: var(--ink);
  font-size: 13px;
  padding: 10px 12px;
  cursor: pointer;
}
.city-dropdown__trigger:hover { border-color: var(--ink); }
.city-dropdown__menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 100%;
  border: 1px solid var(--rule);
  background: var(--surface);
  z-index: 25;
  box-shadow: 0 10px 30px rgba(12, 20, 33, 0.12);
}
.city-dropdown__search-wrap {
  padding: 8px;
  border-bottom: 1px solid var(--rule);
}
.city-dropdown__search {
  width: 100%;
  border: 1px solid var(--rule);
  background: var(--surface);
  color: var(--ink);
  font-size: 13px;
  padding: 8px 10px;
}
.city-dropdown__search:focus { outline: none; border-color: var(--ink); }
.city-dropdown__list {
  max-height: 260px;
  overflow: auto;
}
.city-dropdown__option {
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  color: var(--ink);
  font-size: 13px;
  padding: 9px 12px;
  cursor: pointer;
}
.city-dropdown__option:last-child { border-bottom: 0; }
.city-dropdown__option:hover { background: var(--accent-soft); }
.city-dropdown__option.is-active {
  background: var(--ink);
  color: var(--bg);
}

.orga-strip__all-link { margin-top: 14px; display: inline-flex; }

.select {
  width: 100%; padding: 8px 12px;
  background: var(--surface); border: 1px solid var(--rule);
  font-family: inherit; font-size: 14px; color: var(--ink);
}
@media (max-width: 800px) {
  .filters { grid-template-columns: 1fr; gap: 18px; }
  .filter-toolbar { align-items: stretch; gap: 12px; }
  .filter-toolbar__label { width: 100%; padding-bottom: 0; }
  .filter-toolbar__item,
  .filter-toolbar__select,
  .city-dropdown { min-width: 0; max-width: 100%; width: 100%; }
  .filter-toolbar__item--sort { margin-left: 0; }
}

.results-count {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-mute); margin-bottom: 24px;
}

/* ===== Grid ===== */
.grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 20px;
}
.grid > .ec { width: 100%; }
.grid > .ec-with-badge { display: flex; }
.grid--list { display: block; }
@media (max-width: 1100px) { .grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .grid { grid-template-columns: 1fr; } }

/* ===== City hero ===== */
.city-hero {
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--ink); color: var(--bg);
  margin-bottom: 40px; min-height: 320px;
}
.city-hero__img { background-size: cover; background-position: center; }
.city-hero__body { padding: 60px 48px; display: flex; flex-direction: column; justify-content: center; }
.city-hero .page-head__kicker { color: var(--accent); }
.city-hero .page-head__title { color: var(--bg); }
.city-hero .page-head__sub { color: rgba(255,255,255,0.75); }
@media (max-width: 800px) { .city-hero { grid-template-columns: 1fr; } .city-hero__img { min-height: 200px; } }

/* ===== Organizer maintenance ===== */
.maintenance-page {
  padding: 48px 0 64px;
}
.maintenance-page__card {
  border: 1px solid var(--rule);
  background: var(--surface);
  padding: 24px;
  max-width: 860px;
}
.maintenance-page__kicker {
  margin: 0 0 10px;
  font-family: var(--mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.maintenance-page__card h1 {
  margin: 0 0 14px;
  font-family: var(--display);
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
}
.maintenance-page__content {
  color: var(--ink-soft);
}

/* ===== Org banner / pages ===== */
.org-banner {
  position: relative;
  background-size: cover; background-position: center;
  min-height: 360px;
  display: flex; align-items: end;
  color: white;
  border-bottom: 1px solid var(--rule-strong);
}
.org-banner__shade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(15,15,14,0.85));
}
.org-banner__inner { position: relative; padding: 60px 32px; }
.org-banner__kicker {
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.16em;
  margin-bottom: 12px;
}
.org-banner__title {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(48px, 7vw, 96px);
  letter-spacing: -0.02em; line-height: 0.95; margin: 0 0 8px;
}
.org-banner__tag { font-size: 17px; opacity: 0.85; }

.org-profile-card {
  margin: -84px 0 34px;
  padding: 28px;
  border: 1px solid var(--rule);
  background: var(--surface);
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: clamp(180px, 24vw, 320px) minmax(0, 1fr) 220px;
  column-gap: 28px;
  row-gap: 0;
}
.org-profile-card__logo-wrap {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 100%;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--rule);
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 10px;
}
.org-profile-card__logo-img {
  object-fit: cover;
}
.org-profile-card__logo-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: clamp(30px, 3vw, 48px);
  letter-spacing: -0.02em;
  color: var(--ink);
  padding: 14px;
  text-align: center;
}
.org-profile-card__main {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.org-profile-card__name {
  margin: 0;
  font-family: var(--display);
  font-weight: 600;
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.org-profile-card__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}
.org-profile-card__headline {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(24px, 2.8vw, 40px);
  line-height: 1.08;
  letter-spacing: -0.015em;
}
.org-profile-card__subheadline {
  margin: 0;
  color: var(--ink-soft);
  font-size: 17px;
  line-height: 1.45;
}
.org-profile-card__stat {
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-right: 1px solid var(--rule);
}
.org-profile-card__stat:last-child { border-right: 0; }
.org-profile-card__stat span {
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.3;
}
.org-profile-card__stat strong {
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.02em;
  font-family: var(--display);
}
.org-profile-card__actions {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  justify-self: end;
  width: 100%;
}
.org-profile-card__actions .btn {
  justify-content: center;
}
.org-share {
  position: relative;
  display: inline-flex;
}
.org-share--stack {
  width: 100%;
}
.org-share__trigger {
  width: 100%;
  justify-content: center;
}
.org-share__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  min-width: 240px;
  border: 1px solid var(--rule);
  background: var(--surface);
  z-index: 30;
  box-shadow: 0 10px 30px rgba(12, 20, 33, 0.12);
}
.org-share__menu a,
.org-share__menu button {
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule);
  color: var(--ink);
  font-size: 13px;
  padding: 10px 12px;
  display: block;
  cursor: pointer;
}
.org-share__menu a:last-child,
.org-share__menu button:last-child { border-bottom: 0; }
.org-share__menu a:hover,
.org-share__menu button:hover { background: var(--accent-soft); }

.org-about {
  margin: 0;
}
.org-about p {
  max-width: 80ch;
  color: var(--ink-soft);
  line-height: 1.65;
  margin: 0 0 12px;
}

.org-event-filters {
  margin: 0 0 22px;
}
.org-events-collapsible-list {
  border: 1px solid var(--rule);
  background: var(--surface);
}
.org-events-collapsible-item + .org-events-collapsible-item {
  border-top: 1px solid var(--rule);
}
.org-events-collapsible-head {
  width: 100%;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  text-align: left;
}
.org-events-collapsible-head:hover {
  background: var(--surface-soft);
}
.org-events-collapsible-title {
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: -0.01em;
}
.org-events-collapsible-meta {
  color: var(--ink-soft);
  font-size: 13px;
}
.org-events-collapsible-body {
  padding: 0 16px 16px;
}

.tour-page {
  padding: 18px 0 64px;
}
.tour-page__banner {
  border: 1px solid var(--rule);
  background: #f8fafc;
  margin-bottom: 24px;
  min-height: 260px;
  overflow: hidden;
}
.tour-page__banner img {
  width: 100%;
  height: clamp(260px, 38vw, 420px);
  object-fit: cover;
  display: block;
}
.tour-page__content {
  display: grid;
  gap: 20px;
}
.tour-page__head {
  display: grid;
  gap: 8px;
  border-bottom: 1px solid var(--rule);
  padding-bottom: 14px;
}
.tour-page__kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.tour-page__title {
  margin: 0;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(34px, 4vw, 54px);
  letter-spacing: -0.02em;
  line-height: 1.02;
}
.tour-page__meta {
  margin: 0;
  color: var(--ink-soft);
  font-size: 14px;
}
.tour-description .lead {
  margin: 0 0 10px;
  color: var(--ink-soft);
  line-height: 1.7;
}
.tour-description__text.is-collapsed {
  max-height: 12.5em;
  overflow: hidden;
  position: relative;
}
.tour-description__text.is-collapsed::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3.2em;
  pointer-events: none;
  background: linear-gradient(to bottom, color-mix(in oklab, var(--surface) 0%, transparent), var(--surface));
}
.rich-copy > *:first-child {
  margin-top: 0;
}
.rich-copy > *:last-child {
  margin-bottom: 0;
}
.tour-date-list {
  background: var(--surface);
}
.tour-date-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--rule);
  align-items: center;
}
.tour-date-row:last-child {
  border-bottom: 0;
}
.tour-date-row__main {
  display: grid;
  gap: 5px;
}
.tour-date-row__title {
  margin: 0;
  font-family: var(--display);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.tour-date-row__promo {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #047857;
  border: 1px solid #86efac;
  background: #dcfce7;
  padding: 3px 8px;
  border-radius: 999px;
}
.tour-date-row__location,
.tour-date-row__time {
  color: var(--ink-soft);
  font-size: 14px;
}
.tour-date-row__side {
  display: grid;
  justify-items: end;
  gap: 8px;
}
.tour-date-row__price {
  font-family: var(--display);
  font-size: 28px;
  line-height: 1;
}
@media (max-width: 840px) {
  .tour-date-row {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .tour-date-row__side {
    justify-items: start;
  }
}
.filter-toolbar--tight {
  border-bottom: 0;
  padding: 0;
  margin-bottom: 0;
}
.org-contact-modal {
  z-index: 120;
}
.modal--contact {
  max-width: 740px;
}
.org-contact-form {
  max-width: none;
}
.org-contact-form__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.org-contact-form textarea {
  resize: vertical;
  min-height: 140px;
  padding: 12px 14px;
  border: 1px solid var(--rule);
  background: var(--surface);
  font-family: inherit;
  font-size: 14px;
  color: var(--ink);
}
.org-contact-form textarea:focus {
  border-color: var(--ink);
  outline: none;
}
.org-contact-form__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.org-contact-form__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ===== Org Header ===== */
.oheader {
  background: var(--surface);
  border-bottom: 1px solid var(--rule);
}
.oheader__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: flex; align-items: center; gap: 24px;
  padding: 18px 32px;
}
.oheader__brand { display: flex; align-items: center; gap: 0; }
.oheader__logo-img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 120px;
  max-height: 70px;
  object-fit: contain;
}
.oheader__name { font-family: var(--display); font-size: 20px; letter-spacing: -0.01em; }
.oheader__nav { display: flex; gap: 24px; font-size: 14px; }
.oheader__nav a:hover { color: var(--accent); }
.oheader__actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.oheader__back { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-mute); padding-right: 12px; border-right: 1px solid var(--rule); }
.oheader__back:hover { color: var(--ink); }
@media (max-width: 1000px) { .oheader__nav { display: none; } }

.organizer-follow-btn.is-following {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}
@media (max-width: 900px) {
  .org-profile-card {
    grid-template-columns: clamp(150px, 30vw, 240px) minmax(0, 1fr);
  }
  .org-profile-card__main {
    grid-column: 2;
    grid-row: 1;
  }
  .org-profile-card__actions {
    grid-column: 1 / -1;
    grid-row: 2;
    flex-direction: row;
    justify-self: start;
    width: auto;
    align-items: center;
  }
  .org-share--stack { width: auto; }
  .org-share__trigger { width: auto; }
  .org-profile-card__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .org-profile-card__stat:nth-child(2n) { border-right: 0; }
  .org-profile-card__stat:nth-child(-n+2) { border-bottom: 1px solid var(--rule); }
}
@media (max-width: 700px) {
  .org-profile-card {
    margin-top: -66px;
    padding: 18px;
    grid-template-columns: 1fr;
  }
  .org-profile-card__logo-wrap {
    grid-column: 1;
    grid-row: auto;
    max-width: none;
  }
  .org-profile-card__main {
    grid-column: 1;
    grid-row: auto;
  }
  .org-profile-card__actions {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .org-share--stack,
  .org-share__trigger {
    width: 100%;
  }
  .org-profile-card__stats {
    grid-template-columns: 1fr;
  }
  .org-profile-card__stat {
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }
  .org-profile-card__stat:last-child {
    border-bottom: 0;
  }
  .org-contact-form__split {
    grid-template-columns: 1fr;
  }
}

/* ===== Tour hero ===== */
.tour-hero { padding: 80px 0 40px; border-bottom: 1px solid var(--rule); margin-bottom: 40px; }
.tour-hero__kicker { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); margin-bottom: 14px; }
.tour-hero__title { font-family: var(--display); font-weight: 400; font-style: italic; font-size: clamp(56px, 9vw, 140px); letter-spacing: -0.03em; line-height: 0.9; margin: 0 0 16px; }
[data-font="sans"] .tour-hero__title, [data-font="mono"] .tour-hero__title { font-style: normal; }
.tour-hero__sub { font-size: 17px; color: var(--ink-soft); }

/* ===== Long form ===== */
.long-form .lead {
  font-family: var(--display); font-size: 26px; line-height: 1.35;
  letter-spacing: -0.005em;
  max-width: 60ch; color: var(--ink);
}
.long-form h3 { font-family: var(--display); font-weight: 400; font-size: 28px; letter-spacing: -0.01em; margin: 40px 0 12px; }
.long-form p { max-width: 64ch; color: var(--ink-soft); font-size: 16px; line-height: 1.7; }

/* ===== Event detail ===== */
.event-hero {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 0;
  background: var(--ink); color: var(--bg);
  margin: 24px 0 40px;
}
.event-hero__img {
  position: relative;
  background-size: cover; background-position: center;
  min-height: 480px;
}
.event-hero__badge {
  position: absolute; top: 20px; left: 20px;
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em;
  background: var(--accent); color: white; padding: 6px 12px;
}
.event-hero__body { padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; gap: 12px; }
.event-hero__cat { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); }
.event-hero__title { font-family: var(--display); font-weight: 400; font-size: clamp(36px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1; margin: 0; }
.event-hero__artist { font-family: var(--display); font-style: italic; font-size: 22px; opacity: 0.8; margin-bottom: 16px; }
[data-font="sans"] .event-hero__artist, [data-font="mono"] .event-hero__artist { font-style: normal; }
.event-hero__rows { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.2); }
.event-hero__row { display: flex; align-items: center; gap: 12px; font-size: 14px; opacity: 0.9; }
.event-hero__link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 800px) { .event-hero { grid-template-columns: 1fr; } .event-hero__img { min-height: 280px; } .event-hero__body { padding: 40px 24px; } }

.event-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 60px; padding: 40px 0; border-bottom: 1px solid var(--rule); }
.event-share-row {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}
.event-grid__main h2 { margin: 0 0 16px; }
.event-grid__main p { color: var(--ink-soft); font-size: 16px; line-height: 1.7; max-width: 60ch; }
.event-cancel-reason {
  margin: 0 0 22px;
  border: 1px solid #f4b6b6;
  background: #fff6f6;
  padding: 14px 16px;
}
.event-cancel-reason h3 {
  margin: 0 0 8px;
  font-size: 18px;
}
.event-cancel-reason__content {
  color: #6e2f2f;
}
.tags { display: flex; gap: 8px; flex-wrap: wrap; margin: 24px 0; }
.tag { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); border: 1px solid var(--rule); padding: 4px 10px; }
.event-organizer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--rule);
  color: inherit;
  transition: border-color .15s ease, transform .15s ease;
}
.event-organizer:hover {
  border-color: var(--ink);
  transform: translateY(-1px);
}
.event-organizer__logo {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 52px;
}
.event-organizer__logo-img {
  width: auto;
  height: auto;
  max-width: 120px;
  max-height: 70px;
  object-fit: contain;
}
.event-organizer__logo-fallback {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
  text-transform: uppercase;
}
.event-organizer__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.event-organizer__name {
  font-family: var(--display);
  font-size: 24px;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.event-organizer__stats {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-mute);
}
.event-organizer__arrow {
  color: var(--ink-mute);
  padding-top: 12px;
}
.event-appointments {
  margin-top: 28px;
}
.event-appointments h3 {
  margin: 0 0 12px;
}
.event-appointments .tour-date-row__title {
  font-size: 22px;
}
.event-appointments--side {
  margin-top: 0;
}
.event-appointments--side .tour-date-list {
  gap: 10px;
}
.event-appointments--side .tour-date-row {
  padding: 10px 0;
}
.event-appointments--side .tour-date-row__title {
  font-size: 17px;
}
.event-appointments--side .tour-date-row__location,
.event-appointments--side .tour-date-row__time {
  font-size: 13px;
}
.event-appointments--side .tour-date-row__side {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
}
.ticket-box--appointments {
  padding-bottom: 16px;
}
.event-location {
  margin-top: 28px;
}
.event-location h3 {
  margin: 0 0 12px;
}
.event-location__card {
  border: 1px solid var(--rule);
  background: var(--surface);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.event-location__name {
  font-family: var(--display);
  font-size: 24px;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.event-location__address {
  color: var(--ink-soft);
  font-size: 15px;
}
.event-location__content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}
.event-location__content.is-collapsed {
  max-height: 180px;
  position: relative;
}
.event-location__content.is-collapsed::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 56px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, var(--surface) 100%);
}
.event-location__description p {
  margin: 0;
}
.event-location__accessibility {
  margin: 0;
  padding-left: 18px;
  color: var(--ink-soft);
  display: grid;
  gap: 6px;
}
.event-location__toggle {
  align-self: flex-start;
}
.org-link {
  display: flex; align-items: center; gap: 16px;
  padding: 18px; border: 1px solid var(--rule); margin-top: 12px;
  color: inherit; transition: all .15s;
}
.org-link:hover { border-color: var(--ink); padding-left: 24px; }
.org-link__meta { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.org-link__logo {
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: white;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.org-link__logo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.org-link__name { font-family: var(--display); font-size: 20px; letter-spacing: -0.01em; }
.org-link svg { margin-left: auto; }
@media (max-width: 900px) {
  .event-grid { grid-template-columns: 1fr; gap: 40px; }
  .event-share-row { justify-content: flex-start; }
}

.ticket-box {
  position: sticky; top: 100px;
  border: 1px solid var(--rule-strong);
  background: var(--surface);
  padding: 24px;
}
.ticket-box__head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 16px; border-bottom: 1px solid var(--rule); margin-bottom: 16px; }
.ticket-box__label { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; }
.ticket-box__discount { font-family: var(--mono); font-size: 12px; background: var(--accent); color: white; padding: 4px 8px; }
.ticket-box__facts {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 18px;
}
.ticket-box__fact {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-bottom: 1px solid var(--rule);
  padding-bottom: 10px;
}
.ticket-box__fact span {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.ticket-box__fact strong {
  font-family: var(--display);
  font-size: 22px;
  line-height: 1.1;
  color: var(--ink);
}
.ticket-box__tiers { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.tier {
  text-align: left; background: var(--surface); border: 1px solid var(--rule);
  padding: 14px 16px; display: flex; flex-direction: column; gap: 4px;
  transition: all .15s; position: relative;
}
.tier:hover { border-color: var(--ink); }
.tier.is-active { border-color: var(--ink); background: var(--accent-soft); }
.tier__top { display: flex; justify-content: space-between; align-items: baseline; }
.tier__name { font-weight: 500; font-size: 14px; }
.tier__price { font-family: var(--display); font-size: 22px; }
.tier__desc { font-size: 12px; color: var(--ink-soft); }
.tier__limited { position: absolute; top: 6px; right: 6px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; background: var(--ink); color: var(--bg); padding: 2px 6px; }
.ticket-box__qty { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin-bottom: 16px; }
.qty { display: flex; align-items: center; gap: 10px; }
.qty button { width: 28px; height: 28px; border: 1px solid var(--rule); background: var(--surface); }
.qty span { font-family: var(--display); font-size: 18px; min-width: 24px; text-align: center; }
.ticket-box__total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; }
.ticket-box__total-val { font-family: var(--display); font-size: 28px; }
.ticket-box__note { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-mute); text-align: center; margin-top: 12px; }

.related { margin-top: 60px; }
.related .section-title { margin-bottom: 28px; }

.ticket-landing {
  padding: 24px 0 72px;
}
.ticket-landing__head {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 20px;
}
.ticket-landing__title {
  margin: 0 0 8px;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 4vw, 54px);
  letter-spacing: -0.02em;
  line-height: 1.02;
}
.ticket-landing__meta {
  margin: 0;
  font-family: var(--mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-mute);
}
.ticket-landing__body {
  max-width: 62ch;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ticket-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}
.ticket-page__main,
.ticket-page__side {
  min-width: 0;
}
.ticket-variant-card,
.ticket-summary-card {
  border: 1px solid var(--rule);
  background: var(--surface);
  padding: 18px;
}
.ticket-variant-card h2,
.ticket-summary-card h3 {
  margin: 0 0 12px;
  font-family: var(--display);
  font-weight: 400;
  letter-spacing: -0.01em;
}
.ticket-variant-card__hint {
  margin: 0 0 14px;
  color: var(--ink-soft);
}
.ticket-offer-list {
  display: grid;
  gap: 12px;
}
.ticket-offer-row {
  display: block;
  border: 1px solid var(--rule);
  border-radius: 12px;
  padding: 14px 16px;
  position: relative;
}
.ticket-offer-row__body {
  min-width: 0;
  display: grid;
  gap: 10px;
}
.ticket-offer-row__title-wrap {
  display: grid;
  gap: 2px;
}
.ticket-offer-row__title {
  font-weight: 600;
  font-size: 22px;
  line-height: 1.15;
}
.ticket-offer-row__desc {
  color: var(--ink-soft);
  font-size: 16px;
}
.ticket-offer-option-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  border-top: 1px solid var(--rule);
  padding: 10px 0 0;
}
.ticket-offer-option-row__text {
  display: grid;
  gap: 3px;
}
.ticket-offer-option-row__name {
  font-size: 19px;
  line-height: 1.2;
}
.ticket-offer-option-row__desc {
  font-size: 14px;
  color: var(--ink-soft);
}
.ticket-offer-option-row__price {
  font-family: var(--display);
  font-size: 34px;
  line-height: 1.05;
  white-space: nowrap;
  justify-self: end;
}
.ticket-offer-option-donation-amount {
  width: 100%;
  min-width: 160px;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid var(--rule-strong, var(--rule));
  background: #fff;
  color: var(--ink);
  font: inherit;
  line-height: 1;
}
.ticket-offer-option-row__qty {
  justify-self: end;
  margin-right: 4px;
}
.ticket-offer-row.is-disabled {
  background: #f8fafc;
  color: var(--ink-soft);
}
.ticket-offer-row.is-disabled .ticket-offer-option-row__price {
  color: var(--ink-mute);
}
.ticket-offer-option-row.is-disabled .ticket-offer-option-row__qty button {
  opacity: 0.5;
}
.ticket-offer-row__state {
  font-size: 13px;
  color: var(--ink-soft);
}
.ticket-offer-row__sold-stamp {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: rgba(15, 23, 42, 0.8);
  color: #fff;
  font-family: var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 11px;
  padding: 6px 10px;
  border-radius: 999px;
  pointer-events: none;
}
.ticket-offer-discounts {
  margin-top: 4px;
  border-top: 1px solid var(--rule);
  padding-top: 2px;
}
.ticket-offer-discounts-toggle-wrap {
  margin-top: -2px;
}
.ticket-offer-discounts-toggle,
.ticket-offer-discounts-close {
  border: 0;
  background: transparent;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-size: 16px;
  cursor: pointer;
  padding: 0;
}
.ticket-offer-discounts-toggle:hover,
.ticket-offer-discounts-close:hover {
  color: color-mix(in oklab, var(--accent) 78%, black 22%);
}
.ticket-offer-discounts-close {
  display: inline-flex;
  justify-self: flex-start;
}
.ticket-offer-discounts__list {
  display: grid;
  gap: 0;
  margin-bottom: 8px;
}
.ticket-variant-actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.ticket-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.ticket-add-btn .cart-icon-img {
  flex-shrink: 0;
}
.ticket-variant-actions .btn {
  min-width: 180px;
}
.ticket-seat-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 12px;
}
.ticket-seat-layout__canvas-area {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.ticket-seat-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.ticket-seat-toolbar__label {
  font-size: 13px;
  color: var(--ink-soft);
}
.ticket-seat-toolbar__controls {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ticket-seat-toolbar__controls > span {
  min-width: 46px;
  text-align: center;
  font-size: 12px;
  color: var(--ink-soft);
}
.ticket-seat-layout__canvas-wrap {
  border: 1px solid var(--rule);
  background: #f8fafc;
  overflow: hidden;
  cursor: grab;
  min-height: 420px;
}
.ticket-seat-layout__canvas-wrap.is-dragging {
  cursor: grabbing;
}
.ticket-seat-layout__canvas {
  will-change: transform;
  touch-action: none;
  user-select: none;
  max-width: 100%;
}
.ticket-seat-stage {
  position: relative;
  width: calc(var(--seat-stage-width, 1200) * 1px);
  height: calc(var(--seat-stage-height, 600) * 1px);
  min-height: 220px;
}
.ticket-seat {
  position: absolute;
  border: 1px solid #7b8799;
  background: var(--seat-offer-color, #e2e8f0);
  color: #0f172a;
  font-size: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}
.ticket-seat > span {
  pointer-events: none;
}
.ticket-seat.is-free:hover {
  border-color: var(--accent);
}
.ticket-seat.is-selected {
  background: #2563eb;
  border-color: #1d4ed8;
  color: #fff;
}
.ticket-seat.is-reserved {
  background: #dbeafe;
  border-color: #2563eb;
  color: #1e40af;
  cursor: not-allowed;
}
.ticket-seat.is-sold {
  background: #fee2e2;
  border-color: #ef4444;
  color: #7f1d1d;
  cursor: not-allowed;
}
.ticket-seat.is-unavailable {
  background: #f1f5f9;
  border-color: #94a3b8;
  color: #64748b;
  cursor: not-allowed;
}
.ticket-seat-layout__side h3 {
  margin: 10px 0;
  font-size: 16px;
}
.ticket-seat-offer-legend {
  border: 1px solid var(--rule);
  background: #fff;
  padding: 10px;
}
.ticket-seat-offer-legend h4 {
  margin: 0 0 8px;
  font-size: 13px;
}
.ticket-seat-offer-legend__list {
  display: grid;
  gap: 6px;
}
.ticket-seat-offer-legend__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}
.ticket-seat-offer-legend__swatch {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  background: var(--seat-offer-color, #e2e8f0);
  border: 1px solid #64748b;
}
.ticket-seat-offer-legend__text {
  display: grid;
  gap: 2px;
}
.ticket-seat-offer-legend__name {
  font-weight: 500;
}
.ticket-seat-offer-legend__count {
  color: var(--ink-soft);
  font-size: 11px;
}
.ticket-seat-selection-list {
  display: grid;
  gap: 6px;
  max-height: 260px;
  overflow: auto;
}
.ticket-seat-selection-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid var(--rule);
  padding: 6px 8px;
  font-size: 12px;
}
.ticket-seat-selection-item__text {
  display: grid;
  gap: 2px;
}
.ticket-seat-selection-item__text small {
  color: var(--ink-soft);
}
.ticket-seat-selection-total {
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ticket-seat-selection-total strong {
  font-family: var(--display);
  font-size: 24px;
}
.ticket-seat-legend {
  margin-top: 10px;
  display: flex;
  gap: 18px;
  font-size: 12px;
  color: var(--ink-soft);
}
.ticket-seat-legend .dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  margin-right: 6px;
}
.ticket-seat-legend .dot--free {
  background: #e2e8f0;
  border: 1px solid #64748b;
}
.ticket-seat-legend .dot--selected {
  background: #2563eb;
}
.ticket-seat-legend .dot--reserved {
  background: #2563eb;
}
.ticket-seat-legend .dot--sold {
  background: #ef4444;
}
.ticket-seat-legend .dot--unavailable {
  background: #94a3b8;
}
.ticket-summary-card p {
  margin: 0 0 8px;
  color: var(--ink-soft);
}
.ticket-summary-card .btn {
  margin-top: 10px;
}
.ticket-guestlist-form {
  display: grid;
  gap: 10px;
}
.ticket-guestlist-form .form__row--split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
@media (max-width: 980px) {
  .ticket-page {
    grid-template-columns: 1fr;
  }
  .ticket-seat-layout {
    grid-template-columns: 1fr;
  }
  .ticket-seat-layout__canvas-wrap {
    min-height: 340px;
  }
  .ticket-offer-row__title {
    font-size: 19px;
  }
  .ticket-offer-option-row__price {
    font-size: 28px;
  }
}
@media (max-width: 680px) {
  .ticket-guestlist-form .form__row--split {
    grid-template-columns: 1fr;
  }
  .ticket-offer-option-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .ticket-offer-option-row__price {
    justify-self: end;
  }
  .ticket-offer-option-row__qty {
    justify-self: end;
  }
}

/* ===== Account ===== */
.account__layout { display: grid; grid-template-columns: 240px 1fr; gap: 60px; padding: 24px 0 80px; }
.account__nav { display: flex; flex-direction: column; gap: 4px; border-right: 1px solid var(--rule); padding-right: 24px; }
.account__nav a { padding: 12px 0; border-bottom: 1px solid var(--rule); font-size: 14px; }
.account__nav a.is-active { color: var(--accent); }
.account__logout { background: transparent; border: none; text-align: left; padding: 16px 0 0; color: var(--ink-mute); font-size: 13px; }
.account__body h3 { font-family: var(--display); font-weight: 400; font-size: 28px; letter-spacing: -0.01em; margin: 0 0 24px; }
.account-profile-form { max-width: 760px; gap: 18px; }
.account-profile-section {
  border: 1px solid var(--rule);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.account-profile-section h4 {
  margin: 0;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.account-profile-actions {
  padding-top: 4px;
}
.account-avatar-uploader {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 16px;
  align-items: start;
}
.account-avatar-preview {
  width: 110px;
  height: 110px;
  border: 1px solid var(--rule);
  background: color-mix(in oklab, var(--surface) 88%, var(--ink) 12%);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.account-avatar-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.account-avatar-fallback {
  font-size: 11px;
  color: var(--ink-mute);
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.account-avatar-upload { display: flex; flex-direction: column; gap: 8px; }
.account-avatar-dropzone {
  border: 1px dashed var(--rule-strong);
  padding: 12px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.account-avatar-dropzone strong {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
}
.account-avatar-dropzone span {
  font-size: 13px;
  color: var(--ink-soft);
}
.account-avatar-dropzone:hover,
.account-avatar-dropzone.is-dragover {
  border-color: var(--accent);
  background: color-mix(in oklab, var(--accent-soft) 45%, var(--surface) 55%);
}
.account-avatar-dropzone:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.account-avatar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.account-avatar-crop-modal {
  z-index: 110;
}
.account-avatar-crop-dialog {
  max-width: 460px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.account-avatar-crop-title {
  margin: 0;
  font-family: var(--display);
  font-weight: 400;
  font-size: 30px;
  letter-spacing: -0.02em;
}
.account-avatar-crop-hint {
  margin: 0;
  color: var(--ink-soft);
  font-size: 13px;
}
.account-avatar-crop-canvas {
  width: 100%;
  max-width: 360px;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--rule);
  align-self: center;
  cursor: grab;
}
.account-avatar-crop-canvas.is-dragging { cursor: grabbing; }
.account-avatar-crop-zoom {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.account-avatar-crop-zoom > span {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
}
.account-avatar-crop-zoom input[type="range"] {
  width: 100%;
  accent-color: var(--accent);
}
.account-avatar-crop-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
@media (max-width: 640px) {
  .account-avatar-uploader {
    grid-template-columns: 1fr;
  }
}
.account-followed { margin-top: 28px; }
.account-followed__status { color: var(--ink-soft); }
.account-followed__list {
  margin: 0;
  padding: 0 0 0 20px;
  display: grid;
  gap: 8px;
}
.account-followed__list a:hover { color: var(--accent); }
@media (max-width: 800px) { .account__layout { grid-template-columns: 1fr; } .account__nav { border-right: none; padding-right: 0; } }

.account-tweaks {
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 760px;
}
.account-tweaks__hint {
  color: var(--ink-soft);
  margin: 0 0 18px;
}
.account-tweaks__group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}
.account-tweaks__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.account-tweaks__field span,
.account-tweaks__label {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
}
.account-tweaks__field em {
  font-style: normal;
  font-size: 12px;
  color: var(--ink-soft);
}
.account-tweaks__field input[type="range"] {
  accent-color: var(--accent);
}
.account-tweaks__options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.account-tweaks__option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--rule);
  padding: 8px 12px;
  font-size: 13px;
}
.account-tweaks__option.is-active {
  border-color: var(--ink);
  background: var(--accent-soft);
}
.account-tweaks__option input {
  margin: 0;
}
.account-tweaks__check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.account-tweaks__check input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
}
.account-tweaks__actions {
  display: flex;
  justify-content: flex-end;
}

.orders { display: flex; flex-direction: column; gap: 16px; }
.order {
  border: 1px solid var(--rule);
  background: var(--surface);
}
.order__summary {
  width: 100%;
  display: grid;
  grid-template-columns: 120px 1fr 220px 100px;
  gap: 20px;
  padding: 20px;
  border: 0;
  background: transparent;
  align-items: center;
  text-align: left;
  cursor: pointer;
}
.order__details {
  padding: 0 20px 20px;
  border-top: 1px solid var(--rule);
}
.order__date { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-mute); }
.order__title { font-family: var(--display); font-size: 20px; letter-spacing: -0.01em; }
.order__meta { font-size: 13px; color: var(--ink-soft); }
.order__status { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); justify-self: end; }
.account-order-group + .account-order-group { margin-top: 18px; }
.account-order-group__title { margin: 18px 0 10px; font-size: 18px; }
.account-order-table {
  border: 1px solid var(--rule);
  background: var(--surface-alt);
}
.account-order-table__head,
.account-order-table__row {
  display: grid;
  grid-template-columns: minmax(180px, 2fr) 110px 180px 110px 130px 72px;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
}
.account-order-table__head {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-mute);
  border-bottom: 1px solid var(--rule);
}
.account-order-table__row + .account-order-table__row {
  border-top: 1px solid var(--rule);
}
.account-order-table__subline {
  margin-top: 4px;
  font-size: 12px;
  color: var(--ink-soft);
}
.account-order-actions {
  position: relative;
  display: flex;
  justify-content: flex-end;
}
.account-order-menu-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--rule);
  background: var(--surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.account-order-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 280px;
  border: 1px solid var(--rule);
  background: var(--surface);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
  z-index: 20;
}
.account-order-menu__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.account-order-menu__item + .account-order-menu__item {
  border-top: 1px solid var(--rule);
}
.account-order-menu__item:hover {
  background: var(--surface-alt);
}
@media (max-width: 960px) {
  .order__summary {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .order__status {
    justify-self: start;
  }
  .account-order-table__head {
    display: none;
  }
  .account-order-table__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .account-order-menu {
    min-width: 240px;
  }
}

/* ===== Form ===== */
.form { display: flex; flex-direction: column; gap: 14px; max-width: 480px; }
.form--two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 640px; }
.form--full { grid-column: 1 / -1; }
.form label { display: flex; flex-direction: column; gap: 6px; }
.form label > span { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-mute); }
.form input,
.form select,
.form textarea {
  padding: 12px 14px;
  border: 1px solid var(--rule);
  background: var(--surface);
  font-family: inherit;
  font-size: 14px;
  color: var(--ink);
}
.form input:focus,
.form select:focus,
.form textarea:focus {
  border-color: var(--ink);
  outline: none;
}
.form .is-invalid {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.08);
}

/* ===== Checkout ===== */
.checkout { display: grid; grid-template-columns: 1.5fr 1fr; gap: 60px; padding: 24px 0 80px; }
.checkout__main h3 { font-family: var(--display); font-weight: 400; font-size: 28px; letter-spacing: -0.01em; margin: 0 0 20px; }
.checkout-reservation-inline { margin: -8px 0 14px; font-size: 13px; color: var(--ink-soft); }
.checkout-reservation-inline strong { color: var(--ink); font-family: var(--mono); letter-spacing: 0.08em; }
.co-item { display: grid; grid-template-columns: 80px 1fr auto; gap: 16px; padding: 16px 0; border-top: 1px solid var(--rule); align-items: center; }
.co-item:last-of-type { border-bottom: 1px solid var(--rule); margin-bottom: 24px; }
.co-item__img { width: 80px; height: 80px; background-size: cover; background-position: center; }
.co-item__title { font-family: var(--display); font-size: 18px; letter-spacing: -0.01em; }
.co-item__meta { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-mute); margin-top: 4px; }
.co-item__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.co-item__price { font-family: var(--display); font-size: 20px; }
.co-item__discount { margin-top: 6px; font-size: 12px; color: #16a34a; }
.checkout-org-group { border-top: 1px solid var(--rule); padding-top: 14px; margin-top: 14px; }
.checkout-org-group__head { margin-bottom: 10px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); }
.checkout-org-group__summary { display: flex; justify-content: space-between; padding: 6px 0; font-size: 13px; }
.checkout-org-group__summary--discount { color: #16a34a; }
.checkout-org-group__summary--total { border-top: 1px solid var(--rule); margin-top: 6px; padding-top: 10px; font-weight: 600; }
.checkout-rebate {
  border: 1px solid var(--rule);
  background: var(--surface);
  padding: 14px;
  margin-bottom: 16px;
}
.checkout-rebate--group {
  margin-top: 12px;
  margin-bottom: 0;
}
.checkout-rebate h4 {
  margin: 0 0 10px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
}
.checkout-rebate__field {
  display: grid;
  gap: 6px;
}
.checkout-rebate__field > span {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-mute);
}
.checkout-rebate__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.checkout-rebate__row input {
  min-width: 0;
}
.checkout__step-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.checkout-continue-wrap {
  position: relative;
}
.checkout-continue-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  min-width: 260px;
  border: 1px solid var(--rule);
  background: var(--surface);
  box-shadow: var(--shadow);
  z-index: 15;
}
.checkout-continue-menu[hidden] {
  display: none;
}
.checkout-continue-menu a {
  display: block;
  border-bottom: 1px solid var(--rule);
  padding: 10px 12px;
  font-size: 13px;
}
.checkout-continue-menu a:last-child {
  border-bottom: 0;
}
.checkout-continue-menu a:hover {
  background: var(--accent-soft);
}
.checkout-billing {
  border: 1px solid var(--rule);
  padding: 12px;
}
.checkout-ticket-holders {
  grid-column: 1 / -1;
  margin-top: 16px;
  border: 1px solid var(--rule);
  background: var(--surface-alt);
  padding: 16px;
}
.checkout-ticket-holders h3 {
  margin: 0 0 8px;
}
.checkout-ticket-holders__hint {
  margin: 0 0 16px;
  color: var(--ink-soft);
  font-size: 14px;
}
.checkout-ticket-holders__list {
  display: grid;
  gap: 14px;
}
.checkout-ticket-holder-card {
  border: 1px solid var(--rule);
  background: var(--surface);
  padding: 14px;
}
.checkout-ticket-holder-card h4 {
  margin: 0;
  font-size: 16px;
}
.checkout-ticket-holder-card__meta {
  margin: 4px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
}
.checkout-ticket-holder-grid {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.checkout-ticket-holder-row {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}
.checkout-ticket-holder-row__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding-bottom: 10px;
}
.checkout-payment-card {
  margin-top: 28px;
  border: 1px solid var(--rule);
  background: var(--surface);
  padding: 18px;
}
.checkout-payment-card__hint {
  margin: 0 0 12px;
  font-size: 14px;
  color: var(--ink-soft);
}
.checkout-payment-element {
  min-height: 84px;
  padding: 14px;
  border: 1px solid var(--rule);
  background: #fff;
  margin: 0 0 16px;
}
.checkout__nav { display: flex; gap: 12px; margin-top: 24px; }
.checkout__side { background: var(--accent-soft); padding: 28px; align-self: start; position: sticky; top: 100px; }
.checkout__side h4 { font-family: var(--display); font-weight: 400; font-size: 22px; margin: 0 0 16px; }
.co-sum-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14px; }
.co-sum-row--total { border-top: 1px solid var(--ink); margin-top: 12px; padding-top: 16px; font-size: 16px; font-weight: 500; }
.co-sum-row--total span:last-child { font-family: var(--display); font-size: 24px; }
.checkout-items-mini { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--rule); }
.checkout-items-mini__org { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); margin: 0 0 10px; }
.checkout-items-mini__table { display: grid; gap: 0; }
.checkout-items-mini__head,
.checkout-items-mini__row { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(88px, 0.9fr) minmax(48px, 0.6fr) minmax(88px, 0.9fr); gap: 10px; align-items: center; }
.checkout-items-mini__head { padding: 0 0 8px; border-bottom: 1px solid var(--rule); font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
.checkout-items-mini__event { padding: 12px 0 4px; font-weight: 600; font-size: 13px; }
.checkout-items-mini__row { padding: 0 0 10px; font-size: 13px; }
.checkout-items-mini__row span:nth-child(2),
.checkout-items-mini__row span:nth-child(3),
.checkout-items-mini__row span:nth-child(4),
.checkout-items-mini__head span:nth-child(2),
.checkout-items-mini__head span:nth-child(3),
.checkout-items-mini__head span:nth-child(4) { text-align: right; }
.checkout-items-mini__summary-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; font-size: 13px; border-top: 1px solid var(--rule); }
.checkout-items-mini__summary-row--total { margin-top: 4px; padding-top: 10px; font-weight: 700; }
.checkout-items-mini__rebate { margin-top: 6px; font-size: 12px; color: #16a34a; }
.checkout__success { text-align: center; padding: 60px 20px; }
.checkout__check { font-size: 64px; color: var(--accent); margin-bottom: 16px; }
.checkout__success h2 { font-family: var(--display); font-weight: 400; font-size: 40px; letter-spacing: -0.02em; margin: 0 0 12px; }
@media (max-width: 800px) {
  .checkout { grid-template-columns: 1fr; gap: 32px; }
  .checkout__step-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .checkout-continue-wrap,
  .checkout__step-actions .btn {
    width: 100%;
  }
  .checkout-continue-menu {
    width: 100%;
    min-width: 0;
  }
  .checkout-ticket-holder-row {
    grid-template-columns: 1fr;
  }
  .checkout-ticket-holder-row__label {
    padding-bottom: 0;
  }
  .checkout-items-mini__head,
  .checkout-items-mini__row {
    grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(60px, 1fr));
    gap: 8px;
    font-size: 12px;
  }
  .checkout-items-mini__event {
    font-size: 12px;
  }
}

/* ===== Become organizer ===== */
.features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); margin: 60px 0; }
.feature { background: var(--surface); padding: 32px 24px; }
.feature__num { font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; color: var(--accent); margin-bottom: 14px; }
.feature h4 { font-family: var(--display); font-weight: 400; font-size: 24px; letter-spacing: -0.01em; margin: 0 0 8px; }
.feature p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.cta-block { text-align: center; padding: 60px 20px; border: 1px solid var(--rule); margin-bottom: 60px; }
.cta-block h2 { font-family: var(--display); font-weight: 400; font-size: 48px; letter-spacing: -0.02em; margin: 0 0 8px; }
.cta-block p { color: var(--ink-soft); margin-bottom: 20px; }
@media (max-width: 800px) { .features { grid-template-columns: 1fr 1fr; } }

/* ===== Empty / 404 ===== */
.empty-page { padding: 100px 0; text-align: center; }
.empty-page h1 { font-family: var(--display); font-weight: 400; font-size: 96px; letter-spacing: -0.04em; margin: 0; }
.empty-page p { color: var(--ink-soft); margin: 12px 0 24px; }
.empty { color: var(--ink-mute); padding: 40px 0; text-align: center; }

/* ===== Drawer (cart / menu) ===== */
.drawer-wrap { position: fixed; inset: 0; background: rgba(15,15,14,0.4); z-index: 90; display: flex; justify-content: flex-end; }
.drawer { width: min(440px, 100%); height: 100%; background: var(--bg); display: flex; flex-direction: column; }
.drawer--left { margin-right: auto; }
.drawer-wrap:has(.drawer--left) { justify-content: flex-start; }
.drawer__head { display: flex; justify-content: space-between; align-items: center; padding: 24px; border-bottom: 1px solid var(--rule); }
.drawer__head h3 { font-family: var(--display); font-weight: 400; font-size: 24px; margin: 0; }
.drawer__body { flex: 1; overflow-y: auto; padding: 16px 24px; }
.drawer__empty { padding: 40px 24px; text-align: center; color: var(--ink-soft); display: flex; flex-direction: column; gap: 16px; align-items: center; }
.drawer__foot { padding: 24px; border-top: 1px solid var(--rule); }
.drawer__total { display: flex; justify-content: space-between; margin-bottom: 14px; }
.drawer__total-val { font-family: var(--display); font-size: 26px; }
.drawer__total--discount .drawer__total-val { font-size: 18px; color: #16a34a; }
.drawer__total--saved .drawer__total-val { font-size: 16px; color: #16a34a; }
.drawer__total--grand { border-top: 1px solid var(--rule); padding-top: 14px; margin-top: 6px; }
.drawer__reservation { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px dashed var(--rule); font-size: 12px; color: var(--ink-soft); }
.drawer__reservation strong { font-family: var(--mono); font-size: 14px; letter-spacing: 0.08em; color: var(--ink); }

.cart-item { display: grid; grid-template-columns: 80px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--rule); }
.cart-item:first-child { padding-top: 0; }
.cart-item__img { width: 80px; height: 80px; background-size: cover; background-position: center; }
.cart-item__title { font-family: var(--display); font-size: 16px; line-height: 1.2; margin-bottom: 4px; }
.cart-item__meta { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-mute); }
.cart-item__row { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; }
.cart-item__price { font-family: var(--display); font-size: 18px; }
.cart-item__discount { margin-top: 6px; font-size: 11px; color: #16a34a; }
.cart-item__remove { background: none; border: none; padding: 4px 0; font-size: 11px; color: var(--ink-mute); margin-top: 4px; text-decoration: underline; }
.cart-org-group { padding-bottom: 8px; margin-bottom: 12px; border-bottom: 1px solid var(--rule); }
.cart-org-group:last-child { border-bottom: 0; margin-bottom: 0; }
.cart-org-group__head { margin-bottom: 10px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); }
.cart-org-group__summary { display: flex; justify-content: space-between; font-size: 12px; color: var(--ink-soft); padding: 5px 0; }
.cart-org-group__summary--discount { color: #16a34a; }
.cart-org-group__summary--total { border-top: 1px solid var(--rule); margin-top: 4px; padding-top: 8px; color: var(--ink); font-weight: 600; }

.menu-nav { display: flex; flex-direction: column; padding: 16px 24px; }
.menu-nav a, .menu-nav button { padding: 14px 0; border-bottom: 1px solid var(--rule); font-size: 16px; text-align: left; background: none; border-left: none; border-right: none; border-top: none; color: var(--ink); cursor: pointer; }
.menu-nav__divider { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); padding: 24px 0 8px; }

/* ===== Modal ===== */
.modal-wrap { position: fixed; inset: 0; background: rgba(15,15,14,0.5); z-index: 95; display: flex; align-items: center; justify-content: center; padding: 20px; }
.modal-wrap[hidden] { display: none; }
.modal { background: var(--bg); padding: 40px; max-width: 440px; width: 100%; position: relative; }
.modal__close { position: absolute; top: 12px; right: 12px; }
.modal__brand { font-family: var(--display); font-style: italic; font-size: 22px; color: var(--accent); margin-bottom: 24px; }
.modal__title { font-family: var(--display); font-weight: 400; font-size: 36px; letter-spacing: -0.02em; margin: 0 0 8px; }
.modal__sub { color: var(--ink-soft); font-size: 14px; margin-bottom: 24px; }
.modal__alt { margin-top: 16px; font-size: 13px; color: var(--ink-soft); text-align: center; }
.modal__alt button { background: none; border: none; color: var(--accent); text-decoration: underline; cursor: pointer; }

/* ===== Footer ===== */
.pfooter { background: var(--ink); color: var(--bg); padding: 80px 0 0; margin-top: 80px; }
.pfooter__inner { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 2.5fr; gap: 60px; }
.pfooter__brand { display: flex; align-items: start; gap: 0; }
.pfooter__brand-logo {
  display: block;
  width: 100%;
  max-width: 250px;
  height: auto;
  margin-top: -30px;
}
.pfooter__mark { font-size: 44px; color: var(--accent); transform: rotate(-15deg); display: inline-block; line-height: 1; }
.pfooter__name { font-family: var(--display); font-style: italic; font-size: 32px; letter-spacing: -0.01em; }
[data-font="sans"] .pfooter__name { font-style: normal; }
.pfooter__tag { color: rgba(255,255,255,0.7); font-size: 14px; max-width: 30ch; margin: 4px 0 0; }
.pfooter__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.pfooter__cols h5 { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); margin: 0 0 16px; }
.pfooter__cols a { display: block; padding: 6px 0; font-size: 14px; color: rgba(255,255,255,0.85); }
.pfooter__cols a:hover { color: white; }
.pfooter__base { max-width: var(--maxw); margin: 60px auto 0; padding: 28px 32px; border-top: 1px solid rgba(255,255,255,0.15); display: flex; justify-content: space-between; font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.6); }
.pfooter__social { display: flex; gap: 16px; }
.pfooter__social a:hover { color: white; }
@media (max-width: 800px) { .pfooter__inner { grid-template-columns: 1fr; gap: 40px; } .pfooter__cols { grid-template-columns: 1fr 1fr; } }

.ofooter { background: var(--surface); border-top: 1px solid var(--rule); padding: 60px 0 0; margin-top: 80px; }
.ofooter__inner { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 2fr; gap: 60px; }
.ofooter__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.ofooter__name {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
  margin: 0;
}
.ofooter__website { font-size: 14px; color: var(--ink-soft); text-decoration: none; word-break: break-word; }
.ofooter__website:hover { color: var(--accent); }
.ofooter__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.ofooter__cols h5 { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--accent); margin: 0; }
.ofooter__cols a { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 14px; color: var(--ink-soft); }
.ofooter__muted { display: block; font-size: 13px; color: var(--ink-mute); }
.ofooter__base { max-width: var(--maxw); margin: 40px auto 0; padding: 20px 32px; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; align-items: center; gap: 16px; font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-mute); }
.ofooter__base a { color: var(--accent); }
.ofooter__social { display: flex; align-items: center; gap: 16px; }
.ofooter__social a { display: inline-flex; align-items: center; justify-content: center; color: var(--ink-soft); }
.ofooter__social a:hover { color: var(--accent); }
@media (max-width: 800px) { .ofooter__inner { grid-template-columns: 1fr; gap: 32px; } .ofooter__cols { grid-template-columns: 1fr 1fr; } .ofooter__base { flex-direction: column; align-items: flex-start; } }

/* ===== Skeletons ===== */
@keyframes sk-pulse { 0%,100% { opacity: 0.55; } 50% { opacity: 0.9; } }
.sk {
  background: linear-gradient(90deg, var(--rule) 0%, color-mix(in oklab, var(--rule) 40%, var(--bg)) 50%, var(--rule) 100%);
  background-size: 200% 100%;
  animation: sk-pulse 1.4s ease-in-out infinite;
}
.ec--skeleton { pointer-events: none; }
.ec--skeleton .ec__img { background: var(--rule); animation: sk-pulse 1.4s ease-in-out infinite; }
.sk-line { height: 10px; margin-bottom: 8px; }
.sk-line--meta { width: 40%; }
.sk-line--title { width: 92%; height: 18px; }
.sk-line--short { width: 60%; }
.sk-line--price { width: 30%; height: 14px; margin-top: 12px; }
.sk-line--hero { width: 60%; height: 48px; background-color: rgba(255,255,255,0.15); }
.hero--skeleton .hero__slide.sk { background: linear-gradient(120deg, #2A2826, #1A1A18); }

/* ===== State cards (loading / empty / error) ===== */
.state {
  padding: 60px 24px;
  text-align: center;
  border: 1px dashed var(--rule);
  background: var(--surface);
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  margin: 24px 0;
}
.state__icon {
  font-family: var(--mono);
  font-size: 36px;
  color: var(--ink-mute);
  width: 64px; height: 64px;
  border: 1px solid var(--rule);
  display: inline-flex; align-items: center; justify-content: center;
}
.state__title { font-family: var(--display); font-weight: 400; font-size: 28px; letter-spacing: -0.01em; margin: 0; }
.state__sub { color: var(--ink-soft); margin: 0; max-width: 50ch; }
.state--error .state__icon { color: var(--accent); border-color: var(--accent); }

.form__msg { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-mute); padding-top: 6px; }
.form__msg--error { color: var(--accent); }
.form__msg--ok { color: oklch(0.55 0.16 145); }

.form__row { display: flex; justify-content: space-between; align-items: center; padding-top: 4px; }
.form__check { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.form__check input { accent-color: var(--accent); width: 16px; height: 16px; }
.form__link { font-size: 13px; color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.form__link:hover { color: var(--accent); }

/* ===== Auth pages ===== */
.auth-page {
  padding: 60px 0 100px;
  display: flex; justify-content: center;
}
.auth-page__card {
  width: 100%; max-width: 460px;
  background: var(--surface);
  border: 1px solid var(--rule-strong);
  padding: 48px clamp(28px, 4vw, 48px);
}
.auth-page__brand {
  font-family: var(--display); font-style: italic;
  font-size: 22px; color: var(--accent); margin-bottom: 28px;
}
[data-font="sans"] .auth-page__brand, [data-font="mono"] .auth-page__brand { font-style: normal; }
.auth-page__title {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(36px, 5vw, 48px);
  letter-spacing: -0.02em; line-height: 1; margin: 0 0 12px;
}
.auth-page__sub { color: var(--ink-soft); font-size: 15px; margin: 0 0 28px; max-width: 50ch; }
.auth-page__footer {
  margin-top: 28px; padding-top: 24px;
  border-top: 1px solid var(--rule);
  font-size: 13px; color: var(--ink-soft); text-align: center;
}
.auth-page__footer a { color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.auth-page__footer a:hover { color: var(--accent); }

/* ===== Tweaks toggle + panel ===== */
.tweaks-toggle {
  position: fixed; right: 20px; bottom: 20px; z-index: 60;
  background: var(--ink); color: var(--bg);
  border: 1px solid var(--ink);
  padding: 10px 14px;
  font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em;
  display: inline-flex; align-items: center; gap: 8px;
  cursor: pointer;
}
.tweaks-toggle:hover { background: var(--accent); border-color: var(--accent); }
.tweaks-toggle__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; }
.tweaks-toggle:hover .tweaks-toggle__dot { background: white; }

.tweaks-panel {
  position: fixed; right: 20px; bottom: 70px; z-index: 70;
  width: 320px; max-height: 70vh; overflow-y: auto;
  background: var(--surface); border: 1px solid var(--rule-strong);
  box-shadow: var(--shadow-deep);
}
.tweaks-panel[hidden] { display: none; }
.tweaks-panel__head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 18px; border-bottom: 1px solid var(--rule);
}
.tweaks-panel__head h4 { font-family: var(--display); font-weight: 400; font-size: 22px; margin: 0; }
.tweaks-panel__body { padding: 16px 18px; display: flex; flex-direction: column; gap: 18px; }

.tweak-section { display: flex; flex-direction: column; gap: 10px; }
.tweak-section__title {
  font-family: var(--mono); font-size: 10px; text-transform: uppercase;
  letter-spacing: 0.18em; color: var(--ink-mute);
  padding-bottom: 4px; border-bottom: 1px solid var(--rule);
}
.tweak { display: flex; flex-direction: column; gap: 6px; }
.tweak--toggle { flex-direction: row; align-items: center; justify-content: space-between; }
.tweak__label {
  font-size: 12px; color: var(--ink-soft);
  display: flex; justify-content: space-between; align-items: baseline;
}
.tweak__label em { font-family: var(--mono); font-style: normal; color: var(--ink); font-size: 11px; }
.tweak input[type="range"] { width: 100%; accent-color: var(--accent); }
.tweak input[type="checkbox"] { accent-color: var(--accent); width: 18px; height: 18px; }
.tweak-radio { display: flex; gap: 4px; border: 1px solid var(--rule); padding: 2px; }
.tweak-radio label {
  flex: 1; text-align: center; padding: 6px 4px;
  font-size: 11px; cursor: pointer; color: var(--ink-soft);
}
.tweak-radio label.is-active { background: var(--ink); color: var(--bg); }
.tweak-radio input { display: none; }
.tweak-reset {
  background: transparent; border: 1px solid var(--rule); padding: 8px;
  font-size: 11px; font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-mute); cursor: pointer; margin-top: 4px;
}
.tweak-reset:hover { color: var(--ink); border-color: var(--ink); }

/* ===== Carousel skeleton ===== */
.carousel__track[aria-busy="true"] .ec--skeleton {
  flex: 0 0 calc((100% - 60px) / 4);
  min-width: 280px;
}
@media (max-width: 1000px) { .carousel__track[aria-busy="true"] .ec--skeleton { flex: 0 0 calc((100% - 40px) / 3); } }
@media (max-width: 720px) { .carousel__track[aria-busy="true"] .ec--skeleton { flex: 0 0 78%; } }
