body.gg-night {
  --night: #0c0a09;
  --night-2: #16110f;
  --ember: #b8402c;
  --glow: #e8742a;
  --cream: #e9e2cf;
  --fog: rgb(233 226 207 / 22%);
  --mono: "IBM Plex Mono", ui-monospace, "Noto Sans", "Segoe UI", system-ui, sans-serif;
  /* Крупные заголовки — снова IBM Plex Mono, как в фирменном стиле сайта */
  --display: "IBM Plex Mono", ui-monospace, "Noto Sans", "Segoe UI", system-ui, sans-serif;
  /* Глобальные цвета Elementor перекрашены: бумага стала ночью, чернила — кремом */
  --e-global-color-primary: var(--cream);
  --e-global-color-secondary: var(--cream);
  --e-global-color-text: var(--cream);
  --e-global-color-accent: var(--glow);
  background: var(--night) !important;
  color: var(--cream);
}

body.gg-night ::selection {
  background: var(--glow);
  color: var(--night);
}

/* Светлые подложки секций и колонок убираем — под ними ночной фон.
   Бумажная текстура Frame-27 лежит фоновой картинкой на контейнерах Elementor, поэтому
   картинки фона тоже снимаем; фото блюд и карусели — это виджеты-картинки, их это не касается */
body.gg-night .elementor-section,
body.gg-night .elementor-column > .elementor-widget-wrap,
body.gg-night .elementor-column-wrap,
body.gg-night .e-con,
body.gg-night .e-con-inner,
body.gg-night .elementor-location-header,
body.gg-night .elementor-location-footer,
body.gg-night .site-header,
body.gg-night .site-footer,
body.gg-night .elementor,
body.gg-night #page,
body.gg-night .site,
body.gg-night .site-main,
body.gg-night main {
  background-color: transparent !important;
  background-image: none !important;
}
/* Бумажная текстура в выпадающих меню */
body.gg-night .elementor-nav-menu--dropdown,
body.gg-night .wpml-ls-sub-menu {
  background-image: none !important;
}
/* Бумажная текстура может лежать и на самом html */
html:has(body.gg-night) {
  background: #0c0a09 !important;
}

/* Чёрные рамки в 4px — тонкие светлые линии */
body.gg-night .elementor-element,
body.gg-night .elementor-widget-container,
body.gg-night .elementor-widget-divider .elementor-divider-separator {
  border-color: var(--fog) !important;
}

/* Текст */
body.gg-night,
body.gg-night p,
body.gg-night li,
body.gg-night .elementor-widget-text-editor,
body.gg-night .elementor-widget-text-editor *,
body.gg-night .elementor-heading-title,
body.gg-night .elementor-icon-list-text,
body.gg-night .jet-listing-dynamic-field__content,
body.gg-night .jet-listing-dynamic-terms,
body.gg-night .jet-listing-dynamic-link__link {
  color: var(--cream) !important;
}
body.gg-night a:hover,
body.gg-night a:hover .elementor-heading-title {
  color: var(--glow) !important;
}

/* Крупные заголовки — тонкий засечный капслок */
body.gg-night h1.elementor-heading-title,
body.gg-night h2.elementor-heading-title,
body.gg-night .elementor-widget-theme-post-title .elementor-heading-title {
  font-family: var(--display) !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
/* Мелкие подписи, меню, кнопки — моноширинный жирный капслок */
body.gg-night .elementor-nav-menu a,
body.gg-night .elementor-button,
body.gg-night .jet-listing-dynamic-terms,
body.gg-night .wpml-ls a {
  text-decoration: none !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
/* Подсказка рядом с названием раздела («листай влево…», «нажми чтобы раскрыть») — второй заголовок
   в том же блоке; так правило работает на всех языках, где у блоков свои номера */
body.gg-night .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  font-family: var(--mono) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.gg-night:lang(ka) .elementor-heading-title,
body.gg-night:lang(ka) .elementor-nav-menu a {
  text-transform: none;
}

/* Чёрные логотипы и значки — светлые */
body.gg-night .elementor-location-header .elementor-widget-image img,
body.gg-night .elementor-location-footer .elementor-widget-image img,
body.gg-night .elementor-widget-theme-site-logo img,
body.gg-night .custom-logo,
body.gg-night .elementor-widget-image img[src$=".svg"] {
  filter: invert(1) sepia(0.25) brightness(1.05);
  mix-blend-mode: screen;
}
body.gg-night .elementor-icon,
body.gg-night .elementor-social-icon,
body.gg-night .elementor-icon-list-icon {
  color: var(--cream) !important;
  fill: var(--cream) !important;
}
body.gg-night .elementor-icon svg,
body.gg-night .elementor-social-icon svg,
body.gg-night .elementor-icon-list-icon svg {
  fill: var(--cream) !important;
}
body.gg-night .elementor-social-icon {
  background: transparent !important;
  border: 1px solid var(--fog);
  border-radius: 0 !important;
}
body.gg-night .elementor-social-icon:hover {
  background: var(--glow) !important;
}

/* Меню */
body.gg-night .elementor-nav-menu a,
body.gg-night .elementor-nav-menu a *,
body.gg-night .menu-item a {
  color: var(--cream) !important;
  font-size: 13px !important;
}
body.gg-night .elementor-nav-menu a:hover,
body.gg-night .elementor-nav-menu a.elementor-item-active {
  background: var(--glow) !important;
  color: var(--night) !important;
}
body.gg-night .elementor-nav-menu--dropdown,
body.gg-night .elementor-menu-toggle,
body.gg-night .sub-menu {
  background: var(--night-2) !important;
  color: var(--cream) !important;
}
body.gg-night .elementor-menu-toggle svg {
  fill: var(--cream) !important;
}

/* Кнопки: тонкая рамка, при наведении заливаются огнём */
body.gg-night .elementor-button,
body.gg-night button,
body.gg-night input[type="submit"],
body.gg-night .jet-smart-filters-search .apply-filters__button,
body.gg-night .apply-filters__button {
  border: 1px solid var(--cream) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--cream) !important;
  font-family: var(--mono) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.gg-night .elementor-button:hover,
body.gg-night button:hover,
body.gg-night input[type="submit"]:hover,
body.gg-night .apply-filters__button:hover {
  border-color: var(--glow) !important;
  background: var(--glow) !important;
  color: var(--night) !important;
}

/* Поля поиска и фильтры JetSmartFilters */
body.gg-night input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
body.gg-night select,
body.gg-night textarea,
body.gg-night .jet-select__control,
body.gg-night .jet-search-filter__input {
  border: 0 !important;
  border-bottom: 1px solid var(--fog) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--cream) !important;
}
body.gg-night input:focus,
body.gg-night select:focus,
body.gg-night textarea:focus {
  border-bottom-color: var(--glow) !important;
  outline: none;
}
body.gg-night select option {
  background: var(--night-2);
}
body.gg-night input::placeholder {
  color: var(--cream);
  opacity: 0.5;
}
body.gg-night .jet-checkboxes-list__decorator,
body.gg-night .jet-radio-list__decorator {
  border-color: var(--fog) !important;
  background: transparent !important;
}
body.gg-night .jet-checkboxes-list__input:checked + .jet-checkboxes-list__button .jet-checkboxes-list__decorator,
body.gg-night .jet-radio-list__input:checked + .jet-radio-list__button .jet-radio-list__decorator {
  background: var(--glow) !important;
  border-color: var(--glow) !important;
}

/* Карточки блюд JetEngine: прямые углы, тёплый свет под фото */
body.gg-night .jet-listing-grid__item img,
body.gg-night .jet-listing-dynamic-image img,
body.gg-night .elementor-widget-theme-post-featured-image img,
body.gg-night .elementor-widget-image img {
  border-radius: 0 !important;
}
body.gg-night .jet-listing-grid__item .jet-listing-dynamic-image,
body.gg-night .jet-listing-grid__item .elementor-widget-image {
  overflow: hidden;
}
body.gg-night .jet-listing-grid__item img {
  transition: transform 0.5s;
}
body.gg-night .jet-listing-grid__item:hover img {
  transform: scale(1.05);
}

/* Карусели и стрелки */
body.gg-night .swiper-pagination-bullet,
body.gg-night .jet-listing-grid__slider-icon,
body.gg-night .elementor-swiper-button {
  background: var(--night-2) !important;
  color: var(--cream) !important;
  fill: var(--cream) !important;
}
body.gg-night .swiper-pagination-bullet-active {
  background: var(--glow) !important;
}

/* Переключатель языков WPML */
body.gg-night .wpml-ls,
body.gg-night .wpml-ls a,
body.gg-night .wpml-ls-sub-menu,
body.gg-night .wpml-ls-legacy-dropdown .wpml-ls-current-language:hover > a {
  border-color: var(--fog) !important;
  background: var(--night-2) !important;
  color: var(--cream) !important;
}
body.gg-night .wpml-ls a:hover {
  background: var(--glow) !important;
  color: var(--night) !important;
}

/* Цитаты */
body.gg-night blockquote,
body.gg-night .elementor-blockquote__content {
  font-family: var(--display);
  color: var(--cream) !important;
}
/* Чтобы блоки на всю ширину экрана не давали горизонтальную прокрутку */
body.gg-night {
  overflow-x: clip;
}

/* Первый экран: фото uploads/gastroguia/hero.jpg прижато к низу, над ним — тёмное поле с названием.
   Пока фото не загружено, виден тёплый свет */
body.gg-night .gg-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100vw;
  min-height: min(calc(56.25vw + 220px), 100vh);
  min-height: min(calc(56.25vw + 220px), 100svh);
  margin: 0 calc(50% - 50vw) 32px;
  padding: calc(var(--gg-header-h, 0px) + clamp(16px, 2vw, 32px)) max(16px, calc(50vw - 580px)) 32px;
  background:
    linear-gradient(to bottom, #0c0a09 220px, rgb(12 10 9 / 0%) 45%, rgb(12 10 9 / 0%) 75%, #0c0a09),
    url("/wp-content/uploads/gastroguia/hero.jpg") center bottom / cover no-repeat,
    radial-gradient(ellipse 60% 55% at 50% 60%, #e8742a 0%, #b8402c 38%, #3a120c 72%, #0c0a09 100%);
  color: var(--cream);
  text-align: center;
}
body.gg-night .gg-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
body.gg-night .gg-hero p,
body.gg-night .gg-hero ul {
  margin: 0;
}
body.gg-night .gg-hero__kicker,
body.gg-night .gg-hero__tagline {
  font-family: var(--mono);
  font-weight: 700;
  font-size: clamp(12px, 1vw, 15px);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.gg-night .gg-hero__tagline {
  max-width: 34ch;
  opacity: 0.85;
}
body.gg-night .gg-hero__title {
  margin: 0;
  color: var(--cream);
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(44px, 9vw, 150px);
  line-height: 0.9;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-shadow: 0 4px 40px rgb(0 0 0 / 35%);
}
body.gg-night .gg-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 0;
  list-style: none;
  text-align: start;
}
body.gg-night .gg-hero__facts li {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--fog);
  font-family: var(--mono);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.gg-night .gg-hero__facts b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 48px);
  letter-spacing: 0;
}
@media (max-width: 640px) {
  body.gg-night .gg-hero {
    min-height: 600px;
  }
  body.gg-night .gg-hero__facts li {
    flex-direction: column;
    gap: 2px;
    font-size: 11px;
  }
}

