:root {
  --font-display: "Unbounded", "Inter Display", "Noto Sans Display", system-ui, sans-serif;
  --font-text: "Manrope", Inter, "Noto Sans", system-ui, sans-serif;
  --lime: #d8ff4f;
  --sand: #f4dfb7;
  --coral: #ff6b4a;
  --steel: #87bfff;
  --violet: #8c7dff;
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 34px;
  --hero-radius: 44px;
  --shadow: 0 30px 90px rgba(0,0,0,.36);
  --soft-shadow: 0 18px 60px rgba(0,0,0,.18);
  color-scheme: dark;
}

:root[data-theme="dark"] {
  --bg: #060706;
  --bg-soft: #0b0c0a;
  --surface: #10110f;
  --surface-2: #171914;
  --glass: rgba(16,17,15,.72);
  --glass-soft: rgba(255,255,255,.065);
  --line: rgba(255,255,255,.12);
  --line-strong: rgba(255,255,255,.24);
  --text: #f7f4eb;
  --text-strong: #fffaf2;
  --text-soft: rgba(247,244,235,.72);
  --muted: rgba(247,244,235,.52);
  --chip-bg: rgba(255,255,255,.08);
  --chip-ink: rgba(247,244,235,.78);
  --chip-active-bg: var(--lime);
  --chip-active-ink: #070807;
  --button-bg: #f7f4eb;
  --button-ink: #080907;
  --nav-active-bg: var(--lime);
  --nav-active-ink: #060706;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --bg: #efede8;
  --bg-soft: #f8f4ec;
  --surface: #fffaf1;
  --surface-2: #f3eee3;
  --glass: rgba(255,250,241,.78);
  --glass-soft: rgba(10,10,8,.055);
  --line: rgba(18,17,14,.12);
  --line-strong: rgba(18,17,14,.24);
  --text: #15150f;
  --text-strong: #090a07;
  --text-soft: rgba(21,21,15,.70);
  --muted: rgba(21,21,15,.50);
  --chip-bg: rgba(10,10,8,.06);
  --chip-ink: rgba(21,21,15,.76);
  --chip-active-bg: #14150f;
  --chip-active-ink: #f7f4eb;
  --button-bg: #10110f;
  --button-ink: #fffaf2;
  --nav-active-bg: #10110f;
  --nav-active-ink: #fffaf2;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 18% 10%, color-mix(in srgb, var(--lime) 14%, transparent), transparent 24%),
    radial-gradient(circle at 92% 18%, color-mix(in srgb, var(--coral) 12%, transparent), transparent 20%),
    linear-gradient(180deg, var(--bg), var(--bg-soft));
  color: var(--text);
  font-family: var(--font-text);
  letter-spacing: -.018em;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--lime) 65%, transparent); outline-offset: 3px; }
svg { width: 1.15em; height: 1.15em; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
[hidden] { display: none !important; }
.noscript { padding: 20px; background: var(--coral); color: #080907; font-weight: 800; }
.app-shell { min-height: 100vh; }
.wrap { width: min(100% - 36px, 1240px); margin: 0 auto; padding: 18px 0 110px; }

.topbar {
  position: sticky;
  top: 14px;
  z-index: 60;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  min-height: 64px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--glass);
  backdrop-filter: blur(22px);
  box-shadow: 0 16px 55px rgba(0,0,0,.18);
}
.brand {
  border: 0;
  background: transparent;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 4px 8px 4px 4px;
  text-align: left;
}
.brand-mark {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--lime);
  color: #070807;
  display: grid;
  place-items: center;
  font: 800 17px/1 var(--font-display);
  letter-spacing: -.09em;
}
.brand strong { display: block; font: 780 15px/1 var(--font-display); letter-spacing: -.075em; }
.brand small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; letter-spacing: -.02em; }
.nav { justify-self: center; display: flex; gap: 4px; }
.nav button {
  border: 0;
  background: transparent;
  color: var(--text-soft);
  padding: 10px 12px;
  border-radius: 999px;
  display: inline-flex;
  gap: 7px;
  align-items: center;
  font-size: 13px;
  font-weight: 760;
}
.nav button.is-active { background: var(--nav-active-bg); color: var(--nav-active-ink); }
.top-actions { display: flex; gap: 8px; align-items: center; }
.search-pill {
  width: min(26vw, 290px);
  min-width: 210px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--glass-soft);
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
}
.search-pill input { width: 100%; border: 0; outline: 0; color: inherit; background: transparent; font-size: 12px; }
.search-pill input::placeholder { color: var(--muted); }

.hero {
  margin-top: 22px;
  position: relative;
  min-height: 540px;
  border-radius: var(--hero-radius);
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  background:
    radial-gradient(circle at 72% 22%, color-mix(in srgb, var(--lime) 38%, transparent), transparent 18%),
    radial-gradient(circle at 82% 72%, color-mix(in srgb, var(--steel) 32%, transparent), transparent 23%),
    linear-gradient(135deg,#11120f 0%,#1a1c15 38%,#433019 65%,#0d101e 100%);
  isolation: isolate;
}
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.32) 48%, rgba(0,0,0,.74)); z-index: -1; }
.hero-grid { min-height: 540px; display: grid; grid-template-columns: minmax(0, 1.2fr) 370px; gap: 24px; align-items: end; padding: clamp(22px,4vw,46px); }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; width: fit-content; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 9px 12px; color: rgba(255,250,242,.88); background: rgba(255,255,255,.08); font-weight: 820; font-size: 12px; letter-spacing: -.02em; }
.hero h1 { margin: 18px 0 0; max-width: 820px; color: #fffaf2; font: 600 clamp(46px, 7vw, 94px)/.92 var(--font-display); letter-spacing: -.085em; }
.hero-copy { margin: 18px 0 0; max-width: 630px; color: rgba(255,250,242,.75); font-size: clamp(15px, 2vw, 18px); line-height: 1.55; }
.hero-actions { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 12px; }
.hero-side { display: grid; gap: 14px; }
.feature-card { border: 1px solid rgba(255,255,255,.16); border-radius: 28px; background: rgba(255,255,255,.10); backdrop-filter: blur(20px); padding: 18px; color: #fffaf2; }
.feature-card small { display: block; color: rgba(255,250,242,.60); margin-bottom: 10px; }
.feature-card h3 { margin: 0; font: 700 23px/1.05 var(--font-display); letter-spacing: -.06em; }
.feature-meta { margin-top: 16px; display: flex; gap: 8px; flex-wrap: wrap; }

.button {
  border: 0;
  min-height: 46px;
  border-radius: 999px;
  padding: 14px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: 850;
  font-size: 14px;
  line-height: 1;
  letter-spacing: -.03em;
  background: var(--button-bg);
  color: var(--button-ink);
  box-shadow: 0 15px 38px rgba(0,0,0,.22);
}
.button.secondary { background: var(--glass-soft); color: var(--text); border: 1px solid var(--line); box-shadow: none; }
.button.hot { background: var(--lime); color: #080907; }
.button.ghost { background: transparent; border: 1px solid var(--line); color: var(--text); box-shadow: none; }
.button.small { min-height: 36px; padding: 10px 12px; font-size: 12px; }
.button:disabled { opacity: .45; cursor: not-allowed; }
.icon-button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: var(--glass-soft); color: var(--text); display: grid; place-items: center; flex: 0 0 auto; }
.icon-button:hover { background: color-mix(in srgb, var(--surface) 82%, var(--text) 10%); border-color: var(--line-strong); }
.icon-button.is-active { background: var(--lime); color: #070807; border-color: transparent; }

.pill-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pill {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 11px;
  background: var(--chip-bg);
  color: var(--chip-ink);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: -.01em;
  white-space: nowrap;
}
button.pill { cursor: pointer; }
.pill.active { background: var(--chip-active-bg); color: var(--chip-active-ink); border-color: transparent; font-weight: 850; }
.pill.hot { background: var(--lime); color: #080907; border-color: transparent; font-weight: 850; }

.status-strip { margin: 18px 0 0; border: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 58%, transparent); border-radius: 24px; padding: 14px 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--text-soft); font-size: 12px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 6px color-mix(in srgb, var(--lime) 16%, transparent); }
.status-dot.warn { background: var(--coral); box-shadow: 0 0 0 6px color-mix(in srgb, var(--coral) 16%, transparent); }

.section { margin-top: 34px; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-kicker { color: var(--muted); font-size: 13px; margin: 0 0 8px; text-transform: lowercase; }
.section-title { margin: 0; color: var(--text-strong); font: 600 clamp(30px,3.6vw,48px)/1.02 var(--font-display); letter-spacing: -.07em; }
.section-copy { color: var(--muted); font-size: 14px; line-height: 1.5; max-width: 620px; margin: 8px 0 0; }

.control-panel { border: 1px solid var(--line); border-radius: 28px; padding: 14px; background: color-mix(in srgb, var(--surface) 70%, transparent); display: grid; gap: 12px; box-shadow: var(--soft-shadow); }
.control-grid { display: grid; grid-template-columns: minmax(240px, 1fr) 180px 150px; gap: 10px; }
.field { border: 1px solid var(--line); border-radius: 20px; background: var(--glass-soft); display: flex; align-items: center; gap: 10px; padding: 0 14px; min-height: 48px; color: var(--text-soft); }
.field input, .field select, .field textarea { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); }
.field select { appearance: none; }
.field textarea { min-height: 96px; resize: vertical; padding: 14px 0; }
.field input::placeholder, .field textarea::placeholder { color: var(--muted); }

.grid { display: grid; gap: 16px; }
.grid.events { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.places { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.routes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.collections { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 30px; background: color-mix(in srgb, var(--surface) 80%, transparent); box-shadow: var(--soft-shadow); }
.event-card { min-height: 330px; color: #fffaf2; background: linear-gradient(135deg, #ff6b4a, #f4dfb7 40%, #11162a); isolation: isolate; }
.event-card:nth-child(3n+2) { background: linear-gradient(135deg, #1f2547, #8c7dff 46%, #d8ff4f); }
.event-card:nth-child(3n+3) { background: linear-gradient(135deg, #2c513b, #87bfff 48%, #11120f); }
.event-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.18) 38%, rgba(0,0,0,.91)); }
.card-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.card-top { position: absolute; left: 14px; right: 14px; top: 14px; display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.date-badge { width: 58px; height: 62px; border-radius: 18px; display: grid; place-items: center; background: rgba(255,250,242,.92); color: #080907; box-shadow: 0 14px 35px rgba(0,0,0,.18); }
.date-badge strong { display: block; font: 800 22px/1 var(--font-display); letter-spacing: -.08em; }
.date-badge span { display: block; margin-top: 3px; font-size: 10px; text-transform: uppercase; color: rgba(0,0,0,.58); }
.card-content { position: absolute; left: 16px; right: 16px; bottom: 16px; display: grid; gap: 12px; }
.card h3 { margin: 0; font: 650 24px/1.04 var(--font-display); letter-spacing: -.065em; color: inherit; }
.card p { margin: 0; color: rgba(255,250,242,.75); font-size: 13px; line-height: 1.45; }
.card-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.place-card, .route-card, .collection-card, .panel { padding: 20px; }
.place-card { min-height: 260px; display: grid; align-content: space-between; }
.place-card::before { content: ""; position: absolute; inset: auto 18px 18px auto; width: 140px; height: 140px; background: radial-gradient(circle, color-mix(in srgb, var(--lime) 40%, transparent), transparent 65%); filter: blur(6px); opacity: .75; pointer-events: none; }
.place-card h3, .route-card h3, .collection-card h3, .panel h3 { font: 650 25px/1.05 var(--font-display); letter-spacing: -.065em; color: var(--text-strong); }
.place-card p, .route-card p, .collection-card p, .panel p { margin-top: 10px; color: var(--text-soft); font-size: 14px; line-height: 1.5; }
.place-footer, .route-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.route-points { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.route-points li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; align-items: start; color: var(--text-soft); font-size: 13px; }
.route-points .num { width: 26px; height: 26px; border-radius: 50%; background: var(--lime); color: #080907; display: grid; place-items: center; font-weight: 900; font-size: 11px; }

.empty-state { border: 1px solid var(--line); border-radius: 34px; background: color-mix(in srgb, var(--surface) 78%, transparent); padding: clamp(22px, 4vw, 34px); display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: center; box-shadow: var(--soft-shadow); }
.empty-visual { min-height: 240px; border-radius: 30px; background: radial-gradient(circle at 50% 35%, var(--lime), transparent 26%), linear-gradient(135deg, #1a1c15, #242032); border: 1px solid var(--line); display: grid; place-items: center; color: #fffaf2; text-align: center; padding: 20px; }
.empty-state h3 { margin: 0; font: 650 clamp(30px,4vw,52px)/1 var(--font-display); letter-spacing: -.075em; color: var(--text-strong); }
.empty-actions { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 10px; }

.builder-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; }
.builder-list { display: grid; gap: 12px; }
.builder-item { border: 1px solid var(--line); border-radius: 24px; background: color-mix(in srgb, var(--surface) 76%, transparent); padding: 14px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.builder-index { width: 42px; height: 42px; border-radius: 50%; background: var(--lime); color: #070807; display: grid; place-items: center; font-weight: 900; }
.builder-item h4 { margin: 0; color: var(--text-strong); font-size: 15px; }
.builder-item p { color: var(--muted); font-size: 12px; margin: 2px 0 0; }
.builder-tools { display: flex; gap: 6px; align-items: center; }
.builder-summary { position: sticky; top: 92px; border: 1px solid var(--line); border-radius: 30px; background: var(--glass); backdrop-filter: blur(18px); padding: 20px; box-shadow: var(--soft-shadow); }
.builder-summary h3 { margin: 0; font: 650 26px/1.05 var(--font-display); letter-spacing: -.065em; color: var(--text-strong); }
.mini-stat { margin-top: 14px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.mini-stat div { border: 1px solid var(--line); border-radius: 18px; background: var(--glass-soft); padding: 12px; }
.mini-stat strong { display: block; font: 800 20px/1 var(--font-display); color: var(--text-strong); letter-spacing: -.06em; }
.mini-stat span { display: block; margin-top: 4px; font-size: 11px; color: var(--muted); }

.auth-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 18px; align-items: start; }
.auth-card { border: 1px solid var(--line); border-radius: 32px; background: color-mix(in srgb, var(--surface) 78%, transparent); padding: 22px; box-shadow: var(--soft-shadow); }
.auth-card h3 { margin: 0; font: 650 30px/1.05 var(--font-display); letter-spacing: -.065em; color: var(--text-strong); }
.auth-form { margin-top: 18px; display: grid; gap: 10px; }
.auth-message { margin-top: 12px; color: var(--text-soft); font-size: 13px; line-height: 1.45; }
.profile-list { margin-top: 18px; display: grid; gap: 10px; }
.profile-row { border: 1px solid var(--line); border-radius: 18px; background: var(--glass-soft); padding: 12px; display: flex; justify-content: space-between; gap: 12px; color: var(--text-soft); font-size: 13px; }
.profile-row strong { color: var(--text); overflow-wrap: anywhere; }

.modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.58); z-index: 100; display: grid; place-items: center; padding: 18px; }
.modal { width: min(560px, 100%); border: 1px solid var(--line); border-radius: 34px; background: var(--surface); box-shadow: var(--shadow); padding: 22px; }
.modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.modal h3 { margin: 0; font: 650 30px/1.05 var(--font-display); letter-spacing: -.065em; color: var(--text-strong); }
.modal-form { margin-top: 18px; display: grid; gap: 10px; }
.toast-root { position: fixed; right: 18px; bottom: 86px; z-index: 120; display: grid; gap: 10px; max-width: min(420px, calc(100vw - 36px)); }
.toast { border: 1px solid var(--line); border-radius: 20px; background: var(--glass); backdrop-filter: blur(18px); color: var(--text); padding: 13px 15px; box-shadow: var(--soft-shadow); font-size: 13px; }

.bottom-nav { position: fixed; left: 50%; bottom: 16px; z-index: 70; transform: translateX(-50%); display: none; gap: 4px; padding: 7px; border-radius: 999px; border: 1px solid var(--line); background: var(--glass); backdrop-filter: blur(18px); box-shadow: 0 14px 55px rgba(0,0,0,.28); }
.bottom-nav button { width: 48px; height: 48px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--text-soft); }
.bottom-nav button.is-active { background: var(--nav-active-bg); color: var(--nav-active-ink); }

@media (max-width: 1100px) {
  .nav { display: none; }
  .hero-grid, .builder-layout, .auth-grid { grid-template-columns: 1fr; }
  .hero-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid.events, .grid.routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .builder-summary { position: relative; top: auto; }
}
@media (max-width: 820px) {
  .wrap { width: min(100vw - 24px, 1180px); padding-top: 16px; padding-bottom: 104px; }
  .topbar { top: 10px; padding-left: 14px; grid-template-columns: auto auto; justify-content: space-between; }
  .brand small, .search-pill { display: none; }
  .hero { min-height: 0; border-radius: 32px; }
  .hero-grid { min-height: 560px; grid-template-columns: 1fr; padding: 22px; align-content: end; }
  .hero h1 { font-size: clamp(42px, 15vw, 68px); }
  .hero-side { grid-template-columns: 1fr; }
  .section-head { align-items: flex-start; flex-direction: column; }
  .control-grid { grid-template-columns: 1fr !important; }
  .grid.events, .grid.places, .grid.routes, .grid.collections { grid-template-columns: 1fr; }
  .empty-state { grid-template-columns: 1fr; }
  .empty-visual { min-height: 180px; }
  .bottom-nav { display: flex; }
  .event-card { min-height: 310px; }
  .builder-item { grid-template-columns: 38px minmax(0, 1fr); }
  .builder-tools { grid-column: 1 / -1; justify-content: flex-end; }
}
@media (max-width: 520px) {
  .brand strong { font-size: 13px; }
  .top-actions .button { display: none; }
  .hide-sm { display: none; }
  .hero-actions, .empty-actions, .card-actions { flex-direction: column; }
  .button { width: 100%; }
  .card h3 { font-size: 22px; }
  .place-footer, .route-footer { align-items: stretch; flex-direction: column; }
}

/* Sobytie v2: compact catalog pages and detail screens */
.section-head--clean { margin-top: 10px; }
.load-more-row { display: flex; justify-content: center; margin: 22px 0 0; }
.event-card--catalog { min-height: 430px; }
.event-card--catalog .card-content { gap: 13px; }
.event-card--catalog h3 { font-size: clamp(23px, 2.2vw, 30px); }
.event-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.event-facts span { border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: rgba(0,0,0,.20); padding: 9px 10px; color: rgba(255,250,242,.88); font-size: 12px; line-height: 1.2; }
.event-facts b { display: block; color: rgba(255,250,242,.55); font-size: 9px; text-transform: uppercase; letter-spacing: .07em; margin-bottom: 4px; }
.choose-place-card { border: 1px solid var(--line-strong); border-radius: 34px; min-height: 220px; padding: clamp(22px,4vw,34px); display: flex; align-items: center; justify-content: space-between; gap: 22px; background: radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--lime) 35%, transparent), transparent 28%), linear-gradient(135deg, color-mix(in srgb, var(--surface) 85%, transparent), color-mix(in srgb, var(--surface-2) 78%, transparent)); box-shadow: var(--soft-shadow); overflow: hidden; }
.choose-place-card h3 { margin: 0; max-width: 720px; color: var(--text-strong); font: 650 clamp(32px,4.6vw,62px)/.96 var(--font-display); letter-spacing: -.08em; }
.choose-place-button { font-size: 18px; padding: 20px 26px; min-height: 62px; box-shadow: 0 18px 55px color-mix(in srgb, var(--lime) 18%, transparent); }
.place-card--gallery { min-height: 420px; padding-top: 188px; }
.place-card--gallery::before { display: none; }
.place-gallery { position: absolute; left: 14px; right: 14px; top: 14px; height: 154px; display: grid; grid-template-columns: 1.4fr .8fr; grid-template-rows: 1fr 1fr; gap: 8px; }
.place-gallery__img { width: 100%; height: 100%; object-fit: cover; border-radius: 20px; border: 1px solid var(--line); background: var(--surface-2); }
.place-gallery__img--1 { grid-row: 1 / 3; }
.place-gallery__img--2, .place-gallery__img--3 { border-radius: 18px; }
.detail-hero { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 18px; border: 1px solid var(--line); border-radius: 38px; background: color-mix(in srgb, var(--surface) 78%, transparent); padding: 18px; box-shadow: var(--soft-shadow); }
.detail-media, .detail-gallery { min-height: 560px; border-radius: 30px; overflow: hidden; position: relative; border: 1px solid var(--line); background: linear-gradient(135deg, #20221d, #433019); }
.detail-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.detail-gradient { width: 100%; height: 100%; display: grid; place-items: center; color: #fffaf2; background: radial-gradient(circle at 60% 24%, var(--lime), transparent 20%), linear-gradient(135deg,#11120f,#2f3228,#1b2145); }
.detail-gradient svg { width: 72px; height: 72px; }
.detail-content { padding: clamp(10px,2vw,26px); align-self: center; }
.detail-description { margin: 18px 0 0; color: var(--text-soft); font-size: 16px; line-height: 1.7; }
.detail-facts { margin-top: 24px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.detail-facts div { border: 1px solid var(--line); border-radius: 22px; background: var(--glass-soft); padding: 14px; }
.detail-facts span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 6px; }
.detail-facts strong { display: block; color: var(--text-strong); font-size: 14px; line-height: 1.35; }
.detail-actions { margin-top: 24px; }
.detail-gallery { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 1fr 1fr; gap: 10px; padding: 10px; }
.detail-gallery__img { width: 100%; height: 100%; object-fit: cover; border-radius: 24px; }
.detail-gallery__img--1 { grid-row: 1 / 3; }
.icon-rotate svg, .icon-rotate { transform: rotate(180deg); }
.list-title { margin: 0 0 12px; color: var(--text-strong); font: 650 28px/1.05 var(--font-display); letter-spacing: -.065em; }
.favorites-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 18px; align-items: start; }
.favorites-columns { display: grid; gap: 28px; }
.favorite-card { cursor: grab; }
.favorite-card:active { cursor: grabbing; }
.drop-route-panel { position: sticky; top: 92px; border: 1px dashed color-mix(in srgb, var(--lime) 55%, var(--line)); border-radius: 32px; background: radial-gradient(circle at 80% 12%, color-mix(in srgb, var(--lime) 22%, transparent), transparent 26%), color-mix(in srgb, var(--surface) 78%, transparent); padding: 20px; box-shadow: var(--soft-shadow); }
.drop-route-panel h3 { margin: 12px 0 0; color: var(--text-strong); font: 650 30px/1.05 var(--font-display); letter-spacing: -.065em; }
.drop-route-panel p { color: var(--text-soft); font-size: 14px; line-height: 1.55; }
.mini-builder { margin: 16px 0; }
.mini-builder .builder-item { grid-template-columns: 34px minmax(0, 1fr); }
.mini-builder .builder-tools { display: none; }
.mini-builder .builder-index { width: 34px; height: 34px; }
.empty-mini, .empty-mini-card { border: 1px solid var(--line); border-radius: 22px; background: var(--glass-soft); padding: 16px; color: var(--muted); font-size: 13px; }
.empty-mini-card { min-height: 150px; align-content: center; }
@media (max-width: 1100px) {
  .detail-hero, .favorites-layout { grid-template-columns: 1fr; }
  .detail-media, .detail-gallery { min-height: 420px; }
  .drop-route-panel { position: relative; top: auto; }
}
@media (max-width: 820px) {
  .event-facts, .detail-facts { grid-template-columns: 1fr; }
  .choose-place-card { align-items: stretch; flex-direction: column; }
  .place-card--gallery { min-height: 450px; }
  .detail-media, .detail-gallery { min-height: 340px; }
}

/* Sobytie v3: Supabase field mapping and cleaner event/place catalog */
.event-card--catalog {
  min-height: 460px;
  border-color: rgba(255,255,255,.16);
}
.event-card--catalog .card-image { filter: saturate(1.04) contrast(1.02); }
.event-card--catalog::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.28) 34%, rgba(0,0,0,.92) 100%),
    radial-gradient(circle at 80% 0%, rgba(216,255,79,.14), transparent 30%);
}
.event-card__content {
  left: 18px;
  right: 18px;
  bottom: 18px;
  gap: 12px;
}
.event-card__date-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: rgba(255,250,242,.84);
  font-size: 12px;
  font-weight: 750;
}
.event-weekday {
  background: var(--lime);
  color: #070807;
  border-radius: 999px;
  padding: 7px 10px;
  font-weight: 900;
}
.event-card__meta-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
}
.event-card__meta-grid span {
  display: grid;
  gap: 2px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 16px;
  background: rgba(0,0,0,.25);
  padding: 9px 10px;
  color: rgba(255,250,242,.88);
  font-size: 12px;
  line-height: 1.2;
}
.event-card__meta-grid b {
  color: rgba(255,250,242,.55);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.detail-hero--event .detail-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 52%, rgba(0,0,0,.22));
}
.detail-facts--single { grid-template-columns: 1fr; }
.button.as-label { cursor: default; }

.place-card--catalog {
  min-height: 430px;
  padding: 0;
  display: grid;
  grid-template-rows: 210px minmax(0, 1fr) auto;
}
.place-card--catalog::before { display: none; }
.place-cover {
  position: relative;
  width: 100%;
  min-height: 210px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #20221d, #433019);
  color: #fffaf2;
  overflow: hidden;
  padding: 0;
}
.place-cover img {
  width: 100%;
  height: 100%;
  min-height: 210px;
  display: block;
  object-fit: cover;
  transition: transform .35s ease;
}
.place-cover:hover img { transform: scale(1.035); }
.place-cover::after {
  content: "Открыть галерею";
  position: absolute;
  left: 14px;
  bottom: 14px;
  border-radius: 999px;
  padding: 8px 11px;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.18);
  color: #fffaf2;
  font-size: 12px;
  font-weight: 850;
  backdrop-filter: blur(12px);
}
.place-cover--empty {
  display: grid;
  place-items: center;
  min-height: 210px;
}
.place-cover--empty svg { width: 56px; height: 56px; }
.place-card-body { padding: 18px 20px 0; }
.place-card-body h3 { margin: 14px 0 0; }
.place-card--catalog .place-footer {
  margin: 0;
  padding: 0 20px 20px;
}
.gallery-modal { width: min(980px, 100%); }
.gallery-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 1.4fr .9fr;
  grid-auto-rows: 230px;
  gap: 10px;
}
.gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 24px;
  border: 1px solid var(--line);
}
.gallery-grid img:first-child { grid-row: span 2; }
@media (max-width: 820px) {
  .event-card--catalog { min-height: 440px; }
  .place-card--catalog { grid-template-rows: 190px minmax(0, 1fr) auto; }
  .place-cover, .place-cover img { min-height: 190px; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .gallery-grid img:first-child { grid-row: span 1; }
}

/* Sobytie v4: catalog cards as image/text blocks, 12-event pagination, fitted media */
.grid.places { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.event-card--catalog {
  min-height: auto;
  display: grid;
  grid-template-rows: 230px minmax(0, 1fr);
  color: var(--text);
  background: color-mix(in srgb, var(--surface) 86%, transparent);
  border-color: var(--line);
  isolation: auto;
}
.event-card--catalog::after { display: none; }
.event-card--catalog .card-image { display: none; }
.event-card__media {
  position: relative;
  min-height: 230px;
  overflow: hidden;
  background:
    radial-gradient(circle at 74% 16%, color-mix(in srgb, var(--lime) 18%, transparent), transparent 28%),
    linear-gradient(135deg, #20221d, #433019);
  border-bottom: 1px solid var(--line);
}
.event-card__image,
.event-card__image-placeholder {
  width: 100%;
  height: 100%;
  min-height: 230px;
  display: block;
}
.event-card__image {
  object-fit: cover;
  filter: saturate(1.04) contrast(1.02);
}
.event-card__image-placeholder {
  display: grid;
  place-items: center;
  color: #fffaf2;
}
.event-card__image-placeholder svg { width: 52px; height: 52px; }
.event-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.04) 46%, rgba(0,0,0,.20));
  pointer-events: none;
}
.event-card__media .card-top { z-index: 3; }
.event-card__body {
  padding: 18px;
  display: grid;
  gap: 12px;
  align-content: start;
}
.event-card__body h3 {
  margin: 0;
  color: var(--text-strong);
  font: 650 clamp(18px, 1.6vw, 23px)/1.08 var(--font-display);
  letter-spacing: -.068em;
}
.event-card__info-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.event-card__info-row span,
.event-card__line {
  border: 1px solid var(--line);
  background: var(--glass-soft);
  color: var(--text-soft);
  border-radius: 999px;
  min-height: 34px;
  padding: 8px 11px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.15;
}
.event-card__info-row span:first-child {
  background: var(--lime);
  color: #070807;
  border-color: transparent;
}
.event-card__line {
  width: 100%;
  justify-content: flex-start;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.event-card__line span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.event-card__line svg,
.event-card__info-row svg { flex: 0 0 auto; }
.event-card__actions { margin-top: 2px; }
.event-card__content { position: static; }

.place-card--catalog {
  min-height: 0;
  grid-template-rows: 176px minmax(0, 1fr) auto;
  border-radius: 28px;
}
.place-cover,
.place-cover--empty {
  min-height: 176px;
  background: color-mix(in srgb, var(--surface-2) 88%, transparent);
}
.place-cover img {
  min-height: 176px;
  object-fit: contain;
  padding: 8px;
  background: color-mix(in srgb, var(--surface-2) 86%, transparent);
}
.place-cover:hover img { transform: scale(1.015); }
.place-cover::after { font-size: 11px; padding: 7px 10px; }
.place-card-body { padding: 15px 16px 0; }
.place-card-body h3 { font-size: clamp(19px, 1.7vw, 24px); }
.place-card-body p { color: var(--text-soft); }
.place-card--catalog .place-footer { padding: 0 16px 16px; }
.place-card--catalog .place-footer > .pill { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.detail-media--contain,
.place-detail-carousel,
.gallery-carousel {
  background:
    radial-gradient(circle at 74% 12%, color-mix(in srgb, var(--lime) 12%, transparent), transparent 28%),
    color-mix(in srgb, var(--surface-2) 90%, transparent);
}
.detail-media--contain img,
.place-detail-carousel img,
.gallery-carousel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.detail-hero--event .detail-media::after { display: none; }
.detail-content--event { align-self: center; }
.detail-inline-meta {
  margin-top: 18px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.detail-inline-meta span,
.detail-line {
  min-height: 46px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--glass-soft);
  color: var(--text-soft);
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 12px 16px;
  font-weight: 850;
}
.detail-inline-meta span:first-child,
.detail-inline-meta span:nth-child(2) {
  background: var(--lime);
  color: #070807;
  border-color: transparent;
}
.detail-line {
  width: 100%;
  margin-top: 10px;
  justify-content: flex-start;
  border-radius: 20px;
  color: var(--text);
}
.detail-description--formatted {
  margin-top: 22px;
  display: grid;
  gap: 12px;
}
.detail-description--formatted p {
  margin: 0;
  color: var(--text-soft);
  font-size: 16px;
  line-height: 1.72;
}

.place-detail-carousel {
  min-height: 560px;
  border-radius: 30px;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--line);
  padding: 12px;
}
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.50);
  color: #fffaf2;
  display: grid;
  place-items: center;
  box-shadow: 0 14px 40px rgba(0,0,0,.20);
  backdrop-filter: blur(14px);
}
.carousel-arrow--prev { left: 18px; }
.carousel-arrow--next { right: 18px; }
.carousel-counter {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 4;
  border-radius: 999px;
  padding: 8px 12px;
  color: #fffaf2;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.18);
  font-size: 12px;
  font-weight: 850;
  backdrop-filter: blur(14px);
}
.address-button { max-width: 100%; }
.gallery-modal--carousel { width: min(1080px, 100%); }
.gallery-carousel {
  position: relative;
  margin-top: 18px;
  min-height: min(68vh, 640px);
  border-radius: 28px;
  border: 1px solid var(--line);
  overflow: hidden;
  padding: 12px;
}
.gallery-carousel img { border-radius: 20px; }

