/* ============================================================
   Навигация (десктоп)
   ============================================================ */
.nav {
  display: flex;
  justify-content: center;
  align-items: center;
  /* Только страховка: в рабочем диапазоне меню всегда умещается в одну строку за счёт
     уменьшения кегля (см. `.nav a` ниже), поэтому перенос не срабатывает. Оставлен на случай
     дрейфа констант формулы: лучше мягкий перенос, чем горизонтальный overflow всей страницы
     (скроллбар + смещение всех `position: fixed` в т.ч. кнопки «наверх»). */
  flex-wrap: wrap;
  gap: 20px; /* = Elementor `menu_space_between: 20` */
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav a {
  display: block;
  font-family: var(--font-nav);
  font-size: 16px;
  font-weight: 400;
  text-transform: capitalize;
  color: var(--color-ink);
  white-space: nowrap;
}

.nav a:hover,
.nav a.is-active {
  color: var(--color-accent);
}

/* Меню всегда в ОДНУ строку: если ширины не хватает (≈1025–1170px), кегль уменьшается
   пропорционально доступной ширине (в оригинале меню в этом диапазоне переносится на 2 строки,
   но у нас перенос исключён).
   Константы формулы: ширина текста 6 пунктов ≈ 834px при 16px; навигации доступно
   ≈ 100vw − 344px (отступы контейнера 10+10, лого 144, два gap 20).
   Нужно F ≤ 16·(clientW−304)/834 ≈ 0.0192·(100vw − 340px) — с запасом ~20–35px.
   До 1170px кегль плавно растёт до 16px, дальше — clamp держит 16px (как в оригинале). */
@media (min-width: 1025px) {
  .nav a {
    font-size: clamp(13px, calc((100vw - 340px) * 0.0192), 16px);
  }
}

/* Мобильное меню / выдвижная панель (popup «моб меню» 3124: #222E6A, 520px, slideInRight).
   Длительность анимации — 0.5s по требованию заказчика (в 2 раза быстрее оригинала 1s). */
.mobile-menu {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(520px, 100vw);
  background-color: var(--color-brand);
  color: var(--color-white);
  box-shadow: -6px 0 30px rgba(0, 0, 0, 0.2);
  transform: translateX(105%);
  transition: transform 0.5s ease;
  z-index: 1000;
  overflow-y: auto;
  /* Колонка на всю высоту окна: контакты прижимаются к низу (margin-top: auto) */
  display: flex;
  flex-direction: column;
  padding: 24px 24px 48px;
}

.mobile-menu.is-open {
  transform: translateX(0);
}

.mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  margin-bottom: 24px;
}

.mobile-menu__head .mobile-menu__logo {
  max-width: 78%;
  margin: 0;
}

.mobile-menu__close {
  display: flex;
  align-items: center;
  background: none;
  border: 0;
  padding: 0;
  color: #fffaf5;
}

.mobile-menu__close svg {
  width: 27px;
  height: 27px;
}

.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  list-style: none;
  margin: 0 0 36px;
  padding: 0;
}

.mobile-menu__nav a {
  display: block;
  padding: 12px 8px;
  font-family: var(--font-alt);
  font-size: 22px;
  font-weight: 400;
  text-transform: capitalize;
  color: var(--color-white);
}

.mobile-menu__nav a:hover {
  color: var(--color-accent);
}

.mobile-menu__nav a.is-active {
  background-color: rgba(255, 255, 255, 0.15);
}

.mobile-menu .mobile-menu__contacts {
  /* Прижаты к нижней части окна (селектор с родителем — иначе `.icon-list { margin: 0 }`
     из icon-list.css, загружаемого позже, сбрасывает `margin-top: auto`) */
  flex: 0 0 auto;
  margin-top: auto;
  margin-bottom: 0;
}

.mobile-menu__contacts .icon-list__item {
  font-size: 14px;
  line-height: 1.4;
}

.mobile-menu__contacts .icon-list__icon,
.mobile-menu__contacts .icon-list__text {
  color: var(--color-white);
}

.mobile-menu__contacts a:hover .icon-list__icon,
.mobile-menu__contacts a:hover .icon-list__text {
  color: var(--color-accent);
}

.mobile-menu__bottom {
  display: flex;
  justify-content: center;
}

.backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.8);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--trans), visibility var(--trans);
  z-index: 999;
}

.backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

/* Скрытая ссылка «Политика конфиденциальности» в попапе (1:1 с оригиналом, elementor-hidden) */
.mobile-menu__privacy {
  display: block;
  margin-top: 10px;
  font-family: var(--font-alt);
  font-size: 12px;
  color: var(--color-white);
  text-align: center;
}