/* «Вам также может понравиться» на странице блюда — как остальные заголовки разделов */
body.gg-night p.elementor-heading-title {
  font-family: var(--display) !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Аллергены: плашки в ряд, тонкие рамки и мелкий капслок вместо скруглённых «таблеток» */
body.gg-night .allergen {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
body.gg-night .allergen > .elementor-widget {
  position: static !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
}
body.gg-night .allergen .elementor-widget-container {
  padding: 8px 12px !important;
  border: 1px solid var(--fog) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.gg-night .allergen .jet-listing-dynamic-field__content {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 13px !important;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* «Найти блюдо» */
body.gg-night .gg-find {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  margin: clamp(32px, 4vw, 56px) 0;
}
body.gg-night .gg-find[hidden] {
  display: none;
}
body.gg-night .gg-find__photo {
  background:
    url("/wp-content/uploads/gastroguia/atmosphere.webp") center / cover,
    radial-gradient(ellipse 50% 40% at 55% 55%, #f0a04a 0%, #b8402c 35%, #2a0c08 75%, #0c0a09 100%);
}
body.gg-night .gg-find__text {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding: clamp(24px, 3vw, 48px);
  background: #070605;
}
body.gg-night .gg-find__title {
  margin: 0 0 12px;
  color: var(--cream);
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 2.6vw, 44px);
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}
body.gg-night .gg-find__hint {
  margin: 0;
  font-family: var(--mono);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.8;
}
body.gg-night .gg-find__field {
  margin-top: auto;
  padding: 14px 0 !important;
  font-family: var(--mono);
  font-size: 16px;
}
body.gg-night .gg-find__btn {
  align-self: flex-start;
  padding: 12px 22px;
}
@media (max-width: 767px) {
  body.gg-night .gg-find {
    grid-template-columns: 1fr;
  }
  body.gg-night .gg-find__photo {
    min-height: 260px;
  }
}
/* Плитки кухонь на главной: ровный ряд вместо бесконечной ленты, номер как в меню клуба */
body.gg-night .gg-cuisines {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: clamp(32px, 4vw, 56px) 0;
}
body.gg-night .gg-cuisine {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #16110f;
  color: var(--cream) !important;
}
body.gg-night .gg-cuisine img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.6) brightness(0.7);
  transition: filter 0.5s, transform 0.8s;
}
body.gg-night .gg-cuisine:hover img,
body.gg-night .gg-cuisine:focus-visible img {
  filter: none;
  transform: scale(1.04);
}
body.gg-night .gg-cuisine__num {
  position: absolute;
  top: 16px;
  left: 18px;
  font-family: var(--mono);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
}
body.gg-night .gg-cuisine__info {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 96px 18px 18px;
  background: linear-gradient(to top, rgb(12 10 9 / 92%), transparent);
}
body.gg-night .gg-cuisine__name {
  font-family: var(--display);
  font-size: clamp(24px, 2.2vw, 36px);
  line-height: 1;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.gg-night .gg-cuisine__hint {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.75;
}
body.gg-night .gg-cuisine:hover .gg-cuisine__hint {
  color: var(--glow);
  opacity: 1;
}

/* Карточка блюда: фото 4:5 в рамке, название под фото — как карточки меню на референсе */
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8 {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8 .e-con-inner,
body.gg-night .jet-listing-grid__item .elementor-element-252ab20 {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
}
body.gg-night .jet-listing-grid__item .elementor-element-7844496 {
  order: 1;
  width: 100% !important;
  margin: 0 !important;
  overflow: hidden;
}
body.gg-night .jet-listing-grid__item .elementor-element-7844496 img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transition: transform 0.8s;
}
body.gg-night .jet-listing-grid__item:hover .elementor-element-7844496 img {
  transform: scale(1.04);
}
body.gg-night .jet-listing-grid__item .card-txt {
  order: 2;
  position: static !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px 0 0 !important;
  border-top: 0 !important;
  background: none !important;
  opacity: 1 !important;
  transform: none !important;
  text-align: start;
}
body.gg-night .jet-listing-grid__item .card-txt .elementor-heading-title {
  font-family: var(--display) !important;
  font-weight: 500 !important;
  font-size: clamp(18px, 1.5vw, 24px) !important;
  letter-spacing: 0.03em;
  line-height: 1.1;
  text-transform: uppercase;
}
body.gg-night .jet-listing-grid__item:hover .card-txt .elementor-heading-title {
  color: var(--glow) !important;
}

/* Ряд карточек вместо карусели */
body.gg-night .jet-listing-grid__items.gg-row {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 20px;
  margin: 0 !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--fog) transparent;
  padding-bottom: 12px;
}
body.gg-night .gg-row > .jet-listing-grid__item {
  flex: 0 0 calc((100% - 60px) / 4) !important;
  max-width: none !important;
  padding: 0 !important;
  scroll-snap-align: start;
}
body.gg-night .gg-row-nav {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}
/* Стрелки двигают ряд физически влево/вправо — в письме справа налево их не переставляем, иначе «←» оказывается справа */
body.gg-night .gg-row-nav {
  direction: ltr;
}
html[dir="rtl"] body.gg-night .gg-row-nav {
  justify-content: flex-start;
}
body.gg-night .gg-row-nav button {
  width: 48px;
  height: 40px;
  padding: 0 !important;
  font-size: 16px !important;
}
@media (max-width: 1024px) {
  body.gg-night .gg-row > .jet-listing-grid__item {
    flex-basis: calc((100% - 20px) / 2) !important;
  }
}
@media (max-width: 640px) {
  body.gg-night .gg-row > .jet-listing-grid__item {
    flex-basis: 72% !important;
  }
}

/* Подвал: значки соцсетей и подписи были тёмными на тёмном */
body.gg-night .elementor-location-footer .e-con,
body.gg-night .elementor-location-footer .elementor-widget-container {
  border-radius: 0 !important;
}
body.gg-night .elementor-location-footer .elementor-icon-box-title,
body.gg-night .elementor-location-footer .elementor-icon-box-title a,
body.gg-night .elementor-location-footer .elementor-icon-box-description {
  color: var(--cream) !important;
  font-family: var(--mono) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.gg-night .elementor-location-footer svg,
body.gg-night .elementor-location-footer svg path {
  fill: var(--cream) !important;
}
body.gg-night .elementor-location-footer .elementor-widget-icon-box:hover svg,
body.gg-night .elementor-location-footer .elementor-widget-icon-box:hover svg path {
  fill: var(--glow) !important;
}
/* Первый экран с анимацией: секция в три экрана, внутри экран закреплён, кадры рисуются на canvas */
body.gg-night .gg-hero--scroll {
  display: block;
  height: 300vh;
  height: 300svh;
  min-height: 0;
  padding: 0;
  background: #0c0a09;
}
body.gg-night .gg-hero--still {
  height: 100vh;
  height: 100svh;
}
/* svh — высота экрана с видимой адресной строкой: на iPhone 100vh больше видимой части и низ уезжал под строку */
body.gg-night .gg-hero__stage {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100vh;
  height: 100svh;
  padding: calc(var(--gg-header-h, 0px) + clamp(16px, 2vw, 32px)) max(16px, calc(50vw - 580px)) 32px;
  overflow: hidden;
  background: #0c0a09 center / cover no-repeat;
}
body.gg-night .gg-hero__stage--live {
  background-image: none !important;
}
body.gg-night .gg-hero__canvas,
body.gg-night .gg-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
body.gg-night .gg-hero__video {
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.4s;
}
body.gg-night .gg-hero__stage--video .gg-hero__video {
  opacity: 1;
}
/* Затемнение сверху под надпись и снизу — переход в ночной фон страницы */
body.gg-night .gg-hero__stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(12 10 9 / 88%), rgb(12 10 9 / 35%) 22%, rgb(12 10 9 / 0%) 42%, rgb(12 10 9 / 0%) 72%, #0c0a09);
  pointer-events: none;
}
body.gg-night .gg-hero__stage .gg-hero__inner,
body.gg-night .gg-hero__stage .gg-hero__facts {
  position: relative;
  z-index: 1;
}
body.gg-night .gg-hero__stage .gg-hero__inner {
  will-change: opacity, transform;
}
/* Телефон: первый экран сначала обычной высоты и вытягивается под анимацию, только когда пришли первые кадры, —
   иначе его пролистывали с неподвижной картинкой */
@media (max-width: 767px) {
  body.gg-night .gg-hero--scroll {
    height: 100vh;
    height: 100svh;
  }
  body.gg-night .gg-hero--scroll.gg-hero--ready {
    height: 220vh;
    height: 220svh;
  }
  body.gg-night .gg-hero--still {
    height: 100vh;
    height: 100svh;
  }
}
/* Робот Google снимает страницу в «окне» высотой в несколько тысяч пикселей: первый экран растягивался на всю высоту,
   и на его скриншоте было тёмное поле с огромным лицом. На таких высотах первый экран — обычной высоты, без анимации */
@media (min-height: 1500px) {
  body.gg-night .gg-hero--scroll,
  body.gg-night .gg-hero--scroll.gg-hero--ready,
  body.gg-night .gg-hero--still,
  body.gg-night .gg-hero__stage {
    height: 880px;
  }
}
/* ---------- Своя шапка ---------- */
body.gg-night {
  --gg-header-h: 76px;
  padding-top: var(--gg-header-h);
}
body.gg-night .elementor-location-header,
body.gg-night .elementor-location-footer,
body.gg-night .site-header,
body.gg-night .site-footer {
  display: none !important;
}
body.gg-night.gg-locked {
  overflow: hidden;
}
body.gg-night .gg-ico {
  width: 22px;
  height: 22px;
  flex: none;
}
body.gg-night .gg-bar {
  position: fixed;
  top: var(--wp-admin--admin-bar--height, 0px);
  left: 0;
  right: 0;
  z-index: 1000;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: var(--gg-header-h);
  padding: 0 max(16px, calc(50vw - 600px));
  color: var(--cream);
  transition: background-color 0.4s, border-color 0.4s;
  border-bottom: 1px solid transparent;
}
body.gg-night.gg-header-solid .gg-bar,
body.gg-night.gg-locked .gg-bar {
  background: rgb(12 10 9 / 82%);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom-color: var(--fog);
}
body.gg-night .gg-bar__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  padding: 0 4px !important;
  border: 0 !important;
  background: none !important;
  color: var(--cream) !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
body.gg-night .gg-bar__btn:hover,
body.gg-night .gg-bar__btn[aria-expanded="true"] {
  color: var(--glow) !important;
  background: none !important;
}
body.gg-night .gg-bar__menu {
  justify-self: start;
}
body.gg-night .gg-bar__right {
  display: flex;
  justify-self: end;
  align-items: center;
  gap: clamp(8px, 1.6vw, 22px);
}
body.gg-night .gg-bar__fasie img {
  display: block;
  height: 30px;
  width: auto;
  filter: invert(1) grayscale(1) brightness(1.6);
  opacity: 0.7;
  transition: opacity 0.3s;
}
body.gg-night .gg-bar__fasie:hover img {
  opacity: 1;
}
body.gg-night .gg-bar__lang img,
body.gg-night .gg-langs img,
body.gg-night .gg-drawer__langs img,
body.gg-night .gg-foot__langs img {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--fog);
}

/* Логотип: прежний знак, осветлённый под ночь, с тёплым отсветом при наведении */
body.gg-night .gg-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
body.gg-night .gg-logo__img {
  display: block;
  width: auto;
  height: 46px;
  filter: invert(1) sepia(0.3) saturate(0.6) brightness(1.05);
  mix-blend-mode: screen;
  transition: filter 0.3s;
}
body.gg-night .gg-logo:hover .gg-logo__img {
  filter: invert(1) sepia(0.9) saturate(2.2) hue-rotate(-12deg) brightness(1.05);
}
body.gg-night .gg-foot__logo .gg-logo__img {
  height: 56px;
}
/* Логотип на других языках: знак + название шрифтом; размер задаётся font-size = высота знака */
body.gg-night .gg-logo--text {
  gap: 0.5em;
  font-size: 46px;
  line-height: 1;
  color: #efe6d6;
  transition: color 0.3s;
}
body.gg-night .gg-logo--text:hover {
  color: var(--glow);
}
body.gg-night .gg-logo__icon {
  flex: none;
  width: auto;
  height: 1em;
  fill: currentColor;
}
body.gg-night .gg-logo__words {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
body.gg-night .gg-logo__name {
  display: flex;
  align-items: flex-end;
  font-size: 0.66em;
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}
body.gg-night .gg-logo__o {
  width: auto;
  height: 1em;
  margin: 0 0.02em -0.04em;
  fill: currentColor;
}
body.gg-night .gg-logo__tag {
  margin-top: 0.3em;
  font-size: max(0.23em, 9px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}
/* Грузинские заглавные (мтаврули) выглядят чужеродно, у арабского и хинди заглавных нет; у них выносные элементы — даём место */
body.gg-night .gg-logo--ka .gg-logo__name { text-transform: none; line-height: 1.15; }
body.gg-night .gg-logo--ar .gg-logo__name,
body.gg-night .gg-logo--fa .gg-logo__name,
body.gg-night .gg-logo--hi .gg-logo__name { line-height: 1.1; letter-spacing: 0; }
body.gg-night .gg-logo--ar .gg-logo__tag,
body.gg-night .gg-logo--fa .gg-logo__tag,
body.gg-night .gg-logo--hi .gg-logo__tag,
body.gg-night .gg-logo--ka .gg-logo__tag { margin-top: 0.15em; letter-spacing: 0; }
body.gg-night .gg-foot__logo.gg-logo--text {
  font-size: 56px;
}

/* Выпадающий список языков */
body.gg-night .gg-langs {
  position: absolute;
  top: calc(100% + 6px);
  inset-inline-end: max(16px, calc(50vw - 600px));
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 2px;
  max-height: 70vh;
  overflow-y: auto;
  padding: 8px;
  border: 1px solid var(--fog);
  background: rgb(12 10 9 / 95%);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
body.gg-night .gg-langs[hidden],
body.gg-night .gg-search[hidden],
body.gg-night .gg-drawer[hidden] {
  display: none;
}
body.gg-night .gg-langs a,
body.gg-night .gg-drawer__langs a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  color: var(--cream) !important;
  font-family: var(--mono);
  font-size: 13px;
  text-decoration: none;
}
body.gg-night .gg-langs a:hover,
body.gg-night .gg-drawer__langs a:hover {
  background: rgb(233 226 207 / 8%);
}
body.gg-night .gg-langs a[aria-current],
body.gg-night .gg-drawer__langs a[aria-current] {
  color: var(--glow) !important;
}

/* Поиск во весь экран */
body.gg-night .gg-search {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 max(16px, calc(50vw - 600px));
  background: rgb(12 10 9 / 94%);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
body.gg-night .gg-search__form {
  display: flex;
  align-items: center;
  width: 100%;
  border-bottom: 1px solid var(--fog);
}
body.gg-night .gg-search__field {
  flex: 1;
  min-width: 0;
  padding: 18px 0 !important;
  border: 0 !important;
  font-family: var(--mono) !important;
  font-size: clamp(20px, 3.4vw, 44px) !important;
  text-transform: uppercase;
}
body.gg-night .gg-search__go {
  padding: 8px !important;
  border: 0 !important;
}
body.gg-night .gg-search__go .gg-ico {
  width: 34px;
  height: 34px;
}
body.gg-night .gg-search__close {
  position: absolute;
  top: calc(var(--wp-admin--admin-bar--height, 0px) + 18px);
  inset-inline-end: max(16px, calc(50vw - 600px));
}

/* Меню во весь экран */
body.gg-night .gg-drawer {
  position: fixed;
  inset: var(--wp-admin--admin-bar--height, 0px) 0 0;
  z-index: 1100;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 0 max(16px, calc(50vw - 600px)) 40px;
  background:
    radial-gradient(ellipse 60% 70% at 85% 110%, rgb(232 116 42 / 28%), transparent 70%),
    #0c0a09;
  color: var(--cream);
  animation: gg-fade 0.35s ease;
}
@keyframes gg-fade {
  from { opacity: 0; }
}
body.gg-night .gg-drawer__top {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: var(--gg-header-h);
  border-bottom: 1px solid var(--fog);
}
body.gg-night .gg-drawer__body {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(32px, 6vw, 96px);
  padding-top: clamp(32px, 5vw, 64px);
}
body.gg-night .gg-drawer__nav {
  display: flex;
  flex-direction: column;
}
body.gg-night .gg-drawer__nav a {
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid var(--fog);
  color: var(--cream) !important;
  font-family: var(--mono);
  font-size: clamp(24px, 3.4vw, 48px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.05;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.25s, padding-left 0.25s;
}
body.gg-night .gg-drawer__nav a:hover,
body.gg-night .gg-drawer__nav a[aria-current] {
  padding-left: 12px;
  color: var(--glow) !important;
}
body.gg-night .gg-drawer__num {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  opacity: 0.6;
}
body.gg-night .gg-drawer__label,
body.gg-night .gg-foot__label {
  margin: 0 0 12px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}
body.gg-night .gg-drawer__langs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  margin-bottom: 32px;
}
body.gg-night .gg-drawer__contacts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 18px;
  font-family: var(--mono);
}
body.gg-night .gg-drawer__contacts a {
  color: var(--cream) !important;
  text-decoration: none;
}
body.gg-night .gg-social {
  display: flex;
  gap: 10px;
  margin: 0;
}
body.gg-night .gg-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--fog);
  color: var(--cream) !important;
  transition: border-color 0.3s, color 0.3s;
}
body.gg-night .gg-social a:hover {
  border-color: var(--glow);
  color: var(--glow) !important;
}
body.gg-night .gg-social svg {
  width: 20px;
  height: 20px;
}

/* ---------- Свой подвал ---------- */
body.gg-night .gg-foot {
  position: relative;
  overflow: hidden;
  margin-top: clamp(48px, 6vw, 96px);
  padding: clamp(40px, 5vw, 72px) max(16px, calc(50vw - 600px)) 0;
  border-top: 1px solid var(--fog);
  color: var(--cream);
  font-family: var(--mono);
}
body.gg-night .gg-foot__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: clamp(24px, 4vw, 56px);
}
body.gg-night .gg-foot__brand p {
  max-width: 30ch;
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 1.5;
  opacity: 0.75;
}
body.gg-night .gg-foot__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
}
body.gg-night .gg-foot__col a {
  color: var(--cream) !important;
  text-decoration: none;
}
body.gg-night .gg-foot__col a:hover {
  color: var(--glow) !important;
}
body.gg-night .gg-foot__langs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 220px;
}
body.gg-night .gg-foot__langs a {
  display: inline-flex;
  transition: transform 0.2s;
}
body.gg-night .gg-foot__langs a:hover {
  transform: scale(1.15);
}
body.gg-night .gg-foot__langs img {
  width: 26px;
  height: 26px;
}
body.gg-night .gg-foot .gg-social {
  margin-top: 10px;
}
body.gg-night .gg-foot__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: clamp(32px, 4vw, 56px);
  padding: 18px 0;
  border-top: 1px solid var(--fog);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.75;
}
body.gg-night .gg-foot__legal {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.gg-night .gg-foot__legal:hover {
  color: var(--glow);
}
body.gg-night .gg-foot__bottom img {
  display: block;
  height: 28px;
  width: auto;
  filter: invert(1) grayscale(1) brightness(1.6);
}
/* Огромный фирменный логотип внизу, как подпись клуба: тёплый и полупрозрачный */
body.gg-night .gg-foot__word {
  display: block;
  width: min(100%, 1200px);
  height: auto;
  margin: clamp(24px, 4vw, 56px) auto -2%;
  filter: invert(1) sepia(1) saturate(3) hue-rotate(-15deg) brightness(0.75);
  mix-blend-mode: screen;
  opacity: 0.35;
  -webkit-mask-image: linear-gradient(to bottom, #000 30%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 30%, transparent 100%);
  user-select: none;
  pointer-events: none;
}
/* Та же подпись на других языках — знак и название шрифтом, тем же тёплым полупрозрачным цветом */
body.gg-night .gg-foot__word--text {
  display: flex;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  font-size: clamp(56px, 13vw, 210px);
  color: #c4793f;
  filter: none;
  mix-blend-mode: normal;
}
body.gg-night .gg-foot__word--text .gg-logo__tag {
  letter-spacing: 0.12em;
}

@media (max-width: 900px) {
  body.gg-night .gg-drawer__body {
    grid-template-columns: 1fr;
  }
  body.gg-night .gg-foot__grid {
    grid-template-columns: 1fr 1fr;
  }
  body.gg-night .gg-bar__fasie {
    display: none;
  }
}
@media (max-width: 640px) {
  body.gg-night {
    --gg-header-h: 62px;
  }
  body.gg-night .gg-bar__menu span,
  body.gg-night .gg-bar__lang span,
  body.gg-night .gg-drawer__close span {
    display: none;
  }
  body.gg-night .gg-logo__img {
    height: 34px;
  }
  body.gg-night .gg-bar .gg-logo--text,
  body.gg-night .gg-drawer .gg-logo--text {
    font-size: 34px;
  }
  body.gg-night .gg-langs {
    left: 16px;
    right: 16px;
    grid-template-columns: 1fr 1fr;
  }
  body.gg-night .gg-foot__grid {
    grid-template-columns: 1fr;
  }
  body.gg-night .gg-foot__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Карточки без фото: заглушка не сжимается, у карточки нет навязанной высоты */
body.gg-night .jet-listing-grid__item,
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8 {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
/* JetEngine прячет все карточки, кроме первых, пока карусель не запущена, — в ряду показываем все */
body.gg-night .jet-listing-grid__items.gg-row > .jet-listing-grid__item {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
body.gg-night .jet-listing-grid__item .card-txt,
body.gg-night .jet-listing-grid__item .card-txt .elementor-widget-container,
body.gg-night .jet-listing-grid__item .card-txt .elementor-heading-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
}
/* Письмо справа налево (арабский, фарси): стрелки и сдвиг пунктов меню — в другую сторону */
body.gg-night[dir="rtl"] .gg-search__go .gg-ico,
[dir="rtl"] body.gg-night .gg-search__go .gg-ico {
  transform: scaleX(-1);
}
body.gg-night .gg-drawer__nav a:dir(rtl):hover,
body.gg-night .gg-drawer__nav a[aria-current]:dir(rtl) {
  padding-left: 0;
  padding-right: 12px;
}
body.gg-night .gg-langs a,
body.gg-night .gg-drawer__langs a {
  text-align: start;
}
/* Заголовки — IBM Plex Mono, как в фирменном стиле; селекторы сильнее, чем у шрифтов Elementor */
/* Классы повторены нарочно: так правило сильнее индивидуального CSS виджетов Elementor */
html body.gg-night.gg-night.gg-night .elementor .elementor-heading-title.elementor-heading-title.elementor-heading-title,
html body.gg-night.gg-night.gg-night .elementor .elementor-heading-title.elementor-heading-title.elementor-heading-title *,
html body.gg-night .gg-hero__title,
html body.gg-night .gg-cuisine__name,
html body.gg-night .gg-find__title {
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

/* Карточка без фото — сама становится тёплым прямоугольником 4:5, название внизу */
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8:not(:has(img)) {
  aspect-ratio: 4 / 5;
  justify-content: flex-end !important;
  background: #6e2016 url("/wp-content/uploads/gastroguia/texture.webp") center / cover !important;
}
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8:not(:has(img)) .card-txt {
  padding: 16px !important;
}
/* Внутренние блоки карточки не режут подпись */
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8 .e-con-inner,
body.gg-night .jet-listing-grid__item .elementor-element-252ab20,
body.gg-night .jet-listing-grid__item .elementor-element-252ab20 > .e-con-inner,
body.gg-night .jet-listing-grid__item .jet-engine-listing-overlay-wrap {
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* Наведение как у карточек Steam: карточка приподнимается, слегка наклоняется за курсором, по фото бежит блик */
body.gg-night .jet-listing-grid__items.gg-row {
  padding-top: 18px !important;
  padding-bottom: 22px !important;
}
body.gg-night .jet-listing-grid__item {
  perspective: 900px;
}
body.gg-night .jet-listing-grid__item .elementor-element-b6484e8 {
  transform: translateY(0) rotateX(var(--gg-rx, 0deg)) rotateY(var(--gg-ry, 0deg));
  transform-style: preserve-3d;
  transition: transform 0.35s cubic-bezier(.2, .8, .2, 1), box-shadow 0.35s;
  will-change: transform;
}
body.gg-night .jet-listing-grid__item:hover .elementor-element-b6484e8 {
  transform: translateY(-10px) scale(1.04) rotateX(var(--gg-rx, 0deg)) rotateY(var(--gg-ry, 0deg));
  transition: transform 0.12s ease-out, box-shadow 0.35s;
  box-shadow: 0 24px 50px -18px rgb(232 116 42 / 45%), 0 10px 30px rgb(0 0 0 / 60%);
  z-index: 2;
}
body.gg-night .jet-listing-grid__item:hover .elementor-element-7844496 img {
  transform: none;
}
body.gg-night .jet-listing-grid__item .elementor-element-7844496 {
  position: relative;
}
body.gg-night .jet-listing-grid__item .elementor-element-7844496::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--gg-mx, 50%) var(--gg-my, 0%), rgb(255 236 210 / 38%), transparent 45%),
    linear-gradient(115deg, transparent 35%, rgb(255 255 255 / 10%) 50%, transparent 65%);
  opacity: 0;
  transition: opacity 0.35s;
  pointer-events: none;
  mix-blend-mode: soft-light;
}
body.gg-night .jet-listing-grid__item:hover .elementor-element-7844496::after {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  body.gg-night .jet-listing-grid__item .elementor-element-b6484e8 {
    transition: none;
  }
}
/* Название блюда под фото */
body.gg-night .gg-card-name {
  margin: 0;
  padding: 14px 2px 4px;
  color: var(--cream) !important;
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  font-size: clamp(15px, 1.2vw, 19px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  transition: color 0.3s;
}
body.gg-night .jet-listing-grid__item:hover .gg-card-name {
  color: var(--glow) !important;
}
/* Ряд: поля вокруг, чтобы тень приподнятой карточки не обрезалась */
body.gg-night .jet-listing-grid__items.gg-row {
  padding: 28px 28px 56px !important;
  margin: -28px -28px -34px !important;
  scroll-padding-inline: 28px;
  cursor: grab;
}
body.gg-night .jet-listing-grid__items.gg-row.gg-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
}
body.gg-night .gg-row.gg-dragging * {
  pointer-events: none;
  user-select: none;
}
body.gg-night .gg-row img {
  -webkit-user-drag: none;
}
body.gg-night .jet-listing-grid__item:hover .elementor-element-b6484e8 {
  box-shadow: 0 18px 40px -14px rgb(232 116 42 / 40%), 0 8px 22px rgb(0 0 0 / 55%);
}
/* Убираем синий крестик браузера в полях поиска */
body.gg-night input[type="search"]::-webkit-search-cancel-button,
body.gg-night input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

/* Страница поиска и архив блюд */
body.gg-night .gg-results {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(32px, 5vw, 72px) 16px 0;
  color: var(--cream);
}
body.gg-night .gg-results__head {
  margin-bottom: clamp(28px, 4vw, 56px);
}
/* Страница кухни: обложка кухни справа растворяется в темноте, как застолье на странице туров */
body.gg-night .gg-kitchen__head {
  position: relative;
  min-height: clamp(220px, 28vw, 380px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
body.gg-night .gg-kitchen__head > :not(.gg-kitchen__art) {
  position: relative;
  max-width: 640px;
}
body.gg-night .gg-kitchen__art {
  position: absolute;
  inset: -40px -3vw -20px 35%;
  background: center / cover no-repeat;
  opacity: 0.6;
  -webkit-mask-image: radial-gradient(70% 75% at 65% 45%, #000 30%, transparent 75%);
  mask-image: radial-gradient(70% 75% at 65% 45%, #000 30%, transparent 75%);
  pointer-events: none;
}
body.gg-night .gg-results__kicker a {
  color: var(--glow) !important;
  text-decoration: none;
}
body.gg-night .gg-kitchen__lead {
  margin: 0;
  font: 400 15px/1.7 var(--mono);
  opacity: 0.85;
}
@media (max-width: 900px) {
  body.gg-night .gg-kitchen__art {
    inset: -40px -16px 30% -16px;
    opacity: 0.35;
  }
}

/* «Контакты» и «О проекте» */
body.gg-night .gg-info {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(40px, 7vw, 110px) 16px clamp(48px, 7vw, 110px);
  color: var(--cream);
}
body.gg-night .gg-info__head {
  max-width: 820px;
  margin-bottom: clamp(32px, 5vw, 64px);
}
body.gg-night .gg-info__title {
  margin: 0 0 24px;
  color: var(--cream);
  font: 500 clamp(36px, 5.6vw, 84px)/0.98 var(--display);
  letter-spacing: -0.02em;
  text-transform: uppercase;
}
body.gg-night .gg-info__lead,
body.gg-night .gg-info__text {
  margin: 0;
  font: 400 clamp(15px, 1.3vw, 17px)/1.7 var(--mono);
  opacity: 0.88;
}
body.gg-night .gg-info__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 32px 0 0;
}
body.gg-night .gg-info__cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 14px;
}
body.gg-night .gg-info__card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 26px;
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: rgb(233 226 207 / 3%);
  color: var(--cream) !important;
  text-decoration: none;
  transition: border-color 0.3s, background 0.3s, translate 0.3s;
}
body.gg-night .gg-info__card:hover {
  border-color: var(--glow);
  background: rgb(232 116 42 / 8%);
  translate: 0 -3px;
}
body.gg-night .gg-info__label {
  color: var(--glow);
  font: 700 11px/1 var(--mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.gg-night .gg-info__value {
  font: 500 clamp(15px, 1.35vw, 19px)/1.3 var(--mono);
  overflow-wrap: anywhere;
}
body.gg-night .gg-info__go {
  position: absolute;
  top: 20px;
  inset-inline-end: 22px;
  opacity: 0.5;
  transition: opacity 0.3s, translate 0.3s;
}
body.gg-night .gg-info__card:hover .gg-info__go {
  opacity: 1;
  translate: 3px -3px;
}
body.gg-night .gg-info__company {
  margin: 32px 0 0;
  font: 400 14px/1.5 var(--mono);
  opacity: 0.7;
}
body.gg-night .gg-info__company span {
  margin-inline-end: 8px;
  color: var(--glow);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.gg-night .gg-info__support {
  display: grid;
  grid-template-columns: minmax(140px, 220px) 1fr;
  align-items: center;
  gap: clamp(24px, 4vw, 56px);
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--fog);
  border-radius: 18px;
}
body.gg-night .gg-info__support img {
  width: 100%;
  height: auto;
  padding: 18px;
  border-radius: 12px;
  background: #f4efe4;
}
/* «Для ресторанов» и «Партнёры» */
body.gg-night .gg-offer__sect {
  margin-top: clamp(56px, 8vw, 120px);
}
body.gg-night .gg-offer__h {
  margin: 0 0 28px;
  color: var(--cream);
  font: 500 clamp(26px, 3.2vw, 44px)/1.05 var(--display);
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
body.gg-night .gg-offer__h--small {
  margin-bottom: 12px;
  font-size: clamp(20px, 2vw, 28px);
}
body.gg-night .gg-offer__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 14px;
}
body.gg-night .gg-offer__item {
  padding: 26px 28px;
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: rgb(233 226 207 / 3%);
}
body.gg-night .gg-offer__item h3,
body.gg-night .gg-offer__steps h3,
body.gg-night .gg-offer__plan h3 {
  margin: 0 0 10px;
  color: var(--cream);
  font: 600 17px/1.3 var(--mono);
}
body.gg-night .gg-offer__item p,
body.gg-night .gg-offer__steps p {
  margin: 0;
  font: 400 14px/1.65 var(--mono);
  opacity: 0.8;
}
body.gg-night .gg-offer__num {
  display: block;
  margin-bottom: 18px;
  color: var(--glow);
  font: 600 13px/1 var(--mono);
}
body.gg-night .gg-offer__item--hot {
  border-color: var(--glow);
  background: linear-gradient(180deg, rgb(232 116 42 / 12%), rgb(232 116 42 / 2%));
}
body.gg-night .gg-offer__models {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
body.gg-night .gg-offer__models .gg-offer__num {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.gg-night .gg-offer__tour {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  padding: clamp(28px, 5vw, 64px);
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: linear-gradient(90deg, rgb(10 8 7 / 94%), rgb(10 8 7 / 72%)), var(--gg-tour-bg, none) center / cover;
}
body.gg-night .gg-offer__ticks {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.gg-night .gg-offer__ticks li {
  position: relative;
  padding-inline-start: 30px;
  font: 400 15px/1.55 var(--mono);
}
body.gg-night .gg-offer__ticks li::before {
  content: "→";
  position: absolute;
  inset-inline-start: 0;
  color: var(--glow);
}
@media (max-width: 900px) {
  body.gg-night .gg-offer__tour {
    grid-template-columns: 1fr;
  }
}
body.gg-night .gg-offer__steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: gg-step;
}
body.gg-night .gg-offer__steps li {
  position: relative;
  padding: 64px 4px 0;
  border-top: 1px solid var(--fog);
  counter-increment: gg-step;
}
body.gg-night .gg-offer__steps li::before {
  content: counter(gg-step, decimal-leading-zero);
  position: absolute;
  top: 18px;
  inset-inline-start: 4px;
  color: var(--glow);
  font: 500 30px/1 var(--display);
}
body.gg-night .gg-offer__plans {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  align-items: stretch;
}
body.gg-night .gg-offer__plan {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 30px 28px;
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: rgb(233 226 207 / 3%);
}
body.gg-night .gg-offer__plan--hot {
  border-color: var(--glow);
  background: linear-gradient(180deg, rgb(232 116 42 / 14%), rgb(232 116 42 / 3%));
}
body.gg-night .gg-offer__badge {
  position: absolute;
  top: -12px;
  inset-inline-start: 24px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--glow);
  color: #0c0a09;
  font: 700 11px/1 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.gg-night .gg-offer__price {
  margin: 8px 0 4px;
}
body.gg-night .gg-offer__price b {
  font: 500 clamp(30px, 3vw, 40px)/1 var(--display);
}
body.gg-night .gg-offer__price span,
body.gg-night .gg-offer__yearly span {
  font: 400 12px/1 var(--mono);
  opacity: 0.6;
}
body.gg-night .gg-offer__yearly {
  margin: 0 0 20px;
  font: 600 14px/1.4 var(--mono);
}
body.gg-night .gg-offer__plan ul {
  flex: 1;
  margin: 0 0 24px;
  padding: 18px 0 0;
  border-top: 1px solid var(--fog);
  list-style: none;
}
body.gg-night .gg-offer__plan li {
  padding: 6px 0 6px 22px;
  font: 400 14px/1.4 var(--mono);
  background: no-repeat 0 50% / 12px linear-gradient(var(--glow), var(--glow));
  background-size: 10px 2px;
}
body.gg-night .gg-offer__plan .gg-btn {
  align-self: flex-start;
}
body.gg-night .gg-offer__note {
  margin: 18px 0 0;
  font: 400 13px/1.6 var(--mono);
  opacity: 0.6;
}
body.gg-night .gg-offer__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.gg-night .gg-offer__chips li {
  padding: 12px 18px;
  border: 1px solid rgb(232 116 42 / 45%);
  border-radius: 999px;
  font: 500 14px/1.3 var(--mono);
}
body.gg-night .gg-offer__end {
  margin-top: clamp(56px, 8vw, 120px);
  padding: clamp(28px, 5vw, 64px);
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: radial-gradient(120% 140% at 0% 0%, rgb(232 116 42 / 16%), transparent 60%);
  scroll-margin-top: calc(var(--gg-header-h, 80px) + 20px);
}
body.gg-night #gg-offer-end {
  scroll-margin-top: calc(var(--gg-header-h, 80px) + 20px);
}
body.gg-night .gg-press {
  display: grid;
  border-top: 1px solid var(--fog);
}
body.gg-night .gg-press__item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(180px, 280px) 1fr;
  gap: 8px 28px;
  padding: 22px 48px 22px 0;
  border-bottom: 1px solid var(--fog);
  color: var(--cream) !important;
  text-decoration: none;
  transition: padding 0.3s, background 0.3s;
}
body.gg-night .gg-press__item:hover {
  padding-inline-start: 16px;
  background: rgb(232 116 42 / 7%);
}
body.gg-night .gg-press__source {
  color: var(--glow);
  font: 700 11px/1.6 var(--mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.gg-night .gg-press__title {
  font: 500 clamp(15px, 1.4vw, 18px)/1.45 var(--mono);
}
body.gg-night .gg-press__go {
  position: absolute;
  top: 50%;
  inset-inline-end: 12px;
  translate: 0 -50%;
  opacity: 0.5;
  transition: opacity 0.3s, translate 0.3s;
}
body.gg-night .gg-press__item:hover .gg-press__go {
  opacity: 1;
  translate: 3px calc(-50% - 3px);
}
@media (max-width: 700px) {
  body.gg-night .gg-press__item {
    grid-template-columns: 1fr;
  }
}
body.gg-night .gg-offer__partners {
  display: grid;
  gap: 14px;
}
body.gg-night .gg-offer__mark {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  background: #f4efe4;
  color: #0c0a09;
  font: 600 clamp(18px, 2vw, 26px)/1 var(--display);
  letter-spacing: 0.08em;
}
@media (max-width: 700px) {
  body.gg-night .gg-info__support {
    grid-template-columns: 1fr;
  }
  body.gg-night .gg-info__support img {
    max-width: 220px;
  }
}
body.gg-night .gg-results__kicker {
  margin: 0 0 12px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}
body.gg-night .gg-results__title {
  margin: 0 0 24px;
  color: var(--cream);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: clamp(30px, 4.4vw, 64px);
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
}
body.gg-night .gg-results__form .gg-search__field {
  font-size: clamp(18px, 2vw, 26px) !important;
}
body.gg-night .gg-results__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 28px 20px;
}
body.gg-night .gg-result {
  display: block;
  color: var(--cream) !important;
  text-decoration: none;
  perspective: 900px;
}
body.gg-night .gg-result__photo {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #6e2016 url("/wp-content/uploads/gastroguia/texture.webp") center / cover;
  transition: transform 0.35s cubic-bezier(.2, .8, .2, 1), box-shadow 0.35s;
}
body.gg-night .gg-result__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.gg-night .gg-result:hover .gg-result__photo {
  transform: translateY(-8px) scale(1.03);
  box-shadow: 0 18px 40px -14px rgb(232 116 42 / 40%), 0 8px 22px rgb(0 0 0 / 55%);
}
body.gg-night .gg-result__name {
  display: block;
  padding: 14px 2px 0;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: clamp(15px, 1.2vw, 19px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  transition: color 0.3s;
}
body.gg-night .gg-result:hover .gg-result__name {
  color: var(--glow);
}
body.gg-night .gg-results__pages {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 40px;
  font-family: var(--mono);
}
body.gg-night .gg-results__pages .page-numbers {
  min-width: 40px;
  padding: 8px 12px;
  border: 1px solid var(--fog);
  color: var(--cream) !important;
  text-align: center;
  text-decoration: none;
}
body.gg-night .gg-results__pages .current,
body.gg-night .gg-results__pages a:hover {
  border-color: var(--glow);
  color: var(--glow) !important;
}
body.gg-night .gg-results__empty {
  font-family: var(--mono);
  opacity: 0.8;
}
/* ---------- Свои ряды кухонь на главной ---------- */
/* Старая лента и старые ряды главной скрыты сразу, ещё до скриптов, — чтобы прежний сайт не мелькал */
body.gg-night:has(.gg-home) .elementor-element-af171bf,
body.gg-night:has(.gg-home) .elementor-element-749af90,
body.gg-night:has(.gg-home) .elementor-element-282134b,
body.gg-night:has(.gg-home) .elementor-element-4860f06,
body.gg-night:has(.gg-home) .elementor-element-810c11f,
body.gg-night:has(.gg-home) .e-con:has(> .e-con-inner > .elementor-widget-html .slider-container) {
  display: none !important;
}
body.gg-night .gg-home[hidden] {
  display: none;
}
body.gg-night .gg-sect {
  margin: clamp(40px, 5vw, 72px) 0 0;
}
body.gg-night .gg-sect__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--fog);
}
body.gg-night .gg-sect__title {
  margin: 0;
  color: var(--cream);
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  font-size: clamp(24px, 2.6vw, 40px);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
}
body.gg-night .gg-sect__count {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  opacity: 0.6;
}
/* Ряд: свободное место сверху и снизу, чтобы поднятая карточка и её свечение не обрезались */
body.gg-night .gg-row--own {
  display: flex;
  gap: 20px;
  margin: 0 -40px;
  padding: 44px 40px 64px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 40px;
  scrollbar-width: thin;
  scrollbar-color: var(--fog) transparent;
  cursor: grab;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
  mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
}
body.gg-night .gg-row--own + .gg-row-nav {
  position: relative;
  z-index: 2;
  margin-top: -30px;
}
body.gg-night .gg-card {
  position: relative;
  display: block;
  flex: 0 0 calc((100% - 80px - 60px) / 4);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 14px;
  background: #6e2016 url("/wp-content/uploads/gastroguia/texture.webp") center / cover;
  color: var(--cream) !important;
  text-decoration: none;
  scroll-snap-align: start;
  /* Объёмный наклон — только у карточки под курсором (см. :hover): постоянный 3D-поворот делал каждую карточку
     отдельным слоем видеокарты, и браузер перекладывал сотни слоёв на каждое движение мыши */
  transition: transform 0.35s cubic-bezier(.2, .8, .2, 1), box-shadow 0.35s;
}
body.gg-night .gg-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-user-drag: none;
  user-select: none;
}
/* Затемнение снизу и название по центру */
body.gg-night .gg-card::before {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(to top, rgb(12 10 9 / 92%), rgb(12 10 9 / 55%) 45%, transparent);
  pointer-events: none;
}
/* Блик за курсором */
body.gg-night .gg-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--gg-mx, 50%) var(--gg-my, 0%), rgb(255 236 210 / 30%), transparent 45%),
    linear-gradient(115deg, transparent 35%, rgb(255 255 255 / 9%) 50%, transparent 65%);
  opacity: 0;
  transition: opacity 0.35s;
  pointer-events: none;
}
body.gg-night .gg-card__name {
  position: absolute;
  inset: auto 14px 18px;
  z-index: 1;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: clamp(14px, 1.15vw, 18px);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgb(0 0 0 / 60%);
  transition: color 0.3s;
}
body.gg-night .gg-card:hover {
  z-index: 2;
  transform: perspective(900px) translateY(-12px) scale(1.05) rotateX(var(--gg-rx, 0deg)) rotateY(var(--gg-ry, 0deg));
  transition: transform 0.12s ease-out, box-shadow 0.35s;
  box-shadow: 0 22px 44px -16px rgb(232 116 42 / 50%), 0 10px 26px rgb(0 0 0 / 60%);
}
body.gg-night .gg-card:hover::after {
  opacity: 1;
}
body.gg-night .gg-card:hover .gg-card__name {
  color: var(--glow);
}
body.gg-night .gg-row--own.gg-dragging .gg-card {
  transform: none;
  transition: none;
}
body.gg-night .gg-sections__all {
  margin: clamp(32px, 4vw, 56px) 0 0;
  text-align: center;
}
body.gg-night .gg-btn {
  display: inline-block;
  padding: 14px 26px;
  border: 1px solid var(--cream);
  color: var(--cream) !important;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
body.gg-night .gg-btn:hover {
  border-color: var(--glow);
  background: var(--glow);
  color: #0c0a09 !important;
}
/* Плитки кухонь — тоже скруглённые; если кухонь много, плитки мельче */
body.gg-night .gg-cuisines {
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
}
body.gg-night .gg-cuisine {
  border-radius: 14px;
}
body.gg-night .gg-cuisine__name {
  font-size: clamp(16px, 1.4vw, 22px) !important;
}
@media (max-width: 1024px) {
  body.gg-night .gg-card {
    flex-basis: calc((100% - 80px - 20px) / 2);
  }
}
@media (max-width: 640px) {
  body.gg-night .gg-row--own {
    margin: 0 -16px;
    padding: 28px 16px 44px;
    -webkit-mask-image: none;
    mask-image: none;
  }
  body.gg-night .gg-card {
    flex-basis: 70%;
  }
}
/* Блок главной — в общей колонке сайта */
body.gg-night .gg-home {
  box-sizing: border-box;
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding-inline: clamp(16px, 3vw, 56px);
}
/* Плитка кухни без фото — тёплая текстура */
body.gg-night .gg-cuisine:not(:has(img)) {
  background: #6e2016 url("/wp-content/uploads/gastroguia/texture.webp") center / cover;
}
body.gg-night .gg-cuisines {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
}
body.gg-night .gg-cuisine__name {
  font-size: clamp(14px, 1.15vw, 18px) !important;
  line-height: 1.15;
  overflow-wrap: anywhere;
  hyphens: auto;
}
body.gg-night .gg-cuisine__info {
  padding: 80px 14px 14px !important;
}
/* ---------- Страница блюда ---------- */
/* Название блюда — крупно */
body.gg-night.gg-night .elementor-element-155d0aa .jet-listing-dynamic-field__content {
  color: var(--cream) !important;
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  font-size: clamp(34px, 4.4vw, 72px) !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
  line-height: 1 !important;
  text-transform: uppercase;
}
/* Правая колонка не упирается в край экрана */
body.gg-night .elementor-element-3ae4d49 {
  padding-inline-end: max(16px, calc(50vw - 600px)) !important;
  padding-inline-start: clamp(20px, 3vw, 56px) !important;
}
/* Фото блюда со скруглённым краем со стороны текста */
body.gg-night .elementor-element-2f0f099 img {
  border-start-end-radius: 18px;
  border-end-end-radius: 18px;
}
/* Пустые аллергены не показываем, а если пусто всё — прячем и заголовок раздела */
body.gg-night .allergen > .elementor-widget:not(:has(.jet-listing-dynamic-field__content:not(:empty))) {
  display: none !important;
}
/* Разделы с заголовком, у которых все поля пустые (аллергены, «Где поесть», историческая справка), прячем целиком */
body.gg-night.single-bliuda .e-con:has(.elementor-widget-heading):has(.jet-listing-dynamic-field):not(:has(.jet-listing-dynamic-field__content:not(:empty))) {
  display: none !important;
}
/* Блок, где остался один заголовок (поля пустые и JetEngine их не вывел), тоже прячем */
body.gg-night.single-bliuda .elementor-element-27564f2:not(:has(.jet-listing-dynamic-field__content:not(:empty))) {
  display: none !important;
}
/* Нижние разделы страницы блюда — в общей колонке сайта */
body.gg-night.single-bliuda [data-elementor-type="page"] > .e-con.e-parent:not(.elementor-element-e9cf929),
body.gg-night.single-bliuda .elementor-element-1a311da {
  padding-inline: max(16px, calc(50vw - 600px)) !important;
}
@media (max-width: 767px) {
  body.gg-night .elementor-element-3ae4d49 {
    padding-inline: 16px !important;
  }
  body.gg-night .elementor-element-2f0f099 img {
    border-radius: 0 0 18px 18px;
  }
}
/* Полоса прокрутки у своих рядов не нужна: есть перетаскивание и стрелки */
body.gg-night .gg-row--own {
  scrollbar-width: none;
}
body.gg-night .gg-row--own::-webkit-scrollbar {
  display: none;
}

/* ---------- Блюдо (страница и окно) ---------- */
body.gg-night .gg-dish-page {
  padding: clamp(24px, 4vw, 56px) clamp(16px, 3vw, 56px) 0;
}
body.gg-night .gg-dish {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 72px);
  align-items: start;
  color: var(--cream);
}
body.gg-night .gg-dish__media {
  position: sticky;
  top: calc(var(--gg-header-h) + 20px);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 18px;
  background: #6e2016 url("/wp-content/uploads/gastroguia/texture.webp") center / cover;
}
body.gg-night .gg-dish__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.gg-night .gg-dish__info {
  display: flex;
  flex-direction: column;
  gap: 22px;
  max-width: 640px;
  font-family: var(--mono);
}
body.gg-night .gg-dish__kicker,
body.gg-night .gg-dish__part h3 {
  margin: 0;
  color: var(--glow) !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
}
body.gg-night .gg-dish__title {
  margin: 0;
  color: var(--cream) !important;
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  font-size: clamp(36px, 4.6vw, 76px) !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
  line-height: 0.98;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
body.gg-night .gg-dish__lead p {
  margin: 0 0 12px;
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 1.65;
}
body.gg-night .gg-dish__quote {
  margin: 0;
  padding: 4px 0 4px 18px;
  border-left: 2px solid var(--glow);
  font-family: var(--mono);
  font-size: clamp(15px, 1.2vw, 19px);
  font-style: italic;
  line-height: 1.5;
  opacity: 0.9;
}
body.gg-night .gg-dish__part {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--fog);
}
body.gg-night .gg-dish__part p {
  margin: 0;
  line-height: 1.6;
}
body.gg-night .gg-dish__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 6px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.gg-night .gg-dish__list li {
  padding: 6px 0;
  border-bottom: 1px dashed var(--fog);
  font-size: 14px;
}
body.gg-night .gg-dish__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body.gg-night .gg-dish__tags span {
  padding: 6px 12px;
  border: 1px solid var(--fog);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.gg-night .gg-dish__more {
  margin: 8px 0 0;
}
body.gg-night .gg-related {
  margin-top: clamp(48px, 6vw, 96px);
}
@media (max-width: 860px) {
  body.gg-night .gg-dish {
    grid-template-columns: 1fr;
  }
  body.gg-night .gg-dish__media {
    position: static;
  }
}

/* Окно блюда */
body.gg-night .gg-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0px, 3vw, 40px);
}
body.gg-night .gg-modal[hidden] {
  display: none;
}
body.gg-night .gg-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(8 6 5 / 78%);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  animation: gg-fade 0.3s ease;
}
body.gg-night .gg-modal__box {
  position: relative;
  width: min(1200px, 100%);
  max-height: 100%;
  overflow-y: auto;
  padding: clamp(20px, 3vw, 44px);
  border: 1px solid var(--fog);
  border-radius: 20px;
  background: #0c0a09;
  box-shadow: 0 40px 120px -30px rgb(232 116 42 / 35%);
  animation: gg-rise 0.35s cubic-bezier(.2, .8, .2, 1);
  scrollbar-width: thin;
  scrollbar-color: var(--fog) transparent;
}
@keyframes gg-rise {
  from { opacity: 0; transform: translateY(24px) scale(0.98); }
}
body.gg-night .gg-modal__close {
  position: sticky;
  top: 0;
  float: right;
  z-index: 2;
  margin: -8px -8px 0 0;
}
body.gg-night .gg-dish--modal .gg-dish__media {
  top: 0;
}
body.gg-night .gg-modal__loading {
  padding: 80px 0;
  text-align: center;
  font-family: var(--mono);
  font-size: 32px;
  opacity: 0.5;
}
@media (max-width: 640px) {
  body.gg-night .gg-modal__box {
    border-radius: 0;
    height: 100%;
  }
}
/* Подзаголовок внутри ингредиентов («Для начинки:») — во всю ширину */
body.gg-night .gg-dish__list .gg-dish__sub {
  grid-column: 1 / -1;
  padding-top: 14px;
  border-bottom: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.75;
}
/* ---------- Анимации появления ---------- */
@media (prefers-reduced-motion: no-preference) {
  /* Сдвиг через translate, а не transform: так он не мешает наклону и подъёму карточек при наведении */
  html.gg-js body.gg-night .gg-rv:not(.gg-dish) {
    opacity: 0;
    translate: 0 18px;
    transition: opacity 0.4s cubic-bezier(.2, .7, .2, 1) var(--gg-d, 0ms), translate 0.45s cubic-bezier(.2, .8, .2, 1) var(--gg-d, 0ms);
  }
  html.gg-js body.gg-night .gg-rv.gg-in:not(.gg-dish) {
    opacity: 1;
    translate: none;
  }
  html.gg-js body.gg-night .gg-card.gg-rv {
    transition: opacity 0.55s cubic-bezier(.2, .7, .2, 1) var(--gg-d, 0ms), translate 0.55s cubic-bezier(.2, .7, .2, 1) var(--gg-d, 0ms), transform 0.35s cubic-bezier(.2, .8, .2, 1), box-shadow 0.35s;
  }
  /* Фото раскрывается шторкой снизу вверх и «оседает» из лёгкого увеличения */
  html.gg-js body.gg-night .gg-dish.gg-rv .gg-dish__media,
  body.gg-night .gg-dish--modal .gg-dish__media {
    clip-path: inset(100% 0 0 0 round 18px);
    transition: clip-path 0.75s cubic-bezier(.7, 0, .2, 1);
  }
  html.gg-js body.gg-night .gg-dish.gg-rv.gg-in .gg-dish__media,
  body.gg-night .gg-dish--modal.gg-play .gg-dish__media {
    clip-path: inset(0 0 0 0 round 18px);
  }
  html.gg-js body.gg-night .gg-dish.gg-rv .gg-dish__media img,
  body.gg-night .gg-dish--modal .gg-dish__media img {
    transform: scale(1.18);
    transition: transform 1s cubic-bezier(.2, .7, .2, 1);
  }
  html.gg-js body.gg-night .gg-dish.gg-rv.gg-in .gg-dish__media img,
  body.gg-night .gg-dish--modal.gg-play .gg-dish__media img {
    transform: none;
  }
  /* Текст блюда поднимается по строкам с задержкой */
  html.gg-js body.gg-night .gg-dish.gg-rv .gg-dish__info > *,
  body.gg-night .gg-dish--modal .gg-dish__info > * {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.5s cubic-bezier(.2, .7, .2, 1), transform 0.5s cubic-bezier(.2, .7, .2, 1);
  }
  html.gg-js body.gg-night .gg-dish.gg-rv.gg-in .gg-dish__info > *,
  body.gg-night .gg-dish--modal.gg-play .gg-dish__info > * {
    opacity: 1;
    transform: none;
  }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(1) { transition-delay: 0.12s; }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(2) { transition-delay: 0.16s; }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(3) { transition-delay: 0.2s; }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(4) { transition-delay: 0.24s; }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(5) { transition-delay: 0.28s; }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(6) { transition-delay: 0.32s; }
  body.gg-night .gg-dish .gg-dish__info > :nth-child(n+7) { transition-delay: 0.36s; }
  /* Заголовок раздела: тонкая линия под ним прочерчивается слева направо */
  html.gg-js body.gg-night .gg-sect__head.gg-rv {
    border-bottom-color: transparent;
    background: linear-gradient(var(--fog), var(--fog)) left bottom / 0 1px no-repeat;
    transition: opacity 0.4s, translate 0.4s, background-size 0.6s cubic-bezier(.7, 0, .2, 1) 0.1s;
  }
  html.gg-js body.gg-night .gg-sect__head.gg-rv.gg-in {
    background-size: 100% 1px;
  }
}

