/* Sibmash responsive overrides. Load after the existing template stylesheet. */
@media (max-width: 1199px) {
  html { font-size: 10px; width: 100%; margin: 0; overflow-x: visible; }
  body { font-size: 16px; line-height: 1.45; }
  .site-container, .main { width: 100%; min-width: 0; overflow-x: clip; }
  .container, .container_wide { width: 100%; max-width: 100%; height: auto; padding-inline: 24px; }
  .section { margin: 48px 0; }
  .title, .content-cms h1, .content-cms h2 { font-size: clamp(26px, 4vw, 38px); line-height: 1.2; margin-bottom: 24px; overflow-wrap: break-word; }
  .title_margin { margin-bottom: 28px; }
  .btn { min-height: 44px; height: auto; padding: 12px 18px; max-width: 100%; font-size: 16px; }
  .header, .header.scroll { position: relative; top: 0; width: 100%; padding-top: 16px; transform: none; }
  .header__top, .header.scroll .header__top { display: flex; flex-wrap: wrap; gap: 12px; padding-bottom: 16px; }
  .header__logo { width: 126px; height: 42px; flex: 0 0 126px; }
  .header__description { font-size: 12px; line-height: 1.3; max-width: 190px; margin: 0; flex: 1; }
  .header__place, .header.scroll .header__place { display: flex; font-size: 14px; margin-top: 4px; }
  .header__contacts { margin: 0 0 0 auto; gap: 8px; }
  .header__tg, .header__wa { width: 44px; height: 44px; flex: 0 0 44px; padding: 4px; }
  .header__top > .btn { width: auto; flex: 1 0 140px; }
  .header__menu, .header.scroll .header__menu { height: auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 16px; padding: 4px 0; }
  .header__menu-line { display: none; }
  .header__link { font-size: 14px; min-height: 44px; display: flex; align-items: center; }
  .header__drop { left: 0; width: min(320px, 90vw); top: 100%; }
  .first2 { height: auto; max-height: none; min-height: 560px; padding: 36px 0 48px; }
  .first2 .container { gap: 0; }
  .first2__image img { object-fit: cover; }
  .first2__title { font-size: clamp(28px, 4.5vw, 44px); line-height: 1.2; text-align: center; max-width: 850px; margin: 0 0 24px; }
  .first2__description { font-size: 18px; line-height: 1.4; max-width: none; justify-content: center; text-align: center; margin-top: 12px; }
  .first2__description span { font-size: 28px; }
  .first2__clients { position: static; width: min(100%, 540px); min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 28px; }
  .first2__client { width: 100%; height: 64px; }
  .first2__client img { object-fit: contain; }
  .calc { margin-top: 32px; }
  .calc__wrap { padding: 28px 24px; border-radius: 24px; }
  .calc__description { font-size: 16px; line-height: 1.45; margin-top: 16px; }
  .calc__box { gap: 24px; margin-top: 28px; max-width: none; }
  .calc__col { width: calc(50% - 12px); min-width: 0; flex-shrink: 1; gap: 16px 12px; }
  .calc__field_half { width: calc(50% - 6px); }
  .calc__input { min-height: 48px; height: auto; padding: 12px; font-size: 16px; }
  .calc__range-title { font-size: 16px; }
  .calc__range-input { height: 44px; top: -16px; cursor: pointer; }
  .calc__range-wrap { margin: 16px 0 12px; }
  .calc__result { padding: 24px 20px 84px; }
  .calc__text { font-size: 22px; line-height: 1.3; }
  .calc__text_sum { font-size: 36px; margin-top: 16px; }
  .calc__text_note { font-size: 15px; opacity: .9; }
  .calc__btn { height: auto; min-height: 48px; padding: 14px; font-size: 16px; }
  .calc__contr { margin-top: 32px; }
  .calc__contr-title { font-size: 24px; margin-bottom: 12px; }
  .calc__contr-sale { font-size: 18px; text-align: center; margin-bottom: 20px; }
  .calc__contr-note { font-size: 14px; margin-top: 16px; }
  .stats { padding: 0 24px; }
  .stats__box { gap: 20px; align-items: stretch; }
  .stats__block { width: auto; flex: 1; }
  .stats__text { font-size: 18px; }
  .stats__text span { font-size: 26px; }
  .stats__line { height: auto; }
  .gallery__box { max-width: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding-inline: 24px; }
  .gallery__el { width: 100%; height: auto; aspect-ratio: 1; border: 0; border-radius: 12px; }
  .gallery__el img { object-fit: cover; }
  .about { padding: 32px 0; }
  .about__box { gap: 28px; align-items: flex-start; }
  .about__content { min-width: 0; }
  .about__text, .about__text_bold { font-size: 16px; line-height: 1.55; }
  .about__list li { font-size: 16px; width: 100%; }
  .about__image { width: 36%; height: auto; aspect-ratio: 1; }
  .about__image img { object-fit: cover; }
  .locations__box { padding: 0; }
  .locations__map { width: 100%; margin: 0; aspect-ratio: 2383 / 1368; }
  .locations__control { margin: 0; }
  .locations__dot { width: 20px; height: 20px; }
  .locations__baloon { font-size: 14px; min-width: 100px; padding: 8px; }
  .locations__baloon span { font-size: 16px; }
  .production-page, .category-page, .produc-page, .product-page, .contacts-page { padding-top: 32px; }
  .products__tabs { gap: 8px; padding: 6px; }
  .products__tabs-btn { font-size: 16px; line-height: 1.3; height: auto; min-height: 48px; padding: 10px; text-align: center; }
  .products__area { gap: 20px; margin-top: 24px; }
  .products__card { width: calc(50% - 10px); height: auto; min-height: 330px; padding: 24px; }
  .products__card-title { font-size: 24px; line-height: 1.2; padding-right: 40px; margin-bottom: 18px; }
  .products__card-icon { width: 32px; height: 32px; top: 24px; right: 20px; }
  .products__card-list { margin-bottom: 28px; position: relative; z-index: 1; }
  .products__card-list li { font-size: 16px; margin-bottom: 6px; }
  .products__card-link { min-height: 44px; height: auto; padding: 12px 18px; width: 180px; max-width: 100%; font-size: 16px; z-index: 1; }
  .products__card-vagon { width: 250px; height: 160px; right: -80px; bottom: -50px; opacity: .6; pointer-events: none; }
  .content-cms { margin: 32px 0; }
  .content-cms p, .content-cms ul li, .content-cms table td, .content-cms table th { font-size: 16px; line-height: 1.5; }
  .content-cms h3 { font-size: 24px; margin-top: 32px; }
  .content-cms table { table-layout: fixed; }
  .content-cms table td, .content-cms table th { padding: 12px 8px; overflow-wrap: anywhere; }
  .content__swiper { overflow: hidden; padding: 4px 4px 16px; }
  .content__swiper-slide { width: 260px; margin-right: 20px; }
  .content__swiper-image { width: 100%; height: 185px; }
  .content__swiper-title, .content__swiper-link { font-size: 16px; line-height: 1.4; }
  .content__swiper-title { min-height: 70px; padding-inline: 16px; }
  .content__swiper-link { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; }
  .content__swiper-controls, .product-page__swiper-controls { width: 104px; gap: 12px; }
  .content__swiper .swiper-button-next, .content__swiper .swiper-button-prev,
  .product-page__swiper-controls .swiper-button-next, .product-page__swiper-controls .swiper-button-prev { width: 44px; height: 44px; }
  .category-page__box { gap: 20px; }
  .category-page__box .content__swiper-slide { width: calc(50% - 10px); }
  .product-page__first { gap: 24px; }
  .product-page__left, .product-page__right { width: calc(50% - 12px); min-width: 0; min-height: 0; }
  .product-page__description { font-size: 16px; line-height: 1.5; }
  .product-page__buttons { flex-wrap: wrap; gap: 12px; margin-top: 20px; }
  .product-page__buttons .btn { min-height: 48px; height: auto; flex: 1 1 180px; }
  .product-page__swiper { height: 340px; width: 100%; }
  .goods__box { gap: 28px; }
  .goods__block { width: calc(50% - 14px); padding-left: 48px; }
  .goods__block-img { width: 32px; height: 32px; }
  .goods__block-title { font-size: 20px; line-height: 1.3; margin-bottom: 12px; }
  .goods__block-text { font-size: 16px; opacity: 1; }
  .contacts, .contacts-page + section { margin-top: 40px; }
  .contacts__info, .contacts-page .contacts__info { width: 100%; margin: 0 0 32px; gap: 24px; }
  .contacts__info-block, .contacts__info-block_wide { width: calc(50% - 12px); margin: 0; }
  .contacts__info-title { font-size: 17px; }
  .contacts__info-line, .contacts__info-sub { font-size: 16px; overflow-wrap: anywhere; }
  .contacts__info-line a { display: inline-block; padding: 4px 0; }
  .contacts__box, .contacts-page + section .contacts__box { position: relative; top: auto; right: auto; width: 100%; min-height: 0; max-height: none; height: auto; margin-top: 0; padding: 28px; flex-direction: column; gap: 24px; overflow: visible; }
  .contacts__form { width: 100%; height: auto; min-width: 0; padding: 0; overflow: visible; position: relative; }
  .contacts__form-cover { overflow: hidden; border-radius: 20px; }
  .contacts__form-title, .contacts-page + section .contacts__form-title { font-size: 28px; line-height: 1.2; margin: 0 0 16px; padding: 0; text-align: left; }
  .contacts__form-description, .contacts-page + section .contacts__form-description { font-size: 16px; line-height: 1.5; padding: 0; text-align: left; margin: 0; }
  .contacts__form-field { margin-top: 16px; }
  .contacts__form-field-title { font-size: 16px; margin-bottom: 6px; }
  .contacts__form-field-input { min-height: 48px; height: auto; padding: 12px; font-size: 16px; }
  .contacts__form-field-input_area { min-height: 120px; resize: vertical; }
  .contacts__form-submit { height: auto; min-height: 48px; font-size: 16px; padding: 12px; margin-top: 20px; }
  .contacts-page .contacts-page__map, .contacts-page__map, .contacts__map { width: 100%; height: 360px; min-height: 0; margin: 24px 0 0; }
  .contacts-page__map iframe, .contacts__map iframe { height: 100%; min-height: 0; }
  .smart-captcha { width: 100%; min-width: 300px; max-width: 100%; margin: 16px 0 0; flex-shrink: 0; }
  .footer { padding: 32px 24px; border-top-width: 6px; gap: 28px; }
  .footer__logo { width: 180px; height: 70px; border-radius: 12px; }
  .footer__logo img { width: 126px; height: auto; }
  .footer__text { font-size: 14px; margin: 0; }
  .modal { overflow-y: auto; padding: 20px; align-items: flex-start; }
  .modal__inner, .modal.modal_success .modal__inner { margin: auto; max-width: 600px; padding: 60px 24px 28px; overflow: visible; transform: none; }
  .modal__cover { overflow: hidden; border-radius: 20px; }
  .modal__close { width: 44px; height: 44px; top: 8px; right: 8px; opacity: 1; }
  .modal__form { width: 100%; gap: 16px; }
  .modal__title, .modal__description, .modal__contr-list { position: static; width: 100%; max-width: none; margin: 0; text-align: left; }
  .modal__title { font-size: 26px; line-height: 1.2; }
  .modal__description { font-size: 16px; line-height: 1.4; opacity: 1; }
  .modal__contr-list { font-size: 16px; opacity: 1; }
  .modal__field { width: 100%; }
  .modal__field-input, .modal__field-label { font-size: 16px; height: auto; min-height: 48px; padding: 12px; }
  .modal__field-title { font-size: 16px; }
  .modal__field:has(.modal__field-input:focus) .modal__field-input { transform: none; }
  .modal__submit { max-width: 100%; height: auto; min-height: 48px; padding: 12px; font-size: 16px; margin-top: 8px; }
  .modal__note { font-size: 14px; max-width: none; opacity: 1; }
  .about-page__cover { top: 0; height: 360px; }
  .about-page .content-cms { margin-top: 32px; }
  .about-page .content-cms h1 { margin-top: 80px; font-size: 32px; }
  .about-page .content-cms h2 { font-size: 28px; }
  .about-page .content-cms p, .about-page .content-cms ul li { font-size: 16px; line-height: 1.5; }
}
@media (max-width: 599px) {
  .container, .container_wide { padding-inline: 16px; }
  .header__top { display: grid; grid-template-columns: 44px 44px 44px minmax(0, 1fr); gap: 10px; }
  .header__logo { grid-column: 1 / 3; width: 96px; height: 42px; }
  .header__description { grid-column: 3 / 5; max-width: none; font-size: 11px; }
  .header__contacts { grid-column: 1; margin: 0; justify-content: center; }
  .header__top > .btn { width: 100%; min-width: 0; font-size: 14px; padding-inline: 10px; }
  .header__menu, .header.scroll .header__menu { gap: 0 18px; }
  .header__link { font-size: 13px; }
  .first2 { min-height: 0; padding: 32px 0; }
  .first2__title { font-size: 28px; }
  .first2__description { font-size: 16px; }
  .first2__client { height: 48px; }
  .calc__wrap { padding: 24px 16px; }
  .calc__box { flex-direction: column; gap: 20px; }
  .calc__col { width: 100%; }
  .calc__col:has(.calc__result) { padding-bottom: 0; }
  .calc__result { padding: 24px 20px 80px; }
  .calc__text { font-size: 20px; }
  .calc__text_sum { font-size: 36px; }
  .calc__contr-sale { font-size: 17px; }
  .stats { padding-inline: 16px; }
  .stats__box { flex-direction: column; gap: 20px; }
  .stats__line { width: 100%; height: 1px; }
  .gallery__box { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 16px; }
  .about__box, .product-page__first { flex-direction: column; }
  .about__image { width: 100%; max-height: 380px; }
  .products__tabs-btn { font-size: 14px; }
  .products__card, .category-page__box .content__swiper-slide { width: 100%; }
  .products__card { min-height: 310px; }
  .product-page__left, .product-page__right { width: 100%; }
  .product-page__swiper { height: 300px; }
  .goods__block { width: 100%; }
  .contacts__info-block, .contacts__info-block_wide { width: 100%; }
  .contacts__box, .contacts-page + section .contacts__box { padding: 24px 14px; }
  .contacts__form-title { font-size: 26px; }
  .modal { padding: 12px; }
  .modal__inner, .modal.modal_success .modal__inner { padding: 60px 12px 24px; }
  .content-cms table td, .content-cms table th { font-size: 15px; padding: 10px 6px; }
}