@media (max-width: 1120px) {
  .grid.places { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .event-card--catalog { grid-template-rows: 220px minmax(0, 1fr); }
  .event-card__image, .event-card__image-placeholder, .event-card__media { min-height: 220px; }
}
@media (max-width: 760px) {
  .grid.places { grid-template-columns: 1fr; }
  .detail-inline-meta span,
  .detail-line { width: 100%; justify-content: flex-start; }
  .place-detail-carousel { min-height: 360px; }
  .gallery-carousel { min-height: 360px; }
}


/* Sobytie v5: fitted event media, place card carousel, city selector, safer wrapping */
.brand-area { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.brand span:last-child { min-width: 0; }
.city-select {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--glass-soft);
  color: var(--text);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  font-weight: 850;
  font-size: 12px;
  letter-spacing: -.02em;
  white-space: nowrap;
}
.city-select svg { width: 16px; height: 16px; }
.brand small { display: none !important; }

.card, .card *, .button, .pill, .detail-line, .detail-inline-meta span { overflow-wrap: anywhere; }
.button, .pill { white-space: normal; }
.button { text-align: center; }

.event-card--catalog {
  --event-media-bg: color-mix(in srgb, var(--surface-2) 90%, transparent);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}
.event-card--plain { --event-media-bg: color-mix(in srgb, var(--surface-2) 88%, transparent); }
.event-card--tone-1 { --event-media-bg: radial-gradient(circle at 14% 18%, rgba(216,255,79,.20), transparent 29%), linear-gradient(135deg, rgba(244,223,183,.20), rgba(16,17,15,.12)); }
.event-card--tone-2 { --event-media-bg: radial-gradient(circle at 86% 18%, rgba(135,191,255,.18), transparent 28%), linear-gradient(135deg, rgba(16,17,15,.10), rgba(140,125,255,.13)); }
.event-card--tone-3 { --event-media-bg: radial-gradient(circle at 28% 86%, rgba(255,107,74,.16), transparent 30%), linear-gradient(135deg, rgba(244,223,183,.18), rgba(16,17,15,.12)); }
.event-card--tone-4 { --event-media-bg: radial-gradient(circle at 76% 28%, rgba(156,255,211,.17), transparent 30%), linear-gradient(135deg, rgba(32,34,29,.08), rgba(135,191,255,.13)); }
.event-card--tone-5 { --event-media-bg: radial-gradient(circle at 48% 16%, rgba(244,223,183,.18), transparent 28%), linear-gradient(135deg, rgba(216,255,79,.10), rgba(255,107,74,.10)); }
.event-card--tone-6 { --event-media-bg: radial-gradient(circle at 12% 74%, rgba(140,125,255,.17), transparent 32%), linear-gradient(135deg, rgba(135,191,255,.11), rgba(244,223,183,.15)); }
.event-card--tone-7 { --event-media-bg: radial-gradient(circle at 82% 74%, rgba(216,255,79,.14), transparent 32%), linear-gradient(135deg, rgba(255,250,242,.08), rgba(16,17,15,.14)); }
.event-card__media { background: var(--event-media-bg); }
.event-card__image {
  object-fit: contain;
  padding: 10px;
  background: var(--event-media-bg);
  filter: saturate(.98) contrast(1.01);
}
.event-card__media::after { background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.02) 56%, rgba(0,0,0,.12)); }
.event-card__line span:last-child { overflow: visible; text-overflow: unset; white-space: normal; }
.event-card__info-row span { white-space: normal; }
.event-card__actions .button.hot,
.place-card-actions .button.hot { min-width: 128px; }

.place-card--catalog {
  grid-template-rows: 212px minmax(0, 1fr) auto;
  align-content: stretch;
}
.place-cover-shell {
  position: relative;
  min-height: 212px;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface-2) 88%, transparent);
}
.place-cover,
.place-cover--empty {
  width: 100%;
  min-height: 212px;
  height: 212px;
  border: 0;
  border-radius: 0;
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  background: transparent;
}
.place-cover img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  padding: 10px;
  background: color-mix(in srgb, var(--surface-2) 86%, transparent);
  transition: transform .25s ease;
}
.place-cover::after { display: none !important; }
.place-cover:hover img { transform: scale(1.01); }
.place-image-arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(0,0,0,.42);
  color: #fffaf2;
  display: grid;
  place-items: center;
  backdrop-filter: blur(12px);
  box-shadow: 0 10px 25px rgba(0,0,0,.18);
}
.place-image-arrow--prev { left: 12px; }
.place-image-arrow--next { right: 12px; }
.place-fav-button {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 4;
  background: rgba(255,250,242,.86);
  color: #090a07;
  border-color: rgba(0,0,0,.08);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
}
.place-fav-button.is-active { background: var(--lime); color: #070807; }
.place-card-body h3,
.place-card-body p { overflow-wrap: anywhere; }
.place-card--catalog .place-footer {
  display: grid;
  gap: 12px;
  align-items: start;
  justify-content: stretch;
}
.place-address-pill {
  width: 100%;
  justify-content: flex-start;
  align-items: flex-start;
  line-height: 1.28;
  border-radius: 18px;
  white-space: normal;
  overflow: visible !important;
  text-overflow: unset !important;
}
.place-address-pill svg { flex: 0 0 auto; margin-top: 1px; }
.place-card-actions { justify-content: flex-start; align-items: center; }
.place-card-actions .button { flex: 0 1 auto; }

.place-detail-actions { margin-top: 24px; display: grid; gap: 12px; }
.place-detail-address { display: flex; flex-wrap: wrap; gap: 10px; }
.address-button { width: fit-content; max-width: 100%; justify-content: flex-start; line-height: 1.25; }

.modal-backdrop { overflow: auto; align-items: center; }
.gallery-modal--carousel {
  width: min(1100px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}
.gallery-modal--carousel .modal-head { align-items: center; }
.gallery-modal--carousel .modal-head h3 { font-size: clamp(24px, 3vw, 38px); }
.gallery-carousel {
  min-height: 0;
  height: min(68dvh, 650px);
  max-height: 68dvh;
}
.gallery-carousel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.gallery-modal--carousel .detail-actions { margin-top: 14px; }

@media (max-width: 1100px) {
  .topbar { grid-template-columns: auto auto; }
  .brand-area { max-width: 100%; }
}
@media (max-width: 820px) {
  .city-select { min-height: 38px; padding: 0 10px; }
  .place-card--catalog { grid-template-rows: 254px minmax(0, 1fr) auto; }
  .place-cover-shell, .place-cover, .place-cover--empty { min-height: 254px; height: 254px; }
  .gallery-modal--carousel { width: min(100%, calc(100vw - 20px)); max-height: calc(100dvh - 20px); padding: 14px; border-radius: 26px; }
  .gallery-carousel { height: min(62dvh, 520px); max-height: 62dvh; border-radius: 22px; }
}
@media (max-width: 560px) {
  .brand-mark { width: 40px; height: 40px; }
  .brand strong { font-size: 12px; }
  .city-select span:nth-child(2) { max-width: 76px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .place-card-actions .button { width: 100%; }
}


/* Sobytie v6: detail squares, card click areas, calmer/more varied event gradients */
.event-card--catalog,
.place-card--catalog {
  cursor: pointer;
}
.event-card--catalog:focus-visible,
.place-card--catalog:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--lime) 78%, white);
  outline-offset: 4px;
}
.event-card--catalog:hover,
.place-card--catalog:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 70px rgba(0,0,0,.18);
}

.event-card--catalog {
  --event-media-bg: color-mix(in srgb, var(--surface-2) 92%, transparent);
}
.event-card--plain {
  --event-media-bg: color-mix(in srgb, var(--surface-2) 92%, transparent);
}
.event-card--tone-1 { --event-media-bg: radial-gradient(circle at 18% 18%, rgba(216,255,79,.13), transparent 30%), linear-gradient(135deg, rgba(244,223,183,.12), rgba(17,18,15,.06)); }
.event-card--tone-2 { --event-media-bg: radial-gradient(circle at 84% 20%, rgba(135,191,255,.12), transparent 32%), linear-gradient(135deg, rgba(140,125,255,.08), rgba(17,18,15,.05)); }
.event-card--tone-3 { --event-media-bg: radial-gradient(circle at 28% 88%, rgba(255,107,74,.10), transparent 34%), linear-gradient(135deg, rgba(244,223,183,.11), rgba(17,18,15,.06)); }
.event-card--tone-4 { --event-media-bg: radial-gradient(circle at 72% 26%, rgba(156,255,211,.11), transparent 32%), linear-gradient(135deg, rgba(135,191,255,.08), rgba(32,34,29,.05)); }
.event-card--tone-5 { --event-media-bg: radial-gradient(circle at 50% 16%, rgba(244,223,183,.13), transparent 30%), linear-gradient(135deg, rgba(216,255,79,.06), rgba(255,107,74,.06)); }
.event-card--tone-6 { --event-media-bg: radial-gradient(circle at 12% 74%, rgba(140,125,255,.11), transparent 34%), linear-gradient(135deg, rgba(135,191,255,.07), rgba(244,223,183,.10)); }
.event-card--tone-7 { --event-media-bg: radial-gradient(circle at 82% 74%, rgba(216,255,79,.10), transparent 34%), linear-gradient(135deg, rgba(255,250,242,.05), rgba(17,18,15,.08)); }
.event-card--tone-8 { --event-media-bg: radial-gradient(circle at 24% 20%, rgba(244,223,183,.10), transparent 30%), radial-gradient(circle at 82% 80%, rgba(135,191,255,.08), transparent 32%), rgba(255,255,255,.025); }
.event-card--tone-9 { --event-media-bg: radial-gradient(circle at 78% 16%, rgba(216,255,79,.09), transparent 32%), radial-gradient(circle at 20% 84%, rgba(255,107,74,.08), transparent 34%), rgba(255,255,255,.025); }
.event-card--tone-10 { --event-media-bg: radial-gradient(circle at 18% 76%, rgba(156,255,211,.10), transparent 34%), linear-gradient(135deg, rgba(244,223,183,.08), rgba(140,125,255,.06)); }
.event-card--tone-11 { --event-media-bg: radial-gradient(circle at 76% 76%, rgba(244,223,183,.11), transparent 32%), linear-gradient(135deg, rgba(135,191,255,.06), rgba(17,18,15,.06)); }
.event-card--tone-12 { --event-media-bg: radial-gradient(circle at 50% 88%, rgba(216,255,79,.08), transparent 34%), radial-gradient(circle at 14% 18%, rgba(135,191,255,.07), transparent 30%), rgba(255,255,255,.025); }
.event-card__image {
  object-fit: contain !important;
  object-position: center center;
  padding: 12px;
}

.detail-hero--event .detail-media--contain,
.detail-hero--place .place-detail-carousel {
  aspect-ratio: 1 / 1;
  min-height: 0 !important;
  height: auto !important;
  max-height: min(72vh, 680px);
  align-self: start;
}
.detail-hero--event .detail-media--contain img,
.detail-hero--place .place-detail-carousel img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  object-position: center center;
  padding: 12px;
}
.detail-hero--event .detail-media--contain,
.detail-hero--place .place-detail-carousel {
  background: color-mix(in srgb, var(--surface-2) 90%, transparent);
}

@media (max-width: 960px) {
  .detail-hero--event .detail-media--contain,
  .detail-hero--place .place-detail-carousel {
    max-height: none;
  }
}

/* Sobytie v7: real ultra-soft gradients for event catalog cards.
   Previous visual tone was still too dominant on light theme, so this block
   force-resets old inherited backgrounds and keeps gradients only as a barely
   visible media backdrop behind contained posters. */
