/* Компоненты: навигация, hero, кнопки, карточки афиши/новостей, футер.
   Координаты — точные замеры макета (Figma, 1920). */

/* === навигация === */
/* меню — всегда один ряд: переносы запрещены, зазоры сжимаются на средних экранах
   (ноут 3000×2000 при DPR 2 = 1500 css-px) */
.nav ul { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px 30px; white-space: nowrap; }
.nav a { white-space: nowrap; }
.nav a {
  font-family: var(--f-head);
  font-weight: 600;
  font-size: var(--fs-nav-h);
  line-height: var(--lh-nav-h);
  text-transform: uppercase;   /* пункты меню — капсом (макет); данные в БД хранятся в обычном регистре */
  color: var(--c-on-bg);
  letter-spacing: 0;
}
.nav a:hover, .nav .current-menu-item a, .nav .current_page_item a { color: var(--c-on-bg); opacity: 0.7; }
.nav .current-menu-item > a, .nav .current_page_item > a { color: var(--c-accent); opacity: 1; }

.site-phone {
  font-family: var(--f-head);
  font-weight: 600;
  font-size: var(--fs-phone-h);
  line-height: var(--lh-phone-h);
  color: var(--c-on-bg);
  white-space: nowrap;
}
.site-phone:hover { color: var(--c-accent); }

/* соцсети в шапке (Figma Frame 269: 45×17 — Telegram 20×17 + VK 20×12,
   выравнивание по нижнему краю, зазор 5) */
.site-header__socials .socials { gap: 5px; }
.site-header__socials .socials__item img { display: block; }
.site-header__socials .socials__item--tg img { width: 20px; height: 17px; }
.site-header__socials .socials__item--vk img { width: 20px; height: 12px; }

/* === hero-слайдер на Swiper (вертикальная раскладка slider_1:
   шапка 120 — непрозрачная полоса, слайд-контент в нижних 960px) === */
.hero-slider {
  position: relative;
  background: #0b0b0d;
}

.hero-swiper {
  position: relative;
  display: flex;
  flex-direction: column;   /* слайды + полоса индикаторов в потоке: бегунок всегда ниже контента */
  height: calc(100vh - var(--header-h));
  min-height: 520px;
}

/* переопределяем height:100% обёртки из swiper-bundle: слайды занимают
   область над индикаторами, а не весь контейнер */
.hero-swiper .swiper-wrapper {
  height: auto;
  flex: 1;
  min-height: 0;
}

.hero-swiper .swiper-slide {
  position: relative;
  overflow: hidden;
  color: var(--c-on-accent);
  background: #0b0b0d;
}

.slide__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  display: block;
}
/* picture-обёртка баннера (десктоп/мобайл source) — img внутри заполняет её */
.slide__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: inherit;
  display: block;
}

.slide__scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(11, 11, 13, 0.72) 0%, rgba(11, 11, 13, 0.34) 34%, rgba(11, 11, 13, 0.08) 58%),
    linear-gradient(0deg, rgba(11, 11, 13, 0.62) 0%, rgba(11, 11, 13, 0.05) 36%);
}

.slide__inner {
  position: absolute; inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* высото-адаптивный отступ: ~196 на MacBook (~950vh), 233 на высоких окнах,
     меньше на низких — стек не наезжает на низ слайда;
     padding-bottom = высота полосы индикаторов (navi поверх фото слайдом выше) */
  padding: clamp(120px, 20.5vh, 233px) 0 96px;   /* slider_1: плашка y≈353 − шапка 120 */
}

/* слайд-интро: фон = Gemini_Generated_Image из макета (уже тёмный монохром) */
.slide--intro .slide__bg {
  object-position: center;
}
.slide--intro .slide__scrim {
  background: none;
}
.slide--intro .slide__inner {
  /* композиция main-1/banners0: лого и кнопка центрированы в зоне НАД
     индикаторами (полоса штрихов — bottom 110px, см. .hero-swiper
     .hero-navi), поэтому у inner bottom = 23.5%, а не 0. Зазор лого→кнопка
     80 (banner0: лого 100..454, кнопка 534..614). padding:0 — иначе
     наследуются паддинги базового .slide__inner и центр съезжает */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 80px;
  padding: 0;
  inset: 0 0 23.5% 0;
}
.slide--intro .slide__cta {
  /* в потоке флекс-композиции: сбрасываем абсолют слайда спектакля */
  position: static;
  left: auto; right: auto; bottom: auto;
  transform: none;
  padding: 0;
}
.slide__intro-logo {
  /* лого масштабируется по ВЫСОТЕ зоны над индикаторами: inner = 76.5svh,
     минус зазор 80 и кнопка 80 → доступно ~76.5svh−160, с запасом −300;
     ниже 150px не опускается. width:auto — пропорции svg (844:278) */
  width: auto;
  height: clamp(150px, calc(76.5svh - 300px), 360px);
}

/* слайды спектаклей: координаты макета slider_1 (система слайда 960 = 1080 − шапка 120) */
.slide__plate {
  align-self: flex-start;
  max-width: 905px;
  min-height: 171px;
  padding: 17px 40px 17px var(--sp-page);
  background: var(--c-accent);
  display: flex;
  align-items: center;
}

.slide__plate h2 {
  font-family: var(--f-head);
  font-weight: 500;
  /* макет Frame 593-596 (слайды главной): Oswald 500 120 при 1920 */
  font-size: clamp(40px, 6.25vw, var(--fs-hero-title));
  line-height: var(--lh-hero-title);
  color: var(--c-on-accent);
}

.slide__sub {
  margin: 19px 0 0 var(--sp-page);
  max-width: 600px;
  font-family: var(--f-head);
  font-weight: 400;
  font-size: clamp(28px, 3.1vw, var(--fs-sub));
  line-height: var(--lh-sub);
  color: var(--c-on-accent);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.slide__credits { align-self: stretch; pointer-events: none; }

/* === слайды «Основного баннера» (макет Frame 593-596): заголовок и кнопка
   по центру контентной зоны 1280 (x320), пагинация — под кнопкой === */
.slide--banner .slide__inner { display: block; } /* блоки позиционируются сами */

/* макетная обработка фото (затемнение) уже «запечена» в самих картинках
   (экспорт Mask group) — наш градиент поверх не нужен; на мобиле возвращается */
.slide--banner .slide__scrim { background: none; }

/* заголовок: центр контентной зоны (320/1920), верх 419/960
   (Frame 764: frame-762 top = 110+309, контент колонки прижат к низу) */
.banner-slide__lead {
  position: absolute;
  left: 16.667%;
  right: 16.667%;
  top: 43.6%;
  text-align: center;
}
.banner-slide__title {
  margin: 0;
  font-family: var(--f-head);
  font-weight: 500;                        /* Oswald Medium */
  font-size: clamp(44px, 6.25vw, 120px);
  line-height: 1.15;                       /* 138/120 */
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--c-on-accent);
}

/* кнопка слайда баннера: 290×80 по центру, кнопка 601..681 → 279/960 от низа
   (Frame 764: гэп 60 под заголовком, group-130 пагинации — 110 от низа).
   Специфичность .slide--banner — перебить базовый .slide__cta (right:318),
   который в файле ниже и при равной специфичности победил бы */
.slide--banner .slide__cta--banner {
  position: absolute;
  left: 0; right: 0;
  bottom: 29.1%;
  display: flex;
  justify-content: center;
  margin: 0;
}
/* кнопка слайда баннера: 290×80, текст 20px SemiBold КАПС (Frame 593-596).
   Ограничение длины — 20 симв. в админке */
.slide--banner .slide__cta--banner .btn {
  width: 290px;
  height: 80px;
  padding: 0;
  font-family: var(--f-btn);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  background: var(--c-accent);
  color: var(--c-on-accent);
}
/* ховер (конвенция красной кнопки: фон красный, текст чернеет) —
   специфичность должна быть выше собственного правила выше */
