

/* Start:/local/templates/vnovv/template_styles.css?179090277229264*/
.history.p-0{padding-top:0 !important}
#restoplace-wrapper-btn{display:none;}



 
.mobile-bron-top{
	display:none;
}
@media screen and (max-width: 767px) {
	.mobile-bron-top{
		display:block;
		position:absolute;
		right:60px;
		top:15px;
		width:33px;
		height:33px;
		background:url(/local/templates/vnovv/assets/reservation.svg);
		background-size:100%;
	}
}

/* ==========================================================================
   Страница новости / события — по макету «Афиша/Внутренняя» (1440 / 768 / 375)
   Добавлено 2026-09-25. Чтобы откатить — удалить блок целиком.
   Точки перехода — как в assets/drawer.css: 1199 / 767.
   ========================================================================== */

/* --- Карточка: 440 на десктопе, 282 на 1024–1199 и планшете ------------- */
@media (min-width: 1200px) {
  .event-details__info { flex: 0 0 440px; }
}

.event-info__caption,
.event-info__text {
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 500;
}

.event-info__button {
  min-height: 80px;
  letter-spacing: .05em;
}

@media (max-width: 1199px) {
  .event-info__wrapper { padding: 24px; row-gap: 24px; }
  .event-info__button  { min-height: 68px; }
}

@media (max-width: 767px) {
  .event-info__wrapper { row-gap: 16px; }
  .event-info__item    { row-gap: 4px; }
  .event-info__caption { font-size: 12px; }
  .event-info__text    { font-size: 14px; }
  .event-info__button  { min-height: 66px; font-size: 14px; }
}

/* --- Текст новости из админки: абзацы, списки, ссылки, картинки --------- */
/* :where() обнуляет специфичность — классы шаблона (.event-content__*) главнее */

.event-details__content {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 500;
  color: rgba(0, 0, 0, .6);
}

.event-details__content :is(p, li, span) {
  font-weight: inherit; /* в drawer.css у p и span стоит 300 */
}

:where(.event-details__content) > * { margin: 0; }
:where(.event-details__content) > * + * { margin-top: 16px; }

:where(.event-details__content) :where(ul:not(.list)) {
  display: flex;
  flex-direction: column;
  row-gap: 12px;
}

:where(.event-details__content) :where(ul:not(.list)) > li {
  position: relative;
  padding-left: 24px;
}

:where(.event-details__content) :where(ul:not(.list)) > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(.65em - 4px);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: currentColor;
}

/* Заголовки внутри текста: h2 — Header_3, h3 — Header_4 («Типографика») */
.event-details__content :is(h2, h3) {
  font-family: var(--font-sorcerer);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-red);
}
.event-details__content h2 { font-size: 32px; }
.event-details__content h3 { font-size: 26px; }
.event-details__content > :is(h2, h3):not(:first-child) { margin-top: var(--indent-5); }

:where(.event-details__content) a:not(.button) {
  text-decoration: underline;
  text-underline-offset: .15em;
}

:where(.event-details__content) img {
  max-width: 100%;
  height: auto;
}

@media (min-width: 1200px) {
  :where(.event-details__content) a:not(.button):hover { color: var(--color-red); }
}

@media (max-width: 1199px) {
  .event-details__content { font-size: 18px; }
  .event-details__content h2 { font-size: 24px; }
  .event-details__content h3 { font-size: 20px; }
  .event-details__content > :is(h2, h3):not(:first-child) { margin-top: var(--indent-4); }
  :where(.event-details__content) > * + * { margin-top: 12px; }
  :where(.event-details__content) :where(ul:not(.list)) { row-gap: 8px; }
}

@media (max-width: 767px) {
  .event-details__content { font-size: 16px; }
  .event-details__content h2 { font-size: 20px; }
  .event-details__content h3 { font-size: 16px; }
  .event-details__content > :is(h2, h3):not(:first-child) { margin-top: var(--indent-3); }
}

