/* =============================================================
   Компоненты главной. Импортирует токены. Семантика +
   доступность учтены под поток 4 ТЗ (focus-visible, prefers-
   reduced-motion, контрастные фокусы).
   Токены — через wp_enqueue (muzteatr-tokens), без @import (stale cache).
   ============================================================= */

*,*::before,*::after { box-sizing: border-box; }
body { font-family: var(--font-body); color: var(--c-text); line-height: var(--lh-base); }

/* .container — в header.css (на всех страницах) */

/* Видимый фокус для клавиатуры (ТЗ 2.3) — кроме круглых стрелок каруселей */
:where(a,button,[tabindex]):not(.swiper-button-prev):not(.swiper-button-next):not(.premiere__nav):not(.repertoire__nav):not(.hero__nav-btn):not(.event-modal__gallery-nav):focus-visible {
  outline: 3px solid var(--c-accent); outline-offset: 2px; border-radius: var(--radius-sm);
}

/* ---------- Кнопки (UI-kit Figma) — только контент главной, не подвал ---------- */
.site-main .btn,
.event-modal .btn {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2);
  min-height:44px; padding:20px 30px; border:0; border-radius:10px;
  font:500 15px/1.2 var(--font-body); cursor:pointer; text-decoration:none;
  transition:background var(--t) var(--ease), transform var(--t-fast) var(--ease);
}

.site-main .btn--primary,
.event-modal .btn--primary {
  background:var(--c-primary); color:#fff;
}
.site-main .btn--primary:hover,
.event-modal .btn--primary:hover {
  background:var(--c-primary-hover); transform:translateY(-1px);
}
.site-main .btn--primary:active,
.event-modal .btn--primary:active {
  background:var(--c-primary-active); transform:none;
}

.site-main .btn--ghost,
.event-modal .btn--ghost {
  background:var(--c-kassa24-bg); color:var(--c-kassa24-text);
  padding:10px 15px; font-size:12px;
}
.site-main .btn--ghost:hover,
.event-modal .btn--ghost:hover {
  background:var(--c-kassa24-hover);
}
.site-main .btn--ghost:active,
.event-modal .btn--ghost:active {
  background:var(--c-kassa24-active);
}

.site-main .btn--lg { min-height:52px; padding:.9rem 2rem; font-size:1rem; }

/* ---------- Бейджи (дата/время/возраст/жанр) ---------- */
.badge { display:inline-flex; align-items:center; min-height:32px; padding:.3rem .8rem;
  border-radius:var(--radius-pill); font-size:var(--fs-small); background:var(--c-badge-bg-light);
  color:var(--c-text); }
.badge--on-dark { background:var(--c-badge-hero); color:var(--c-text-invert); }
/* Бейджи hero (Figma 18:234 — padding 10/16, font 20px, bg rgba(255,255,255,.2)) */
.hero .badge--on-dark {
  background:var(--hero-badge-bg); color:var(--c-text-invert);
  font-size:var(--fs-badge-hero); font-weight:500; line-height:1.2;
  padding:10px 16px; min-height:auto; border-radius:var(--radius-pill);
}
.hero .badge--premiere { background:var(--hero-badge-bg); color:var(--c-text-invert); }

/* Главная: убрать отступы Astra/legacy (#primary { margin:1em } в style.css) */
body.home #primary.site-main {
  margin:0; padding:0; max-width:none;
  background:var(--c-cream); /* скругление hero 18:215 видно на фоне афиши */
}

/* =============================================================
   HERO (Figma 18:214 — баннер 18:215 под шапкой, высота 935px)
   z-index: media(0) → overlay(1) → content(5) → chrome(8)
   ============================================================= */
.hero {
  position:relative;
  min-height:var(--hero-h-desktop);
  /* Figma 18:215 — rectangleCornerRadii [0,0,50,50] */
  border-radius:0 0 var(--hero-radius) var(--hero-radius);
  overflow:hidden;
  clip-path:inset(0 round 0 0 var(--hero-radius) var(--hero-radius));
  background:var(--c-dark);
  isolation:isolate;
}
.hero__swiper,
.hero__slide {
  min-height:var(--hero-h-desktop);
  height:var(--hero-h-desktop);
  border-radius:inherit;
  overflow:hidden;
}
.hero__slide { position:relative; }
.hero__slide picture {
  position:absolute; inset:0; display:block; z-index:0;
  border-radius:inherit; overflow:hidden;
}
.hero__media {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center top; z-index:0;
  border-radius:inherit;
}
/* LCP-постер: img снизу, video сверху (накрывает как только проигрывается первый кадр) */
.hero__video-poster {
  z-index:0;
  transition:opacity .35s ease;
}
.hero__video-poster.is-hidden { opacity:0; }
.hero__media--video  { z-index:1; object-position:center center; }
.hero__slide--video .hero__media--video-mobile { display:none; }

/* Информационные баннеры hero — 2560×960 / 1080×643, без обрезки текста */
.hero__slide--promo .hero__slide {
  background:#0f1a2e;
}
.hero__media--promo {
  object-fit:contain;
  object-position:center;
}

.hero__overlay-grad {
  position:absolute; inset:0; z-index:1; pointer-events:none;
  border-radius:inherit;
  /* Figma 66:10696: затемнение слева под текст + сверху под шапку */
  background:
    linear-gradient(180deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.28) 16%, rgba(0,0,0,.12) 42%, rgba(0,0,0,.22) 100%),
    linear-gradient(90deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.38) 38%, transparent 62%);
}