.event-card.event-card--catalog {
  background: color-mix(in srgb, var(--surface) 94%, transparent) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
}
.event-card.event-card--catalog::before,
.event-card.event-card--catalog::after {
  display: none !important;
  content: none !important;
}
.event-card.event-card--catalog .event-card__body {
  background: color-mix(in srgb, var(--surface) 96%, transparent) !important;
}
.event-card.event-card--catalog .event-card__media {
  --event-soft-bg: color-mix(in srgb, var(--surface-2) 90%, transparent);
  background: var(--event-soft-bg) !important;
  isolation: isolate;
}
.event-card.event-card--catalog .event-card__media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .42;
  background: var(--event-soft-bg);
}
.event-card.event-card--catalog .event-card__media::after {
  display: none !important;
  content: none !important;
}
.event-card.event-card--catalog .event-card__image,
.event-card.event-card--catalog .event-card__image-placeholder,
.event-card.event-card--catalog .card-top {
  position: relative;
  z-index: 2;
}
.event-card.event-card--catalog .event-card__image {
  background: transparent !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.event-card.event-card--plain .event-card__media,
.event-card.event-card--plain .event-card__media::before,
.event-card.event-card--tone-0 .event-card__media,
.event-card.event-card--tone-0 .event-card__media::before {
  --event-soft-bg: color-mix(in srgb, var(--surface-2) 92%, transparent) !important;
  background: color-mix(in srgb, var(--surface-2) 92%, transparent) !important;
  opacity: 1;
}
.event-card.event-card--tone-1 .event-card__media { --event-soft-bg: radial-gradient(circle at 16% 18%, rgba(216,255,79,.075), transparent 32%), radial-gradient(circle at 88% 80%, rgba(244,223,183,.07), transparent 34%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-2 .event-card__media { --event-soft-bg: radial-gradient(circle at 82% 18%, rgba(135,191,255,.075), transparent 34%), radial-gradient(circle at 18% 84%, rgba(140,125,255,.045), transparent 34%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-3 .event-card__media { --event-soft-bg: radial-gradient(circle at 28% 84%, rgba(255,107,74,.055), transparent 36%), radial-gradient(circle at 78% 18%, rgba(244,223,183,.065), transparent 32%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-4 .event-card__media { --event-soft-bg: radial-gradient(circle at 72% 24%, rgba(156,255,211,.065), transparent 34%), radial-gradient(circle at 18% 78%, rgba(135,191,255,.045), transparent 34%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-5 .event-card__media { --event-soft-bg: radial-gradient(circle at 52% 16%, rgba(244,223,183,.075), transparent 32%), radial-gradient(circle at 90% 88%, rgba(216,255,79,.045), transparent 36%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-6 .event-card__media { --event-soft-bg: radial-gradient(circle at 14% 74%, rgba(140,125,255,.055), transparent 36%), radial-gradient(circle at 86% 18%, rgba(135,191,255,.055), transparent 34%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-7 .event-card__media { --event-soft-bg: radial-gradient(circle at 82% 72%, rgba(216,255,79,.055), transparent 36%), radial-gradient(circle at 20% 20%, rgba(255,250,242,.055), transparent 32%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-8 .event-card__media { --event-soft-bg: radial-gradient(circle at 24% 20%, rgba(244,223,183,.06), transparent 34%), radial-gradient(circle at 84% 82%, rgba(135,191,255,.045), transparent 36%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-9 .event-card__media { --event-soft-bg: radial-gradient(circle at 78% 16%, rgba(216,255,79,.05), transparent 34%), radial-gradient(circle at 18% 84%, rgba(255,107,74,.04), transparent 36%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-10 .event-card__media { --event-soft-bg: radial-gradient(circle at 18% 76%, rgba(156,255,211,.055), transparent 36%), radial-gradient(circle at 82% 16%, rgba(244,223,183,.045), transparent 32%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-11 .event-card__media { --event-soft-bg: radial-gradient(circle at 76% 76%, rgba(244,223,183,.06), transparent 34%), radial-gradient(circle at 18% 20%, rgba(135,191,255,.04), transparent 34%), color-mix(in srgb, var(--surface-2) 90%, transparent); }
.event-card.event-card--tone-12 .event-card__media { --event-soft-bg: radial-gradient(circle at 50% 88%, rgba(216,255,79,.045), transparent 36%), radial-gradient(circle at 14% 18%, rgba(135,191,255,.04), transparent 32%), color-mix(in srgb, var(--surface-2) 90%, transparent); }

/* Sobytie v8: image, overlay and mobile polish */
.event-card.event-card--catalog .event-card__media {
  position: relative !important;
  overflow: hidden;
}
.event-card.event-card--catalog .card-top {
  position: absolute !important;
  left: 14px !important;
  right: 14px !important;
  top: 14px !important;
  z-index: 6 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  pointer-events: none;
}
.event-card.event-card--catalog .card-top .date-badge,
.event-card.event-card--catalog .card-top .icon-button {
  pointer-events: auto;
}
.event-card.event-card--catalog .card-top .icon-button {
  background: rgba(255,250,242,.88);
  color: #090a07;
  border-color: rgba(0,0,0,.08);
  box-shadow: 0 10px 28px rgba(0,0,0,.14);
}
.event-card.event-card--catalog .card-top .icon-button.is-active {
  background: var(--lime);
  color: #080907;
}
.event-card.event-card--catalog .event-card__image {
  padding: 16px 18px !important;
}

.detail-media.event-detail-media {
  position: relative;
  overflow: hidden;
}
.event-detail-image-button {
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
}
.event-detail-image-button img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 18px;
}
.detail-card-top {
  position: absolute !important;
  left: 18px !important;
  right: auto !important;
  top: 18px !important;
  z-index: 5;
  pointer-events: none;
}
.detail-inline-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.detail-inline-meta > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  max-width: 100%;
  padding: 14px 24px;
  border-radius: 999px;
  background: var(--chip-bg);
  color: var(--text-strong);
  border: 1px solid var(--line);
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}
.detail-inline-meta > span:first-child,
.detail-inline-meta > span:nth-child(2) {
  background: var(--lime);
  color: #080907;
  border-color: transparent;
}
.event-image-modal {
  width: min(96vw, 1100px);
  max-height: min(96dvh, 940px);
  padding: clamp(14px, 2.2vw, 24px);
  overflow: hidden;
}
.event-image-back {
  margin-bottom: 12px;
  align-self: start;
}
.event-image-viewer {
  width: 100%;
  height: min(82dvh, 820px);
  border: 1px solid var(--line);
  border-radius: 30px;
  background: color-mix(in srgb, var(--surface-2) 92%, transparent);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.event-image-viewer img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  padding: 10px;
}

.place-image-arrow {
  background: rgba(255,250,242,.92) !important;
  color: #090a07 !important;
  border-color: rgba(0,0,0,.10) !important;
  box-shadow: 0 14px 32px rgba(0,0,0,.20) !important;
}
.place-image-arrow:hover {
  background: var(--lime) !important;
}
.place-address-pill {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  align-items: flex-start !important;
  line-height: 1.25 !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}
.place-card-body {
  padding-bottom: 16px !important;
}
.place-card-body p {
  margin-bottom: 4px !important;
  overflow-wrap: anywhere;
}
.place-card--catalog .place-footer {
  gap: 16px !important;
  align-items: stretch !important;
}
.place-card--catalog .place-footer > .pill {
  width: 100%;
  min-height: 48px;
}
.place-card-actions {
  margin-top: 0 !important;
}

@media (max-width: 960px) {
  .detail-hero {
    gap: 18px;
  }
  .detail-content .section-title {
    font-size: clamp(34px, 10vw, 58px);
    line-height: .94;
  }
  .detail-inline-meta {
    gap: 10px;
  }
  .detail-inline-meta > span {
    min-height: 52px;
    padding: 13px 18px;
    font-size: 17px;
  }
  .detail-inline-meta > span:first-child {
    min-width: 132px;
  }
  .event-detail-image-button img {
    padding: 12px;
  }
}
@media (max-width: 560px) {
  .wrap { width: min(100% - 22px, 1240px); }
  .detail-hero--event,
  .detail-hero--place {
    border-radius: 30px;
    padding: 12px;
  }
  .detail-hero--event .detail-media--contain,
  .detail-hero--place .place-detail-carousel {
    width: 100%;
    max-height: none;
  }
  .detail-inline-meta > span {
    flex: 0 0 auto;
  }
  .detail-line {
    align-items: flex-start;
    overflow-wrap: anywhere;
  }
  .event-image-modal {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    padding: 12px;
    border-radius: 28px;
  }
  .event-image-viewer {
    height: min(76dvh, 680px);
    border-radius: 22px;
  }
  .place-card--catalog .place-footer {
    padding-top: 0;
  }
}

/* Sobytie v9: strict contained detail images + image-overlay favorites */
.detail-hero--event .detail-media.event-detail-media,
.detail-hero--place .place-detail-carousel {
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: min(68vh, 700px) !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  background: color-mix(in srgb, var(--surface-2) 92%, transparent) !important;
}

.detail-hero--event .event-detail-image-button {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  background: transparent !important;
}

.detail-hero--event .event-detail-image-button img,
.detail-hero--event .detail-media.event-detail-media > img,
.detail-hero--place .place-detail-carousel > img {
  width: auto !important;
  height: auto !important;
  max-width: calc(100% - 28px) !important;
  max-height: calc(100% - 28px) !important;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 0 !important;
  display: block !important;
  border-radius: 22px !important;
}

.detail-card-top.detail-card-top--split {
  position: absolute !important;
  left: 18px !important;
  right: 18px !important;
  top: 18px !important;
  z-index: 8 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  pointer-events: none !important;
}
.detail-card-top--split .date-badge,
.detail-card-top--split .detail-fav-button,
.place-detail-fav-button {
  pointer-events: auto !important;
}
.detail-fav-button,
.place-detail-fav-button {
  width: 46px !important;
  height: 46px !important;
  border-radius: 999px !important;
  background: rgba(255,250,242,.92) !important;
  color: #090a07 !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  box-shadow: 0 16px 42px rgba(0,0,0,.18) !important;
  backdrop-filter: blur(14px) !important;
}
.detail-fav-button.is-active,
.place-detail-fav-button.is-active {
  background: var(--lime) !important;
  color: #080907 !important;
}
.place-detail-fav-button {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  z-index: 8 !important;
}

.event-image-modal {
  width: min(96vw, 1180px) !important;
  height: min(96dvh, 920px) !important;
  max-height: calc(100dvh - 18px) !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  overflow: hidden !important;
}
.event-image-viewer {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
}
.event-image-viewer img {
  width: auto !important;
  height: auto !important;
  max-width: calc(100% - 24px) !important;
  max-height: calc(100% - 24px) !important;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 0 !important;
  border-radius: 20px !important;
}

@media (max-width: 960px) {
  .detail-hero--event .detail-media.event-detail-media,
  .detail-hero--place .place-detail-carousel {
    max-height: none !important;
  }
  .detail-hero--event .event-detail-image-button img,
  .detail-hero--place .place-detail-carousel > img {
    max-width: calc(100% - 20px) !important;
    max-height: calc(100% - 20px) !important;
  }
}

@media (max-width: 560px) {
  .event-image-modal {
    width: calc(100vw - 14px) !important;
    height: calc(100dvh - 14px) !important;
    padding: 10px !important;
  }
  .event-image-viewer img {
    max-width: calc(100% - 10px) !important;
    max-height: calc(100% - 10px) !important;
  }
  .detail-fav-button,
  .place-detail-fav-button {
    width: 42px !important;
    height: 42px !important;
  }
}

/* Sobytie v10: mobile detail compact facts + containment fixes */
@media (max-width: 560px) {
  .detail-content--event {
    min-width: 0 !important;
  }

  .detail-content--event .section-title {
    font-size: clamp(34px, 10.4vw, 52px) !important;
    line-height: .94 !important;
    letter-spacing: -.078em !important;
    margin-top: 0 !important;
  }

  .detail-content--event .detail-inline-meta {
    display: grid !important;
    grid-template-columns: 1fr auto auto !important;
    gap: 8px !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  .detail-content--event .detail-inline-meta > span {
    min-width: 0 !important;
    min-height: 44px !important;
    height: auto !important;
    padding: 10px 12px !important;
    border-radius: 999px !important;
    font-size: 13px !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .detail-content--event .detail-inline-meta > span:first-child {
    min-width: 0 !important;
    justify-content: center !important;
  }

  .detail-content--event .detail-inline-meta > span:nth-child(2) {
    min-width: 52px !important;
    padding-left: 13px !important;
    padding-right: 13px !important;
  }

  .detail-content--event .detail-inline-meta > span:nth-child(3) {
    max-width: 116px !important;
    background: var(--chip-bg) !important;
    color: var(--text-strong) !important;
    border-color: var(--line) !important;
  }

  .detail-content--event .detail-line {
    min-height: 50px !important;
    padding: 12px 14px !important;
    border-radius: 22px !important;
    font-size: 13px !important;
    line-height: 1.22 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .detail-content--event .detail-line svg,
  .detail-content--event .detail-line [data-icon] {
    flex: 0 0 auto !important;
  }

  .detail-content--event .detail-description {
    font-size: 14px !important;
    line-height: 1.62 !important;
    margin-top: 18px !important;
    padding-bottom: 84px !important;
  }
}

/* Sobytie v10: prevent detail media and chips from escaping mobile cards */
@media (max-width: 560px) {
  .detail-hero--event,
  .detail-hero--place {
    overflow: hidden !important;
  }

  .detail-hero--event .detail-media.event-detail-media,
  .detail-hero--place .place-detail-carousel {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 26px !important;
  }

  .detail-hero--event .event-detail-image-button,
  .detail-hero--event .event-detail-image-button img,
  .detail-hero--place .place-detail-carousel > img {
    max-width: 100% !important;
    max-height: 100% !important;
  }

  .detail-hero--event .event-detail-image-button img,
  .detail-hero--place .place-detail-carousel > img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 18px) !important;
    max-height: calc(100% - 18px) !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .detail-card-top.detail-card-top--split {
    left: 12px !important;
    right: 12px !important;
    top: 12px !important;
  }
}

/* Sobytie v10: mobile catalog card inner overflow guards */
@media (max-width: 560px) {
  .event-card.event-card--catalog,
  .place-card.place-card--catalog {
    overflow: hidden !important;
  }

  .event-card.event-card--catalog .event-card__media,
  .place-card.place-card--catalog .place-card-media {
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .event-card.event-card--catalog .event-card__image,
  .place-card.place-card--catalog .place-card-media img {
    max-width: calc(100% - 18px) !important;
    max-height: calc(100% - 18px) !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .event-card.event-card--catalog .event-card__body,
  .place-card.place-card--catalog .place-card-body,
  .place-card.place-card--catalog .place-footer {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .event-card.event-card--catalog .button,
  .place-card.place-card--catalog .button,
  .event-card.event-card--catalog .pill,
  .place-card.place-card--catalog .pill {
    max-width: 100% !important;
  }
}


/* Sobytie v11: compact detail typography, city pill without location icon, cleaner mobile nav */
.city-select { gap: 8px; }
.city-select > span:first-child { text-transform: none; }

.event-card__info-row span:first-child svg,
.event-card__info-row span:first-child [data-icon] {
  display: none !important;
}

.detail-hero .detail-content .section-title {
  font-size: clamp(24px, 2.9vw, 38px) !important;
  line-height: 1.03 !important;
  letter-spacing: -.068em !important;
}
.detail-line {
  align-items: center !important;
  line-height: 1.25 !important;
}
.detail-line svg {
  flex: 0 0 auto !important;
}
.bottom-nav {
  gap: 6px;
}

@media (max-width: 560px) {
  .detail-content--event .section-title,
  .detail-hero--place .detail-content .section-title {
    font-size: clamp(28px, 8.4vw, 42px) !important;
    line-height: .98 !important;
    letter-spacing: -.074em !important;
  }
  .detail-content--event .detail-line,
  .detail-hero--place .detail-line,
  .place-detail-actions .button {
    align-items: center !important;
    font-size: 13px !important;
    line-height: 1.24 !important;
  }
  .bottom-nav {
    max-width: calc(100vw - 28px);
  }
}

/* Sobytie v12: text containment, calmer address pills, larger brand, mobile image reliability */
.brand strong {
  font-size: clamp(18px, 1.55vw, 23px) !important;
  letter-spacing: -.052em !important;
  line-height: 1 !important;
}

/* Detail description must never leave the card, even with long links/hashtags from source text. */
.detail-hero,
.detail-content,
.detail-description,
.detail-description--formatted {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}
.detail-description--formatted,
.detail-description--formatted p,
.detail-description--formatted * {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  white-space: normal !important;
}
.detail-description--formatted p {
  font-size: clamp(14px, 1.08vw, 16px) !important;
  line-height: 1.72 !important;
}

/* Unified address/organizer pills in catalogs: less bold, centered vertically, wrap safely. */
.event-card__line,
.place-address-pill {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 12px 14px !important;
  border-radius: 18px !important;
  font-weight: 560 !important;
  color: var(--text-soft) !important;
  line-height: 1.28 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.event-card__line span:last-child,
.place-address-pill span:last-child {
  min-width: 0 !important;
  overflow: visible !important;
  text-overflow: unset !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.event-card__line svg,
.event-card__line [data-icon],
.place-address-pill svg,
.place-address-pill [data-icon] {
  flex: 0 0 auto !important;
  align-self: center !important;
  margin-top: 0 !important;
}

/* Detail fact pills: vertical centering and safer wrapping. */
.detail-line {
  align-items: center !important;
  min-height: 52px !important;
  height: auto !important;
  font-weight: 620 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.detail-line svg,
.detail-line [data-icon] {
  align-self: center !important;
  flex: 0 0 auto !important;
}

/* Place images on mobile: keep image element visible and contained; helps Android browsers with tall/remote images. */
.place-cover,
.place-detail-carousel,
.gallery-carousel {
  background: color-mix(in srgb, var(--surface-2) 90%, transparent) !important;
}
.place-cover img,
.place-detail-carousel > img,
.gallery-carousel img {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  object-fit: contain !important;
  object-position: center center !important;
  max-width: 100% !important;
  max-height: 100% !important;
}
.place-cover img {
  width: 100% !important;
  height: 100% !important;
}

@media (max-width: 560px) {
  .brand strong {
    font-size: 18px !important;
    letter-spacing: -.048em !important;
  }
  .brand { gap: 10px !important; }
  .brand-mark { width: 42px !important; height: 42px !important; }

  .detail-description--formatted {
    padding-bottom: 96px !important;
  }
  .detail-description--formatted p {
    font-size: 14px !important;
    line-height: 1.68 !important;
  }

  .event-card__line,
  .place-address-pill {
    min-height: 46px !important;
    padding: 11px 13px !important;
    font-size: 13px !important;
    line-height: 1.26 !important;
  }

  .detail-line {
    min-height: 50px !important;
    padding: 12px 14px !important;
    font-size: 13px !important;
    line-height: 1.26 !important;
  }
}

/* Sobytie v13: unified carousel arrows + calmer detail info text */
.place-image-arrow,
.gallery-carousel .carousel-arrow,
.place-detail-carousel .carousel-arrow {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  background: rgba(255,250,242,.92) !important;
  color: #090a07 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  place-items: center !important;
  line-height: 1 !important;
  box-shadow: 0 14px 32px rgba(0,0,0,.18) !important;
  backdrop-filter: blur(14px) saturate(1.08) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.08) !important;
}
.place-image-arrow:hover,
.gallery-carousel .carousel-arrow:hover,
.place-detail-carousel .carousel-arrow:hover {
  background: var(--lime) !important;
  color: #070807 !important;
}
.place-image-arrow [data-icon],
.gallery-carousel .carousel-arrow [data-icon],
.place-detail-carousel .carousel-arrow [data-icon],
.place-image-arrow svg,
.gallery-carousel .carousel-arrow svg,
.place-detail-carousel .carousel-arrow svg {
  width: 20px !important;
  height: 20px !important;
  display: block !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  transform: none !important;
}
.place-image-arrow--prev [data-icon],
.carousel-arrow--prev [data-icon],
.place-image-arrow--prev svg,
.carousel-arrow--prev svg {
  transform: none !important;
}
.place-image-arrow--prev { left: 14px !important; }
.place-image-arrow--next { right: 14px !important; }
.gallery-carousel .carousel-arrow--prev,
.place-detail-carousel .carousel-arrow--prev { left: 20px !important; }
.gallery-carousel .carousel-arrow--next,
.place-detail-carousel .carousel-arrow--next { right: 20px !important; }

/* Match detail event address/organizer pills to calmer catalog address tone. */
.detail-content--event .detail-line {
  font-weight: 560 !important;
  color: var(--text-soft) !important;
  align-items: center !important;
  min-height: 54px !important;
  padding: 13px 16px !important;
  line-height: 1.28 !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}
.detail-content--event .detail-line [data-icon],
.detail-content--event .detail-line svg {
  align-self: center !important;
  color: currentColor !important;
}

@media (max-width: 560px) {
  .place-image-arrow,
  .gallery-carousel .carousel-arrow,
  .place-detail-carousel .carousel-arrow {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
  .place-image-arrow [data-icon],
  .gallery-carousel .carousel-arrow [data-icon],
  .place-detail-carousel .carousel-arrow [data-icon],
  .place-image-arrow svg,
  .gallery-carousel .carousel-arrow svg,
  .place-detail-carousel .carousel-arrow svg {
    width: 18px !important;
    height: 18px !important;
  }
  .gallery-carousel .carousel-arrow--prev,
  .place-detail-carousel .carousel-arrow--prev { left: 12px !important; }
  .gallery-carousel .carousel-arrow--next,
  .place-detail-carousel .carousel-arrow--next { right: 12px !important; }
  .detail-content--event .detail-line {
    font-weight: 540 !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    min-height: 50px !important;
  }
}

/* Sobytie v14: Overview home screen, city discovery, community photos, place likes, points */
.overview-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 38px;
  padding: clamp(30px, 6vw, 70px);
  background:
    radial-gradient(circle at 18% 12%, color-mix(in srgb, var(--lime) 22%, transparent), transparent 32%),
    radial-gradient(circle at 82% 0%, color-mix(in srgb, var(--steel) 15%, transparent), transparent 30%),
    color-mix(in srgb, var(--surface) 82%, transparent);
  box-shadow: var(--soft-shadow);
}
.overview-hero h1 {
  margin: 0;
  font: 650 clamp(54px, 9vw, 116px)/.88 var(--font-display);
  letter-spacing: -.09em;
  color: var(--text-strong);
}
.overview-hero p:not(.section-kicker) {
  max-width: 760px;
  margin: 18px 0 0;
  color: var(--text-soft);
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.55;
}
.overview-quick-row {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.overview-square {
  aspect-ratio: 1 / 1;
  min-height: 250px;
  border: 1px solid var(--line);
  border-radius: 34px;
  padding: 22px;
  background: color-mix(in srgb, var(--surface) 84%, transparent);
  color: var(--text-strong);
  box-shadow: var(--soft-shadow);
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
}
.overview-square--message { background: radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--lime) 28%, transparent), transparent 34%), color-mix(in srgb, var(--surface) 86%, transparent); }
.overview-square--luck { background: radial-gradient(circle at 16% 18%, color-mix(in srgb, var(--violet) 20%, transparent), transparent 34%), color-mix(in srgb, var(--surface) 86%, transparent); }
.overview-square--quiz { background: radial-gradient(circle at 80% 80%, color-mix(in srgb, var(--sand) 26%, transparent), transparent 34%), color-mix(in srgb, var(--surface) 86%, transparent); }
.overview-card-icon {
  width: 54px;
  height: 54px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--lime);
  color: #070807;
  font: 800 26px/1 var(--font-display);
}
.overview-square strong {
  display: block;
  font: 650 clamp(24px, 2.4vw, 34px)/1 var(--font-display);
  letter-spacing: -.07em;
}
.overview-square small { color: var(--text-soft); font-weight: 650; line-height: 1.35; }
.quiz-options-mini { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.quiz-result { display: block; margin-top: 8px; }
.city-message-card {
  border: 1px solid var(--line);
  border-radius: 34px;
  padding: clamp(22px, 4vw, 34px);
  background: color-mix(in srgb, var(--surface) 84%, transparent);
  box-shadow: var(--soft-shadow);
}
.city-message-card h3 {
  margin: 14px 0 0;
  font: 650 clamp(26px, 3.6vw, 48px)/1.04 var(--font-display);
  letter-spacing: -.075em;
  color: var(--text-strong);
}
.inspire-gallery {
  display: grid;
  grid-template-columns: repeat(5, minmax(180px, 1fr));
  gap: 14px;
}
.inspire-photo {
  border: 1px solid var(--line);
  border-radius: 24px;
  overflow: hidden;
  padding: 0;
  background: var(--surface);
  color: var(--text-strong);
  text-align: left;
  cursor: pointer;
  box-shadow: var(--soft-shadow);
}
.inspire-photo img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}
.inspire-photo span {
  display: block;
  padding: 12px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.horizontal-places {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding: 4px 0 16px;
  scroll-snap-type: x proximity;
}
.top-place-tile {
  flex: 0 0 min(310px, 82vw);
  scroll-snap-align: start;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: color-mix(in srgb, var(--surface) 84%, transparent);
  box-shadow: var(--soft-shadow);
  overflow: hidden;
  display: grid;
  gap: 14px;
  padding-bottom: 16px;
}
.top-place-image {
  border: 0;
  padding: 0;
  background: var(--surface-2);
  cursor: pointer;
}
.top-place-image img, .top-place-image span {
  width: 100%;
  aspect-ratio: 1.25 / 1;
  object-fit: contain;
  display: grid;
  place-items: center;
}
.top-place-tile h3 {
  margin: 0;
  padding: 0 16px;
  font: 650 22px/1.05 var(--font-display);
  letter-spacing: -.065em;
  color: var(--text-strong);
}
.top-place-tile p {
  margin: 6px 0 0;
  padding: 0 16px;
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.35;
}
.top-place-actions {
  padding: 0 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lucky-event-card {
  display: grid;
  grid-template-columns: minmax(180px, 320px) 1fr;
  gap: 20px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: 16px;
  background: var(--surface-2);
}
.lucky-event-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 22px;
  background: var(--surface);
}
.lucky-event-card h3 { margin: 0 0 12px; font: 650 clamp(28px, 3vw, 42px)/.98 var(--font-display); letter-spacing: -.075em; }
.photo-modal-image {
  width: 100%;
  max-height: 62vh;
  object-fit: contain;
  border-radius: 24px;
  background: var(--surface-2);
}
.comments-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}
.comments-list p {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  color: var(--text-soft);
  overflow-wrap: anywhere;
}
.points-total {
  margin: 18px 0;
  width: 124px;
  height: 124px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--lime);
  color: #070807;
  font: 800 42px/1 var(--font-display);
  box-shadow: 0 18px 54px color-mix(in srgb, var(--lime) 25%, transparent);
}
.calendar-list { display: grid; gap: 14px; }
.calendar-day {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 14px;
  background: var(--glass-soft);
}
.calendar-day strong { display: block; margin-bottom: 10px; color: var(--text-strong); }
.calendar-day button {
  width: 100%;
  border: 0;
  border-radius: 16px;
  padding: 12px;
  margin-top: 8px;
  text-align: left;
  background: color-mix(in srgb, var(--surface) 70%, transparent);
  color: var(--text);
  font-weight: 700;
}
.calendar-day button span { color: var(--muted); margin-right: 10px; }

@media (max-width: 920px) {
  .overview-quick-row { grid-template-columns: repeat(3, minmax(220px, 1fr)); overflow-x: auto; }
  .overview-square { min-height: 220px; }
  .inspire-gallery { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .bottom-nav { max-width: calc(100vw - 22px); }
  .bottom-nav button { width: 44px; height: 44px; }
}
@media (max-width: 560px) {
  .overview-hero { padding: 28px 22px; border-radius: 30px; }
  .overview-hero h1 { font-size: clamp(46px, 14vw, 72px); }
  .overview-quick-row { grid-template-columns: repeat(3, 78vw); gap: 12px; }
  .overview-square { min-height: 78vw; padding: 18px; }
  .inspire-gallery { display: flex; overflow-x: auto; gap: 12px; }
  .inspire-photo { flex: 0 0 72vw; }
  .lucky-event-card { grid-template-columns: 1fr; }
}

/* Sobytie v15: compact overview board */
.overview-quick-row--compact {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.overview-quick-row--compact .overview-square {
  min-height: 0;
  aspect-ratio: 1 / 1;
  border-radius: 30px;
  padding: clamp(16px, 1.8vw, 22px);
  overflow: hidden;
}
.overview-square--hero {
  background:
    radial-gradient(circle at 18% 18%, color-mix(in srgb, var(--lime) 34%, transparent), transparent 36%),
    linear-gradient(145deg, color-mix(in srgb, var(--lime) 20%, var(--surface)) 0%, color-mix(in srgb, var(--surface) 86%, transparent) 72%);
}
.overview-square--hero .overview-card-icon {
  background: #070807;
  color: var(--lime);
}
.overview-square--message {
  background: radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--lime) 18%, transparent), transparent 34%), color-mix(in srgb, var(--surface) 88%, transparent);
}
.overview-square--luck {
  background: radial-gradient(circle at 16% 18%, color-mix(in srgb, var(--violet) 12%, transparent), transparent 34%), color-mix(in srgb, var(--surface) 88%, transparent);
}
.overview-square--quiz {
  background: radial-gradient(circle at 80% 80%, color-mix(in srgb, var(--sand) 16%, transparent), transparent 34%), color-mix(in srgb, var(--surface) 88%, transparent);
}
.overview-quick-row--compact .overview-card-icon {
  width: 46px;
  height: 46px;
  font-size: 21px;
}
.overview-quick-row--compact .overview-square strong {
  font-size: clamp(22px, 2.05vw, 32px);
  line-height: .98;
  letter-spacing: -.075em;
}
.overview-quick-row--compact .overview-square small {
  font-size: 13px;
  line-height: 1.34;
}
.quiz-question-mini {
  margin: auto 0 0;
  color: var(--text-soft);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.city-message-card { display: none !important; }
.city-message-modal { max-width: min(620px, calc(100vw - 28px)); }
.city-message-modal .modal-head h3 {
  margin: 10px 0 0;
  font-size: clamp(28px, 4vw, 42px);
}
.city-message-modal__body {
  display: grid;
  gap: 18px;
  padding: 10px 0 2px;
}
.city-message-modal__body p {
  margin: 0;
  color: var(--text-strong);
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.12;
  letter-spacing: -.06em;
  overflow-wrap: anywhere;
}
.city-message-modal__body small {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 12px 14px;
  background: var(--lime);
  color: #080908;
  font-weight: 900;
  line-height: 1.25;
}
.inspire-photo { position: relative; }
.photo-like-badge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--surface) 88%, white 4%);
  color: var(--text-strong);
  box-shadow: var(--soft-shadow);
  border: 1px solid var(--line);
}
.photo-like-badge svg, .top-place-actions [data-icon="thumb-up"] svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}
.top-place-actions .button svg { margin-right: 2px; }
.top-place-actions .button.small.secondary {
  gap: 7px;
  min-width: 66px;
  justify-content: center;
}
.inspire-section .section-kicker,
.top-places-section .section-kicker { display: none; }
@media (max-width: 1180px) {
  .overview-quick-row--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .overview-quick-row--compact {
    grid-template-columns: repeat(4, 72vw);
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-snap-type: x mandatory;
  }
  .overview-quick-row--compact .overview-square {
    min-height: auto;
    scroll-snap-align: start;
    border-radius: 28px;
  }
  .overview-quick-row--compact .overview-square strong { font-size: clamp(25px, 8vw, 34px); }
  .quiz-options-mini .pill { padding: 8px 9px; font-size: 11px; }
  .city-message-modal__body p { font-size: 24px; }
}
@media (max-width: 720px) {
  .overview-quick-row--compact .overview-square {
    width: 72vw;
    min-height: auto !important;
    height: 72vw;
  }
}

/* Sobytie v16: Overview board 2x2 + city-wide event teaser, icon-only header actions */
.top-actions .topbar-favorite,
.top-actions .topbar-account {
  width: 42px;
  height: 42px;
}
.top-actions .topbar-favorite.is-active,
.top-actions .topbar-account.is-active {
  background: var(--nav-active-bg);
  color: var(--nav-active-ink);
}

.overview-board {
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
  gap: 18px;
  align-items: stretch;
}
.overview-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.overview-mini-grid .overview-square {
  min-height: 0 !important;
  aspect-ratio: 1 / 1;
  border-radius: 26px;
  padding: clamp(12px, 1.35vw, 18px);
}
.overview-mini-grid .overview-card-icon {
  width: 40px;
  height: 40px;
  font-size: 18px;
}
.overview-mini-grid .overview-square strong {
  font-size: clamp(17px, 1.35vw, 23px);
  line-height: 1.01;
  letter-spacing: -.072em;
}
.overview-mini-grid .overview-square small,
.overview-mini-grid .quiz-question-mini {
  font-size: clamp(10px, .9vw, 12px);
  line-height: 1.28;
}
.overview-mini-grid .quiz-options-mini {
  display: none;
}
.city-wait-panel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 34px;
  background:
    radial-gradient(circle at 86% 10%, color-mix(in srgb, var(--lime) 12%, transparent), transparent 28%),
    color-mix(in srgb, var(--surface) 82%, transparent);
  box-shadow: var(--soft-shadow);
  padding: 18px;
  display: grid;
  gap: 14px;
  align-content: start;
}
.city-wait-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.city-wait-head .section-title {
  font-size: clamp(24px, 2.6vw, 40px);
  line-height: 1;
}
.city-wait-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(230px, .88fr) minmax(0, 1.12fr);
  box-shadow: 0 18px 54px rgba(0,0,0,.12);
  cursor: pointer;
}
.city-wait-card:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--lime) 70%, white);
  outline-offset: 4px;
}
.city-wait-image {
  position: relative;
  min-height: 272px;
  background:
    radial-gradient(circle at 70% 16%, color-mix(in srgb, var(--lime) 8%, transparent), transparent 35%),
    color-mix(in srgb, var(--surface-2) 92%, transparent);
  display: grid;
  place-items: center;
  border-right: 1px solid var(--line);
}
.city-wait-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14px;
  display: block;
}
.city-wait-image > [data-icon] svg {
  width: 64px;
  height: 64px;
  opacity: .7;
}
.city-wait-date {
  position: absolute;
  left: 14px;
  top: 14px;
  z-index: 3;
}
.city-wait-fav {
  position: absolute;
  right: 14px;
  top: 14px;
  z-index: 3;
  background: rgba(255,250,242,.90);
  color: #090a07;
  border-color: rgba(0,0,0,.08);
}
.city-wait-fav.is-active {
  background: var(--lime);
  color: #070807;
}
.city-wait-info {
  min-width: 0;
  padding: clamp(16px, 2vw, 24px);
  display: grid;
  gap: 13px;
  align-content: center;
}
.city-wait-info h3 {
  margin: 0;
  color: var(--text-strong);
  font: 650 clamp(22px, 2.4vw, 36px)/1 var(--font-display);
  letter-spacing: -.076em;
  overflow-wrap: anywhere;
}
.city-wait-info p {
  margin: 0;
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.city-wait-meta {
  gap: 7px;
}
.city-wait-meta span {
  font-weight: 650;
}
.city-wait-empty {
  border: 1px dashed var(--line-strong);
  border-radius: 28px;
  padding: 24px;
  color: var(--text-soft);
  background: var(--glass-soft);
}
.city-wait-empty h3 {
  margin: 0;
  color: var(--text-strong);
  font: 650 28px/1 var(--font-display);
  letter-spacing: -.07em;
}
.city-wait-empty p {
  margin: 10px 0 18px;
}
.city-wait-arrows {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.city-wait-arrows .icon-button {
  background: rgba(255,250,242,.92);
  color: #090a07;
  border-color: rgba(0,0,0,.10);
}
.city-wait-arrows .icon-button:hover {
  background: var(--lime);
}

@media (max-width: 980px) {
  .overview-board {
    grid-template-columns: 1fr;
  }
  .overview-mini-grid {
    max-width: 620px;
  }
  .city-wait-card {
    grid-template-columns: minmax(190px, .9fr) minmax(0, 1.1fr);
  }
  .city-wait-image {
    min-height: 244px;
  }
}
@media (max-width: 620px) {
  .overview-board {
    gap: 16px;
  }
  .overview-mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: none;
  }
  .overview-mini-grid .overview-square {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    border-radius: 22px;
    padding: 12px;
  }
  .overview-mini-grid .overview-card-icon {
    width: 34px;
    height: 34px;
    font-size: 15px;
  }
  .overview-mini-grid .overview-square strong {
    font-size: clamp(16px, 5.2vw, 22px) !important;
    line-height: 1;
  }
  .overview-mini-grid .overview-square small,
  .overview-mini-grid .quiz-question-mini {
    font-size: 10px;
    line-height: 1.22;
  }
  .city-wait-panel {
    border-radius: 28px;
    padding: 14px;
  }
  .city-wait-head .section-title {
    font-size: clamp(25px, 8vw, 36px);
  }
  .city-wait-card {
    grid-template-columns: 1fr;
    border-radius: 24px;
  }
  .city-wait-image {
    min-height: 230px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .city-wait-info {
    padding: 16px;
  }
  .city-wait-info h3 {
    font-size: clamp(23px, 7vw, 32px);
  }
  .city-wait-meta span {
    min-height: 32px;
    padding: 8px 10px;
    font-size: 11px;
  }
}

/* Sobytie v17: overview proportions, mobile topbar cleanup, lucky modal fit */
#screen-overview .section-title {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.02;
}

.overview-board {
  align-items: stretch;
}
.overview-mini-grid {
  height: 100%;
  align-self: stretch;
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.overview-mini-grid .overview-square {
  aspect-ratio: auto;
  min-height: 0 !important;
  height: auto;
}
.city-wait-panel {
  height: 100%;
}
.city-wait-head .section-title {
  font-size: clamp(28px, 3vw, 44px);
}
.city-wait-info h3 {
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.03;
  letter-spacing: -.07em;
}
.city-wait-info p {
  font-size: 12.5px;
  line-height: 1.45;
  max-height: 5.8em;
  overflow: hidden;
}
.city-wait-card {
  min-height: 0;
}
.city-wait-image {
  min-height: 250px;
}
.city-wait-info {
  align-content: center;
}

.lucky-modal {
  width: min(820px, calc(100vw - 28px));
  max-height: min(88vh, 760px);
  overflow: auto;
}
.lucky-modal .modal-head h3 {
  font-size: clamp(26px, 3.3vw, 42px);
  line-height: .98;
}
.lucky-event-card {
  grid-template-columns: minmax(150px, 260px) minmax(0, 1fr);
  gap: 18px;
  overflow: hidden;
}
.lucky-event-card > div {
  min-width: 0;
}
.lucky-event-card h3 {
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.02;
  overflow-wrap: anywhere;
  hyphens: auto;
}
.lucky-event-card p {
  margin: 0 0 12px;
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.42;
  max-height: 6.2em;
  overflow: hidden;
  overflow-wrap: anywhere;
}
.lucky-modal .detail-actions {
  align-items: center;
  gap: 10px;
}
.lucky-modal .button.ghost {
  width: auto;
}

@media (max-width: 820px) {
  .topbar {
    grid-template-columns: 1fr !important;
    justify-content: stretch;
  }
  .topbar .top-actions {
    display: none !important;
  }
  .brand-area {
    width: 100%;
    justify-content: space-between;
    gap: 10px;
  }
  .brand strong {
    font-size: 18px;
    letter-spacing: -.055em;
  }
  .city-select {
    flex: 0 0 auto;
    max-width: 148px;
  }
}

@media (max-width: 620px) {
  #screen-overview .section-title {
    font-size: clamp(28px, 8vw, 34px);
  }
  .overview-mini-grid {
    height: auto;
  }
  .overview-mini-grid .overview-square {
    aspect-ratio: 1 / 1;
  }
  .city-wait-head .section-title {
    font-size: clamp(28px, 8vw, 36px);
  }
  .city-wait-info h3 {
    font-size: clamp(21px, 6.6vw, 28px);
  }
  .city-wait-card {
    min-height: 0;
  }
  .lucky-modal {
    width: min(100%, calc(100vw - 20px));
    padding: 18px;
    border-radius: 28px;
  }
  .lucky-modal .modal-head h3 {
    font-size: clamp(24px, 7vw, 32px);
  }
  .lucky-event-card {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 12px;
  }
  .lucky-event-card img {
    max-height: 220px;
    width: 100%;
  }
  .lucky-event-card h3 {
    font-size: clamp(22px, 7vw, 30px);
  }
  .lucky-event-card p {
    max-height: 5.6em;
    font-size: 12px;
  }
  .lucky-modal .detail-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lucky-modal .detail-actions .button {
    width: 100%;
    min-width: 0;
    padding-inline: 12px;
  }
  .lucky-modal .detail-actions .button.ghost {
    grid-column: 1 / -1;
  }
}

/* Sobytie v18: overview density, mobile theme button, calmer city-message and lucky modal */
.mobile-theme-toggle { display: none; }

@media (min-width: 981px) {
  .overview-board {
    grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
    gap: 18px;
    align-items: stretch;
  }
  .overview-mini-grid {
    height: 100%;
    align-self: stretch;
    gap: 14px;
  }
  .overview-mini-grid .overview-square {
    padding: 16px;
    border-radius: 25px;
  }
  .overview-mini-grid .overview-square strong {
    font-size: clamp(17px, 1.25vw, 22px) !important;
  }
  .overview-mini-grid .overview-square small,
  .overview-mini-grid .quiz-question-mini {
    font-size: 11px;
  }
  .city-wait-panel {
    padding: 16px;
    gap: 10px;
    align-content: start;
  }
  .city-wait-head .section-title {
    font-size: clamp(27px, 2.55vw, 38px) !important;
  }
  .city-wait-card {
    height: 360px;
    grid-template-columns: minmax(230px, .88fr) minmax(0, 1.12fr);
  }
  .city-wait-image {
    min-height: 0 !important;
    height: 100%;
  }
  .city-wait-image img {
    max-height: 100%;
  }
  .city-wait-info {
    padding: 18px 22px;
    gap: 9px;
  }
  .city-wait-info h3 {
    font-size: clamp(21px, 1.85vw, 29px) !important;
    line-height: 1.02;
  }
  .city-wait-info p {
    max-height: 4.35em;
    font-size: 12.5px;
  }
  .city-wait-arrows .icon-button {
    width: 44px;
    height: 44px;
  }
}

.city-message-modal {
  max-width: min(680px, calc(100vw - 28px));
}
.city-message-modal .modal-head h3 {
  display: none !important;
}
.city-message-modal__body {
  gap: 18px;
}
.city-message-modal__body p {
  font-size: clamp(28px, 4.6vw, 46px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.065em;
  max-width: 12.5em;
}
.city-message-note {
  display: inline-flex !important;
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface-2) 88%, transparent) !important;
  color: var(--text-soft) !important;
  padding: 13px 17px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 750 !important;
}

.lucky-modal .modal-head h3 { display: none !important; }
.lucky-modal .modal-head { margin-bottom: 10px; }
.lucky-event-card h3 {
  font-size: clamp(23px, 2.6vw, 36px) !important;
  line-height: 1.02 !important;
}
.lucky-event-card p {
  max-height: 5.1em !important;
  overflow: hidden;
}
.lucky-share-button {
  min-width: 54px;
  padding-inline: 16px !important;
}
.lucky-share-button svg {
  margin: 0 !important;
}

@media (max-width: 820px) {
  .mobile-theme-toggle {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }
  .brand-area {
    grid-template-columns: auto auto auto;
    justify-content: space-between;
  }
  .brand {
    min-width: 0;
  }
  .city-select {
    max-width: 132px;
  }
}

@media (max-width: 620px) {
  .overview-board {
    gap: 14px;
  }
  .overview-mini-grid {
    gap: 9px;
  }
  .overview-mini-grid .overview-square {
    padding: 11px;
    border-radius: 21px;
  }
  .overview-mini-grid .overview-card-icon {
    width: 32px;
    height: 32px;
  }
  .overview-mini-grid .overview-square strong {
    font-size: clamp(15px, 4.8vw, 20px) !important;
  }
  .overview-mini-grid .overview-square small,
  .overview-mini-grid .quiz-question-mini {
    font-size: 9.8px;
    line-height: 1.18;
  }
  .city-wait-panel {
    padding: 12px;
    gap: 10px;
  }
  .city-wait-head .section-title {
    font-size: clamp(24px, 7.4vw, 32px) !important;
  }
  .city-wait-image {
    min-height: 205px !important;
  }
  .city-wait-info h3 {
    font-size: clamp(20px, 6.2vw, 27px) !important;
  }
  .city-message-modal__body p {
    font-size: clamp(25px, 8.3vw, 34px) !important;
  }
  .city-message-note {
    border-radius: 22px;
    width: 100%;
  }
  .lucky-modal .detail-actions {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lucky-modal .detail-actions .button.ghost {
    grid-column: 1 / -1;
  }
  .lucky-modal .detail-actions .lucky-share-button,
  .lucky-modal .detail-actions [data-action="lucky-prev"],
  .lucky-modal .detail-actions [data-action="lucky-next"] {
    min-width: 0;
    padding-inline: 10px !important;
  }
}

/* Sobytie v19: overview city-life collection row and all-events link */
.city-wait-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 2px;
}
.city-wait-controls .city-wait-arrows {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.city-wait-controls .icon-button:disabled {
  opacity: .42;
  cursor: default;
  box-shadow: none;
}
.city-wait-all-events {
  border: 0;
  background: transparent;
  color: var(--muted);
  font: 750 14px/1 var(--font-text);
  letter-spacing: -.025em;
  padding: 10px 4px;
  cursor: pointer;
  white-space: nowrap;
}
.city-wait-all-events:hover { color: var(--text); }

.city-life-section { margin-top: 24px; }
.city-life-head { margin-bottom: 14px; }
.city-life-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.city-life-card {
  position: relative;
  min-height: 154px;
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: 18px;
  display: grid;
  align-content: space-between;
  gap: 12px;
  overflow: hidden;
  text-align: left;
  color: var(--text-strong);
  cursor: pointer;
  box-shadow: var(--soft-shadow);
  isolation: isolate;
}
.city-life-card::before {
  content: "";
  position: absolute;
  inset: -25%;
  z-index: -1;
  opacity: .88;
  transition: transform .25s ease, opacity .25s ease;
}
.city-life-card:hover::before { transform: scale(1.05) rotate(1deg); opacity: 1; }
.city-life-card span {
  width: fit-content;
  border-radius: 999px;
  padding: 8px 11px;
  background: color-mix(in srgb, var(--surface) 68%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
  color: color-mix(in srgb, var(--text) 72%, var(--muted));
  font: 800 11px/1 var(--font-text);
  letter-spacing: -.025em;
}
.city-life-card strong {
  display: block;
  margin-top: auto;
  max-width: 10em;
  font: 650 clamp(19px, 1.65vw, 28px)/1.03 var(--font-display);
  letter-spacing: -.075em;
}
.city-life-card small {
  display: block;
  color: color-mix(in srgb, var(--text-soft) 88%, var(--text));
  font: 700 12px/1.35 var(--font-text);
  letter-spacing: -.02em;
  max-width: 22em;
}
.city-life-card--lime::before {
  background:
    radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--lime) 52%, transparent), transparent 32%),
    radial-gradient(circle at 86% 92%, color-mix(in srgb, var(--sand) 32%, transparent), transparent 30%),
    linear-gradient(135deg, color-mix(in srgb, var(--surface) 92%, transparent), color-mix(in srgb, var(--lime) 14%, var(--surface)));
}
.city-life-card--steel::before {
  background:
    radial-gradient(circle at 88% 22%, color-mix(in srgb, var(--steel) 45%, transparent), transparent 34%),
    radial-gradient(circle at 8% 86%, color-mix(in srgb, var(--mint) 28%, transparent), transparent 28%),
    linear-gradient(135deg, color-mix(in srgb, var(--surface) 88%, transparent), color-mix(in srgb, var(--steel) 16%, var(--surface)));
}
.city-life-card--violet::before {
  background:
    radial-gradient(circle at 22% 18%, color-mix(in srgb, var(--violet) 43%, transparent), transparent 31%),
    radial-gradient(circle at 92% 88%, color-mix(in srgb, var(--lime) 20%, transparent), transparent 30%),
    linear-gradient(135deg, color-mix(in srgb, var(--surface) 90%, transparent), color-mix(in srgb, var(--violet) 15%, var(--surface)));
}
.city-life-card--coral::before {
  background:
    radial-gradient(circle at 86% 18%, color-mix(in srgb, var(--coral) 38%, transparent), transparent 31%),
    radial-gradient(circle at 18% 86%, color-mix(in srgb, var(--sand) 34%, transparent), transparent 29%),
    linear-gradient(135deg, color-mix(in srgb, var(--surface) 91%, transparent), color-mix(in srgb, var(--coral) 12%, var(--surface)));
}

@media (max-width: 980px) {
  .city-life-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .city-life-card {
    min-height: 138px;
    border-radius: 22px;
    padding: 14px;
  }
  .city-life-card strong { font-size: clamp(18px, 5.4vw, 25px); }
  .city-life-card small { font-size: 11px; }
  .city-wait-controls {
    justify-content: center;
    gap: 12px;
  }
}

@media (max-width: 520px) {
  .city-life-section { margin-top: 18px; }
  .city-life-grid { gap: 9px; }
  .city-life-card {
    min-height: 126px;
    padding: 12px;
  }
  .city-life-card span {
    font-size: 9.5px;
    padding: 6px 8px;
  }
  .city-life-card strong {
    font-size: clamp(16px, 5.1vw, 21px);
  }
  .city-life-card small {
    font-size: 10px;
    line-height: 1.23;
  }
  .city-wait-all-events { font-size: 12px; }
}

/* v20: special collection catalogs */
.special-hero {
  min-height: 260px;
  border: 1px solid var(--line);
  border-radius: var(--hero-radius);
  padding: clamp(24px, 4vw, 48px);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  box-shadow: var(--soft-shadow);
  overflow: hidden;
  position: relative;
  isolation: isolate;
}
.special-hero::before {
  content: "";
  position: absolute;
  inset: -35%;
  z-index: -1;
  opacity: .9;
  filter: blur(4px);
}
.special-hero--lime::before { background: radial-gradient(circle at 10% 5%, rgba(216,255,79,.72), transparent 26%), radial-gradient(circle at 88% 35%, rgba(156,255,211,.30), transparent 30%), linear-gradient(135deg, var(--surface), var(--surface-2)); }
.special-hero--steel::before { background: radial-gradient(circle at 12% 10%, rgba(135,191,255,.50), transparent 28%), radial-gradient(circle at 82% 55%, rgba(216,255,79,.24), transparent 30%), linear-gradient(135deg, var(--surface), var(--surface-2)); }
.special-hero--violet::before { background: radial-gradient(circle at 16% 15%, rgba(140,125,255,.48), transparent 28%), radial-gradient(circle at 85% 45%, rgba(244,223,183,.42), transparent 32%), linear-gradient(135deg, var(--surface), var(--surface-2)); }
.special-hero h1 {
  margin: 0;
  max-width: 920px;
  font-family: var(--font-display);
  font-size: clamp(40px, 6.3vw, 82px);
  line-height: .92;
  letter-spacing: -.075em;
}
.special-hero p {
  margin: 18px 0 0;
  max-width: 680px;
  color: var(--text-soft);
  font-size: clamp(16px, 1.8vw, 22px);
  line-height: 1.45;
}
.special-count {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 14px 18px;
  background: var(--glass-soft);
  color: var(--text-soft);
  font-weight: 800;
}
.special-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.special-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.special-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  overflow: hidden;
  box-shadow: var(--soft-shadow);
  cursor: pointer;
  min-width: 0;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.special-card:hover { transform: translateY(-3px); border-color: var(--line-strong); box-shadow: var(--shadow); }
.special-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--lime) 75%, white); outline-offset: 4px; }
.special-card-cover {
  position: relative;
  height: 260px;
  display: grid;
  place-items: center;
  padding: 16px;
  border-bottom: 1px solid var(--line);
  background: radial-gradient(circle at 15% 15%, rgba(216,255,79,.28), transparent 30%), var(--surface-2);
}
.special-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: calc(var(--radius-lg) - 12px);
}
.special-card-cover .pill {
  position: absolute;
  left: 18px;
  bottom: 16px;
  max-width: calc(100% - 36px);
}
.special-card-cover--empty span[data-icon] {
  width: 44px;
  height: 44px;
  color: var(--text-soft);
}
.special-card-body {
  padding: 22px;
  display: grid;
  gap: 14px;
}
.special-card-body h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.02;
  letter-spacing: -.065em;
  overflow-wrap: anywhere;
}
.special-card-body p {
  margin: 0;
  color: var(--text-soft);
  font-size: 15px;
  line-height: 1.48;
  overflow-wrap: anywhere;
}
.special-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.special-card-meta span {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  color: var(--text-soft);
  background: var(--glass-soft);
  font-weight: 700;
  font-size: 12px;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.special-detail {
  border: 1px solid var(--line);
  border-radius: var(--hero-radius);
  background: color-mix(in srgb, var(--surface) 84%, transparent);
  box-shadow: var(--shadow);
  padding: clamp(20px, 3vw, 34px);
  display: grid;
  grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
}
.special-detail-media {
  aspect-ratio: 1 / 1;
  border: 1px solid var(--line);
  border-radius: calc(var(--hero-radius) - 14px);
  background: radial-gradient(circle at 20% 20%, rgba(216,255,79,.22), transparent 32%), var(--surface-2);
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 18px;
}
.special-detail-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: calc(var(--hero-radius) - 22px);
}
.special-detail-media--empty span[data-icon] {
  width: 72px;
  height: 72px;
  color: var(--text-soft);
}
.special-detail-content {
  min-width: 0;
  display: grid;
  gap: 18px;
}
.special-detail-content h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(34px, 4.8vw, 64px);
  line-height: .95;
  letter-spacing: -.075em;
  overflow-wrap: anywhere;
}
.special-detail-pills,
.special-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.special-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.special-facts div {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--glass-soft);
  padding: 14px 16px;
  display: grid;
  gap: 5px;
}
.special-facts small {
  color: var(--muted);
  font-size: 12px;
}
.special-facts strong {
  color: var(--text);
  font-size: 15px;
  line-height: 1.35;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.organizer-detail .special-detail-media {
  background: radial-gradient(circle at 20% 10%, rgba(216,255,79,.34), transparent 30%), var(--surface-2);
}
@media (max-width: 1050px) {
  .special-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .special-detail { grid-template-columns: 1fr; }
  .special-detail-media { max-width: 640px; width: 100%; margin: 0 auto; }
}
@media (max-width: 680px) {
  .special-hero { min-height: 220px; padding: 24px; border-radius: 34px; align-items: flex-start; flex-direction: column; }
  .special-hero h1 { font-size: clamp(34px, 12vw, 54px); }
  .special-hero p { font-size: 15px; }
  .special-grid { grid-template-columns: 1fr; gap: 14px; }
  .special-card-cover { height: 230px; }
  .special-card-body { padding: 18px; }
  .special-detail { padding: 14px; border-radius: 34px; gap: 22px; }
  .special-detail-content h1 { font-size: clamp(30px, 10vw, 46px); }
  .special-facts { grid-template-columns: 1fr; }
}

/* Sobytie v21: precise media fit + compact vacation catalog/detail */
.detail-hero--event .detail-media.event-detail-media,
.detail-hero--event .event-detail-image-button,
.city-wait-image,
.special-detail-media {
  min-width: 0 !important;
}

.detail-hero--event .detail-media.event-detail-media img,
.detail-hero--event .event-detail-image-button img,
.event-image-viewer img,
.city-wait-image img,
.special-detail-media img {
  width: auto !important;
  height: auto !important;
  max-width: calc(100% - 24px) !important;
  max-height: calc(100% - 24px) !important;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 0 !important;
  display: block !important;
}

.city-wait-image img {
  border-radius: 18px;
}

.city-wait-controls {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  width: 100% !important;
  gap: 14px !important;
}
.city-wait-controls .city-wait-arrows {
  grid-column: 2 !important;
  justify-self: center !important;
}
.city-wait-controls .city-wait-all-events {
  grid-column: 3 !important;
  justify-self: end !important;
  padding-right: 10px !important;
}

.special-hero--lime {
  min-height: 170px !important;
  padding: clamp(18px, 2.8vw, 30px) !important;
  border-radius: 34px !important;
  align-items: flex-end !important;
}
.special-hero--lime h1 {
  font-size: clamp(34px, 4.3vw, 56px) !important;
  line-height: .96 !important;
  max-width: 720px !important;
}
.special-hero--lime p {
  margin-top: 10px !important;
  font-size: clamp(14px, 1.25vw, 17px) !important;
  line-height: 1.4 !important;
  max-width: 560px !important;
}
.special-hero--lime .section-kicker {
  font-size: 13px !important;
}
.special-hero--lime .special-count {
  padding: 10px 14px !important;
  font-size: 13px !important;
}

.special-grid--children-vacation {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
.special-card--children-vacation {
  border-radius: 24px !important;
  box-shadow: 0 14px 44px rgba(0,0,0,.10) !important;
}
.special-card--children-vacation .special-card-cover {
  height: 170px !important;
  padding: 10px !important;
}
.special-card--children-vacation .special-card-cover img {
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  padding: 0 !important;
}
.special-card--children-vacation .special-card-cover .pill {
  left: 12px !important;
  bottom: 12px !important;
  font-size: 10px !important;
  padding: 7px 10px !important;
}
.special-card--children-vacation .special-card-body {
  padding: 14px !important;
  gap: 12px !important;
}
.special-card--children-vacation .special-card-body h3 {
  font-size: clamp(17px, 1.35vw, 22px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.07em !important;
}
.special-card--children-vacation .special-card-body .button {
  min-height: 40px !important;
  padding: 11px 14px !important;
  font-size: 12px !important;
}

.special-detail--children-vacation {
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr) !important;
  gap: clamp(18px, 3vw, 34px) !important;
  padding: clamp(16px, 2.4vw, 26px) !important;
  border-radius: 36px !important;
}
.special-detail--children-vacation .special-detail-media {
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  max-height: min(58vh, 460px) !important;
  padding: 12px !important;
  border-radius: 28px !important;
}
.special-detail--children-vacation .special-detail-media img {
  max-width: calc(100% - 10px) !important;
  max-height: calc(100% - 10px) !important;
  border-radius: 20px !important;
}
.special-detail--children-vacation .special-detail-content {
  gap: 14px !important;
}
.special-detail--children-vacation .special-detail-content h1 {
  font-size: clamp(28px, 3.2vw, 46px) !important;
  line-height: .98 !important;
}
.special-detail--children-vacation .section-kicker {
  font-size: 12px !important;
}
.special-detail--children-vacation .special-detail-pills {
  display: none !important;
}
.special-detail--children-vacation .detail-description {
  font-size: 15px !important;
  line-height: 1.58 !important;
  margin-top: 2px !important;
}
.special-detail--children-vacation .special-actions {
  margin-top: 12px !important;
}
.special-facts--vacation {
  grid-template-columns: 1fr !important;
}
.special-facts--vacation .special-fact-organizer {
  padding: 0 !important;
  overflow: hidden;
}
.special-fact-organizer small {
  padding: 12px 16px 0 !important;
}
.special-fact-link {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  text-align: left;
  font: 750 14px/1.25 var(--font-text);
  cursor: pointer;
}
.special-fact-link:hover {
  background: color-mix(in srgb, var(--lime) 10%, transparent);
}
.special-fact-link svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
}

@media (max-width: 1180px) {
  .special-grid--children-vacation { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px) {
  .special-grid--children-vacation { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .special-detail--children-vacation { grid-template-columns: 1fr !important; }
  .special-detail--children-vacation .special-detail-media { max-width: 440px !important; width: 100% !important; margin: 0 auto !important; }
}

@media (max-width: 560px) {
  .city-wait-controls {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
  }
  .city-wait-controls .city-wait-arrows,
  .city-wait-controls .city-wait-all-events {
    grid-column: 1 !important;
    justify-self: center !important;
  }
  .special-hero--lime {
    min-height: 148px !important;
    padding: 18px !important;
    border-radius: 28px !important;
  }
  .special-hero--lime h1 { font-size: clamp(28px, 10vw, 42px) !important; }
  .special-hero--lime p { font-size: 13px !important; }
  .special-grid--children-vacation { grid-template-columns: 1fr !important; }
  .special-card--children-vacation .special-card-cover { height: 150px !important; }
  .special-card--children-vacation .special-card-body h3 { font-size: 20px !important; }
  .special-detail--children-vacation {
    padding: 12px !important;
    border-radius: 28px !important;
  }
  .special-detail--children-vacation .special-detail-content h1 {
    font-size: clamp(27px, 9vw, 38px) !important;
  }
}

/* Sobytie v22: compact collection catalog headers + functional museum filters */
.special-page-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-top: 34px !important;
  margin-bottom: 12px !important;
}
.special-page-head .section-title {
  margin: 0;
  font-size: clamp(30px, 3.8vw, 48px) !important;
  line-height: .98 !important;
  letter-spacing: -.07em !important;
  max-width: 820px;
}
.special-page-head p:not(.section-kicker) {
  margin: 8px 0 0;
  color: var(--text-soft);
  font-size: 15px;
  line-height: 1.45;
  max-width: 650px;
}
.special-page-head .section-kicker {
  margin: 0 0 6px;
  color: var(--text-soft);
  font-size: 13px;
  letter-spacing: -.02em;
}
.special-page-head .special-count {
  padding: 10px 14px;
  font-size: 13px;
}
.special-chips--interactive {
  margin-top: 6px !important;
  margin-bottom: 2px;
}
.special-chips--interactive .pill {
  min-height: 32px;
  appearance: none;
}
.special-grid--museum-programs,
.special-grid--city-excursions {
  margin-top: 22px !important;
}
.special-card--museum-programs .special-card-cover,
.special-card--city-excursions .special-card-cover {
  height: 220px;
}
.special-card--museum-programs .special-card-body h3,
.special-card--city-excursions .special-card-body h3 {
  font-size: clamp(20px, 1.8vw, 26px);
}
.special-card--museum-programs .special-card-body p,
.special-card--city-excursions .special-card-body p {
  font-size: 14px;
}
@media (max-width: 680px) {
  .special-page-head {
    align-items: flex-start;
    flex-direction: column;
    margin-top: 24px !important;
    gap: 10px;
  }
  .special-page-head .section-title {
    font-size: clamp(28px, 8.8vw, 38px) !important;
  }
  .special-page-head p:not(.section-kicker) {
    font-size: 13px;
  }
  .special-page-head .special-count {
    padding: 8px 12px;
    font-size: 12px;
  }
  .special-card--museum-programs .special-card-cover,
  .special-card--city-excursions .special-card-cover {
    height: 180px;
  }
}

/* Sobytie v23: hard fix for contained images, stable collection cards and lucky modal */
.detail-hero--event .detail-media.event-detail-media {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: min(70vh, 680px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 16px !important;
  background: color-mix(in srgb, var(--surface-2) 94%, transparent) !important;
}
.detail-hero--event .event-detail-image-button {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  background: transparent !important;
  cursor: zoom-in !important;
}
.detail-hero--event .event-detail-image-button img,
.detail-hero--event .detail-media.event-detail-media > img,
.event-image-viewer img,
.city-wait-image img,
.special-card-cover img,
.special-detail-media img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  padding: 0 !important;
}
.event-image-viewer {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 16px !important;
}
.event-image-viewer img {
  border-radius: 22px !important;
}
.city-wait-image {
  overflow: hidden !important;
  padding: 14px !important;
}
.city-wait-image img {
  border-radius: 20px !important;
}

.lucky-modal {
  max-width: min(820px, calc(100vw - 32px)) !important;
  overflow: hidden !important;
}
.lucky-event-card {
  display: grid !important;
  grid-template-columns: minmax(180px, .82fr) minmax(0, 1fr) !important;
  gap: clamp(16px, 2vw, 26px) !important;
  align-items: center !important;
  overflow: hidden !important;
  padding: clamp(14px, 2vw, 22px) !important;
}
.lucky-event-image {
  aspect-ratio: 1 / 1 !important;
  border-radius: 24px !important;
  background: var(--surface-2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 10px !important;
}
.lucky-event-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 18px !important;
}
.lucky-event-copy {
  min-width: 0 !important;
  overflow: hidden !important;
}
.lucky-event-copy h3 {
  font-size: clamp(26px, 4vw, 48px) !important;
  line-height: .98 !important;
  margin: 0 0 12px !important;
  overflow-wrap: anywhere !important;
}
.lucky-event-copy p {
  font-size: clamp(14px, 1.6vw, 17px) !important;
  line-height: 1.45 !important;
  max-height: 5.8em !important;
  overflow: hidden !important;
}
.lucky-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  margin-top: 18px !important;
}
.lucky-actions .button {
  width: auto !important;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}
.lucky-icon-button {
  width: 54px !important;
  min-width: 54px !important;
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 !important;
  border-radius: 50% !important;
}
.lucky-fav-button {
  min-width: 150px !important;
}
.lucky-catalog-button {
  flex-basis: auto !important;
}

.special-grid--children-vacation {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
  gap: 16px !important;
  align-items: stretch !important;
}
.special-card {
  min-width: 0 !important;
  isolation: isolate !important;
}
.special-card-cover {
  overflow: hidden !important;
}
.special-card--children-vacation {
  display: flex !important;
  flex-direction: column !important;
  border-radius: 26px !important;
}
.special-card--children-vacation .special-card-cover {
  height: clamp(150px, 13vw, 205px) !important;
  min-height: 0 !important;
  padding: 12px !important;
  flex: 0 0 auto !important;
}
.special-card--children-vacation .special-card-cover img,
.special-card--museum-programs .special-card-cover img,
.special-card--city-excursions .special-card-cover img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 18px !important;
}
.special-card--children-vacation .special-card-body {
  flex: 1 1 auto !important;
  min-height: 142px !important;
  padding: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  gap: 12px !important;
}
.special-card--children-vacation .special-card-body h3 {
  font-size: clamp(18px, 1.45vw, 23px) !important;
  line-height: 1.03 !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
}
.special-card--children-vacation .button {
  width: 100% !important;
  margin-top: auto !important;
}
.special-card--museum-programs .special-card-cover,
.special-card--city-excursions .special-card-cover {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 14px !important;
}
.special-card--museum-programs .special-card-cover--empty,
.special-card--city-excursions .special-card-cover--empty {
  height: 170px !important;
}
.special-card--museum-programs .special-card-body,
.special-card--city-excursions .special-card-body {
  min-width: 0 !important;
}

.special-detail--children-vacation {
  grid-template-columns: minmax(260px, 420px) minmax(0, 1fr) !important;
  align-items: start !important;
}
.special-detail--children-vacation .special-detail-media {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: min(58vh, 430px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 14px !important;
}
.special-detail--children-vacation .special-detail-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 20px !important;
}
.special-facts--vacation .special-fact-organizer {
  border-radius: 22px !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.special-fact-link,
.special-facts--vacation .special-fact-organizer strong {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
.special-fact-link {
  width: 100% !important;
  min-height: 54px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  padding: 12px 16px !important;
  border: 0 !important;
  border-top: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  text-align: left !important;
  cursor: pointer !important;
}
.special-fact-link:hover {
  background: color-mix(in srgb, var(--lime) 12%, transparent) !important;
}

@media (max-width: 760px) {
  .detail-hero--event .detail-media.event-detail-media,
  .event-image-viewer,
  .special-detail-media {
    padding: 10px !important;
  }
  .lucky-modal {
    max-width: calc(100vw - 28px) !important;
    padding: 18px !important;
  }
  .lucky-event-card {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 14px !important;
  }
  .lucky-event-image {
    width: min(100%, 260px) !important;
    margin: 0 auto !important;
  }
  .lucky-event-copy h3 {
    font-size: clamp(26px, 8vw, 34px) !important;
  }
  .lucky-actions {
    display: grid !important;
    grid-template-columns: 54px minmax(130px, 1fr) 54px 54px !important;
    justify-items: center !important;
    align-items: center !important;
  }
  .lucky-actions .button {
    width: auto !important;
    max-width: 100% !important;
  }
  .lucky-fav-button {
    width: 100% !important;
    min-width: 0 !important;
  }
  .lucky-detail-button,
  .lucky-catalog-button {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    justify-content: center !important;
  }
  .special-grid--children-vacation {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  .special-card--children-vacation .special-card-cover {
    height: 150px !important;
  }
  .special-card--children-vacation .special-card-body {
    min-height: 126px !important;
  }
  .special-card--children-vacation .special-card-body h3 {
    font-size: 18px !important;
  }
  .special-detail--children-vacation {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 480px) {
  .special-grid--children-vacation {
    grid-template-columns: 1fr !important;
  }
  .special-card--children-vacation .special-card-cover {
    height: 180px !important;
  }
}

/* Sobytie v24: universal no-crop image policy
   Every content image should be fully visible inside its allocated visual area.
   The card surface may show empty space around the image; images must not be cropped. */
.event-card__media,
.place-cover,
.place-gallery,
.detail-media,
.detail-gallery,
.gallery-grid,
.top-place-image,
.city-wait-image,
.lucky-event-image,
.special-card-cover,
.special-detail-media,
.inspire-photo,
.event-image-viewer {
  background: color-mix(in srgb, var(--surface-2) 94%, transparent) !important;
}

.event-card__media,
.place-cover,
.place-gallery,
.detail-media,
.detail-gallery,
.gallery-grid > *,
.top-place-image,
.city-wait-image,
.lucky-event-image,
.special-card-cover,
.special-detail-media,
.event-image-viewer {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.card-image,
.event-card__image,
.place-cover img,
.place-gallery__img,
.detail-media img,
.detail-gallery__img,
.gallery-grid img,
.top-place-image img,
.city-wait-image img,
.lucky-event-image img,
.special-card-cover img,
.special-detail-media img,
.event-image-viewer img,
.inspire-photo img {
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  background: transparent !important;
}

.event-card__image,
.place-cover img,
.place-gallery__img,
.detail-media img,
.detail-gallery__img,
.gallery-grid img,
.top-place-image img,
.city-wait-image img,
.lucky-event-image img,
.special-card-cover img,
.special-detail-media img,
.event-image-viewer img {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
}

/* Keep areas predictable while letting the image sit fully inside the frame. */
.event-card__media,
.special-card-cover,
.city-wait-image,
.lucky-event-image,
.special-detail-media,
.detail-media.event-detail-media,
.event-image-viewer {
  box-sizing: border-box !important;
}

.event-card__media,
.special-card-cover,
.city-wait-image,
.lucky-event-image {
  padding: 14px !important;
}

.detail-media.event-detail-media,
.special-detail-media,
.event-image-viewer {
  padding: 16px !important;
}

/* Detail event image: no cropping, no oversized hidden poster corners. */
.detail-hero--event .detail-media.event-detail-media,
.detail-hero--event .event-detail-image-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
.detail-hero--event .event-detail-image-button img {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Children-vacation cards: same behavior as event catalog posters. */
.special-card--children-vacation .special-card-cover,
.special-card--museum-programs .special-card-cover,
.special-card--city-excursions .special-card-cover {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px !important;
  overflow: hidden !important;
}
.special-card--children-vacation .special-card-cover img,
.special-card--museum-programs .special-card-cover img,
.special-card--city-excursions .special-card-cover img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Do not let legacy cover rules sneak back in through initial catalog styles. */
.event-card__image { filter: none !important; }
.gallery-grid img:first-child { grid-row: auto !important; }

/* Sobytie v25: dates + image viewer + tighter no-crop frames */
.event-card__media,
.special-card-cover,
.city-wait-image,
.lucky-event-image,
.place-cover,
.top-place-image {
  padding: 6px !important;
}

.detail-media.event-detail-media,
.special-detail-media,
.detail-gallery,
.place-gallery {
  padding: 8px !important;
}

.event-card__image,
.event-card__media > img,
.place-cover img,
.place-gallery__img,
.detail-media img,
.detail-gallery__img,
.gallery-grid img,
.top-place-image img,
.city-wait-image img,
.lucky-event-image img,
.special-card-cover img,
.special-detail-media img,
.special-detail-image-button img,
.event-detail-image-button img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.event-detail-image-button,
.special-detail-image-button {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  cursor: zoom-in !important;
}

.special-card-cover { min-height: 0 !important; }
.special-card--children-vacation .special-card-cover,
.special-card--museum-programs .special-card-cover,
.special-card--city-excursions .special-card-cover {
  padding: 6px !important;
}
.special-detail--children-vacation .special-detail-media {
  padding: 8px !important;
}

.image-viewer-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(18px, 4vw, 52px) !important;
  background: rgba(8, 9, 7, .78) !important;
  backdrop-filter: blur(14px) !important;
}

.image-viewer-stage {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  touch-action: pan-x pan-y pinch-zoom !important;
}

.image-viewer-stage img {
  width: auto !important;
  height: auto !important;
  max-width: min(96vw, 1600px) !important;
  max-height: 92dvh !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: scale(var(--viewer-zoom, 1)) !important;
  transform-origin: center center !important;
  transition: transform .16s ease !important;
  user-select: none !important;
}

.image-viewer-close,
.image-viewer-arrow,
.image-viewer-tools button,
.image-viewer-counter {
  border: 1px solid rgba(255,255,255,.35) !important;
  background: rgba(255, 253, 248, .92) !important;
  color: #12120F !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.24) !important;
  backdrop-filter: blur(14px) !important;
}

.image-viewer-close {
  position: fixed !important;
  top: clamp(14px, 3vw, 32px) !important;
  right: clamp(14px, 3vw, 32px) !important;
  width: 54px !important;
  height: 54px !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
}
.image-viewer-close svg { width: 24px !important; height: 24px !important; }

.image-viewer-arrow {
  position: fixed !important;
  top: 50% !important;
  width: 56px !important;
  height: 56px !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  transform: translateY(-50%) !important;
  cursor: pointer !important;
}
.image-viewer-arrow--prev { left: clamp(14px, 3vw, 38px) !important; }
.image-viewer-arrow--next { right: clamp(14px, 3vw, 38px) !important; }
.image-viewer-arrow svg { width: 24px !important; height: 24px !important; }

.image-viewer-tools {
  position: fixed !important;
  left: 50% !important;
  bottom: clamp(14px, 3vw, 28px) !important;
  display: flex !important;
  gap: 8px !important;
  transform: translateX(-50%) !important;
}
.image-viewer-tools button {
  min-width: 48px !important;
  height: 44px !important;
  border-radius: 999px !important;
  font: 800 15px/1 var(--font-ui) !important;
  cursor: pointer !important;
}
.image-viewer-counter {
  position: fixed !important;
  right: clamp(14px, 3vw, 32px) !important;
  bottom: clamp(14px, 3vw, 28px) !important;
  border-radius: 999px !important;
  padding: 13px 16px !important;
  font: 800 13px/1 var(--font-ui) !important;
}

@media (max-width: 720px) {
  .image-viewer-backdrop { padding: 14px !important; }
  .image-viewer-stage img { max-width: 96vw !important; max-height: 84dvh !important; }
  .image-viewer-close { width: 48px !important; height: 48px !important; }
  .image-viewer-arrow { width: 48px !important; height: 48px !important; }
  .image-viewer-tools { bottom: 12px !important; }
  .image-viewer-counter { display: none !important; }
}

.place-detail-image-button {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  cursor: zoom-in !important;
}
.place-detail-image-button img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}


/* Sobytie v26: calmer city message modal */
.city-message-modal {
  max-width: min(760px, calc(100vw - 28px)) !important;
}
.city-message-modal .modal-head {
  margin-bottom: 18px !important;
}
.city-message-modal__body {
  gap: 20px !important;
}
.city-message-modal__body p {
  font-size: clamp(24px, 3.35vw, 42px) !important;
  line-height: 1.14 !important;
  letter-spacing: -0.058em !important;
  max-width: 16em !important;
  font-weight: 650 !important;
}
.city-message-note {
  background: color-mix(in srgb, var(--surface-2) 92%, transparent) !important;
  color: var(--text-soft) !important;
  border-color: var(--line) !important;
}
@media (max-width: 720px) {
  .city-message-modal {
    max-width: calc(100vw - 22px) !important;
    border-radius: 34px !important;
  }
  .city-message-modal__body p {
    font-size: clamp(22px, 7vw, 30px) !important;
    line-height: 1.16 !important;
    letter-spacing: -0.052em !important;
  }
}

/* Sobytie v27: authenticated city quiz modal */
.overview-square--quiz {
  cursor: pointer;
}
.overview-square--quiz:hover {
  transform: translateY(-2px);
}
.city-quiz-modal {
  max-width: min(760px, calc(100vw - 28px)) !important;
}
.city-quiz-modal .modal-head h3 {
  font-size: clamp(24px, 3vw, 34px) !important;
  letter-spacing: -.06em !important;
}
.city-quiz-status {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 2px 0 16px;
}
.city-quiz-status span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 9px 12px;
  background: color-mix(in srgb, var(--surface-2) 86%, transparent);
  color: var(--text-soft);
  font: 800 12px/1 var(--font-ui);
}
.city-quiz-question h4 {
  margin: 0 0 14px;
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.08;
  letter-spacing: -.062em;
}
.city-quiz-options {
  display: grid;
  gap: 10px;
}
.city-quiz-option {
  width: 100%;
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: color-mix(in srgb, var(--surface-2) 84%, transparent);
  color: var(--text);
  padding: 14px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
  cursor: pointer;
  font: 800 14px/1.25 var(--font-ui);
  letter-spacing: -.025em;
}
.city-quiz-option span:first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}
.city-quiz-option svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}
.city-quiz-option:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--lime) 62%, transparent);
  background: color-mix(in srgb, var(--lime) 14%, var(--surface-2));
}
.city-quiz-option.is-correct {
  background: color-mix(in srgb, var(--lime) 28%, var(--surface));
  border-color: color-mix(in srgb, var(--lime) 72%, transparent);
  color: var(--text-strong);
}
.city-quiz-option.is-wrong {
  background: color-mix(in srgb, var(--coral) 16%, var(--surface));
  border-color: color-mix(in srgb, var(--coral) 58%, transparent);
}
.city-quiz-result {
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 16px;
  background: color-mix(in srgb, var(--surface-2) 88%, transparent);
}
.city-quiz-result.is-correct {
  border-color: color-mix(in srgb, var(--lime) 52%, transparent);
}
.city-quiz-result.is-wrong {
  border-color: color-mix(in srgb, var(--sand) 50%, transparent);
}
.city-quiz-result strong {
  display: block;
  font: 900 15px/1.2 var(--font-ui);
  margin-bottom: 8px;
}
.city-quiz-result p {
  margin: 0 0 9px;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.city-quiz-result small {
  display: block;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  margin-bottom: 10px;
}
.city-quiz-source {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--button-secondary-bg);
  color: var(--button-secondary-ink);
  min-height: 42px;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font: 800 13px/1 var(--font-ui);
  max-width: 100%;
}
.city-quiz-source svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}
.city-quiz-actions,
.city-quiz-auth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.city-quiz-empty,
.city-quiz-loading,
.city-quiz-error {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  background: color-mix(in srgb, var(--surface-2) 88%, transparent);
  color: var(--text-soft);
}
.city-quiz-empty p,
.city-quiz-error { margin: 0; line-height: 1.5; }
.city-quiz-modal--auth .section-copy { max-width: 44em; }
@media (max-width: 720px) {
  .city-quiz-modal {
    max-width: calc(100vw - 20px) !important;
    border-radius: 30px !important;
  }
  .city-quiz-modal .modal-head h3 {
    font-size: 24px !important;
  }
  .city-quiz-question h4 {
    font-size: 21px;
  }
  .city-quiz-option {
    min-height: 50px;
    padding: 12px 13px;
    font-size: 13px;
  }
  .city-quiz-actions .button,
  .city-quiz-auth-actions .button {
    flex: 1 1 auto;
  }
}

/* Sobytie v28: quiz hint button */
.city-quiz-hint-button {
  width: 100%;
  min-height: 56px;
  border: 1px dashed color-mix(in srgb, var(--lime) 45%, var(--line));
  border-radius: 20px;
  background: color-mix(in srgb, var(--lime) 10%, var(--surface-2));
  color: var(--text);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  text-align: left;
}
.city-quiz-hint-button:hover:not(:disabled) {
  background: color-mix(in srgb, var(--lime) 17%, var(--surface-2));
  border-color: color-mix(in srgb, var(--lime) 70%, transparent);
}
.city-quiz-hint-button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}
.city-quiz-hint-button b {
  display: block;
  font: 900 13px/1.15 var(--font-ui);
  letter-spacing: -.025em;
}
.city-quiz-hint-button small {
  display: block;
  margin-top: 3px;
  color: var(--text-soft);
  font: 700 11px/1.25 var(--font-ui);
  letter-spacing: -.01em;
}
.city-quiz-hint-button.is-taken {
  border-style: solid;
  background: color-mix(in srgb, var(--surface-3) 86%, transparent);
}
@media (max-width: 720px) {
  .city-quiz-hint-button {
    min-height: 52px;
    padding: 11px 12px;
  }
}

