.is-hidden { display: none !important; }

/* обёртка дат по городам — раскладывает .item месяцы так же, как родитель .date_list */
.concert .date_list .dates-container { display: flex; gap: 20px; }

/* в .about_description табы не должны перемещаться при активации */
.about_description .cities-list li,
.about_description .cities-list li.active { order: 0; }

/* активный таб города не кликабелен и без указателя */
.cities-list li.active { cursor: default; }
.cities-list li a { color: inherit; text-decoration: none; display: block; }

/* отключаем все псевдоэлементы с bg_slider.png — заменены на реальные .swiper-edge */
.comic_list .comic_swiper:before,
.comic_list .comic_swiper:after,
.video_concert_list .video_swiper:before,
.category_list .category_swiper:before,
.category_list .category_swiper:after,
.stages_rowlist_swiper::before,
.stages_rowlist_swiper::after { display: none !important; }

/* общие стили для edge-дивов */
.swiper-edge {
	background: url(../images/bg_slider.png);
	position: absolute;
	top: 0;
	height: 100%;
	width: 300px;
	z-index: 2;
	pointer-events: none;
	transition: opacity .3s ease;
}
.swiper-edge--left  { left: 0; transform: rotate(180deg); }
.swiper-edge--right { right: 0; }

/* stages_rowlist_swiper — нестандартные позиции (немного вылезают за границы) */
.swiper-edge--stages.swiper-edge--right { right: -206px; width: 391px; }
.swiper-edge--stages.swiper-edge--left  { left: -195px;  width: 391px; }

.swiper-edge.is-faded { opacity: 0; }

/* category_swiper — edges прозрачные (без картинки-градиента) и кликабельны для переключения слайдов */
.category_swiper .swiper-edge {
	background: transparent;
	pointer-events: auto;
	cursor: pointer;
	width: 50px;
}
/* скрыт на границе (левый — первый слайд, правый — последний) */
.category_swiper .swiper-edge.is-boundary-hidden {
	opacity: 0;
	pointer-events: none;
}