/* Окно блюда: крестик всегда в углу окна, не поверх фото (и в письме справа налево тоже) */
body.gg-night .gg-modal__close {
  position: absolute !important;
  top: 12px;
  right: 12px;
  float: none !important;
  margin: 0 !important;
}
body.gg-night .gg-modal__box {
  padding-top: clamp(48px, 4vw, 56px) !important;
}

/* Арабское письмо и фарси: буквы соединяются, разрядка и капслок их ломают */
html[dir="rtl"] body.gg-night *,
body.gg-night:lang(ar) *,
body.gg-night:lang(fa) * {
  letter-spacing: 0 !important;
}
/* ---------- Курсор ---------- */
html.gg-cursor-on body.gg-night,
html.gg-cursor-on body.gg-night a,
html.gg-cursor-on body.gg-night button,
html.gg-cursor-on body.gg-night .gg-row--own {
  cursor: none !important;
}
html.gg-cursor-on body.gg-night input,
html.gg-cursor-on body.gg-night textarea {
  cursor: text !important;
}
.gg-cursor,
.gg-cursor-dot {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2000;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
}
html.gg-cursor-in .gg-cursor,
html.gg-cursor-in .gg-cursor-dot {
  opacity: 1;
}
.gg-cursor::before {
  content: "";
  position: absolute;
  left: -18px;
  top: -18px;
  width: 36px;
  height: 36px;
  border: 1px solid rgb(233 226 207 / 75%);
  border-radius: 50%;
  /* Тёплое свечение вокруг кольца — «фонарь» в темноте; маленький элемент, перерисовка почти ничего не стоит */
  box-shadow: 0 0 34px 10px rgb(232 116 42 / 12%);
  transition: transform 0.35s cubic-bezier(.2, .8, .2, 1), background-color 0.35s, border-color 0.35s;
}
/* Вилка: острие (верх середины) — в точке курсора; поворот вокруг острия */
.gg-cursor-dot svg {
  position: absolute;
  left: -7.5px;
  top: 0;
  display: block;
  fill: #efe6d6;
  filter: drop-shadow(0 1px 2px rgb(0 0 0 / 60%));
  transform-origin: 7.5px 0;
  rotate: calc(-32deg + var(--gg-tilt, 0deg));
  transition: rotate 0.35s cubic-bezier(.2, .8, .2, 1), scale 0.25s cubic-bezier(.2, .8, .2, 1), translate 0.15s, fill 0.3s;
}
/* Над блюдом — выпрямляется и чуть крупнее, «готова наколоть» */
.gg-cursor-dot--card svg {
  rotate: calc(0deg + var(--gg-tilt, 0deg) * 0.5);
  scale: 1.15;
  fill: #e8742a;
}
.gg-cursor-dot--dish svg {
  rotate: calc(0deg + var(--gg-tilt, 0deg) * 0.5);
  scale: 1.15;
}
/* Нажатие — короткий «укол» */
.gg-cursor-dot--down svg {
  translate: 0 -3px;
  scale: 0.92;
}
.gg-cursor-dot--text svg {
  scale: 0;
}
.gg-cursor--link::before {
  transform: scale(1.5);
  border-color: #e8742a;
}
.gg-cursor--card::before {
  transform: scale(2.3);
  border-color: rgb(232 116 42 / 85%);
  background: rgb(232 116 42 / 12%);
}
.gg-cursor--text::before {
  transform: scale(0.4);
}
.gg-cursor--down::before {
  transform: scale(0.8);
}