/* Sobytie v29: auth form polish + lucky date badge */
.auth-form--full {
  gap: 14px !important;
}
.auth-form-head {
  display: grid;
  gap: 8px;
  margin-bottom: 4px;
}
.auth-form-head h3 {
  margin: 0 !important;
}
.auth-form-head p,
.auth-help {
  margin: 0;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.45;
}
.auth-field {
  display: grid !important;
  grid-template-columns: 110px 1fr;
  align-items: center;
  min-height: 58px;
  padding: 0 18px !important;
}
.auth-field span {
  color: var(--text-soft);
  font-size: 13px;
}
.auth-field input {
  font-size: 16px;
  min-width: 0;
}
.auth-actions-main,
.auth-actions-extra {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.auth-actions-main .button,
.auth-actions-extra .button {
  width: 100%;
  justify-content: center;
}
.auth-help {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--glass-soft);
}
.auth-message {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-2) 82%, transparent);
}
.lucky-event-image {
  position: relative !important;
}
.lucky-date-badge {
  position: absolute !important;
  left: 12px !important;
  top: 12px !important;
  z-index: 3 !important;
  box-shadow: var(--soft-shadow);
  pointer-events: none;
}
@media (max-width: 760px) {
  .auth-card { padding: 18px !important; }
  .auth-field {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 10px 16px !important;
  }
  .auth-actions-main,
  .auth-actions-extra {
    grid-template-columns: 1fr;
  }
  .lucky-date-badge {
    width: 64px !important;
    height: 78px !important;
    left: 8px !important;
    top: 8px !important;
  }
}