/* ==========================================================================
   Заголовки сайта: межстрочный 120%, как в «Типографике» (было 140% у h1, 130% у h2–h3)
   Добавлено 2026-09-25. Действует на всех страницах.
   ========================================================================== */
.typography--h1,
.typography--h2,
.typography--h3 {
  line-height: 1.2;
}

/* ==========================================================================
   Raleway Medium (500) — основной текст по «Типографике».
   Файлы с Google Fonts (v37, SIL OFL), лежат в /local/templates/vnovv/assets/.
   Добавлено 2026-09-25. SemiBold (600) подключён в assets/drawer.css.
   ========================================================================== */

/* кириллица */
@font-face {
  font-family: Raleway;
  src: url(/local/templates/vnovv/assets/Raleway-Medium-cyrillic.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* латиница, цифры, пунктуация */
@font-face {
  font-family: Raleway;
  src: url(/local/templates/vnovv/assets/Raleway-Medium-latin.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* знак рубля ₽ и расширенная латиница */
@font-face {
  font-family: Raleway;
  src: url(/local/templates/vnovv/assets/Raleway-Medium-latin-ext.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ==========================================================================
   Уведомление о cookies: компактнее макета — текст 16 / 16 / 14 px.
   Добавлено 2026-09-25.
   ========================================================================== */
.cookies {
  padding: 16px 20px;
  column-gap: 40px;
  align-items: center;
}
.cookies__text {
  font-size: 16px;
  font-weight: 500;
  max-width: none;
}
.cookies__button {
  align-self: center;
  padding: 12px 20px;
  font-size: 14px;
  letter-spacing: .05em;
}

@media (max-width: 1199px) {
  .cookies { right: 24px; bottom: 24px; }
}

@media (max-width: 767px) {
  .cookies {
    left: 16px;
    right: 16px;
    bottom: 16px;
    min-width: 0;
    padding: 16px;
    row-gap: 12px;
    align-items: stretch;
  }
  .cookies__text   { font-size: 14px; }
  .cookies__button { align-self: stretch; }
}

/* ==========================================================================
   Текстовые страницы: политика обработки данных, реквизиты.
   Структура: .page-title--secondary, за ним .container с p / h2 внутри.
   Стили — как у текста новостей: 22 / 18 / 16 px, заголовки Header_3.
   Добавлено 2026-09-25.
   ========================================================================== */
.page-title--secondary + .container > :is(p, h2, h3, ul, ol) {
  max-width: 785px;
  margin-inline: auto;
  margin-block: 0;
}

.page-title--secondary + .container > :is(p, ul, ol) {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 500;
  color: rgba(0, 0, 0, .6);
}

.page-title--secondary + .container > :is(p, h2, h3, ul, ol) + :is(p, ul, ol) {
  margin-top: 16px;
}

.page-title--secondary + .container > :is(h2, h3) {
  font-family: var(--font-sorcerer);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.2;
  color: var(--color-red);
}
.page-title--secondary + .container > :is(p, ul, ol) + :is(h2, h3) {
  margin-top: var(--indent-5);
}
.page-title--secondary + .container > :is(h2, h3) + * {
  margin-top: 16px;
}

.page-title--secondary + .container :is(strong, b) {
  font-weight: 600;
}

.page-title--secondary + .container > :is(p, ul, ol) a {
  text-decoration: underline;
  text-underline-offset: .15em;
  overflow-wrap: anywhere;
}

@media (min-width: 1200px) {
  .page-title--secondary + .container > :is(p, ul, ol) a:hover { color: var(--color-red); }
}

@media (max-width: 1199px) {
  .page-title--secondary + .container > :is(p, ul, ol) { font-size: 18px; }
  .page-title--secondary + .container > :is(h2, h3) { font-size: 24px; }
  .page-title--secondary + .container > :is(p, h2, h3, ul, ol) + :is(p, ul, ol) { margin-top: 12px; }
  .page-title--secondary + .container > :is(p, ul, ol) + :is(h2, h3) { margin-top: var(--indent-4); }
  .page-title--secondary + .container > :is(h2, h3) + * { margin-top: 12px; }
}

@media (max-width: 767px) {
  .page-title--secondary + .container > :is(p, ul, ol) { font-size: 16px; }
  .page-title--secondary + .container > :is(h2, h3) { font-size: 20px; }
  .page-title--secondary + .container > :is(p, ul, ol) + :is(h2, h3) { margin-top: var(--indent-3); }
}

/* ==========================================================================
   Текстовые страницы: политика обработки данных, реквизиты.
   Структура: .page-title--secondary, за ним .container с p / h2 внутри.
   Стили — как у текста новостей: 22 / 18 / 16 px, заголовки Header_3.
   Добавлено 2026-09-25.
   ========================================================================== */
.page-title--secondary + .container > :is(p, h2, h3, ul, ol) {
  max-width: 785px;
  margin-inline: auto;
  margin-block: 0;
}

.page-title--secondary + .container > :is(p, ul, ol) {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 500;
  color: rgba(0, 0, 0, .6);
}

.page-title--secondary + .container > :is(p, h2, h3, ul, ol) + :is(p, ul, ol) {
  margin-top: 16px;
}

.page-title--secondary + .container > :is(h2, h3) {
  font-family: var(--font-sorcerer);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.2;
  color: var(--color-red);
}
.page-title--secondary + .container > :is(p, ul, ol) + :is(h2, h3) {
  margin-top: var(--indent-5);
}
.page-title--secondary + .container > :is(h2, h3) + * {
  margin-top: 16px;
}

.page-title--secondary + .container :is(strong, b) {
  font-weight: 600;
}

.page-title--secondary + .container > :is(p, ul, ol) a {
  text-decoration: underline;
  text-underline-offset: .15em;
  overflow-wrap: anywhere;
}

/* Списки: точки 8 px, как в тексте новостей */
.page-title--secondary + .container > ul {
  display: flex;
  flex-direction: column;
  row-gap: 12px;
}
.page-title--secondary + .container > ul > li {
  position: relative;
  padding-left: 24px;
}
.page-title--secondary + .container > ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(.65em - 4px);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: currentColor;
}

/* Вложенный список: полый кружок */
.page-title--secondary + .container > ul ul {
  display: flex;
  flex-direction: column;
  row-gap: 8px;
  margin-top: 8px;
}
.page-title--secondary + .container > ul ul > li {
  position: relative;
  padding-left: 24px;
}
.page-title--secondary + .container > ul ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(.65em - 4px);
  width: 8px;
  height: 8px;
  box-sizing: border-box;
  border: 1px solid currentColor;
  border-radius: 50%;
}

@media (min-width: 1200px) {
  .page-title--secondary + .container > :is(p, ul, ol) a:hover { color: var(--color-red); }
}

@media (max-width: 1199px) {
  .page-title--secondary + .container > :is(p, ul, ol) { font-size: 18px; }
  .page-title--secondary + .container > :is(h2, h3) { font-size: 24px; }
  .page-title--secondary + .container > :is(p, h2, h3, ul, ol) + :is(p, ul, ol) { margin-top: 12px; }
  .page-title--secondary + .container > :is(p, ul, ol) + :is(h2, h3) { margin-top: var(--indent-4); }
  .page-title--secondary + .container > :is(h2, h3) + * { margin-top: 12px; }
  .page-title--secondary + .container > ul { row-gap: 8px; }
}

@media (max-width: 767px) {
  .page-title--secondary + .container > :is(p, ul, ol) { font-size: 16px; }
  .page-title--secondary + .container > :is(h2, h3) { font-size: 20px; }
  .page-title--secondary + .container > :is(p, ul, ol) + :is(h2, h3) { margin-top: var(--indent-3); }
}

/* ===== Промостраницы (/new-year/ и др., шаблон /promo-page/) =====
   Всё остальное на промостранице — готовые блоки сайта со своими стилями. */

/* page-title: заголовок во всю ширину (название акции в одну строку), даты и цена (готовые event-info__item), широкое фото */
.page-title--wide .page-title__title { max-width: none; margin-bottom: 24px; }
.page-title--wide { padding-bottom: 160px; }   /* под первым экраном: десктоп 160 (между карточками 120); планшет и телефон — как между карточками (80 / 56) */
.page-title__facts { display: flex; justify-content: center; gap: 48px; margin-top: 28px; }
.page-title__image { width: 100%; height: min(62vh, 640px); overflow: hidden; }
.page-title__mark { display: block; width: 120px; height: auto; margin-bottom: 28px; color: var(--color-beige); }   /* контур фирменной скважины с «404» (страница 404) */
.page-title__image img { width: 100%; height: 100%; object-fit: cover; object-position: var(--image-focus, 50% 60%); display: block; }
.page-title__description:has(.link) { opacity: 1; color: rgba(0, 0, 0, .6); margin-top: 16px; }   /* абзац со ссылками: без полупрозрачности, иначе ссылки бледнеют */
.page-title__description .link { opacity: 1; margin-left: 0; color: var(--color-red); text-decoration: none; }   /* ссылки в описании (страница 404): красные, подчёркивание при наведении */
@media (min-width: 1200px) { .page-title__description .link:hover { text-decoration: underline; text-underline-offset: .15em; } }

/* Спойлер: раздел меню раскрывается по клику (макет «Меню» в Figma). Внутри — готовые menu__list / menu-item */
/* по макету: линии между разделами бежевые; название, список и значок — с отступом 48 px от края линии */
.spoiler { border-bottom: 1px solid var(--color-beige); }
.spoiler:first-of-type { border-top: 1px solid var(--color-beige); }
.spoiler__head { display: flex; align-items: center; gap: 16px; padding: 44px 48px; cursor: pointer; list-style: none; }
.spoiler__head::-webkit-details-marker { display: none; }
.spoiler__head:focus-visible { outline: 2px solid var(--color-red); outline-offset: -2px; }
/* значок — из макета (Figma, «Меню», иконка 24×24), при раскрытии переворачивается */
.spoiler__icon { margin-left: auto; flex: none; width: 24px; height: 24px; color: var(--color-red); transition: transform .3s ease; }
.spoiler[open] .spoiler__icon { transform: rotate(180deg); }
.spoiler .menu__header, .spoiler .menu__list { padding-left: 0; }
.spoiler .menu__wrapper { padding: 0 48px 44px; }
.spoiler .menu__left { max-width: 737px; }
.spoiler + .menu__description { margin-top: 48px; }   /* «Текст снизу» со ссылкой на PDF под спойлерами меню */

@media (max-width: 1199px) {
  .page-title--wide { padding-bottom: 80px; }
  .spoiler__head { padding-inline: 24px; }
  .spoiler .menu__wrapper { padding-inline: 24px; }
}
@media (max-width: 767px) {
  .page-title--wide { padding-bottom: 56px; }
  .page-title__image { height: auto; aspect-ratio: 4 / 3; }
  .page-title--wide .page-title__title { margin-bottom: 16px; }
  .page-title__facts { gap: 24px; margin-top: 20px; }
  .page-title__mark { width: 88px; margin-bottom: 20px; }
  .spoiler__head { padding: 24px 0; flex-wrap: wrap; row-gap: 4px; }
  .spoiler__head .menu__header { flex: 1 1 0; }
  .spoiler__head .menu-item__price { order: 3; flex-basis: 100%; }
  .spoiler .menu__wrapper { padding: 0 0 24px; }
}
/* значки у блюд на телефоне — в строку перед названием (иначе уходят за край экрана) */
@media (max-width: 767px) {
  .menu-item__title .badge { position: static; display: inline-flex; vertical-align: -1px; margin-right: 2px; }
}
/* карточки праздников на телефоне — без прилипания (иначе фото наезжает на текст при прокрутке) */
@media (max-width: 767px) {
  .celebration__details, .celebration__image { position: static; }
}
/* ===== /Промостраницы ===== */

/* ===== Первый экран главной (include/hero_main.php) =====
   Большое место + соседнее: баннер + события / баннер + ресторан / ресторан + события / ресторан во всю ширину.
   Готовые классы сайта внутри: hero__bottom (адрес и часы), event-info__caption (дата события),
   page-title__description (текст о ресторане), typography, button. Здесь — только раскладка и то, чего на сайте нет. */
.main-hero { --promo-bg: var(--color-red); --promo-accent: #dcc79f; --stage-gap: 40px; --side-w: 440px; --line: rgba(145, 25, 23, .15); padding-top: 24px; }
.main-hero__inner { display: flex; flex-direction: column; gap: 20px; }

/* H1 строкой над сценой (баннер + события) */
.main-hero__h1 { margin: 0; font-family: var(--font-sorcerer); font-weight: 400; font-size: 16px; line-height: 1.2; color: var(--color-red); }

/* сцена: не выше окна и не выше 44% ширины */
.main-hero__stage { display: grid; grid-template-columns: minmax(0, 1fr) var(--side-w); gap: var(--stage-gap);
  --stage-h: clamp(360px, min(calc(100svh - var(--hh, 120px) - var(--h1-h, 0px) - 68px), 44vw), 640px); height: var(--stage-h); }
.main-hero__stage--full { grid-template-columns: minmax(0, 1fr); }
.main-hero__side { min-height: 0; display: flex; flex-direction: column; }
.main-hero[data-state="be"] { --h1-h: 40px; }
.main-hero[data-state="e"] { --side-w: clamp(260px, 27vw, 400px); }
.main-hero[data-state="e"] .main-hero__stage { column-gap: 64px; }

/* адрес и часы: готовый hero__bottom, красный, заглавные, полупрозрачный; строки не рвутся, колонки переносятся */
.main-hero__info { color: var(--color-red); flex-wrap: wrap; justify-content: flex-start; gap: 8px 32px; }
.main-hero__info .hero__bottom-wrapper { max-width: none; white-space: nowrap; }
.main-hero__side > .main-hero__info { flex: none; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }

/* баннер */
.main-hero__promo { display: grid; grid-template-columns: 1fr 1fr; min-height: 0; background: var(--promo-bg); color: var(--color-white); text-decoration: none; overflow: hidden; }
.main-hero__promo-media { min-height: 0; overflow: hidden; }
.main-hero__promo-media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--promo-focus, 50% 50%); display: block; transition: transform .8s ease; }
.main-hero__promo-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 32px 40px; text-align: center; min-height: 0; container-type: inline-size; }
.main-hero__promo-eyebrow { font-size: 14px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.main-hero__promo-title { margin: 0; font-family: var(--font-sorcerer); font-weight: 400; --fs: 42px; font-size: min(var(--fs), 11cqi); line-height: 1.2; color: var(--promo-accent); }
.main-hero__promo-text { margin: 0; max-width: 340px; font-size: 18px; line-height: 1.3; font-weight: 500; color: rgba(255,255,255,.9); }
.main-hero__promo-facts { margin: 0; font-size: 16px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; line-height: 1.5; }
.main-hero__promo-cta { margin-top: 4px; }
@media (min-width: 1200px) {
  .main-hero__promo:hover .main-hero__promo-media img { transform: scale(1.03); }
  .main-hero__promo:hover .main-hero__promo-cta { color: var(--color-white); background: transparent; border-color: var(--color-white); }
}
@media (min-width: 768px) and (max-height: 760px) { .main-hero__promo-text { display: none; } .main-hero__promo-title { --fs: 36px; } }

/* события: первое с картинкой (не выше 4:5, свободное место уходит вниз), второе строкой */
.main-hero__events { display: flex; flex-direction: column; gap: 16px; height: 100%; min-height: 0; }
.main-hero__event { display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: inherit; min-height: 0; }
.main-hero__event-media { flex: 0 1 auto; height: calc(var(--side-w) * 1.25); min-height: 0; overflow: hidden; }
.main-hero__event-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.main-hero__event-meta { flex: none; display: flex; flex-direction: column; gap: 6px; }
.main-hero__event-title { margin: 0; font-family: var(--font-raleway); font-size: 20px; line-height: 1.25; font-weight: 600; color: var(--color-red);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.main-hero__event--line { flex: none; padding-top: 14px; border-top: 1px solid var(--line); gap: 4px; }
.main-hero__event--line .main-hero__event-title { font-size: 18px; -webkit-line-clamp: 1; }
@media (min-width: 1200px) {
  .main-hero__event:hover img { transform: scale(1.05); }
  .main-hero__event:hover .main-hero__event-title { text-decoration: underline; text-underline-offset: .15em; }
}

/* блок «о ресторане» */
.main-hero__place { min-height: 0; height: 100%; }
.main-hero__place-text { display: flex; flex-direction: column; justify-content: center; gap: 24px; min-width: 0; container-type: inline-size; }
.main-hero__place-title { margin: 0; font-family: var(--font-sorcerer); font-weight: 400; line-height: 1.2; color: var(--color-red); font-size: min(var(--fs, 34px), 9.5cqi); }
.main-hero__place--big, .main-hero__place--full { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--stage-gap); }
.main-hero__place--full .main-hero__place-title { --fs: 48px; max-width: 640px; }
@media (min-width: 1024px) {
  .main-hero__place--big { grid-template-columns: minmax(0, calc(var(--stage-h) * 270 / 335)) minmax(40%, 1fr); gap: 32px; }
  .main-hero__place--big .main-hero__arch { order: -1; width: 100%; aspect-ratio: auto; }
  .main-hero__place--big .main-hero__place-text { justify-content: flex-start; gap: 20px; }
  .main-hero__place--big .main-hero__place-title { margin-top: -.12em; }
  .main-hero__place--big .main-hero__place-lead { margin-top: auto; }
}
.main-hero__place--side { display: flex; flex-direction: column; gap: 20px; text-align: center; }
.main-hero__place--side .main-hero__arch { order: -1; flex: 1 1 0; align-self: center; }
.main-hero__place--side .main-hero__place-lead { display: none; }
.main-hero__place--side .main-hero__place-text { gap: 10px; align-items: center; flex: none; }
.main-hero__place--side .main-hero__place-title { --fs: 22px; }
.main-hero__place--side .main-hero__info { justify-content: center; }
.main-hero__place--side .main-hero__info .hero__bottom-wrapper { align-items: center; }

/* арка — фирменная скважина сайта (maska.svg), пропорции 270×335 без растягивания; фото медленно приближается */
.main-hero__arch { min-height: 0; height: 100%; width: auto; max-width: 100%; aspect-ratio: 270 / 335; justify-self: center; overflow: hidden;
  -webkit-mask: url(/local/templates/vnovv/assets/maska.svg) center bottom / contain no-repeat;
          mask: url(/local/templates/vnovv/assets/maska.svg) center bottom / contain no-repeat; }
.main-hero__arch img { width: 100%; height: 100%; object-fit: cover; display: block; animation: main-hero-drift 28s ease-out forwards; transform-origin: 50% 60%; }
@keyframes main-hero-drift { from { transform: scale(1); } to { transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .main-hero__arch img { animation: none; } }

/* --- до 1199 */
@media (max-width: 1199px) {
  .main-hero { --side-w: 300px; --stage-gap: 24px; }
  .main-hero__promo-panel { padding: 24px; gap: 12px; }
  .main-hero__promo-title { --fs: 30px; }
  .main-hero__promo-text { font-size: 16px; }
  .main-hero__event-title { font-size: 18px; }
  .main-hero__place--big .main-hero__place-title { --fs: 28px; }
  .main-hero__place--full .main-hero__place-title { --fs: 36px; }
  .main-hero__place--side .main-hero__place-title { --fs: 20px; }
}

/* --- планшет 768–1023: сцена по содержимому, блоки друг под другом */
@media (min-width: 768px) and (max-width: 1023px) {
  .main-hero__stage { display: flex; flex-direction: column; gap: 32px; height: auto; }
  .main-hero__side { display: block; }
  .main-hero__promo { grid-template-columns: 1fr 1fr; height: 46vw; }
  .main-hero__promo-text { display: none; }
  .main-hero__side > .main-hero__info { justify-content: center; }
  .main-hero__events { height: auto; }
  .main-hero__event--card { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
  .main-hero__event-media { height: auto; aspect-ratio: 16 / 10; }
  .main-hero__place--big, .main-hero__place--full, .main-hero__place--side { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 40px; align-items: center; height: auto; text-align: left; }
  .main-hero__place .main-hero__arch { order: -1; height: min(56vw, 520px); width: auto; aspect-ratio: 270 / 335; flex: none; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; }
  .main-hero__place--side .main-hero__arch { height: min(40vw, 380px); }
  .main-hero__place-text, .main-hero__place--big .main-hero__place-text, .main-hero__place--side .main-hero__place-text { align-items: flex-start; justify-content: center; gap: 16px; }
  .main-hero__place--side .main-hero__info { justify-content: flex-start; }
  .main-hero__place--side .main-hero__info .hero__bottom-wrapper { align-items: flex-start; }
  .main-hero__place--big .main-hero__place-title, .main-hero__place--full .main-hero__place-title { --fs: 36px; margin-top: 0; }
  .main-hero__place--side .main-hero__place-title { --fs: 30px; }
  .main-hero__place--big .main-hero__place-lead { margin-top: 0; }
}

/* --- телефон: одна колонка; баннер → адрес и часы → события */
@media (max-width: 767px) {
  .main-hero { padding-top: 16px; }
  .main-hero__inner { gap: 16px; }
  .main-hero__stage, .main-hero__side { display: contents; }
  .main-hero__h1 { font-size: 14px; }
  .main-hero__promo { order: 1; grid-template-columns: 1fr; }
  .main-hero__promo-media { aspect-ratio: 16 / 9; }
  .main-hero__promo-panel { padding: 20px 16px 24px; gap: 10px; }
  .main-hero__promo-title { --fs: 22px; }
  .main-hero__promo-text { display: none; }
  .main-hero__promo-facts { font-size: 14px; }
  .main-hero__side > .main-hero__info { order: 2; justify-content: center; margin-bottom: 0; }
  .main-hero__events { order: 3; height: auto; gap: 12px; }
  .main-hero__place { order: 1; height: auto; }
  .main-hero__event-media { flex: none; height: auto; aspect-ratio: 16 / 10; }
  .main-hero__event-title, .main-hero__event--line .main-hero__event-title { font-size: 16px; }
  .main-hero__event--line .main-hero__event-title { -webkit-line-clamp: 2; }
  .main-hero__place--big, .main-hero__place--full, .main-hero__place--side { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
  .main-hero__place .main-hero__arch { order: -1; width: min(72%, 320px); max-width: none; height: auto; flex: none; align-self: center; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; }
  .main-hero__place-text { align-items: center; gap: 12px; align-self: stretch; }
  .main-hero__place .main-hero__place-title { --fs: 22px; }
  .main-hero__place .main-hero__info { justify-content: center; }
  .main-hero__info .hero__bottom-wrapper { align-items: center; }
}
/* ===== /Первый экран главной ===== */

/* End */
/* /local/templates/vnovv/template_styles.css?179090277229264 */