/* formats_icons_swiper — то же самое, что для category_swiper */
.formats_icons_swiper .swiper-edge {
	background: linear-gradient(270deg, #0d0c0c, transparent);
	pointer-events: auto;
	cursor: pointer;
	width: 50px;
}
.formats_icons_swiper .swiper-edge.is-boundary-hidden {
	opacity: 0;
	pointer-events: none;
}

/* плашки-фейды для слайдера комиков текущего месяца — показ завязан на позицию свайпера */
.comic-fade {
	position: absolute;
	top: 0;
	height: 100%;
	width: 100px;
	z-index: 2;
	pointer-events: none;
	opacity: 0;
	transition: opacity .3s ease;
}
.comic-fade--right { right: 0; background: linear-gradient(90deg, rgba(13,12,12,0), #0D0C0C); }
.comic-fade--left  { left: 0;  background: linear-gradient(270deg, rgba(13,12,12,0), #0D0C0C); }
.comic-fade.is-active { opacity: 1; }
.comic-fade.is-active.is-faded { opacity: 0; }


/* контакты в FAQ-секции переносятся на следующую строку, если не вмещаются */
.about_faq__contacts { flex-wrap: wrap; }
@media (max-width: 991px) {
	.about_faq__contacts { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
}

/* нет hover-фото — не прячем основное на ховере */
.stages .stages_list .stages_item--no-hover .images:hover .image_1 { display: block; }
.concert .concert_list .concert_item--no-hover .images:hover .image_1 { display: block; }

.video_card { position: relative; overflow: hidden; height: 100%; }

@media (min-width: 768px) {
	.format_video .video_card {
		width: 80%;
		margin-left: auto;
		margin-right: auto;
	}
}

.video_card__link {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0;
	background: none;
	border: 0;
	text-decoration: none;
	cursor: pointer;
}

.video_card__link img {
	display: block;
	width: 100%;
	height: auto;
}

.video_card__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.video_card__play svg {
	width: 84px;
	height: 84px;
	filter: drop-shadow(0 6px 18px rgba(0,0,0,.45));
}

.video_card__player {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
}

.video_card__player iframe,
.video_card__player video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.format_video h2 {
	margin-bottom: 30px;
}

/* попап «Инфо» площадки — открытие/закрытие как у order_event_modal */
.stage_info_modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
}
.stage_info_modal.active {
	display: flex;
	align-items: center;
	justify-content: center;
}
.stage_info_modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}
.stage_info_modal__content {
	position: relative;
	box-sizing: border-box;
	width: 90vw;
	max-width: 895px;
	max-height: 90vh;
	overflow: auto;
	border-radius: 14px;
	background: #0D0C0C;
	padding: 30px 27px 34px;
	z-index: 1;
}
.stage_info_modal__close {
	position: absolute;
	top: 20px;
	right: 20px;
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	display: flex;
}
.stage_info_modal__date {
	color: rgba(238, 237, 222, 0.7);
	font-size: 14px;
	margin-bottom: 8px;
}
.stage_info_modal__title {
	color: #EEEDDE;
	font-size: 35px;
	font-weight: 700;
	line-height: 1.05;
	padding-right: 50px;
}
.stage_info_modal__meta {
	margin-top: 10px;
	color: rgba(238, 237, 222, 0.7);
	font-size: 14px;
	letter-spacing: 0.14px;
}

.stage_info_modal__gallery {
	margin-top: 28px;
}
.stage-info-swiper {
	position: relative;
	overflow: hidden;
}
.stage-info-swiper .swiper-slide {
	width: 312px;
	height: 193px;
}
.stage-info-swiper .swiper-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.stage-info-swiper__edge {
	position: absolute;
	top: 0;
	right: 0;
	width: 135px;
	height: 100%;
	z-index: 2;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(13,12,12,0), #0D0C0C);
	transition: opacity .3s ease;
}
.stage-info-swiper__next {
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	z-index: 3;
	background: transparent;
	border: 0;
	padding: 6px;
	cursor: pointer;
	display: flex;
	transition: opacity .3s ease;
}
.stage-info-swiper.is-end .stage-info-swiper__edge,
.stage-info-swiper.is-end .stage-info-swiper__next {
	opacity: 0;
	pointer-events: none;
}

.stage_info_modal__desc-wrap {
	margin-top: 28px;
}
.stage_info_modal__desc {
	color: #EEEDDE;
	font-size: 16px;
	line-height: 1.25;
	max-width: 696px;
	max-height: 5em;
	overflow: hidden;
	transition: max-height .3s ease;
}
.stage_info_modal__desc.is-expanded {
	max-height: 2000px;
}
.stage_info_modal__desc p {
	margin: 0 0 .6em;
}
.stage_info_modal__desc-wrap .event-format__link {
	margin-top: 14px;
	cursor: pointer;
}
.stage_info_modal__desc-wrap .event-format__link span {
	font-size: 16px;
	font-weight: 500;
}
.stage_info_modal__desc-wrap .event-format__link svg {
	transition: transform .3s ease;
}
.stage_info_modal__desc-wrap .event-format__link.active svg {
	transform: rotate(180deg);
}
.stage_info_modal__buy {
	margin-top: 24px;
}

/* бабблы (18+/продолжительность/мат) в попапе экскурсии — тот же вид, что и в .concert_modal__content .info_by_event */
.stage_info_modal__content .info_list {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 24px;
}
.stage_info_modal__content .info_list .item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	border-radius: 48px;
	padding: 10px 20px;
	text-align: center;
	height: 59px;
	width: max-content;
}
.stage_info_modal__content .info_list .item::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #EEEDDE;
	opacity: 0.25;
	filter: blur(1.7px);
	border-radius: 48px;
	z-index: -1;
}
.stage_info_modal__content .info_list .item .title_block {
	color: #EEEDDE;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
}
.stage_info_modal__content .info_list .item .description_block {
	color: #EEEDDE;
	text-align: center;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.1;
}

/* попап бронирования бесплатного мероприятия */
.free_event_booking_modal__important {
	margin-top: 15px;
	color: #EEEDDE;
	font-size: 16px;
	line-height: 1.4;
}
.free_event_booking_modal__important p {
	margin: 0 0 15px;
}
.free_event_booking_modal__form-title {
	margin-top: 15px;
	color: #EEEDDE;
	font-size: 22px;
	font-weight: 700;
}
.free_event_booking_modal__form-title.--last {
	margin-top: 30px;
}
.free_event_booking_form {
	margin-top: 20px;
}
.free_event_booking_form__consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 20px 0;
	cursor: pointer;
}
.free_event_booking_form__consent input {
	margin-top: 3px;
	accent-color: #EEEDDE;
}
.free_event_booking_form__consent span {
	color: rgba(238, 237, 222, 0.7);
	font-size: 13px;
	line-height: 1.3;
}
.free_event_booking_form__consent a {
	color: #EEEDDE;
	text-decoration: underline;
}
.free_event_booking_form__btn {
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
}
.free_event_booking_form__btn span {
	font-size: 35px;
	font-weight: 700;
}
.concert .concert_modal__content .btn {
	font-size: 35px;
	font-weight: 700;
	height: auto;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 767px) {
	.stage_info_modal__content { padding: 24px 18px 28px; }
	.stage_info_modal__title { font-size: 22px; padding-right: 36px; }
	.stage-info-swiper .swiper-slide { width: 240px; height: 150px; }
	.stage-info-swiper__edge { width: 70px; }
	.stage_info_modal__content .info_list { flex-wrap: wrap; gap: 10px; }
	.free_event_booking_form__btn span,
	.concert .concert_modal__content .btn {
		font-size: 18px;
	}
}

/* ---- стрелки ленты дат в расписании (assets/js/dates-nav.js) ----
   .date_list скроллится горизонтально сам, кнопки только двигают его.
   Месяцы (.item) остаются целыми — их не приходится разбирать на слайды. */
.concert .row2 {
  position: relative;
}
/* место под стрелки отводится, только когда лента реально не помещается,
   иначе кнопки перекрывали бы крайние даты и по ним нельзя было бы кликнуть */
.concert .row2.has-dates-nav {
  padding: 0 48px;
}
.concert .row2 .date_list {
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
}
.concert .row2 .date_list::-webkit-scrollbar {
  display: none;
}
.concert .dates-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: none;
  color: #EEEDDE;
  cursor: pointer;
  transition: transform 0.2s ease;
}
/* подложка — тот же приём, что у активной даты: размытое светлое пятно */
.concert .dates-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #EEEDDE;
  opacity: 0.18;
  filter: blur(1.7px);
  transition: opacity 0.2s ease;
}
.concert .dates-nav svg {
  position: relative;
  width: 16px;
  height: auto;
}
.concert .row2.has-dates-nav .dates-nav {
  display: flex;
}
.concert .dates-nav:hover::before {
  opacity: 0.34;
}
.concert .dates-nav:active {
  transform: translateY(-50%) scale(0.94);
}
.concert .dates-nav:focus-visible::before {
  opacity: 0.34;
}
.concert .dates-nav[disabled] {
  opacity: 0;
  pointer-events: none;
}
.concert .dates-nav--prev {
  left: 0;
}
.concert .dates-nav--next {
  right: 0;
}
.concert .dates-nav--prev svg {
  transform: rotate(90deg);
}
.concert .dates-nav--next svg {
  transform: rotate(-90deg);
}
@media (max-width: 768px) {
  .concert .row2.has-dates-nav {
    padding: 0 34px;
  }
  .concert .dates-nav {
    width: 30px;
    height: 30px;
  }
  .concert .dates-nav svg {
    width: 13px;
  }
}