.slide--banner .slide__cta--banner .btn:hover { color: #000000 !important; }

.slide__credit {
  margin: 35px 0 0 var(--sp-page);
  font-family: var(--f-body);
  font-weight: 400;
  font-size: clamp(18px, 1.7vw, var(--fs-hero-meta));
  line-height: var(--lh-hero-meta);
  color: var(--c-on-accent);
}

/* состав — следующей строкой левой колонки (шаг задаёт line-height, slider_1) */
.slide__credit--cast {
  margin-top: 0;
}

.slide__credit-label { font-weight: 800; }
.slide__credit--cast .slide__credit-label { display: inline; }
.slide__cast-names { display: inline; }

/* кнопка слайда спектакля: правый нижний угол, 290×80 (slider_1) */
.slide__cta {
  position: absolute;
  left: auto;
  right: 318px; bottom: 256px;
}
.slide__cta .btn {
  width: 290px;
  height: 80px;
  padding: 0;
  font-weight: 500;        /* как кнопка слайдов баннера (спека 20px Medium КАПС) */
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: uppercase;
}

/* пагинация Swiper = пунктир-индикатор (Frame 593-596): штрихи
   48×5, активный 119×5 красный; ряд по центру, низ полосы — 110px
   от низа банера (было 23.5%). Спецификатор .hero-swiper — перебить
   bottom:8px из бандла swiper (.swiper-horizontal>.swiper-pagination-*).
   Абсолют поверх слайдов (на мобиле скрыт, ниже) */
.hero-swiper .hero-navi {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 110px;
  z-index: 30;          /* поверх абсолютных детей слайдов */
  flex: none;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 15px;
}
.hero-navi .swiper-pagination-bullet,
.dash-pagination .swiper-pagination-bullet {
  width: 48px;
  height: 5px;   /* толщина штриха — фикс 5px на всех страницах */
  margin: 0 !important;
  border-radius: 0;
  background: var(--c-on-accent);
  opacity: 1;
  cursor: pointer;
  transition: width 0.3s ease, background-color 0.3s ease;
}
.hero-navi .swiper-pagination-bullet-active,
.dash-pagination .swiper-pagination-bullet-active {
  width: 119px;
  background: var(--c-accent);
}

/* соцсети: в шапке, правый блок рядом с телефоном (slider_1);
   в футере — прежней строкой */
.socials { display: flex; align-items: flex-end; gap: 11px; }
.socials__item { display: inline-flex; }
.socials__item:hover { opacity: 0.75; }

/* === кнопки (Oswald 400 20px; КАПС на всех кнопках сайта — макеты 483:992,
   Frame «afisha», 593-596; данные в БД в произвольном регистре) === */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--btn-h);
  padding: 0 48px;
  font-family: var(--f-btn);
  font-weight: 400;
  font-size: var(--fs-btn);
  line-height: var(--lh-btn);
  text-transform: uppercase;
  border: 0;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.btn--white { background: #ffffff; color: #000000; }
.btn--white:hover { background: var(--c-accent); color: var(--c-on-accent); }

.btn--black { background: #000000; color: #ffffff; }
.btn--black:hover { background: var(--c-accent); color: #ffffff; }

.btn--red { background: var(--c-accent); color: var(--c-on-accent); }
.btn--red:hover { background: var(--c-accent); color: #000000; }  /* ховер: кнопка красная, текст чёрный */

/* заголовкам секций: ссылка «все →»; стрелка краснеет вместе с текстом */
.section__more {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--f-cond);
  font-weight: 400;
  font-size: var(--fs-nav);
  line-height: 1;
  text-transform: uppercase;   /* ссылки-переходы со стрелкой — капсом (макет) */
  color: var(--c-on-bg);
  padding-bottom: 12px;
}
.section__more:hover { color: var(--c-accent); }
.section__more .section__arrow { width: 39px; height: 39px; }

/* === карточка афиши (main 282:3640, Frame 616: 630×946 = фото 630×390 +
     тело #ebebeb 630×536: поля 60, вертикальный шаг 40).
     Кегли — от ширины карточки (cqw): 630px → макетные 40/18/20;
     px перед clamp — фолбэк для браузеров без container queries === */
.event-card {
  container-type: inline-size;
  background: none;   /* фото и серый блок раздельны: между ними 20px тёмного фона (макет) */
  display: flex;
  flex-direction: column;
  color: var(--c-text);
}

.event-card__photo { position: relative; aspect-ratio: 630 / 390; overflow: hidden; }
.event-card__photo img { width: 100%; height: 100%; object-fit: cover; }

/* бейдж «ПРЕМЬЕРА» на фото: красная плашка сверху слева, Oswald 600 20/1.5 КАПС */
.event-card__badge {
  position: absolute;
  left: 0; top: 0;
  z-index: 1;
  padding: 10px 40px;
  background: var(--c-accent);
  font-family: var(--f-head);
  font-weight: 600;
  font-size: 20px;
  font-size: clamp(16px, 3.17cqw, 20px);
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--c-on-accent);
}

/* «На паузе» — белая плашка с чёрным текстом (макет); после базового правила */
.event-card__badge--pause {
  background: #ffffff;
  color: #000000;
}

/* тело: через 20px после фото; серый #ebebeb; поля 60, стек с шагом 40;
   даты/кнопка прибиты к низу (margin-top:auto у .event-card__dates) */
.event-card__body { background: var(--c-card-bg); margin-top: 20px; padding: 60px; display: flex; flex-direction: column; gap: 40px; flex: 1; }

.event-card__title { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: 40px; font-size: clamp(36px, 6.35cqw, 40px); line-height: 1.2; letter-spacing: 0; color: var(--c-text); }
.event-card__title a { color: inherit; }
.event-card__title a:hover { color: var(--c-accent); }

/* режиссёр/состав — Manrope 500 18/1.8, обычный регистр (Frame 616):
   смежные <p> единым блоком, без доп. отступа */
.event-card__meta { margin: 0; font-family: var(--f-body); font-weight: 500; font-size: 18px; font-size: clamp(15px, 2.86cqw, 18px); line-height: 1.8; letter-spacing: 0; color: var(--c-text); }
.cast-role { color: #8e8ea0; }   /* роль актёра в скобках — серым */
.event-card__meta + .event-card__meta { margin-top: 0; }

/* даты+город — Oswald 600 20/1.5 КАПС, город слева / дата справа;
   margin-top:auto забирает лишнюю высоту карточки (кнопка прижата к низу) */
.event-card__dates { margin-top: auto; padding-top: 0; margin-bottom: 0; display: flex; flex-direction: column; gap: 0; }

.event-card__daterow {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--sp-3);
  font-family: var(--f-head);
  font-weight: 600;
  font-size: 20px;
  font-size: clamp(18px, 3.17cqw, 20px);
  line-height: 1.5;   /* 150% = 30px (Frame 616) */
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--c-text);
}

/* кнопка карточки: 510×70 (630 − 2×60), фон #20242b, Oswald 600 20px КАПС */
.event-card__btn { margin-top: 0; align-self: stretch; width: auto; height: 70px; font-size: 20px; font-size: clamp(16px, 3.17cqw, 20px); font-weight: 600; letter-spacing: 0; text-transform: uppercase; background: var(--c-bg); color: var(--c-on-accent); }
.event-card__btn:hover { background: var(--c-accent); color: var(--c-on-accent); }

.afisha-empty { color: var(--c-on-bg); opacity: 0.7; }

/* === архивы: «‹ назад» и крупный заголовок (afisha/repertuar) === */
.back-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--f-cond);
  font-weight: 400;
  font-size: var(--fs-nav);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-on-bg);
}
.back-link__arrow { width: 39px; height: 39px; transform: scaleX(-1); }   /* влево, размер — как стрелки секций */
.back-link:hover { color: var(--c-accent); }
.archive-title {
  max-width: 1280px;          /* заголовки архивов — в зоне 1280 @320 (все макеты) */
  margin-inline: auto;
  margin-top: 0;              /* верхний зазор даёт .wrap (80px); макет: меню → заголовок 57..72 */
  margin-bottom: 110px;       /* АФИША: заголовок → список 110 */
  font-size: var(--fs-page-title);   /* единая кривая с .page-hero__title: 100px уже при окне 1500 (unify-page-titles) */
  line-height: 1.2;           /* 120/100 — единый интерлиньяж с hero-заголовками */
  text-transform: uppercase;
}

/* === строка события (архив афиши, afisha.pdf) === */
.event-list--rows { display: flex; flex-direction: column; }
.event-list--rows .event-row2 + .event-row2 { margin-top: 0; }

.event-row2 {
  display: grid;
  grid-template-columns: 360px 1fr auto;
  gap: var(--sp-6);
  align-items: center;
  padding: 44px 0;
  border-top: 1px solid var(--c-border);
}

.event-row2__date {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(36px, 3vw, 48px);
  line-height: 1.1;
  color: var(--c-on-bg);
}
.event-row2__time,
.event-row2__place {
  margin-top: 6px;
  font-family: var(--f-body);
  font-weight: 400;
  font-size: var(--fs-small);
  line-height: 1.5;
  color: var(--c-footer-muted);
}
.event-row2__title { font-family: var(--f-head); font-weight: 500; font-size: clamp(32px, 3vw, 44px); line-height: 1.15; color: var(--c-on-bg); }
.event-row2__title a { color: inherit; }
.event-row2__title a:hover { color: var(--c-accent); }
.event-row2__cast { margin-top: 14px; font-family: var(--f-body); font-weight: 400; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--c-on-bg); opacity: 0.85; }
.event-row2__side .btn { height: 60px; padding: 0 40px; }
.event-list--past .event-row2 { opacity: 0.6; }
.event-list--past .event-row2 .btn { pointer-events: none; }

