/* Фикс горизонтального переполнения на мобильных */
html, body {
  overflow-x: hidden !important;
  max-width: 100% !important;
}
* {
  max-width: 100%;
}
img, video, svg {
  max-width: 100% !important;
  height: auto;
}
/* Гарантируем перенос длинных слов */
h1, h2, h3, p {
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Фикс конкретного блока с фикс-шириной 420px (секция Запчасти) */
.w-\[420px\] {
  width: 100% !important;
  max-width: 420px !important;
}

/* Страховка: любой блок не шире вьюпорта */
[class*="w-["] {
  max-width: 100% !important;
}

/* Внутренние сетки/флексы не должны распирать контейнер */
section, div {
  min-width: 0;
}

/* Кнопки и ссылки-кнопки не шире контейнера, с учётом паддингов */
a, button {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
/* Кнопка "Оставить заявку" (w-[420px]) — ужимаем на мобильных */
@media (max-width: 480px) {
  .w-\[420px\] {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ФИКС: не растягивать модальное окно (radix dialog) на всю ширину.
   Перебивает общее правило [class*="w-["]{max-width:100%}. */
[data-slot="dialog-content"] {
  max-width: 28rem !important;   /* ~448px, как max-w-md */
  width: calc(100% - 2rem) !important;
}
@media (min-width: 640px) {
  [data-slot="dialog-content"] {
    max-width: 32rem !important; /* sm:max-w-lg */
  }
}

/* Гарантируем работу sticky-шапки (overflow на body может ломать sticky) */
header.sticky {
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
}

/* === FIX: sticky-шапка не прилипала из-за overflow-y:auto у body === */
html, body {
  overflow-y: visible !important;
}
body {
  overflow-x: clip !important;
}
header.sticky {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
}

/* === FIX: фон мобильного меню (было прозрачным) === */
header nav.flex.flex-col {
  background-color: #000 !important;
  padding: 16px !important;
  width: 100% !important;
}
/* На всякий случай затемняем и прямого родителя меню */
header nav.flex.flex-col {
  box-shadow: 0 8px 24px rgba(0,0,0,0.6) !important;
}

/* === FIX: фон на всю обёртку мобильного меню + полная высота === */
header nav.flex.flex-col {
  background-color: #000 !important;
}
/* Красим прямых родителей меню в шапке */
header nav.flex.flex-col,
header nav.flex.flex-col > *,
header > div:has(nav.flex.flex-col) {
  background-color: #000 !important;
}

/* === FIX: фон на всю обёртку мобильного меню + полная высота === */
header nav.flex.flex-col {
  background-color: #000 !important;
}
/* Красим прямых родителей меню в шапке */
header nav.flex.flex-col,
header nav.flex.flex-col > *,
header > div:has(nav.flex.flex-col) {
  background-color: #000 !important;
}

/* === FIX: мобильное меню схлопывалось до 64px из-за overflow у body === */
header + div.fixed.inset-0,
div.lg\:hidden.fixed.inset-0 {
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  top: 0 !important;
  bottom: 0 !important;
  background-color: rgba(0,0,0,0.98) !important;
  overflow-y: auto !important;
}