/* ---- попап формы подписки Unisender (assets/js/subscribe-modal.js) ----
   оформление повторяет модалку .form_thanks из style.css */
.subscribe_modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.subscribe_modal.is-open {
  opacity: 1;
  visibility: visible;
}
.subscribe_modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
}
.subscribe_modal__dialog {
  position: relative;
  width: 100%;
  max-width: 620px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  padding: 60px 60px 50px;
  border-radius: 16px;
  background: #1A1919;
  color: #EEEDDE;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  transform: translateY(10px);
  transition: transform 0.3s ease;
}
.subscribe_modal.is-open .subscribe_modal__dialog {
  transform: translateY(0);
}
.subscribe_modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(238, 237, 222, 0.1);
  cursor: pointer;
  transition: background 0.2s ease;
}
.subscribe_modal__close:hover {
  background: rgba(238, 237, 222, 0.22);
}
/* форма приходит из плагина со своими стилями — задаём только рамки */
.subscribe_modal__body {
  text-align: left;
}
.subscribe_modal__body img {
  max-width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .subscribe_modal {
    padding: 12px;
  }
  .subscribe_modal__dialog {
    max-height: calc(100vh - 24px);
    padding: 52px 20px 28px;
  }
  .subscribe_modal__close {
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
  }
}

