/* Финальные точечные правки: контакты, шапка, мобайл
   Файл нарезан из единого application.css (как на сайте Дед Глеб).
   Порядок подключения в layout важен: поздние файлы перекрывают ранние. */
/* ============================================================
   КОНТАКТЫ — финальные точечные правки
   ============================================================ */
/* Активный пункт меню: нижняя линия, не меняющая ширину */
body:not(.admin-body) .primary-nav a.is-active,
body:not(.admin-body) .primary-nav .nav-link.is-active,
body:not(.admin-body) .primary-nav a.is-active:hover {
  position: relative;
  text-decoration: none;
  font-weight: 600;
  background: transparent;
  box-shadow: none;
  color: #10233C;
}
body:not(.admin-body) .primary-nav a.is-active::after,
body:not(.admin-body) .primary-nav .nav-link.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: #10233C;
}

/* Карта: высота ≤350 на десктопе, кнопки навигаторов 44px */
body:not(.admin-body) .contact-page .map-panel-embed { max-height: 350px; }
body:not(.admin-body) .contact-page .map-route-button { min-height: 44px; border-radius: 9px; }
body:not(.admin-body) .contact-page .map-route-buttons { gap: 12px; }

/* FAQ: заголовок секции */
body:not(.admin-body) .contact-faq-title {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 600;
  margin: 6px 0 16px;
  max-width: none;
}

/* ============================================================
   ШАПКА — исправление наложения (финальная спека контактов §1)
   ============================================================ */