/* Ряды блюд далеко за экраном браузер не обсчитывает; высоту ряда для оценки скрипт меряет сам (она зависит от ширины экрана),
   поэтому переходы по плиткам кухонь к рядам не промахиваются */
body.gg-night .gg-sections.gg-cv > .gg-sect {
  content-visibility: auto;
  contain-intrinsic-size: auto var(--gg-sect-h, 550px);
}

/* ---------- Карта блюд над подвалом ---------- */
body.gg-night .gg-web {
  max-width: 1400px;
  margin: clamp(48px, 6vw, 96px) auto 0;
  padding: 0 16px;
  color: var(--cream);
}
/* Тонкая полоса-кнопка; блок раскрывается плавно (сетка 0fr → 1fr) */
body.gg-night .gg-web__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 16px 0;
  border: 0;
  border-top: 1px solid var(--fog);
  border-bottom: 1px solid var(--fog);
  background: none;
  color: var(--cream);
  font: 400 13px/1.3 var(--mono);
  text-align: start;
  cursor: pointer;
}
/* Общие стили кнопок сайта (заливка, рамка) полосе не нужны */
body.gg-night .gg-web__bar,
body.gg-night .gg-web__bar:hover,
body.gg-night .gg-web__bar:focus,
body.gg-night .gg-web__bar:active {
  border-inline: 0 !important;
  border-radius: 0 !important;
  border-color: var(--fog) !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--cream) !important;
}
body.gg-night .gg-web__bar:focus-visible {
  outline: 1px solid var(--glow);
  outline-offset: 4px;
}
body.gg-night .gg-web__bar-text {
  flex: 1 1 auto;
  min-width: 0;
}
@media (max-width: 600px) {
  body.gg-night .gg-web__bar-text span {
    display: block;
    margin-top: 4px;
  }
  /* На телефоне надпись «Открыть карту сайта» не помещалась и растягивала страницу вбок — остаётся стрелка в кружке */
  body.gg-night .gg-web__bar-label {
    display: none;
  }
  body.gg-night .gg-web__bar-btn i {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--glow);
    border-radius: 50%;
  }
}
/* Страховка: ни один элемент не растягивает страницу вбок — на телефоне из-за этого съезжали шапка и всплывающие окна */
html:has(body.gg-night),
body.gg-night {
  overflow-x: clip;
}
body.gg-night .gg-web__bar-text b {
  white-space: nowrap;
  margin-inline-end: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.gg-night .gg-web__bar-text span {
  opacity: 0.55;
}
body.gg-night .gg-web__bar-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--glow) !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}
body.gg-night .gg-web__bar-btn i {
  font-style: normal;
  transition: rotate 0.4s;
}
body.gg-night .gg-web--open .gg-web__bar-btn i {
  rotate: 180deg;
}
body.gg-night .gg-web__bar:hover .gg-web__bar-btn {
  color: var(--cream) !important;
}
body.gg-night .gg-web__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.7s cubic-bezier(0.7, 0, 0.2, 1);
}
body.gg-night .gg-web--open .gg-web__body {
  grid-template-rows: 1fr;
}
body.gg-night .gg-web__inner {
  min-height: 0;
  overflow: hidden;
  visibility: hidden;
  transition: visibility 0s 0.7s;
}
body.gg-night .gg-web--open .gg-web__inner {
  visibility: visible;
  transition: none;
}
body.gg-night .gg-web__hint {
  margin: 24px 0;
  font: 400 13px/1.5 var(--mono);
  opacity: 0.6;
}
body.gg-night .gg-web__stage {
  position: relative;
  display: none;
}
body.gg-night .gg-web--live .gg-web__stage {
  display: block;
}
body.gg-night .gg-web--live .gg-web__list {
  display: none;
}
body.gg-night .gg-web__lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
body.gg-night .gg-web__node {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  padding: 2px 4px;
  color: rgb(233 226 207 / 58%) !important;
  font: 500 11px/1.2 var(--mono);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.25s, opacity 0.25s;
}
body.gg-night .gg-web__hub.gg-web__node {
  z-index: 2;
  padding: 5px 10px;
  border: 1px solid rgb(232 116 42 / 50%);
  border-radius: 999px;
  background: #0c0a09;
  color: var(--glow) !important;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.gg-night .gg-web__stage.is-hot .gg-web__node:not(.is-lit) {
  opacity: 0.28;
}
body.gg-night .gg-web__node.is-lit {
  color: var(--cream) !important;
}
body.gg-night .gg-web__dish.gg-web__node:hover {
  color: var(--glow) !important;
}
body.gg-night .gg-web__hub.gg-web__node:hover {
  background: var(--glow);
  color: #0c0a09 !important;
}
body.gg-night .gg-web__card {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  width: 200px;
  overflow: hidden;
  border: 1px solid var(--fog);
  border-radius: 14px;
  background: #16110f;
  box-shadow: 0 24px 60px -20px rgb(0 0 0 / 85%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
}
body.gg-night .gg-web__card.is-on {
  opacity: 1;
}
body.gg-night .gg-web__card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
body.gg-night .gg-web__card b {
  display: block;
  padding: 10px 12px 2px;
  font: 600 13px/1.3 var(--mono);
}
body.gg-night .gg-web__card span {
  display: block;
  padding: 0 12px 12px;
  color: var(--glow);
  font: 500 11px/1.3 var(--mono);
}
/* Без скрипта и на телефоне — список кухонь */
body.gg-night .gg-web__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0 32px;
  border-top: 1px solid var(--fog);
}
body.gg-night .gg-web__group {
  border-bottom: 1px solid var(--fog);
}
body.gg-night .gg-web__group summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  cursor: pointer;
  list-style: none;
}
body.gg-night .gg-web__group summary::-webkit-details-marker {
  display: none;
}
body.gg-night .gg-web__group summary .gg-web__hub {
  color: var(--cream) !important;
  font: 600 13px/1.3 var(--mono);
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}
body.gg-night .gg-web__group summary span {
  color: var(--glow);
  font: 500 12px/1 var(--mono);
}
body.gg-night .gg-web__group ul {
  columns: 2;
  gap: 16px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}