/* ---- форма Unisender в стиле остальных форм сайта ----
   Ориентир — .about_faq__field в style.css: прозрачный фон, только верхняя и нижняя
   линии, светлый текст.

   Почему !important и удвоенный класс: плагин печатает <style> с настройками из
   конструктора прямо перед формой (белый фон, синяя кнопка, рамки #adadad), и этот
   блок идёт в разметке после theme.css, а поля адресует селектором с атрибутом
   .b-unisender-field[data-unisender-field-name="..."] — перебить его обычными
   правилами нельзя. Если оформление когда-нибудь настроят в самом конструкторе,
   эти правила можно будет убрать. */
.b-unisender-form.b-unisender-form {
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  color: #EEEDDE !important;
  font-family: inherit;
  font-size: 16px !important;
  font-weight: 400;
  line-height: 120%;
}
.b-unisender-form.b-unisender-form .b-unisender-form__title,
.b-unisender-form.b-unisender-form .b-unisender-form__description {
  background: transparent !important;
  color: #EEEDDE !important;
  text-align: left !important;
}
.b-unisender-form.b-unisender-form .b-unisender-form__title {
  margin: 0 0 12px !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  line-height: 110% !important;
}
.b-unisender-form.b-unisender-form .b-unisender-form__description {
  margin: 0 0 28px !important;
  color: rgba(238, 237, 222, 0.7) !important;
  font-size: 16px !important;
  line-height: 130% !important;
}

/* поля */
.b-unisender-form.b-unisender-form .b-unisender-form__field {
  margin: 0 0 27px !important;
  color: #EEEDDE !important;
  font-size: 19px !important;
  line-height: 120% !important;
}
.b-unisender-form.b-unisender-form .b-unisender-field__label {
  margin-bottom: 15px;
  color: #EEEDDE;
  font-size: 19px;
  font-weight: 700;
  line-height: 120%;
}
.b-unisender-form.b-unisender-form .b-unisender-field__input {
  padding: 15px !important;
  border: none !important;
  border-top: 1px solid rgba(238, 237, 222, 0.5) !important;
  border-bottom: 1px solid rgba(238, 237, 222, 0.5) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #EEEDDE !important;
  font-family: inherit;
  font-size: 16px !important;
  font-weight: 400;
  line-height: 100%;
  transition: border-color 0.2s ease;
}
.b-unisender-form.b-unisender-form .b-unisender-field__input::placeholder {
  color: rgba(238, 237, 222, 0.5);
}
.b-unisender-form.b-unisender-form .b-unisender-field__input:focus {
  border-top-color: #EEEDDE !important;
  border-bottom-color: #EEEDDE !important;
}
/* автозаполнение хрома перекрашивает поле в белый — возвращаем тёмный фон */
.b-unisender-form.b-unisender-form .b-unisender-field__input:-webkit-autofill {
  -webkit-text-fill-color: #EEEDDE;
  -webkit-box-shadow: 0 0 0 1000px #1A1919 inset;
}
/* выпадашка: своя стрелка вместо системной, иначе на тёмном фоне её не видно */
.b-unisender-form.b-unisender-form select.b-unisender-field__input {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 40px !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='9' viewBox='0 0 19 9' fill='none'%3E%3Cpath d='M0.64 0.77L9.14 7.77L17.64 0.77' stroke='%23EEEDDE' stroke-opacity='0.7' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  cursor: pointer;
}
.b-unisender-form.b-unisender-form select.b-unisender-field__input option {
  background: #1A1919;
  color: #EEEDDE;
}
.b-unisender-form.b-unisender-form .b-unisender-field__error-text,
.b-unisender-form.b-unisender-form .b-unisender-checkbox__error-text,
.b-unisender-form.b-unisender-form .b-unisender-form__policy .policy-error {
  font-size: 14px;
  line-height: 120%;
}