body:not(.admin-body) .header-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 72px;
}
body:not(.admin-body) .brand { flex-shrink: 0; }
body:not(.admin-body) .primary-nav {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}
body:not(.admin-body) .primary-nav > a,
body:not(.admin-body) .primary-nav .nav-link {
  display: flex;
  align-items: center;
  min-height: 44px;
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
  padding: 0 2px;
}
body:not(.admin-body) .header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
  margin-left: auto;
}
body:not(.admin-body) .header-phone {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
body:not(.admin-body) .header-phone-ico { width: 18px; height: 18px; flex: 0 0 18px; }
body:not(.admin-body) .header-phone strong {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
}
body:not(.admin-body) .header-cta {
  height: 44px;
  min-height: 44px;
  min-width: 224px;
  padding-inline: 20px;
  border-radius: 10px;
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 14px;
}
/* До 1360px: плотнее навигация, компактнее CTA, номер сворачивается до иконки */
@media (max-width: 1360px) {
  body:not(.admin-body) .primary-nav { gap: 14px; }
  body:not(.admin-body) .header-cta { min-width: 205px; padding-inline: 16px; }
  body:not(.admin-body) .header-phone strong { display: none; }
  body:not(.admin-body) .header-phone { min-width: 44px; min-height: 44px; justify-content: center; }
}
/* До 1024px: мобильное меню вместо десктопной навигации */
@media (max-width: 1023px) {
  body:not(.admin-body) .primary-nav { display: none; }
  body:not(.admin-body) .site-header .mobile-menu { display: block; }
  body:not(.admin-body) .header-cta { display: inline-flex; }
}
@media (max-width: 767px) {
  body:not(.admin-body) .header-cta { display: none; }
}

/* Шапка: пункты 15px после увеличения полосы и логотипа на 20 % (13.08.2026).
   Навигация помещается: контейнер шапки расширен до 1400px на ≥1440. */
body:not(.admin-body) .primary-nav > a,
body:not(.admin-body) .primary-nav .nav-link {
  font-size: 15px;
}
body:not(.admin-body) .header-cta { min-width: 0; }

/* Шапка: единые метрики поверх страничных override'ов (.pages.contacts/.pages.stock) */
body:not(.admin-body).pages .site-header .primary-nav a,
body:not(.admin-body).pages .site-header .primary-nav .nav-link {
  font-size: 15px !important;
  line-height: 20px;
  font-weight: 400;
}

/* ≤1200px: при 15px «Комплексные поставки» и «Наличие на складе» перестают
   помещаться рядом с телефоном и кнопкой — там кегль прежний */
@media (max-width: 1200px) {
  body:not(.admin-body).pages .site-header .primary-nav a,
  body:not(.admin-body).pages .site-header .primary-nav .nav-link {
    font-size: 13px !important;
  }
}
body:not(.admin-body).pages .site-header .header-phone strong {
  font-size: 14px;
  font-weight: 600;
}
body:not(.admin-body).pages .site-header .header-cta {
  height: 44px;
  min-height: 44px;
  min-width: 0;
  padding-inline: 20px;
  font-size: 14px;
  border-radius: 10px;
}

/* Шапка mobile: единственная кнопка телефона — круглая иконка */
@media (max-width: 767px) {
  body:not(.admin-body) .header-phone { display: none; }
  body:not(.admin-body) .header-inner { gap: 12px; }
  body:not(.admin-body) .header-actions { gap: 10px; }
}

/* ============================================================
   РЕКВИЗИТЫ — мобильный финал (карточки 108px, лёгкие границы)
   ============================================================ */
@media (max-width: 767px) {
  /* Полезные карточки: 104–112px, сетка 40/1fr/20 */
  body:not(.admin-body) .req-useful-card {
    min-height: 108px;
    padding: 14px 16px;
    grid-template-columns: 40px minmax(0, 1fr) 20px;
    column-gap: 12px;
    row-gap: 3px;
  }
  body:not(.admin-body) .req-useful-card:active { transform: scale(0.98); background: #F7FAFD; }
  /* Внутренние границы списка ещё легче + последняя строка без линии */
  body:not(.admin-body) .req-grid { border-top-color: var(--color-border); }
  body:not(.admin-body) .req-cell,
  body:not(.admin-body) .req-cell--address { border-bottom-color: var(--color-border); }
  body:not(.admin-body) .req-grid > .req-cell:last-child,
  body:not(.admin-body) .req-grid > .req-cell--address:last-child { border-bottom: 0; }}
/* Sticky-шапка сайта (вся страница) */
body:not(.admin-body) .site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #FFFFFF;
  border-bottom: 1px solid var(--color-border);
}

/* ============================================================
   НАЛИЧИЕ — финальные мобильные правки
   ============================================================ */
@media (max-width: 767px) {
  /* «Как получить расчёт»: компактный вертикальный список */
  body:not(.admin-body) .stock-process-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body:not(.admin-body) .stock-process-item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 4px;
    align-items: start;
  }
  body:not(.admin-body) .stock-process-num {
    grid-column: 1;
    grid-row: 1;
    width: 24px;
    height: 24px;
    font-size: 11px;
    line-height: 24px;
    text-align: center;
    border-radius: 50%;
    background: #10233C;
    color: #fff;
    justify-self: start;
    align-self: start;
    margin: -4px 0 0 -4px;
    position: relative;
    z-index: 1;
  }
  body:not(.admin-body) .stock-process-item h3 {
    margin: 0;
    font-size: 15px;
    line-height: 21px;
  }
  body:not(.admin-body) .stock-process-item p {
    grid-column: 2;
    margin: 0;
    font-size: 13px;
    line-height: 19px;
    color: #5C6E84;
  }
  body:not(.admin-body) .stock-send-or { display: none; }
  body:not(.admin-body) .stock-send-email {
    min-height: 68px;
    padding: 12px 14px;
    margin-top: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  /* Полезные разделы — горизонтальные строки 104–112px */
  body:not(.admin-body) .stock-related-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }
  body:not(.admin-body) .stock-related-card {
    width: 100%;
    min-height: 104px;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 20px;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 3px;
    align-items: center;
    position: relative;
  }
  body:not(.admin-body) .stock-related-card .stock-related-icon {
    grid-column: 1;
    grid-row: 1 / 3;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: #F3F8FC;
    margin: 0;
  }
  body:not(.admin-body) .stock-related-card h3 { grid-column: 2; grid-row: 1; margin: 0; font-size: 14px; line-height: 19px; }
  body:not(.admin-body) .stock-related-card p { grid-column: 2; grid-row: 2; margin: 0; font-size: 12px; line-height: 17px; }}

/* Наличие mobile: приоритет над страничными стилями .pages.stock */
@media (max-width: 767px) {
  body:not(.admin-body).pages.stock .stock-process-item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 4px;
    align-items: start;
    padding: 0;
  }
  body:not(.admin-body).pages.stock .stock-process-num {
    grid-column: 1;
    grid-row: 1;
    width: 24px;
    height: 24px;
    min-width: 0;
    font-size: 11px;
    line-height: 24px;
    margin: -4px 0 0 -4px;
  }
  body:not(.admin-body).pages.stock .stock-related-card {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 20px;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 3px;
    align-items: center;
    min-height: 104px;
    max-height: none;
    padding: 14px 16px;
  }
  body:not(.admin-body).pages.stock .stock-related-card .stock-related-icon { grid-column: 1; grid-row: 1 / 3; margin: 0; }
  body:not(.admin-body).pages.stock .stock-related-card h3 { grid-column: 2; grid-row: 1; margin: 0; }
  body:not(.admin-body).pages.stock .stock-related-card p { grid-column: 2; grid-row: 2; margin: 0; }}

@media (max-width: 767px) {
  body:not(.admin-body).pages.stock .stock-related-card { height: auto; min-height: 104px; }
  body:not(.admin-body).pages.stock .stock-related-card .stock-related-icon { width: 40px; height: 40px; }
  body:not(.admin-body).pages.stock .stock-process-item { min-height: 0; }
}