/* Sobytie v30: simplified auth while SMTP is being configured */
.auth-form--simple .auth-actions-main {
  grid-template-columns: 1fr 1fr;
}
.auth-form--simple .auth-help strong {
  color: var(--text);
}
@media (max-width: 720px) {
  .auth-form--simple .auth-actions-main {
    grid-template-columns: 1fr;
  }
  .auth-form--simple .auth-field {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 4px;
    padding: 12px 16px !important;
  }
}

/* Sobytie v31: separated auth + editable profile */
.auth-shell {
  min-height: calc(100vh - 170px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 520px);
  gap: clamp(22px, 5vw, 80px);
  align-items: center;
  padding: clamp(24px, 5vw, 70px) 0;
}
.auth-side-note .section-title {
  max-width: 760px;
}
.auth-card--standalone {
  padding: clamp(22px, 3vw, 34px) !important;
  border-radius: 38px !important;
}
.link-button {
  border: 0;
  background: transparent;
  color: var(--text-strong);
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
  font: inherit;
  padding: 0;
}
.auth-card--standalone .auth-actions-main {
  grid-template-columns: 1fr;
}
.profile-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr);
  gap: 18px;
  align-items: start;
}
.profile-card {
  border: 1px solid var(--line);
  border-radius: 34px;
  background: color-mix(in srgb, var(--surface) 80%, transparent);
  box-shadow: var(--soft-shadow);
  padding: clamp(18px, 2.2vw, 26px);
}
.profile-card h3 {
  margin: 10px 0 0;
  font: 650 clamp(27px, 3vw, 44px)/.95 var(--font-display);
  letter-spacing: -.07em;
  color: var(--text-strong);
}
.profile-card p { color: var(--text-soft); line-height: 1.5; }
.account-profile-head {
  align-items: center;
}
.profile-avatar-block {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 22px;
}
.profile-avatar {
  width: 112px;
  height: 112px;
  border-radius: 34px;
  border: 1px solid var(--line);
  background: radial-gradient(circle at 25% 18%, color-mix(in srgb, var(--lime) 34%, transparent), transparent 48%), var(--glass-soft);
  display: grid;
  place-items: center;
  overflow: hidden;
  flex: 0 0 auto;
}
.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.profile-avatar svg {
  width: 44px;
  height: 44px;
  stroke-width: 2.2;
}
.profile-form {
  display: grid;
  gap: 12px;
}
.profile-field {
  display: grid !important;
  grid-template-columns: 150px 1fr;
  align-items: center;
  min-height: 58px;
  padding: 0 18px !important;
}
.profile-field span {
  color: var(--text-soft);
  font-size: 13px;
}
.profile-field input,
.profile-field select {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: 700 16px/1.2 var(--font-body);
}
.profile-field input[type="file"] {
  font-weight: 600;
  color: var(--text-soft);
}
.profile-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.profile-card--points .points-total {
  margin: 20px 0 18px;
}
@media (max-width: 980px) {
  .auth-shell,
  .profile-dashboard {
    grid-template-columns: 1fr;
  }
  .auth-shell {
    align-items: start;
  }
}
@media (max-width: 720px) {
  .auth-shell { padding-top: 18px; }
  .profile-avatar-block {
    align-items: flex-start;
  }
  .profile-avatar {
    width: 88px;
    height: 88px;
    border-radius: 28px;
  }
  .profile-field {
    grid-template-columns: 1fr;
    gap: 4px;
    min-height: auto;
    padding: 12px 16px !important;
  }
  .profile-actions .button { width: 100%; }
  .account-profile-head { align-items: flex-start; }
  .account-profile-head .button { width: 100%; justify-content: center; }
}