/* чекбоксы: нативные, у плагина на appearance стоит !important — красим accent-color */
.b-unisender-form.b-unisender-form input[type="checkbox"] {
  accent-color: #EEEDDE;
}
.b-unisender-form.b-unisender-form .b-unisender-form__policy {
  margin: 0 0 20px !important;
  background: transparent !important;
  color: rgba(238, 237, 222, 0.7) !important;
  font-size: 14px !important;
  line-height: 130% !important;
}
.b-unisender-form.b-unisender-form .b-unisender-checkbox__label,
.b-unisender-form.b-unisender-form .b-unisender-form__policy .b-unisender-field__label {
  color: rgba(238, 237, 222, 0.7);
  font-size: 14px;
  font-weight: 400;
  line-height: 130%;
}
.b-unisender-form.b-unisender-form .b-unisender-form__policy .b-unisender-field__label a {
  color: #EEEDDE;
}
.b-unisender-form.b-unisender-form .b-unisender-form__policy-hint {
  color: rgba(238, 237, 222, 0.5);
  font-size: 12px;
}

/* кнопка — как .btn в теме: линии сверху и снизу, подсветка на наведении */
.b-unisender-form.b-unisender-form .b-unisender-form__button-box {
  margin-top: 28px;
}
.b-unisender-form.b-unisender-form .b-unisender-form__submit-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* кнопка во всю ширину формы; flex — чтобы ужалась, когда рядом появится
     прелоадер отправки (плагин показывает svg в .b-unisender-form__button-box) */
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 60px;
  padding: 0 30px !important;
  border: none !important;
  border-top: 1px solid rgba(238, 237, 222, 0.5) !important;
  border-bottom: 1px solid rgba(238, 237, 222, 0.5) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #EEEDDE !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 100% !important;
  text-align: center;
  white-space: nowrap;
}
.b-unisender-form.b-unisender-form .b-unisender-form__submit-button:hover {
  opacity: 1;
}
.b-unisender-form.b-unisender-form .b-unisender-form__submit-button:hover::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 100px;
  background: #EEEDDE;
  opacity: 0.25;
  filter: blur(1.7px);
}
/* текст кнопки задаётся в конструкторе и может приехать своим тегом */
.b-unisender-form.b-unisender-form .b-unisender-form__submit-button > * {
  position: relative;
  z-index: 1;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
/* прелоадер отправки — у плагина цвет прибит !important прямо в настройках формы */
.b-unisender-form.b-unisender-form .b-unisender-form__button-box svg circle {
  fill: #EEEDDE !important;
}

/* сообщения после отправки */
.b-unisender-form.b-unisender-form .b-unisender-form__message {
  border-radius: 8px;
  border-style: solid;
  font-size: 15px;
  line-height: 130%;
}
.b-unisender-form.b-unisender-form .b-unisender-form__message_success {
  border-color: rgba(238, 237, 222, 0.5);
  background: rgba(238, 237, 222, 0.1);
  color: #EEEDDE;
}
@media (max-width: 600px) {
  .b-unisender-form.b-unisender-form .b-unisender-form__title {
    font-size: 24px !important;
  }
  .b-unisender-form.b-unisender-form .b-unisender-field__label {
    margin-bottom: 8px;
    font-size: 14px;
  }
  .b-unisender-form.b-unisender-form .b-unisender-form__field {
    margin-bottom: 18px !important;
    font-size: 14px !important;
  }
  .b-unisender-form.b-unisender-form .b-unisender-field__input {
    padding: 12px 0 !important;
    font-size: 14px !important;
  }
  .b-unisender-form.b-unisender-form select.b-unisender-field__input {
    padding-right: 30px !important;
    background-position: right 4px center !important;
  }
  .b-unisender-form.b-unisender-form .b-unisender-form__submit-button {
    height: 46px;
    font-size: 16px !important;
  }
}

/* ---- «Другие города» в табах расписания (assets/js/cities-more.js) ----
   пятый пункт списка: кнопка с выпадающим списком городов, не влезших в строку */
.cities-list__more {
  position: relative;
}
.cities-list__more .cities-list__more-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  line-height: inherit;
  cursor: pointer;
  transition: color 0.3s ease;
}
.cities-list__more:hover .cities-list__more-btn,
.cities-list__more.is-open .cities-list__more-btn {
  color: #EEEDDE;
}
.cities-list__more .cities-list__more-btn svg {
  flex-shrink: 0;
  width: 13px;
  transition: transform 0.2s ease;
}
.cities-list__more.is-open .cities-list__more-btn svg {
  transform: rotate(180deg);
}
.cities-list__dropdown {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 20;
  display: none;
  min-width: 220px;
  max-height: 320px;
  overflow: hidden;
  overflow-y: auto;
  padding: 8px 0;
  border: 1px solid rgba(238, 237, 222, 0.25);
  border-radius: 12px;
  background: #1A1919;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
}
.cities-list__more.is-open .cities-list__dropdown {
  display: block;
}
/* внутри выпадашки пункты идут строками, а не в ряд, как в самих табах */
.cities-list .cities-list__dropdown li {
  display: block;
  padding: 9px 18px;
  text-align: left;
  white-space: nowrap;
}
.cities-list .cities-list__dropdown li a,
.cities-list .cities-list__dropdown li span {
  display: block;
  color: rgba(238, 237, 222, 0.7);
  transition: color 0.2s ease;
}
.cities-list .cities-list__dropdown li:hover a {
  color: #EEEDDE;
}
/* на мобильных у .cities-list стоит overflow-x: auto для прокрутки табов
   (mobile.css:554) — он же обрезает раскрытый список. пока список открыт,
   прокрутку отключаем: видимых табов всего два, скроллить там нечего */