@media (max-width: 1199px) {
  .section-to-animate, .section-to-appear { opacity: 1; transform: none; transition: none; }
  .locations__dot_1 { top: 48.5087%; left: 47.9861%; }
  .locations__dot_2 { top: 52.5007%; left: 62.5694%; }
  .locations__dot_3 { top: 73.0655%; left: 84.7917%; }
  .locations__dot_4 { top: 65.8073%; left: 83.8194%; }
  .locations__dot_5 { top: 48.3878%; left: 73.6806%; }
  .locations__dot_6 { top: 59.7589%; left: 67.8472%; }
  .locations__dot_7 { top: 77.9043%; left: 56.3194%; }
  .locations__dot_8 { top: 73.7913%; left: 48.8889%; }
  .locations__dot_9 { top: 54.4362%; left: 38.8889%; }
  .locations__dot_10 { top: 47.1781%; left: 34.7222%; }
  .locations__dot_11 { top: 50.3233%; left: 25.0000%; }
  .locations__dot_12 { top: 40.2828%; left: 23.2639%; }
  .locations__dot_13 { top: 51.1700%; left: 18.7500%; }
  .locations__dot_14 { top: 60.4847%; left: 15.9722%; }
  .locations__dot_15 { top: 44.2748%; left: 18.7500%; }
  .locations__dot_16 { top: 50.8071%; left: 12.5000%; }
  .locations__dot_17 { top: 30.2423%; left: 20.1389%; }
  .locations__dot_18 { top: 38.7102%; left: 12.5000%; }
  .locations__dot_19 { top: 62.9041%; left: 9.0278%; }
  .locations__dot_20 { top: 55.6459%; left: 7.2917%; }
  .locations__dot_21 { top: 79.4769%; left: 43.7500%; }
  .locations__dot_22 { top: 78.6301%; left: 38.1944%; }
  .locations__dot_23 { top: 71.2510%; left: 40.5556%; }
  .locations__dot_24 { top: 74.6381%; left: 34.0278%; }
  .locations__dot_25 { top: 68.3477%; left: 30.9028%; }
  .locations__dot_26 { top: 72.5816%; left: 26.3889%; }
  .locations__dot_27 { top: 61.8154%; left: 45.6250%; }
  .locations__dot_28 { top: 61.6944%; left: 34.0278%; }
  .locations__dot_29 { top: 64.8396%; left: 27.0833%; }
  .locations__dot_30 { top: 60.9686%; left: 23.1250%; }
  .locations__dot_31 { top: 67.0170%; left: 20.8333%; }
  .locations__dot_32 { top: 72.5816%; left: 16.6667%; }
}

@media (max-width: 1199px) {
  .contacts__form > div:has(> .smart-captcha), .modal__form > div:has(> .smart-captcha) { height: auto !important; min-height: 124px; width: 100%; margin-bottom: 0 !important; }
  .contacts__form > div > .smart-captcha, .modal__form > div > .smart-captcha { margin-top: 0; }
}

/* Keep the real slider thumb draggable in WebKit; decoration never captures input. */
.calc__range-input {
  margin: 0;
  cursor: pointer;
  touch-action: pan-y;
}
.calc__range-input::-webkit-slider-thumb {
  -webkit-appearance: auto;
}
.calc__range-back, .calc__range-thumb, .calc__range-fill {
  pointer-events: none;
}
.calc__range-thumb {transform:translateX(-50%);}
.calc__range-wrap:focus-within {outline:2px solid #fff;outline-offset:5px;border-radius:4px;}