body.gg-night .gg-web__group li a {
  display: block;
  padding: 4px 0;
  color: rgb(233 226 207 / 80%) !important;
  font: 400 13px/1.35 var(--mono);
  text-decoration: none;
  break-inside: avoid;
}


/* ---------- Фото плывёт за курсором ---------- */
body.gg-night .gg-card img,
body.gg-night .gg-cuisine img,
body.gg-night .gg-result__photo img,
body.gg-night .gg-dish__media img {
  translate: calc(var(--gg-nx, 0) * -14px) calc(var(--gg-ny, 0) * -14px + var(--gg-par, 0px));
  scale: 1.1;
  transition: translate 0.6s cubic-bezier(.2, .7, .2, 1), scale 0.6s, filter 0.5s;
}
body.gg-night .gg-card:hover img,
body.gg-night .gg-cuisine:hover img {
  scale: 1.16;
}

/* ---------- Стрелка в углу карточки ---------- */
body.gg-night .gg-card__go {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgb(233 226 207 / 60%);
  border-radius: 8px;
  /* Без размытия фона: у каждой из ~170 карточек оно было отдельным дорогим слоем и тормозило всю страницу */
  background: rgb(12 10 9 / 72%);
  font-size: 15px;
  opacity: 0;
  translate: -6px 6px;
  transition: opacity 0.35s, translate 0.35s cubic-bezier(.2, .8, .2, 1), background 0.3s;
}
body.gg-night .gg-card:hover .gg-card__go {
  opacity: 1;
  translate: 0 0;
  background: rgb(232 116 42 / 90%);
  color: #0c0a09;
}

/* ---------- Заголовки из-под линии ---------- */
body.gg-night .gg-mask {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  padding-bottom: 0.08em;
}
body.gg-night .gg-mask > span {
  display: inline-block;
}
@media (prefers-reduced-motion: no-preference) {
  html.gg-js body.gg-night .gg-rv .gg-mask > span,
  html.gg-js body.gg-night .gg-rv.gg-mask > span {
    translate: 0 110%;
    transition: translate 0.7s cubic-bezier(.7, 0, .2, 1);
  }
  html.gg-js body.gg-night .gg-in .gg-mask > span {
    translate: 0 0;
  }
}