.cities-list.has-open-dropdown {
  overflow: visible;
}
@media (max-width: 768px) {
  /* на узких экранах в кнопке остаётся только «Другие» */
  .cities-list__more-word {
    display: none;
  }
  /* прижимаем к правому краю кнопки: она стоит справа, и список,
     раскрытый влево, гарантированно помещается в экран */
  .cities-list__dropdown {
    right: 0;
    left: auto;
    min-width: 170px;
    max-width: 70vw;
  }
}

/* ---- поповер виджета Яндекс.Афиши (кнопка «Купить билет») ----
   dealer.js кладёт в конец <body> див без классов и id и прописывает ему
   z-index: 99999 прямо в атрибуте style, поэтому цепляемся за этот стиль
   и перебиваем через !important — иначе inline не победить. */
body > div[style*="z-index: 99999"]:not([class]):not([id]) {
  z-index: 9999999999 !important;
}

/* ---- отдельная сетка «Бесплатные мероприятия» под основным расписанием ----
   разметка — template-parts/blocks/city-home.php, показ/скрытие — schedule-filter.js */
.concert .concert_free {
  margin-top: 60px;
}
.concert .concert_free__title {
  margin-bottom: 30px;
  color: #EEEDDE;
  font-size: 32px;
  font-weight: 700;
  line-height: 110%;
}
@media (max-width: 1280px) {
  .concert .concert_free {
    margin-top: 40px;
  }
  .concert .concert_free__title {
    margin-bottom: 20px;
    font-size: 24px;
  }
}
@media (max-width: 600px) {
  .concert .concert_free {
    margin-top: 30px;
  }
  .concert .concert_free__title {
    margin-bottom: 16px;
    font-size: 20px;
  }
}

/* ---- заголовок «Наши комики» на архиве комиков стал h1 ----
   размер раньше приходил от глобального h2 (style.css:71), у h1 своих правил
   в теме нет, а reset.css гасит размеры заголовков — задаём те же значения */
.row_comedian_list .top h1 {
  color: #EEEDDE;
  font-size: 44px;
  font-weight: 700;
  line-height: 100%;
}
@media (max-width: 1440px) {
  .row_comedian_list .top h1 {
    font-size: 36px;
  }
}
@media (max-width: 1280px) {
  .row_comedian_list .top h1 {
    font-size: 28px;
  }
}
@media (max-width: 768px) {
  .row_comedian_list .top h1 {
    font-size: 23px;
  }
}

/* ---- рекламные страницы (single-promo.php) ---- */
.promo_intro {
  text-align: center;
}
.promo_intro__text {
  color: #EEEDDE;
  font-size: 24px;
  line-height: 130%;
}
.promo_intro__text p {
  margin-bottom: 12px;
}
.promo_intro__text p:last-child {
  margin-bottom: 0;
}
.promo_intro__date {
  margin-top: 30px;
  color: #EEEDDE;
  font-size: 64px;
  font-weight: 700;
  line-height: 110%;
}
/* блок событий на промо-странице — та же сетка, что в расписании */
.promo_events .top {
  padding-bottom: 0;
}
.promo_events .concert_list {
  margin-top: 30px;
}
@media (max-width: 1280px) {
  .promo_intro__text {
    font-size: 18px;
  }
  .promo_intro__date {
    margin-top: 20px;
    font-size: 44px;
  }
}
@media (max-width: 600px) {
  .promo_intro__text {
    font-size: 15px;
  }
  .promo_intro__date {
    margin-top: 16px;
    font-size: 28px;
  }
  .promo_events .concert_list {
    margin-top: 20px;
  }
}