/* Sobytie v32: centered separated auth screens */
.auth-shell--centered {
  min-height: calc(100vh - 170px);
  display: grid !important;
  grid-template-columns: minmax(320px, 620px) !important;
  justify-content: center;
  align-items: center;
  padding: clamp(28px, 7vw, 96px) 0 !important;
}
.auth-card--centered {
  width: min(100%, 620px);
  margin-inline: auto;
}
.auth-screen-copy {
  margin: 0 0 22px;
  color: var(--text-soft);
  font-size: clamp(17px, 1.35vw, 22px);
  line-height: 1.35;
  max-width: 520px;
}
.auth-card--centered .auth-form-head p { display: none !important; }
.auth-card--centered .auth-form-head {
  margin-bottom: 14px;
}
.auth-card--centered .auth-form-head h3 {
  font-size: clamp(40px, 4.3vw, 64px) !important;
  line-height: .92 !important;
}
@media (max-width: 720px) {
  .auth-shell--centered {
    min-height: auto;
    padding: 18px 0 90px !important;
    align-items: start;
  }
  .auth-card--centered .auth-form-head h3 {
    font-size: clamp(34px, 12vw, 48px) !important;
  }
  .auth-screen-copy {
    font-size: 16px;
  }
}

/* Sobytie v33: живой блок пользовательских фото и гостевой квиз */
.inspire-photo {
  display: grid;
  grid-template-rows: auto 1fr;
}
.inspire-photo-image {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: var(--surface-2);
  cursor: pointer;
}
.inspire-photo-image img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}
.inspire-photo-body {
  display: grid;
  gap: 8px;
  padding: 14px;
}
.inspire-photo-title {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-strong);
  text-align: left;
  font: 900 17px/1.05 var(--font-display);
  letter-spacing: -.045em;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.inspire-photo-body p {
  margin: 0;
  color: var(--text-soft);
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.inspire-photo-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.15;
}
.inspire-photo-meta button,
.author-link {
  border: 0;
  background: transparent;
  color: var(--text-strong);
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  font: 800 12px/1.15 var(--font-ui);
  text-align: left;
}
.author-link {
  display: inline-flex;
  margin-top: 8px;
  color: var(--text-soft);
}
.inspire-photo-meta time {
  white-space: nowrap;
}
.photo-modal .modal-head h3,
.author-gallery-modal .modal-head h3 {
  font-size: clamp(28px, 4vw, 48px) !important;
  letter-spacing: -.07em !important;
}
.photo-comment {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px 14px;
  background: color-mix(in srgb, var(--surface-2) 88%, transparent);
}
.photo-comment p {
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-soft);
  overflow-wrap: anywhere;
}
.photo-comment div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  color: var(--muted);
  font-size: 11px;
}
.author-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.author-gallery-grid button {
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  background: var(--surface-2);
  cursor: pointer;
  padding: 0;
  color: var(--text-strong);
  text-align: left;
}
.author-gallery-grid img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}
.author-gallery-grid span {
  display: block;
  padding: 10px 12px;
  font: 900 13px/1.1 var(--font-display);
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}
.city-quiz-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
@media (max-width: 720px) {
  .inspire-photo-body { padding: 12px; }
  .inspire-photo-title { font-size: 16px; }
  .author-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Sobytie v35: calmer lucky/headliner cards, quiz copy cleanup, share buttons on details */
.lucky-event-copy h3 {
  font-size: clamp(20px, 2.05vw, 30px) !important;
  line-height: 1 !important;
  letter-spacing: -.065em !important;
  max-width: 14em;
}
.lucky-event-copy p,
.city-wait-info p {
  display: none !important;
}
.lucky-actions {
  grid-template-columns: auto minmax(150px, max-content) auto minmax(130px, max-content) minmax(180px, max-content) !important;
}
.lucky-detail-button {
  min-width: 130px;
}
.city-wait-info h3 {
  font-size: clamp(22px, 2.3vw, 34px) !important;
  line-height: 1 !important;
  letter-spacing: -.065em !important;
  max-width: 15em;
}
.city-wait-info {
  justify-content: center;
}
.city-quiz-modal .modal-head h3 {
  display: none !important;
}
.city-quiz-modal .modal-head .pill.hot {
  font-size: clamp(15px, 1.4vw, 18px);
  letter-spacing: -.02em;
}
.city-quiz-note {
  margin: 16px 0 0 !important;
  max-width: 34em !important;
  font-size: clamp(16px, 1.8vw, 20px) !important;
  line-height: 1.35 !important;
}
.city-quiz-question h4 {
  font-size: clamp(30px, 4.2vw, 58px) !important;
  max-width: 13em;
}
.city-quiz-result p {
  display: none !important;
}
.city-quiz-result small {
  display: block;
  margin-top: 12px;
}
.city-quiz-result-actions .city-quiz-source {
  min-height: 48px;
}
@media (max-width: 720px) {
  .lucky-event-copy h3 { font-size: clamp(24px, 9vw, 34px) !important; }
  .lucky-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
  }
  .lucky-fav-button,
  .lucky-detail-button,
  .lucky-catalog-button {
    grid-column: span 3;
    width: 100%;
  }
  .city-wait-info h3 { font-size: clamp(24px, 8vw, 34px) !important; }
  .city-quiz-question h4 { font-size: clamp(28px, 9vw, 42px) !important; }
  .city-quiz-note { font-size: 16px !important; }
}

/* Sobytie v37: quiz typography, gallery polish, robust photo cards */
.city-quiz-modal {
  max-height: calc(100dvh - 28px) !important;
  overflow: auto !important;
}
.city-quiz-modal .modal-head .pill.hot {
  font-size: clamp(13px, 1.1vw, 16px) !important;
}
.city-quiz-note {
  font-size: clamp(13px, 1.25vw, 16px) !important;
  margin-top: 10px !important;
}
.city-quiz-question h4 {
  font-size: clamp(18px, 2.25vw, 29px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.055em !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: auto !important;
}
.city-quiz-hint-button {
  text-decoration: none !important;
}
.city-quiz-hint-button[aria-disabled="true"] {
  pointer-events: none !important;
  opacity: .65 !important;
}
.inspire-photo-image {
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
}
.inspire-photo-image img,
.inspire-photo > img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.photo-like-badge {
  right: 12px !important;
  bottom: 12px !important;
  width: 42px !important;
  height: 42px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.photo-like-badge span,
.photo-like-badge [data-icon] {
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.photo-like-badge svg {
  width: 19px !important;
  height: 19px !important;
  margin: 0 !important;
}
.author-gallery-grid img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.image-viewer-stage img {
  object-fit: contain !important;
}
@media (max-width: 720px) {
  .city-quiz-question h4 {
    font-size: clamp(18px, 5.2vw, 24px) !important;
    max-width: 100% !important;
  }
  .city-quiz-modal { max-height: calc(100dvh - 18px) !important; }
}

/* v38: admin panel */
.account-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.admin-head { align-items: flex-start; }
.admin-denied { max-width: 980px; }
.admin-alert {
  margin: 18px 0;
  padding: 18px 22px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: color-mix(in srgb, var(--accent) 18%, var(--card));
  font-weight: 700;
}
.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0;
}
.admin-stat {
  min-height: 128px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--card);
  box-shadow: var(--shadow-soft);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.admin-stat span {
  color: var(--muted);
  font-weight: 700;
}
.admin-stat strong {
  font-family: var(--font-display);
  font-size: clamp(34px, 5vw, 72px);
  line-height: .85;
}
.admin-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
}
.admin-panel {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 34px;
  background: var(--card);
  box-shadow: var(--shadow-soft);
}
.admin-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.admin-panel-head h3 {
  margin: 12px 0 0;
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 46px);
  line-height: .95;
}
.admin-panel-head small { color: var(--muted); font-weight: 700; }
.admin-list {
  display: grid;
  gap: 12px;
}
.admin-item {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: color-mix(in srgb, var(--card) 76%, transparent);
}
.admin-thumb,
.admin-thumb--empty,
.admin-comment-icon {
  width: 132px;
  min-height: 132px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--surface);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.admin-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.admin-comment-icon svg,
.admin-thumb--empty svg { width: 34px; height: 34px; }
.admin-item-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.admin-item-copy h4 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 30px);
  line-height: 1;
  word-break: break-word;
}
.admin-item-copy p {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.admin-item-copy small { color: var(--muted); font-weight: 700; }
.admin-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: auto;
}
@media (max-width: 980px) {
  .admin-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .account-head-actions { width: 100%; justify-content: stretch; }
  .account-head-actions .button { flex: 1 1 auto; }
  .admin-stats-grid { grid-template-columns: 1fr 1fr; }
  .admin-stat { min-height: 96px; padding: 16px; border-radius: 22px; }
  .admin-panel { padding: 14px; border-radius: 26px; }
  .admin-item { grid-template-columns: 96px minmax(0, 1fr); border-radius: 22px; }
  .admin-thumb, .admin-thumb--empty, .admin-comment-icon { width: 96px; min-height: 96px; border-radius: 18px; }
}

/* Sobytie v43: личный кабинет, партнёры, розыгрыши и правовые документы */
.page-back {
  margin: 0 0 22px;
}
.profile-home-layout,
.profile-edit-layout {
  display: grid;
  gap: 18px;
}
.profile-home-layout {
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  align-items: start;
}
.profile-hero-card,
.profile-menu-card,
.profile-edit-card,
.legal-document,
.partner-card,
.giveaway-card {
  border: 1px solid var(--line);
  border-radius: 36px;
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  box-shadow: var(--soft-shadow);
}
.profile-hero-card {
  padding: clamp(18px, 2.4vw, 28px);
  display: grid;
  gap: 18px;
  min-height: 280px;
  background:
    radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--lime) 20%, transparent), transparent 34%),
    color-mix(in srgb, var(--surface) 84%, transparent);
}
.profile-identity-card {
  display: flex;
  align-items: center;
  gap: 18px;
}
.profile-avatar--round {
  width: 116px;
  height: 116px;
  border-radius: 50%;
}
.profile-identity-copy h2 {
  margin: 4px 0 8px;
  font: 650 clamp(34px, 4vw, 58px)/.95 var(--font-display);
  letter-spacing: -.075em;
  color: var(--text-strong);
}
.profile-identity-copy p {
  margin: 4px 0;
  color: var(--text-soft);
  font-weight: 650;
}
.profile-points-mini {
  display: grid;
  gap: 8px;
  align-content: end;
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: 18px;
  background: var(--glass-soft);
}
.profile-points-mini strong {
  font: 750 clamp(52px, 7vw, 92px)/.9 var(--font-display);
  letter-spacing: -.08em;
  color: var(--text-strong);
}
.profile-points-mini small {
  max-width: 520px;
  color: var(--text-soft);
  line-height: 1.45;
}
.profile-menu-card {
  padding: 8px;
  display: grid;
  gap: 0;
  overflow: hidden;
}
.profile-menu-row,
.legal-row {
  width: 100%;
  min-height: 76px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  text-align: left;
}
.profile-menu-row:last-child,
.legal-row:last-child { border-bottom: 0; }
.profile-menu-row:hover,
.legal-row:hover {
  background: var(--glass-soft);
}
.profile-menu-row strong,
.legal-row strong {
  display: block;
  font-size: clamp(18px, 1.5vw, 22px);
  letter-spacing: -.04em;
  color: var(--text-strong);
}
.profile-menu-row small,
.legal-row small {
  display: block;
  margin-top: 5px;
  color: var(--text-soft);
  line-height: 1.35;
}
.profile-menu-row i,
.legal-row i {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--text-soft);
  background: var(--glass-soft);
  flex: 0 0 auto;
}
.profile-menu-row--admin { background: color-mix(in srgb, var(--lime) 10%, transparent); }
.profile-card--compact {
  padding: clamp(18px, 2.4vw, 26px);
}
.profile-card--compact h3,
.section-head--flat h3 {
  margin: 10px 0 12px;
  font: 650 clamp(25px, 2.6vw, 38px)/1 var(--font-display);
  letter-spacing: -.065em;
  color: var(--text-strong);
}
.profile-exit-row {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  padding: 16px 0 0;
}
.profile-edit-layout {
  grid-template-columns: minmax(0, .75fr) minmax(420px, 1.25fr);
  align-items: start;
}
.profile-edit-intro {
  position: sticky;
  top: 110px;
  padding-top: 18px;
}
.profile-page-head {
  align-items: end;
  margin-bottom: 22px;
}
.partner-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.partner-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  min-height: 300px;
}
.partner-card-visual {
  min-height: 100%;
  background:
    radial-gradient(circle at 28% 22%, color-mix(in srgb, var(--lime) 38%, transparent), transparent 36%),
    var(--surface-2);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.partner-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.partner-card-visual svg {
  width: 54px;
  height: 54px;
  opacity: .65;
}
.partner-card-body {
  padding: 22px;
  display: grid;
  gap: 12px;
  align-content: start;
}
.partner-card-body h3,
.giveaway-copy h3 {
  margin: 0;
  font: 650 clamp(24px, 2.45vw, 36px)/1.02 var(--font-display);
  letter-spacing: -.065em;
  color: var(--text-strong);
}
.partner-card-body p,
.giveaway-copy p {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.5;
}
.partner-name {
  font-weight: 850;
  color: var(--text) !important;
}
.partner-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.partner-contact {
  display: grid;
  gap: 6px;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.35;
}
.giveaway-list {
  display: grid;
  gap: 16px;
}
.giveaway-card {
  display: grid;
  grid-template-columns: minmax(0, 190px) minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px;
}
.giveaway-card.is-muted { opacity: .62; }
.giveaway-image {
  border: 0;
  padding: 0;
  background: var(--surface-2);
  border-radius: 26px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.giveaway-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.giveaway-copy {
  display: grid;
  gap: 11px;
}
.giveaway-action {
  display: flex;
  justify-content: flex-end;
}
.legal-list {
  border: 1px solid var(--line);
  border-radius: 32px;
  background: color-mix(in srgb, var(--surface) 80%, transparent);
  overflow: hidden;
  box-shadow: var(--soft-shadow);
}
.legal-document {
  padding: clamp(22px, 4vw, 48px);
  max-width: 980px;
  margin-inline: auto;
}
.legal-document .section-title {
  max-width: 900px;
  margin-bottom: 14px;
}
.legal-content {
  margin-top: 26px;
  display: grid;
  gap: 14px;
  color: var(--text);
}
.legal-content p {
  margin: 0;
  color: var(--text-soft);
  font-size: clamp(15px, 1.12vw, 18px);
  line-height: 1.72;
}
@media (max-width: 1100px) {
  .profile-home-layout,
  .profile-edit-layout,
  .partner-grid { grid-template-columns: 1fr; }
  .profile-edit-intro { position: static; }
}
@media (max-width: 760px) {
  .profile-identity-card { align-items: flex-start; }
  .profile-avatar--round { width: 88px; height: 88px; }
  .profile-menu-row,
  .legal-row { min-height: 68px; padding: 15px 16px; }
  .profile-menu-row small { display: none; }
  .partner-card { grid-template-columns: 1fr; }
  .partner-card-visual { min-height: 220px; }
  .giveaway-card { grid-template-columns: 1fr; align-items: stretch; }
  .giveaway-action .button { width: 100%; }
  .profile-page-head { align-items: start; }
}

/* Sobytie v44: registration legal consent + top places button repair */
.auth-consent {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: color-mix(in srgb, var(--surface-2) 72%, transparent);
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.42;
  letter-spacing: -.01em;
}
.auth-consent input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--lime);
}
.auth-consent a {
  color: var(--text-strong);
  font-weight: 850;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.auth-consent a:hover { color: color-mix(in srgb, var(--lime) 72%, var(--text-strong)); }

.top-place-tile {
  grid-template-rows: auto minmax(86px, auto) auto !important;
  align-content: start !important;
}
.top-place-image {
  min-height: 250px !important;
  max-height: 250px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px !important;
}
.top-place-image img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}
.top-place-image-fallback,
.top-place-image > span:not([hidden]) {
  width: 64px !important;
  height: 64px !important;
  display: grid !important;
  place-items: center !important;
  color: var(--muted) !important;
}
.top-place-image-fallback svg,
.top-place-image > span:not([hidden]) svg {
  width: 44px !important;
  height: 44px !important;
}
.top-place-actions {
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  margin-top: auto !important;
}
.top-place-actions .button {
  width: auto !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  aspect-ratio: auto !important;
}
.top-place-actions .button.secondary {
  min-width: 74px !important;
  padding: 0 14px !important;
}
.top-place-actions .button.hot {
  min-width: 118px !important;
}
@media (max-width: 560px) {
  .top-place-image { min-height: 210px !important; max-height: 210px !important; }
  .top-place-actions { flex-wrap: wrap !important; }
  .top-place-actions .button { flex: 0 1 auto !important; }
}

/* Sobytie v46: museum collection as a designed list, not another card grid */
.museum-program-list {
  display: grid !important;
  gap: 12px !important;
  margin-top: 18px !important;
}
.museum-program-row {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: clamp(14px, 2vw, 26px);
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 34px;
  background:
    radial-gradient(circle at 4% 8%, rgba(216,255,79,.22), transparent 26%),
    radial-gradient(circle at 95% 15%, rgba(187,176,255,.16), transparent 30%),
    color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: var(--soft-shadow);
  padding: clamp(16px, 2vw, 26px);
  cursor: pointer;
  min-width: 0;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.museum-program-row:hover {
  transform: translateY(-2px);
  border-color: var(--line-strong);
  box-shadow: var(--shadow);
}
.museum-program-row:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--lime) 70%, white);
  outline-offset: 4px;
}
.museum-program-row__index {
  width: 64px;
  height: 64px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  background: var(--glass-soft);
  border: 1px solid var(--line);
  color: var(--text-soft);
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1;
  letter-spacing: -.08em;
}
.museum-program-row__main {
  min-width: 0;
  display: grid;
  gap: 10px;
}
.museum-program-row__top,
.museum-program-row__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.museum-program-row__soft,
.museum-program-row__meta span {
  border: 1px solid var(--line);
  background: var(--glass-soft);
  color: var(--text-soft);
  border-radius: 999px;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  font-weight: 750;
  font-size: 12px;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.museum-program-row h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(24px, 2.2vw, 38px);
  line-height: .98;
  letter-spacing: -.07em;
  overflow-wrap: anywhere;
}
.museum-program-row p {
  margin: 0;
  color: var(--text-soft);
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 1.42;
  max-width: 880px;
  overflow-wrap: anywhere;
}
.museum-program-row__button {
  width: 54px;
  height: 54px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text);
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: var(--soft-shadow);
  transition: transform .18s ease, background .18s ease;
}
.museum-program-row__button:hover {
  transform: translateX(2px);
  background: var(--lime);
}
.museum-program-row__button span[data-icon] {
  width: 22px;
  height: 22px;
}
@media (max-width: 760px) {
  .museum-program-row {
    grid-template-columns: 46px minmax(0, 1fr);
    padding: 16px;
    border-radius: 28px;
    gap: 12px;
  }
  .museum-program-row__index {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    font-size: 22px;
  }
  .museum-program-row__button {
    grid-column: 2;
    justify-self: start;
    width: auto;
    min-width: 116px;
    height: 44px;
    padding: 0 18px;
  }
  .museum-program-row__button::before {
    content: 'Подробнее';
    margin-right: 8px;
    font-weight: 850;
  }
  .museum-program-row h3 {
    font-size: clamp(22px, 7vw, 30px);
  }
  .museum-program-row p {
    font-size: 14px;
  }
}

/* Sobytie v47: roomier overview, cleaner museum list/detail, resilient place teasers */
#screen-overview .overview-board {
  margin-top: clamp(18px, 2.2vw, 34px) !important;
  margin-bottom: clamp(56px, 6vw, 92px) !important;
}
#screen-overview .city-life-section {
  margin-top: clamp(56px, 6vw, 88px) !important;
  margin-bottom: clamp(54px, 5.6vw, 86px) !important;
}
#screen-overview .inspire-section {
  margin-top: clamp(56px, 5.8vw, 86px) !important;
  margin-bottom: clamp(58px, 6vw, 92px) !important;
}
#screen-overview .top-places-section {
  margin-top: clamp(60px, 6vw, 96px) !important;
}
#screen-overview .section-head {
  margin-bottom: clamp(18px, 2.2vw, 30px) !important;
}
#screen-overview .section-title {
  letter-spacing: -.075em;
}
#screen-overview .city-life-grid {
  gap: clamp(18px, 2vw, 30px) !important;
}
#screen-overview .city-life-card {
  min-height: clamp(150px, 14vw, 210px) !important;
}
@media (max-width: 620px) {
  #screen-overview .overview-board,
  #screen-overview .city-life-section,
  #screen-overview .inspire-section,
  #screen-overview .top-places-section {
    margin-top: 34px !important;
    margin-bottom: 38px !important;
  }
  #screen-overview .city-life-grid { gap: 12px !important; }
  #screen-overview .city-life-card { min-height: 134px !important; }
}

/* Top places: use background image so broken remote files do not show browser's broken-image icon. */
.top-place-image {
  position: relative !important;
  overflow: hidden !important;
}
.top-place-image .top-place-bg {
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  display: block !important;
  border-radius: 22px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}
.top-place-image .top-place-image-fallback {
  width: 72px !important;
  height: 72px !important;
  display: grid !important;
  place-items: center !important;
  color: color-mix(in srgb, var(--text-soft) 78%, transparent) !important;
}
.top-place-image .top-place-image-fallback svg {
  width: 46px !important;
  height: 46px !important;
}

/* Event meta pills: allow long labels like “дедлайн” without cutting letters. */
.event-card__info-row span,
.city-wait-meta span,
.detail-inline-meta span {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  width: auto !important;
  min-width: max-content !important;
  max-width: 100% !important;
}
.event-card__info-row span:first-child,
.city-wait-meta span:first-child,
.detail-inline-meta span:first-child {
  padding-left: 14px !important;
  padding-right: 14px !important;
}

/* Museum list: lighter, more editorial; secondary schedule/price stay on detail page. */
.museum-program-list {
  gap: clamp(14px, 1.6vw, 22px) !important;
}
.museum-program-row {
  grid-template-columns: 58px minmax(0, 1fr) auto !important;
  align-items: stretch !important;
  padding: clamp(18px, 2.1vw, 30px) !important;
  border-radius: 32px !important;
}
.museum-program-row__index {
  width: 48px !important;
  height: 48px !important;
  border-radius: 18px !important;
  font-size: 23px !important;
  align-self: start !important;
}
.museum-program-row__main {
  align-content: center !important;
  gap: 12px !important;
}
.museum-program-row__top {
  gap: 8px !important;
  order: -1;
}
.museum-program-row__soft {
  min-height: 30px !important;
  padding: 6px 11px !important;
  font-size: 12px !important;
  font-weight: 760 !important;
}
.museum-program-row h3 {
  font-size: clamp(23px, 2vw, 34px) !important;
  line-height: 1.02 !important;
  max-width: 920px !important;
}
.museum-program-row p {
  font-size: clamp(13px, 1vw, 16px) !important;
  line-height: 1.44 !important;
  max-width: 820px !important;
}
.museum-program-row__meta {
  display: none !important;
}
.museum-program-row__button {
  align-self: center !important;
}
@media (max-width: 760px) {
  .museum-program-row {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 18px !important;
    border-radius: 28px !important;
  }
  .museum-program-row__index {
    display: none !important;
  }
  .museum-program-row__top {
    align-items: flex-start !important;
  }
  .museum-program-row__soft,
  .museum-program-row__top .pill {
    font-size: 11px !important;
    padding: 7px 10px !important;
  }
  .museum-program-row h3 {
    font-size: clamp(26px, 8.2vw, 36px) !important;
    letter-spacing: -.078em !important;
  }
  .museum-program-row p {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }
  .museum-program-row__button {
    grid-column: auto !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: 48px !important;
    border-radius: 999px !important;
  }
}