@media (max-width: 1024px) {
  .event-row2 { grid-template-columns: 280px 1fr auto; gap: var(--sp-4); }
}
@media (max-width: 820px) {
  .event-row2 { grid-template-columns: 1fr; gap: var(--sp-3); padding: 32px 0; }
  .event-row2__side .btn { width: 100%; }
}

/* === шапка страницы-архива: карусель «Лица» + заголовок поверх ===
   Слайды 1920×960 (2:1): >1 — Swiper со штрихами + лента миниатюр
   (414×233, гэп 20, от фото 40), одно/ни одного — статичный слайд
   (фолбэк — ассет темы actors-hero.jpg). Строка заголовка поверх фото:
   1278×120 @ left/right 321, top 101. От миниатюр до контента ниже —
   110px (паддинг .wrap + маржин первой группы). */
.page-hero {
  position: relative;
  background: var(--c-bg);
}
.page-hero__frame {
  position: relative;
  height: calc(100vh - var(--header-h));   /* полноэкранный банер, как hero главной */
  min-height: 520px;
  overflow: hidden;
}
.page-hero__swiper,
.page-hero__swiper .swiper-wrapper { height: 100%; }
.page-hero__slide { position: relative; height: 100%; overflow: hidden; }
.page-hero__slide img { width: 100%; height: 100%; object-fit: cover; }
.page-hero .page-hero__navi {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 110px;   /* от низа банера до пунктира (фикс); селектор
                      специфичнее бандла swiper (иначе он ставит bottom: 8px) */
  top: auto;
  width: 100%;
  transform: none;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 15px;   /* штрихи, как у hero-navi главной */
}
/* лента миниатюр слайдов (общая: «Лица», карточка спектакля, персона):
   от фото 40px, карточки 414×233, гэп 20; активная — цветная,
   остальные затемнены. От миниатюр до контента ниже — 110px
   (паддинг .wrap + маржин первой группы / .perf-body) */
.page-hero__thumbs {
  margin-top: 40px;
  margin-inline: calc(var(--sp-page) * -1);
  padding-inline: var(--sp-page);
  overflow: hidden;
}
.page-hero__thumb {
  width: clamp(160px, 21.6vw, 414px);
  aspect-ratio: 414 / 233;
  overflow: hidden;
  background: #d7d7d8;
  filter: grayscale(1) brightness(0.55);
  transition: filter 0.3s ease;
  cursor: pointer;
}
.page-hero__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.page-hero__thumb.swiper-slide-thumb-active { filter: none; }
.page-hero__row {
  position: absolute;
  z-index: 5;   /* поверх карусели: swiper с transformом перекрывал заголовок */
  /* верх заголовка жёстко: 60px от верха банера — та же линия, что у архивных
     заголовков (шапка 120 + отступ 60 = 180 от верха страницы) при любой
     ширине окна; не привязываем к vw, чтобы не «ездил» при ресайзе */
  top: 60px;
  /* левый край контентной колонны 1280 (контент ниже центрируется —
     заголовок следует за ним и на окнах >1920; крышка не нужна) */
  inset-inline: max(var(--sp-page), calc((100% - 1280px) / 2));
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.page-hero__title {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: var(--fs-page-title);   /* единая кривая с .archive-title: 100px уже при окне 1500 (unify-page-titles) */
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--c-on-bg);
  text-shadow: 0 4px 40px rgba(11, 11, 13, 0.45);   /* читаемость на светлых фото */
}

/* === «О центре» (page-about.php, макет person 293:1773): блоки «фото +
   подложка» как Анонс главной (подложка слева/справа), статичные заголовки
   и сетка карточек как АНШЛАГ. Отступы: миниатюры → блок 110, блок → блок
   20, блок → заголовок 110, заголовок → подложки 110, подложки между
   собой 40 (у спектакля 20), подложка → ключевые спектакли 110,
   заголовок → карточки 110 (person: 2939→3051, 3290→3400, 4003→4043,
   4742→4852, 4960→5070) === */
.about-blocks { padding-top: 110px; }   /* миниатюры карусели → блок 1 */
.anons-lead + .anons-lead { margin-top: 20px; }   /* блок 1 → блок 2 */
.anons-lead--right .anons-plate { left: auto; right: 16.667%; }
.about-section .section__title { max-width: 1280px; margin-inline: auto; }
.about-values { padding-top: 110px; }   /* блок 2 → «Наши фундаментальные ценности» */
.about-values .spec-substrate { margin-top: 110px; }   /* заголовок → подложки */
.about-values .spec-substrate + .spec-substrate { margin-top: 40px; }   /* макет person: 40 */
.about-events { padding-top: 110px; }   /* подложка 2 → «Наши ключевые спектакли» */
.about-events .section__title + .afisha-grid { margin-top: 110px; }
@media (max-width: 820px) {
  .about-blocks, .about-values, .about-events { padding-top: 60px; }
  .about-values .spec-substrate { margin-top: 56px; }
  .about-events .section__title + .afisha-grid { margin-top: 56px; }
}

/* === «ЛИЦА»: сетка персоналий (макет person: полоса 1278 = 3×413 + 2×20) === */
.actor-group {
  max-width: 1280px;
  margin-inline: auto;
}
.actor-group:first-of-type { margin-top: 30px; }   /* +80 .wrap = 110 от hero */
.actor-group + .actor-group { margin-top: 110px; }   /* единый ритм страниц */
.actor-group__title {
  font-family: var(--f-head);
  font-weight: 500;
  /* макет person 279:2103: заголовки групп Oswald 500 100px/1.3 — как
     .section__title (единая шкала), было 40px */
  font-size: clamp(44px, 6.67vw, var(--fs-section));
  line-height: 1.3;
  color: var(--c-on-bg);
  margin-bottom: 40px;
}

.actor-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px var(--sp-gap2);   /* межкарточный: 40 вертикаль / 20 горизонталь */
}

.actor-card {
  display: flex;
  flex-direction: column;
  gap: 20px;   /* разрыв между миниатюрой и белой подложкой (фон страницы) */
  color: var(--c-text);
}

.actor-card__photo { display: block; aspect-ratio: 413 / 390; overflow: hidden; background: #d7d7d8; }
.actor-card__photo img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.3s ease;
}
.actor-card:hover .actor-card__photo img { transform: scale(1.02); }

.actor-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;   /* ФИО → био → кнопка (макет person) */
  padding: 47px 60px 58px;
  height: 347px;   /* фикс: подложка одинакова даже без текста */
  background: #fdfeff;
}

.actor-card__name { font-family: var(--f-head); font-weight: 500; font-size: clamp(22px, 2vw, 30px); line-height: 1.2; color: var(--c-text); }
.actor-card__name a { color: inherit; }
.actor-card__name a:hover { color: var(--c-accent); }

/* био на подложке: максимум 4 строки, дальше — многоточие (подложка 347 фикс) */
.actor-card__text {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  font-size: clamp(15px, 2.86cqw, 18px);
  line-height: 1.8;
  letter-spacing: 0;
  color: var(--c-text);
}

/* кнопка «ПОДРОБНЕЕ» (макет person): 293×70 (padding 20×60), по центру,
   прижата к низу; низ кнопки — 58px от низа подложки (padding-bottom) */
.actor-card__btn.btn {
  width: 293px;
  height: 70px;
  padding: 0;
  margin-top: auto;
  align-self: center;
  font-size: 20px;
  font-weight: 600;
}

@media (max-width: 1024px) {
  .actor-grid { grid-template-columns: repeat(2, 1fr); gap: 40px var(--sp-gap2); }
}
.actor-card__btn.btn--black:hover,
.actor-card__btn.btn:hover {
  background: var(--c-accent) !important;
  color: #ffffff !important;
}

@media (max-width: 820px) {
  .actor-grid { grid-template-columns: 1fr; gap: 40px var(--sp-gap2); }
  .actor-card__body { padding: 24px 20px 28px; height: auto; }
  .actor-card__btn.btn { width: 100%; }
}

/* === карточка персоналии (acter_2) === */
.main > .wrap.actor-head { padding-block: 24px 40px; }

.actor-title {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(44px, 5vw, 80px);
  line-height: 1.1;
  color: var(--c-on-bg);
  margin: 20px 0 0;
}