/* ---- две кнопки покупки на странице события ---- */
.event-format__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.event-format__buttons .event-format__link--desk {
  margin: 0;
}
@media (max-width: 768px) {
  .event-format__buttons {
    gap: 12px;
  }
}

/* описание события скрыто целиком, раскрывается кнопкой «Подробнее».
   на страницах форматов текст по-прежнему обрезается до 250px — правило только для события */
.single-event .event-format__left .event-format__text {
  max-height: 0;
  margin-bottom: 0;
}
.single-event .event-format__left .event-format__text.active {
  max-height: none;
  margin-bottom: 20px;
}

/* стрелка кнопки «Подробнее» разворачивается в раскрытом состоянии */
.btn_readmore.event-format__link svg {
  transition: transform 0.3s ease;
}
.btn_readmore.event-format__link.active svg {
  transform: rotate(180deg);
}
/* отступ от кнопки «Подробнее»/«Скрыть» до кнопок покупки билетов */
.event-format__buttons {
  margin-top: 24px;
}
/* кнопки покупки не ограничены по ширине, подпись растягивается на всю кнопку */
.event-format__buttons .event-format__link--desk {
  max-width: unset;
}
.event-format__buttons .event-format__link--desk span {
  width: 100%;
}
@media (max-width: 768px) {
  .event-format__buttons {
    margin-top: 16px;
  }
}

/* ---- блок «фото комика + текст» под баннером на странице события ---- */
.event-intro__row {
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  gap: 40px;
  align-items: center;
}
.event-intro__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.event-intro__text {
  color: #EEEDDE;
  font-size: 24px;
  font-weight: 400;
  line-height: 120%;
}
.event-intro__text p {
  margin-bottom: 16px;
}
.event-intro__text p:last-child {
  margin-bottom: 0;
}
.event-intro__text a {
  color: #EEEDDE;
  text-decoration: underline;
}
@media (max-width: 1280px) {
  .event-intro__row {
    gap: 30px;
  }
  .event-intro__text {
    font-size: 18px;
  }
}
@media (max-width: 768px) {
  /* на мобильном в одну колонку: фото сверху, текст под ним */
  .event-intro__row {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .event-intro__text {
    font-size: 15px;
  }
  .event-intro__text p {
    margin-bottom: 10px;
  }
}

/* дата в шапке попапа бронирования */
.stage_info_modal__date {
  font-size: 18px;
  font-weight: 700;
}
@media (max-width: 768px) {
  .stage_info_modal__date {
    font-size: 14px;
    /* место под кнопку закрытия */
    padding-right: 55px;
  }
}

/* блок покупки билетов под площадкой: тексту ширина не нужна,
   в style.css:1463 у .subscribe .container .description_info стоит width: 574px */
.subscribe .container .description_info.event-ticket__text {
  width: auto;
}
.event-ticket .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
/* кнопки — одним блоком, иначе вторая переносится на строку под текст */
.event-ticket__buttons {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
/* ширину не ограничиваем, подпись растягивается на всю кнопку —
   как у .event-format__buttons. !important здесь потому, что в style.css:2159
   у .event-ticket__btn стоит width: auto!important */
.event-ticket__buttons .event-ticket__btn {
  max-width: unset;
  width: 100% !important;
}
.event-ticket__buttons .event-ticket__btn a {
  width: 100%;
}
@media (max-width: 768px) {
  .event-ticket__buttons {
    width: 100%;
    gap: 12px;
  }
}

/* «Нет мест» вместо кнопки покупки: вид кнопки, но не кликабельно */
.buy_block .btn--no-seats {
  cursor: default;
  opacity: 0.55;
}
.buy_block .btn--no-seats:hover > span::before {
  content: none;
}

/* текст, у которого за обрезкой пряталось меньше двух строк:
   показываем целиком, кнопку «Подробнее» скрывает readmore-check.js */
.event-format__text.is-short {
  max-height: none;
}

/* страница «Подарочные сертификаты» */
.gift_cert__subtitle {
  color: #EEEDDE;
  font-size: 19px;
  font-weight: 700;
  line-height: 130%;
  margin-bottom: 24px;
}
/* текст показываем целиком: кнопки «Подробнее» на этой странице нет,
   а базовое правило .event-format__text режет высоту */
.gift_cert .event-format__text {
  max-height: none;
  height: auto;
}
.gift_cert__cta {
  max-width: 420px;
  margin-top: 28px;
}
.gift_cert__cta a {
  display: block;
  width: 100%;
  text-align: center;
}
.gift_cert__note {
  padding: 90px 0 70px;
}
/* карточка с условиями: тот же язык, что у бабблов и модалок —
   мягкая подложка, скругление, плашка-заголовок сверху */
.gift_cert__note-card {
  position: relative;
  border-radius: 32px;
  padding: 46px 48px 40px;
  background: rgba(238, 237, 222, 0.06);
  border: 1px solid rgba(238, 237, 222, 0.16);
}
.gift_cert__note-label {
  position: absolute;
  top: 0;
  left: 48px;
  transform: translateY(-50%);
  z-index: 1;
  display: inline-flex;
  align-items: center;
  border-radius: 48px;
  padding: 10px 28px;
  color: #EEEDDE;
  font-size: 19px;
  font-weight: 700;
  line-height: 120%;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
/* подложка плашки — как у бабблов в модалке события */
.gift_cert__note-label::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 48px;
  background: #EEEDDE;
  opacity: 0.25;
  filter: blur(1.7px);
  z-index: -1;
}
.gift_cert__note-text {
  color: rgba(238, 237, 222, 0.8);
  font-size: 17px;
  font-weight: 500;
  line-height: 150%;
}
.gift_cert__note-text a {
  color: #EEEDDE;
  text-decoration: underline;
}
.gift_cert__note-text p,
.gift_cert__note-text li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 16px;
}
/* маркер вместо сплошного текста: пункты читаются по одному */
.gift_cert__note-text p::before,
.gift_cert__note-text li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 10px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #EEEDDE;
  opacity: 0.6;
}
.gift_cert__note-text ul,
.gift_cert__note-text ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.gift_cert__note-text p:last-child,
.gift_cert__note-text li:last-child {
  margin-bottom: 0;
}

