/* Доп. стили для PHP-рендеринга публичных страниц (не входят в исходный
   Vite-бандл): мобильное меню и мелкие состояния, которых не было в
   статической разметке. Не переопределяет ничего из index-DP3syInf.css —
   только новый функционал (мобильный дропдаун меню). */

.hero-nav.is-open {
  display: flex !important;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  background: #14161a;
  padding: 16px 24px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.35);
  z-index: 40;
}

.hero-nav.is-open a {
  width: 100%;
  padding: 10px 0;
}

.directions-catalog-card.is-hidden {
  display: none;
}

/* ВАЖНО: index-DP3syInf.css — заранее скомпилированный Tailwind из старого
   бандла. Любой utility-класс, которого не было в исходной вёрстке
   (например bg-black/90, max-w-[600px], text-7xl), там отсутствует и
   молча не работает. Такие стили — только здесь, семантическими классами. */

/* Лайтбоксы галереи (фото и видео) */
.nd-lightbox {
  background: rgba(0, 0, 0, 0.9);
}
.nd-lightbox img {
  max-height: 85vh;
}
.nd-video-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 1rem;
}
.nd-video-shade {
  background: rgba(0, 0, 0, 0.25);
  transition: background-color 0.3s ease;
}
.group:hover .nd-video-shade {
  background: rgba(0, 0, 0, 0.4);
}

/* Виджет отзывов Яндекс Карт: белый iframe в тёмной рамке со свечением */
.nd-yandex-wrap {
  max-width: 600px;
  margin: 0 auto;
}
.nd-yandex-frame {
  padding: 4px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(200, 255, 46, 0.45), rgba(200, 255, 46, 0) 70%);
  box-shadow: 0 0 60px -15px rgba(200, 255, 46, 0.35);
}
.nd-yandex-frame > div {
  border-radius: 20px;
}

/* Tailwind-утилиты, которые используются в PHP-шаблонах, но не попали в
   старую сборку index-DP3syInf.css. Определения — точные копии того, что
   сгенерировал бы Tailwind (цвет dark = #1A1A1A, как в сборке). */
.pb-10 { padding-bottom: 2.5rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.via-dark\/80 {
  --tw-gradient-to: rgb(26 26 26 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(26 26 26 / 0.8) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-dark\/50 { --tw-gradient-to: rgb(26 26 26 / 0.5) var(--tw-gradient-to-position); }
.border-white\/8 { border-color: rgb(255 255 255 / 0.08); }
.max-w-\[110px\] { max-width: 110px; }
.w-\[220px\] { width: 220px; }
@media (min-width: 768px) {
  .md\:col-span-3 { grid-column: span 3 / span 3; }
}
@media (min-width: 1024px) {
  .lg\:grid-cols-\[1fr_1\.3fr\] { grid-template-columns: 1fr 1.3fr; }
}
@media (min-width: 1280px) {
  .xl\:w-\[280px\] { width: 280px; }
}

.nd-cd-label { text-transform: none; }

/* Крупная цифра на странице 404 */
.nd-404-code {
  font-size: clamp(96px, 22vw, 180px);
  line-height: 1;
}