/* === карточка лица (unify-entity-content): карусель больших фото 2:1
   (.perf-banner) → имя ФИО под каруселью → светлая текстовая зона === */
.actor-carousel { position: relative; }

/* имя ФИО под фото (acter_2): слева 325px, от фото 60px, имя 64px Oswald/500 */
.actor-plate {
  margin: 110px auto 110px;   /* миниатюры → имя → подложка (макет acter_2) */
  max-width: 1280px;
  font-family: 'Oswald', sans-serif;
  font-weight: 500;
  font-size: clamp(40px, 5.2vw, 100px);
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--c-on-bg);
}
.actor-plate__cap { font-size: 100px; }   /* заглавные — крупнее (макет acter_2: блок 121) */

.actor-photo { width: 100%; height: clamp(360px, 56vw, 1090px); overflow: hidden; background: #d7d7d8; }
.actor-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.actor-body { color: var(--c-text); }
.actor-body__inner { }

.actor-fullname {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(30px, 3vw, 52px);
  line-height: 1.2;
  color: var(--c-text);
}

/* подложка лица: один белый блок 1280 @320, две колонки (Биография |
   Театральные работы), тексты — свободная форма */
.actor-page .spec-substrate--cols { gap: 60px; }
.actor-page .spec-substrate + .spec-substrate { margin-top: 40px; }   /* Биография → Призы (acter_2: 2421→2461) */

.actor-section h2 { margin-bottom: 40px; }   /* заголовок 48 → текст 88 (acter_2) */
.actor-section p + p { margin-top: 16px; }
.actor-section h3 {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--c-text);
  margin: 24px 0 8px;
}

/* спектакли с участием: под подложками, зона 1280 @320, отступ 110
   (макет acter_2: блок → следующий блок 40..110) */
.actor-perfs {
  max-width: 1280px;
  margin-inline: auto;
  margin-top: 110px;
  margin-bottom: 110px;   /* последний блок → футер 110 (макет acter_2: 3138→3248) */
  padding: 0;
}
.actor-perfs h2 { font-family: var(--f-head); font-weight: 500; font-size: clamp(28px, 2.08vw, 40px); line-height: 1.3; margin-bottom: 40px; }
.actor-perfs .chip { color: var(--c-on-bg); border-color: var(--c-border); gap: 0; }
.actor-perfs .chip:hover { border-color: var(--c-accent); color: var(--c-accent); }

.actor-perf-role { opacity: 0.7; }