/* Museum detail: no empty picture frame, full-width composition. */
.special-detail--museum-programs.special-detail--no-media {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: clamp(22px, 3.3vw, 48px) !important;
  background:
    radial-gradient(circle at 6% 8%, color-mix(in srgb, var(--lime) 20%, transparent), transparent 28%),
    radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--violet) 14%, transparent), transparent 32%),
    color-mix(in srgb, var(--surface) 88%, transparent) !important;
}
.special-detail--museum-programs.special-detail--no-media .special-detail-content {
  max-width: 1040px !important;
  margin: 0 auto !important;
}
.special-detail--museum-programs.special-detail--no-media .special-detail-content h1 {
  font-size: clamp(36px, 5vw, 72px) !important;
  line-height: .96 !important;
  max-width: 980px !important;
}
.special-detail--museum-programs.special-detail--no-media .special-facts {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.special-detail--museum-programs.special-detail--no-media .detail-description {
  max-width: 880px !important;
  font-size: clamp(15px, 1.12vw, 18px) !important;
  line-height: 1.62 !important;
}
@media (max-width: 820px) {
  .special-detail--museum-programs.special-detail--no-media {
    padding: 20px !important;
    border-radius: 32px !important;
  }
  .special-detail--museum-programs.special-detail--no-media .special-facts {
    grid-template-columns: 1fr !important;
  }
  .special-detail--museum-programs.special-detail--no-media .special-detail-content h1 {
    font-size: clamp(34px, 10vw, 48px) !important;
  }
}

/* Sobytie v48: partner offers catalogue and detail */
.partners-page-head {
  margin-top: clamp(18px, 3vw, 42px);
  margin-bottom: clamp(28px, 4vw, 56px);
  padding-bottom: clamp(8px, 1vw, 16px);
}
.partner-grid--offers {
  gap: clamp(28px, 3.5vw, 54px);
  align-items: stretch;
}
.partner-offer-card {
  grid-template-columns: minmax(230px, .95fr) minmax(0, 1.2fr);
  min-height: clamp(330px, 30vw, 430px);
  border-radius: clamp(34px, 4vw, 54px);
}
.partner-offer-card .partner-card-visual {
  min-height: 320px;
}
.partner-offer-card .partner-card-visual img {
  object-fit: cover;
}
.partner-offer-card .partner-card-body {
  padding: clamp(24px, 3vw, 42px);
  gap: clamp(14px, 1.6vw, 20px);
  align-content: center;
}
.partner-offer-card .partner-card-body h3 {
  font-size: clamp(30px, 3.2vw, 54px);
  line-height: .95;
  max-width: 720px;
}
.partner-offer-description {
  font-size: clamp(15px, 1.05vw, 18px);
  line-height: 1.55;
  max-width: 760px;
}
.partner-meta--offer .pill {
  min-height: 38px;
  padding-inline: 16px;
  font-size: clamp(13px, .95vw, 16px);
  white-space: nowrap;
}
.partner-detail {
  grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
}
.partner-detail-media {
  min-height: clamp(420px, 48vw, 660px);
}
.partner-detail-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.partner-detail-content {
  align-content: start;
  gap: clamp(16px, 1.5vw, 24px);
}
.partner-detail-info {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.partner-detail-info div {
  border: 1px solid var(--line);
  border-radius: 26px;
  background: var(--glass-soft);
  padding: 16px 18px;
  display: grid;
  gap: 6px;
}
.partner-detail-info span {
  color: var(--text-soft);
  font-size: 14px;
}
.partner-detail-info strong {
  color: var(--text-strong);
  font-size: clamp(17px, 1.25vw, 22px);
  letter-spacing: -.035em;
}
.partner-detail-contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--text-soft);
}
.partner-detail-contacts span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 10px 14px;
  background: var(--glass-soft);
}
.partner-points-warning {
  margin: 0;
  border: 1px dashed color-mix(in srgb, var(--lime) 60%, var(--line));
  border-radius: 22px;
  padding: 14px 16px;
  color: var(--text-soft);
  background: color-mix(in srgb, var(--lime) 8%, transparent);
}
@media (max-width: 1100px) {
  .partner-offer-card,
  .partner-detail { grid-template-columns: 1fr; }
  .partner-offer-card .partner-card-visual { min-height: 280px; }
  .partner-detail-media { min-height: 360px; }
}
@media (max-width: 760px) {
  .partners-page-head { margin-bottom: 28px; }
  .partner-grid--offers { gap: 22px; }
  .partner-offer-card {
    border-radius: 32px;
    min-height: unset;
  }
  .partner-offer-card .partner-card-visual {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .partner-offer-card .partner-card-body {
    padding: 20px;
    align-content: start;
  }
  .partner-offer-card .partner-card-body h3 {
    font-size: clamp(28px, 9vw, 40px);
  }
  .partner-meta--offer .pill { font-size: 13px; min-height: 34px; }
  .partner-detail-info { grid-template-columns: 1fr; }
  .partner-detail-media { min-height: 0; aspect-ratio: 4 / 3; }
}

/* Sobytie v49: quieter auth, chevron carousels, lighter overview galleries */
.auth-card--centered .auth-form-head h3,
.auth-form-head h3:empty {
  display: none !important;
}
.auth-card--centered .auth-form-head {
  margin-bottom: 10px !important;
}
.auth-card--centered .auth-form-head .pill {
  width: 100% !important;
  justify-content: flex-start !important;
}

.city-wait-head .pill,
.city-wait-controls,
.city-wait-all-events {
  display: none !important;
}
.city-wait-panel {
  gap: clamp(14px, 1.6vw, 22px) !important;
}
.city-wait-card--compact {
  grid-template-columns: minmax(240px, 1fr) minmax(210px, .58fr) !important;
}
.city-wait-card--compact .city-wait-image {
  min-height: clamp(260px, 30vw, 430px) !important;
  border-right: 1px solid var(--line) !important;
}
.city-wait-card--compact .city-wait-info {
  align-content: center !important;
  justify-items: stretch !important;
  gap: clamp(12px, 1.4vw, 18px) !important;
}
.city-wait-card--compact .city-wait-info h3,
.city-wait-card--compact .city-wait-info p {
  display: none !important;
}
.city-wait-card--compact .city-wait-meta {
  justify-content: flex-start !important;
}
.city-wait-card--compact .city-wait-info .button {
  width: 100% !important;
  max-width: 320px !important;
}
.city-wait-slide-arrow,
.carousel-nav {
  position: absolute;
  z-index: 8;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  color: var(--text-strong);
  display: grid;
  place-items: center;
  box-shadow: 0 12px 36px rgba(0,0,0,.13);
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.city-wait-slide-arrow:hover,
.carousel-nav:hover {
  transform: translateY(-50%) scale(1.04);
  background: var(--lime);
  border-color: color-mix(in srgb, var(--lime) 75%, #111);
}
.city-wait-slide-arrow svg,
.carousel-nav svg {
  width: 25px;
  height: 25px;
  stroke-width: 2.4;
}
.city-wait-slide-arrow {
  top: 50%;
  transform: translateY(-50%);
}
.city-wait-slide-arrow--prev { left: 16px; }
.city-wait-slide-arrow--next { right: 16px; }
.city-wait-slide-arrow:hover { transform: translateY(-50%) scale(1.04); }

.overview-carousel-shell {
  position: relative;
  isolation: isolate;
}
.overview-carousel-track {
  scroll-behavior: smooth;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.overview-carousel-track::-webkit-scrollbar {
  display: none !important;
}
.inspire-gallery.overview-carousel-track {
  display: flex !important;
  gap: clamp(14px, 1.35vw, 22px) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  padding: 4px 4px clamp(12px, 1.5vw, 22px) !important;
  grid-template-columns: none !important;
  scroll-snap-type: x proximity;
}
.inspire-gallery.overview-carousel-track .inspire-photo {
  flex: 0 0 clamp(250px, 22vw, 340px) !important;
  scroll-snap-align: start;
}
.horizontal-places.overview-carousel-track {
  display: flex !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  gap: clamp(18px, 2vw, 30px) !important;
  padding: 4px 4px clamp(14px, 1.7vw, 24px) !important;
  background: transparent !important;
  scroll-snap-type: x proximity;
}
.horizontal-places.overview-carousel-track .top-place-tile {
  flex: 0 0 clamp(300px, 29vw, 410px) !important;
  scroll-snap-align: start;
}
.carousel-nav {
  top: 50%;
  transform: translateY(-50%);
}
.carousel-nav--prev { left: clamp(6px, 1.4vw, 18px); }
.carousel-nav--next { right: clamp(6px, 1.4vw, 18px); }
.overview-carousel-shell .carousel-nav--prev { margin-left: -8px; }
.overview-carousel-shell .carousel-nav--next { margin-right: -8px; }
.under-gallery-actions {
  display: flex;
  justify-content: center;
  margin-top: clamp(12px, 1.8vw, 24px);
}
.under-gallery-actions .button {
  min-width: min(100%, 320px);
}
.top-places-section .section-head .button[data-action="share-friend"] {
  display: none !important;
}
.top-places-section .horizontal-places {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.top-place-tile {
  background: color-mix(in srgb, var(--surface) 88%, transparent) !important;
}

@media (max-width: 760px) {
  .city-wait-card--compact {
    grid-template-columns: 1fr !important;
  }
  .city-wait-card--compact .city-wait-image {
    min-height: 0 !important;
    aspect-ratio: 1 / 1.08 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--line) !important;
  }
  .city-wait-card--compact .city-wait-info {
    padding: 14px !important;
  }
  .city-wait-card--compact .city-wait-info .button {
    max-width: none !important;
  }
  .city-wait-slide-arrow,
  .carousel-nav {
    width: 46px;
    height: 46px;
  }
  .city-wait-slide-arrow--prev { left: 10px; }
  .city-wait-slide-arrow--next { right: 10px; }
  .inspire-gallery.overview-carousel-track .inspire-photo {
    flex-basis: 74vw !important;
  }
  .horizontal-places.overview-carousel-track .top-place-tile {
    flex-basis: 82vw !important;
  }
  .overview-carousel-shell .carousel-nav--prev { margin-left: 0; }
  .overview-carousel-shell .carousel-nav--next { margin-right: 0; }
  .carousel-nav--prev { left: 8px; }
  .carousel-nav--next { right: 8px; }
  .under-gallery-actions .button {
    width: 100%;
  }
}

/* Sobytie v50: requested UI fixes — light-first, compact mobile overview, quiz hint preview. */
/* 9) Center all SVG icons inside their hit areas. Tiny geometry police, but make it couture. */
[data-icon],
.button > [data-icon],
.pill > [data-icon],
.icon-button > [data-icon],
.city-quiz-source > [data-icon],
.city-quiz-hint-button > [data-icon],
.museum-program-row__button > [data-icon],
.carousel-nav > [data-icon],
.city-wait-slide-arrow > [data-icon],
.lucky-icon-button > [data-icon] {
  display: inline-grid !important;
  place-items: center !important;
  line-height: 0 !important;
  flex: 0 0 auto !important;
}
[data-icon] svg {
  display: block !important;
  margin: auto !important;
}
.icon-button,
.carousel-nav,
.city-wait-slide-arrow,
.lucky-icon-button,
.museum-program-row__button {
  align-items: center !important;
  justify-content: center !important;
}

/* 2) Children vacation catalogue: no count, no filter chips, cards start right away. */
.special-page-head--clean-list {
  margin-bottom: 0 !important;
}
.special-page-head--clean-list + .special-grid--children-vacation,
.special-page-head--clean-list + .section.special-grid--children-vacation {
  margin-top: clamp(18px, 2.5vw, 30px) !important;
}
.special-page-head--clean-list .special-count,
.special-page-head--clean-list + .special-chips {
  display: none !important;
}

/* 3) Lucky modal: readable title, fixed controls, icon-only favorite. */
.lucky-modal {
  max-height: min(90dvh, 760px) !important;
  overflow: auto !important;
}
.lucky-event-copy-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 46px !important;
  gap: 10px !important;
  align-items: start !important;
}
.lucky-event-copy h3 {
  font-size: clamp(18px, 2.3vw, 28px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.058em !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  overflow-wrap: anywhere !important;
}
.lucky-event-meta {
  margin-top: 12px !important;
}
.lucky-fav-button {
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.lucky-fav-button svg {
  width: 21px !important;
  height: 21px !important;
}
.lucky-actions {
  display: grid !important;
  grid-template-columns: 54px minmax(0, 1fr) 54px !important;
  gap: 10px !important;
  align-items: center !important;
  justify-content: stretch !important;
}
.lucky-actions .lucky-detail-button {
  width: 100% !important;
  min-width: 0 !important;
}
.lucky-actions .lucky-catalog-button {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
}
.lucky-icon-button:disabled {
  opacity: .42 !important;
  cursor: default !important;
}
@media (max-width: 760px) {
  .lucky-modal {
    max-width: calc(100vw - 22px) !important;
    padding: 16px !important;
    border-radius: 30px !important;
  }
  .lucky-modal .modal-head {
    margin-bottom: 8px !important;
  }
  .lucky-event-card {
    gap: 10px !important;
    padding: 12px !important;
    border-radius: 24px !important;
  }
  .lucky-event-image {
    width: min(100%, 220px) !important;
    max-height: 220px !important;
    margin: 0 auto !important;
    border-radius: 22px !important;
  }
  .lucky-event-copy-head {
    grid-template-columns: minmax(0, 1fr) 42px !important;
    gap: 8px !important;
  }
  .lucky-event-copy h3 {
    font-size: clamp(16px, 4.7vw, 21px) !important;
    line-height: 1.1 !important;
    -webkit-line-clamp: 3 !important;
  }
  .lucky-event-meta {
    gap: 6px !important;
    margin-top: 10px !important;
  }
  .lucky-event-meta span {
    min-height: 30px !important;
    padding: 7px 9px !important;
    font-size: 10.5px !important;
  }
  .lucky-fav-button {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
  }
  .lucky-actions {
    grid-template-columns: 48px minmax(0, 1fr) 48px !important;
    margin-top: 12px !important;
  }
  .lucky-icon-button {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
  }
}

/* 4) City quiz hint opens as an inline card with text and image. */
.city-quiz-hint-button {
  border-style: solid !important;
  justify-content: flex-start !important;
}
.city-quiz-hint-button:disabled {
  cursor: default !important;
  opacity: 1 !important;
}
.city-quiz-hint-panel {
  margin-top: 12px !important;
  border: 1px solid color-mix(in srgb, var(--lime) 36%, var(--line)) !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 8% 8%, color-mix(in srgb, var(--lime) 18%, transparent), transparent 30%),
    color-mix(in srgb, var(--surface) 90%, transparent) !important;
  padding: 12px !important;
  display: grid !important;
  grid-template-columns: minmax(118px, .42fr) minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: stretch !important;
  box-shadow: 0 16px 46px rgba(0,0,0,.10) !important;
}
.city-quiz-hint-panel__image {
  min-height: 118px !important;
  border-radius: 18px !important;
  border: 1px solid var(--line) !important;
  background: color-mix(in srgb, var(--surface-2) 90%, transparent) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
.city-quiz-hint-panel__image img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 160px !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
}
.city-quiz-hint-panel__image.is-empty [data-icon] svg {
  width: 42px !important;
  height: 42px !important;
  opacity: .72 !important;
}
.city-quiz-hint-panel__copy {
  min-width: 0 !important;
  display: grid !important;
  align-content: center !important;
  gap: 8px !important;
}
.city-quiz-hint-panel__copy small {
  color: var(--muted) !important;
  font: 800 11px/1 var(--font-text) !important;
  text-transform: lowercase !important;
}
.city-quiz-hint-panel__copy strong {
  color: var(--text-strong) !important;
  font-family: var(--font-display) !important;
  font-size: clamp(19px, 2.2vw, 30px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.065em !important;
  overflow-wrap: anywhere !important;
}
.city-quiz-hint-panel__copy p {
  margin: 0 !important;
  color: var(--text-soft) !important;
  font-size: 13px !important;
  line-height: 1.42 !important;
}
.city-quiz-hint-panel__copy .city-quiz-source {
  width: fit-content !important;
  max-width: 100% !important;
}
@media (max-width: 620px) {
  .city-quiz-hint-panel {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .city-quiz-hint-panel__image {
    min-height: 148px !important;
  }
  .city-quiz-hint-panel__copy strong {
    font-size: clamp(20px, 6.4vw, 28px) !important;
  }
  .city-quiz-hint-panel__copy .city-quiz-source {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* 5) City excursion card chips: short chips in one neat row, long price below. */
.special-card-meta-stack {
  display: grid !important;
  gap: 8px !important;
  min-width: 0 !important;
}
.special-card-meta--excursion-short {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0 !important;
}
.special-card-meta--excursion-short span {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}
.special-card-meta--excursion-price span {
  max-width: 100% !important;
  white-space: normal !important;
  line-height: 1.26 !important;
}
@media (max-width: 480px) {
  .special-card-meta--excursion-short {
    gap: 6px !important;
  }
  .special-card-meta--excursion-short span {
    min-height: 32px !important;
    padding: 7px 10px !important;
    font-size: 11px !important;
  }
}

/* 6) Museum list: “Подробнее” and arrow live on one line, not sad-arrow-under-text cinema. */
.museum-program-row__button {
  width: auto !important;
  min-width: 138px !important;
  height: 48px !important;
  padding: 0 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  border-radius: 999px !important;
  font-weight: 850 !important;
  white-space: nowrap !important;
}
.museum-program-row__button::before {
  content: none !important;
}
.museum-program-row__button-text {
  display: inline-block !important;
  line-height: 1 !important;
}
.museum-program-row__button span[data-icon] {
  width: 18px !important;
  height: 18px !important;
}
@media (max-width: 760px) {
  .museum-program-row__button {
    justify-self: stretch !important;
    width: 100% !important;
  }
}

/* 7) Mobile overview: dark wide “Открой город” + three compact light squares in one row. */
@media (max-width: 620px) {
  #screen-overview .overview-board {
    gap: 14px !important;
    margin-top: 16px !important;
  }
  #screen-overview .overview-mini-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto !important;
    gap: 10px !important;
    max-width: none !important;
    width: 100% !important;
  }
  #screen-overview .overview-mini-grid .overview-square {
    min-width: 0 !important;
  }
  #screen-overview .overview-square--hero {
    grid-column: 1 / -1 !important;
    aspect-ratio: auto !important;
    min-height: 128px !important;
    border-radius: 28px !important;
    padding: 16px !important;
    color: #fffaf2 !important;
    border-color: rgba(255,255,255,.14) !important;
    background:
      radial-gradient(circle at 14% 16%, rgba(216,255,79,.32), transparent 34%),
      radial-gradient(circle at 88% 8%, rgba(135,191,255,.18), transparent 36%),
      linear-gradient(145deg, #060706 0%, #11120f 54%, #1a1c15 100%) !important;
    box-shadow: 0 24px 72px rgba(0,0,0,.24) !important;
  }
  #screen-overview .overview-square--hero .overview-card-icon {
    width: 42px !important;
    height: 42px !important;
    background: var(--lime) !important;
    color: #070807 !important;
  }
  #screen-overview .overview-square--hero strong {
    color: #fffaf2 !important;
    font-size: clamp(24px, 8vw, 34px) !important;
  }
  #screen-overview .overview-square--hero small {
    color: rgba(255,250,242,.72) !important;
    font-size: 12px !important;
    line-height: 1.28 !important;
  }
  #screen-overview .overview-mini-grid .overview-square:not(.overview-square--hero) {
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 9px !important;
    border-radius: 22px !important;
    gap: 7px !important;
    color: #15150f !important;
    border-color: rgba(18,17,14,.12) !important;
    background:
      radial-gradient(circle at 88% 12%, rgba(216,255,79,.18), transparent 38%),
      rgba(255,250,241,.86) !important;
    box-shadow: 0 14px 42px rgba(76,68,55,.12) !important;
  }
  #screen-overview .overview-mini-grid .overview-square:not(.overview-square--hero) .overview-card-icon {
    width: 30px !important;
    height: 30px !important;
    font-size: 14px !important;
    background: var(--lime) !important;
    color: #070807 !important;
  }
  #screen-overview .overview-mini-grid .overview-square:not(.overview-square--hero) strong {
    color: #070807 !important;
    font-size: clamp(13px, 3.65vw, 16px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.06em !important;
  }
  #screen-overview .overview-mini-grid .overview-square:not(.overview-square--hero) small {
    display: none !important;
  }
}

/* 8) City wait card: bring the title back, clamp it to two lines. */
.city-wait-card--compact .city-wait-info h3 {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
  margin: 0 !important;
}
.city-wait-card--compact .city-wait-info p {
  display: none !important;
}
@media (max-width: 760px) {
  .city-wait-card--compact .city-wait-info {
    gap: 10px !important;
  }
  .city-wait-card--compact .city-wait-info h3 {
    font-size: clamp(20px, 6vw, 27px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.068em !important;
  }
}

/* Sobytie v52: overview hero/card hierarchy, lucky controls row, cleaner gallery rails. */
#screen-overview .overview-board {
  display: block !important;
  margin-top: clamp(22px, 3vw, 42px) !important;
  margin-bottom: clamp(52px, 6.2vw, 96px) !important;
}
.overview-open-panel {
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: clamp(32px, 4vw, 48px) !important;
  padding: clamp(22px, 3vw, 38px) !important;
  color: #fffaf2 !important;
  background:
    radial-gradient(circle at 9% 12%, rgba(216,255,79,.30), transparent 30%),
    radial-gradient(circle at 92% 8%, rgba(135,191,255,.20), transparent 34%),
    radial-gradient(circle at 78% 82%, rgba(216,255,79,.10), transparent 34%),
    linear-gradient(145deg, #050604 0%, #10120f 58%, #171a15 100%) !important;
  box-shadow: 0 30px 86px rgba(0,0,0,.24) !important;
  overflow: hidden !important;
}
.overview-open-title {
  display: flex !important;
  align-items: center !important;
  gap: clamp(14px, 2vw, 24px) !important;
  margin: 0 0 clamp(20px, 2.6vw, 34px) !important;
}
.overview-open-logo {
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  color: var(--lime) !important;
  font: 850 clamp(34px, 4.8vw, 56px)/.78 var(--font-display) !important;
  letter-spacing: -.10em !important;
  text-transform: uppercase !important;
}
.overview-open-title strong {
  display: block !important;
  color: #fffaf2 !important;
  font: 650 clamp(34px, 5.4vw, 72px)/.95 var(--font-display) !important;
  letter-spacing: -.082em !important;
}
.overview-open-actions {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(12px, 1.6vw, 20px) !important;
}
.overview-open-actions .overview-square {
  min-width: 0 !important;
  min-height: clamp(142px, 13vw, 190px) !important;
  aspect-ratio: 1 / .78 !important;
  padding: clamp(14px, 1.7vw, 22px) !important;
  border-radius: clamp(24px, 2.4vw, 34px) !important;
  color: #070807 !important;
  background:
    radial-gradient(circle at 84% 12%, rgba(216,255,79,.22), transparent 38%),
    rgba(255,250,241,.92) !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.18) !important;
  display: grid !important;
  align-content: space-between !important;
  gap: 10px !important;
}
.overview-open-actions .overview-card-icon {
  width: clamp(36px, 4vw, 50px) !important;
  height: clamp(36px, 4vw, 50px) !important;
  border-radius: 999px !important;
  background: var(--lime) !important;
  color: #070807 !important;
  font-size: clamp(16px, 1.8vw, 22px) !important;
  display: inline-grid !important;
  place-items: center !important;
  line-height: 1 !important;
}
.overview-open-actions .overview-square strong {
  color: #070807 !important;
  font-size: clamp(22px, 2.35vw, 34px) !important;
  line-height: .98 !important;
  letter-spacing: -.075em !important;
}
.overview-open-actions .overview-square small,
.overview-open-actions .quiz-question-mini,
.overview-open-actions .quiz-options-mini {
  display: none !important;
}
.overview-mini-grid {
  display: contents !important;
}
#screen-overview .city-wait-section {
  margin-top: 0 !important;
  margin-bottom: clamp(66px, 7vw, 110px) !important;
}
#screen-overview .city-wait-section .section-head {
  margin-bottom: clamp(18px, 2.4vw, 34px) !important;
}
.city-wait-panel--plain {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  display: block !important;
}
.city-wait-panel--plain .city-wait-card {
  width: 100% !important;
}
#screen-overview .city-wait-section .section-title,
#screen-overview .city-life-section .section-title,
#screen-overview .inspire-section .section-title,
#screen-overview .top-places-section .section-title {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Lucky modal controls: arrows and “Подробнее” stay in one sane row. */
.lucky-actions {
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) 56px !important;
  grid-auto-rows: auto !important;
  gap: 12px !important;
  align-items: center !important;
  justify-content: stretch !important;
  margin-top: 16px !important;
}
.lucky-actions .lucky-icon-button[data-action="lucky-prev"] {
  grid-column: 1 !important;
  grid-row: 1 !important;
}
.lucky-actions .lucky-detail-button {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 56px !important;
  justify-content: center !important;
}
.lucky-actions .lucky-icon-button[data-action="lucky-next"] {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
.lucky-actions .lucky-catalog-button {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  min-width: 0 !important;
  justify-content: center !important;
}
.lucky-actions .lucky-icon-button {
  width: 56px !important;
  min-width: 56px !important;
  height: 56px !important;
  min-height: 56px !important;
  padding: 0 !important;
  border-radius: 999px !important;
}

/* Remove accidental grey rails behind overview galleries. Cards float directly on the page. */
#screen-overview .overview-carousel-shell,
#screen-overview .inspire-carousel-shell,
#screen-overview .top-places-carousel-shell {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  overflow: visible !important;
}
#screen-overview .overview-carousel-track,
#screen-overview .inspire-gallery.overview-carousel-track,
#screen-overview .horizontal-places.overview-carousel-track {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
#screen-overview .inspire-gallery.overview-carousel-track,
#screen-overview .horizontal-places.overview-carousel-track {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* More breathing room between overview blocks. No visual traffic jam, we are not in a municipal queue. */
#screen-overview .city-life-section,
#screen-overview .inspire-section,
#screen-overview .top-places-section {
  margin-top: clamp(72px, 7.5vw, 120px) !important;
  margin-bottom: clamp(70px, 7vw, 112px) !important;
}
#screen-overview .section-head {
  margin-bottom: clamp(24px, 3vw, 42px) !important;
}
#screen-overview .under-gallery-actions,
#screen-overview .load-more-row {
  margin-top: clamp(26px, 3.2vw, 46px) !important;
}