/* ---------- Окно блюда: открытие из карточки ---------- */
body.gg-night .gg-modal__backdrop {
  opacity: 0;
  animation: none;
  transition: opacity 0.45s;
}
body.gg-night .gg-modal__box {
  opacity: 0;
  translate: 0 18px;
  animation: none;
  transition: opacity 0.45s cubic-bezier(.2, .7, .2, 1), translate 0.6s cubic-bezier(.2, .7, .2, 1);
}
body.gg-night .gg-modal.gg-open .gg-modal__backdrop,
body.gg-night .gg-modal.gg-open .gg-modal__box {
  opacity: 1;
  translate: 0 0;
}
body.gg-night .gg-modal.gg-closing .gg-modal__backdrop,
body.gg-night .gg-modal.gg-closing .gg-modal__box {
  opacity: 0;
  translate: 0 12px;
  transition-duration: 0.35s;
}
body.gg-night .gg-dish--modal.gg-flip .gg-dish__media {
  clip-path: none !important;
  opacity: 0;
  transition: none;
}
body.gg-night .gg-dish--modal.gg-flip.gg-flip-done .gg-dish__media {
  opacity: 1;
}
body.gg-night .gg-dish--modal.gg-flip .gg-dish__media img {
  transform: none !important;
}
/* Пока летит копия фото, само фото в окне без увеличения — чтобы подмена была незаметной */
body.gg-night .gg-dish--modal.gg-flip:not(.gg-flip-done) .gg-dish__media img {
  scale: 1;
  translate: none;
  transition: none;
}
.gg-ghost {
  position: fixed;
  z-index: 1300;
  object-fit: cover;
  pointer-events: none;
  box-shadow: 0 30px 80px -20px rgb(0 0 0 / 70%);
}
/* ---------- «Найти блюдо»: фото во весь блок, огромная надпись поверх, поиск — стеклянной панелью ---------- */
body.gg-night .gg-find.gg-find {
  position: relative;
  display: block;
  min-height: min(56vh, 520px);
  margin: clamp(32px, 5vw, 72px) 0;
  overflow: hidden;
  border-radius: 20px;
  isolation: isolate;
}
body.gg-night .gg-find.gg-find[hidden] {
  display: none;
}
body.gg-night .gg-find .gg-find__photo {
  position: absolute;
  inset: -14% 0;
  z-index: -2;
  background:
    url("/wp-content/uploads/gastroguia/atmosphere.webp") center / cover no-repeat,
    radial-gradient(ellipse 50% 40% at 55% 55%, #f0a04a 0%, #b8402c 35%, #2a0c08 75%, #0c0a09 100%) !important;
  translate: 0 var(--gg-par, 0px);
  will-change: translate;
}
body.gg-night .gg-find::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(to top, rgb(12 10 9 / 94%) 0%, rgb(12 10 9 / 45%) 42%, rgb(12 10 9 / 5%) 72%),
    linear-gradient(to right, rgb(12 10 9 / 55%), transparent 55%);
}
body.gg-night .gg-find .gg-find__text {
  position: absolute;
  inset: auto 0 0 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 420px) auto;
  grid-template-areas: "title title title" "hint field button";
  align-items: center;
  gap: 12px clamp(24px, 4vw, 64px);
  padding: clamp(20px, 3.4vw, 52px);
  background: none !important;
}
/* Заголовок и подсказка лежат в одном div — раскладываем их по сетке как отдельные элементы */
body.gg-night .gg-find .gg-find__text > div {
  display: contents;
}
body.gg-night .gg-find .gg-find__title {
  grid-area: title;
  min-width: 0;
}
body.gg-night .gg-find .gg-find__hint {
  grid-area: hint;
}
body.gg-night .gg-find .gg-find__title {
  margin: 0 0 14px;
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  font-size: clamp(36px, 5.6vw, 104px) !important;
  font-weight: 500 !important;
  line-height: 0.9;
  white-space: nowrap;
  translate: var(--gg-fx, 0px) 0;
  transition: translate 0.4s cubic-bezier(.2, .7, .2, 1);
}
body.gg-night .gg-find .gg-find__hint {
  max-width: 34ch;
}
body.gg-night.gg-night .gg-find input.gg-find__field.gg-find__field {
  grid-area: field;
  margin: 0;
  padding: 16px 18px !important;
  border: 1px solid var(--fog) !important;
  border-radius: 12px !important;
  background: rgb(12 10 9 / 55%) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
body.gg-night.gg-night .gg-find input.gg-find__field.gg-find__field:focus {
  border-color: var(--glow) !important;
}
body.gg-night .gg-find .gg-find__btn {
  grid-area: button;
  align-self: stretch;
  justify-self: stretch;
  white-space: nowrap;
  border-radius: 12px !important;
  padding: 15px 22px !important;
}
/* Появление: блок раскрывается из уменьшенного «окна» */
@media (prefers-reduced-motion: no-preference) {
  html.gg-js body.gg-night .gg-find.gg-find.gg-rv {
    opacity: 1;
    translate: none;
    clip-path: inset(10% 8% 10% 8% round 28px);
    transition: clip-path 0.9s cubic-bezier(.7, 0, .2, 1);
  }
  html.gg-js body.gg-night .gg-find.gg-find.gg-rv.gg-in {
    clip-path: inset(0 0 0 0 round 20px);
  }
  html.gg-js body.gg-night .gg-find.gg-rv .gg-find__photo {
    scale: 1.25;
    transition: scale 1.8s cubic-bezier(.2, .7, .2, 1);
  }
  html.gg-js body.gg-night .gg-find.gg-rv.gg-in .gg-find__photo {
    scale: 1;
  }
  html.gg-js body.gg-night .gg-find.gg-rv .gg-find__field,
  html.gg-js body.gg-night .gg-find.gg-rv .gg-find__btn,
  html.gg-js body.gg-night .gg-find.gg-rv .gg-find__hint {
    opacity: 0;
    translate: 0 20px;
    transition: opacity 0.7s 0.7s, translate 0.7s cubic-bezier(.2, .7, .2, 1) 0.7s;
  }
  html.gg-js body.gg-night .gg-find.gg-rv .gg-find__btn {
    transition-delay: 0.8s;
  }
  html.gg-js body.gg-night .gg-find.gg-rv.gg-in .gg-find__field,
  html.gg-js body.gg-night .gg-find.gg-rv.gg-in .gg-find__btn,
  html.gg-js body.gg-night .gg-find.gg-rv.gg-in .gg-find__hint {
    opacity: 1;
    translate: 0 0;
  }
}
@media (max-width: 767px) {
  body.gg-night .gg-find.gg-find {
    min-height: 460px;
  }
  body.gg-night .gg-find .gg-find__text {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "hint" "field" "button";
  }
  body.gg-night .gg-find .gg-find__title {
    white-space: normal;
    translate: none;
  }
}

/* ---------- Карточки в рядах: быстро всплывают и проявляются, фото слегка «оседает» ----------
   Только opacity, translate и scale — их считает видеокарта, прокрутка не дёргается (шторка clip-path перерисовывала каждую карточку) */
@media (prefers-reduced-motion: no-preference) {
  html.gg-js body.gg-night .gg-row--own .gg-card.gg-rv {
    opacity: 0;
    translate: 0 18px;
    transition: opacity 0.38s cubic-bezier(.2, .7, .2, 1) var(--gg-d, 0ms), translate 0.45s cubic-bezier(.2, .8, .2, 1) var(--gg-d, 0ms), transform 0.35s cubic-bezier(.2, .8, .2, 1), box-shadow 0.35s;
  }
  html.gg-js body.gg-night .gg-row--own .gg-card.gg-rv.gg-in {
    opacity: 1;
    translate: none;
  }
  html.gg-js body.gg-night .gg-row--own .gg-card.gg-rv img {
    scale: 1.18;
    transition: scale 0.6s cubic-bezier(.2, .7, .2, 1) var(--gg-d, 0ms), translate 0.6s cubic-bezier(.2, .7, .2, 1);
  }
  html.gg-js body.gg-night .gg-row--own .gg-card.gg-rv.gg-in img {
    scale: 1.1;
  }
  html.gg-js body.gg-night .gg-row--own .gg-card.gg-rv.gg-in:hover img {
    scale: 1.16;
    transition: scale 0.6s, translate 0.6s cubic-bezier(.2, .7, .2, 1);
  }
}
/* Рекомендации в окне блюда */
body.gg-night .gg-related--modal {
  margin-top: clamp(32px, 4vw, 56px);
}
body.gg-night .gg-related--modal .gg-sect__title {
  font-size: clamp(20px, 2vw, 30px) !important;
}
body.gg-night .gg-modal .gg-row--own {
  margin: 0 -20px;
  padding: 34px 20px 50px;
}
body.gg-night .gg-modal .gg-card {
  flex-basis: calc((100% - 40px - 60px) / 4);
}
@media (max-width: 1024px) {
  body.gg-night .gg-modal .gg-card {
    flex-basis: calc((100% - 40px - 20px) / 2);
  }
}
@media (max-width: 640px) {
  body.gg-night .gg-modal .gg-card {
    flex-basis: 70%;
  }
}
/* ---------- Гастротуры ---------- */
body.gg-night .gg-tours {
  padding: calc(var(--gg-header-h) + clamp(40px, 7vw, 110px)) clamp(16px, 3vw, 44px) clamp(60px, 8vw, 120px);
}
body.gg-night .gg-tours__hero {
  position: relative;
  max-width: 1400px;
  margin: 0 auto clamp(56px, 8vw, 120px);
}
body.gg-night .gg-tours__kicker,
body.gg-night .gg-tour__kicker {
  margin: 0 0 18px;
  color: var(--glow);
  font: 700 12px/1.4 var(--mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.gg-night .gg-tours__title {
  max-width: 14ch;
  margin: 0;
  color: var(--cream);
  font: 500 clamp(40px, 7.4vw, 118px)/0.98 var(--display);
  letter-spacing: -0.02em;
  text-transform: uppercase;
}
body.gg-night .gg-tours__lead {
  max-width: 640px;
  margin: clamp(22px, 3vw, 36px) 0 0;
  color: rgb(233 226 207 / 78%);
  font: 400 clamp(15px, 1.3vw, 18px)/1.7 var(--mono);
}
body.gg-night .gg-tours__facts {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 4vw, 64px);
  margin: clamp(30px, 4vw, 52px) 0 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--fog);
  list-style: none;
  color: rgb(233 226 207 / 70%);
  font: 500 12px/1.4 var(--mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.gg-night .gg-tours__facts b {
  display: block;
  margin-bottom: 6px;
  color: var(--cream);
  font-size: clamp(30px, 3.4vw, 48px);
  font-weight: 500;
  letter-spacing: 0;
}
body.gg-night .gg-tours__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: clamp(28px, 4vw, 48px);
}
body.gg-night .gg-tours__nav a {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  padding: 11px 16px;
  border: 1px solid var(--fog);
  border-radius: 999px;
  color: var(--cream);
  font: 500 13px/1 var(--mono);
  text-decoration: none;
  transition: border-color 0.25s, background 0.25s, color 0.25s;
}
body.gg-night .gg-tours__nav a span {
  color: var(--glow);
  font-weight: 700;
}
body.gg-night .gg-tours__nav a:hover {
  border-color: var(--glow);
  background: var(--glow);
  color: #0c0a09 !important;
}
body.gg-night .gg-tours__nav a:hover span {
  color: #0c0a09;
}
body.gg-night .gg-tour {
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 110px) 0;
  border-top: 1px solid var(--fog);
  scroll-margin-top: var(--gg-header-h);
}
/* Фото и текст — в своей сетке: закреплённое фото не наезжает на ряд блюд ниже */
body.gg-night .gg-tour__main {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  grid-template-areas: "media body";
  gap: clamp(28px, 4vw, 72px);
  margin-bottom: clamp(40px, 5vw, 72px);
}
body.gg-night .gg-tour--flip .gg-tour__main {
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  grid-template-areas: "body media";
}
/* Застолье с первого экрана сайта — справа, растворяется в темноте */
body.gg-night .gg-tours__art {
  position: absolute;
  inset: -40px -3vw auto 38%;
  height: calc(100% + 40px);
  background: center / cover no-repeat;
  opacity: 0.55;
  -webkit-mask-image: radial-gradient(70% 70% at 70% 45%, #000 30%, transparent 75%);
  mask-image: radial-gradient(70% 70% at 70% 45%, #000 30%, transparent 75%);
  pointer-events: none;
}
body.gg-night .gg-tours__hero > :not(.gg-tours__art) {
  position: relative;
}
body.gg-night .gg-tour__media {
  grid-area: media;
  align-self: start;
  position: sticky;
  top: calc(var(--gg-header-h) + 24px);
}
body.gg-night .gg-tour__photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 18px;
  background: radial-gradient(circle at 50% 30%, #6b2a17, #1a0f0b 70%);
}
/* ---------- Гастротуры на главной: пять маршрутов полосами, текст поверх ---------- */
/* Во всю ширину экрана, от края до края */
body.gg-night .gg-hometours {
  margin: clamp(48px, 6vw, 96px) calc(50% - 50vw);
}
body.gg-night .gg-hometours__link {
  position: relative;
  display: grid;
  min-height: clamp(480px, 46vw, 720px);
  overflow: hidden;
  color: var(--cream) !important;
  text-decoration: none;
  isolation: isolate;
}
body.gg-night .gg-hometours__link:hover {
  color: var(--cream) !important;
}
body.gg-night .gg-hometours__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: flex;
}
body.gg-night .gg-hometours__strip {
  position: relative;
  flex: 1 1 0;
  overflow: hidden;
  transition: flex-grow 0.8s cubic-bezier(0.7, 0, 0.2, 1);
}
body.gg-night .gg-hometours__strip img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.7) sepia(0.3) brightness(0.5);
  transition: filter 0.8s, scale 0.8s;
}
/* Полоса под курсором расширяется и наливается цветом */
body.gg-night .gg-hometours__strip:hover {
  flex-grow: 1.8;
}
body.gg-night .gg-hometours__strip:hover img {
  filter: saturate(0.85) brightness(0.85);
  scale: 1.04;
}
body.gg-night .gg-hometours__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgb(10 8 7 / 92%) 0%, rgb(10 8 7 / 70%) 38%, rgb(10 8 7 / 10%) 70%),
    radial-gradient(120% 100% at 70% 50%, transparent 50%, rgb(10 8 7 / 70%) 100%);
}
html[dir="rtl"] body.gg-night .gg-hometours__bg::after {
  background:
    linear-gradient(270deg, rgb(10 8 7 / 92%) 0%, rgb(10 8 7 / 70%) 38%, rgb(10 8 7 / 10%) 70%),
    radial-gradient(120% 100% at 30% 50%, transparent 50%, rgb(10 8 7 / 70%) 100%);
}
body.gg-night .gg-hometours__text {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 18px;
  max-width: 640px;
  padding: clamp(28px, 4vw, 64px) clamp(28px, 6vw, 120px);
  pointer-events: none;
}
body.gg-night .gg-hometours__kicker {
  color: var(--glow);
  font: 600 12px/1.4 var(--mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.gg-night .gg-hometours__title {
  font: 500 clamp(36px, 5vw, 72px)/0.95 var(--display);
  letter-spacing: -0.02em;
  text-transform: uppercase;
}
body.gg-night .gg-hometours__lead {
  font: 400 15px/1.6 var(--mono);
  opacity: 0.85;
}
body.gg-night .gg-hometours__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  padding: 14px 22px;
  border: 1px solid var(--glow);
  border-radius: 999px;
  color: var(--cream);
  font: 600 13px/1 var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  pointer-events: auto;
  transition: background 0.3s, color 0.3s;
}
body.gg-night .gg-hometours__btn i {
  font-style: normal;
  transition: translate 0.3s;
}
body.gg-night .gg-hometours__link:hover .gg-hometours__btn {
  background: var(--glow);
  color: #0c0a09 !important;
}
body.gg-night .gg-hometours__link:hover .gg-hometours__btn i {
  translate: 4px 0;
}
body.gg-night .gg-hometours__regions {
  position: absolute;
  inset-inline-end: clamp(20px, 4vw, 80px);
  bottom: clamp(20px, 3vw, 40px);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  max-width: 60%;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}
body.gg-night .gg-hometours__regions li {
  padding: 7px 12px;
  border: 1px solid rgb(233 226 207 / 22%);
  border-radius: 999px;
  background: rgb(10 8 7 / 82%);
  font: 600 11px/1 var(--mono);
  letter-spacing: 0.04em;
}
body.gg-night .gg-hometours__regions span {
  color: var(--glow);
}
@media (max-width: 900px) {
  body.gg-night .gg-hometours__link {
    min-height: 520px;
  }
  body.gg-night .gg-hometours__bg::after {
    background: linear-gradient(0deg, rgb(10 8 7 / 95%) 0%, rgb(10 8 7 / 75%) 45%, rgb(10 8 7 / 20%) 100%);
  }
  body.gg-night .gg-hometours__text {
    justify-content: flex-end;
  }
  body.gg-night .gg-hometours__regions {
    display: none;
  }
}

/* Фото маршрута: в покое — под тёмной пеленой, как застолье в шапке; при наведении цвет растекается чернилами,
   фото наклоняется в 3D, а темнота расступается вокруг курсора */
@property --gg-vr {
  syntax: "<percentage>";
  inherits: true;
  initial-value: 0%;
}
@property --gg-smoke {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 30%;
}
body.gg-night .gg-tour__media {
  /* В покое — окно-кроп по центру, остальное фото в темноте и дымке; при наведении раскрывается на всё фото */
  --gg-crop-y: 14%;
  --gg-crop-x: 13%;

  --gg-open: cubic-bezier(0.7, 0, 0.2, 1);
  --gg-mx: 0;
  --gg-my: 0;
  --gg-vx: 50%;
  --gg-vy: 50%;
  perspective: 1100px;
}
body.gg-night .gg-tour__photo {
  position: relative;
  isolation: isolate;
  rotate: x calc(var(--gg-my) * -7deg);
  transform: rotateY(calc(var(--gg-mx) * 9deg));
  border-radius: 0;
  --gg-smoke: 30%;
  transition: --gg-smoke 1.1s var(--gg-open);
  /* Края фото растворяются в чёрной дымке; при раскрытии дымка отступает к самому краю */
  -webkit-mask-image: radial-gradient(78% 72% at 60% 48%, #000 var(--gg-smoke), transparent 100%);
  mask-image: radial-gradient(78% 72% at 60% 48%, #000 var(--gg-smoke), transparent 100%);
}
body.gg-night .gg-tour__media.is-ink {
  --gg-crop-y: 0%;
  --gg-crop-x: 0%;
}
body.gg-night .gg-tour__media.is-ink .gg-tour__photo {
  --gg-smoke: 60%;
}
/* Окно-кроп: внутри — фото, снаружи — плотная темнота с мягким краем; при наведении окно раскрывается на всё фото */
body.gg-night .gg-tour__haze {
  position: absolute;
  inset: var(--gg-crop-y) var(--gg-crop-x);
  box-shadow: 0 0 90px 2000px rgb(10 8 7 / 74%), inset 0 0 40px 10px rgb(10 8 7 / 45%);
  pointer-events: none;
  transition: inset 0.9s var(--gg-open), box-shadow 0.9s var(--gg-open);
}
body.gg-night .gg-tour__media.is-ink .gg-tour__haze {
  box-shadow: 0 0 80px 2000px rgb(10 8 7 / 0%), inset 0 0 70px 20px rgb(10 8 7 / 45%);
}
body.gg-night .gg-tour__pic {
  position: absolute;
  inset: 0;
  scale: 1.14;
  translate: calc(var(--gg-mx) * -22px) calc(var(--gg-par, 0) * 1px + var(--gg-my) * -22px);
}
body.gg-night .gg-tour__pic img,
body.gg-night .gg-tour__ink {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
body.gg-night .gg-tour__pic img {
  object-fit: cover;
  filter: grayscale(0.7) sepia(0.3) brightness(0.62) contrast(1.05);
}
/* Цвет приглушённый — как в играх с «чернильной» заливкой мира */
body.gg-night .gg-tour__ink {
  filter: saturate(0.78) brightness(0.92) sepia(0.08);
}
/* Ожившее фото поверх цветного слоя; появляется, когда видео готово играть */
body.gg-night .gg-tour__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.78) brightness(0.92) sepia(0.08);
  opacity: 0;
  transition: opacity 0.8s;
}
body.gg-night .gg-tour__media.is-live .gg-tour__video {
  opacity: 1;
}
body.gg-night .gg-tour__veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--gg-vx) var(--gg-vy), transparent var(--gg-vr), rgb(10 8 7 / 55%) calc(var(--gg-vr) + 45%)),
    radial-gradient(120% 90% at 50% 40%, transparent 45%, rgb(10 8 7 / 85%) 100%);
  transition: --gg-vr 0.9s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.9s;
}
body.gg-night .gg-tour__media.is-ink .gg-tour__veil {
  --gg-vr: 22%;
}
body.gg-night .gg-tour__num {
  inset-inline-start: calc(18px + var(--gg-crop-x));
  bottom: calc(6px + var(--gg-crop-y));
  translate: calc(var(--gg-mx) * 26px) calc(var(--gg-my) * 26px);
  transition: inset-inline-start 0.9s var(--gg-open), bottom 0.9s var(--gg-open);
}
@media (prefers-reduced-motion: reduce) {
  body.gg-night .gg-tour__photo,
  body.gg-night .gg-tour__pic,
  body.gg-night .gg-tour__num {
    rotate: none;
    transform: none;
    translate: none;
  }
}
body.gg-night .gg-tour__num {
  position: absolute;
  color: var(--cream);
  font: 500 clamp(64px, 9vw, 140px)/1 var(--display);
  letter-spacing: -0.04em;
  text-shadow: 0 6px 40px rgb(0 0 0 / 60%);
  pointer-events: none;
}
body.gg-night .gg-tour__body {
  grid-area: body;
  min-width: 0;
}
body.gg-night .gg-tour__title {
  margin: 0;
  color: var(--cream);
  font: 500 clamp(30px, 4vw, 60px)/1.04 var(--display);
  text-transform: uppercase;
}
body.gg-night .gg-tour__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: clamp(22px, 3vw, 34px) 0 0;
  border: 1px solid var(--fog);
  border-radius: 12px;
  overflow: hidden;
  background: var(--fog);
}
body.gg-night .gg-tour__meta div {
  padding: 14px 16px;
  background: #0f0c0b;
}
body.gg-night .gg-tour__meta dt {
  margin: 0 0 6px;
  color: rgb(233 226 207 / 55%);
  font: 500 11px/1.3 var(--mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.gg-night .gg-tour__meta dd {
  margin: 0;
  color: var(--cream);
  font: 600 15px/1.3 var(--mono);
}
body.gg-night .gg-tour__lead {
  margin: clamp(22px, 3vw, 32px) 0 0;
  color: rgb(233 226 207 / 82%);
  font: 400 16px/1.75 var(--mono);
}
body.gg-night .gg-tour__stops {
  position: relative;
  margin: clamp(26px, 3vw, 40px) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: gg-stop;
}
/* Линия маршрута с точками остановок */
body.gg-night .gg-tour__stops::before {
  content: "";
  position: absolute;
  inset-inline-start: 7px;
  top: 10px;
  bottom: 10px;
  width: 1px;
  background: linear-gradient(var(--glow), rgb(232 116 42 / 15%));
}
body.gg-night .gg-stop {
  position: relative;
  padding-inline-start: 40px;
  padding-bottom: 26px;
  counter-increment: gg-stop;
}
body.gg-night .gg-stop:last-child {
  padding-bottom: 0;
}
body.gg-night .gg-stop::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 5px;
  width: 15px;
  height: 15px;
  border: 1px solid var(--glow);
  border-radius: 50%;
  background: #0c0a09;
  box-shadow: inset 0 0 0 4px #0c0a09, inset 0 0 0 8px var(--glow);
}
body.gg-night .gg-stop__name {
  margin: 0;
  color: var(--cream);
  font: 600 18px/1.3 var(--mono);
}
body.gg-night .gg-stop__name::before {
  content: counter(gg-stop, decimal-leading-zero) " / ";
  color: var(--glow);
  font-size: 13px;
}
body.gg-night .gg-stop__text {
  margin: 8px 0 0;
  color: rgb(233 226 207 / 72%);
  font: 400 14px/1.7 var(--mono);
}
body.gg-night .gg-stop__taste {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
}
body.gg-night .gg-stop__taste a {
  padding: 7px 12px;
  border: 1px solid rgb(232 116 42 / 45%);
  border-radius: 999px;
  color: var(--cream);
  font: 600 12px/1 var(--mono);
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.25s, color 0.25s;
}
body.gg-night .gg-stop__taste a:hover {
  border-color: var(--glow);
  background: var(--glow);
  color: #0c0a09 !important;
}
body.gg-night .gg-tour__dishes {
  min-width: 0;
  margin: 0;
}
body.gg-night .gg-tours__end {
  max-width: 900px;
  margin: clamp(40px, 6vw, 90px) auto 0;
  padding: clamp(36px, 5vw, 70px) clamp(20px, 4vw, 60px);
  border: 1px solid var(--fog);
  border-radius: 20px;
  background: radial-gradient(120% 120% at 50% 0%, rgb(184 64 44 / 28%), transparent 60%);
  text-align: center;
}
body.gg-night .gg-tours__end-title {
  margin: 0;
  color: var(--cream);
  font: 500 clamp(28px, 4vw, 54px)/1.05 var(--display);
  text-transform: uppercase;
}
body.gg-night .gg-tours__end p {
  margin: 18px auto 0;
  max-width: 620px;
  color: rgb(233 226 207 / 78%);
  font: 400 15px/1.7 var(--mono);
}
body.gg-night .gg-tours__contacts {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 28px !important;
}
body.gg-night .gg-btn--ghost {
  border-color: var(--fog);
  text-transform: none;
  letter-spacing: 0.02em;
}
@media (max-width: 900px) {
  body.gg-night .gg-tour__main,
  body.gg-night .gg-tour--flip .gg-tour__main {
    grid-template-columns: 1fr;
    grid-template-areas: "media" "body";
  }
  body.gg-night .gg-tours__art {
    inset: -60px -16px auto -16px;
    height: 70%;
    opacity: 0.3;
  }
  body.gg-night .gg-tour__media {
    position: relative;
    top: auto;
  }
  body.gg-night .gg-tour__photo {
    aspect-ratio: 16 / 11;
  }
  body.gg-night .gg-tour__meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* Сенсорные экраны: появление только проявлением, без сдвига — иначе палец попадал в соседнюю карточку */
@media (hover: none) {
  html.gg-js body.gg-night .gg-rv:not(.gg-dish),
  html.gg-js body.gg-night .gg-row--own .gg-card.gg-rv {
    translate: none !important;
  }
}
/* Старый фон Elementor Frame-27.png (1 МБ) под ночной темой не виден, но всё равно скачивался — отключаем.
   Последний — у закрытого всплывающего окна JetPopup (старое меню): фон грузится, только когда окно открыто */
body.gg-night,
body.gg-night .elementor-5025,
body.gg-night .elementor-element-1710c07,
body.gg-night .elementor-element-c88b000,
body.gg-night .elementor-element-b8b1e3f,
body.gg-night .elementor-motion-effects-layer,
body.gg-night .jet-popup--hide-state .jet-popup__container-inner {
  background-image: none !important;
}
/* Глубина на первом экране: название рисуется на холсте за девушкой, текстовый заголовок остаётся для поисковиков и чтения с экрана */
body.gg-night .gg-results__similar { max-width: 1200px; margin: 0 auto 22px; color: var(--glow); font: 500 13px/1.5 var(--mono); letter-spacing: 0.06em; text-transform: uppercase; }
body.gg-night .gg-hero--depth .gg-hero__title {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
/* С эффектом глубины верх экрана — девушке и названию; «Мультилингвальная картотека» с подписью — подписью внизу, над цифрами */
body.gg-night .gg-hero--depth .gg-hero__stage {
  justify-content: flex-end;
  gap: clamp(18px, 2.4vw, 30px);
}
body.gg-night .gg-hero--depth .gg-hero__inner {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 6px 14px;
  text-align: start;
}
body.gg-night .gg-hero--depth .gg-hero__inner {
  opacity: 0;
}
body.gg-night .gg-hero--depth .gg-hero__kicker,
body.gg-night .gg-hero--depth .gg-hero__tagline {
  font-size: clamp(13px, 1.35vw, 20px);
}
body.gg-night .gg-hero--depth .gg-hero__kicker {
  color: var(--glow);
}
body.gg-night .gg-hero--depth .gg-hero__tagline {
  max-width: none;
  opacity: 1;
}
/* ---------- «Моё меню» и произношение ---------- */
body.gg-night .gg-dish__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 18px 0 4px;
}
body.gg-night .gg-say,
body.gg-night .gg-fav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 42px;
  padding: 0 16px 0 13px !important;
  border: 1px solid var(--fog) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--cream) !important;
  font: 500 13px/1 var(--mono) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  cursor: pointer;
  box-shadow: none !important;
  transition: border-color 0.25s, background 0.25s;
}
body.gg-night .gg-say {
  width: 42px;
  padding: 0 !important;
}
body.gg-night .gg-say[hidden] {
  display: none;
}
body.gg-night .gg-say .gg-ico,
body.gg-night .gg-fav-btn .gg-ico {
  width: 20px;
  height: 20px;
  color: var(--glow);
}
body.gg-night .gg-say:hover,
body.gg-night .gg-fav-btn:hover {
  border-color: var(--glow) !important;
}
body.gg-night .gg-say.is-on .gg-say__w1 {
  animation: gg-say-wave 0.9s ease-in-out infinite;
}
body.gg-night .gg-say.is-on .gg-say__w2 {
  animation: gg-say-wave 0.9s ease-in-out 0.2s infinite;
}
@keyframes gg-say-wave {
  50% { opacity: 0.15; }
}
body.gg-night .gg-fav-btn__on,
body.gg-night .gg-fav-btn.is-on .gg-fav-btn__add {
  display: none;
}
body.gg-night .gg-fav-btn.is-on .gg-fav-btn__on {
  display: inline;
}
body.gg-night .gg-fav-btn.is-on {
  border-color: var(--glow) !important;
  background: rgb(232 116 42 / 12%) !important;
}
body.gg-night .gg-fav-btn.is-on .gg-ico path {
  fill: var(--glow);
  animation: gg-fav-pop 0.45s cubic-bezier(.3, 1.6, .5, 1);
  transform-origin: 12px 13px;
}
@keyframes gg-fav-pop {
  from { transform: scale(0.4); }
}
/* Сердечко на карточке: появляется при наведении, у отмеченных — всегда */
body.gg-night .gg-fav {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgb(233 226 207 / 60%);
  border-radius: 50%;
  background: rgb(12 10 9 / 72%);
  cursor: pointer;
  opacity: 0;
  scale: 0.8;
  transition: opacity 0.3s, scale 0.3s cubic-bezier(.3, 1.6, .5, 1), background 0.25s, border-color 0.25s;
}
body.gg-night .gg-result__photo {
  position: relative;
}
body.gg-night .gg-fav svg,
.gg-fav-fly svg,
body.gg-night .gg-mymenu-pill svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: var(--cream);
  stroke-width: 1.6;
  stroke-linejoin: round;
}
body.gg-night a:hover > .gg-fav,
body.gg-night a:hover .gg-result__photo > .gg-fav,
body.gg-night .gg-fav:focus-visible,
body.gg-night .gg-fav.is-on {
  opacity: 1;
  scale: 1;
}
@media (hover: none) {
  body.gg-night .gg-fav {
    opacity: 0.85;
    scale: 1;
  }
}
body.gg-night .gg-fav:hover {
  border-color: var(--glow);
}
body.gg-night .gg-fav.is-on {
  border-color: var(--glow);
  background: var(--glow);
}
body.gg-night .gg-fav.is-on svg {
  fill: #0c0a09;
  stroke: #0c0a09;
  animation: gg-fav-pop 0.45s cubic-bezier(.3, 1.6, .5, 1);
}
.gg-fav-fly {
  position: fixed;
  top: -10px;
  left: -10px;
  z-index: 1950;
  pointer-events: none;
}
.gg-fav-fly svg {
  width: 22px;
  height: 22px;
  fill: #e8742a;
  stroke: #e8742a;
  filter: drop-shadow(0 0 8px rgb(232 116 42 / 70%));
}
/* Плавающая кнопка «Моё меню» */
body.gg-night .gg-mymenu-pill {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 1150;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px 12px 16px !important;
  border: 1px solid var(--glow) !important;
  border-radius: 999px !important;
  background: rgb(12 10 9 / 92%) !important;
  color: var(--cream) !important;
  font: 500 12px/1 var(--mono) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  box-shadow: 0 14px 40px rgb(0 0 0 / 55%) !important;
  cursor: pointer;
  animation: gg-pill-in 0.5s cubic-bezier(.3, 1.4, .5, 1) both;
}
body.gg-night .gg-mymenu-pill:hover,
body.gg-night .gg-mymenu-pill:focus-visible {
  background: rgb(36 20 14 / 96%) !important;
  color: var(--cream) !important;
}
body.gg-night .gg-mymenu-pill[hidden] {
  display: none;
}
body.gg-night .gg-mymenu-pill svg {
  fill: var(--glow);
  stroke: var(--glow);
}
body.gg-night .gg-mymenu-pill b {
  display: grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--glow);
  color: #0c0a09;
  font-size: 11px;
}
body.gg-night .gg-mymenu-pill.is-bump {
  animation: gg-pill-bump 0.45s cubic-bezier(.3, 1.6, .5, 1);
}
@keyframes gg-pill-in {
  from { opacity: 0; transform: translateY(20px) scale(0.9); }
}
@keyframes gg-pill-bump {
  40% { transform: scale(1.12); }
}
/* Панель списка */
body.gg-night .gg-mymenu {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(max(16px, env(safe-area-inset-bottom)) + 60px);
  z-index: 1160;
  display: flex;
  flex-direction: column;
  width: min(360px, calc(100vw - 32px));
  max-height: min(70vh, 560px);
  padding: 18px;
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: rgb(14 11 10 / 97%);
  box-shadow: 0 24px 70px rgb(0 0 0 / 65%);
  opacity: 0;
  transform: translateY(14px) scale(0.97);
  transform-origin: 100% 100%;
  transition: opacity 0.3s, transform 0.35s cubic-bezier(.2, .8, .2, 1);
}
body.gg-night .gg-mymenu.is-open {
  opacity: 1;
  transform: none;
}
body.gg-night .gg-mymenu[hidden] {
  display: none;
}
body.gg-night .gg-mymenu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
body.gg-night .gg-mymenu__title {
  margin: 0;
  color: var(--glow);
  font: 600 11px/1 var(--mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.gg-night .gg-mymenu__title b {
  color: var(--cream);
}
body.gg-night .gg-mymenu__close,
body.gg-night .gg-mymenu__rm {
  display: grid !important;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0 !important;
  border: 1px solid var(--fog) !important;
  border-radius: 50% !important;
  background: none !important;
  color: var(--cream) !important;
  font: 400 18px/1 var(--mono) !important;
  cursor: pointer;
}
body.gg-night .gg-mymenu__close:hover,
body.gg-night .gg-mymenu__rm:hover {
  border-color: var(--glow) !important;
  color: var(--glow) !important;
}
body.gg-night .gg-mymenu__list {
  display: grid;
  gap: 8px;
  margin: 0 -6px;
  padding: 4px 6px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  list-style: none;
  /* Полоса прокрутки — только у длинного списка, тонкая и в цвет сайта (в Windows была белая системная) */
  scrollbar-width: thin;
  scrollbar-color: rgb(233 226 207 / 25%) transparent;
}
body.gg-night .gg-mymenu__list::-webkit-scrollbar {
  width: 6px;
}
body.gg-night .gg-mymenu__list::-webkit-scrollbar-track {
  background: transparent;
}
body.gg-night .gg-mymenu__list::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: rgb(233 226 207 / 25%);
}
body.gg-night .gg-mymenu__list li {
  display: flex;
  align-items: center;
  gap: 10px;
  animation: gg-mymenu-in 0.4s cubic-bezier(.2, .7, .2, 1) both;
  animation-delay: calc(var(--i) * 0.04s);
}
@keyframes gg-mymenu-in {
  from { opacity: 0; transform: translateX(10px); }
}
body.gg-night .gg-mymenu__list a {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 12px;
  min-width: 0;
  color: var(--cream) !important;
  font: 500 14px/1.2 var(--mono);
  text-decoration: none;
}
body.gg-night .gg-mymenu__list a:hover span {
  color: var(--glow);
}
body.gg-night .gg-mymenu__list img,
body.gg-night .gg-mymenu__ph {
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 10px;
  object-fit: cover;
  background: #6e2016;
}
body.gg-night .gg-mymenu__list a span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.2s;
}
body.gg-night .gg-mymenu__clear {
  align-self: flex-start;
  margin-top: 14px;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: rgb(233 226 207 / 55%) !important;
  font: 500 11px/1 var(--mono) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer;
}
body.gg-night .gg-mymenu__clear:hover {
  color: var(--glow) !important;
}
body.gg-night .gg-mymenu__empty {
  margin: 0;
  color: rgb(233 226 207 / 60%);
  font: 400 13px/1.5 var(--mono);
}
/* ---------- Фильтр по диете и аллергенам ---------- */
body.gg-night .gg-diet {
  position: relative;
  z-index: 1;
  margin-top: clamp(20px, 3vw, 32px);
}
body.gg-night .gg-diet__title {
  margin: 0 0 12px;
  color: rgb(233 226 207 / 55%);
  font: 600 11px/1.3 var(--mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.gg-night .gg-diet__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body.gg-night .gg-diet__chip,
body.gg-night .gg-diet__reset {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 14px 9px 11px;
  border: 1px solid var(--fog);
  border-radius: 999px;
  color: var(--cream) !important;
  font: 500 12px/1 var(--mono);
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
  transition: border-color 0.25s, background 0.25s, color 0.25s;
}
body.gg-night .gg-diet__box {
  position: relative;
  width: 13px;
  height: 13px;
  border: 1px solid rgb(233 226 207 / 55%);
  border-radius: 3px;
  transition: background 0.25s, border-color 0.25s;
}
body.gg-night .gg-diet__box::after {
  content: "";
  position: absolute;
  left: 3.5px;
  top: 0.5px;
  width: 4px;
  height: 8px;
  border: solid #0c0a09;
  border-width: 0 2px 2px 0;
  rotate: 45deg;
  opacity: 0;
  transition: opacity 0.2s;
}
body.gg-night .gg-diet__chip:hover {
  border-color: var(--glow);
}
body.gg-night .gg-diet__chip.is-on {
  border-color: var(--glow);
  background: rgb(232 116 42 / 14%);
}
body.gg-night .gg-diet__chip.is-on .gg-diet__box {
  border-color: var(--glow);
  background: var(--glow);
}
body.gg-night .gg-diet__chip.is-on .gg-diet__box::after {
  opacity: 1;
}
body.gg-night .gg-diet__reset {
  border-color: transparent;
  color: var(--glow) !important;
}
body.gg-night .gg-diet__reset:hover {
  color: var(--cream) !important;
}
@media (max-width: 700px) {
  body.gg-night .gg-diet__chips {
    flex-wrap: nowrap;
    margin: 0 -16px;
    padding: 0 16px 4px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  body.gg-night .gg-diet__chips::-webkit-scrollbar {
    display: none;
  }
  body.gg-night .gg-diet__chip,
  body.gg-night .gg-diet__reset {
    flex: none;
    white-space: nowrap;
  }
}
body.gg-night .gg-diet__note {
  max-width: 720px;
  margin: 12px 0 0;
  color: rgb(233 226 207 / 45%);
  font: 400 11.5px/1.5 var(--mono);
}
/* ---------- Карта маршрутов на «Гастротурах» ---------- */
body.gg-night .gg-map {
  max-width: 1400px;
  margin: clamp(48px, 7vw, 110px) auto 0;
  padding: 0 16px;
}
body.gg-night .gg-map__title {
  margin: 0 0 10px;
  color: var(--cream);
  font: 500 clamp(26px, 3.2vw, 44px)/1.05 var(--display);
}
body.gg-night .gg-map__hint {
  margin: 0 0 22px;
  color: rgb(233 226 207 / 60%);
  font: 400 13px/1.5 var(--mono);
}
body.gg-night .gg-map__hint-touch {
  display: none;
}
@media (hover: none) {
  body.gg-night .gg-map__hint-mouse {
    display: none;
  }
  body.gg-night .gg-map__hint-touch {
    display: inline;
  }
}
body.gg-night .gg-map__frame {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--fog);
  border-radius: 18px;
  background: #0c0a09;
}
body.gg-night .gg-map__scroll {
  overflow-x: auto;
  scrollbar-width: none;
}
body.gg-night .gg-map__scroll::-webkit-scrollbar {
  display: none;
}
body.gg-night .gg-map__canvas {
  min-width: 860px;
}
body.gg-night .gg-map__svg {
  display: block;
  width: 100%;
  height: auto;
  font-family: var(--mono);
}
/* Со старинной картой на фоне свои горы, море и треугольники пиков не рисуем — остаются подписи, маршруты и партнёр */
body.gg-night .gg-map--art .gg-map__sea,
body.gg-night .gg-map--art .gg-map__coast,
body.gg-night .gg-map--art .gg-map__waves,
body.gg-night .gg-map--art .gg-map__ridge,
body.gg-night .gg-map--art .gg-map__ridge-snow,
body.gg-night .gg-map--art .gg-map__peak path {
  display: none;
}
body.gg-night .gg-map--art .gg-map__canvas {
  min-width: 920px;
}
body.gg-night .gg-map__shade {
  fill: #0c0a09;
  opacity: 0.18;
  transition: opacity 0.4s;
}
body.gg-night .gg-map--hot .gg-map__shade {
  opacity: 0.42;
}
body.gg-night .gg-map__sea {
  fill: rgb(232 116 42 / 5%);
}
body.gg-night .gg-map__coast {
  fill: none;
  stroke: rgb(233 226 207 / 32%);
  stroke-width: 1;
}
body.gg-night .gg-map__waves {
  fill: none;
  stroke: rgb(233 226 207 / 16%);
  stroke-width: 1;
}
body.gg-night .gg-map__sea-label {
  fill: rgb(233 226 207 / 32%);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}
body.gg-night .gg-map__ridge {
  fill: #0f0c0b;
  stroke: rgb(233 226 207 / 34%);
  stroke-width: 1;
  stroke-linejoin: round;
}
body.gg-night .gg-map__ridge-snow {
  fill: rgb(233 226 207 / 38%);
}
body.gg-night .gg-map__peak path {
  fill: #1a1412;
  stroke: rgb(233 226 207 / 70%);
  stroke-width: 1;
}
body.gg-night .gg-map__peak .gg-map__snow {
  fill: var(--cream);
  stroke: none;
}
body.gg-night .gg-map__peak text {
  fill: var(--cream);
  font-size: 12px;
}
body.gg-night .gg-map__peak .gg-map__alt {
  fill: rgb(233 226 207 / 45%);
  font-size: 10px;
}
body.gg-night .gg-map__city circle {
  fill: rgb(233 226 207 / 80%);
}
body.gg-night .gg-map__city text {
  fill: rgb(233 226 207 / 62%);
  font-size: 11px;
}
body.gg-night .gg-map__route {
  cursor: pointer;
  outline: none;
  transition: opacity 0.35s;
}
body.gg-night .gg-map--hot .gg-map__route:not(.is-hot),
body.gg-night .gg-map--hot .gg-map__partner:not(.is-hot) {
  opacity: 0.22;
}
body.gg-night .gg-map__road {
  fill: none;
  stroke: rgb(233 226 207 / 55%);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-dasharray: 0.006 0.008;
  transition: stroke 0.3s, stroke-width 0.3s;
}
body.gg-night .gg-map__road-glow {
  fill: none;
  stroke: var(--glow);
  stroke-width: 10;
  stroke-linecap: round;
  opacity: 0;
  transition: opacity 0.4s;
}
body.gg-night .gg-map__road-hit {
  fill: none;
  stroke: transparent;
  stroke-width: 24;
  pointer-events: stroke;
}
body.gg-night .gg-map__route.is-hot .gg-map__road {
  stroke: var(--glow);
  stroke-width: 3;
  stroke-dasharray: 1 1;
  animation: gg-map-draw 0.9s cubic-bezier(0.3, 0.7, 0.2, 1) both;
}
body.gg-night .gg-map__route.is-hot .gg-map__road-glow {
  opacity: 0.45;
}
@keyframes gg-map-draw {
  from { stroke-dashoffset: 1; }
  to { stroke-dashoffset: 0; }
}
body.gg-night .gg-map__stop circle {
  fill: #0c0a09;
  stroke: rgb(233 226 207 / 80%);
  stroke-width: 1.4;
  transition: fill 0.3s, stroke 0.3s;
}
body.gg-night .gg-map__stop text {
  fill: var(--cream);
  font-size: 11.5px;
  paint-order: stroke;
  stroke: #0c0a09;
  stroke-width: 4px;
  stroke-linejoin: round;
  opacity: 0;
  transition: opacity 0.3s;
}
body.gg-night .gg-map__route.is-hot .gg-map__stop circle {
  fill: var(--glow);
  stroke: var(--glow);
}
body.gg-night .gg-map__route.is-hot .gg-map__stop text {
  opacity: 1;
  transition-delay: calc(var(--i) * 0.12s + 0.15s);
}
body.gg-night .gg-map__num circle {
  fill: #0c0a09;
  stroke: var(--glow);
  stroke-width: 1.4;
  transition: fill 0.3s;
}
body.gg-night .gg-map__num text {
  fill: var(--cream);
  font-size: 10px;
  font-weight: 700;
}
body.gg-night .gg-map__num .gg-map__start {
  fill: rgb(233 226 207 / 75%);
  font-size: 11.5px;
  font-weight: 400;
  paint-order: stroke;
  stroke: #0c0a09;
  stroke-width: 4px;
  stroke-linejoin: round;
}
body.gg-night .gg-map__route.is-hot .gg-map__num circle {
  fill: var(--glow);
}
body.gg-night .gg-map__route.is-hot .gg-map__num text {
  fill: #0c0a09;
}
body.gg-night .gg-map__route.is-hot .gg-map__num .gg-map__start {
  fill: var(--cream);
}
body.gg-night .gg-map__partner {
  cursor: pointer;
  outline: none;
  transition: opacity 0.35s;
}
body.gg-night .gg-map__leader {
  stroke: var(--glow);
  stroke-width: 1.2;
  stroke-dasharray: 2 3;
}
body.gg-night .gg-map__pin {
  fill: var(--glow);
}
body.gg-night .gg-map__badge {
  fill: #f6efe4;
  stroke: var(--glow);
  stroke-width: 2;
}
body.gg-night .gg-map__badge-text {
  fill: #6b3428;
  font-size: 8px;
  font-weight: 700;
}
body.gg-night .gg-map__pulse {
  fill: none;
  stroke: var(--glow);
  stroke-width: 1.5;
  transform-box: fill-box;
  transform-origin: center;
  animation: gg-map-pulse 2.4s ease-out infinite;
}
@keyframes gg-map-pulse {
  from { opacity: 0.8; transform: scale(1); }
  to { opacity: 0; transform: scale(1.7); }
}
body.gg-night .gg-map__partner.is-hot .gg-map__badge,
body.gg-night .gg-map__partner:hover .gg-map__badge {
  stroke-width: 3;
}
body.gg-night .gg-map__card {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 2;
  width: max-content;
  max-width: min(300px, calc(100% - 16px));
  padding: 14px 16px;
  border: 1px solid var(--glow);
  border-radius: 14px;
  background: rgb(12 10 9 / 92%);
  box-shadow: 0 18px 50px rgb(0 0 0 / 55%);
  animation: gg-map-card 0.3s ease both;
}
body.gg-night .gg-map__card[hidden] {
  display: none;
}
@keyframes gg-map-card {
  from { opacity: 0; transform: translateY(6px); }
}
body.gg-night .gg-map__card p {
  margin: 0;
}
body.gg-night .gg-map__card-kicker {
  color: var(--glow) !important;
  font: 600 11px/1.3 var(--mono) !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.gg-night .gg-map__card-title {
  margin-top: 6px !important;
  color: var(--cream) !important;
  font: 500 19px/1.15 var(--display) !important;
}
body.gg-night .gg-map__card-meta {
  margin-top: 6px !important;
  color: rgb(233 226 207 / 65%) !important;
  font: 400 12px/1.45 var(--mono) !important;
}
body.gg-night .gg-map__card-link {
  display: inline-block;
  margin-top: 10px;
  color: var(--glow) !important;
  font: 600 12px/1 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}
body.gg-night .gg-map__card-link:hover {
  color: var(--cream) !important;
}
@media (prefers-reduced-motion: reduce) {
  body.gg-night .gg-map__pulse,
  body.gg-night .gg-map__route.is-hot .gg-map__road {
    animation: none;
  }
}
/* ---------- «Покажи официанту» ---------- */
body.gg-night .gg-waiter-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 !important;
  padding: 11px 18px 11px 14px !important;
  border: 1px solid var(--glow) !important;
  border-radius: 999px !important;
  background: rgb(232 116 42 / 10%) !important;
  color: var(--cream) !important;
  font: 500 14px/1 var(--mono) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, transform 0.25s;
}
body.gg-night .gg-waiter-btn .gg-ico {
  width: 20px;
  height: 20px;
  color: var(--glow) !important;
  transition: color 0.25s;
}
body.gg-night .gg-waiter-btn:hover,
body.gg-night .gg-waiter-btn:focus-visible {
  background: var(--glow) !important;
  color: #0c0a09 !important;
  transform: translateY(-1px);
}
body.gg-night .gg-waiter-btn:hover .gg-ico,
body.gg-night .gg-waiter-btn:focus-visible .gg-ico {
  color: #0c0a09 !important;
}
html.gg-waiter-on,
html.gg-waiter-on body {
  overflow: hidden !important;
}
body.gg-night .gg-waiter {
  position: fixed;
  inset: 0;
  z-index: 1900;
  perspective: 1800px;
}
body.gg-night .gg-waiter__shade {
  position: absolute;
  inset: 0;
  background: rgb(8 6 5 / 82%) !important;
}
body.gg-night .gg-waiter__card {
  position: absolute;
  inset: 0;
  width: min(560px, calc(100vw - 24px));
  height: min(880px, calc(100vh - 24px));
  height: min(880px, calc(100dvh - 24px));
  margin: auto !important;
  transform-origin: 50% 50%;
  perspective: 1800px;
}
body.gg-night .gg-waiter__flip {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}
body.gg-night .gg-waiter__front,
body.gg-night .gg-waiter__back {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 22px !important;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
body.gg-night .gg-waiter__front {
  background: #1a1412 !important;
}
body.gg-night .gg-waiter__front img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.gg-night .gg-waiter__back {
  display: flex !important;
  flex-direction: column;
  padding: clamp(18px, 4vw, 30px) !important;
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: rotateY(180deg);
  /* Бумажная карточка: контраст для официанта, но шрифты, «//»-подписи и детали — как на сайте */
  background: #f3ebdd radial-gradient(120% 80% at 50% 0%, #fbf5ea 0%, #efe5d4 100%) !important;
  color: #17110d !important;
  font-family: var(--mono) !important;
  box-shadow: 0 30px 80px rgb(0 0 0 / 55%), inset 0 0 0 1px rgb(23 17 13 / 10%) !important;
}
body.gg-night .gg-waiter__back::after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgb(23 17 13 / 12%);
  border-radius: 14px;
  pointer-events: none;
}
body.gg-night .gg-waiter__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
body.gg-night .gg-waiter__langs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
body.gg-night .gg-waiter__lang,
body.gg-night .gg-waiter__close {
  border: 1px solid rgb(23 17 13 / 25%) !important;
  background: transparent !important;
  color: #17110d !important;
  cursor: pointer;
  font: 500 11px/1 var(--mono) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
}
body.gg-night .gg-waiter__lang {
  padding: 8px 12px !important;
  border-radius: 999px !important;
}
body.gg-night .gg-waiter__lang:hover {
  border-color: #e8742a !important;
  color: #b8402c !important;
}
body.gg-night .gg-waiter__lang.is-on {
  border-color: #17110d !important;
  background: #17110d !important;
  color: #f3ebdd !important;
}
body.gg-night .gg-waiter__close {
  display: grid !important;
  place-items: center;
  flex: none;
  width: 40px;
  height: 40px;
  margin-inline-start: auto !important;
  padding: 0 !important;
  border-radius: 50% !important;
}
body.gg-night .gg-waiter__close .gg-ico {
  width: 18px;
  height: 18px;
}
body.gg-night .gg-waiter__close:hover {
  border-color: #e8742a !important;
  background: #e8742a !important;
}
body.gg-night .gg-waiter__pic {
  flex: none;
  width: 100%;
  height: clamp(140px, 26vh, 240px);
  margin-top: 16px;
  object-fit: cover;
  border-radius: 12px;
}
body.gg-night .gg-waiter__order,
body.gg-night .gg-waiter__cuisine,
body.gg-night .gg-waiter__h {
  margin: 0 !important;
  font: 600 11px/1.4 var(--mono) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}
body.gg-night .gg-waiter__order {
  margin-top: 22px !important;
  color: #b8402c !important;
}
body.gg-night .gg-waiter__title {
  margin: 8px 0 0 !important;
  color: #17110d !important;
  font: 500 clamp(34px, 8.5vw, 60px)/0.98 var(--display) !important;
  letter-spacing: 0.01em !important;
  text-transform: uppercase !important;
  overflow-wrap: anywhere;
}
body.gg-night .gg-waiter__cuisine {
  margin-top: 10px !important;
  color: rgb(23 17 13 / 55%) !important;
}
body.gg-night .gg-waiter__h {
  margin-top: 24px !important;
  padding-top: 14px !important;
  border-top: 1px solid rgb(23 17 13 / 14%) !important;
  color: rgb(23 17 13 / 50%) !important;
}
body.gg-night .gg-waiter__ingr {
  margin: 8px 0 0 !important;
  color: #17110d !important;
  font: 400 16px/1.55 var(--mono) !important;
}
body.gg-night .gg-waiter__allerg {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 0 !important;
}
body.gg-night .gg-waiter__allerg span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px 7px 10px !important;
  border: 1.5px solid #b8402c !important;
  border-radius: 999px !important;
  background: rgb(184 64 44 / 8%) !important;
  color: #9a321f !important;
  font: 600 12px/1 var(--mono) !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}
body.gg-night .gg-waiter__allerg svg {
  flex: none;
  width: 14px;
  height: 14px;
  fill: #b8402c;
}
body.gg-night .gg-waiter__brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: auto 0 0 !important;
  padding-top: 24px !important;
  color: rgb(23 17 13 / 45%) !important;
  font: 500 10px/1 var(--mono) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}