/* Контент слайда (Figma 66:8744 — x:255 y:432, w:786) */
.hero__info {
  position:absolute; z-index:5;
  left:var(--hero-info-left);
  top:var(--hero-info-top);
  max-width:var(--hero-info-max-w);
  color:var(--c-text-invert);
  display:flex; flex-direction:column; gap:var(--hero-info-gap);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.hero .swiper-slide.swiper-slide-active .hero__info {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  animation:hero-in .6s var(--ease) both;
}
.hero .swiper-slide:not(.swiper-slide-active) .hero__info {
  opacity:0 !important;
  visibility:hidden !important;
  animation:none !important;
}
.hero__title {
  font-family:var(--font-display);
  font-size:var(--fs-hero);
  line-height:1.05; font-weight:700; margin:0; text-transform:uppercase;
  color:var(--c-text-invert);
  max-width:786px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.hero__divider {
  position:absolute; z-index:9; left:0; right:0;
  bottom:var(--hero-upcoming-height);
  top:auto;
  height:1px; margin:0; border:0;
  background:var(--hero-divider-color);
  pointer-events:none;
}
.hero__upcoming-events {
  position:absolute; z-index:9;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  top:auto;
  width:min(1410px, calc(100% - 2 * var(--hero-upcoming-left)));
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:0;
  padding-top:0;
  pointer-events:auto;
}
.hero__upcoming-card {
  display:flex; flex-direction:column; justify-content:center;
  min-height:var(--hero-upcoming-height);
  height:var(--hero-upcoming-height);
  padding:12px clamp(16px, 1.6vw, 30px);
  background:rgba(30,30,30,.55);
  border-right:1px solid rgba(255,255,255,.3);
  border-radius:0;
  text-decoration:none;
  color:#fff;
  cursor:pointer;
  transition:background var(--t) var(--ease);
  overflow:hidden;
}
.hero__upcoming-card:last-child { border-right:0; }
.hero__upcoming-card:hover { background:rgba(30,30,30,.72); }
.hero__upcoming-card--gold { background:#a67737; }
.hero__upcoming-card--gold:hover { background:var(--c-primary-hover); }
.hero__upcoming-meta { display:block; margin:0 0 2px; line-height:1.3; }
.hero__upcoming-date {
  font:800 var(--fs-hero-upcoming-meta)/1.3 var(--font-body);
  color:#fff;
}
.hero__upcoming-time {
  font:500 var(--fs-hero-upcoming-meta)/1.3 var(--font-body);
  color:#fff;
}
.hero__upcoming-title {
  font:500 var(--fs-hero-upcoming-title)/1.35 var(--font-body);
  color:#fff;
  margin:0;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  overflow-wrap:anywhere;
  max-height:calc(var(--fs-hero-upcoming-title) * 1.35 * 2);
}
.hero__desc {
  font:500 var(--fs-body)/1.5 var(--font-body); max-width:786px;
  margin:0; opacity:.95;
  display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--hero-desc-max-lines, 3);
  overflow:hidden;
  text-shadow:0 1px 6px rgba(0,0,0,.55);
}
/* Hero CTA (Figma 18:243 — 201×58; на десктопе нижний край = блок «Оценка качества») */
.hero__info .btn--primary {
  align-self:flex-start; min-height:58px; padding:20px 30px;
  font-size:15px; font-weight:500; line-height:1.2;
  margin-top:35px; flex-shrink:0;
}
@media (min-width:1024px) {
  .hero__info {
    bottom:var(--hero-chrome-minkult-bottom);
  }
  .hero__info .btn--primary {
    margin-top:auto;
    margin-bottom:0;
  }
}
@media (min-width:768px) {
  .hero__desc { -webkit-line-clamp:1; }
}

@keyframes hero-in { from {opacity:0; transform:translateY(16px);} to {opacity:1; transform:none;} }

/* Стрелки каруселей — без синей обводки, как Figma (круг #E5DCD0 + chevron #A67737) */
:is(
  .hero .swiper-button-prev,
  .hero .swiper-button-next,
  .hero__nav-btn,
  .premiere__nav,
  .repertoire__nav,
  .event-modal__gallery-nav
) {
  outline:none !important;
  box-shadow:none !important;
  border:none !important;
  -webkit-tap-highlight-color:transparent;
}
:is(
  .hero .swiper-button-prev,
  .hero .swiper-button-next,
  .hero__nav-btn,
  .premiere__nav,
  .repertoire__nav,
  .event-modal__gallery-nav
):is(:focus, :focus-visible, :active) {
  outline:none !important;
  box-shadow:none !important;
  border:none !important;
}
.hero .swiper-button-prev:focus-visible,
.hero .swiper-button-next:focus-visible,
.hero__nav-btn:focus-visible {
  background:rgba(80,80,80,.75);
}
.premiere__nav:focus-visible,
.repertoire__nav:focus-visible {
  background:var(--premiere-nav-bg-hover, #EDE4D8);
}

/* Swiper hero — круглые стрелки без синей обводки (Figma 18:250/254) */
.hero .swiper {
  --swiper-theme-color:#fff;
  --swiper-navigation-size:55px;
  border-radius:inherit;
  overflow:hidden;
  clip-path:inset(0 round 0 0 var(--hero-radius) var(--hero-radius));
}
.hero .swiper-wrapper { border-radius:inherit; }
.hero .swiper-button-prev,
.hero .swiper-button-next {
  display:flex; align-items:center; justify-content:center;
  width:55px !important; height:55px !important;
  min-width:55px; min-height:55px; padding:0;
  margin:0; border:none !important; box-sizing:border-box;
  border-radius:50%; aspect-ratio:1;
  background:rgba(60,60,60,.55); color:#fff;
  top:50%; transform:translateY(-50%); z-index:8;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.hero .swiper-button-prev { left:clamp(16px, 6.5vw, 124px); right:auto; }
.hero .swiper-button-next { right:clamp(16px, 6.25vw, 120px); left:auto; }
.hero .swiper-button-prev:after,
.hero .swiper-button-next:after {
  font-size:20px; font-weight:700; color:#fff;
}
.hero .swiper-button-prev:hover,
.hero .swiper-button-next:hover {
  background:rgba(80,80,80,.65); color:#fff;
}
.hero .swiper-pagination {
  left:clamp(var(--space-6), 13.5vw, 259px) !important;
  right:auto !important; width:auto !important;
  bottom:var(--hero-pagination-bottom-desktop, calc(53.35% + 54px)) !important;
  text-align:left; z-index:8;
}
.hero .swiper-pagination-bullet {
  width:10px; height:10px; border-radius:5px;
  background:#fff; opacity:.35; margin:0 8px !important;
}
.hero .swiper-pagination-bullet-active {
  background:var(--c-logo-accent); opacity:1;
}

/* Соцсети + оценка качества — один столбец (Figma 66:8835 + 99:3184) */
.hero__chrome-bar {
  position:absolute; z-index:8;
  right:var(--hero-chrome-minkult-right);
  bottom:var(--hero-chrome-minkult-bottom);
  pointer-events:none;
}
.hero__chrome-stack {
  display:flex; flex-direction:column; align-items:center;
  gap:var(--hero-chrome-gap, 39px);
  pointer-events:auto;
}
.hero__socials {
  position:static; transform:none;
  display:flex; gap:10px; align-items:center; justify-content:center;
  pointer-events:auto;
}
.hero__social-link {
  pointer-events:auto;
}
.hero__social-link img { display:block; width:40px; height:40px; }

/* Оценка качества — PNG: текст + QR, под соцсетями */
.hero__minkult {
  position:static;
  display:block;
  text-decoration:none;
  pointer-events:auto;
  line-height:0;
}
.hero__minkult-img {
  display:block;
  height:80px;
  width:auto;
  max-width:min(321px, 42vw);
}

/* Учредитель (Figma 99:3206 — рамка, gap 10, лого 94×80) */
.hero__founder {
  position:absolute;
  right:var(--hero-chrome-founder-right);
  top:var(--hero-chrome-founder-top);
  width:min(345px, calc(100% - 2 * var(--hero-upcoming-left)));
  display:flex; align-items:center; gap:10px;
  pointer-events:auto;
  text-decoration:none;
  padding:10px 16px;
  background:transparent;
  border:1px solid rgba(255,255,255,.3);
  border-radius:20px;
  box-sizing:border-box;
}
.hero__founder-emblem {
  display:block; width:94px; height:80px; flex-shrink:0;
  object-fit:contain;
}
.hero__founder-label {
  font:500 15px/1.5 var(--font-body);
  color:#fff; text-transform:uppercase;
}


/* =============================================================
   СЕКЦИЯ «АФИША НА БЛИЖАЙШИЕ ДНИ»
   ============================================================= */
.section { padding-block:var(--section-pad-y, 56px); }
/* Соседние секции на одном фоне — без двойного отступа между ними */
.section--cream + .section--cream { padding-top:0; }
.section--cream { background:var(--c-cream); }
.section--dark  { background:var(--c-dark); color:var(--c-text-invert); }
.section__title {
  font-family:var(--font-display); font-size:var(--fs-h2); font-weight:700;
  color:var(--c-text-heading); text-transform:uppercase;
  letter-spacing:.01em; line-height:1.2; margin:0 0 40px;
}

/* Афиша: PDF-репертуар + «Загрузить еще» (Figma 37:6149 / 55:8375, кнопка 55:8219) */
.section--afisha .afisha__head {
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--space-4); margin-bottom:var(--afisha-head-gap, 40px);
}
.section--afisha .afisha__head .section__title { margin:0; text-align:left; }
.afisha__pdf { margin:0; flex-shrink:0; text-align:right; }
.afisha__pdf-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:var(--afisha-pdf-h, 54px); padding:14px 20px;
  background:var(--afisha-pdf-bg, #F6E2C7); color:var(--afisha-pdf-text, #3B2C17);
  border-radius:var(--radius-pill); text-decoration:none; border:0; cursor:pointer;
  font:var(--afisha-pdf-fw, 800) var(--afisha-pdf-fs, 17px)/1.5 var(--font-body);
  white-space:nowrap;
  outline:none; box-shadow:none;
  -webkit-tap-highlight-color:transparent;
  transition:background var(--t) var(--ease);
}
.afisha__pdf-btn:hover { background:var(--afisha-pdf-hover, #FFEDD5); }
.afisha__pdf-btn:is(:focus, :focus-visible) {
  outline:none; box-shadow:none;
}
.afisha__pdf-btn:focus-visible { background:var(--afisha-pdf-hover, #FFEDD5); }
.afisha__pdf-icon { display:block; flex-shrink:0; width:26px; height:26px; }
.afisha__pdf-label,
.afisha__pdf-month { color:inherit; font-style:normal; font-weight:inherit; }
.afisha__more { margin:var(--afisha-more-gap, 20px) 0 0; }

/* Б11: полноэкранный просмотр PDF-афиши */
.afisha-pdf-dialog {
  padding:0; margin:0; border:0; border-radius:0;
  width:100vw; max-width:100vw;
  height:100vh; max-height:100vh;
  overflow:hidden; background:var(--c-dark, #1A1410);
  box-shadow:none;
}
@supports (height:100dvh) {
  .afisha-pdf-dialog { height:100dvh; max-height:100dvh; }
}
.afisha-pdf-dialog::backdrop {
  background:rgba(10,8,6,.82);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
body.is-afisha-pdf-open { overflow:hidden; }
.afisha-pdf-dialog__inner {
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  min-height:100%;
}
.afisha-pdf-dialog__close {
  position:absolute; top:16px; right:16px; z-index:3;
  width:44px; height:44px; padding:10px;
  background:rgba(0,0,0,.55); color:#fff; border:0; border-radius:50%;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background var(--t) var(--ease);
}
.afisha-pdf-dialog__close:hover { background:rgba(0,0,0,.8); }
.afisha-pdf-dialog__viewer {
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
  background:var(--c-dark, #1A1410);
}
.afisha-pdf-dialog__embed {
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:var(--c-dark, #1A1410);
}
.afisha-pdf-dialog__figure { margin:0; overflow:auto; }
.afisha-pdf-dialog__img { display:block; width:100%; height:auto; max-height:80vh; object-fit:contain; }
.afisha-pdf-dialog__actions {
  flex-shrink:0;
  padding:16px 20px 20px;
  display:flex; justify-content:center;
  border-top:1px solid rgba(255,255,255,.12);
  background:var(--c-dark, #1A1410);
}
.afisha-pdf-dialog__download {
  display:inline-flex; align-items:center; gap:8px;
  min-width:200px; font-size:15px; font-weight:600;
}
.afisha__load-more {
  width:100%; min-height:42px; padding:14px 24px;
  font-size:12px; font-weight:500; border-radius:var(--radius-btn);
}
.afisha__empty {
  grid-column:1 / -1;
  margin:0;
  text-align:center;
  font-size:var(--fs-body, 15px);
  color:var(--c-text-muted, #666);
}

.events-grid {
  display:grid; gap:var(--card-gap);
  grid-template-columns:repeat(4, minmax(0, 1fr));
  align-items:stretch;
}

/* ---------- Карточка события (Figma 37:6151 — 330×689, radius 20) ---------- */
.event-card {
  background:var(--c-card); border-radius:var(--radius-card); overflow:hidden;
  box-shadow:var(--shadow-card); display:flex; flex-direction:column;
  transition:box-shadow var(--t) var(--ease), transform var(--t) var(--ease);
}
.event-card:hover { box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }

.event-card__media { position:relative; display:block; overflow:hidden; }
.event-card__poster-link {
  display:block; text-decoration:none;
  aspect-ratio:var(--card-poster-ratio, 330 / 434);
  overflow:hidden;
  border-radius:var(--radius-card) var(--radius-card) 0 0;
  background:#ddd;
}
.event-card__poster {
  width:100%; height:100%; max-width:100%;
  display:block;
  object-fit:cover; object-position:center top;
  border-radius:0;
}
.event-card__details {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:10px; margin:0;
  flex-shrink:0;
  min-height:calc(
    (var(--fs-card-meta, 15px) * 1.2) + var(--card-details-gap, 6px) +
    (var(--fs-card-price, 24px) * 1.2 * var(--card-price-lines, 2))
  );
}
.event-card__details-main {
  flex:1 1 auto; min-width:0;
  display:flex; flex-direction:column; justify-content:flex-end;
  gap:var(--card-details-gap, 6px);
  min-height:100%;
}
.event-card__price-row {
  display:flex; align-items:flex-end; gap:8px; flex-wrap:wrap; margin:0;
  min-height:calc(var(--fs-card-price, 24px) * 1.2 * var(--card-price-lines, 2));
}
.event-card__pushkin {
  flex-shrink:0; position:static;
  display:flex; align-items:center; justify-content:center;
  width:auto; min-width:58px;
  height:var(--card-pushkin-h, 56px);
  min-height:var(--card-pushkin-h, 56px);
  padding:6px 8px;
  background:#f4f4f4; border-radius:8px;
  line-height:0;
  box-sizing:border-box;
}
.event-card__pushkin img { display:block; width:40px; height:auto; object-fit:contain; }
.event-card__title-row {
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:8px; flex:0 0 auto;
  height:calc(var(--fs-card-title, 22px) * 1.2 * 2);
  min-height:calc(var(--fs-card-title, 22px) * 1.2 * 2);
}
.event-card--repertuar .event-card__title-row {
  align-items:center;
}
.event-card__age {
  flex-shrink:0; min-height:auto; padding:6px 12px;
}
.event-card__body {
  padding:var(--card-body-pad); display:flex; flex-direction:column;
  gap:10px; flex:1;
}
.event-card__place {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin:0; min-height:20px;
}
.event-card__place-city {
  display:flex; align-items:center; gap:6px;
  min-width:0;
  font:500 var(--fs-card-meta, 15px)/1.2 var(--font-body);
  color:var(--c-text-heading);
}
.event-card__place-icon {
  flex-shrink:0; width:16px; height:16px;
  stroke:var(--c-primary);
}
.event-card__place-gastroli {
  flex-shrink:0;
  margin-left:auto;
  font:500 var(--fs-card-meta, 15px)/1.2 var(--font-body);
  color:var(--c-primary);
  text-decoration:underline;
  text-underline-offset:2px;
}
.event-card__meta { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:2px; min-height:39px; align-items:flex-start; }
.badge--card {
  background:var(--c-badge-card); color:var(--c-card-meta);
  font-size:var(--fs-card-meta); font-weight:500; line-height:1.2;
  min-height:39px; padding:8px 16px;
}
.event-card__title {
  font-family:var(--font-body); font-size:var(--fs-card-title); font-weight:700;
  line-height:1.2; color:var(--c-text-heading); margin:0;
  flex:1 1 auto; min-width:0;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2;
  overflow:hidden;
}
.event-card__title a { color:inherit; text-decoration:none; }
.event-card__title a:hover { color:var(--c-primary); }
.event-card__date {
  font-size:var(--fs-card-meta); font-weight:400; line-height:1.2;
  color:var(--c-text-heading); margin:0;
  min-height:calc(var(--fs-card-meta, 15px) * 1.2);
}
.event-card__date-num { font-size:20px; font-weight:800; }
.event-card__date-time { font-size:15px; font-weight:400; }
.event-card__price {
  font-family:var(--font-body);
  color:var(--c-primary); font-size:var(--fs-card-price); font-weight:500;
  line-height:1.2; margin:0;
}
.event-card__cta {
  display:flex; gap:10px; flex-wrap:nowrap; margin-top:auto;
  width:100%; max-width:none;
  flex-shrink:0;
  min-height:var(--btn-card-h, 56px);
  align-items:stretch;
}
/* Figma 66:8782 — кнопки покупки билетов */
.btn--card-qt,
.btn--card-k24 {
  display:flex; flex:1 0 0; min-width:0;
  align-items:center; justify-content:center; gap:4px;
  min-height:var(--btn-card-h, 56px);
  height:var(--btn-card-h, 56px);
  padding:8px; border-radius:10px;
  font-family:var(--ff-base); font-size:12px; font-weight:500; line-height:1.2;
  text-decoration:none; border:0; cursor:pointer; text-align:center;
}
.btn--card-qt {
  background:#a67737;
  color:#fff;
}
.btn--card-k24 {
  background:#f6e2c7;
  color:#5e421c;
}
.btn--card-qt span {
  color:#fff;
}
.btn--card-k24 span {
  color:#5e421c;
}
.btn--card-qt:hover {
  background:#b88440;
  color:#fff;
}
.btn--card-k24:hover {
  background:#eacfaa;
  color:#5e421c;
}
.btn--card-qt:hover span {
  color:#fff;
}
.btn--card-k24:hover span {
  color:#5e421c;
}
.btn--card-qt:focus-visible,
.btn--card-k24:focus-visible { outline:none; box-shadow:0 0 0 3px var(--c-primary); }
.btn--card-qt img,
.btn--card-k24 img { width:26px; height:26px; flex-shrink:0; display:block; }
.btn__label--short { display:none; }

/* «Подробнее» — только если нет модалки и нет билетов */
.btn--details {
  flex-basis:100% !important; background:transparent; border:1px solid var(--c-text-muted);
  color:var(--c-text-muted); font-weight:500;
}
.btn--details:hover { border-color:var(--c-primary); color:var(--c-primary); background:transparent; }

/* =============================================================
   СЕКЦИЯ «РЕПЕРТУАР» (Figma 52:6356 — 2 карточки 690×350)
   ============================================================= */
.repertoire-section .section__title { margin-bottom:var(--premiere-title-gap); }
.repertoire__slider-wrap {
  display:grid;
  grid-template-columns:var(--premiere-nav-size, 55px) minmax(0, 1fr) var(--premiere-nav-size, 55px);
  grid-template-areas:"prev slide next";
  gap:clamp(8px, 1.5vw, 20px);
  align-items:center;
  width:100%;
}
.repertoire__swiper {
  grid-area:slide;
  width:100%; min-width:0;
  overflow:hidden;
  border-radius:var(--premiere-card-radius);
}
.repertoire__nav-row { display:contents; }
.repertoire__nav-row .swiper-button-prev { grid-area:prev; }
.repertoire__nav-row .swiper-button-next { grid-area:next; }
.repertoire__nav.swiper-button-prev,
.repertoire__nav.swiper-button-next {
  position:static; transform:none; margin:0; padding:0;
  width:var(--premiere-nav-size, 55px) !important;
  height:var(--premiere-nav-size, 55px) !important;
  min-width:var(--premiere-nav-size, 55px);
  min-height:var(--premiere-nav-size, 55px);
  border-radius:50%; box-sizing:border-box;
  background:var(--premiere-nav-bg, #E5DCD0);
  color:var(--c-primary); flex-shrink:0;
}
.repertoire__nav.swiper-button-prev:after,
.repertoire__nav.swiper-button-next:after {
  font-size:22px; font-weight:700; color:var(--c-primary);
}
.repertoire__nav.swiper-button-prev:hover:not(.swiper-button-disabled),
.repertoire__nav.swiper-button-next:hover:not(.swiper-button-disabled) {
  background:var(--premiere-nav-bg-hover, #EDE4D8);
}
.repertoire__nav.swiper-button-disabled { opacity:.35; pointer-events:none; }
.repertoire-card {
  position:relative; width:100%;
  aspect-ratio:690 / 350;
  border-radius:var(--premiere-card-radius); overflow:hidden;
  color:var(--c-text-invert);
  background-color:var(--c-dark);
  background-image:var(--repertoire-bg);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.repertoire-card__overlay {
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,8,6,.82) 0%, rgba(10,8,6,.35) 55%, transparent 100%);
}
.repertoire-card__body {
  position:absolute; inset:0; z-index:1; max-width:543px;
  padding:clamp(var(--space-6), 4vw, 48px) clamp(var(--space-6), 5vw, 48px);
  display:flex; flex-direction:column; gap:var(--space-4);
  justify-content:center; box-sizing:border-box; overflow:hidden;
}
.repertoire-card__title {
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  font-size:var(--fs-premiere-card); line-height:1.2; margin:0; color:#fff;
  flex-shrink:0;
}
.repertoire-card__desc {
  font:500 var(--fs-body)/1.5 var(--font-body); margin:0; max-width:42ch; color:#fff;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3;
  overflow:hidden; flex-shrink:1; min-height:0;
}
.repertoire-card__btn { align-self:flex-start; min-height:58px; padding:20px 30px; font-size:15px; flex-shrink:0; }
.repertoire__swiper .swiper-slide { height:auto; }
.repertoire-section__cta { text-align:center; margin:var(--premiere-title-gap) 0 0; }
.repertoire-section__btn { min-height:58px; padding:20px 30px; font-size:15px; }

/* =============================================================
   СЕКЦИЯ «ПРЕМЬЕРЫ / Скоро в афише» (Figma 35:320 — карточка 18:275/18:276)
   ============================================================= */
.premiere-section .section__title {
  margin-bottom:var(--premiere-title-gap);
  font-size:var(--fs-premiere-section, 48px);
  color:var(--c-text-heading);
}
.premiere__slider-wrap {
  display:grid;
  grid-template-columns:var(--premiere-nav-size, 55px) minmax(0, 1fr) var(--premiere-nav-size, 55px);
  grid-template-areas:"prev slide next";
  gap:clamp(8px, 1.5vw, 20px);
  align-items:center;
  width:100%;
}
.premiere__swiper {
  grid-area:slide;
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:var(--premiere-card-radius);
}
.premiere__swiper .swiper-slide { height:auto; }
.premiere__nav-row { display:contents; }
.premiere__nav-row .swiper-button-prev { grid-area:prev; }
.premiere__nav-row .swiper-button-next { grid-area:next; }
.premiere-showcase {
  position:relative;
  width:100%;
  height:var(--premiere-card-h);
  min-height:var(--premiere-card-h);
  border-radius:var(--premiere-card-radius);
  overflow:hidden;
  color:#fff;
  background-color:var(--c-dark);
  background-image:var(--premiere-bg);
  background-size:cover;
  background-position:72% center;
  background-repeat:no-repeat;
}
.premiere-showcase__overlay {
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(
    90deg,
    rgba(10, 8, 6, 0.94) 0%,
    rgba(10, 8, 6, 0.84) 26%,
    rgba(10, 8, 6, 0.52) 48%,
    rgba(10, 8, 6, 0.18) 68%,
    rgba(10, 8, 6, 0) 100%
  );
}
.premiere-showcase__body {
  position:absolute; z-index:2;
  left:var(--premiere-content-left, 65px);
  top:var(--premiere-content-top, 60px);
  bottom:var(--premiere-content-bottom, 48px);
  width:min(var(--premiere-content-w, 543px), calc(100% - 2 * var(--premiere-content-left, 65px)));
  max-width:var(--premiere-content-w, 543px);
  display:flex; flex-direction:column; gap:20px;
  padding:0; min-height:0;
  box-sizing:border-box; overflow:hidden;
}
.premiere-showcase__info {
  display:flex; flex-direction:column; gap:var(--premiere-info-gap, 20px);
  flex:1 1 auto; min-height:0; overflow:hidden;
}
.premiere-showcase__meta {
  display:flex; flex-flow:row nowrap; align-items:center;
  gap:14px; margin:0;
}
.premiere-showcase__meta .badge--on-dark {
  background:rgba(255,255,255,.2); color:#fff;
  font-size:var(--fs-premiere-badge, 20px); font-weight:500; line-height:1.2;
  padding:10px 16px; border-radius:var(--radius-pill);
  white-space:nowrap;
}
.premiere-showcase__meta .badge--premiere {
  background:var(--c-primary); color:#fff;
}
.premiere-showcase__copy {
  display:flex; flex-direction:column; gap:var(--premiere-copy-gap, 8px);
  flex:1 1 auto; min-height:0; overflow:hidden;
}
.premiere-showcase__title {
  font-family:var(--font-display); font-weight:700;
  font-size:var(--fs-premiere-card, 60px); line-height:1.21;
  color:#fff; margin:0; text-transform:uppercase;
  flex-shrink:0;
}
.premiere-showcase__desc {
  font:500 15px/1.5 var(--font-body);
  color:#fff; margin:0; max-width:var(--premiere-content-w, 543px);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden; flex-shrink:1; min-height:0;
}
.premiere-showcase__btn {
  align-self:flex-start; min-height:58px;
  padding:20px 30px; font-size:15px;
  flex-shrink:0; margin-top:auto;
}
.premiere__nav.swiper-button-prev,
.premiere__nav.swiper-button-next {
  position:static; transform:none; margin:0; padding:0;
  width:var(--premiere-nav-size, 55px) !important;
  height:var(--premiere-nav-size, 55px) !important;
  min-width:var(--premiere-nav-size, 55px);
  min-height:var(--premiere-nav-size, 55px);
  border-radius:50%; box-sizing:border-box;
  background:var(--premiere-nav-bg, #E5DCD0);
  color:var(--c-primary); flex-shrink:0;
}
.premiere__nav.swiper-button-prev:after,
.premiere__nav.swiper-button-next:after {
  font-size:22px; font-weight:700; color:var(--c-primary);
}
.premiere__nav.swiper-button-prev:hover:not(.swiper-button-disabled),
.premiere__nav.swiper-button-next:hover:not(.swiper-button-disabled) {
  background:var(--premiere-nav-bg-hover, #EDE4D8);
}
.premiere__nav.swiper-button-disabled {
  opacity:.35; pointer-events:none;
}

/* =============================================================
   АДАПТИВ (ТЗ: 320–767 / 768–1023 / 1024+)
   ============================================================= */
@media (max-width:1199px) {
  .section { padding-block:var(--section-pad-y, 40px); }
  .repertoire-section .section__title,
  .premiere-section .section__title { margin-bottom:24px; }
  .repertoire-section__cta { margin-top:20px; }
}
@media (max-width:1023px) {
  .events-grid { grid-template-columns:repeat(2, 1fr); }
  .hero__chrome-bar {
    right: var(--space-4);
    bottom: 18%;
    left: auto;
  }
  .hero__socials {
    position:static; transform:none;
  }
  .hero__founder,
  .hero__minkult,
  .hero__divider,
  .hero__upcoming-events { display:none; }
}
@media (max-width:768px) {
  body.home { overflow-x:hidden; }
  .hero__slide--video .hero__media--video-desktop { display:none; }
  .hero__slide--video .hero__media--video-mobile { display:block; object-position:center center; }

  /* Hero (Figma 243:1329 / 55:6570 — h=643, контент y=197, пагинация y=601, стрелки y=661) */
  .hero__swiper, .hero__slide { min-height:var(--hero-h-mobile); height:var(--hero-h-mobile); }
  .hero {
    min-height:var(--hero-h-mobile); height:var(--hero-h-mobile);
    /* Стрелки выходят ниже hero — снимаем clip/overflow с обёртки */
    overflow:visible;
    clip-path:none;
    border-radius:0;
    /* Отступ = arrow_offset(66) + gap(14) — чтобы стрелки не лезли под следующую секцию */
    margin-bottom:80px;
  }
  /* Скруглённые углы только у внутреннего свайпера (clip media-image) */
  .hero .swiper {
    --swiper-navigation-size:48px;
    clip-path:inset(0 round 0 0 var(--hero-radius) var(--hero-radius));
    overflow:hidden;
  }
  .hero__overlay-grad {
    background:
      linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.4) 42%, rgba(0,0,0,.15) 100%),
      rgba(0,0,0,.3);
  }
  .hero__media { object-position:center center; }
  .hero__info {
    left:var(--hero-content-pad-x, 20px); right:var(--hero-content-pad-x, 20px);
    top:var(--hero-info-top, 30.6%);
    bottom:var(--hero-mobile-content-bottom, 132px);
    max-width:none; gap:20px;
    height:auto; max-height:none;
    overflow:hidden;
    text-align:center; align-items:center;
    justify-content:flex-start;
  }
  .hero__meta { justify-content:center; gap:5px; flex-wrap:wrap; margin-bottom:0; }
  .hero .badge--on-dark {
    min-height:var(--hero-badge-h, 30px); padding:6px 12px;
    font-size:var(--fs-hero-badge, 12px); line-height:1.5;
  }
  .hero__title {
    font-family:var(--font-display); font-weight:700;
    font-size:var(--fs-hero-title, 33.6px); line-height:1.1; margin:0;
    max-width:100%; width:100%;
    white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis;
    flex-shrink:0;
  }
  .hero__desc {
    margin:0; max-width:335px; width:100%;
    font-size:var(--hero-desc-fs, 12px); line-height:1.5; opacity:.95;
    -webkit-line-clamp:var(--hero-desc-max-lines, 2);
    flex-shrink:1; min-height:0;
  }
  .hero__info .btn--primary {
    align-self:flex-start; width:100%; max-width:335px;
    min-height:0; padding:14px 30px;
    font-size:12px; font-weight:500; line-height:1.2;
    border-radius:10px;
    margin-top:auto; flex-shrink:0;
  }
  /* Chrome-bar: соцсети по центру внизу hero */
  .hero__chrome-bar {
    right:auto; left:50%; bottom:82px;
    transform:translateX(-50%);
  }
  .hero__chrome-stack { gap:15px; }
  .hero__socials {
    position:static; transform:none;
    gap:15px; pointer-events:auto;
  }
  .hero__social-link { width:40px; height:40px; }
  .hero__social-link img { width:40px; height:40px; }
  /* Пагинация (Figma 243:1322 / 55:6640 y=601, h=10 → bottom=32px) — под контентом */
  .hero .swiper-pagination {
    left:50% !important; right:auto !important; width:auto !important;
    transform:translateX(-50%);
    bottom:var(--hero-pagination-bottom, 32px) !important;
    text-align:center;
    z-index:6;
    pointer-events:auto;
  }
  /* Стрелки ниже hero (Figma 55:6632/6635 y=661 = hero_bottom+18px; bottom=-66px=(18+48)) */
  .hero .swiper-button-prev,
  .hero .swiper-button-next {
    position:absolute;
    width:48px !important; height:48px !important;
    min-width:48px; min-height:48px;
    top:auto; bottom:-66px;
    transform:none;
    background:rgba(60,60,60,.55); color:#fff;
    border:none !important;
    z-index:10;
  }
  .hero .swiper-button-prev { left:calc(50% - 58px); right:auto; }
  .hero .swiper-button-next { left:auto; right:calc(50% - 58px); }
  .hero .swiper-button-prev:after,
  .hero .swiper-button-next:after { font-size:18px; font-weight:700; color:#fff; }
  .hero .swiper-button-prev:focus-visible,
  .hero .swiper-button-next:focus-visible,
  .hero__nav-btn:focus-visible {
    background:rgba(80,80,80,.75);
  }

  /* Секции */
  .section { padding-block:var(--section-pad-y, 28px); }
  .section__title { text-align:center; margin-bottom:16px; }
  .repertoire-section .section__title,
  .premiere-section .section__title { margin-bottom:16px; }
  .repertoire-section__cta { margin-top:16px; }
  .repertoire__slider-wrap { gap:16px; }
  .section--afisha .afisha__head {
    flex-direction:column; align-items:center;
    margin-bottom:0;
  }
  .section--afisha .afisha__head .section__title {
    margin-bottom:var(--afisha-title-gap, 20px); text-align:center;
  }
  .section--afisha .afisha__pdf {
    margin:0 0 var(--afisha-pdf-gap, 30px); text-align:center;
    width:100%; display:flex; justify-content:center;
  }

  /* Афиша — 1 колонка (Figma 55:8375: карточка 335px, gap 20px) */
  .events-grid {
    grid-template-columns:minmax(0, 1fr);
    gap:var(--card-gap-y, 20px);
  }
  .event-card { border-radius:16px; box-shadow:0 2px 12px rgba(0,0,0,.06); }
  .event-card:hover { transform:none; box-shadow:0 2px 12px rgba(0,0,0,.06); }
  .event-card__poster-link {
    border-radius:16px 16px 0 0;
    background:#ece6df;
  }
  .event-card__poster {
    object-fit:contain;
    object-position:center top;
    background:#ece6df;
  }
  .event-card__body { padding:var(--card-body-pad, 10px); gap:8px; }
  .event-card__place { gap:8px; }
  .event-card__place-city { font-size:var(--fs-card-meta, 14px); gap:5px; }
  .event-card__place-gastroli { font-size:var(--fs-card-meta, 14px); }
  .event-card__place-icon { width:14px; height:14px; }
  .event-card__meta { gap:5px; margin:0; }
  .badge--card {
    min-height:var(--card-badge-h, 23px); padding:4px 10px;
    font-size:var(--fs-card-badge, 10px); font-weight:500; line-height:1.2;
    border-radius:var(--radius-pill);
    white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis;
  }
  .event-card__title { font-size:var(--fs-card-title, 16px); line-height:1.2; }
  .event-card__date { font-size:var(--fs-card-meta, 14px); }
  .event-card__date-num { font-size:16px; }
  .event-card__date-time { font-size:13px; }
  .event-card__price-row { gap:6px; min-height:calc(var(--fs-card-price, 14px) * 1.2 * var(--card-price-lines, 2)); }
  .event-card__price { font-size:var(--fs-card-price, 14px); }
  .event-card__details {
    gap:8px;
    align-items:flex-end;
    min-height:calc(
      (var(--fs-card-meta, 14px) * 1.2) + var(--card-details-gap, 4px) +
      (var(--fs-card-price, 14px) * 1.2 * var(--card-price-lines, 2))
    );
  }
  .event-card__pushkin {
    width:auto; min-width:44px;
    height:var(--card-pushkin-h, 42px);
    min-height:var(--card-pushkin-h, 42px);
    padding:4px 5px;
  }
  .event-card__pushkin img { width:38px; height:36px; }
  .event-card__title-row { height:calc(var(--fs-card-title, 16px) * 1.2 * 2); min-height:calc(var(--fs-card-title, 16px) * 1.2 * 2); }
  .event-card__cta { flex-direction:row; max-width:none; gap:8px; margin-top:auto; min-height:var(--btn-card-h, 31px); }
  .btn--card-qt,
  .btn--card-k24 { padding:6px; font-size:10px; gap:3px; min-height:var(--btn-card-h, 31px); height:var(--btn-card-h, 31px); }
  .btn--card-qt img,
  .btn--card-k24 img { width:20px; height:20px; }
  /* PDF-кнопка: полная ширина (Figma 55:8375) */
  .afisha__pdf-btn { width:100%; justify-content:flex-start; }
  .afisha__load-more { width:100%; min-height:42px; font-size:14px; }

  /* Репертуар и премьеры (Figma 55:8468 / 55:8499) */
  .repertoire__slider-wrap {
    grid-template-columns:1fr;
    grid-template-areas:"slide" "nav";
    gap:20px;
  }
  .repertoire__nav-row {
    display:flex; grid-area:nav;
    justify-content:center; align-items:center; gap:20px;
  }
  .repertoire__nav-row .swiper-button-prev,
  .repertoire__nav-row .swiper-button-next { grid-area:unset; position:static; transform:none; }
  .repertoire__nav-row .repertoire__nav,
  .premiere__nav-row .premiere__nav {
    width:48px; height:48px; min-width:48px; min-height:48px;
  }
  .repertoire__nav-row .repertoire__nav:after,
  .premiere__nav-row .premiere__nav:after {
    font-size:18px; font-weight:700; color:var(--c-primary);
  }
  .repertoire-card {
    aspect-ratio:335 / 260;
    border-radius:var(--premiere-card-radius);
  }
  .repertoire-card__body {
    padding:var(--space-6);
    max-width:none; text-align:center; align-items:center;
  }
  .repertoire-card__title { font-size:var(--fs-repertoire-title, 39px); }
  .repertoire-card__desc { font-size:15px; max-width:none; }
  .repertoire-card__btn {
    align-self:center; min-height:48px; padding:14px 24px;
    font-size:15px; width:auto; max-width:100%;
  }
  .repertoire-section__btn {
    min-height:48px; padding:14px 24px; font-size:15px; width:100%;
  }
  .repertoire-section__cta { margin-top:16px; }
  /* Премьеры mobile (Figma 55:8496 — 335×269) */
  /* Заголовок: «Премьеры» без «/ Скоро в афише» (Figma 55:8496) */
  .premiere-title-sub { display:none; }
  .premiere__slider-wrap {
    grid-template-columns:1fr;
    grid-template-areas:"slide" "nav";
    gap:20px;
  }
  .premiere__nav-row {
    display:flex; grid-area:nav;
    justify-content:center; align-items:center; gap:20px;
  }
  /* Стрелки: static в flex-контейнере nav-row (не absolute) */
  .premiere__nav-row .swiper-button-prev,
  .premiere__nav-row .swiper-button-next { position:static; transform:none; }
  .premiere-showcase {
    height:var(--premiere-card-h);
    min-height:var(--premiere-card-h);
    background-position:center center;
  }
  .premiere-showcase__body {
    position:relative; left:auto; top:auto; bottom:auto;
    width:100%; max-width:none;
    min-height:var(--premiere-card-h);
    padding:24px 20px;
    justify-content:flex-end;
    gap:20px;
    box-sizing:border-box; overflow:hidden;
  }
  .premiere-showcase__info { gap:12px; flex:1 1 auto; min-height:0; overflow:hidden; }
  .premiere-showcase__meta { flex-wrap:wrap; justify-content:center; }
  .premiere-showcase__meta .badge--on-dark { font-size:14px; padding:6px 12px; }
  .premiere-showcase__copy { gap:8px; text-align:center; align-items:center;
    flex:1 1 auto; min-height:0; overflow:hidden;
  }
  .premiere-showcase__title {
    font-size:var(--fs-premiere-card);
    color:#fff;
  }
  .premiere-showcase__desc { font-size:15px; text-align:center; max-width:100%;
    display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;
    line-clamp:2;
    overflow:hidden; flex-shrink:1; min-height:0;
  }
  .premiere-showcase__overlay {
    background:linear-gradient(
      to top,
      rgba(10, 8, 6, 0.94) 0%,
      rgba(10, 8, 6, 0.72) 42%,
      rgba(10, 8, 6, 0.28) 72%,
      rgba(10, 8, 6, 0.08) 100%
    );
  }
  .premiere-showcase__btn {
    align-self:center; width:100%;
    min-height:48px; padding:14px 24px; font-size:14px;
    flex-shrink:0; margin-top:auto;
  }
}

/* =============================================================
   РЕПЕРТУАР + ПРЕМЬЕРЫ — мобайл ≤480px (Figma 243:1450, 243:1466)
   Фиксированная высота, overflow:hidden, border-radius 30px,
   gradient -90deg, типографика, кнопка на всю ширину.
   Десктоп (>480px) не затрагивается.
   ============================================================= */
@media (max-width:480px) {
  /* ---- Обёртки свайперов — скругление совпадает с картой ---- */
  .repertoire__swiper,
  .premiere__swiper { border-radius:30px; overflow:hidden; }

  /* ---- Репертуар-карточка: 335×260, r-30 (Figma 243:1450) ---- */
  .repertoire-card {
    aspect-ratio:335 / 260;
    height:auto;
    border-radius:30px;
    overflow:hidden;
    background-position:center center;
    background-size:cover;
  }
  .repertoire-card__overlay {
    background:linear-gradient(-90deg, transparent 0%, #000 100%);
    border-radius:30px;
  }
  .repertoire-card__body {
    box-sizing:border-box;
    overflow:hidden;
    padding:20px;
    text-align:left;
    align-items:flex-start;
    justify-content:flex-end;
    gap:10px;
    max-width:none;
  }
  .repertoire-card__title {
    font-family:var(--font-display);
    font-weight:700;
    font-size:32px;
    line-height:1.1;
    text-transform:uppercase;
  }
  .repertoire-card__desc {
    font-family:var(--font-body);
    font-size:12px;
    line-height:1.5;
    max-width:none;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
  }
  .repertoire-card__btn {
    width:100%;
    align-self:stretch;
    min-height:44px;
    padding:12px 20px;
    font-size:14px;
    text-align:center;
    box-sizing:border-box;
  }

  /* ---- Премьера-карточка: 335×269, r-30 (Figma 243:1466) ---- */
  .premiere-showcase {
    height:269px;
    min-height:269px;
    max-height:269px;
    border-radius:30px;
    overflow:hidden;
    background-position:center center;
  }
  .premiere-showcase__overlay {
    background:linear-gradient(-90deg, transparent 0%, #000 100%);
    border-radius:30px;
  }
  .premiere-showcase__body {
    height:269px;
    min-height:0;
    max-height:269px;
    box-sizing:border-box;
    overflow:hidden;
    padding:20px;
    justify-content:flex-end;
    align-items:flex-start;
    gap:14px;
    width:100%;
    max-width:none;
    left:auto;
    top:auto;
    bottom:auto;
    position:relative;
  }
  .premiere-showcase__info { gap:10px; flex:1 1 auto; min-height:0; overflow:hidden; }
  .premiere-showcase__meta {
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:6px;
  }
  .premiere-showcase__meta .badge--on-dark {
    font-family:var(--font-body);
    font-size:12px;
    font-weight:500;
    padding:6px 12px;
  }
  .premiere-showcase__copy {
    gap:6px;
    text-align:left;
    align-items:flex-start;
    flex:1 1 auto; min-height:0; overflow:hidden;
  }
  .premiere-showcase__title {
    font-family:var(--font-display);
    font-weight:700;
    font-size:32px;
    line-height:1.1;
    text-transform:uppercase;
  }
  .premiere-showcase__desc {
    font-family:var(--font-body);
    font-size:12px;
    line-height:1.5;
    text-align:left;
    max-width:none;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
    overflow:hidden;
    flex-shrink:1;
    min-height:0;
  }
  .premiere-showcase__btn {
    width:100%;
    align-self:stretch;
    min-height:44px;
    padding:12px 20px;
    font-size:14px;
    box-sizing:border-box;
    flex-shrink:0;
    margin-top:auto;
  }
}

@media (max-width:359px) {
  .events-grid { gap:16px; }
  .event-card__title { font-size:14px; }
}

/* =============================================================
   ФОРМЫ — состояния из UI-kit (Figma 35:5337)
   ============================================================= */
.form-field { display:flex; flex-direction:column; gap:5px; }
.form-field__label { font:500 16px/26px var(--font-body); }
.form-field__input { background:var(--c-input-bg); border:1px solid transparent;
  border-radius:10px; padding:19px 25px; font:500 15px/1.5 var(--font-body);
  color:var(--c-text); outline:none; width:100%;
  transition:border-color var(--t) var(--ease); }
.form-field__input::placeholder { color:var(--c-input-placeholder); }
.form-field__input:focus { border-color:var(--c-input-focus); color:var(--c-input-text); }
.form-field__input--error { border-color:var(--c-input-focus); }
.form-field__error { font:500 12px/1.37 var(--font-body); color:var(--c-error); }

/* Чекбокс (UI-kit): 18×18, border-radius 5px */
.form-checkbox { display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.form-checkbox__box { width:18px; height:18px; border:1px solid var(--c-primary);
  border-radius:5px; background:#fff; flex-shrink:0; display:flex; align-items:center;
  justify-content:center; transition:background var(--t) var(--ease), border-color var(--t) var(--ease); }
.form-checkbox:hover .form-checkbox__box { background:#FFF7EE; }
.form-checkbox input:checked ~ .form-checkbox__box { background:var(--c-primary); }

/* Уважение к настройке ОС + режим слабовидящих отключают анимации (ТЗ 2.3) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
body.low-vision-mode .hero__media { display:none; } /* видео off в a11y-режиме */
body.low-vision-mode .hero__overlay-grad { background:#000; }

/* ---------- Карточка с модалкой ---------- */
.event-card--modal { position:relative; cursor:pointer; }
.event-card--modal .event-card__open {
  position:absolute; inset:0; z-index:2; width:100%; height:100%;
  border:0; background:transparent; cursor:pointer;
}
.event-card--modal .event-card__open:focus-visible {
  outline:3px solid var(--c-menu-active); outline-offset:-3px; border-radius:var(--radius-card);
}
.event-card--modal .event-card__cta { position:relative; z-index:3; }

/* Legacy Popup Maker — не должен торчать под футером */
body.home .pum-overlay,
body.home .pum {
  display: none !important;
  visibility: hidden !important;
}

/* ---------- Модалка спектакля (<dialog>, Figma 35:5227 / 35:5256) ---------- */
dialog.event-modal:not([open]) {
  display: none !important;
}
.event-modal {
  border:0; border-radius:var(--modal-radius); padding:0;
  max-width:min(930px, calc(100vw - 2rem)); width:100%;
  background:var(--c-modal-bg); color:var(--c-modal-text);
  box-shadow:0 24px 64px rgba(0,0,0,.55);
  max-height:calc(100vh - 2rem); overflow:hidden;
  color-scheme:dark;
}
dialog.event-modal::backdrop { background:rgba(0,0,0,.82); }
.event-modal__inner {
  position:relative; isolation:isolate;
  display:flex; flex-direction:column;
  max-height:calc(100vh - 2rem);
}

/* Крестик 50×50, верх-право — Figma 35:5228: bg #1f0b0f, r-tr + r-bl 30px */
.event-modal__close {
  position:absolute; top:0; right:0; z-index:20;
  width:50px; height:50px; border:0;
  border-radius:0 30px 0 30px;
  background:#1f0b0f; color:var(--c-modal-text); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; padding:0;
  transition:background var(--t) var(--ease);
}
.event-modal__close:hover { background:#2e0e14; }
.event-modal__close svg {
  display:block; pointer-events:none; flex-shrink:0;
}

/* Скролл — весь контент включая цену/CTA/сноску */
.event-modal__scroll {
  overflow:auto; flex:1 1 auto;
  padding:0 0 var(--space-8);
}

/* Галерея (Figma 190:2007): 882×461 ≈ 1.91:1 */
.event-modal__poster-wrap { margin-bottom:0; }
.event-modal__poster,
.event-modal__gallery-img {
  width:100%; height:auto; aspect-ratio:882/461; object-fit:cover;
  border-radius:var(--modal-radius) var(--modal-radius) 0 0; display:block;
}
.event-modal__gallery-img--clickable,
.event-modal__poster--clickable { cursor:zoom-in; }
.event-modal__gallery { margin-bottom:0; }
.event-modal__gallery-main-wrap { margin-bottom:var(--space-3); }
.event-modal__swiper-main {
  border-radius:var(--modal-radius) var(--modal-radius) 0 0; overflow:hidden;
  width:100%; aspect-ratio:882/461; background:var(--c-modal-surface);
}
.event-modal__swiper-main .swiper-slide { height:auto; }

/* Лента превью (Figma 52:6416): стрелки + 4 превью 100×100 */
.event-modal__gallery-thumbs-wrap {
  display:flex; align-items:center; gap:8px;
  padding:0 var(--space-6) var(--space-4);
}
.event-modal__gallery-nav {
  flex-shrink:0; width:28px; height:28px; border:0; border-radius:50%;
  background:rgba(255,255,255,.12); color:var(--c-modal-text); cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0;
  transition:background var(--t) var(--ease);
}
.event-modal__gallery-nav:hover { background:rgba(255,255,255,.25); }
.event-modal__gallery-nav.swiper-button-disabled { opacity:.3; cursor:default; }
.event-modal__swiper-thumbs { flex:1; min-width:0; }
.event-modal__swiper-thumbs .swiper-slide { width:100px; }
.event-modal__gallery-thumb {
  width:100px; height:100px; object-fit:cover; border-radius:10px; display:block; cursor:pointer;
  opacity:.5; transition:opacity .2s;
}
.event-modal__swiper-thumbs .swiper-slide-thumb-active .event-modal__gallery-thumb { opacity:1; }

/* Lightbox — полноэкранный просмотр фото из модалки */
.event-modal__lightbox {
  position:fixed; inset:0; width:min(1200px, calc(100vw - 48px)); max-width:none;
  max-height:calc(100vh - 48px); margin:auto; padding:56px 72px; border:0;
  background:transparent; overflow:visible;
}
.event-modal__lightbox::backdrop { background:rgba(0,0,0,.88); }
.event-modal__lightbox-figure {
  display:flex; align-items:center; justify-content:center; margin:0;
  min-height:min(70vh, 560px);
}
.event-modal__lightbox-img {
  display:block; max-width:100%; max-height:calc(100vh - 120px);
  width:auto; height:auto; object-fit:contain; border-radius:12px;
}
.event-modal__lightbox-close {
  position:fixed; top:20px; right:20px; z-index:2;
  width:44px; height:44px; border:0; border-radius:50%;
  background:rgba(255,255,255,.16); color:#fff; cursor:pointer;
}
.event-modal__lightbox-close::before,
.event-modal__lightbox-close::after {
  content:""; position:absolute; top:50%; left:50%; width:18px; height:2px; background:currentColor;
}
.event-modal__lightbox-close::before { transform:translate(-50%, -50%) rotate(45deg); }
.event-modal__lightbox-close::after { transform:translate(-50%, -50%) rotate(-45deg); }
.event-modal__lightbox-nav {
  position:fixed; top:50%; z-index:2; width:55px; height:55px; padding:0; border:0;
  border-radius:50%; background:rgba(255,255,255,.16); color:#fff; cursor:pointer;
  transform:translateY(-50%); transition:background .2s ease;
}
.event-modal__lightbox-nav:hover,
.event-modal__lightbox-nav:focus-visible { background:rgba(255,255,255,.28); }
.event-modal__lightbox-nav--prev { left:max(12px, calc(50% - 620px)); }
.event-modal__lightbox-nav--next { right:max(12px, calc(50% - 620px)); }
.event-modal__lightbox-nav--prev::after,
.event-modal__lightbox-nav--next::after { content:"‹"; font:700 28px/1 var(--font-body); color:#fff; }
.event-modal__lightbox-nav--next::after { content:"›"; }
.event-modal__lightbox-nav[hidden] { display:none; }

/* Контент */
.event-modal__content {
  padding: var(--space-5) var(--event-modal-pad-x, var(--space-6)) var(--event-modal-pad-bottom, var(--space-6));
  box-sizing: border-box;
}

/* Бейджи — Figma 35:5258: bg #461e26, Manrope Medium 15px */
.event-modal__badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:var(--space-4); }
.event-modal__badges[hidden] { display:none; }
.event-modal .badge--modal {
  background:var(--c-modal-badge-bg); color:var(--c-modal-text);
  font:500 15px/1.5 var(--font-body);
  padding:8px 14px; border-radius:var(--radius-pill);
}

/* Заголовок + Пушкинская карта рядом (Figma 35:5266 / tall_monochrome) */
.event-modal__title-row {
  display:flex; align-items:flex-start; gap:12px;
  margin-bottom:var(--space-4);
}
.event-modal__title-row .event-modal__title { margin-bottom:0; flex:1 1 auto; }
.event-modal__title-pushkin { flex-shrink:0; padding-top:4px; }
.event-modal__title-pushkin[hidden] { display:none; }
.event-modal__pushkin-badge { display:block; width:86px; height:24px; object-fit:contain; }

/* Заголовок — Figma 35:5266: Manrope Bold 22px (не Cormorant) */
.event-modal__title {
  font:700 22px/1.5 var(--font-body);
  margin:0 0 var(--space-4);
  color:var(--c-modal-text);
}

/* Описание — Figma 35:5277 */
.event-modal__desc {
  font:500 17px/1.5 var(--font-body);
  margin-bottom:var(--space-4); color:var(--c-modal-text);
}
.event-modal__desc:empty { display:none; margin:0; }
.event-modal__desc p { margin:0 0 .75rem; }
.event-modal__desc p:last-child { margin-bottom:0; }

/* Метаданные: автор + место (Figma 35:5263) */
.event-modal__meta {
  display:flex; flex-direction:column; gap:6px;
  margin-bottom:var(--space-5);
}
.event-modal__meta[hidden] { display:none; }

/* Автор / Постановка — Figma 52:6409-6410: лейбл #a67737, значение белый */
.event-modal__autor {
  font:500 17px/1.5 var(--font-body);
  color:var(--c-modal-text);
}
.event-modal__autor p { margin:0 0 .25rem; }
.event-modal__autor p:last-child { margin-bottom:0; }
.event-modal__autor-label { color:var(--c-modal-gold); }

/* Место проведения — Figma 35:5289 */
.event-modal__venue {
  display:flex; align-items:flex-start; gap:8px; margin:0;
  font:500 17px/1.5 var(--font-body); color:var(--c-modal-text);
}
.event-modal__venue[hidden] { display:none; }
.event-modal__venue-icon { flex-shrink:0; margin-top:2px; stroke:var(--c-modal-gold); }
.event-modal__venue-label {
  color:var(--c-modal-gold); flex-shrink:0; white-space:nowrap;
}

/* Аккордеоны */
.event-modal__accordions { display:flex; flex-direction:column; gap:var(--space-3); margin-bottom:var(--space-5); }
.event-modal__accordions:has(.event-modal__accordion[hidden]:only-child),
.event-modal__accordions:not(:has(.event-modal__accordion:not([hidden]))) { display:none; }
.event-modal__accordion {
  border:1px solid var(--c-modal-border); border-radius:15px; overflow:hidden;
  background:var(--c-modal-surface);
}
.event-modal__accordion[hidden] { display:none; }
.event-modal__accordion-summary {
  padding:14px 16px; font-weight:600; cursor:pointer; list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  color:var(--c-modal-gold);
}
.event-modal__accordion-summary::-webkit-details-marker { display:none; }
.event-modal__accordion-label {
  display:inline-flex; align-items:center; gap:10px;
  font:600 17px/1.5 var(--font-body); color:var(--c-modal-gold);
}
.event-modal__accordion-icon { stroke:var(--c-modal-gold); flex-shrink:0; }
.event-modal__accordion-chevron {
  flex-shrink:0;
  width:34px; height:34px; padding:7px; box-sizing:border-box;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1.5px solid rgba(232,198,138,.65);
  stroke:#e8c68a; color:#e8c68a;
  transition:transform .2s, background .2s, border-color .2s;
}
.event-modal__accordion-summary:hover .event-modal__accordion-chevron,
.event-modal__accordion-summary:focus-visible .event-modal__accordion-chevron {
  background:rgba(255,255,255,.18);
  border-color:#e8c68a;
}
.event-modal__accordion[open] .event-modal__accordion-chevron { transform:rotate(180deg); }
.event-modal__accordion[open] .event-modal__accordion-summary {
  border-bottom:1px solid var(--c-modal-border);
}

/* Сеансы (Figma 109:7286) */
.event-modal__sessions {
  list-style:none; margin:0; padding:10px 10px 14px;
  display:flex; flex-direction:column; gap:6px;
}
/* Figma 109:7286: pl-20 pr-10 py-10, gap-20 */
.event-modal__session {
  display:flex; align-items:center; gap:20px; flex-wrap:nowrap;
  padding:10px 10px 10px 20px; border-radius:15px;
  background:var(--c-modal-session); color:var(--c-modal-text);
}

/* Дата + время — Figma 109:7289 / 109:7290: gap-30 */
.event-modal__session-datetime {
  display:flex; align-items:center; gap:30px; flex:1 0 auto;
}
.event-modal__session-date {
  font:700 20px/1.5 var(--font-body); color:var(--c-modal-text);
}
.event-modal__session-time {
  font:400 14px/1.5 var(--font-body); color:var(--c-modal-text);
}

/* Пушкинская карта в сеансе (Figma 109:7291 "long_monochrome") */
.event-modal__session-pushkin {
  display:flex; align-items:center; flex-shrink:0;
}
/* Figma 109:7291: w-105 h-30 */
.event-modal__session-pushkin img {
  display:block; width:105px; height:30px; object-fit:contain;
}

/* Кнопки в строке сеанса — Figma 109:7292-7296: gap-5, w-160 */
.event-modal__session-actions {
  display:flex; gap:5px; flex-shrink:0;
}
.event-modal .btn--modal-session {
  width:160px; min-height:auto; padding:10px 15px; border-radius:10px;
  text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center; gap:4px;
  font:500 12px/1.2 var(--font-body); text-align:center;
}
.event-modal .btn--modal-session.btn--card-qt { background:#a67737; color:#fff; }
.event-modal .btn--modal-session.btn--card-k24 { background:#f6e2c7; color:#5e421c; }
.event-modal .btn--modal-session.btn--card-qt span { color:#fff; }
.event-modal .btn--modal-session.btn--card-k24 span { color:#5e421c; }
.event-modal .btn--modal-session.btn--card-qt:hover { background:#b88440; color:#fff; transform:none; }
.event-modal .btn--modal-session.btn--card-k24:hover { background:#eacfaa; color:#5e421c; transform:none; }
.event-modal .btn--modal-session.btn--card-qt:hover span { color:#fff; }
.event-modal .btn--modal-session.btn--card-k24:hover span { color:#5e421c; }
.event-modal .btn--modal-session img { width:20px; height:20px; flex-shrink:0; display:block; }

/* Состав (Figma 53:6560) */
.event-modal__cast-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:10px 20px;
  padding:10px 16px 8px;
}
.event-modal__cast-item { display:flex; flex-direction:column; gap:1px; }
.event-modal__cast-role {
  font:700 17px/1.5 var(--font-body);
  color:var(--c-modal-text);
}
.event-modal__cast-actor {
  font:400 15px/1.5 var(--font-body);
  color:var(--c-modal-text); opacity:.7;
}
.event-modal__cast-more { margin:0; padding:0 16px 14px; }
.event-modal__cast-link {
  color:var(--c-modal-gold); font:500 17px/1.5 var(--font-body); text-decoration:underline;
}
.event-modal__cast-link:hover { color:var(--c-primary-hover); }

/* Цена — Figma 35:5311: Manrope 30px #a67737 (не Cormorant) */
.event-modal__price {
  margin:0 0 var(--space-4);
  font:500 30px/1.5 var(--font-body); color:var(--c-modal-gold);
}
.event-modal__price[hidden] { display:none; }

/* CTA кнопки в ряд равной ширины (Figma 35:5269): flex:1 1 0 → все 3 одинаковые */
.event-modal__cta {
  display:flex; flex-wrap:nowrap; gap:10px; margin-bottom:var(--space-3);
}
.btn--modal-ticket {
  flex:1 1 0; min-width:0; min-height:40px; padding:10px 8px; border-radius:10px;
  text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center; gap:4px;
  font:500 12px/1.5 var(--font-body); text-align:center;
}
.btn--modal-ticket.btn--card-qt { background:#a67737; color:#fff; }
.btn--modal-ticket.btn--card-k24 { background:#f6e2c7; color:#5e421c; }
.btn--modal-ticket.btn--card-qt span { color:#fff; }
.btn--modal-ticket.btn--card-k24 span { color:#5e421c; }
.btn--modal-ticket.btn--card-qt:hover { background:#b88440; color:#fff; }
.btn--modal-ticket.btn--card-k24:hover { background:#eacfaa; color:#5e421c; }
.btn--modal-ticket.btn--card-qt:hover span { color:#fff; }
.btn--modal-ticket.btn--card-k24:hover span { color:#5e421c; }
.btn--modal-ticket img { width:20px; height:20px; flex-shrink:0; display:block; }
.btn--modal-details {
  flex:1 1 0; min-width:0; min-height:40px; padding:10px 8px; border-radius:10px;
  background:#f6e2c7; color:#5e421c; text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center;
  font:500 12px/1.5 var(--font-body); text-align:center;
}
.btn--modal-details:hover { opacity:.88; }

/* Сноска */
.event-modal__note {
  margin:0; font:500 12px/1.5 var(--font-body);
  color:var(--c-modal-text); opacity:.5;
}

@media (max-width:768px) {
  .event-modal {
    width:calc(100vw - 40px); max-width:none;
    max-height:calc(100dvh - 40px); margin:auto;
    border-radius:20px;
  }
  .event-modal__poster,
  .event-modal__gallery-img { border-radius:20px 20px 0 0; }
  .event-modal__swiper-main { border-radius:20px 20px 0 0; }

  /* Превью 70px вместо 100px */
  .event-modal__gallery-thumbs-wrap { padding:0 var(--event-modal-pad-x, 20px) var(--space-3); }
  .event-modal__swiper-thumbs .swiper-slide { width:70px; }
  .event-modal__gallery-thumb { width:70px; height:70px; }

  .event-modal__content {
    padding: var(--event-modal-pad-x, 20px) var(--event-modal-pad-x, 20px) var(--event-modal-pad-bottom, 20px);
  }
  .event-modal__close { width:44px; height:44px; border-radius:0 20px 0 20px; }

  /* Место проведения: лейбл + адрес в столбик */
  .event-modal__venue { flex-wrap:wrap; }
  .event-modal__venue-label { flex:0 0 auto; }
  .event-modal__venue-text { flex:0 0 100%; padding-left:28px; }

  /* Сеанс: дата → пушкин → кнопки в столбик */
  .event-modal__session { flex-direction:column; align-items:flex-start; gap:8px; }
  .event-modal__session-datetime { flex:unset; }
  .event-modal__session-actions { margin-left:0; width:100%; flex-direction:column; }
  .event-modal .btn--modal-session { width:100%; justify-content:center; }

  .event-modal__cta { flex-direction:column; }
  .event-modal__cta .btn { width:100%; }
}

/* ---------- Модалка ≤480px (телефоны, Figma 243:1638, базовый 375px) ---------- */
@media (max-width:480px) {
  /* Крестик: 50×50 по Figma 243:1744 */
  .event-modal__close { width:50px; height:50px; border-radius:0 20px 0 20px; }

  /* Галерея превью: 60px — экономим место на узкой ленте */
  .event-modal__gallery-thumbs-wrap { padding:0 var(--event-modal-pad-x, 20px) 10px; gap:6px; }
  .event-modal__swiper-thumbs .swiper-slide { width:60px; }
  .event-modal__gallery-thumb { width:60px; height:60px; }

  /* Бейджи (Figma 243:1641): 12px */
  .event-modal .badge--modal { font-size:12px; padding:8px 14px; }

  /* Описание (Figma 243:1648): 12px */
  .event-modal__desc { font-size:12px; }

  /* Автор / Постановка (Figma 243:1649–1650): 12px */
  .event-modal__autor { font-size:12px; }

  /* Место: иконка + лейбл + адрес в одну строку с переносом (Figma 243:1657) */
  .event-modal__venue { flex-wrap:nowrap; font-size:12px; }
  .event-modal__venue-label { flex:0 0 auto; }
  .event-modal__venue-text { flex:1 1 auto; padding-left:0; }

  /* Аккордеоны: компактнее (Figma 243:1658 / 243:1692) */
  .event-modal__accordion-summary { padding:10px 12px; }
  .event-modal__accordion-label { font-size:12px; }

  /* Сеанс (Figma 243:1668):
     Ряд 1: дата + время + пушкин (justify-between)
     Ряд 2: кнопки рядом (flex 1 каждая) */
  .event-modal__session {
    flex-direction:row; flex-wrap:wrap; align-items:center;
    gap:10px; padding:10px;
  }
  .event-modal__session-datetime { flex:1 0 auto; gap:12px; }
  .event-modal__session-date { font-size:16px; }
  .event-modal__session-time { font-size:14px; }
  .event-modal__session-pushkin { flex-shrink:0; margin-left:auto; }
  .event-modal__session-actions {
    width:100%; margin-left:0;
    flex-direction:row; flex-wrap:nowrap; gap:5px;
  }
  .event-modal .btn--modal-session { flex:1 1 0; width:auto; min-width:0; }

  /* Состав: 2 колонки (Figma 243:1697), 12px — НЕ 1fr */
  .event-modal__cast-grid {
    grid-template-columns:1fr 1fr; gap:10px 5px; padding:10px 12px 8px;
  }
  .event-modal__cast-role { font-size:12px; }
  .event-modal__cast-actor { font-size:12px; }
  .event-modal__cast-link { font-size:12px; }

  /* CTA: в столбик, на всю ширину (Figma 243:1723) */
  .event-modal__cta { flex-direction:column; gap:5px; }
  .event-modal__cta .btn { width:100%; }

  /* Сноска (Figma 243:1730): 9px */
  .event-modal__note { font-size:9px; }
}

/* =============================================================
   СЕКЦИЯ «НОВОСТИ» (Figma 10:2 / шаг 2.3)
   ============================================================= */
.section--news { padding-top:0; }
.home-news__head {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:var(--space-4); margin-bottom:var(--premiere-title-gap, 40px);
}
.home-news__head .section__title { margin:0; text-align:left; }
.home-news__all {
  flex-shrink:0; font:500 15px/1.5 var(--font-body);
  color:var(--c-primary); text-decoration:none; white-space:nowrap;
}
.home-news__all:hover { color:var(--c-primary-hover); }
.home-news__grid {
  display:grid; gap:var(--card-gap);
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.home-news__grid .news-card {
  display:flex; flex-direction:column;
  background:var(--c-card); border-radius:var(--radius-card);
  overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.04);
  transition:box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease);
}
.home-news__grid .news-card:hover {
  box-shadow:var(--shadow-card-hover); transform:translateY(-2px);
}
.home-news__grid .news-card__thumb {
  display:block; width:100%; aspect-ratio:250 / 135;
  object-fit:cover; background:var(--c-badge-light);
}
.home-news__grid .news-card__thumb--placeholder { min-height:135px; }
.home-news__grid .news-card__body {
  display:flex; flex-direction:column; flex:1; gap:8px;
  padding:var(--card-body-pad, 15px);
}
.home-news__grid .news-card__date { font-size:15px; color:var(--c-card-meta); }
.home-news__grid .news-card__title {
  margin:0; font:500 var(--fs-card-title, 22px)/1.2 var(--font-body);
  color:var(--c-text-heading);
}
.home-news__grid .news-card__title a { color:inherit; text-decoration:none; }
.home-news__grid .news-card__title a:hover { color:var(--c-primary); }
.home-news__grid .news-card__excerpt {
  margin:0; font-size:15px; color:var(--c-text-muted); flex:1;
}
.home-news__grid .news-card__more {
  align-self:flex-start; margin-top:auto;
  min-height:44px; padding:12px 20px; font-size:15px;
}

/* =============================================================
   СЕКЦИЯ «О ТЕАТРЕ» (Figma 66:8714 / шаг 2.4)
   ============================================================= */
.section--about { padding-top:0; }
.home-about__grid {
  display:grid; gap:var(--space-8);
  grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr);
  align-items:start;
}
.home-about__media { margin:0; border-radius:var(--radius-card); overflow:hidden; }
.home-about__img {
  display:block; width:100%; height:auto;
  aspect-ratio:400 / 260; object-fit:cover;
}
.home-about__body {
  display:flex; flex-direction:column; gap:var(--space-6);
  max-width:640px;
}
.home-about__text {
  margin:0; font:500 15px/1.5 var(--font-body);
  color:var(--c-text-muted);
}
.home-about__btn { align-self:flex-start; min-height:46px; padding:14px 30px; }

@media (max-width:1023px) {
  .home-news__grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:768px) {
  .home-news__head { flex-direction:column; align-items:stretch; }
  .home-news__head .section__title { text-align:center; }
  .home-news__all { align-self:center; }
  .home-news__grid { grid-template-columns:1fr; }
  .home-about__grid { grid-template-columns:1fr; }
  .home-about__btn { align-self:stretch; text-align:center; }
}

/* Режим слабовидящих: контраст, без анимаций */
body.low-vision-mode .event-modal { background:#000; color:#fff; border:2px solid #fff; }
body.low-vision-mode dialog.event-modal::backdrop { background:rgba(0,0,0,.9); }
body.low-vision-mode .event-modal__desc,
body.low-vision-mode .event-modal__note,
body.low-vision-mode .event-modal__autor,
body.low-vision-mode .event-modal__venue { color:#fff; }
body.low-vision-mode .event-modal__price { color:#ff0; }
body.low-vision-mode .event-modal__close { background:#fff; color:#000; }
body.low-vision-mode .btn--modal-ticket,
body.low-vision-mode .btn--modal-details,
body.low-vision-mode .btn--modal-session {
  background:#000 !important; color:#fff !important; border:2px solid #ff0 !important;
}