@media (max-width: 620px) {
  #screen-overview .overview-board {
    margin-top: 18px !important;
    margin-bottom: 54px !important;
  }
  .overview-open-panel {
    border-radius: 30px !important;
    padding: 18px !important;
  }
  .overview-open-title {
    gap: 12px !important;
    margin-bottom: 16px !important;
  }
  .overview-open-logo {
    font-size: 34px !important;
  }
  .overview-open-title strong {
    font-size: clamp(31px, 9vw, 42px) !important;
    line-height: .95 !important;
  }
  .overview-open-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }
  .overview-open-actions .overview-square {
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    padding: 9px !important;
    border-radius: 20px !important;
    gap: 6px !important;
  }
  .overview-open-actions .overview-card-icon {
    width: 30px !important;
    height: 30px !important;
    font-size: 14px !important;
  }
  .overview-open-actions .overview-square strong {
    font-size: clamp(12px, 3.55vw, 16px) !important;
    line-height: 1.02 !important;
  }
  #screen-overview .city-wait-section,
  #screen-overview .city-life-section,
  #screen-overview .inspire-section,
  #screen-overview .top-places-section {
    margin-top: 54px !important;
    margin-bottom: 64px !important;
  }
  #screen-overview .city-wait-section .section-head,
  #screen-overview .section-head {
    margin-bottom: 22px !important;
  }
  .lucky-actions {
    grid-template-columns: 52px minmax(0, 1fr) 52px !important;
    gap: 10px !important;
    margin-top: 14px !important;
  }
  .lucky-actions .lucky-icon-button {
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
  }
  .lucky-actions .lucky-detail-button {
    height: 52px !important;
  }
  #screen-overview .inspire-gallery.overview-carousel-track,
  #screen-overview .horizontal-places.overview-carousel-track {
    padding-top: 0 !important;
    padding-bottom: 14px !important;
  }
}
.city-wait-panel--plain {
  height: auto !important;
  gap: 0 !important;
  align-content: initial !important;
}

/* Sobytie v53: desktop overview hero + city headliner in one compact row. Mobile stays as in v52. */
@media (min-width: 981px) {
  #screen-overview .overview-top-row {
    display: grid !important;
    grid-template-columns: minmax(360px, .74fr) minmax(0, 1.26fr) !important;
    gap: clamp(24px, 3vw, 42px) !important;
    align-items: stretch !important;
    margin-top: clamp(22px, 3vw, 42px) !important;
    margin-bottom: clamp(70px, 7vw, 112px) !important;
  }

  #screen-overview .overview-top-row .overview-board {
    display: block !important;
    margin: 0 !important;
    min-width: 0 !important;
    height: 100% !important;
  }

  #screen-overview .overview-top-row .overview-open-panel {
    height: 100% !important;
    min-height: clamp(430px, 35vw, 560px) !important;
    padding: clamp(24px, 2.4vw, 36px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    gap: clamp(18px, 2vw, 28px) !important;
    border-radius: clamp(34px, 3.3vw, 46px) !important;
  }

  #screen-overview .overview-top-row .overview-open-title {
    margin: 0 !important;
    gap: clamp(12px, 1.45vw, 18px) !important;
    align-items: center !important;
  }

  #screen-overview .overview-top-row .overview-open-logo {
    font-size: clamp(34px, 3.2vw, 48px) !important;
    line-height: .78 !important;
  }

  #screen-overview .overview-top-row .overview-open-title strong {
    font-size: clamp(34px, 3.55vw, 56px) !important;
    line-height: .96 !important;
    letter-spacing: -.084em !important;
  }

  #screen-overview .overview-top-row .overview-open-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: clamp(10px, 1.2vw, 14px) !important;
  }

  #screen-overview .overview-top-row .overview-open-actions .overview-square {
    aspect-ratio: auto !important;
    min-height: clamp(78px, 7.2vw, 112px) !important;
    padding: clamp(14px, 1.35vw, 18px) !important;
    border-radius: clamp(22px, 2vw, 30px) !important;
    display: grid !important;
    grid-template-columns: clamp(38px, 3.4vw, 48px) minmax(0, 1fr) !important;
    align-items: center !important;
    align-content: center !important;
    gap: clamp(12px, 1.4vw, 18px) !important;
  }

  #screen-overview .overview-top-row .overview-open-actions .overview-card-icon {
    width: clamp(38px, 3.4vw, 48px) !important;
    height: clamp(38px, 3.4vw, 48px) !important;
    align-self: center !important;
    justify-self: center !important;
  }

  #screen-overview .overview-top-row .overview-open-actions .overview-square strong {
    font-size: clamp(19px, 1.65vw, 28px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.074em !important;
  }

  #screen-overview .overview-top-row .city-wait-section {
    margin: 0 !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    align-content: stretch !important;
  }

  #screen-overview .overview-top-row .city-wait-section .section-head {
    margin-bottom: clamp(18px, 2vw, 28px) !important;
  }

  #screen-overview .overview-top-row .city-wait-section .section-title {
    font-size: clamp(36px, 4.2vw, 70px) !important;
    line-height: .94 !important;
  }

  #screen-overview .overview-top-row .city-wait-panel--plain {
    height: 100% !important;
  }

  #screen-overview .overview-top-row .city-wait-card--compact {
    height: 100% !important;
    min-height: clamp(340px, 26vw, 450px) !important;
  }

  #screen-overview .overview-top-row .city-wait-card--compact .city-wait-image {
    min-height: 100% !important;
  }

  #screen-overview .city-life-section {
    margin-top: 0 !important;
  }
}

@media (max-width: 980px) {
  #screen-overview .overview-top-row {
    display: block !important;
  }
}

/* Sobytie v54: fixed desktop height for overview opener + city headliner.
   The event image always fits into a stable frame, so the row no longer jumps
   between horizontal and vertical posters. Mobile stays unchanged. */
@media (min-width: 981px) {
  #screen-overview .overview-top-row {
    --overview-desktop-row-height: clamp(500px, 32vw, 560px);
    --overview-desktop-headliner-height: clamp(350px, 23vw, 430px);
    align-items: start !important;
  }

  #screen-overview .overview-top-row .overview-board,
  #screen-overview .overview-top-row .overview-open-panel {
    height: var(--overview-desktop-row-height) !important;
    min-height: var(--overview-desktop-row-height) !important;
    max-height: var(--overview-desktop-row-height) !important;
  }

  #screen-overview .overview-top-row .overview-open-panel {
    overflow: hidden !important;
  }

  #screen-overview .overview-top-row .city-wait-section {
    height: auto !important;
    min-height: 0 !important;
    align-content: start !important;
  }

  #screen-overview .overview-top-row .city-wait-panel--plain,
  #screen-overview .overview-top-row .city-wait-panel--plain .city-wait-card,
  #screen-overview .overview-top-row .city-wait-card--compact {
    height: var(--overview-desktop-headliner-height) !important;
    min-height: var(--overview-desktop-headliner-height) !important;
    max-height: var(--overview-desktop-headliner-height) !important;
  }

  #screen-overview .overview-top-row .city-wait-card--compact {
    overflow: hidden !important;
    grid-template-columns: minmax(360px, 1.42fr) minmax(240px, .72fr) !important;
  }

  #screen-overview .overview-top-row .city-wait-card--compact .city-wait-image {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    padding: clamp(8px, .9vw, 14px) !important;
  }

  #screen-overview .overview-top-row .city-wait-card--compact .city-wait-image img {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
  }

  #screen-overview .overview-top-row .city-wait-card--compact .city-wait-info {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
}


/* Sobytie v55: desktop overview compact title, stable headliner, places logic refresh. */
@media (min-width: 981px) {
  #screen-overview .overview-top-row {
    --overview-section-title-size: clamp(30px, 3vw, 42px);
    --overview-desktop-row-height: clamp(400px, 27vw, 480px);
    --overview-desktop-headliner-height: clamp(300px, 20vw, 380px);
    grid-template-columns: minmax(300px, .58fr) minmax(0, 1.42fr) !important;
    gap: clamp(26px, 3.2vw, 50px) !important;
  }

  #screen-overview .overview-top-row .overview-open-panel {
    padding: clamp(22px, 2.2vw, 34px) !important;
  }

  #screen-overview .overview-top-row .overview-open-title {
    align-items: flex-start !important;
    gap: 0 !important;
  }

  #screen-overview .overview-top-row .overview-open-logo {
    display: none !important;
  }

  #screen-overview .overview-top-row .overview-open-title strong,
  #screen-overview .overview-top-row .city-wait-section .section-title,
  #screen-overview .city-life-section .section-title,
  #screen-overview .inspire-section .section-title,
  #screen-overview .top-places-section .section-title {
    font-size: var(--overview-section-title-size) !important;
    line-height: 1.02 !important;
    letter-spacing: -.075em !important;
  }

  #screen-overview .overview-top-row .overview-open-title strong {
    white-space: nowrap !important;
    max-width: 100% !important;
  }

  #screen-overview .overview-top-row .overview-open-actions .overview-square {
    min-height: clamp(72px, 6.3vw, 96px) !important;
    border-radius: clamp(20px, 1.8vw, 28px) !important;
  }

  #screen-overview .overview-top-row .overview-open-actions .overview-square strong {
    font-size: clamp(18px, 1.55vw, 24px) !important;
    letter-spacing: -.07em !important;
  }
}

.city-wait-skeleton {
  position: relative;
  overflow: hidden;
}
.city-wait-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(216,255,79,.12), transparent);
  animation: sobytieSkeleton 1.35s ease-in-out infinite;
  pointer-events: none;
}
@keyframes sobytieSkeleton {
  100% { transform: translateX(100%); }
}

.places-discover-section {
  margin-top: clamp(34px, 4vw, 64px);
  margin-bottom: clamp(54px, 6vw, 92px);
}
.places-discover-head {
  margin-bottom: clamp(22px, 2.6vw, 34px);
}
.places-life-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.7vw, 26px);
}
.place-life-tile {
  min-height: clamp(168px, 13vw, 214px);
  border: 1px solid var(--line);
  border-radius: clamp(22px, 2vw, 30px);
  padding: clamp(18px, 2vw, 28px);
  background:
    radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--lime) 15%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--violet) 17%, var(--surface)) 0%, color-mix(in srgb, var(--surface) 92%, transparent) 100%);
  box-shadow: var(--soft-shadow);
  color: var(--text-strong);
  text-align: left;
  display: grid;
  align-content: space-between;
  gap: 18px;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.place-life-tile:hover,
.place-life-tile.is-active {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--lime) 65%, var(--line));
  box-shadow: 0 22px 68px rgba(52,54,32,.18);
}
.place-life-tile strong {
  max-width: 92%;
  font: 650 clamp(22px, 2.1vw, 34px)/1.05 var(--font-display);
  letter-spacing: -.07em;
}
.place-life-tile span {
  justify-self: start;
  align-self: end;
  padding: 8px 13px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--lime) 86%, white);
  color: #080907;
  font: 850 12px/1 var(--font-text);
  letter-spacing: -.03em;
}
.place-life-tile small {
  color: var(--text-soft);
  font: 750 13px/1.1 var(--font-text);
}
.places-selected-life {
  margin-top: clamp(34px, 4vw, 62px);
}
.places-culture-section {
  margin-top: clamp(52px, 6vw, 96px);
}
.places-culture-head {
  align-items: center;
}
.places-search-field {
  width: min(420px, 100%);
}
.choice-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: clamp(24px, 3vw, 42px);
}
.choice-chip {
  min-height: 38px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--chip-bg);
  color: var(--text-soft);
  font: 800 14px/1 var(--font-text);
  letter-spacing: -.02em;
  cursor: pointer;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}
.choice-chip:hover { transform: translateY(-1px); color: var(--text); }
.choice-chip.is-active {
  background: var(--lime);
  color: #080907;
  border-color: transparent;
}
.places-map-panel {
  margin: 0 0 clamp(30px, 3.4vw, 48px);
  border: 1px solid var(--line);
  border-radius: clamp(28px, 3vw, 42px);
  padding: clamp(18px, 2.2vw, 28px);
  background:
    radial-gradient(circle at 12% 14%, color-mix(in srgb, var(--lime) 20%, transparent), transparent 26%),
    radial-gradient(circle at 86% 22%, color-mix(in srgb, var(--steel) 15%, transparent), transparent 30%),
    color-mix(in srgb, var(--surface) 80%, transparent);
  box-shadow: var(--soft-shadow);
  display: grid;
  grid-template-columns: minmax(220px, .78fr) minmax(260px, 1.1fr) minmax(240px, .82fr);
  gap: clamp(16px, 2vw, 26px);
  align-items: stretch;
}
.places-map-copy h3 {
  margin: 14px 0 10px;
  color: var(--text-strong);
  font: 650 clamp(25px, 2.5vw, 38px)/1 var(--font-display);
  letter-spacing: -.075em;
}
.places-map-copy p {
  margin: 0;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.55;
}
.places-map-stage {
  position: relative;
  min-height: 238px;
  border: 1px solid var(--line);
  border-radius: 30px;
  overflow: hidden;
  background:
    linear-gradient(24deg, transparent 0 47%, color-mix(in srgb, var(--line) 85%, transparent) 47.5% 49%, transparent 49.5%),
    linear-gradient(134deg, transparent 0 39%, color-mix(in srgb, var(--line) 70%, transparent) 39.5% 41%, transparent 41.5%),
    radial-gradient(circle at 25% 26%, color-mix(in srgb, var(--lime) 18%, transparent), transparent 22%),
    radial-gradient(circle at 70% 70%, color-mix(in srgb, var(--violet) 12%, transparent), transparent 24%),
    color-mix(in srgb, var(--surface-2) 92%, transparent);
}
.places-map-stage::before,
.places-map-stage::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line) 70%, transparent);
  transform: rotate(-16deg);
}
.places-map-stage::before { width: 82%; height: 12px; left: 8%; top: 48%; }
.places-map-stage::after { width: 58%; height: 9px; left: 24%; top: 34%; transform: rotate(31deg); }
.places-map-pin {
  position: absolute;
  left: var(--pin-x);
  top: var(--pin-y);
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--lime);
  color: #080907;
  box-shadow: 0 12px 34px rgba(0,0,0,.24);
  border: 2px solid rgba(255,255,255,.72);
  font: 900 13px/1 var(--font-text);
}
.places-map-pin:hover { transform: translate(-50%, -50%) scale(1.06); }
.places-map-list {
  display: grid;
  gap: 9px;
  align-content: center;
}
.places-map-list a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  grid-template-areas: "num title icon" "num meta icon";
  gap: 4px 10px;
  align-items: center;
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-2) 68%, transparent);
}
.places-map-list a > span {
  grid-area: num;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--lime);
  color: #080907;
  font: 900 12px/1 var(--font-text);
}
.places-map-list strong {
  grid-area: title;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-strong);
  font: 850 13px/1.05 var(--font-text);
}
.places-map-list small {
  grid-area: meta;
  color: var(--text-soft);
  font-size: 12px;
}
.places-map-list i {
  grid-area: icon;
  width: 20px;
  height: 20px;
  color: var(--text-soft);
}
.places-map-list svg { width: 20px; height: 20px; }
.places-culture-grid {
  margin-top: 0;
}

@media (max-width: 980px) {
  .places-life-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .places-map-panel {
    grid-template-columns: 1fr;
  }
  .places-map-stage { min-height: 230px; }
  .places-culture-head {
    align-items: stretch;
  }
  .places-search-field { width: 100%; }
}

@media (max-width: 620px) {
  .places-discover-section {
    margin-top: 24px;
    margin-bottom: 46px;
  }
  .places-life-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .place-life-tile {
    min-height: 126px;
    border-radius: 24px;
  }
  .place-life-tile strong {
    font-size: clamp(24px, 7vw, 34px);
  }
  .choice-chip-row {
    gap: 8px;
    margin-bottom: 24px;
  }
  .choice-chip {
    min-height: 36px;
    padding: 9px 14px;
    font-size: 13px;
  }
  .places-map-panel {
    border-radius: 28px;
    padding: 16px;
  }
}

/* v56: живой блок карты мест с точными pin-метками */
.places-map-panel--live {
  grid-template-columns: minmax(210px, .72fr) minmax(360px, 1.5fr) minmax(250px, .8fr);
  align-items: stretch;
}
.places-map-stage--yandex {
  min-height: 390px;
  background: color-mix(in srgb, var(--surface-2) 92%, transparent);
  isolation: isolate;
}
.places-map-stage--yandex::before,
.places-map-stage--yandex::after { display: none; }
.places-map-stage--yandex .ymaps-2-1-79-map,
.places-map-stage--yandex .ymaps-2-1-79-inner-panes,
.places-map-stage--yandex .ymaps-2-1-79-events-pane,
.places-map-stage--yandex .ymaps-2-1-79-ground-pane,
.places-map-stage--yandex .ymaps-2-1-79-controls-pane {
  border-radius: inherit;
}
.places-map-loader {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 8px;
  padding: 28px;
  text-align: center;
  color: var(--text-soft);
  background:
    radial-gradient(circle at 22% 20%, color-mix(in srgb, var(--lime) 22%, transparent), transparent 30%),
    radial-gradient(circle at 80% 76%, color-mix(in srgb, var(--steel) 14%, transparent), transparent 34%),
    color-mix(in srgb, var(--surface-2) 90%, transparent);
}
.places-map-loader svg,
.places-map-loader [data-icon] {
  width: 42px;
  height: 42px;
  color: var(--lime);
}
.places-map-loader strong {
  color: var(--text-strong);
  font: 850 18px/1.05 var(--font-text);
}
.places-map-loader small {
  max-width: 260px;
  font-size: 13px;
  line-height: 1.4;
}
.places-map-list--live {
  align-content: start;
  max-height: 390px;
  overflow: auto;
  padding-right: 2px;
}
.places-map-list--live a.is-active {
  border-color: color-mix(in srgb, var(--lime) 70%, var(--line));
  background: color-mix(in srgb, var(--lime) 14%, var(--surface-2));
}
.places-map-list--live a:hover {
  transform: translateY(-1px);
}

@media (max-width: 1120px) {
  .places-map-panel--live { grid-template-columns: 1fr; }
  .places-map-stage--yandex { min-height: 360px; }
  .places-map-list--live { max-height: none; }
}
@media (max-width: 620px) {
  .places-map-stage--yandex { min-height: 310px; border-radius: 26px; }
}

/* v61: Places page rhythm, colored categories and calm map reveal */
.places-culture-section--first {
  margin-top: clamp(26px, 3vw, 46px) !important;
}
.places-discover-section--after-culture {
  margin-top: clamp(56px, 6.6vw, 104px);
  margin-bottom: clamp(32px, 4.5vw, 68px);
}
.choice-chip {
  border-color: var(--place-category-line, var(--line));
  background: var(--place-category-soft, var(--chip-bg));
}
.choice-chip.is-active {
  background: var(--place-category-color, var(--lime));
  border-color: transparent;
  color: #080907;
  box-shadow: 0 14px 34px color-mix(in srgb, var(--place-category-color, var(--lime)) 24%, transparent);
}
.place-category-pill,
.card-meta .place-category-pill.hot,
.places-map-copy .pill.hot,
.places-map-teaser .pill.hot {
  background: var(--place-category-color, var(--lime));
  color: #070807;
  border-color: transparent;
}
.place-life-tile {
  background:
    radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--place-category-color, var(--lime)) 24%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--violet) 13%, var(--surface)) 0%, color-mix(in srgb, var(--surface) 92%, transparent) 100%);
}
.place-life-tile span {
  background: color-mix(in srgb, var(--place-category-color, var(--lime)) 86%, white);
}
.place-life-tile:hover,
.place-life-tile.is-active {
  border-color: var(--place-category-line, color-mix(in srgb, var(--lime) 65%, var(--line)));
  box-shadow: 0 22px 68px color-mix(in srgb, var(--place-category-color, var(--lime)) 22%, transparent);
}
.places-culture-body {
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  gap: clamp(16px, 2vw, 28px);
  align-items: start;
}
.places-culture-body.is-map-open {
  grid-template-columns: 1fr;
}
.places-map-column {
  min-width: 0;
  position: sticky;
  top: 86px;
  z-index: 2;
}
.places-culture-body.is-map-open .places-map-column {
  position: static;
}
.places-culture-list {
  min-width: 0;
}
.places-map-teaser {
  width: 100%;
  min-height: clamp(220px, 23vw, 320px);
  border: 1px solid var(--line);
  border-radius: clamp(28px, 3vw, 42px);
  padding: clamp(22px, 2.6vw, 34px);
  background:
    radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--lime) 28%, transparent), transparent 38%),
    radial-gradient(circle at 82% 22%, color-mix(in srgb, var(--violet) 18%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) 88%, transparent), color-mix(in srgb, var(--surface-2) 92%, transparent));
  color: var(--text-strong);
  box-shadow: var(--soft-shadow);
  display: grid;
  justify-items: start;
  align-content: space-between;
  gap: 18px;
  cursor: pointer;
  text-align: left;
  overflow: hidden;
  position: relative;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.places-map-teaser::before {
  content: "";
  position: absolute;
  right: -36px;
  bottom: -34px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background:
    radial-gradient(circle, var(--lime) 0 14%, transparent 15% 100%),
    conic-gradient(from 24deg, transparent 0 14%, color-mix(in srgb, var(--line) 72%, transparent) 15% 17%, transparent 18% 36%, color-mix(in srgb, var(--line) 72%, transparent) 37% 39%, transparent 40% 100%);
  opacity: .68;
  pointer-events: none;
}
.places-map-teaser:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--lime) 58%, var(--line));
  box-shadow: 0 24px 68px rgba(52,54,32,.18);
}
.places-map-teaser strong {
  max-width: 7.4em;
  font: 650 clamp(34px, 3.9vw, 58px)/.98 var(--font-display);
  letter-spacing: -.08em;
}
.places-map-teaser em {
  font-style: normal;
  color: var(--text-soft);
  font: 800 14px/1 var(--font-text);
}
.places-map-teaser > i {
  position: absolute;
  right: 28px;
  top: 28px;
  width: 34px;
  height: 34px;
  color: color-mix(in srgb, var(--text-strong) 78%, transparent);
}
.places-map-teaser svg { width: 100%; height: 100%; }
.places-map-panel--live {
  margin-bottom: clamp(22px, 2.8vw, 36px);
}
.places-map-copy {
  display: grid;
  align-content: start;
  gap: 16px;
}
.places-map-copy .places-map-collapse {
  width: fit-content;
  margin-top: 6px;
}
.places-map-list a {
  border-color: var(--place-category-line, var(--line));
  background: var(--place-category-soft, color-mix(in srgb, var(--surface-2) 68%, transparent));
}
.places-map-list a > span {
  background: var(--place-category-color, var(--lime));
}
.places-map-list--live a.is-active {
  border-color: #090a07;
  background: color-mix(in srgb, var(--place-category-color, var(--lime)) 30%, var(--surface-2));
  box-shadow: 0 12px 32px color-mix(in srgb, var(--place-category-color, var(--lime)) 20%, transparent);
}
.places-load-more {
  margin-top: clamp(18px, 2.6vw, 34px);
}
.place-address-pill--map {
  cursor: pointer;
  border-color: color-mix(in srgb, var(--lime) 34%, var(--line)) !important;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
  text-align: left;
}
.place-address-pill--map:hover {
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--lime) 14%, var(--surface-2)) !important;
  border-color: color-mix(in srgb, var(--lime) 62%, var(--line)) !important;
}
.place-address-pill--map span:last-child {
  display: inline;
}

@media (max-width: 1180px) {
  .places-culture-body {
    grid-template-columns: 1fr;
  }
  .places-map-column {
    position: static;
  }
  .places-map-teaser {
    min-height: 190px;
  }
}
@media (max-width: 760px) {
  .places-culture-section--first {
    margin-top: 20px !important;
  }
  .places-map-teaser {
    min-height: 168px;
    border-radius: 28px;
  }
  .places-map-teaser strong {
    font-size: clamp(30px, 10vw, 44px);
  }
  .places-map-panel--live {
    border-radius: 28px;
    padding: 16px;
  }
  .places-map-copy h3 {
    font-size: clamp(30px, 9vw, 42px);
  }
}