@media (max-width: 820px) {
  .actor-body { background: #fdfeff; }      /* мобильная: сплошной белый блок, деление убрано */
  .actor-cols { grid-template-columns: 1fr; gap: var(--sp-5); margin-top: 32px; margin-inline: 0; }
  .actor-col { background: transparent; padding: 0; }
  .actor-body__inner { padding-block: 40px 64px; }
  .actor-perfs { margin-top: 48px; margin-inline: 0; padding: 0; background: transparent; }
}

/* === карточка спектакля (макеты spektakli + Frame 518): баннер-карусель
   1920×960 с названием и кнопкой билетов → две белые подложки → афиша === */
/* === карточка спектакля (spektakli + Frame 518): карусель 2:1 с
   миниатюрами → подложки → афиша. Карусель общая с «Лицами»:
   frame (высота 2:1) + лента миниатюр page-hero__thumbs ниже === */
.perf-banner {
  position: relative;
  background: var(--c-bg);
}
.perf-banner__frame {
  position: relative;
  height: calc(100vh - var(--header-h));   /* полноэкранный банер, как hero главной */
  min-height: 520px;
  overflow: hidden;
}
.perf-banner__swiper,
.perf-banner__swiper .swiper-wrapper { height: 100%; }
.perf-banner__slide { position: relative; height: 100%; overflow: hidden; }
.perf-banner__slide img { width: 100%; height: 100%; object-fit: cover; }

/* блок названия (Frame 518): контейнер 1280×532 @ left 320 / top 214,
   текст на 272 внутр. отступа (= 486 от верха слайда), кнопка на 60 ниже */
.perf-banner__inner {
  position: absolute;
  top: clamp(90px, 25.3vw, 486px);
  inset-inline: clamp(16px, 16.667vw, 320px);
  z-index: 2;
}
.perf-banner__title {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(40px, 5.2vw, 100px);
  line-height: 1.2;
  color: var(--c-on-bg);
  margin: 0;
  max-width: 1280px;
}
.perf-banner .perf-banner__navi {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 110px;   /* от низа банера до пунктира (фикс); селектор
                      специфичнее бандла swiper (иначе он ставит bottom: 8px) */
  top: auto;
  width: 100%;
  transform: none;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 15px;   /* штрихи по центру с зазором */
}

/* текстовые подложки карточки спектакля (макет «spectacl», Frame 724/677):
   белые блоки 1280 @320; верхняя — две колонки (свободная форма, поля
   perf_about_left/right), нижняя — одна (perf_awards); обе опциональны */
.spec-substrate {
  background: var(--c-card-bg);
  max-width: 1280px;
  margin-inline: auto;
  padding: 60px;
  color: var(--c-text);   /* список/strong наследуют цвет — иначе белый от body */
}
.spec-substrate ul,
.spec-substrate ol { margin: 1em 0 0; padding-left: 1.15em; }
.spec-substrate ul { list-style: disc outside; }     /* возврат маркеров после глобального ресета */
.spec-substrate ol { list-style: decimal outside; }
.spec-substrate li { margin: 6px 0; }
.perf-banner ~ .spec-substrate { margin-top: 40px; }   /* карусель → подложка 40 (макет spectacl) */
.spec-substrate + .spec-substrate { margin-top: 20px; }
.spec-substrate--cols { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.spec-substrate section { min-width: 0; }
.spec-substrate h2 {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(28px, 2.08vw, 40px);
  line-height: 1.3;
  color: var(--c-text);
  margin: 60px 0 40px;    /* макет: текст → подзаголовок 60, подзаголовок → текст 40 */
}
.spec-substrate h2:first-child { margin-top: 0; }
.spec-substrate h3 {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(22px, 1.46vw, 28px);
  line-height: 1.25;
  color: var(--c-text);
  margin: 28px 0 0;
}
.spec-substrate p {
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.8;
  color: var(--c-text);
  margin: 0;
}
.spec-substrate p + p { margin-top: 24px; }
.spec-substrate a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.spec-substrate a:hover { color: var(--c-accent); }
@media (max-width: 820px) {
  .spec-substrate { padding: 24px 20px; }
  .spec-substrate--cols { grid-template-columns: 1fr; gap: 24px; }
  .spec-substrate h2 { font-size: 28px; }
  .spec-substrate h3 { font-size: 22px; }
  .spec-substrate p { font-size: 16px; }
}

/* --- «Афиша спектакля» (макет spectacle.zip): заголовок на тёмном фоне
   страницы (белый, слева), список — светло-серая полоса #F0F1EF на всю
   ширину; от подложек до заголовка ≈136px тёмного (96 + 40) --- */
.perf-afisha {
  padding-top: 110px;    /* вторая подложка → «Афиша спектакля» 110 (макет spectacl) */
  padding-bottom: 108px; /* последний показ → футер 108 (макет) */
}
.perf-afisha__title {
  max-width: 1280px;        /* в зоне 1280 @320 — как строки и подложки */
  margin-inline: auto;
  font-family: var(--f-head);
  font-weight: 500;
  /* макет 474:665 «Афиша спектакля»: Oswald 500 100 при 1920 (как все титулы) */
  font-size: clamp(40px, 5.2vw, var(--fs-section));
  line-height: 1.2;
  color: var(--c-on-bg);   /* белый: заголовок на тёмном фоне страницы */
  margin-bottom: 70px;    /* + padding строки 40 → дата через 110 (макет) */
}
.perf-afisha__list { max-width: 1280px; margin-inline: auto; }

/* строки показа «Афиши спектакля» (frame-801): слева дата 256 («30.12.27» 64
   + «19-00 ВТОРНИК» Oswald 600 20), центр — площадка крупным титулом 64,
   под ней место «г. …, ул. …» капслоком (Oswald 600 20 #c4c9d0, +30),
   справа кнопка 265×70; колонции через 44; строки — разделитель 1px #c4c9d0,
   ритм 40+40 (контент → воздух → линия, единый визуальный ритм с архивом) */
.perf-show {
  display: flex;
  align-items: flex-start;       /* frame-800: колонции от верха строки */
  justify-content: space-between;
  gap: 44px;                     /* frame-800: 44 между колонциями */
  padding: 40px 0;               /* как в архивной строке афиши: воздух до/после разделителя */
  border-bottom: 1px solid #c4c9d0;   /* Line 7: сплошная #c4c9d0 */
}
.perf-show:first-child { border-top: 0; }   /* над первым показом линии нет (макет spectacl) */
.perf-show__when { flex: 0 0 256px; display: flex; flex-direction: column; gap: 18px; }   /* frame-790: зазор 30 текст-до-текста; 18 + полухвосты ≈ 30 */
.perf-show__date {
  margin: 0;
  font-family: var(--f-head);
  font-weight: 500;
  font-size: var(--fs-sub);      /* 64px */
  line-height: 1.2;
  color: var(--c-on-bg);
}
.perf-show__time {
  margin: 0;
  font-family: var(--f-head);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5;
  color: #c4c9d0;
}
.perf-show__where { flex: 1; }   /* при 1280: 256 + 44 + 671 + 44 + 265 (frame-800) */
.perf-show__venue {
  margin: 0;
  font-family: var(--f-head);
  font-weight: 500;
  font-size: var(--fs-sub);      /* 64px — крупный титул строки */
  line-height: 1.2;
  color: var(--c-on-bg);
}
.perf-show__place {
  margin: 18px 0 0;              /* frame-791: зазор 30 текст-до-текста; 18 + полухвосты ≈ 30 */
  font-family: var(--f-head);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5;
  color: #c4c9d0;
  text-transform: uppercase;     /* капслоком — единообразно с архивной строкой афиши */
}
.perf-show__side { flex: none; }
/* кнопка по центру строчного титула 64px/1.2 (бокс 76.8): сдвиг (76.8 − 70)/2 ≈ 3 */
.perf-show__side .btn { margin-top: 3px; width: 265px; height: 70px; padding: 0; font-size: 20px; font-weight: 600; text-transform: uppercase; }
@media (max-width: 820px) {
  .perf-show { flex-direction: column; align-items: flex-start; gap: 24px; padding: 24px 0; }
  .perf-show__when { flex: none; }
  .perf-show__date { font-size: 40px; }        /* мобайл-кегль дат (без var(--fs-sub) 64) */
  .perf-show__venue { font-size: 40px; }
  .perf-show__place { margin-top: 12px; }
  .perf-show__side .btn { width: 100%; margin-top: 0; }   /* мобайл: кнопка во всю ширину, без центрирования к титулу */
}

@media (max-width: 820px) {
  .perf-banner__inner { top: clamp(64px, 30vw, 200px); }
}

/* === архив спектаклей (макет «Repertuar», Frame 671): ряды 1280 @320 —
   фото 630×694 + подложка 630×694 (#ebebeb, поля 60, шаг 30 между блоками),
   между рядами 40; кнопка 510×70 #20242b «УЗНАТЬ БОЛЬШЕ» прижата к низу === */
.perf-list {
  max-width: 1280px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.perf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.perf-row__photo { display: block; position: relative; aspect-ratio: 630 / 694; overflow: hidden; background: #d7d7d8; }
.perf-row__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.perf-row:hover .perf-row__photo img { transform: scale(1.02); }

/* бейдж статуса (премьера/хит сезона/на паузе): красная плашка сверху слева */
.perf-row__badge {
  position: absolute;
  left: 0; top: 0;
  z-index: 1;
  padding: 10px 40px;
  background: var(--c-accent);
  font-family: var(--f-head);
  font-weight: 600;
  font-size: 20px;
  font-size: clamp(16px, 3.17cqw, 20px);
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--c-on-accent);
}

/* «На паузе» — белая плашка с чёрным текстом (макет) */
.perf-row__badge--pause {
  background: #ffffff;
  color: #000000;
}
.perf-row:hover .perf-row__photo img { transform: scale(1.02); }

.perf-row__body {
  background: var(--c-card-bg);
  padding: 60px;
  display: flex;
  flex-direction: column;
  gap: 30px;
  overflow: hidden;
}

.perf-row__head { display: flex; flex-direction: column; gap: 30px; }
.perf-row__name { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: clamp(28px, 2.08vw, 40px); line-height: 1.2; color: var(--c-text); }
.perf-row__name a { color: inherit; }
.perf-row__name a:hover { color: var(--c-accent); }

/* режиссёр/состав — Manrope 800 18/1.8 (как на «Групповых заявках») */
.perf-row__credits p { margin: 0; font-family: var(--f-body); font-weight: 800; font-size: 18px; line-height: 1.8; color: var(--c-text); }

.perf-row__bottom { margin-top: auto; display: flex; flex-direction: column; gap: 30px; flex: 1; }
.perf-row__text {
  margin: 0;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.8;
  color: var(--c-text);
}

.perf-row__btn.btn { width: 100%; height: 70px; padding: 0; font-size: 20px; font-weight: 600; text-transform: uppercase; background: #000000; color: #ffffff !important; }
.perf-row__btn.btn:hover { background: var(--c-accent) !important; color: #ffffff !important; }

/* карточка 1280 не лезет — стопка: фото сверху, подложка ниже */
@media (max-width: 1279px) {
  .perf-row { grid-template-columns: 1fr; }
  .perf-row__photo { aspect-ratio: 3 / 2; }
}
@media (max-width: 820px) {
  .perf-list { gap: 40px; }
  .perf-row__body { padding: 24px 20px; gap: 20px; }
  .perf-row__head { gap: 20px; }
  .perf-row__credits p { font-size: 16px; line-height: 1.7; }
  .perf-row__text { font-size: 16px; }
  .perf-row__btn.btn { height: 56px; font-size: 16px; }
}

/* === анонс: текстовая плашка 630×788 на фулблид-фото (main 282:3640,
     Frame 726 @x320: поля 60, титул Oswald 500 40, текст Manrope 500 18/1.8,
     шаг 40). Геометрия плашки — в layout.css (.anons-lead) === */
.anons-plate {
  position: absolute;
  left: 16.667%;            /* 320/1920 */
  top: 0;
  bottom: 0;
  width: 32.8125%;          /* 630/1920 */
  background: var(--c-card-bg);
  padding: 3.125%;          /* 60/1920 — масштабируется с плашкой */
  overflow: hidden;
}

.anons-plate__title { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: clamp(24px, 2.08vw, 40px); line-height: 1.35; letter-spacing: 0; color: var(--c-text); }
.anons-plate__title a { color: inherit; }
.anons-plate__title a:hover { color: var(--c-accent); }

/* тело: Manrope 500 18/1.8, обычный регистр (Frame 725); элементы
   визуального редактора в плашке */
.anons-plate__text { margin-top: clamp(16px, 2.08vw, 40px); font-family: var(--f-body); font-weight: 500; font-size: clamp(14px, 0.94vw, 18px); line-height: 1.8; letter-spacing: 0; color: var(--c-text); }
.anons-plate__text strong { font-weight: 700; }
.anons-plate__text p + p { margin-top: 1em; }
.anons-plate__text u { text-underline-offset: 0.2em; }
.anons-plate__text h3, .anons-plate__text h4 { font-family: var(--f-head); font-weight: 500; color: var(--c-text); margin: 1em 0 0.4em; }
.anons-plate__text h3 { font-size: 1.15em; }
.anons-plate__text h4 { font-size: 1em; }
.anons-plate__text ul, .anons-plate__text ol { margin: 1em 0 0; padding-left: 1.15em; }
.anons-plate__text ul { list-style: disc outside; }    /* возврат маркеров после глобального ресета */
.anons-plate__text ol { list-style: decimal outside; }
.anons-plate__text li { margin: 6px 0; }
.anons-plate__text a { color: inherit; text-decoration: underline; text-underline-offset: 0.2em; }
.anons-plate__text a:hover { color: var(--c-accent); }

/* === слайдер-галерея (карточка спектакля, «АНОНС»):
      индикаторы → превью (активное уже и цветное) → полноширинный слайд === */
.gallery-slider { position: relative; }

.gallery-slider__navi {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin: 28px auto 20px;
  max-width: calc(var(--wrap) + 2 * var(--sp-page));
  padding-inline: var(--sp-page);
}

.gallery-thumbs { overflow: hidden; }
.gallery-thumbs .swiper-slide {
  position: relative;
  width: 38.8%;
  height: clamp(180px, 24.5vw, 470px);
  overflow: hidden;
  background: #d7d7d8;
  filter: grayscale(1) brightness(0.55);
  transition: width 0.35s ease, filter 0.35s ease;
  cursor: pointer;
}
.gallery-thumbs .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumbs .swiper-slide.swiper-slide-thumb-active { width: 22%; filter: none; }

.gallery-main { margin-top: 15px; }
.gallery-main .swiper-slide {
  height: clamp(360px, 56vw, 1090px);
  overflow: hidden;
  background: #d7d7d8;
}
/* ссылка-обёртка полноширинного фото — только в галерее спектакля
   (в «АНОНСЕ» внутри слайда-карточки есть .btn — её не трогаем) */
.gallery-slider .gallery-main .swiper-slide a { display: block; width: 100%; height: 100%; }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; }

.gallery-single { height: clamp(360px, 56vw, 1090px); overflow: hidden; background: #d7d7d8; }
.gallery-single img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 820px) {
  .gallery-thumbs .swiper-slide { width: 55%; }
  .gallery-thumbs .swiper-slide.swiper-slide-thumb-active { width: 38%; }
}

/* типографика текстовой зоны лица (спеки acter_2):
   подзаголовки Oswald 500 20/170% КАПС, абзацы Manrope 500 18/180% */
.actor-section h2 {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(16px, 1.04vw, 20px);
  line-height: 1.7;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #1a1a1a;
}
.actor-section p {
  font-family: var(--f-body);
  font-weight: 500;
  font-size: clamp(15px, 0.94vw, 18px);
  line-height: 1.8;
  letter-spacing: 0;
  color: #1a1a1a;
}

/* === новости: список (макет news: 3 колонки 413, фото 8:5 + серый блок) === */
.news-list__head { max-width: 1280px; margin-inline: auto; margin-bottom: 110px; }
.news-list__grid {
  max-width: 1280px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 20px;
}
.news-item {
  display: flex;
  flex-direction: column;
  color: var(--c-text);
  text-decoration: none;
}
.news-item__photo { aspect-ratio: 414 / 262; overflow: hidden; background: #0b0b0d; }
.news-item__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
.news-item:hover .news-item__photo img { transform: scale(1.02); }

/* подложка карточки новости: фикс 413×187 (padding 10), текст-бокс
   354×127 по центру; текст — только «Вводный текст», Oswald 15/150% КАПС */
.news-item__body {
  background: var(--c-card-bg);
  margin-top: 20px;
  height: 346px;        /* 60+87+20+119+60 (Frame 704) */
  padding: 60px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow: hidden;
}
.news-item__head { margin: 0; font-family: var(--f-body); font-weight: 800; font-size: 18px; line-height: 1.6; color: var(--c-text); }
.news-item__text {
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.6;
  color: var(--c-text);
}
.news-list__more { display: flex; justify-content: center; margin-top: 92px; }
.btn--outline { background: none; border: 1px solid var(--c-on-bg); color: var(--c-on-bg); height: 62px; padding: 0 48px; }
.btn--outline:hover { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-on-accent); }
.news-list__empty { max-width: 1280px; margin-inline: auto; color: var(--c-on-bg); }

@media (max-width: 1024px) { .news-list__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .news-list__grid { grid-template-columns: 1fr; }
  .news-list__head { margin-bottom: 48px; }
  .news-item__body { height: auto; padding: 24px 20px; }
  .news-item__head, .news-item__text { font-size: 16px; }
}

/* === карточка новости (макет news_2: дата+крупный заголовок, панорамное
     фото во всю ширину с надписью, две текстовые колонки) === */
/* === новость: блок «дата + название» на баннере — 436×389, гэп 30,
   обе строки Oswald 500 100/120; слева у контентного поля, над штрихами
   (news-single__head ниже — фолбэк для новости без больших фото) === */
.news-hero {
  position: absolute;
  left: clamp(16px, 16.72vw, 321px);
  top: clamp(24px, 3.75vw, 72px);   /* акцент/дата/название — сверху слева (макет Frame 720) */
  width: clamp(300px, 22.7vw, 436px);
  display: flex;
  flex-direction: column;
  gap: 30px;
  z-index: 2;
}
/* манифест: интро новости крупным текстом между каруселью и подложкой
   (макет spectacl: миниатюры → манифест 110, манифест → подложка 60) */
.news-manifest {
  max-width: 1280px;
  margin: 110px auto 110px;
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(40px, 5.2vw, 100px);
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--c-on-bg);
}

.news-single__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
  padding-bottom: 110px;
}

.news-hero__accent {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(28px, 2.08vw, 40px);
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--c-accent);
  margin: 0;
}

.news-hero__title {
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(40px, 5.2vw, 100px);
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--c-on-bg);
  margin: 0;
}