/* Плавная смена языка в карточке */
body.gg-night .gg-waiter__back :is(.gg-waiter__order, .gg-waiter__title, .gg-waiter__cuisine, .gg-waiter__h, .gg-waiter__ingr, .gg-waiter__allerg, .gg-waiter__brand span:last-child) {
  transition: opacity 0.18s ease-in, transform 0.18s ease-in, filter 0.18s ease-in;
}
body.gg-night .gg-waiter__back.is-out :is(.gg-waiter__order, .gg-waiter__title, .gg-waiter__cuisine, .gg-waiter__h, .gg-waiter__ingr, .gg-waiter__allerg, .gg-waiter__brand span:last-child) {
  opacity: 0;
  transform: translateY(-8px);
  filter: blur(4px);
}
body.gg-night .gg-waiter__title span {
  display: inline-block;
}
@keyframes gg-waiter-in {
  from { opacity: 0; transform: translateY(10px); filter: blur(5px); }
}
body.gg-night .gg-waiter__back.is-in :is(.gg-waiter__order, .gg-waiter__cuisine, .gg-waiter__h, .gg-waiter__ingr, .gg-waiter__allerg, .gg-waiter__brand span:last-child) {
  animation: gg-waiter-in 0.5s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
body.gg-night .gg-waiter__back.is-in .gg-waiter__cuisine { animation-delay: 0.12s; }
body.gg-night .gg-waiter__back.is-in .gg-waiter__h { animation-delay: 0.16s; }
body.gg-night .gg-waiter__back.is-in .gg-waiter__ingr { animation-delay: 0.2s; }
body.gg-night .gg-waiter__back.is-in .gg-waiter__allerg { animation-delay: 0.26s; }
body.gg-night .gg-waiter__back.is-in .gg-waiter__title span {
  animation: gg-waiter-in 0.5s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  animation-delay: calc(0.03s + var(--c) * 0.025s);
}
/* Курсор-вилка — над карточкой и тёмный на светлой бумаге */
.gg-cursor--paper::before {
  border-color: rgb(23 17 13 / 55%) !important;
}
.gg-cursor-dot--paper svg {
  fill: #17110d !important;
}