@media (max-width: 1100px) {
  .gift_cert__note-card {
    padding: 40px 32px 32px;
  }
  .gift_cert__note-label {
    left: 32px;
  }
}
@media (max-width: 600px) {
  .gift_cert__note {
    padding: 50px 0 40px;
  }
  .gift_cert__note-card {
    border-radius: 20px;
    padding: 30px 18px 22px;
  }
  .gift_cert__note-label {
    left: 18px;
    font-size: 13px;
    padding: 7px 18px;
  }
  .gift_cert__note-text {
    font-size: 12px;
  }
  .gift_cert__note-text p,
  .gift_cert__note-text li {
    padding-left: 18px;
    margin-bottom: 10px;
  }
  .gift_cert__note-text p::before,
  .gift_cert__note-text li::before {
    left: 2px;
    top: 6px;
    width: 5px;
    height: 5px;
  }
}

/* часы работы под телефоном в блоке контактов рядом с формой */
.about_faq__contact-hours {
  color: rgba(238, 237, 222, 0.5);
  font-size: 15px;
  font-weight: 500;
  line-height: 120%;
}
@media (max-width: 600px) {
  .about_faq__contact-hours {
    font-size: 10px;
  }
}

/* видео в hero-слайдере: лежит поверх фото, фото работает как превью.
   src ставит hero-video.js — без него (или без ссылки на текущую ширину)
   видео не показываем и остаётся обычная картинка */
.home_slider .swiper-slide,
.home_slider .swiper-slide > a {
  position: relative;
  display: block;
}
.home_slider__video {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* клик должен уходить на ссылку слайда */
  pointer-events: none;
}
.home_slider__video.is-active {
  display: block;
}

/* страница комика, мобильная версия */
@media (max-width: 560px) {
  /* биография не раскрывалась: mobile.css держит height: 145px,
     а .active снимает только max-height */
  .single-comedian .event-format__text.active,
  .single-comedian .event-format__text.is-short {
    height: auto;
  }
  /* кнопка «Подробнее»/«Скрыть» — мельче текста и стрелка под него */
  .single-comedian .btn_readmore.event-format__link span {
    font-size: 14px;
  }
  .single-comedian .btn_readmore.event-format__link svg {
    width: 13px;
    height: auto;
  }
}