.news-single__head { max-width: 1280px; margin-inline: auto; padding-top: 62px; }
.news-single__title { font-family: var(--f-head); font-weight: 500; font-size: clamp(52px, 5.2vw, 100px); line-height: 1.2; color: var(--c-on-bg); margin-top: 0; text-transform: uppercase; }
.news-single__hero { position: relative; margin-top: 56px; }
/* пропорция полосы фиксирована (макет ~310/1920), любой кадр обрежется cover-ом;
   на мобиле полоса разворачивается в кадр 4:3, чтобы не схлопываться в тонкую линию */
.news-single__hero img { display: block; width: 100%; aspect-ratio: 1920 / 320; object-fit: cover; }
.news-single__badge {
  position: absolute; left: var(--sp-page); bottom: 20%;
  font-family: var(--f-head); font-weight: 500; font-size: clamp(24px, 2.1vw, 40px); line-height: 1.2;
  color: var(--c-on-accent); margin: 0;
}
.news-single__cols {
  max-width: 1280px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px clamp(80px, 8vw, 180px);
  padding-block: 88px 80px;
}
.news-single__cols--one { grid-template-columns: 1fr; }
.news-single__subtitle {
  font-family: var(--f-head); font-weight: 500; font-size: 20px; line-height: 1.4;
  text-transform: uppercase; color: var(--c-on-bg); margin-bottom: 18px;
}
.news-single__text { font-family: var(--f-body); font-weight: 400; font-size: 16px; line-height: 1.5; color: var(--c-on-bg); }
.news-single__text ul, .news-single__text ol { margin: 16px 0 0; padding-left: 1.3em; }
.news-single__text ul { list-style: disc outside; }
.news-single__text ol { list-style: decimal outside; }
.news-single__text li { margin: 4px 0; }
.news-single__text p + p { margin-top: 16px; }
.news-single__text strong { font-weight: 700; }

@media (max-width: 820px) {
  .news-single__head { padding-top: 32px; }
  .news-hero { bottom: 130px; }
  .news-single__hero { margin-top: 32px; }
  .news-single__hero img { aspect-ratio: 4 / 3; }
  .news-single__cols { grid-template-columns: 1fr; padding-block: 56px 72px; }
  .news-single__badge { left: 20px; }
}

/* === футер === */
.site-footer {
  position: relative;
  margin-top: 0;
  background: var(--c-bg);
  color: var(--c-footer-muted);
  overflow: hidden;
}

/* строки футера — в зоне 1280 @x320..1600, как ПАРТНЕРЫ (Frame 677) */
.site-footer__top {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 0;      /* .wrap не должен сжимать зону 1280 */
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding-block: 65px 0;   /* меню футера через 65 от верха (Frame 677) */
}

.site-footer__contacts { display: flex; align-items: center; gap: 20px; white-space: nowrap; }

.site-footer__phone { font-family: var(--f-head); font-weight: 600; font-size: var(--fs-phone-h); line-height: var(--lh-phone-h); color: var(--c-on-bg); }
.site-footer__phone:hover { color: var(--c-accent); }

/* соцсети в футере — те же 45×17, что в шапке (Frame 268: 20×17 + 20×12, зазор 5) */
.site-footer__socials .socials { gap: 5px; }
.site-footer__socials .socials__item img { display: block; }
.site-footer__socials .socials__item--tg img { width: 20px; height: 17px; }
.site-footer__socials .socials__item--vk img { width: 20px; height: 12px; }

/* реквизиты: колонки 436 / 254 / © справа, зазор 183 (Frame 621);
   Manrope 500 18/1.8, ссылки #aab8cb, © #c7d4e4 */
.site-footer__legal {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 0;       /* .wrap не должен сжимать зону 1280 */
  margin-top: 110px;       /* меню → реквизиты (y87 → y197) */
  padding-block: 0;
  display: grid;
  grid-template-columns: 436px 254px 1fr;
  column-gap: 183px;
  align-items: start;
}

.site-footer__links { display: flex; flex-direction: column; gap: 0; }
.site-footer__links a {
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.8;
  color: var(--c-footer-muted);
}
.site-footer__links a:hover { color: var(--c-on-bg); }

.site-footer__requisites { font-family: var(--f-body); font-weight: 500; font-size: 18px; line-height: 1.8; color: var(--c-footer-muted); }
.req-label { font-weight: inherit; color: inherit; margin-right: 0; }

.site-footer__copy {
  margin: 0;
  justify-self: end;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.8;
  color: var(--c-footer-dim);
  text-align: right;
}

