/* FTP overlay: правки 25.09.2026 поверх последнего hashed Next CSS. */

/* Leaflet 1.9+ рисует флаг Украины в attribution — скрываем полностью. */
.leaflet-attribution-flag,
.leaflet-control-attribution .leaflet-attribution-flag {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Подсказки адреса в калькуляторе */
.ab-address-suggest {
  position: relative;
  z-index: 4;
}
.ab-address-suggest__status {
  margin: 4px 0 0;
  color: #61717e;
  font-size: 12px;
}
.ab-address-suggest__list {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  margin: 0;
  padding: 4px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #6b8ba7;
  border-radius: 3px;
  box-shadow: 0 8px 24px rgba(17, 42, 64, 0.12);
  max-height: 220px;
  overflow: auto;
  z-index: 20;
}
.ab-address-suggest__list button {
  display: block;
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: #112a40;
  font: inherit;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}
.ab-address-suggest__list button.is-active,
.ab-address-suggest__list button:hover {
  background: #eef4f8;
}
.ab-cabinet-order .ab-cabinet-address {
  grid-column: 1 / -1;
}
.ab-cabinet-order .ab-cabinet-map {
  grid-column: 1 / -1;
  width: 100%;
  height: 220px;
}
.ab-cabinet-order .ab-cabinet-map[hidden] {
  display: none !important;
}
.ab-cabinet-order .ab-cabinet-map iframe {
  display: block;
  width: 100%;
  height: 220px;
  border: 0;
  border-radius: 4px;
}
form.ab-cabinet-order,
form.ab-cabinet-contact {
  width: min(100%, 640px) !important;
  max-width: min(100%, 640px) !important;
  justify-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
form.ab-cabinet-order {
  width: max-content !important;
  max-width: 100% !important;
  grid-template-columns: repeat(2, minmax(0, 122px)) !important;
}
.ab-cabinet-order .ab-field {
  width: 122px !important;
  max-width: 100% !important;
  justify-self: center !important;
}
.ab-cabinet-order .ab-field > span {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}
.ab-cabinet-order .ab-field--wide,
.ab-cabinet-order .ab-field--date {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  justify-self: stretch !important;
}
form.ab-cabinet-contact {
  justify-items: center !important;
}
.ab-cabinet__section:has(> form.ab-cabinet-order) > h2,
.ab-cabinet__section:has(> form.ab-cabinet-contact) > h2 {
  text-align: center !important;
}
.ab-cabinet-contact .ab-field,
.ab-cabinet-contact .ab-field--wide {
  width: 100% !important;
  max-width: 100% !important;
}
.ab-cabinet-contact .ab-field > span,
.ab-cabinet-contact .ab-field--wide > span {
  text-align: center !important;
}
.ab-cabinet-contact .ab-field textarea,
.ab-cabinet-contact .ab-field textarea::placeholder {
  text-align: center !important;
}
.ab-cabinet-contact > .ab-red-button {
  width: 10em !important;
  max-width: 100% !important;
  justify-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ab-cabinet-order .ab-estimate,
.ab-cabinet-order .ab-estimate-line,
.ab-cabinet-order .ab-estimate-breakdown {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  justify-self: center !important;
  text-align: center !important;
}
.ab-cabinet-order > .ab-red-button {
  grid-column: 1 / -1 !important;
  width: max-content !important;
  max-width: 100% !important;
  justify-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ab-cabinet-order .ab-field--wide > span,
.ab-cabinet-order .ab-cabinet-address > span {
  text-align: center !important;
}
/* Дата: по центру между «Объём» и «Расстояние», ширина чтобы дата целиком */
.ab-cabinet-order .ab-field--date {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  justify-self: stretch !important;
}
.ab-cabinet-order .ab-field--date > span {
  text-align: center !important;
}
.ab-cabinet-order .ab-field--date input[type='date'] {
  box-sizing: border-box !important;
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  text-align: center !important;
}
.ab-cabinet-order .ab-field input,
.ab-cabinet-order .ab-field select,
.ab-cabinet-order .ab-field textarea,
.ab-cabinet-order .ab-field input::placeholder {
  text-align: center !important;
  text-align-last: center !important;
}
.ab-cabinet-order input[type='date']::-webkit-datetime-edit {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
  text-align: center !important;
}
.ab-cabinet-order input[type='date']::-webkit-datetime-edit-fields-wrapper,
.ab-cabinet-order input[type='date']::-webkit-date-and-time-value {
  width: auto !important;
  min-width: 0 !important;
  overflow: visible !important;
  text-align: center !important;
}
.ab-cabinet-order input[type='date']::-webkit-calendar-picker-indicator {
  position: absolute !important;
  right: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
}

.ab-page-h1 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Сцена героя: CSS Grid (меню | центр | калькулятор), без наложений при ресайзе.
   Доли сторон ≤ ~42vw → центр всегда свободен. Ниже 1200px — compact-шапка. --- */
:root {
  --ab-hero-pad: clamp(12px, 1.5vw, 28px);
  --ab-nav-w: clamp(168px, 18vw, 248px);
  --ab-aside-w: clamp(280px, 24vw, 320px);
  --ab-aside-gap: clamp(12px, 1.2vw, 24px);
  --ab-weather-box-w: 348px;
  --ab-weather-box-h: 72px;
  /* Центр сцены 1920: на ультрашироких блоки не уезжают к краям. */
  --ab-stage-w: 1920px;
  --ab-stage-inset: max(0px, calc((100vw - var(--ab-stage-w)) / 2));
}

@media (min-width: 1200px) {
  .home-v2,
  body:has(.ab-hero) {
    position: relative !important;
    /* На 1920px те же пиксели, что и раньше. Уже окно — те же доли, без zoom страницы. */
    --ab-nav-w: clamp(168px, calc(168px + (100vw - 1200px) * 80 / 720), 248px);
    --ab-hero-pad: clamp(16px, calc(16px + (100vw - 1200px) * 12 / 720), 28px);
    --ab-aside-gap: clamp(12px, calc(12px + (100vw - 1200px) * 12 / 720), 24px);
    /* Быстрый заказ зафиксирован в эталонном размере: не уезжает при ресайзе. */
    --ab-aside-w: 460px;
    --ab-form-w: 460px;
    --ab-weather-box-w: 348px;
    --ab-weather-box-h: 72px;
    /* Стартовые позиции без JS — без «прыжка» при загрузке */
    --ab-form-top: calc(var(--ab-weather-box-h) + 56px);
    --ab-track-top: calc(var(--ab-form-top) + 388px);
    --ab-stage-right: max(var(--ab-hero-pad), calc(var(--ab-stage-inset) + var(--ab-hero-pad)));
    --ab-stage-left: max(var(--ab-hero-pad), calc(var(--ab-stage-inset) + var(--ab-hero-pad)));
  }
  .home-v2 > .ab-header-shell {
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .ab-mobile-intro { display: none !important; }

  .ab-header:not(.ab-header--inner) {
    position: absolute !important;
    top: 0 !important;
    left: var(--ab-stage-left, var(--ab-hero-pad)) !important;
    right: var(--ab-stage-right, var(--ab-hero-pad)) !important;
    z-index: 6 !important;
    display: grid !important;
    grid-template-columns:
      var(--ab-nav-w)
      minmax(0, 1fr)
      minmax(0, var(--ab-form-w)) !important;
    column-gap: var(--ab-aside-gap) !important;
    align-items: start !important;
    width: auto !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-top: 18px !important;
    box-sizing: border-box !important;
  }

  /* Колонка 1: меню в потоке grid — верх совпадает с началом телефона / лого / иконок */
  .ab-header:not(.ab-header--inner) > .ab-nav {
    position: relative !important;
    z-index: 1000 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    justify-self: stretch !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-nav a,
  .ab-header:not(.ab-header--inner) > .ab-nav .ab-nav-item > a,
  .ab-header:not(.ab-header--inner) > .ab-nav .ab-nav-item__toggle {
    min-height: clamp(34px, 3.2vw, 41px) !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-nav a,
  .ab-header:not(.ab-header--inner) > .ab-nav .ab-nav-item > a {
    font-size: clamp(11px, 0.95vw, 13px) !important;
  }

  /* Колонка 2: контакты / лого / иконки — в одном треке, без выезда на меню/aside */
  .ab-header:not(.ab-header--inner) > .ab-header__contacts {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    align-self: start !important;
    z-index: 3 !important;
    width: max-content !important;
    max-width: min(280px, 44%) !important;
    padding: 0 !important;
    font-size: clamp(15px, calc(15px + (100vw - 1200px) * 5 / 720), 20px) !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    gap: 6px !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-header__contacts a {
    gap: 7px !important;
    white-space: nowrap !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-header__contacts svg {
    flex: 0 0 16px !important;
    width: 16px !important;
    height: 16px !important;
  }

  .ab-header:not(.ab-header--inner) > .ab-header__logo {
    position: absolute !important;
    top: 18px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    grid-column: auto !important;
    grid-row: auto !important;
    justify-self: center !important;
    align-self: start !important;
    z-index: 4 !important;
    width: clamp(100px, calc(100px + (100vw - 1200px) * 140 / 720), 240px) !important;
    max-width: min(240px, 28vw) !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
    pointer-events: auto !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-header__logo .ab-logo {
    display: inline-flex !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-header__logo .ab-logo__desk {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }
  /* Цветной логотип в хэдере на тёмном герое убран (раньше просвечивал под белым) */
  .ab-header:not(.ab-header--inner) > .ab-header__logo .ab-logo__mobile {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }

  .ab-header:not(.ab-header--inner) > .ab-socials {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: start !important;
    z-index: 4 !important;
    margin: 0 !important;
    max-width: 48% !important;
  }

  /* Колонка 3 зарезервирована под aside; сам aside совпадает с правым краем сцены */
  .ab-hero__aside {
    position: absolute !important;
    top: 18px !important;
    right: var(--ab-hero-pad) !important;
    width: var(--ab-aside-w) !important;
    max-width: var(--ab-aside-w) !important;
    justify-items: stretch !important;
    gap: clamp(10px, 1.2vw, 16px) !important;
    box-sizing: border-box !important;
  }
  .ab-hero__aside > .ab-weather[data-wp-mode='live'] .ab-weather-now__temp {
    font-size: clamp(22px, 2vw, 26px) !important;
  }
  .ab-hero__aside > .ab-weather[data-wp-mode='live'] .ab-weather-now__city,
  .ab-hero__aside > .ab-weather[data-wp-mode='live'] .ab-weather-now__label {
    font-size: 11px !important;
  }
  .ab-hero__aside > .ab-quick-form,
  .ab-quick-form {
    width: 100% !important;
    max-width: 100% !important;
  }

  .ab-header--inner > .ab-header__logo {
    margin-right: 8px;
    max-width: 100%;
  }
  .ab-header--inner > .ab-header__contacts {
    margin-left: 28px !important;
  }
  .ab-header--inner > .ab-socials {
    margin-left: 16px;
  }
}

/* Партнёры / проекты: карточки — ссылки на официальные сайты */
a.ab-partner-card,
a.ab-project-card {
  text-decoration: none !important;
  color: inherit !important;
  cursor: pointer !important;
}
a.ab-partner-card:hover,
a.ab-partner-card:focus-visible {
  opacity: 0.88 !important;
  outline: none !important;
}
a.ab-project-card:hover,
a.ab-project-card:focus-visible {
  opacity: 0.9 !important;
  outline: none !important;
}
a.ab-project-card:hover h3,
a.ab-project-card:focus-visible h3 {
  color: #005aa5 !important;
}

/* --- Сертификаты: ровные рамки (7 слотов, без сдвига pl-4) --- */
.ab-documents .ab-carousel [data-slot='carousel-content'] > div {
  margin-left: 0 !important;
}
.ab-document-slide {
  flex: 0 0 calc(100% / 7) !important;
  min-width: 0;
  padding-left: 0 !important;
  box-sizing: border-box;
}
.ab-document-card {
  position: relative !important;
  width: min(100%, 127px) !important;
  height: auto !important;
  aspect-ratio: 127 / 179 !important;
  margin-inline: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}
/* Затемнение + лупа: «можно увеличить». */
.ab-document-card::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  background: rgb(6 14 28 / 0%) !important;
  transition: background 0.2s ease !important;
}
.ab-document-card::before,
.ab-document-card:hover::before,
.ab-document-card:focus-visible::before {
  content: none !important;
}
.ab-document-card:hover {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}
.ab-document-card:focus-visible {
  border: 0 !important;
  box-shadow: none !important;
  outline: 2px solid #0a375f !important;
  outline-offset: 2px !important;
  z-index: 2 !important;
}
.ab-document-card:hover::after,
.ab-document-card:focus-visible::after {
  background: transparent !important;
}
.ab-document-card--empty,
.ab-document-card--empty:hover,
.ab-document-card--empty:focus-visible {
  cursor: default !important;
  border: 0 !important;
  box-shadow: none !important;
}
.ab-document-card--empty::before,
.ab-document-card--empty::after {
  content: none !important;
}
.ab-document-card > span,
.ab-document-card img,
.ab-document-card__img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}
.ab-document-card img,
.ab-document-card__img {
  object-fit: cover !important;
  object-position: center center !important;
  transition: transform 0.25s ease !important;
}
.ab-document-card:hover img,
.ab-document-card:hover .ab-document-card__img,
.ab-document-card:focus-visible img,
.ab-document-card:focus-visible .ab-document-card__img {
  transform: scale(1.04) !important;
}

/* --- Карусели: ширины слайдов + место под transform-loop (static-ui) ---
   Ширины интегральные (100%/N): в области видимости всегда ровно N ЦЕЛЫХ
   карточек, края вьюпорта совпадают с краями слайдов — ничего не обрезается
   пополам. (Галоп 16px — pl-4 внутри слайда, компенсируется -ml-4 ленты.)
   До 20/25/33.333% слайды имели «хвост» следующей карточки на правом краю. */
.ab-carousel [data-slot='carousel-content'] {
  overflow: hidden !important;
}
.ab-carousel [data-slot='carousel-content'] > div {
  will-change: transform;
}
.ab-partner-slide {
  flex: 0 0 20% !important;
  flex-basis: 20% !important;
  max-width: 20% !important;
  min-width: 0;
}
.ab-project-slide {
  flex: 0 0 25% !important;
  min-width: 0;
}
.ab-video-slide {
  flex: 0 0 25% !important;
  min-width: 0;
}
.ab-review-slide {
  flex: 0 0 33.333% !important;
}

/* --- Карты --- */
.ab-osm-map {
  width: 100%;
  height: 420px;
  min-height: 280px;
  border-radius: 8px;
  overflow: hidden;
  background: #eef2f5;
  z-index: 0;
  touch-action: pan-x pan-y;
}
.ab-dgis-map,
.ab-osm-map.ab-dgis-map {
  position: relative;
}
.ab-dgis-frame,
.ab-dgis-map iframe,
.ab-yandex-frame,
.ab-delivery-map__frame.ab-yandex-frame {
  display: block;
  width: 100% !important;
  height: 480px !important;
  min-height: 480px;
  max-width: 100%;
  border: 0 !important;
  border-radius: 8px;
  background: #eef2f5;
}
.ab-yandex-map {
  width: 100%;
  height: 480px;
  min-height: 480px;
  border-radius: 8px;
  overflow: hidden;
  background: #eef2f5;
}
.ab-dgis-map .leaflet-control-attribution,
.ab-dgis-map .dg-control-attribution {
  font-size: 10px;
}
/* В калькуляторе только живая карта — PNG-заглушку не показываем */
.ab-delivery-map img[src*="delivery-map"],
.ab-delivery-map img[src*="map-moscow"],
.ab-calculator .ab-delivery-map > img {
  display: none !important;
}
.ab-plants-map .ab-osm-map {
  height: 472px;
  border: 1px solid #c5d3de;
}
/* Карта заводов: окно на всю ширину контента (.ab-container = 1180px), без лимита 1050px */
.ab-plants-map__slot {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
  min-height: 520px !important;
}
.ab-plants-map__slot iframe,
.ab-plants-map__widget,
.ab-plants-map__frame,
.ab-plants-map iframe.ab-widget-frame {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 520px !important;
  height: 520px !important;
  margin: 0 !important;
  border: 0 !important;
}
.ab-osm-map .leaflet-container {
  width: 100%;
  height: 100%;
  font-family: inherit;
}
.ab-osm-map .leaflet-control-zoom a {
  cursor: pointer;
  text-decoration: none;
}
.ab-osm-map .leaflet-control-zoom a,
.ab-osm-map .leaflet-control-zoom button {
  display: block !important;
  width: 30px !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #ccc !important;
  background: #fff !important;
  color: #000 !important;
  font: bold 18px / 30px 'Lucida Console', Monaco, monospace !important;
  line-height: 30px !important;
  text-align: center !important;
  text-indent: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
}
.ab-osm-map .leaflet-control-zoom a:last-child,
.ab-osm-map .leaflet-control-zoom button:last-child {
  border-bottom: 0 !important;
}
.leaflet-touch .ab-osm-map .leaflet-control-zoom a,
.leaflet-touch .ab-osm-map .leaflet-control-zoom button {
  width: 34px !important;
  height: 34px !important;
  line-height: 34px !important;
  font-size: 22px !important;
}
/* Если вдруг два блока ± — прячем все после первого */
.ab-osm-map .leaflet-top.leaflet-left .leaflet-control-zoom ~ .leaflet-control-zoom {
  display: none !important;
}
.ab-plants-map__more {
  grid-column: 1 / -1;
}
.ab-plants-map__more > summary {
  display: none;
  cursor: pointer;
  list-style: none;
  padding: 12px 14px;
  border: 1px solid #c5d3de;
  border-radius: 4px;
  background: #fff;
  color: #0a375f;
  font-weight: 800;
}
.ab-plants-map__more > summary::-webkit-details-marker {
  display: none;
}

/* --- Погода / цифры --- */
.ab-weather-now {
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 4px;
  height: 100%;
  min-height: 126px;
  padding: 12px 14px;
  box-sizing: border-box;
}
.ab-stats img {
  width: auto !important;
  max-width: min(132px, 36vw);
  height: auto !important;
  object-fit: contain;
  image-rendering: auto;
}

.ab-not-found {
  min-height: 60vh;
  padding: 48px 20px 80px;
  text-align: center;
}
.ab-not-found h1 {
  margin: 12px 0 16px;
  color: #0a375f;
  font-size: clamp(32px, 6vw, 52px);
}
.ab-not-found p {
  margin: 0 0 24px;
  color: #2c4e68;
}
.ab-not-found__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.ab-not-found__actions a {
  display: inline-flex;
  padding: 12px 18px;
  border-radius: 5px;
  background: #e31e24;
  color: #fff;
  font-weight: 800;
}
.info-shell {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
.info-shell > .info-main {
  flex: 1 0 auto;
}
.info-shell > .ab-footer {
  flex-shrink: 0;
  margin-top: auto;
  width: 100%;
}

/* Footer: emblem centered above copyright, fluid grid */
.ab-footer,
footer.ab-footer {
  min-height: 0 !important;
  padding: clamp(22px, 3.2vw, 40px) 0 !important;
}
.ab-footer__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(140px, 0.9fr) minmax(0, 1fr) !important;
  gap: clamp(18px, 2.8vw, 32px) clamp(16px, 3vw, 40px) !important;
  align-items: center !important;
}
.ab-footer__brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(8px, 1.2vw, 12px) !important;
  text-align: center !important;
}
.ab-footer__mark {
  display: grid !important;
  place-items: center !important;
  line-height: 0 !important;
}
.ab-footer__mark img {
  width: clamp(140px, 16vw, 203px) !important;
  height: auto !important;
  max-width: 100% !important;
}
.ab-footer__brand .ab-logo {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}
.ab-footer__brand .ab-logo img {
  width: clamp(120px, 16vw, 180px) !important;
  max-width: 100% !important;
  height: auto !important;
  margin-inline: auto !important;
}
.ab-footer__copy {
  display: block !important;
  color: rgb(255 255 255 / 88%) !important;
  font-size: clamp(11px, 1.05vw, 13px) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-align: center !important;
}
.ab-footer nav {
  justify-items: end !important;
  font-size: clamp(11px, 0.95vw, 13px) !important;
}
.ab-footer__contacts > div {
  font-size: clamp(11px, 0.95vw, 13px) !important;
}
@media (max-width: 900px) {
  .ab-footer__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    align-items: start !important;
  }
  .ab-footer__brand {
    grid-column: 1 / -1 !important;
    order: -1 !important;
  }
  .ab-footer nav {
    order: 2 !important;
    justify-items: start !important;
  }
}
@media (max-width: 640px) {
  .ab-footer__grid {
    grid-template-columns: 1fr !important;
  }
  .ab-footer__brand {
    order: -1 !important;
  }
  .ab-footer__mark img {
    width: clamp(140px, 48vw, 190px) !important;
  }
}
/* Футер на ширинах с колонками хедера: левый край контактов = левый край меню,
   правый край ссылок = правый край правого блока. Как хедер, от --ab-hero-pad. */
@media (min-width: 1200px) {
  body:has(.ab-hero) .ab-footer > .ab-container {
    width: auto !important;
    max-width: none !important;
    margin-left: var(--ab-hero-pad) !important;
    margin-right: var(--ab-hero-pad) !important;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .ab-project-slide,
  .ab-video-slide {
    flex: 0 0 33.333% !important;
  }
}

@media (max-width: 1199px) {
  .ab-page-h1 {
    position: static;
    width: auto;
    height: auto;
    margin: 16px 16px 0;
    clip: auto;
    overflow: visible;
    white-space: normal;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    color: #0a375f;
    text-align: center;
  }
  .ab-plants-map__more > summary {
    display: block;
  }
  .ab-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
    justify-items: center;
  }
  .ab-stats li {
    display: grid;
    grid-template-rows: 92px auto;
    align-content: start;
    justify-items: center;
    gap: 8px;
    width: 100%;
    max-width: 168px;
    text-align: center;
  }
  .ab-stats li:nth-child(3) {
    grid-column: 1 / -1;
    justify-self: center;
    max-width: 220px;
  }
  .ab-stats img {
    max-width: min(104px, 28vw) !important;
    max-height: 88px !important;
  }
  .ab-mobile-intro .ab-weather[data-wp-mode='live'] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: auto;
    min-height: 0;
  }
  .ab-mobile-intro .ab-weather[data-wp-mode='empty'],
  .ab-mobile-intro .ab-weather[data-wp-mode='loading'] {
    display: block !important;
    visibility: visible !important;
  }
  .ab-document-slide {
    flex: 0 0 calc(100% / 3) !important;
  }
  .ab-project-slide,
  .ab-video-slide {
    flex: 0 0 50% !important;
  }
  .ab-partner-slide {
    flex: 0 0 33.333% !important;
    max-width: 33.333% !important;
  }
  .ab-review-slide {
    flex: 0 0 50% !important;
  }
  .ab-osm-map,
  .ab-plants-map .ab-osm-map {
    height: 320px;
  }
}

@media (max-width: 480px) {
  .ab-stats li {
    grid-template-rows: 84px auto;
    max-width: 148px;
  }
  .ab-stats li:nth-child(3) {
    max-width: 200px;
  }
  .ab-stats img {
    max-width: min(96px, 26vw) !important;
    max-height: 80px !important;
  }
}

@media (max-width: 640px) {
  .ab-video-slide,
  .ab-review-slide {
    flex: 0 0 100% !important;
  }
  .ab-partner-slide {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  .ab-document-slide {
    flex: 0 0 calc(100% / 3) !important;
    padding-left: 0 !important;
  }
  .ab-calculator__fields {
    grid-template-columns: 1fr !important;
  }
  .ab-calculator__fields > .ab-red-button {
    width: 100% !important;
  }
  .ab-mobile-quick {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
    padding: 14px 12px 16px;
    border: 1px solid #c5d3de;
    border-radius: 6px;
    background: #fff;
  }
  .ab-mobile-quick .ab-quick-form {
    max-width: none !important;
    width: 100% !important;
  }
  .ab-mobile-quick .ab-quick-grid {
    grid-template-columns: 1fr !important;
  }
  .ab-mobile-quick .ab-quick-form .ab-stepper-field,
  .ab-mobile-quick .ab-quick-form .ab-red-button {
    grid-column: 1 !important;
  }
  .ab-mobile-quick .ab-quick-form .ab-red-button {
    max-width: none !important;
    width: 100% !important;
  }
}

/* Резина: без горизонтального скролла, гибкие контейнеры */
html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: clip !important;
}
html {
  background-color: #f3f3f3 !important;
  background-image: url('/assets/site-bg.png?v=20261029u-soft') !important;
  background-size: 220px 220px !important;
  background-position: 0 0 !important;
  background-repeat: repeat !important;
}
body,
main,
.home-v2,
.info-shell {
  background-color: transparent !important;
  background-image: none !important;
}
html {
  --font-sans: Roboto, Arial, Helvetica, sans-serif;
}
body,
button,
input,
select,
textarea,
option {
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
}
.home-v2,
.info-shell,
.ab-container {
  max-width: 100%;
  min-width: 0;
}
.ab-container {
  width: min(1280px, calc(100% - clamp(20px, 4vw, 48px))) !important;
  box-sizing: border-box !important;
}
.ab-container img,
.ab-documents img,
.ab-projects img,
.ab-partners img,
.ab-videos img,
.ab-reviews img,
.ab-stats img {
  max-width: 100%;
  height: auto;
}
.ab-hero,
.ab-calculator,
.ab-price,
.ab-plants,
.ab-partners,
.ab-projects,
.ab-videos,
.ab-reviews,
.ab-documents,
.ab-footer {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.ab-price-cta {
  width: min(477px, 100%) !important;
}
.ab-delivery-map,
.ab-plants-map,
.ab-osm-map,
.ab-osm-delivery,
.ab-calculator__grid,
.ab-calculator__fields {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 1100px) {
  .ab-calculator__grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}
@media (max-width: 760px) {
  .ab-calculator__grid {
    grid-template-columns: 1fr !important;
  }
  .ab-osm-map,
  .ab-plants-map .ab-osm-map,
  .ab-yandex-map,
  .ab-yandex-frame,
  .ab-delivery-map__frame.ab-yandex-frame {
    height: min(360px, 55vw) !important;
    min-height: 280px !important;
  }
  .ab-partner-slide {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  .ab-document-slide {
    flex: 0 0 50% !important;
  }
}
@media (max-width: 480px) {
  .ab-partner-slide {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .ab-document-slide {
    flex: 0 0 100% !important;
  }
  .ab-header,
  .ab-header--inner {
    width: calc(100% - 16px) !important;
  }
}

/* Зелёный Venyoo скрыт — остаётся только бордовая .ab-feedback-widget */
#venyoo_button,
#venyoo-button,
.venyoo-button,
[id*="venyoo"],
[class*="venyoo"],
iframe[src*="venyoo.ru"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
}

.ab-feedback-widget {
  position: fixed;
  z-index: 70;
  right: 22px;
  bottom: 18px;
  width: min(280px, calc(100vw - 24px));
  height: 52px;
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 16px rgb(0 0 0 / 22%);
  transition: height .3s ease, width .3s ease;
}
.ab-feedback-widget.is-open {
  display: flex;
  flex-direction: column;
  width: min(340px, calc(100vw - 24px));
  height: min(440px, calc(100vh - 36px));
}
.ab-feedback-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 52px;
  width: 100%;
  min-height: 52px;
  padding: 7px 18px 7px 10px;
  border: 0;
  color: #fff;
  background: #b52b2b;
  text-align: left;
  cursor: pointer;
}
.ab-feedback-badge__avatar {
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: #b52b2b;
  background: #fff;
  font-size: 12px;
  font-weight: 800;
}
.ab-feedback-badge b,
.ab-feedback-badge small {
  display: block;
  color: #fff;
}
.ab-feedback-badge b { font-size: 13px; line-height: 1.2; }
.ab-feedback-badge small { margin-top: 2px; font-size: 10px; }
.ab-feedback-badge__close { display: none; margin-left: auto; font-size: 24px; line-height: 1; }
.ab-feedback-widget.is-open .ab-feedback-badge__close { display: block; }
.ab-delivery-map,
.ab-plants-map {
  min-height: 420px;
}
@media (max-width: 1199px) and (max-height: 800px) {
  .ab-feedback-widget:not(.is-open) {
    width: 52px;
    height: 52px;
  }
  .ab-feedback-widget:not(.is-open) .ab-feedback-badge b,
  .ab-feedback-widget:not(.is-open) .ab-feedback-badge small { display: none; }
}
@media (max-width: 1199px) {
  .ab-feedback-widget {
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
  }
  .ab-stats,
  .ab-mobile-intro,
  .ab-footer {
    padding-bottom: calc(76px + env(safe-area-inset-bottom));
  }
}

.ab-hero__manager {
  display: none !important;
}

.ab-hero__manager,
.home-v2 .ab-hero__manager,
.home-v2 button.ab-hero__manager {
  margin: 0;
  border: 0 !important;
  font: inherit;
  text-align: left;
  cursor: pointer;
  color: #fff;
  outline: none !important;
  box-shadow: 0 2px 10px rgb(0 0 0 / 16%) !important;
  -webkit-tap-highlight-color: transparent;
}
.ab-hero__manager:hover,
.ab-hero__manager:focus,
.ab-hero__manager:focus-visible,
.ab-hero__manager:active,
.home-v2 .ab-hero__manager:hover,
.home-v2 .ab-hero__manager:focus,
.home-v2 .ab-hero__manager:focus-visible,
.home-v2 button.ab-hero__manager:focus-visible {
  outline: none !important;
  filter: none !important;
  box-shadow: 0 2px 10px rgb(0 0 0 / 16%) !important;
}

/* Меню: стрелки в одной вертикальной колонке */
.ab-nav > a {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 40px !important;
  align-items: center !important;
  padding: 0 0 0 13px !important;
}
.ab-nav > a span {
  display: grid !important;
  place-items: center !important;
  width: 40px !important;
  height: 100% !important;
  min-height: 41px !important;
  font-size: 22px !important;
  line-height: 1 !important;
}
.ab-nav-item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 40px !important;
  align-items: stretch !important;
  padding-right: 0 !important;
  overflow: visible !important;
}
.ab-nav-item > a {
  width: auto !important;
  min-width: 0 !important;
  padding: 0 8px 0 13px !important;
}
.ab-nav-item__toggle {
  position: static !important;
  inset: auto !important;
  width: 40px !important;
  height: auto !important;
  min-height: 41px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  justify-content: center !important;
  justify-items: center !important;
  text-align: center !important;
  font-size: 22px !important;
  line-height: 1 !important;
}
.ab-nav-item > .ab-submenu {
  grid-column: 1 / -1 !important;
  /* Измерено: ширина раскрывающейся панели категорий = 226px */
  --ab-submenu-w: 226px;
  min-width: var(--ab-submenu-w) !important;
  width: var(--ab-submenu-w) !important;
  box-sizing: border-box !important;
}

/* Телефон/почта сдвигаются вправо на ширину подменю при наведении на «Продукция» */
@media (min-width: 1200px) {
  .ab-header:not(.ab-header--inner) > .ab-header__contacts {
    transition: transform 0.2s ease !important;
  }
  .ab-header:not(.ab-header--inner):has(.ab-nav-item:hover) > .ab-header__contacts,
  .ab-header:not(.ab-header--inner):has(.ab-nav-item.is-open) > .ab-header__contacts,
  .ab-header:not(.ab-header--inner):has(.ab-nav-item:focus-within) > .ab-header__contacts,
  .ab-header:not(.ab-header--inner) > .ab-header__contacts.is-submenu-open {
    transform: translateX(var(--ab-submenu-w, 226px)) !important;
  }
}

.ab-nav > a.ab-nav-link--plain {
  grid-template-columns: minmax(0, 1fr) !important;
  padding-right: 13px !important;
}

/* Плашка поднимается вместе с раскрывающимся окном */
.ab-feedback-chat {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: #fff;
  color: #0a375f;
}
.ab-feedback-chat__messages { flex: 1; min-height: 0; overflow: auto; padding: 14px; }
.ab-feedback-chat__messages p { max-width: 90%; margin: 0 0 10px; padding: 9px 11px; border-radius: 10px; background: #eef2f5; font-size: 13px; line-height: 1.35; }
.ab-feedback-chat__messages .ab-feedback-chat__sent { margin-left: auto; background: #f5dddd; }
.ab-feedback-chat__form { display: grid; gap: 8px; padding: 12px 14px 14px; border-top: 1px solid #e3e7eb; }
.ab-feedback-chat__form input,
.ab-feedback-chat__form textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #c9d3dc; border-radius: 6px; font: inherit; font-size: 13px; }
.ab-feedback-chat__form button { padding: 9px 12px; border: 0; border-radius: 6px; background: #b52b2b; color: #fff; cursor: pointer; }
.ab-feedback-chat__form button:disabled { opacity: .6; cursor: wait; }

/* Шапка: Roboto + панель до края */
.ab-header,
.ab-hero__aside,
.ab-quick-form,
.ab-weather {
  font-family: var(--font-ab-roboto), Roboto, Arial, Helvetica, sans-serif !important;
}
.ab-hero__shade {
  background: transparent !important;
}
.ab-hero__panel {
  display: block !important;
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: auto !important;
  pointer-events: none !important;
  background: rgb(6 14 28 / 46%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
  backdrop-filter: blur(16px) saturate(1.15);
  /* Контур как на макете: диагональ слева от полей, правый край ниже погоды, низ уходит влево */
  clip-path: polygon(
    calc(100% - var(--ab-hero-pad) - 367px - 4vw) 52%,
    100% 30%,
    100% 100%,
    calc(100% - var(--ab-hero-pad) - 367px - 14vw) 100%
  );
}
.ab-hero__panel svg {
  display: none !important;
}
.ab-hero {
  min-height: min(670px, 92vh) !important;
  overflow: hidden !important;
  background-color: #0a375f !important;
  background-image: image-set(
    url('/img/fone_header-bg2.webp?v=20261019fast') type('image/webp'),
    url('/img/fone_header-bg2.jpg?v=20261019fast') type('image/jpeg')
  ) !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
@media (min-width: 901px) {
  .ab-hero {
    --ab-hero-h: min(670px, 92vh);
    background-size: cover !important;
    background-position: center center !important;
  }
}
@media (min-width: 1440px) {
  .ab-hero {
    min-height: min(720px, 88vh) !important;
  }
}
@media (min-width: 1920px) {
  .ab-hero {
    min-height: min(780px, 85vh) !important;
  }
}
.ab-hero__image { display: none !important; }
.ab-hero__diamonds { display: none !important; }
.ab-hero__image {
  object-fit: cover !important;
  object-position: 42% 38% !important;
}
@media (min-width: 1440px) and (max-width: 1919px) {
  .ab-hero { --ab-hero-h: min(720px, 78vh); min-height: var(--ab-hero-h) !important; }
  .ab-hero__image { object-position: 38% 34% !important; }
}
@media (min-width: 1920px) and (max-width: 2559px) {
  .ab-hero { --ab-hero-h: min(820px, 72vh); min-height: var(--ab-hero-h) !important; }
  .ab-hero__image { object-position: 36% 32% !important; }
}
@media (min-width: 2560px) {
  .ab-hero { --ab-hero-h: min(920px, 68vh); min-height: var(--ab-hero-h) !important; }
  .ab-hero__image { object-position: 34% 30% !important; }
}
/* Оконный режим: низкое окно не обрезает форму. На 1920×1080 это правило не срабатывает. */
@media (min-width: 1200px) and (max-height: 760px) {
  .ab-hero { min-height: 640px !important; }
}
.ab-logo {
  max-width: 100% !important;
  overflow: visible !important;
}
.ab-logo img {
  width: min(245px, 100%) !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}
.ab-header > .ab-header__logo {
  overflow: visible !important;
}
/* Погода в шапке: стабильный слот, без display:none */
.ab-hero__aside > .ab-weather,
.ab-hero__aside > .ab-weather[data-wp-mode='live'],
.ab-hero__aside > .ab-weather[data-wp-mode='empty'],
.ab-hero__aside > .ab-weather[data-wp-mode='loading'] {
  display: block !important;
  width: min(246px, 100%) !important;
  max-width: 246px !important;
  height: auto !important;
  min-height: 0 !important;
  margin-inline: auto !important;
  padding: 6px 8px !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.ab-weather-now {
  display: grid !important;
  grid-template-rows: minmax(0, 1fr) !important;
  align-content: stretch !important;
  justify-items: stretch !important;
  gap: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
}
.ab-weather-now__top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  align-items: stretch !important;
  column-gap: 7px !important;
  row-gap: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
.ab-weather-now__icon {
  flex: 0 0 auto !important;
  width: 48px !important;
  height: 48px !important;
  object-fit: contain !important;
}
.ab-weather-now__temp {
  flex: 0 0 auto !important;
  color: #0a375f !important;
  font-size: 30px !important;
  line-height: 1 !important;
  text-shadow: none !important;
}
.ab-weather-now__label {
  display: block !important;
  min-width: 0 !important;
  color: #005aa5 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
.ab-weather-now__card {
  min-height: 53px !important;
  padding: 5px 7px !important;
  border: 0 !important;
  border-left: 3px solid #e31e24 !important;
  border-radius: 0 !important;
  background: rgb(255 255 255 / 92%) !important;
}
.ab-weather-now__hint {
  margin: 0 !important;
  color: #005aa5 !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1.22 !important;
}
.ab-weather-now__source {
  justify-self: end !important;
  margin-top: -2px !important;
  color: #005aa5 !important;
  font-size: 8px !important;
  line-height: 1 !important;
  text-decoration: none !important;
  opacity: .72 !important;
}
.ab-quick-form .ab-eyebrow {
  font-size: 17px !important;
  font-weight: 800 !important;
  text-align: center !important;
}
.ab-quick-form .ab-field > span {
  text-align: center;
}
/* Только на фоне фото: мобильная форма стоит на белом */
.ab-hero__aside .ab-quick-form .ab-eyebrow,
.ab-hero__aside .ab-quick-form .ab-field > span {
  color: #fff !important;
}
.home-v2 .ab-quick-grid input,
.home-v2 .ab-quick-grid select,
.ab-quick-form .ab-stepper input {
  font-size: 16px !important;
}
/* Быстрый заказ: все контролы одной высоты и полной ширины ячейки */
.ab-quick-form {
  --ab-quick-control-h: 40px;
}
.ab-quick-form .ab-quick-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.ab-quick-form .ab-quick-grid > .ab-field,
.ab-quick-form .ab-quick-grid > .ab-stepper-field {
  width: 100% !important;
  min-width: 0 !important;
}
.ab-quick-form .ab-quick-grid > .ab-field > input,
.ab-quick-form .ab-quick-grid > .ab-field > select,
.ab-quick-form .ab-quick-grid > .ab-field--filler .ab-filler-box,
.ab-quick-form .ab-quick-grid > .ab-field--filler .ab-filler-skin,
.ab-quick-form .ab-quick-grid > .ab-stepper-field .ab-stepper {
  width: 100% !important;
  height: var(--ab-quick-control-h) !important;
  min-height: var(--ab-quick-control-h) !important;
  max-height: var(--ab-quick-control-h) !important;
  box-sizing: border-box !important;
}
.ab-quick-form .ab-field--filler .ab-filler-box {
  display: block !important;
  position: relative !important;
}
.ab-quick-form .ab-filler-skin {
  display: flex !important;
  align-items: center !important;
  padding: 0 30px 0 10px !important;
}
.ab-quick-form .ab-filler-skin__top {
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}
.ab-quick-form .ab-stepper input {
  height: 100% !important;
  min-height: 0 !important;
}
.ab-quick-form .ab-stepper button {
  height: 100% !important;
  min-height: 0 !important;
}
@media (min-width: 901px) and (max-width: 1100px) {
  .ab-logo img {
    width: min(200px, 100%) !important;
    max-width: none !important;
  }
  .ab-header > .ab-header__logo {
    min-width: 160px !important;
    padding-inline: 4px !important;
  }
}
@media (min-width: 1920px) {
  .ab-logo img { width: min(260px, 100%) !important; }
  .ab-socials a, .ab-socials button { width: 44px !important; height: 44px !important; }
  .ab-socials .ab-soc { width: 41px !important; height: 41px !important; }
  .ab-socials svg { width: 22px !important; height: 22px !important; }
}

/* Фирменные иконки соцсетей шапки (soc-*.svg от клиента, 2026-10-02):
   красятся маской в currentColor — белый на тёмной шапке, navy на белой мобильной.
   CSS-рамка кнопок снята: рамка уже в самих SVG. */
.ab-socials a, .ab-socials button { border: 0 !important; border-radius: 4px !important; }
.ab-socials .ab-soc {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  background-color: currentColor !important;
  -webkit-mask: var(--soc) center / contain no-repeat !important;
  mask: var(--soc) center / contain no-repeat !important;
}
.ab-socials .s-loop { --soc: url('/img/soc-loop.svg?v=20261009') !important; }
.ab-socials .s-mail { --soc: url('/img/soc-mail.svg') !important; }
.ab-socials .s-phone {
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box !important;
  border: 1.4px solid currentColor !important;
  border-radius: 5px !important;
  background: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}
.ab-socials .s-phone svg {
  width: 16px !important;
  height: 16px !important;
  stroke: currentColor !important;
}
.ab-socials .s-max { --soc: url('/img/soc-max.svg') !important; }
.ab-socials .s-tg { --soc: url('/img/soc-tg.svg') !important; }
.contact-card a[href*="t.me"] .ab-contact-tg {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  background-color: #ed1c24;
  -webkit-mask: url('/img/soc-tg.svg') center / contain no-repeat;
  mask: url('/img/soc-tg.svg') center / contain no-repeat;
}
.ab-socials .s-lk {
  --soc: url('/img/soc-lk.png') !important;
  -webkit-mask-source-type: luminance !important;
  mask-mode: luminance !important;
}
@media (max-width: 900px) {
  .ab-socials .ab-soc { width: 30px !important; height: 30px !important; }
}
@media (max-width: 480px) {
  .ab-socials .ab-soc { width: 27px !important; height: 27px !important; }
}
@media (max-width: 360px) {
  .ab-socials .ab-soc { width: 34px !important; height: 34px !important; }
}

/* Калькулятор: без синей рамки при фокусе поля */
.ab-calculator a:focus,
.ab-calculator a:focus-visible,
.ab-calculator button:focus,
.ab-calculator button:focus-visible,
.ab-calculator input:focus,
.ab-calculator input:focus-visible,
.ab-calculator select:focus,
.ab-calculator select:focus-visible,
.ab-calculator textarea:focus,
.ab-calculator textarea:focus-visible,
.ab-calculator .ab-stepper:focus-within {
  outline: none !important;
  box-shadow: none !important;
}

/* Закреплённое меню: без тёмно-синей подложки на всех страницах */
.ab-header > .ab-nav {
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
/* Меню в grid-сцене ≥1200 задано выше; здесь только компакт после скролла */

/* Главная: после первого экрана меню сворачивается в «бургер».
   Только в десктопной зоне ≥1200: ниже Compact-шапка с .ab-menu-button,
   а этот fixed-бургер перекрывал его после resize (hero display:none →
   ab-nav-compact) и «открывал» скрытый .ab-nav вместо #mobile-navigation. */
.ab-nav-burger {
  display: none;
}
@media (min-width: 1200px) {
  html.ab-nav-compact .ab-nav-burger {
    position: fixed;
    z-index: 1001;
    top: 18px;
    left: var(--ab-hero-pad);
    display: grid;
    place-items: center;
    width: 41px;
    height: 41px;
    padding: 0;
    border: 1px solid rgb(10 55 95 / 45%);
    border-radius: 8px;
    background: #fff;
    color: #0a375f;
    cursor: pointer;
    box-shadow: 0 3px 10px rgb(0 0 0 / 12%);
  }
  html.ab-nav-compact .ab-header:not(.ab-header--inner) > .ab-nav {
    position: fixed !important;
    top: 76px !important;
    left: var(--ab-hero-pad) !important;
    width: var(--ab-nav-w) !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  /* После ухода меню в fixed колонка 1 сцены остаётся зарезервированной (definite track). */
  html.ab-nav-compact.ab-nav-open .ab-header:not(.ab-header--inner) > .ab-nav {
    transition: opacity 0.2s ease !important;
  }
  html.ab-nav-compact:not(.ab-nav-open) .ab-header:not(.ab-header--inner) > .ab-nav {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: none !important;
  }
}

/* Боковое меню: без синей подложки при наведении/открытии; мобильная панель — navy в media ниже */
.ab-nav a:hover,
.ab-nav-item > a:hover,
.ab-nav-item__toggle:hover,
.ab-nav-item:hover,
.ab-nav-item.is-open {
  background: transparent !important;
}

/* Шапка: белый логотип на тёмном фоне; на мобильном шапка белая — цветной логотип */
.ab-header .ab-logo__mobile { display: none !important; }
.ab-header .ab-logo__desk { display: inline-block !important; }
@media (max-width: 900px) {
  .ab-header .ab-logo__desk { display: none !important; }
  .ab-header .ab-logo__mobile { display: inline-block !important; }
}

/* Погода по макету: температура + иконка Яндекса, ниже красная карточка «заголовок + подсказка» */
.ab-weather,
.ab-hero__aside > .ab-weather,
.ab-hero__aside > .ab-weather[data-wp-mode] {
  box-sizing: border-box !important;
  width: min(246px, 100%) !important;
  max-width: 246px !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 8px 10px 10px !important;
  overflow: hidden !important;
  border: 2px solid #0a375f !important;
  border-radius: 8px !important;
  color: #0a375f !important;
  background: #fff !important;
}
.ab-weather .ab-weather-now {
  display: grid !important;
  grid-template-rows: minmax(0, 1fr) !important;
  align-content: stretch !important;
  gap: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
}
.ab-weather .ab-weather-now__top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  align-items: stretch !important;
  column-gap: 8px !important;
  row-gap: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
.ab-weather .ab-weather-now__temp {
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #0a375f !important;
  text-shadow: none !important;
}
.ab-weather .ab-weather-now__icon,
.ab-weather .ab-weather-now__icon-placeholder {
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
}
.ab-weather .ab-weather-now__card {
  display: grid !important;
  gap: 3px !important;
  min-height: 0 !important;
  padding: 7px 9px !important;
  border: 1.5px solid #e31e24 !important;
  border-radius: 6px !important;
  background: #fff !important;
}
.ab-weather .ab-weather-now__title {
  display: block !important;
  color: #e31e24 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
.ab-weather .ab-weather-now__hint {
  margin: 0 !important;
  color: #0a375f !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}
.ab-weather .ab-weather-now__label,
.ab-weather .ab-weather-now__city,
.ab-weather .ab-weather-now__source {
  display: none !important;
}
/* Погодный блок без текста-описания (по указанию клиента 2026-10-02): только
   населённый пункт с селектором, значок погоды и градусы. Карточку не рисуем. */
.ab-weather .ab-weather-now__card,
.ab-weather .ab-weather-now__title,
.ab-weather .ab-weather-now__hint {
  display: none !important;
}
.ab-weather .ab-weather-now__place {
  color: #0a375f !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
/* Выбор населённого пункта 2026-10-02: место кликабельно (по клику поле ввода с даталистом,
   список — /assets/ab-places.json, Москва + вся Московская область) */
.ab-weather .ab-weather-now__place {
  overflow: hidden !important;
  min-width: 0 !important;
  cursor: pointer !important;
  text-overflow: ellipsis !important;
  background: none !important;
  /* Равный зазор город↔пунктир↔градусы */
  padding: 0 0 10px !important;
  border: 0 !important;
  border-bottom: 1px dashed rgb(76 121 155 / 55%) !important;
  border-radius: 0 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: inherit !important;
  text-align: left !important;
}
.ab-weather .ab-weather-now__place-input {
  flex: 1 1 90px !important;
  min-width: 0 !important;
  max-width: 132px !important;
  padding: 0 0 10px !important;
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #0a375f !important;
  border-radius: 0 !important;
  color: #0a375f !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  text-align: left !important;
}
/* Панель селектора населённого пункта (openPlacePicker, на body — fixed),
   чтобы панель не резалась overflow:hidden погодного блока */
.ab-places-picker {
  position: fixed !important;
  z-index: 10001 !important;
  min-width: 240px !important;
  box-sizing: border-box !important;
  border: 2px solid #0a375f !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 10px 30px rgb(10 55 95 / 18%) !important;
  overflow: hidden !important;
  color: #0a375f !important;
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
}
.ab-places-picker__input {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  height: 40px !important;
  padding: 0 10px !important;
  border: 0 !important;
  border-bottom: 1.5px solid #dfe6ec !important;
  border-radius: 0 !important;
  color: #0a375f !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  outline: none !important;
  background: #fff !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.ab-places-picker__list {
  margin: 0 !important;
  padding: 4px !important;
  list-style: none !important;
  max-height: 248px !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.ab-places-picker__option {
  padding: 9px 10px !important;
  color: #0a375f !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  border-radius: 5px !important;
  background: transparent !important;
}
.ab-places-picker__option.is-active,
.ab-places-picker__option:hover {
  background: #eaf1f7 !important;
}
.ab-places-picker__empty {
  padding: 12px 10px !important;
  color: #7a8a99 !important;
  font-size: 13px !important;
}
.ab-weather .ab-weather-now__place-caret {
  flex: 0 0 auto !important;
  color: #6b8ba7 !important;
  font-size: 10px !important;
  line-height: 1 !important;
  margin-left: -4px !important;
  margin-top: 1px !important;
}
@media (max-width: 900px) {
  .ab-mobile-intro .ab-weather,
  .ab-mobile-intro .ab-weather[data-wp-mode] {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Калькулятор: «Отправить заявку» = цвет «Перезвоните мне» / быстрый заказ */
.ab-calculator .ab-red-button,
.ab-calculator__fields > .ab-red-button,
.ab-calculator .ab-red-button:disabled,
.ab-calculator .ab-red-button[disabled],
.ab-calculator__fields > .ab-red-button:disabled,
.ab-calculator__fields > .ab-red-button[disabled] {
  background: #b52b2b !important;
  background-image: none !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #fff !important;
}
.ab-calculator .ab-red-button:hover:not(:disabled),
.ab-calculator .ab-red-button:focus-visible:not(:disabled),
.ab-calculator__fields > .ab-red-button:hover:not(:disabled),
.ab-calculator__fields > .ab-red-button:focus-visible:not(:disabled) {
  background: #9a2424 !important;
  color: #fff !important;
}

/* Калькулятор: наполнитель и дата по центру поля */
.ab-calculator .ab-filler-box .ab-filler-skin,
.ab-calculator .ab-field--filler .ab-filler-skin {
  justify-content: center !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
}
.ab-calculator .ab-filler-skin__top {
  width: 100% !important;
  text-align: center !important;
}
.ab-calculator input[type='date'],
.ab-calculator input[name='date'] {
  text-align: center !important;
  text-align-last: center !important;
}
.ab-calculator input[type='date']::-webkit-datetime-edit,
.ab-calculator input[type='date']::-webkit-datetime-edit-fields-wrapper,
.ab-calculator input[type='date']::-webkit-date-and-time-value {
  width: 100% !important;
  text-align: center !important;
}

/* Наполнитель: в форме только «Гравий» / «Гранит», высота как у соседних полей. */
.ab-field--filler .ab-filler-box { position: relative !important; min-width: 0 !important; }
.ab-field--filler .ab-filler-box select {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  opacity: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  cursor: pointer !important;
  z-index: 2;
}
.ab-filler-box .ab-filler-skin {
  position: relative !important;
  width: 100% !important;
  min-height: var(--ab-quick-control-h, 40px) !important;
  height: var(--ab-quick-control-h, 40px) !important;
  max-height: var(--ab-quick-control-h, 40px) !important;
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  padding: 0 30px 0 10px !important;
  border: 1px solid #6b8ba7 !important;
  border-radius: 3px !important;
  background: #fff !important;
  box-sizing: border-box !important;
}
.ab-quick-form .ab-field input,
.ab-quick-form .ab-field select,
.ab-quick-form .ab-field textarea,
.ab-quick-form .ab-stepper,
.ab-quick-form .ab-filler-skin,
.ab-quick-form .ab-filler-box .ab-filler-skin {
  border-radius: 6px !important;
}
.ab-filler-box .ab-filler-skin__top {
  color: #0a375f !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}
.ab-filler-box .ab-filler-skin__sub {
  display: none !important;
}
.ab-filler-box .ab-filler-skin::after {
  content: '' !important;
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  border: 4.5px solid transparent !important;
  border-top: 6px solid #6b8ba7 !important;
}
/* Калькулятор: стрелки «Марка» и «Класс» как у «Наполнителя». */
#calculator .ab-field:not(.ab-field--filler) select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M0 0h9L4.5 6z' fill='%236b8ba7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 9px 6px !important;
}
/* Быстрая форма: без синей окантовки при фокусе полей (2026-10-02);
   рамка скина «Наполнителя» при фокусе не меняется */
.ab-quick-form .ab-filler-box:focus-within .ab-filler-skin {
  border-color: #6b8ba7 !important;
}
.ab-quick-form input:focus,
.ab-quick-form input:focus-visible,
.ab-quick-form select:focus,
.ab-quick-form select:focus-visible,
.ab-quick-form textarea:focus,
.ab-quick-form textarea:focus-visible,
.ab-quick-form .ab-stepper:focus-within {
  outline: none !important;
  box-shadow: none !important;
}

/* Виджет погоды шире (246 → 300px) и без обрезания названий НП (2026-10-03
   по указанию клиента): верхняя строка — двухрядная грид-структура:
   сверху название места + каретка (длинные названия переносятся, не режутся),
   снизу температура + значок. Самое длинное название МО
   («Посёлок Опытно-Показательного Хозяйства Ермолино») умещается полностью. */
.ab-weather,
.ab-hero__aside > .ab-weather,
.ab-hero__aside > .ab-weather[data-wp-mode] {
  width: min(300px, 100%) !important;
  max-width: 300px !important;
}
.ab-weather .ab-weather-now__top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  /* Город и градусы на равном расстоянии от пунктира. */
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items: stretch !important;
  column-gap: 8px !important;
  row-gap: 0 !important;
  min-height: 44px !important;
  height: 100% !important;
}
.ab-weather .ab-weather-now__place {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: end !important;
  white-space: normal !important;
  text-overflow: clip !important;
  overflow: visible !important;
  line-height: 1.08 !important;
  word-break: break-word !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}
.ab-weather .ab-weather-now__place {
  padding-right: 1.15em !important;
}
.ab-weather .ab-weather-now__place-caret {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  align-self: center !important;
  flex: 0 0 auto !important;
}
.ab-weather .ab-weather-now__temp {
  grid-column: 1 !important;
  grid-row: 2 !important;
  justify-self: start !important;
  /* Посередине между пунктиром и низом виджета */
  align-self: center !important;
  margin: 0 !important;
}
/* Иконка на всю высоту виджета, по вертикали по центру */
.ab-weather .ab-weather-now__icon,
.ab-weather .ab-weather-now__icon-placeholder {
  grid-column: 2 !important;
  grid-row: 1 / -1 !important;
  justify-self: end !important;
  align-self: center !important;
}

/* Гео-посадочные по НП (/geo/{слаг}/, 2026-10-03): город в виджете раскрывает
   селектор, посадочная страница — Ctrl/Shift-клик или через список селектора */
.ab-weather .ab-weather-now__place {
  text-decoration: none !important;
  cursor: pointer !important;
}
.ab-weather .ab-weather-now__place:hover {
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}
.ab-places-picker__option a {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  color: inherit !important;
  font: inherit !important;
  text-decoration: none !important;
}
.ab-places-picker__option a:hover,
.ab-places-picker__option.is-active a {
  color: inherit !important;
  text-decoration: none !important;
}

/* Кнопка «позвонить» в мобильной шапке (static-ui.js добавляет в .ab-socials):
   тап — набор номера tel:+74951308888. На десктопе номер уже стоит в контактах. */
.ab-header__phone-tel {
  display: none !important;
}
@media (min-width: 1200px) {
  .ab-header:not(.ab-header--inner) > .ab-socials > .ab-header__phone-tel {
    display: inline-grid !important;
    place-items: center !important;
    color: #fff !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-socials > .ab-header__phone-tel .ab-soc {
    width: 34px !important;
    height: 34px !important;
  }
}
/* Компактная шапка ≤1199: телефон виден на всём диапазоне без desktop-контактов */
@media (max-width: 1199px) {
  .ab-header .ab-header__phone-tel,
  .ab-header--inner .ab-header__phone-tel {
    display: inline-grid !important;
    place-items: center !important;
    color: #0A375F !important;
    text-decoration: none !important;
  }
  .ab-header .ab-header__phone-tel .ab-soc {
    width: 34px !important;
    height: 34px !important;
  }
}
@media (max-width: 360px) {
  .ab-header .ab-header__phone-tel { width: 36px !important; height: 36px !important; }
  .ab-header .ab-header__phone-tel .ab-soc { width: 34px !important; height: 34px !important; }
}

/* Быстрый заказ на гео-странице (geo/index.php заворачивает НП в .ab-eyebrow__city):
   город — единый inline-block. Влезает после «Быстрый заказ бетона —» — остаётся в строке;
   не влезает — переносится ЦЕЛИКОМ на новую строку (не рвётся с префиксом посередине),
   а если длиннее и новой строки — внутри себя переносится по словам. */
.ab-quick-form .ab-eyebrow .ab-eyebrow__city {
  display: inline-block !important;
}

/* Мобильный бургер закреплён при прокрутке (2026-10-03): как и в десктопе,
   где после первого экрана бургер прилипает к углу (html.ab-nav-compact
   .ab-nav-burger), мобильный .ab-menu-button прилипает, когда шапка целиком
   ушла за верхний край. Класс ab-burger-fixed на <html> ставит static-ui.js
   (bindBurgerPin). Селектор с html. и .ab-header бьёт правила
   .ab-header--inner .ab-menu-button у бандла и calc-layout-fix.css. */
@media (max-width: 900px) {
  html.ab-burger-fixed .ab-header .ab-menu-button {
    position: fixed;
    z-index: 1001;
    top: 10px;
    left: max(12px, env(safe-area-inset-left));
    display: grid !important;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid rgb(10 55 95 / 45%);
    border-radius: 8px;
    background: #fff;
    color: #0a375f;
    cursor: pointer;
    box-shadow: 0 3px 10px rgb(0 0 0 / 12%);
  }
}

/* Внутренние страницы (calcs/kontakty/lk — .ab-header--inner): раньше
   .ab-menu-button прятался на них на ВСЕХ ширинах (calc-layout-fix.css) —
   на телефоне меню не было вовсе. Возвращаем бургер на внутренних шапках
   на узких экранах: кнопка и drawer #mobile-navigation уже есть в разметке,
   bindMenu в static-ui.js открывает его по клику. Файл грузится позже
   calc-layout-fix.css, поэтому при равной специфичности (0,2,0) побеждает. */
@media (max-width: 900px) {
  .ab-header--inner .ab-header__lead {
    display: flex !important;
    align-items: center;
    justify-self: start;
    grid-column: 1;
    grid-row: 1;
  }
  /* поиск в мобильной шапке внутренних страниц по-прежнему не показываем */
  .ab-header--inner .ab-header__search-mobile {
    display: none !important;
  }
  .ab-header--inner .ab-menu-button {
    display: grid !important;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 0;
    color: #E31E24;
    background: transparent;
    cursor: pointer;
  }
}

/* Контакты/лого/соцсети на главной ≥1200 — в колонке 2 grid-сцены (см. блок выше). */

/* PDF 25.09 п.2: иконки преимуществ — влево к меню, временно прозрачные */
@media (min-width: 1200px) {
  .ab-hero__advantages {
    left: var(--ab-hero-pad) !important;
    bottom: 56px !important;
    width: auto !important;
    grid-template-columns: repeat(4, 76px) !important;
    gap: clamp(6px, 0.8vw, 10px) !important;
  }
  .ab-hero__advantage img {
    width: 76px !important;
    height: 76px !important;
    max-width: none !important;
    background: transparent !important;
    object-fit: contain;
  }
  /* Позицию задаёт .ab-hero__aside > .ab-hero__track-order + JS (--ab-track-top).
     Не ставим bottom:28px — иначе конфликтует с выравниванием трёх зазоров. */
  .ab-hero__track-order {
    position: absolute !important;
    z-index: 5 !important;
    left: calc(100% - var(--ab-hero-pad) - min(367px, 100% - var(--ab-hero-pad) * 2)) !important;
    right: auto !important;
    bottom: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    text-decoration: none !important;
    text-shadow: 0 1px 3px rgb(0 0 0 / 45%) !important;
  }
  .ab-hero__track-order:hover,
  .ab-hero__track-order:focus-visible {
    color: #fff !important;
    text-decoration: underline !important;
  }
}

/* PDF 25.09 п.3: выравнивание полей быстрого заказа */
.ab-quick-form .ab-quick-grid {
  align-items: start !important;
  column-gap: 14px !important;
  row-gap: 10px !important;
}
.ab-quick-form .ab-quick-grid > .ab-field,
.ab-quick-form .ab-quick-grid > .ab-stepper-field {
  width: 100% !important;
  min-width: 0 !important;
}
.ab-quick-form .ab-quick-grid > .ab-red-button {
  width: 100% !important;
  align-self: end !important;
}

/* Поиск: ширина задаётся JS от лупы до ЛК (не шире ряда иконок, не наезжает на погоду) */
.ab-search {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
.ab-search form {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 7px !important;
}
.ab-search input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  border: 1px solid rgb(10 55 95 / 45%) !important;
  border-radius: 3px !important;
  color: #0a375f !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}
.ab-search input:focus,
.ab-search input:focus-visible {
  border-color: #0a375f !important;
  outline: none !important;
  box-shadow: none !important;
}
/* Кнопка «Найти» — как пункты меню: чёрный текст, при наведении белый */
.ab-search button {
  flex: 0 0 auto !important;
  min-height: 40px !important;
  padding: 0 12px !important;
  border: 1px solid rgb(10 55 95 / 45%) !important;
  border-radius: 8px !important;
  color: #0a375f !important;
  background: #fff !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  box-shadow: 0 3px 10px rgb(0 0 0 / 12%) !important;
  cursor: pointer !important;
}
.ab-search button:hover,
.ab-search button:focus-visible {
  color: #fff !important;
  /* Как меню на тёмном фоне: белый текст; на белой панели — navy-заливка */
  background: #0a375f !important;
  border-color: #0a375f !important;
  outline: none !important;
}

/* Компактная шапка на планшетах и телефонах. Полная десктопная сетка с
   меню, контактами, логотипом и соцсетями устойчиво помещается от 1200px;
   ниже используем бургер и drawer, чтобы элементы не накладывались. */
@media (max-width: 1199px) {
  .ab-hero,
  .ab-hero__aside {
    display: none !important;
  }
  .ab-mobile-intro {
    display: grid !important;
    gap: 18px;
  }

  /* Desktop sticky-burger must never steal clicks in the mobile-nav zone. */
  .ab-nav-burger {
    display: none !important;
  }

  .ab-header,
  .ab-header--inner {
    position: sticky !important;
    z-index: 1000 !important;
    top: 0 !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-areas: none !important;
    align-items: center !important;
    width: calc(100% - 28px) !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    padding: 10px 0 !important;
    color: #0a375f !important;
    background: #fff !important;
    box-shadow: 0 2px 10px rgb(10 55 95 / 10%);
  }

  .ab-header > .ab-nav,
  .ab-header--inner > .ab-nav,
  .ab-header > .ab-header__contacts,
  .ab-header--inner > .ab-header__contacts {
    display: none !important;
    position: static !important;
    width: auto !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
  }

  .ab-header__lead,
  .ab-header--inner .ab-header__lead {
    display: flex !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-items: center !important;
    gap: 2px !important;
    justify-self: start !important;
  }

  .ab-menu-button,
  .ab-header--inner .ab-menu-button,
  .ab-header__search-mobile {
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .ab-menu-button,
  .ab-header--inner .ab-menu-button { color: #e31e24 !important; }
  .ab-header__search-mobile { color: #0a375f !important; }

  .ab-header > .ab-header__logo,
  .ab-header--inner > .ab-header__logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    transform: translate(-50%, -50%) !important;
    grid-column: auto !important;
    grid-row: auto !important;
    justify-self: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: max-content !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 2 !important;
    pointer-events: auto !important;
  }

  .ab-header .ab-logo__desk { display: none !important; }
  .ab-header .ab-logo__mobile { display: inline-block !important; }
  .ab-header .ab-logo img { width: min(168px, 46vw) !important; max-width: none !important; height: auto !important; }
  @media (max-width: 520px) {
    .ab-header > .ab-header__logo,
    .ab-header--inner > .ab-header__logo {
      position: relative !important;
      left: auto !important;
      top: auto !important;
      transform: none !important;
      grid-column: 2 !important;
      width: 100% !important;
      justify-content: center !important;
    }
    .ab-header .ab-logo img { width: min(112px, 100%) !important; }
    .ab-socials a,
    .ab-socials button { width: 32px !important; height: 32px !important; }
  }

  .ab-header > .ab-socials,
  .ab-header--inner > .ab-socials {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    margin: 0 !important;
    gap: 4px !important;
    z-index: auto !important;
  }

  .ab-socials button.ab-socials__search { display: none !important; }
  .ab-socials a,
  .ab-socials button { width: 36px !important; height: 36px !important; color: #0a375f !important; }
  .ab-socials .ab-soc { width: 30px !important; height: 30px !important; }

  .ab-drawer {
    position: static !important;
    z-index: auto !important;
    inset: auto !important;
    display: none !important;
    align-content: start !important;
    gap: clamp(12px, 3vw, 22px) !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: clamp(14px, 3.5vw, 22px) clamp(14px, 4vw, 22px) !important;
    padding-bottom: max(clamp(14px, 3.5vw, 22px), env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #fff !important;
    background: #0a375f !important;
    transform: none !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .ab-drawer.is-open,
  .ab-drawer[open] {
    display: grid !important;
  }

  .ab-drawer::backdrop {
    display: none !important;
  }

  .ab-drawer .ab-logo {
    display: block !important;
    width: min(220px, 70vw) !important;
    margin-inline: auto !important;
  }

  .ab-drawer .ab-logo img {
    width: 100% !important;
    height: auto !important;
  }

  @media (min-width: 640px) {
    .ab-drawer {
      padding-inline: clamp(18px, 4vw, 28px) !important;
    }
    .ab-drawer nav {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      column-gap: 12px !important;
    }
    .ab-drawer-products {
      grid-column: 1 / -1 !important;
    }
  }
}

@media (max-width: 480px) {
  .ab-header,
  .ab-header--inner { width: calc(100% - 16px) !important; gap: 4px !important; }
  .ab-header .ab-logo img { width: min(118px, 38vw) !important; }
  .ab-socials a,
  .ab-socials button { width: 32px !important; height: 32px !important; }
  .ab-socials .ab-soc { width: 27px !important; height: 27px !important; }
}

/* Меню и виджет погоды: матовое стекло, белый абрис и белый текст */
.ab-nav > a,
.ab-nav-item,
.ab-submenu-list,
html.ab-nav-compact .ab-nav-burger,
.ab-weather,
.ab-hero__aside > .ab-weather,
.ab-hero__aside > .ab-weather[data-wp-mode] {
  color: #fff !important;
  background: rgb(255 255 255 / 18%) !important;
  border: 1px solid #fff !important;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 55%), 0 8px 24px rgb(0 0 0 / 18%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
}
.ab-nav > a,
.ab-nav-item > a,
.ab-nav-item__toggle,
.ab-nav a span,
.ab-submenu a,
.ab-weather .ab-weather-now__temp,
.ab-weather .ab-weather-now__place,
.ab-weather .ab-weather-now__place-input,
.ab-weather .ab-weather-now__place-caret,
.ab-weather .ab-weather-now__label,
.ab-weather .ab-weather-now__city,
.ab-weather .ab-weather-now__source {
  color: #fff !important;
}
/* Иконка Яндекса цветная → белая, как градусы и город */
.ab-weather .ab-weather-now__icon {
  filter: brightness(0) invert(1) !important;
}
.ab-nav > a:hover,
.ab-nav-item:hover,
.ab-nav-item.is-open,
.ab-submenu a:hover,
.ab-submenu a:focus-visible {
  color: #0a375f !important;
  background: #fff !important;
  border-color: #0a375f !important;
}
html.ab-nav-compact .ab-nav-burger:hover {
  color: #fff !important;
  background: #0a375f !important;
  border-color: #0a375f !important;
}
.ab-nav-item > a,
.ab-nav-item__toggle,
.ab-nav-item:hover > a,
.ab-nav-item.is-open > a,
.ab-nav-item:hover .ab-nav-item__toggle,
.ab-nav-item.is-open .ab-nav-item__toggle,
.ab-submenu a {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.ab-nav > a:hover,
.ab-nav > a:hover span,
.ab-nav-item:hover > a,
.ab-nav-item.is-open > a,
.ab-nav-item:hover .ab-nav-item__toggle,
.ab-nav-item.is-open .ab-nav-item__toggle,
.ab-submenu a:hover,
.ab-submenu a:focus-visible {
  color: #0a375f !important;
}
@media (min-width: 1200px) {
  .ab-header .ab-socials a:hover,
  .ab-header .ab-socials button:hover,
  .ab-header:not(.ab-header--inner) > .ab-socials > .ab-header__phone-tel:hover {
    color: #0a375f !important;
    background: #fff !important;
  }
}
@media (max-width: 1199px) {
  .ab-header .ab-socials a:hover,
  .ab-header .ab-socials button:hover,
  .ab-header .ab-header__search-mobile:hover,
  .ab-header .ab-header__phone-tel:hover,
  .ab-header--inner .ab-header__phone-tel:hover {
    color: #fff !important;
    background: #0a375f !important;
  }
  .ab-header .ab-menu-button:hover,
  .ab-header--inner .ab-menu-button:hover {
    color: #fff !important;
    background: #e31e24 !important;
  }
}
.ab-weather .ab-weather-now__place {
  border-bottom: 1px dashed rgb(255 255 255 / 75%) !important;
}
.ab-weather .ab-weather-now__place-input {
  background: transparent !important;
  border-bottom-color: #fff !important;
}
.ab-weather .ab-weather-now__place-input::placeholder {
  color: rgb(255 255 255 / 72%);
}
.ab-mobile-intro .ab-weather,
.ab-mobile-intro .ab-weather[data-wp-mode] {
  color: #fff !important;
  background: rgb(10 55 95 / 42%) !important;
  border-color: #fff !important;
}
.ab-mobile-intro .ab-weather-now__temp {
  color: #fff !important;
}

/* Hero desktop: погода + форма на одной правой линии; «Отследить» под формой. */
@media (min-width: 1200px) {
  .ab-header:not(.ab-header--inner) > .ab-header__logo {
    transform: translateX(-50%) scale(var(--ab-logo-scale, 1)) !important;
    transform-origin: center top !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-socials {
    position: absolute !important;
    top: 0 !important;
    /* Старт: справа от погоды (320). Точный right/scale считает fitHeaderIcons. */
    right: calc(320px + clamp(48px, 48px + (100vw - 1200px) * 52 / 720, 100px)) !important;
    left: auto !important;
    grid-column: auto !important;
    justify-self: auto !important;
    align-self: start !important;
    max-width: none !important;
    margin: 0 !important;
    z-index: 6 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;
    transform: scale(var(--ab-soc-scale, 1)) !important;
    transform-origin: top right !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-socials a,
  .ab-header:not(.ab-header--inner) > .ab-socials button {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
  }
  .ab-hero__aside {
    --ab-weather-box-h: 72px;
    --ab-quick-col-a: minmax(0, 1.02fr);
    --ab-quick-col-g1: minmax(10px, 0.23fr);
    --ab-quick-col-b: minmax(0, 1.01fr);
    --ab-quick-col-g2: minmax(12px, 0.28fr);
    --ab-quick-col-c: minmax(0, 1fr);
    right: var(--ab-stage-right, var(--ab-hero-pad)) !important;
    left: auto !important;
    /* Совпадает с колонкой формы в шапке — стабильно на любом vw. */
    width: var(--ab-form-w, 460px) !important;
    max-width: 460px !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    justify-items: stretch !important;
  }
  .ab-hero__aside > .ab-weather,
  .ab-hero__aside > .ab-weather[data-wp-mode],
  .ab-hero__aside > .ab-weather[data-wp-mode='live'],
  .ab-hero__aside > .ab-weather[data-wp-mode='empty'],
  .ab-hero__aside > .ab-weather[data-wp-mode='loading'] {
    justify-self: end !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    width: var(--ab-weather-box-w) !important;
    max-width: var(--ab-weather-box-w) !important;
    height: var(--ab-weather-box-h) !important;
    min-height: var(--ab-weather-box-h) !important;
    max-height: var(--ab-weather-box-h) !important;
    margin-inline: 0 !important;
    padding: 0 10px !important;
  }
  .ab-hero__aside > .ab-weather .ab-weather-now,
  .ab-hero__aside > .ab-weather[data-wp-mode='live'] .ab-weather-now {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) !important;
    align-content: stretch !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    gap: 0 !important;
  }
  .ab-hero__aside > .ab-weather .ab-weather-now__top,
  .ab-hero__aside > .ab-weather[data-wp-mode='live'] .ab-weather-now__top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    /* Две равные половины: пунктир по центру, город сверху / градусы снизу */
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    row-gap: 0 !important;
  }
  .ab-hero__aside > .ab-weather .ab-weather-now__place,
  .ab-hero__aside > .ab-weather .ab-weather-now__place-caret {
    align-self: end !important;
  }
  .ab-hero__aside > .ab-weather .ab-weather-now__place {
    display: flex !important;
    align-items: center !important;
    align-self: stretch !important;
    padding-bottom: 0 !important;
  }
  .ab-hero__aside > .ab-weather .ab-weather-now__temp,
  .ab-hero__aside > .ab-weather[data-wp-mode='live'] .ab-weather-now__temp {
    grid-column: 1 !important;
    grid-row: 2 !important;
    align-self: center !important;
    justify-self: start !important;
    margin: 0 !important;
    line-height: 1 !important;
  }
  .ab-quick-form {
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 0 !important;
  }
  /* Форма на всю ширину aside: правый край совпадает с погодой. */
  .ab-hero__aside > .ab-quick-form {
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid,
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > *,
  .ab-hero__aside > .ab-quick-form .ab-field,
  .ab-hero__aside > .ab-quick-form .ab-filler-box,
  .ab-hero__aside > .ab-quick-form .ab-filler-skin,
  .ab-hero__aside > .ab-quick-form select,
  .ab-hero__aside > .ab-quick-form input,
  .ab-hero__aside > .ab-quick-form .ab-stepper,
  .ab-hero__aside > .ab-quick-form .ab-red-button {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  /* Форма: 6 колонок — поля по центру подложки, кнопка под «Объём». */
  .ab-hero__aside > .ab-quick-form {
    position: absolute !important;
    top: var(--ab-form-top, clamp(88px, 11vh, 130px)) !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    padding-top: 18px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    column-gap: 16px !important;
    row-gap: 20px !important;
    align-items: start !important;
    justify-items: stretch !important;
    --ab-quick-control-h: 38px;
    /* Подложка статична: эталон zoom 110% (CSS ~1745, form 435). Не пересчитываем при ресайзе. */
    --ab-glass-right: var(--ab-stage-right, 28px);
    --ab-glass-extra: 94px;
    --ab-glass-shape-left: 94px;
    --ab-glass-shape-h: 399px;
    --ab-glass-shape: polygon(
      176.6px 0,
      100% 0,
      100% 74.311%,
      calc(100% - var(--ab-btn-plate-inset, 0px)) 74.311%,
      calc(100% - var(--ab-btn-plate-inset, 0px)) 100%,
      calc(302.2px - var(--ab-btn-plate-shift, 0px)) 100%,
      calc(256.6px - var(--ab-btn-plate-shift, 0px)) 74.311%,
      1.1px 74.311%
    );
    --ab-glass-top: 31.04%;
    --ab-glass-slant-x: 0.2%;
    --ab-glass-cut-x: 57.5%;
    --ab-glass-cut-y: 74.311%;
    --ab-glass-btn-x: 65.5%;
    --ab-glass-btn-y: 100%;
    --ab-glass-bot-inset: 0%;
    --ab-fields-glass-h: 364px;
    --ab-fields-shift: 0px;
  }
  .ab-hero__aside > .ab-quick-form .ab-eyebrow {
    /* Ширина = подложка, текст по её центру. */
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    box-sizing: border-box !important;
    width: calc(
      100% + var(--ab-glass-extra, 163px) + var(--ab-glass-right, 28px)
    ) !important;
    max-width: none !important;
    height: auto !important;
    min-height: 23px !important;
    /* Центр заголовка над «Марка/Класс» сразу, как после centerQuickTitle. */
    transform: translateX(calc(415px - 50%)) !important;
    margin: 0 0 0 calc(-1 * var(--ab-glass-extra, 163px)) !important;
    padding: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
    color: #fff !important;
    font-size: clamp(17px, 1.15vw, 20px) !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid {
    display: contents !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-field,
  .ab-hero__aside > .ab-quick-form .ab-stepper-field {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    height: auto !important;
    position: relative !important;
    z-index: 2 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-field > span {
    position: static !important;
    display: block !important;
    height: auto !important;
    min-height: 15px !important;
    font-size: clamp(13px, 0.95vw, 15px) !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }
  /* Значения: марка, класс, прочность — по центру поля (равные поля под стрелку). */
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-field > select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    text-align: center !important;
    text-align-last: center !important;
    padding: 0 28px !important;
    background-color: #fff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%236b8ba7' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 10px 6px !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-field > input {
    text-align: center !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  /* Объём: число по центру между кнопками − / +. */
  .ab-hero__aside > .ab-quick-form .ab-stepper input {
    text-align: center !important;
    -moz-appearance: textfield !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-stepper input::-webkit-outer-spin-button,
  .ab-hero__aside > .ab-quick-form .ab-stepper input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-filler-skin {
    justify-content: center !important;
    padding: 0 30px !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-filler-skin__top {
    text-align: center !important;
    width: 100% !important;
  }
  /* Марка над «Наполнитель», Класс над «Объём». */
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > :nth-child(1) {
    grid-column: 3 / 5 !important;
    grid-row: 2 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > :nth-child(2) {
    grid-column: 5 / 7 !important;
    grid-row: 2 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-field--strength {
    grid-column: 1 / 3 !important;
    grid-row: 3 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-field--filler {
    grid-column: 3 / 5 !important;
    grid-row: 3 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-stepper-field {
    grid-column: 5 / 7 !important;
    grid-row: 3 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button {
    /* Под «Объём», по ширине колонки объёма. */
    grid-column: 5 / 7 !important;
    grid-row: 4 !important;
    align-self: start !important;
    justify-self: stretch !important;
    position: relative !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: 55px !important;
    min-height: 55px !important;
    max-height: none !important;
    /* Только row-gap сетки — плюс небольшой спуск до линии под полями. */
    margin: 18px 0 0 !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 8px !important;
    /* Тот же красный, что «Перезвоните мне» / бейдж менеджера. */
    background: #b52b2b !important;
    background-image: none !important;
    color: #fff !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
    font-family: Roboto, Arial, Helvetica, sans-serif !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    text-transform: none !important;
  }
  /* Лицо кнопки поверх стеклянной подложки (иначе подложка затемняет красный). */
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    border-radius: inherit !important;
    background: #b52b2b !important;
    pointer-events: none !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button:hover,
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button:focus-visible {
    background: #9a2424 !important;
    background-image: none !important;
    color: #fff !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button:hover::before,
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button:focus-visible::before {
    background: #9a2424 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button::after {
    content: none !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-quick-grid > .ab-red-button > :not(.ab-submit-glass) {
    position: relative !important;
    z-index: 2 !important;
  }
  .ab-hero__aside > .ab-quick-form .ab-stepper {
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) 26px !important;
  }
}

/* Раскрытая строка поиска и «Найти» — матовое стекло, как пункты меню */
@media (min-width: 1200px) {
  /* Под всем рядом иконок (лупа → ЛК), на всю его ширину */
  .ab-header:not(.ab-header--inner) > .ab-socials {
    overflow: visible !important;
  }
  .ab-header:not(.ab-header--inner) .ab-socials > .ab-search,
  .ab-header:not(.ab-header--inner) .ab-search.ab-search--under-socials {
    position: absolute !important;
    /* Точные left/width — placeOpenSearch: от лупы до правого края ряда (кнопка «Найти»). */
    left: 0 !important;
    right: auto !important;
    top: calc(100% + 10px) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    z-index: 8 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }
  .ab-header:not(.ab-header--inner) .ab-search {
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .ab-header:not(.ab-header--inner) .ab-search form {
    gap: 8px !important;
  }
  .ab-header:not(.ab-header--inner) .ab-search input,
  .ab-header:not(.ab-header--inner) .ab-search button {
    min-height: 40px !important;
    color: #fff !important;
    background: rgb(255 255 255 / 18%) !important;
    border: 1px solid #fff !important;
    border-radius: 8px !important;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 55%), 0 8px 24px rgb(0 0 0 / 18%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    backdrop-filter: blur(16px) saturate(1.4);
  }
  .ab-header:not(.ab-header--inner) .ab-search button {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    width: auto !important;
    min-width: max-content !important;
    padding: 0 14px !important;
    overflow: visible !important;
  }
  .ab-header:not(.ab-header--inner) .ab-search input::placeholder {
    color: rgb(255 255 255 / 72%);
  }
  .ab-header:not(.ab-header--inner) .ab-search input:focus,
  .ab-header:not(.ab-header--inner) .ab-search input:focus-visible,
  .ab-header:not(.ab-header--inner) .ab-search button:hover,
  .ab-header:not(.ab-header--inner) .ab-search button:focus-visible {
    color: #fff !important;
    background: rgb(255 255 255 / 30%) !important;
    border-color: #fff !important;
    outline: none !important;
  }
}

/* Плашка «Перезвоните мне» — под телефоном и почтой, той же ширины */
@media (min-width: 1200px) {
  .ab-header:not(.ab-header--inner) > .ab-header__contacts > .ab-callback {
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 10px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #b52b2b !important;
    color: #fff !important;
    font: 800 15px / 1.2 Roboto, Arial, Helvetica, sans-serif !important;
    cursor: pointer !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .ab-header:not(.ab-header--inner) > .ab-header__contacts > .ab-callback:hover,
  .ab-header:not(.ab-header--inner) > .ab-header__contacts > .ab-callback:focus-visible {
    background: #9a2424 !important;
    color: #fff !important;
  }
}

/* Две подложки как на макете: острый угол слева внизу. Старое крыло не рисуем. */
.ab-hero__panel {
  display: none !important;
}
@media (min-width: 1200px) {
  .ab-hero__aside > .ab-quick-form {
    position: absolute !important;
    padding-top: 28px !important;
    overflow: visible !important;
  }
  /* Старое крыло на весь герой не рисуем: подложка сидит на самой форме. */
  .ab-hero::before {
    content: none !important;
  }
  /* Форма/трек видны сразу (без ожидания JS). */
  .ab-hero__aside > .ab-quick-form,
  .ab-hero__aside > .ab-hero__track-order {
    visibility: visible !important;
  }
  /*
   * Подложка: острый угол слева к лестнице; скос у «Отправить» острее;
   * снизу равный pad; справа — до края экрана (--ab-glass-right).
   */
  .ab-hero__aside > .ab-quick-form::before {
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    pointer-events: none !important;
    top: 0 !important;
    right: calc(-1 * var(--ab-glass-right, 28px)) !important;
    bottom: auto !important;
    height: var(--ab-fields-glass-h, 100%) !important;
    min-height: 100% !important;
    left: calc(-1 * var(--ab-glass-extra, 163px)) !important;
    background: rgb(6 14 28 / 46%);
    -webkit-backdrop-filter: blur(16px) saturate(1.15);
    backdrop-filter: blur(16px) saturate(1.15);
    /* Низ по линии: полка под полями, скос к кнопке, полка под кнопкой. */
    clip-path: polygon(
      var(--ab-glass-top, 27.6%) 0,
      100% 0,
      100% var(--ab-glass-btn-y, 96.3%),
      var(--ab-glass-btn-x, 73.7%) var(--ab-glass-btn-y, 96.3%),
      var(--ab-glass-cut-x, 65.4%) var(--ab-glass-cut-y, 67.5%),
      var(--ab-glass-slant-x, 7.5%) var(--ab-glass-cut-y, 67.5%)
    );
  }
  /* Узкая светлая грань по всему периметру тёмной подложки: кольцо между
     внешним контуром стекла и таким же контуром, сдвинутым внутрь на ~7px.
     Поля, включая «Прочность», остаются на тёмной части, грань — за ними. */
  .ab-hero__aside > .ab-quick-form::after {
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    pointer-events: none;
    top: 0 !important;
    right: calc(-1 * var(--ab-glass-right, 28px)) !important;
    bottom: auto !important;
    height: var(--ab-fields-glass-h, 100%) !important;
    min-height: 100% !important;
    left: calc(-1 * var(--ab-glass-extra, 163px)) !important;
    background: rgb(216 238 255 / 85%);
    clip-path: polygon(
      evenodd,
      var(--ab-glass-top, 27.6%) 0,
      100% 0,
      100% var(--ab-glass-btn-y, 96.3%),
      var(--ab-glass-btn-x, 73.7%) var(--ab-glass-btn-y, 96.3%),
      var(--ab-glass-cut-x, 65.4%) var(--ab-glass-cut-y, 67.5%),
      var(--ab-glass-slant-x, 7.5%) var(--ab-glass-cut-y, 67.5%),
      calc(var(--ab-glass-top, 27.6%) + 0.46%) 1.43%,
      99.16% 1.43%,
      99.16% calc(var(--ab-glass-btn-y, 96.3%) - 1.43%),
      calc(var(--ab-glass-btn-x, 73.7%) + 0.36%) calc(var(--ab-glass-btn-y, 96.3%) - 1.43%),
      calc(var(--ab-glass-cut-x, 65.4%) + 0.48%) calc(var(--ab-glass-cut-y, 67.5%) - 1.43%),
      calc(var(--ab-glass-slant-x, 7.5%) + 1.53%) calc(var(--ab-glass-cut-y, 67.5%) - 1.43%)
    );
  }
  /* Отдельной подложки кнопки больше нет. */
  .ab-hero__aside > .ab-quick-form .ab-red-button > .ab-submit-glass,
  .ab-hero__aside > .ab-quick-form > .ab-submit-glass {
    display: none !important;
  }
  .ab-hero::after {
    content: none !important;
  }
  .ab-hero__aside > .ab-hero__track-order {
    position: absolute !important;
    left: auto !important;
    right: 0 !important;
    /* До JS — vh-старт; после equalizeHeroGaps — точный --ab-track-top. */
    top: var(--ab-track-top, clamp(340px, 48vh, 520px)) !important;
    bottom: auto !important;
    transform: none !important;
    justify-self: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: calc(var(--ab-weather-box-w, 348px) - 28px) !important;
    max-width: none !important;
    margin: 0 !important;
    min-height: 72px !important;
    height: 72px !important;
    padding: 0 12px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: #005ba4 !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: 19px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    text-shadow: none !important;
    gap: 12px !important;
  }
  .ab-track-plate {
    display: none !important;
  }
  .ab-hero__aside > .ab-hero__track-order .ab-track-order__icon {
    display: block !important;
    width: 36px !important;
    height: 18px !important;
    flex: 0 0 36px !important;
    object-fit: contain !important;
  }
}

/* Высота hero сразу с местом под зафиксированный блок и «Отследить заказ»:
   скрипту не нужно наращивать hero после первой отрисовки. */
@media (min-width: 1200px) and (max-width: 1439px) {
  .ab-hero { min-height: 690px !important; }
}

/* Ромб через блок: с сертификатов до отзывов. Сертификаты — с ромбом, дальше через один. */
.ab-documents,
.ab-price,
.ab-partners,
.ab-videos {
  background: transparent !important;
  background-image: none !important;
}
.ab-calculator,
.ab-plants,
.ab-projects,
.ab-reviews {
  background-color: #efefef !important;
  background-image: none !important;
}
/* Один и тот же зазор 34px — как от «Сертификаты соответствия» до карточек. */
.home-v2 .ab-documents {
  padding-top: 34px !important;
}
.home-v2 .ab-documents .ab-section-title,
.home-v2 .ab-calculator .ab-section-title,
.home-v2 .ab-price .ab-section-title,
.home-v2 .ab-plants .ab-section-title,
.home-v2 .ab-partners .ab-section-title,
.home-v2 .ab-projects .ab-section-title,
.home-v2 .ab-videos .ab-section-title,
.home-v2 .ab-reviews .ab-section-title {
  margin-bottom: 34px !important;
}
.home-v2 .ab-documents .ab-section-title h2,
.home-v2 .ab-calculator .ab-section-title h2,
.home-v2 .ab-price .ab-section-title h2,
.home-v2 .ab-plants .ab-section-title h2,
.home-v2 .ab-partners .ab-section-title h2,
.home-v2 .ab-projects .ab-section-title h2,
.home-v2 .ab-videos .ab-section-title h2,
.home-v2 .ab-reviews .ab-section-title h2 {
  font-size: clamp(15px, calc(15px + (100vw - 1200px) * 5 / 720), 20px) !important;
}
.home-v2 .ab-price {
  padding-top: 22px !important;
  padding-bottom: 20px !important;
}
.home-v2 .ab-partners {
  padding-top: 22px !important;
  padding-bottom: 12px !important;
}
.home-v2 .ab-videos {
  padding-top: 12px !important;
  padding-bottom: 18px !important;
}
.ab-advantages-head {
  padding: 22px 0 !important;
}
.ab-advantages-head .ab-section-title {
  margin-bottom: 16px !important;
}
.ab-advantage-item {
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
}
.ab-advantage-item::after {
  content: "";
  display: block;
  clear: both;
}
.ab-advantage-item + .ab-advantage-item {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #e31e24;
}
.ab-advantage-item img {
  float: right;
  width: 140px;
  height: 140px;
  margin: 0 0 10px 20px;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.ab-advantage-item h3 {
  margin: 0 0 8px;
  color: #0a375f;
  font-family: Roboto, Arial, Helvetica, sans-serif;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.3;
}
.ab-advantage-item p {
  margin: 0 0 6px;
  color: #3d4f5c;
  font-size: 13px;
  line-height: 1.45;
}
.ab-advantage-item p:last-child {
  margin-bottom: 0;
}
@media (max-width: 640px) {
  .ab-advantage-item img {
    width: 110px;
    height: 110px;
    margin-left: 14px;
  }
}
/* Иконки преимуществ в герое: фокус-увеличение и скролл к пункту. */
.ab-hero__advantages {
  pointer-events: auto !important;
}
.ab-hero__advantage-link {
  display: block;
}
.ab-hero__advantage img {
  transition: transform 0.2s ease !important;
}
.ab-hero__advantage-link:hover img,
.ab-hero__advantage-link:focus img,
.ab-hero__advantage-link:focus-visible img {
  transform: scale(1.08);
}
.ab-hero__advantage-link.is-active img {
  transform: scale(1.12);
  opacity: 1 !important;
}
.ab-advantage-item {
  scroll-margin-top: 16px;
}
/* Страница входа: без плашек меню (Продукция/Услуги/Калькулятор/Прайс/Контакты) в шапке. */
body.ab-login-page .ab-header--inner .ab-nav,
body.ab-register-page .ab-nav {
  display: none !important;
}

/* Страница входа: логотип по центру шапки. */
body.ab-login-page .ab-header-bar {
  position: relative;
}
body.ab-login-page .ab-header--inner {
  position: static !important;
}
.ab-captcha {
  margin-top: 2px;
}
.ab-remember-line {
  margin: 4px 0 8px;
  cursor: pointer;
}
.ab-password-wrap {
  position: relative;
  display: block;
}
.ab-password-wrap input {
  padding-right: 46px !important;
}
.ab-password-toggle {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #647583;
  cursor: pointer;
}
.ab-password-toggle svg {
  width: 20px;
  height: 20px;
}
.ab-password-toggle:hover {
  color: #0a375f;
}
body.ab-login-page .ab-header__logo {
  position: absolute !important;
  width: max-content !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}
/* Личный кабинет: плашки меню в шапке не показываем (как на входе). */
body.ab-lk-page .ab-nav {
  display: none !important;
}
/* Личный кабинет после авторизации: логотип по центру шапки. */
body.ab-lk-page .ab-header-bar {
  position: relative;
}
body.ab-lk-page .ab-header--inner {
  position: static !important;
}
body.ab-lk-page .ab-header__logo {
  position: absolute !important;
  width: max-content !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}
/* Личный кабинет: размер логотипа — как на главной (132×55), чтобы не обрезался шапкой. */
body.ab-lk-page .ab-header__logo img {
  height: 55px !important;
  width: auto !important;
}
/* Кабинет: назначенная машина, связь с водителем, отслеживание на карте. */
.ab-vehicle {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #d7dee5;
  border-left: 3px solid #c8102e;
  border-radius: 8px;
  background: #f7fafc;
}
.ab-vehicle__title { margin: 0 0 4px; color: #0a375f; }
.ab-vehicle__note { margin: 0 0 4px; font-size: 12px; color: #5b6d7b; }
.ab-vehicle__driver { margin: 6px 0 0; }
.ab-driver-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; }
.ab-driver-actions a { text-decoration: none; }
.ab-track { margin-top: 10px; }
.ab-track__eta { margin: 0 0 6px; font-weight: 600; color: #0a375f; }
.ab-track__bar { height: 6px; border-radius: 3px; background: #dde5ec; overflow: hidden; }
.ab-track__bar i { display: block; height: 100%; width: 0; background: #c8102e; transition: width .6s ease; }
.ab-track__map { height: 280px; margin-top: 10px; border-radius: 8px; overflow: hidden; }
.ab-track__links { margin: 8px 0 0; font-size: 13px; }
.ab-waybill-form { display: grid; grid-template-columns: minmax(200px, 280px) minmax(200px, 280px); gap: 12px; align-items: end; margin-top: 8px; width: min(100%, 640px); }
.ab-waybill-form .ab-field { margin: 0; min-width: 0; width: 100%; }
.ab-waybill-form > .ab-show-trucks {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 42px;
  margin: 0;
  padding: 10px 18px;
  background: #c8102e;
  color: #fff;
  border: 0;
  border-radius: 4px;
  cursor: pointer;
}
@media (max-width: 700px) {
  .ab-waybill-form { grid-template-columns: 1fr; }
}
.ab-waybill-result { margin-top: 12px; }
.ab-waybill-info { margin: 0 0 8px; color: #0a375f; }
.ab-waybill-info:empty { display: none; }
.ab-waybill-result .ab-glonass__map { height: 360px; }
.ab-glonass__status { margin: 0; font-weight: 600; color: #0a375f; }
.ab-glonass__map { height: 280px; margin-top: 8px; border-radius: 8px; overflow: hidden; background: #eef3f7; }
.ab-glonass__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.ab-glonass__map iframe[hidden] { display: none; }
/* Главная: кнопка WhatsApp в шапке не нужна. */
.ab-socials a[href*="wa.me"] {
  display: none !important;
}
/* Иконка трубки в ряду иконок шапки (поиск/почта/Max/Telegram/ЛК) не нужна. */
.ab-socials a.ab-header__phone-tel,
.ab-header:not(.ab-header--inner) > .ab-socials > a.ab-header__phone-tel {
  display: none !important;
}
@media (min-width: 1200px) {
  /* Меню слева и весь правый блок — у краёв экрана, без центровки сцены 1920. */
  .ab-header:not(.ab-header--inner) {
    left: var(--ab-hero-pad) !important;
    right: var(--ab-hero-pad) !important;
  }
  /* Правый блок у края экрана; сами блоки (погода, форма, кнопка) чуть отодвинуты
     от края на --ab-hero-pad, а подложка стекла доходит до края на любой диагонали. */
  .ab-hero__aside {
    right: 0 !important;
    padding-right: var(--ab-hero-pad) !important;
  }
  .ab-hero__aside > .ab-hero__track-order {
    right: var(--ab-hero-pad) !important;
  }
  /* Форма абсолютно спозиционирована — отступ от края сдвигом; --ab-qf-scale
     жмёт весь блок (форма+подложка+кнопка) целиком от правого края, без ломки пропорций. */
  .ab-hero__aside > .ab-quick-form {
    transform: translateX(calc(-1 * var(--ab-hero-pad))) scale(var(--ab-qf-scale, 1)) !important;
    transform-origin: top right !important;
  }
  /* Погода и «Отследить заказ» — один размер. */
  .ab-hero__aside > .ab-weather,
  .ab-hero__aside > .ab-weather[data-wp-mode] {
    width: 320px !important;
    max-width: 320px !important;
    height: 72px !important;
    min-height: 72px !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }
  .ab-hero__aside > .ab-hero__track-order {
    width: 320px !important;
    height: 72px !important;
    min-height: 72px !important;
    box-sizing: border-box !important;
  }
  /* Окантовку (светлую грань) вокруг блока быстрого заказа убираем. */
  .ab-hero__aside > .ab-quick-form::after {
    content: none !important;
    display: none !important;
  }
  /* Быстрый заказ: единый квадрат-отступ 18px — ширины полей равны,
     все промежутки (между полями, рядами, заголовком, кнопкой и краями) одинаковы. */
  .ab-hero__aside {
    --ab-quick-col-g1: 18px;
    --ab-quick-col-g2: 18px;
  }
  /* Стартовые отступы = финальным после JS, чтобы не было «прыжка» при загрузке. */
  .ab-hero__aside > .ab-quick-form {
    padding-top: 37px !important;
    padding-bottom: 37px !important;
  }
  .ab-quick-form .ab-eyebrow {
    margin-bottom: 18px !important;
  }
  /* Горизонтальные промежутки между колонками — как квадрат на разметке (36px). */
  .ab-hero__aside > .ab-quick-form {
    row-gap: 18px !important;
    column-gap: 36px !important;
  }
  /* Кнопка опущена на «один квадрат» (37px) от полей; полка подложки 37/37 вокруг кнопки. */
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-red-button {
    margin-top: 37px !important;
    margin-block-start: 19px !important;
  }
}

/* Макет клиента: статичная подложка (эталон zoom 110%), квадратные зазоры,
   кнопка у нижнего края, широкая погода. */
@media (min-width: 1200px) {
  .ab-hero__aside > .ab-quick-form::before {
    min-height: 0 !important;
    left: calc(-1 * var(--ab-glass-shape-left, 94px)) !important;
    height: var(--ab-glass-shape-h, 399px) !important;
    clip-path: var(--ab-glass-shape, polygon(
      176.6px 0,
      100% 0,
      100% 74.311%,
      calc(100% - var(--ab-btn-plate-inset, 0px)) 74.311%,
      calc(100% - var(--ab-btn-plate-inset, 0px)) 100%,
      calc(302.2px - var(--ab-btn-plate-shift, 0px)) 100%,
      calc(256.6px - var(--ab-btn-plate-shift, 0px)) 74.311%,
      1.1px 74.311%
    )) !important;
    /* Без поддержки размытия — плотнее, чтобы текст читался. */
    background: rgb(52 55 60 / 82%) !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .ab-hero__aside > .ab-quick-form::before {
      background: rgb(70 74 80 / 55%) !important;
      -webkit-backdrop-filter: blur(12px) !important;
      backdrop-filter: blur(12px) !important;
    }
  }
  /* Зазор между рядами полей — один квадрат, как сверху и снизу формы. */
  .ab-hero__aside > form.ab-quick-form {
    row-gap: 37px !important;
  }
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-red-button {
    background: #d32f2f !important;
    /* Подложка кнопки ужата сверху/снизу (55→43); пластина кнопки на 0,5 см ниже подложки формы. */
    height: 43px !important;
    min-height: 43px !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    padding: 4px 8px !important;
    margin-top: 14px !important;
    margin-block-start: 14px !important;
  }
  /* Собственная подложка кнопки: тёмная пластина, кнопка по центру пластины. */
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-red-button::before {
    content: none !important;
    display: none !important;
    position: absolute !important;
    inset: -12px -18px !important;
    z-index: -1 !important;
    border-radius: 10px !important;
    background: linear-gradient(105deg, rgb(18 20 26 / 55%) 0%, rgb(18 20 26 / 92%) 40%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.15);
    backdrop-filter: blur(16px) saturate(1.15);
    clip-path: polygon(evenodd, 0 0, 100% 0, calc(100% - 22px) 100%, 22px 100%, 0 0, 18px 12px, 18px calc(100% - 12px), calc(100% - 18px) calc(100% - 12px), calc(100% - 18px) 12px, 18px 12px) !important;
  }
  /* Без изменения цвета при наведении: ни кнопка, ни её подложка не краснеют. */
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-red-button:hover {
    background: #d32f2f !important;
  }
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-red-button:hover::before,
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-red-button:focus-visible::before {
    background: linear-gradient(105deg, rgb(18 20 26 / 55%) 0%, rgb(18 20 26 / 92%) 40%) !important;
  }
}

/* Быстрый заказ desktop: эталон zoom 110% (form 435×374 + подложка).
   На всех ширинах ≥1200 одна геометрия — форма, кнопка и подложка не расходятся. */
@media (min-width: 1200px) {
  .ab-hero__aside > form.ab-quick-form {
    left: auto !important;
    right: 0 !important;
    width: 435px !important;
    min-width: 435px !important;
    max-width: 435px !important;
    height: 374px !important;
    min-height: 374px !important;
    max-height: 374px !important;
    box-sizing: border-box !important;
    padding-top: 36px !important;
    /* 8.5px: кнопка по центру полки (срез 289px … низ 399px). */
    padding-bottom: 8.5px !important;
    column-gap: 34px !important;
    row-gap: 36px !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto auto minmax(0, 1fr) !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-field > span {
    font-size: 15px !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-quick-grid > :nth-child(1) {
    grid-column: 3 / 5 !important;
    grid-row: 2 !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-quick-grid > :nth-child(2) {
    grid-column: 5 / 7 !important;
    grid-row: 2 !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-quick-grid > .ab-field--strength {
    grid-column: 1 / 3 !important;
    grid-row: 3 !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-quick-grid > .ab-field--filler {
    grid-column: 3 / 5 !important;
    grid-row: 3 !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-quick-grid > .ab-stepper-field {
    grid-column: 5 / 7 !important;
    grid-row: 3 !important;
  }
  .ab-hero__aside > form.ab-quick-form .ab-quick-grid > .ab-red-button,
  .ab-hero__aside > form.ab-quick-form.ab-calc-live .ab-quick-grid > .ab-red-button {
    grid-column: 5 / 7 !important;
    grid-row: 4 !important;
    align-self: end !important;
    margin: 0 !important;
    margin-block-start: 0 !important;
  }
}


/* Раскрытые списки «Марка» / «Класс» / «Наполнитель» быстрого заказа (initQuickSelects):
   ширина и края — как у поля, варианты по центру; вне формы, поэтому подложка не обрезает. */
.ab-qs-list {
  position: fixed;
  z-index: 10050;
  box-sizing: border-box;
  margin: 0;
  padding: 4px 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  border: 1px solid rgb(10 55 95 / 25%);
  border-radius: 8px;
  box-shadow: 0 10px 28px rgb(0 0 0 / 28%);
  color: #0a375f;
  line-height: 1.2;
}
.ab-qs-list__option {
  box-sizing: border-box;
  padding: 8px 6px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  user-select: none;
}
.ab-qs-list__option.is-selected {
  font-weight: 800;
}
.ab-qs-list__option.is-active {
  background: #e6eef6;
}
.ab-qs-list__option[aria-disabled="true"] {
  opacity: 0.45;
  cursor: default;
}

/* Калькулятор бетона и доставки: пояснения и подсказки адреса —
   по центру своих контейнеров (сетка и размеры не меняются). */
#calculator.ab-calculator .ab-address-suggest__list,
#calculator.ab-calculator .ab-address-suggest__list > li {
  text-align: center !important;
}

/* Итог, разбивка, «Параметры доставки» и пояснение — по левому краю колонки полей. */
#calculator.ab-calculator .ab-calculator__fields > small,
#calculator.ab-calculator .ab-estimate,
#calculator.ab-calculator .ab-estimate > p,
#calculator.ab-calculator .ab-extra-params,
#calculator.ab-calculator .ab-extra-params > summary,
#calculator.ab-calculator .ab-extra-params > .ab-field > span {
  text-align: left !important;
}
#calculator.ab-calculator .ab-extra-params {
  display: none !important;
}
#calculator.ab-calculator .ab-calculator__fields > .ab-address-suggest {
  grid-column: 1 / -1;
}
#calculator.ab-calculator .ab-address-suggest[hidden] {
  display: none !important;
}
#calculator.ab-calculator .ab-pickup {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  justify-self: start;
  margin: 2px 0 0;
  color: #0a375f;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
#calculator.ab-calculator .ab-pickup input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #c8102e;
}
#calculator.ab-calculator .ab-pickup-plants {
  grid-column: 1 / -1;
  margin: 6px 0 0;
  color: #0a375f;
  font-size: 13px;
  line-height: 1.45;
  text-align: left;
}
#calculator.ab-calculator .ab-pickup-plants[hidden] {
  display: none !important;
}
#calculator.ab-calculator .ab-pickup-plants p {
  margin: 0 0 4px;
  font-weight: 600;
}
#calculator.ab-calculator .ab-pickup-plants ul {
  margin: 0;
  padding-left: 18px;
}

@media (min-width: 768px) {
  #calculator.ab-calculator .ab-estimate > .ab-estimate-breakdown {
    white-space: nowrap !important;
  }
}

/* Логотип в шапке на всех страницах — того же размера, что на главной. */
body.ab-lk-page .ab-header__logo img {
  width: min(168px, 46vw) !important;
  height: auto !important;
}
@media (max-width: 520px) {
  body.ab-lk-page .ab-header__logo img { width: 112px !important; }
}
@media (max-width: 480px) {
  body.ab-lk-page .ab-header__logo img { width: min(118px, 38vw) !important; }
}
@media (min-width: 1200px) {
  .ab-header--inner .ab-header__logo .ab-logo img {
    width: clamp(100px, calc(100px + (100vw - 1200px) * 140 / 720), 240px) !important;
    max-width: none !important;
    height: auto !important;
  }
}

/* Положение логотипа в шапке на всех страницах — как на главной. */
@media (max-width: 520px) {
  .ab-header--inner > .ab-header__lead { min-width: 82px !important; }
  body.ab-lk-page .ab-header--inner > .ab-header__logo,
  body.ab-login-page .ab-header--inner > .ab-header__logo {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    grid-column: 2 !important;
    width: 100% !important;
    justify-content: center !important;
  }
}
@media (min-width: 1200px) {
  body .ab-header--inner > .ab-header__logo {
    position: absolute !important;
    top: 18px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: max-content !important;
    margin: 0 !important;
    z-index: 4 !important;
  }
  body:not(.ab-lk-page):not(.ab-login-page) .ab-header--inner > .ab-socials { grid-column: 3 !important; }
  body .ab-header--inner {
    min-height: calc(clamp(100px, calc(100px + (100vw - 1200px) * 140 / 720), 240px) * 100 / 240 + 36px) !important;
  }
}

/* Ниже хедера три шрифта: заголовок = телефон/почта, подзаголовок = боковое меню, текст = фраза калькулятора. */
#content .ab-section-title h2 {
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
#content h3,
#content .ab-tabs button:not(.ab-tab-chevron),
#content .ab-price-head b,
#content .ab-reviews b,
#content .ab-calculator .ab-field > span,
#content .ab-pickup,
#content .ab-extra-params > summary,
#content .ab-estimate-line,
#content .ab-estimate-line strong {
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
  font-size: clamp(11px, 0.95vw, 13px) !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
}
#content .ab-section-title p,
#content .ab-reviews p,
#content .ab-price-row,
#content .ab-price-row span,
#content .ab-price-extra,
#content .ab-estimate-breakdown,
#content .ab-delivery-map__hint,
#content small,
.ab-footer,
.ab-footer a,
.ab-footer span {
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}