/* леттеринг 1282×349 по центру зоны; отступы 110 сверху / 66 снизу (Frame 677) */
.site-footer__giant { position: relative; z-index: 0; line-height: 0; pointer-events: none; margin-top: 110px; padding-bottom: 66px; }
.site-footer__giant img {
  display: block;
  width: min(1282px, calc(100% - 120px));
  height: auto;
  margin-inline: auto;
}

/* === внутренние страницы: прежние компоненты на новой палитре === */
.card {
  background: linear-gradient(180deg, var(--c-card-from), var(--c-card-to));
  color: var(--c-text);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.card__media { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; background: #d7d7d8; }
.card__body { padding: var(--sp-3) var(--sp-card) 40px; display: flex; flex-direction: column; gap: var(--sp-2); flex: 1; }
.card__title { font-size: var(--fs-sub); line-height: var(--lh-sub); }
.card__title a { color: var(--c-text); }
.card__title a:hover { color: var(--c-accent); }
.card__meta { color: #4a4a4a; font-size: var(--fs-small); }

.entity { display: grid; gap: var(--sp-4); grid-template-columns: minmax(240px, 360px) 1fr; align-items: start; }
.entity__media { width: 100%; }
.entity__facts { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-block: var(--sp-3); }
.fact { border: 1px solid var(--c-border); padding: var(--sp-2) var(--sp-4); font-size: var(--fs-small); }
.fact dt { color: var(--c-footer-muted); }
.fact dd { margin: 0; font-weight: 700; }

.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--sp-3); }
.gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

.chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  padding: var(--sp-1) var(--sp-3);
  border: 1px solid var(--c-border);
  font-size: var(--fs-small);
  color: var(--c-on-bg);
}
.chip:hover { border-color: var(--c-accent); }

/* === адаптив hero и футера === */
@media (max-width: 1280px) {
  .slide--intro .slide__inner { gap: 64px; }
  .slide__inner { padding-bottom: 64px; }
  .slide__plate { min-height: 130px; padding-block: 14px; }
  .slide__sub { margin-top: 14px; }
  .slide__credit { margin-top: 24px; }
  .slide__cta { bottom: 150px; }
}

/* невысокие окна (retina-масштаб ноутов: ~600–900 css-px высоты):
   сжимаем композицию интро, чтобы кнопка не наезжала на индикаторы */
@media (min-width: 821px) and (max-height: 900px) {
  .slide--intro .slide__inner { gap: 64px; }
}
@media (min-width: 821px) and (max-height: 760px) {
  .slide--intro .slide__inner { gap: 56px; }
}

/* 821–1183: меню во второй строке шапки */
@media (max-width: 1183px) {
  .nav--primary {
    order: 3;
    width: 100%;
  }
  .nav ul { flex-wrap: wrap; justify-content: center; column-gap: 18px; row-gap: 6px; }
  .nav a { font-size: 16px; }
}

@media (max-width: 820px) {
  /* мобильная карусель — полноэкранный оверлей как на десктопе:
     фото на весь первый экран, затемнение, текст поверх, штрихи поверх снизу */
  .hero-swiper { height: calc(100svh - var(--header-h)); min-height: 480px; }
  .hero-swiper .swiper-slide { height: 100%; padding: 0; }
  /* внутренние баннеры («Лица», «О агентстве», спектакль/персона/новость) —
     тоже на весь первый экран, как hero */
  .page-hero__frame,
  .perf-banner__frame { height: calc(100svh - var(--header-h)); min-height: 480px; }
  /* мобайл: заголовок у края экрана (16px), верх — та же линия, что у
     мобильных архивов (padding-block 40px) */
  .page-hero__row { inset-inline: 16px; top: 40px; }
  .slide__bg { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-position: center; }
  .slide__bg img { object-position: center; }
  .slide__scrim { display: block; background: linear-gradient(0deg, rgba(11,11,13,0.80) 0%, rgba(11,11,13,0.28) 42%, rgba(11,11,13,0.16) 100%); }
  /* баннерным слайдам возвращаем затемнение (на десктопе оно в самих фото) */
  .slide--banner .slide__scrim { background: linear-gradient(0deg, rgba(11,11,13,0.80) 0%, rgba(11,11,13,0.28) 42%, rgba(11,11,13,0.16) 100%); }

  /* слайды баннера на мобиле — вертикальная стопка: название, текст,
     текст над кнопкой, кнопка прижата к низу */
  .slide--banner .slide__inner { display: flex; flex-direction: column; align-items: stretch; gap: 16px; padding: clamp(56px, 12vh, 88px) 20px 108px; }
  .banner-slide__lead { position: static; width: auto; text-align: center; }
  .slide--banner .banner-slide__title { font-size: clamp(38px, 11vw, 56px); line-height: 1.1; }
  .slide--banner .slide__cta--banner { position: static; align-self: center; }
  .slide--banner .slide__cta--banner .btn { width: auto; height: 52px; padding: 0 38px; font-size: 14px; }
  .slide__inner { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: stretch; gap: 14px; padding: clamp(72px, 15vh, 110px) 20px 104px; }
  .slide--intro .slide__inner { align-items: center; justify-content: center; gap: 40px; padding: 20px; inset: 0; }
  /* специфичность выше @media-1799 (.slide__plate), который ниже по файлу */
  .hero-swiper .slide__plate { align-self: flex-start; padding: 6px 12px; min-height: 0; }
  .hero-swiper .slide__plate h2 { font-size: 22px; line-height: 1.25; }
  /* тексты слайда на мобиле убраны: только плашка и кнопка */
  .slide__sub, .slide__credits { display: none; }
  .slide__cta { margin-top: auto; align-self: center; position: static; left: auto; right: auto; bottom: auto; }
  /* специфичность выше @media-1799 (.slide__cta .btn), который ниже по файлу */
  .hero-swiper .slide__cta .btn { width: auto; height: 52px; padding: 0 38px; font-size: 14px; }
  .slide--intro .slide__cta { margin-top: 0; }
  .slide__intro-logo { width: min(100%, 400px); height: auto; margin-inline: auto; }
  /* индикаторы-штрихи на мобиле скрыты на всех слайдерах-банерах
     (специфичность = базовым правилам display:flex) */
  .hero-swiper .hero-navi,
  .page-hero .page-hero__navi,
  .perf-banner .perf-banner__navi { display: none; }

  .event-card__body { padding: 24px 20px 32px; gap: 24px; }
  .event-card__btn { padding: 0 20px; }
  .anons-text { aspect-ratio: auto; position: static; overflow: visible; }
  .anons-text__inner { position: static; padding: 40px 20px; }
  .anons-text__cta { margin-top: 24px; }

  /* карточка лица (lica361): статичное фото 16:9 → имя под фото */
  .actor-plate {
    margin: 24px 0 10px;
    padding-left: 20px;
    font-size: clamp(22px, 6.4vw, 32px);
    line-height: 1.25;
  }
  .actor-plate__cap, 
  .site-footer__top { flex-direction: column; align-items: flex-start; gap: var(--sp-3); padding-inline: 20px; }
  .site-footer__contacts { flex-wrap: wrap; gap: 16px; }
  .site-footer__legal { flex-direction: column; gap: var(--sp-4); padding-inline: 20px; }
  .site-footer__copy { margin-left: 0; text-align: left; }
  .site-footer__giant img { width: 100%; height: auto; margin-left: 0; }
}

/* === экран ~1728 css-px (MacBook 16 retina): компоненты ужаты ~0.9 === */
@media (max-width: 1799px) {
  /* hero */
  .slide__plate { min-height: 152px; }
  .slide__sub { margin-top: 16px; }
  .slide__credit { margin-top: 26px; }
  .slide__cta { right: 150px; bottom: 180px; }
  .slide__cta .btn { width: 260px; height: 72px; }
  .hero-swiper .socials { display: none; }
  /* секции главной */
  .section--afisha, .section--news { padding-top: 64px; }
  .section--afisha .section__head, .section--news .section__head { margin-bottom: 68px; }

  /* архивы */
  .event-row2 { grid-template-columns: 300px 1fr auto; padding: 32px 0; }
  .actor-group:first-of-type { margin-top: 32px; }
  .actor-group + .actor-group { margin-top: 88px; }
  .actor-group__title { margin-bottom: 44px; }
  .perf-list { gap: 44px; margin-top: 36px; }

  /* карточки актёра/спектакля */
  .actor-head { padding-block: 16px 28px; }
  .actor-body__inner { padding-block: 44px 72px; }
  .actor-cols { gap: 20px; margin-top: 32px; }
  /* соседние actor-section в grid-подложке — колонки one row:
     margin-top здесь уводил правую колонку вниз (padding между
     стековыми секциями даёт .spec-substrate--cols gap) */
  .perf-afisha { padding-block: 48px 64px; }

  /* галереи */
  .gallery-slider__navi { margin: 20px auto 14px; }
  .gallery-thumbs .swiper-slide { height: clamp(170px, 22vw, 400px); }
}

/* === страница «Групповые заявки» (макет menu/contact 3, 1920×1739):
   H1 100/130 под шапкой (59px), контент 1280 по центру, h2 Oswald 500 40,
   текст Manrope 800 18/1.8, лид-строки #c4c9d0, почта подчёркнута === */
.main > .wrap.group-requests { padding-top: 60px; }   /* макет: H1 через 59px после шапки */
/* типографика H1 «Групповых заявок» — базовая .archive-title (unify-page-titles) */
.group-requests .page-article {
  max-width: 1280px;
  margin-inline: auto;
}
.group-requests .page-article h2 {
  margin: 60px 0 40px;
  font-family: var(--f-head);
  font-weight: 500;                           /* Oswald Medium */
  font-size: 40px;
  line-height: 1.2;
  letter-spacing: 0;
}
.group-requests .page-article h2:first-child { margin-top: 0; }
.group-requests .page-article p {
  margin: 0;
  font-family: var(--f-body);
  font-weight: 800;                           /* Manrope ExtraBold */
  font-size: 18px;
  line-height: 1.8;
  letter-spacing: 0;
  color: var(--c-on-bg);
}
.group-requests .page-article p.lead {
  margin-top: 32px;                           /* пустая строка перед лидом (макет) */
  color: #c4c9d0;
}
.group-requests .page-article a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.group-requests .page-article a:hover { color: var(--c-accent); }

@media (max-width: 820px) {
  .group-requests .page-article h2 { margin: 40px 0 24px; font-size: 28px; }
  .group-requests .page-article p { font-size: 16px; line-height: 1.7; }
  .group-requests .page-article p.lead { margin-top: 24px; }
}

/* === legal-страницы футера (макет contact 2, «О ВОЗВРАТЕ БИЛЕТОВ»):
   H1 100 капс через 58 от шапки, контент 1280 @320, текст Manrope 500
   18/1.8 (не 800, в отличие от «Групповых заявок»), строки непрерывные === */
.main > .wrap.legal-page { padding-top: 60px; }   /* единый верхний зазор страниц без макета */
.main > .wrap.legal-page .page-article {
  max-width: 1280px;
  margin-inline: auto;
}
.main > .wrap.legal-page .page-article p {
  margin: 0;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.8;
  letter-spacing: 0;
  color: var(--c-on-bg);
}
.main > .wrap.legal-page .page-article p + p { margin-top: 32px; }   /* пустая строка между группами */
.main > .wrap.legal-page .page-article a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.main > .wrap.legal-page .page-article a:hover { color: var(--c-accent); }

.main > .wrap.legal-page .page-article h2,
.main > .wrap.legal-page .page-article h3 {
  font-family: var(--f-head);
  font-weight: 500;
  color: var(--c-text);
  margin: 60px 0 40px;
}
.main > .wrap.legal-page .page-article h2 { font-size: clamp(28px, 2.08vw, 40px); line-height: 1.3; }
.main > .wrap.legal-page .page-article h3 { font-size: clamp(22px, 1.46vw, 28px); line-height: 1.25; }

@media (max-width: 820px) {
  .main > .wrap.legal-page .page-article h2 { font-size: 28px; margin: 40px 0 24px; }
  .main > .wrap.legal-page .page-article h3 { font-size: 22px; }
  .main > .wrap.legal-page .page-article p { font-size: 16px; }
  .main > .wrap.main > .wrap.legal-page .archive-title { margin-bottom: 48px; }
}

/* верхний зазор текстовых страниц — единый 60 (макеты: 57..72) */
.main > .wrap.afisha-page,
.main > .wrap.perf-archive,
.news-list { padding-top: 60px; padding-bottom: 110px; }
.news-list .section__title { font-size: var(--fs-page-title); line-height: 1.2; }   /* титул «Новости» — единая система страниц (unify-page-titles) */

/* === архив афиши (frame-796): строка в зоне 1280 — слева дата 256
   («30.12.27» 64 + «19-00 ВТОРНИК» Oswald 600 20), центр — титул 64,
   под ним место одной строкой (Oswald 600 20 #c4c9d0, +30) и состав
   «Имя (Роль) / …» (Manrope 18/1.8, +40), справа кнопка 265×70;
   колонции через 90; строки — разделитель 1px #c4c9d0, ритм 40+40 (gap 80) === */
.afisha-list { max-width: 1280px; margin-inline: auto; }
.event-row3 {
  display: flex;
  align-items: flex-start;       /* frame-793: колонки от верха строки */
  justify-content: space-between;
  gap: 90px;                     /* frame-793: 90 между колонциями */
  padding-bottom: 40px;
  border-bottom: 1px solid #c4c9d0;   /* Line 7: сплошная #c4c9d0 */
}
.event-row3 + .event-row3 { margin-top: 40px; }
.event-row3--past { opacity: 0.55; }
.event-row3__when { flex: 0 0 256px; display: flex; flex-direction: column; gap: 18px; }   /* frame-790: зазор 30 между границами текста; 18 + полухвосты строк ≈ 30 визуально */
.event-row3__date { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: var(--fs-sub); line-height: 1.2; color: var(--c-on-bg); }   /* 64px */
.event-row3__time { margin: 0; font-family: var(--f-head); font-weight: 600; font-size: 20px; line-height: 1.5; color: #c4c9d0; }
.event-row3__what { flex: 1; }   /* при 1280: 256 + 90 + 579 + 90 + 265 (frame-793) */
.event-row3__title { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: var(--fs-sub); line-height: 1.2; letter-spacing: 0; text-transform: uppercase; color: var(--c-on-bg); }
.event-row3__title a { color: inherit; }
.event-row3__title a:hover { color: var(--c-accent); }
.event-row3__place { margin: 18px 0 0; font-family: var(--f-head); font-weight: 600; font-size: 20px; line-height: 1.5; color: #c4c9d0; text-transform: uppercase; }   /* frame-791: зазор 30 текст-до-текста; 18 + полухвосты ≈ 30; капслок */
.event-row3__cast { margin: 28px 0 0; font-family: var(--f-body); font-weight: 500; font-size: 18px; line-height: 1.8; color: var(--c-on-bg); }   /* frame-792: имена — белым, роли в скобках — серым (.cast-role); зазор 40 текст-до-текста */
.event-row3__side { flex: none; }
.event-row3__side .btn { margin-top: 3px; width: 265px; height: 70px; padding: 0; font-size: 20px; font-weight: 600; text-transform: uppercase; }   /* кнопка по центру строчного титула: (76.8 − 70)/2 ≈ 3 */

.afisha-past { margin-top: 120px; }
.afisha-past__title {
  margin: 0 0 60px;
  font-family: var(--f-head);
  font-weight: 500;
  font-size: clamp(28px, 2.08vw, 40px);
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--c-on-bg);
}

@media (max-width: 820px) {
  .event-row3 { flex-direction: column; align-items: flex-start; gap: 24px; }
  .event-row3__when { flex: none; }
  .event-row3__date { font-size: 40px; }        /* мобайл-кегль дат (без var(--fs-sub) 64) */
  .event-row3__title { font-size: 40px; }
  .event-row3__place { margin-top: 20px; }
  .event-row3__cast { margin-top: 24px; }
  .event-row3__side .btn { width: 100%; margin-top: 0; }   /* мобайл: кнопка во всю ширину, без центрирования к титулу */
  .afisha-past { margin-top: 64px; }
}

/* Исправление hover кнопки "УЗНАТЬ БОЛЬШЕ" в карточках спектаклей */
.perf-list .perf-row .perf-row__body .perf-row__btn.btn:hover,
.perf-list .perf-row__btn.btn:hover,
body .perf-row__btn.btn:hover {
  background: var(--c-accent) !important;
  color: #ffffff !important;
}

/* Force white text on perf row button hover */
.perf-row__btn,
.perf-row__btn.btn,
a.perf-row__btn,
a.btn.perf-row__btn {
  color: #ffffff !important;
}
.perf-row__btn:hover,
.perf-row__btn.btn:hover,
a.perf-row__btn:hover,
a.btn.perf-row__btn:hover,
.perf-row .perf-row__btn:hover,
.perf-list .perf-row__btn:hover {
  color: #ffffff !important;
  background: var(--c-accent) !important;
}
