/* ZIPTEH — CTA главной по референсу 01.09.2026.
   Область ограничена модификатором .zt-request--home-ref:
   компактные CTA внутренних страниц не затрагиваются. */

#ziptehLeadModule.zt-request.zt-request--home-ref {
    margin: 0;
    padding: 64px 0 48px !important;
    overflow: hidden;

    /* Правка заказчика 03.09.2026: фон модуля белый, а не серый.
       Было #f7f8fa — серая полоса вокруг карточки. Карточку от фона
       по-прежнему отделяют рамка #dfe4e8 и мягкая тень. */
    background: #fff !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__inner {
    position: relative;

    /* Правка заказчика 03.09.2026: над формой и под ней было много пустого
       места. Карточку держала снизу `min-height: 500px`, хотя самая высокая
       колонка — форма (360 px на 1440 px). Разница делилась пополам и давала
       по 33 px воздуха сверху и снизу. Теперь высоту задаёт содержимое. */
    min-height: 0;
    display: grid;
    /* Аудит 03.09.2026. Было `minmax(390,420) minmax(360,430) minmax(0,1fr)`:
       на сверхшироких экранах вся лишняя ширина уходила форме — на 2560 px
       поля растягивались на 1000 px, а экскаватор оставался 430 px и терялся
       в пустой карточке. Теперь лишнее забирает колонка с техникой, а у формы
       есть верхняя граница: 4 поля в ряд читаются и не растекаются. */
    /* Правка заказчика 03.09.2026 (по референсу): экскаватор с деталями
       уменьшен вдвое. Было `minmax(300px, 1fr)` у техники и потолок 760 px
       у формы — на 1990 px картинка занимала 560 px, то есть 29 % ширины
       карточки при 15 % на референсе, и карточка вытягивалась до 524 px
       по высоте. Теперь колонка техники фиксированная, а лишнюю ширину
       забирает форма — как в присланном образце. */
    grid-template-columns: minmax(320px, 420px) minmax(220px, 300px) minmax(520px, 1fr) !important;
    grid-template-rows: 1fr;
    align-items: center;
    gap: clamp(22px, 1.7vw, 34px) !important;
    padding: clamp(30px, 1.8vw, 36px) !important;
    overflow: hidden;
    border: 1px solid #dfe4e8 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 18px 48px rgba(37, 49, 66, .08) !important;
}

/* Точечный узор и жёлтое кольцо в углах карточки жили здесь до правки
   N-654 (03.09.2026). Заказчик снял их вместе с плашками-иконками;
   гасящее правило — ниже, рядом с остальными правками N-654. */

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__info,
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art,
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form {
    position: relative;
    z-index: 1;
    min-width: 0;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__info {
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    display: flex !important;
    flex-direction: column;
    justify-content: center !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-intro {
    display: block;
}

/* Правка N-654: с карточки главной сняты жёлтые декорации — точечный
   узор в правом верхнем углу (.zlc-card::before) и мягкое свечение по
   нижним углам (.zlc-card::after). Оба псевдоэлемента объявлены в общем
   CSS модуля (feedback-form.php), поэтому гасим их только у варианта
   главной, чтобы CTA внутренних страниц остался прежним.
   Подкладка-сетка под экскаватором — отдельный элемент
   (.zt-request__art::before) и по решению заказчика остаётся. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card::before,
#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card::after {
    content: none !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title {
    max-width: 420px;
    margin: 0 !important;
    color: #253142 !important;
    font-family: var(--zt-font-head, "Russo One", Arial, sans-serif) !important;
    /* Кегль подобран под капс (правка 03.09.2026): строка «ПОДБЕРЁМ
       ЗАПЧАСТЬ» в Russo One просит 11,1 кегля по ширине. При 42 px ей
       нужно 468 px, а колонка — 420 px, и оффер разваливался на три
       строки вместо двух. Верхняя граница 37 px держит две строки. */
    font-size: clamp(32px, 2vw, 37px) !important;
    font-weight: 400 !important;
    line-height: 1.14 !important;
    letter-spacing: -.025em !important;
    white-space: normal !important;

    /* Правка заказчика 03.09.2026: оффер набран капсом. Регистр задаём
       стилем, а не текстом в конфиге, — в разметке и в микроразметке
       заголовок остаётся в обычном написании. */
    text-transform: uppercase !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title .zlc-title__line {
    display: block !important;
    color: inherit !important;
    font: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title .zlc-title__line + .zlc-title__line::before {
    content: none !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__description {
    max-width: 365px;
    margin: 14px 0 0;
    color: #566577;
    font-family: var(--zt-font, "Manrope", Arial, sans-serif);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.55;
}

/* N-657: телефон и почта стоят в одну строку. Подписи под ними сняты
   правками N-655 и N-656, поэтому строка получилась короткой и две
   ссылки помещаются рядом. На узкой карточке колонки переносятся. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__contacts {
    margin-top: 22px !important;
    margin-bottom: 0 !important;
    display: flex !important;

    /* Общий CSS модуля ставит контактам `flex-direction: column`
       при ≤767 px — из-за него телефон и почта расходились по строкам
       уже на планшете, хотя ширины хватает даже на 320 px. */
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 26px !important;
}

/* Правка N-654: жёлтые плашки-иконки 46×46 у телефона и почты сняты.
   Разметку иконок на главной больше не выводим (feedback-form.php,
   ветка $ztHomeLead), поэтому колонка под них из сетки убрана — иначе
   телефон и почта уехали бы в узкий 46-пиксельный столбец.
   На внутренних страницах CTA не менялся: иконки там остались. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 0 !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-contact__value {
    color: #253142 !important;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif);
    font-size: 16px !important;
    font-weight: 750 !important;
    line-height: 1.25;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-contact__copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zlc-contact__note {
    display: block;
    margin-top: 3px;
    color: #8591a0;
    font-size: 13px !important;
    line-height: 1.25;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art {
    grid-column: 2;
    grid-row: 1;

    /* Было `min-height: 400px` при высоте самой картинки 257 px — колонка
       техники растягивала карточку и добавляла воздух вокруг формы. */
    min-height: 0;
    align-self: center;
    display: grid;
    place-items: center;
    overflow: visible;
    pointer-events: auto;
}

/* Сетка-чертёж под техникой. Правка заказчика 03.09.2026: раньше она
   умещалась в колонку с экскаватором и обрывалась сразу за ним. Теперь
   растянута вправо под всю форму и вниз до края карточки — лишнее срезает
   `overflow: hidden` самой карточки. Проценты считаются от колонки техники,
   поэтому −250% справа перекрывают форму на всех ширинах от 1200 px:
   на 1440 px это 800 px при форме 625 px, на 2560 px — 1675 px при 760 px.

   Маска-эллипс смещена влево, к технике: у экскаватора сетка плотная,
   к правому краю карточки она растворяется и не спорит с полями формы. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art::before {
    inset: -22% -250% -26% -24%;
    border-radius: 0;
    background-image:
        repeating-linear-gradient(30deg, rgba(255, 184, 0, .20) 0 1px, transparent 1px 27px),
        repeating-linear-gradient(150deg, rgba(255, 184, 0, .13) 0 1px, transparent 1px 27px);
    -webkit-mask-image: radial-gradient(ellipse 58% 92% at 22% 50%, #000 34%, rgba(0, 0, 0, .55) 62%, transparent 92%);
    mask-image: radial-gradient(ellipse 58% 92% at 22% 50%, #000 34%, rgba(0, 0, 0, .55) 62%, transparent 92%);
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-picture {
    /* 300 px — размер по референсу заказчика: экскаватор с деталями
       занимает около 15 % ширины карточки, а не 29 %, и карточка перестаёт
       вытягиваться по высоте вслед за картинкой. */
    width: min(100%, 300px) !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-flow: row;
    align-items: start !important;
    gap: 16px 14px !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > * {
    min-width: 0;
    margin: 0 !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="name"]) { grid-column: 1; grid-row: 1; }
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="phone"]) { grid-column: 2; grid-row: 1; }
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="email"]) { grid-column: 3; grid-row: 1; }
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="inn"]) { grid-column: 4; grid-row: 1; }
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="message"]) { grid-column: 1 / -1; grid-row: 2; }

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-field-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form input.zl-normalized-field:not([type="checkbox"]),
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form textarea.zl-normalized-field {
    width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    padding: 0 16px !important;
    border: 1px solid #d8dee5 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #253142 !important;
    box-shadow: none !important;
    font-size: 14px !important;
    line-height: 56px !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form textarea.zl-normalized-field {
    height: 190px !important;
    min-height: 190px !important;
    max-height: 240px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
    line-height: 1.45 !important;
    resize: vertical !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form input.zl-normalized-field:focus,
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form textarea.zl-normalized-field:focus {
    border-color: #ffb800 !important;
    box-shadow: 0 0 0 3px rgba(255, 184, 0, .14) !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .yellow-button {
    grid-column: 1 / 3 !important;
    grid-row: 3 !important;
    width: 100% !important;
    height: 58px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px;
    border: 0 !important;
    border-radius: 8px !important;
    background: #ffb800 !important;
    color: #1d2228 !important;
    box-shadow: none !important;
    /* N-653: типографика как у кнопок шапки «КАТАЛОГ» и «ЗАКАЗАТЬ ЗАПЧАСТИ» —
       Tektur 15/700 капсом с трекингом 0,16 px (значения сняты с них же).
       Прежде кнопка шла Manrope 15/750 строчными и выбивалась из шапки. */
    font-family: var(--zt-font, "Tektur", "Inter", Arial, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.16px !important;
    text-transform: uppercase !important;

    /* Аудит 03.09.2026. Без верхней границы кнопка тянулась за колонкой
       формы: на 2560 px она была 493 px — полоса во всю ширину поля ввода.
       Минимум держит подпись в одну строку (см. ниже) на узких раскладках. */
    min-width: 240px !important;
    max-width: 340px !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .yellow-button__label {
    transform: none !important;

    /* Аудит 03.09.2026: на 600–1199 px подпись ломалась на две строки
       («ПОДОБРАТЬ» / «ЗАПЧАСТЬ») внутри кнопки высотой 58 px. */
    white-space: nowrap !important;

    /* N-658: кегль подписи как у кнопок шапки — 15 px. Сама кнопка
       была 15-й, а вложенный span приходил 13-м из общего CSS модуля,
       и подпись выглядела мельче, чем «КАТАЛОГ» и «ЗАКАЗАТЬ ЗАПЧАСТИ». */
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.16px !important;
}

/* N-658: стрелка у кнопки снята. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .yellow-button::after {
    content: none !important;
}

/* Гарнитуру кнопке приходится отбивать хаком специфичности.

   zt-redesign.css:1704 гонит все <button> и вложенные в кнопки <span>
   на `--zt-font-btn` (Manrope) правилом с `:not(#zt_):not(#zt_)`, то есть
   с весом в два идентификатора. Кнопки шапки «КАТАЛОГ» и «ЗАКАЗАТЬ
   ЗАПЧАСТИ» под него не попадают: они ссылки, а не кнопки, и потому идут
   Tektur. Чтобы кнопка CTA встала с ними в один ряд (N-653), повторяем
   тот же хак — иначе правило выше проигрывает по весу. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .yellow-button:not(#zt_):not(#zt_),
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .yellow-button__label:not(#zt_):not(#zt_) {
    font-family: var(--zt-font, "Tektur", "Inter", Arial, sans-serif) !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .yellow-button::after {
    content: "→";
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .form-item:has(input[type="checkbox"]),
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-consent-label {
    grid-column: 3 / -1 !important;
    grid-row: 3 !important;
    align-self: center;
    width: 100% !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-required-note {
    grid-column: 3 / -1 !important;
    grid-row: 4 !important;
    align-self: start !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-consent-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    min-width: 0 !important;
    color: #3f4c5b;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

/* Главный дефект согласия, найденный аудитом 03.09.2026.

   Общий CSS модуля (feedback-form.php) держит `.zl-consent-copy`
   правилом `display: inline-flex !important`. Текст «Согласен с» и ссылка
   на политику становились двумя флекс-колонками, которые не переносятся:
   в узкой колонке формы (600–1499 px) строка распадалась на «Сог / лас /
   ен / с» рядом с такой же лесенкой из ссылки. На 360–414 px ссылка,
   наоборот, вылезала за правый край карточки на 45–99 px.

   Возвращаем обычный строчный поток: текст и ссылка переносятся как
   единый абзац. Область правила — только вариант главной. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-consent-copy,
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-consent-link {
    display: inline !important;
    min-width: 0 !important;

    /* Общий CSS модуля держит согласие ещё и правилом
       `white-space: nowrap !important` — из-за него строка не
       переносилась и на 320–414 px уезжала за правый край карточки
       на 30–124 px. Возвращаем обычный перенос. */
    white-space: normal !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-consent-link {
    overflow-wrap: anywhere;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form input[type="checkbox"] {
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px;
    margin-top: 1px !important;
    border: 1px solid #cbd3dc !important;
    border-radius: 4px !important;
    background: #fff !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-consent-full {
    display: inline !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-consent-short {
    display: none !important;
}

/* N-659: примечание об обязательных полях возвращено. Оно было в разметке
   и гасилось этим же файлом. Ставим его в строку с согласием, справа. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-required-note {
    display: block !important;
    margin: 0 !important;
    color: #8591a0 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .zl-required-note .starrequired {
    color: #e5484d !important;
}

/* ==========================================================
   ДЕТАЛИ ВЫЛЕТАЮТ ИЗ ЭКСКАВАТОРА (правка заказчика 03.09.2026)

   Раньше детали прилетали из-за краёв картинки: у каждой был свой
   `--zt-art-from` вида `translate3d(18%, -11%, 0) scale(.9)` — сдвиг
   на десяток процентов в произвольную сторону. Выглядело так, будто
   их сдувает ветром со стороны, а не выбрасывает из машины.

   Теперь старт каждой детали — центр экскаватора. Координаты сняты
   с самих слоёв: изображения нарисованы на общем холсте 1091×877, и
   центр непрозрачных пикселей каждого слоя даёт его место в кадре.

       машина    47,8 / 45,0 %      цилиндр   52,4 / 82,9 %
       шестерня  11,2 / 81,3 %      шарнир    72,7 / 82,7 %
       подшипник 30,2 / 86,7 %      опоры     89,2 / 82,9 %

   Отсюда сдвиг «деталь → центр машины» для каждого слоя. Проценты
   в `translate` считаются от размера самого слоя, а слой равен холсту,
   поэтому числа переносятся из таблицы напрямую.

   `transform-origin` переносим в точку самой детали: тогда `scale(.16)`
   сжимает её в собственном центре, а не тащит через весь кадр, и та же
   точка становится осью для покачивания в состоянии покоя — деталь
   качается вокруг себя, а не вокруг середины картинки.
   ========================================================== */

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer--gear {
    transform-origin: 11.2% 81.3%;
    --zt-art-from: translate3d(36.6%, -36.3%, 0) scale(.16) rotate(-38deg);
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer--bearing {
    transform-origin: 30.2% 86.7%;
    --zt-art-from: translate3d(17.6%, -41.7%, 0) scale(.16) rotate(-22deg);
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer--cylinder {
    transform-origin: 52.4% 82.9%;
    --zt-art-from: translate3d(-4.6%, -37.9%, 0) scale(.16) rotate(12deg);
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer--joint {
    transform-origin: 72.7% 82.7%;
    --zt-art-from: translate3d(-24.9%, -37.7%, 0) scale(.16) rotate(26deg);
}

#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer--mounts {
    transform-origin: 89.2% 82.9%;
    --zt-art-from: translate3d(-41.4%, -37.9%, 0) scale(.16) rotate(38deg);
}

/* Детали разлетаются не разом: задержки уже заданы в общем CSS модуля
   (90…330 мс), здесь их только растягиваем — полёт длиннее, чем прилёт
   сбоку, и хвост очереди не должен обгонять голову. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer:not(.zt-request__art-layer--machine) {
    transition:
        transform 1.05s cubic-bezier(.2, .78, .26, 1),
        opacity .42s ease !important;
}

/* Пока деталь ещё внутри машины, её не видно: прозрачность снимается
   в самом начале полёта, а не по его завершении. */
#ziptehLeadModule.zt-request.zt-request--home-ref .zt-request--art-ready:not(.zt-request--art-visible) .zt-request__art-layer:not(.zt-request__art-layer--machine),
#ziptehLeadModule.zt-request--home-ref.zt-request--art-ready:not(.zt-request--art-visible) .zt-request__art-layer:not(.zt-request__art-layer--machine) {
    opacity: 0;
    transform: var(--zt-art-from);
}

/* ==========================================================
   АДАПТИВ. Переписан аудитом 03.09.2026.

   Что было не так. Ниже 1200 px раскладку модуля определял не этот
   файл, а `zt-home-unify.css` (правка N-622 от 02.09): он раскрывает
   обёртку `.zlc-info` в `display: contents` и сбрасывает размещение
   детей карточки правилом `grid-area: auto !important`. Правила
   главной шли без `!important` и проигрывали по весу — заданные здесь
   колонки не применялись, элементы раскладывались автоматически.
   Результат на 900–1199 px: форма уезжала в левую колонку, техника —
   в правую, а под ней оставалась пустая половина карточки высотой
   около 400 px. На 600–899 px картина повторялась.

   Порядок из N-622 (текст → техника → форма → контакты) сохранён,
   но теперь задан явными строками сетки, а не автоматическим
   размещением. Селекторы повторяют структуру `zt-home-unify.css`
   и добавляют `.zt-request--home-ref` — вес выше на один класс,
   поэтому правила главной выигрывают, а модуль внутренних страниц
   остаётся на прежней раскладке.
   ========================================================== */

@media (max-width: 1499px) {
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__inner {
        /* Было `minmax(290,330) minmax(300,370) minmax(0,1fr)`: на 1200 px
           форме доставалось 335 px, и в неё не помещались ни ИНН
           («ИНН (необязатель…»), ни согласие рядом с кнопкой. Ужимаем
           первые две колонки и даём форме нижнюю границу 420 px. */
        grid-template-columns: minmax(300px, 380px) minmax(180px, 240px) minmax(420px, 1fr) !important;
        min-height: 0;
        padding: 32px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title {
        /* На 1200 px колонке текста достаётся 345 px, а строке «ПОДБЕРЁМ
           ЗАПЧАСТЬ» капсом при 31 px нужно 346 — из-за одного пикселя
           оффер разваливался на три строки. 30 px просит 335 px. */
        font-size: 30px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__description {
        font-size: 14px;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-picture {
        width: min(100%, 240px) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="name"]) { grid-column: 1 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="phone"]) { grid-column: 2 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="email"]) { grid-column: 1 !important; grid-row: 2 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="inn"]) { grid-column: 2 !important; grid-row: 2 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="message"]) { grid-column: 1 / -1 !important; grid-row: 3 !important; }

    /* Кнопка и согласие — отдельными строками, а не бок о бок.

       Раньше согласие стояло во второй колонке рядом с кнопкой: на
       1200–1499 px ему доставалось 160–220 px, и строка «Согласен с
       политикой обработки персональных данных» рассыпалась на четыре
       узких столбца. Теперь кнопка занимает свою строку, согласие —
       следующую во всю ширину формы. `grid-column` обязан идти
       с `!important`: в базовом блоке кнопка стоит `1 / 3`, а согласие
       `3 / -1`, и без него они уезжают на третью линию колонок,
       которой в двухколоночной сетке нет. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .yellow-button {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
        justify-self: start !important;
        width: 100% !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .form-item:has(input[type="checkbox"]),
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-consent-label {
        grid-column: 1 / -1 !important;
        grid-row: 5 !important;
        align-self: start !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-required-note {
        grid-column: 1 / -1 !important;
        grid-row: 6 !important;
    }
}

/* ----------------------------------------------------------
   900–1199 px. Две колонки: текст слева, техника справа, под ними
   форма во всю ширину карточки и контакты последними. Пустая
   половина карточки, которая была здесь до аудита, исчезает.
   ---------------------------------------------------------- */
@media (max-width: 1199px) {
    #ziptehLeadModule.zt-request.zt-request--home-ref {
        padding-top: 48px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__inner {
        grid-template-columns: minmax(0, 1fr) minmax(200px, 300px) !important;
        grid-template-rows: auto auto auto !important;
        align-items: center !important;
        min-height: 0;
        gap: 26px 30px !important;
        padding: 32px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-info.zt-request__info > .zlc-intro {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zt-request__art {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        min-height: 0 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title {
        /* От 900 до 1000 px колонке текста мало 34 px: оффер капсом
           уходил на третью строку. Кегль тянется вместе с шириной. */
        font-size: clamp(30px, 3.2vw, 34px) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-picture {
        width: min(100%, 300px) !important;
    }

    /* Ниже 1200 px форма стоит под техникой, поэтому сетку тянем вниз,
       а не вправо: маска смещена вверх, к экскаватору. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art::before {
        inset: -20% -30% -150% -40%;
        -webkit-mask-image: radial-gradient(ellipse 78% 46% at 50% 24%, #000 30%, rgba(0, 0, 0, .5) 58%, transparent 88%);
        mask-image: radial-gradient(ellipse 78% 46% at 50% 24%, #000 30%, rgba(0, 0, 0, .5) 58%, transparent 88%);
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-form.zt-request__form {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-info.zt-request__info > .zlc-contacts.zt-request__contacts {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        align-self: start !important;
        margin-top: 0 !important;
    }

    /* Форма во всю ширину карточки — четыре поля в ряд помещаются
       свободно, подпись ИНН перестаёт обрезаться. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="name"]) { grid-column: 1 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="phone"]) { grid-column: 2 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="email"]) { grid-column: 3 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="inn"]) { grid-column: 4 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="message"]) { grid-column: 1 / -1 !important; grid-row: 2 !important; }

    /* Кнопка занимает две колонки из четырёх, согласие — две оставшиеся.
       В одной колонке (около 190 px на 900 px) кнопка не помещалась:
       нижняя граница 240 px выталкивала её за пределы колонки, и чекбокс
       согласия ложился поверх правого края кнопки. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .yellow-button {
        grid-column: 1 / 3 !important;
        grid-row: 3 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .form-item:has(input[type="checkbox"]),
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-consent-label {
        grid-column: 3 / -1 !important;
        grid-row: 3 !important;
        align-self: center !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-required-note {
        grid-column: 3 / -1 !important;
        grid-row: 4 !important;
    }

    /* Текстовое поле ниже: карточка стала компактнее по высоте. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form textarea.zl-normalized-field {
        height: 132px !important;
        min-height: 132px !important;
    }
}

/* ----------------------------------------------------------
   600–899 px. Планшет: та же схема, но форма в две колонки —
   четыре поля в ряд здесь уже узкие.
   ---------------------------------------------------------- */
@media (max-width: 899px) {
    /* Колонка техники сужена с 240–320 до 200–280 px: при широкой картинке
       тексту оставалось 324 px, и оффер капсом ломался на три строки. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__inner {
        grid-template-columns: minmax(0, 1fr) minmax(160px, 220px) !important;
        gap: 24px 26px !important;
        padding: 28px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title {
        font-size: 30px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-picture {
        width: min(100%, 220px) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="email"]) { grid-column: 1 !important; grid-row: 2 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="inn"]) { grid-column: 2 !important; grid-row: 2 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="message"]) { grid-column: 1 / -1 !important; grid-row: 3 !important; }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .yellow-button {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .form-item:has(input[type="checkbox"]),
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-consent-label {
        grid-column: 1 / -1 !important;
        grid-row: 5 !important;
        align-self: start !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-required-note {
        grid-column: 1 / -1 !important;
        grid-row: 6 !important;
    }
}

/* ----------------------------------------------------------
   ≤767 px. Одна колонка: текст, техника, форма, контакты.

   Двухколоночный верх здесь уже не работает: на 600 px колонке
   с техникой доставалось 320 px из 516, тексту — 168 px, и оффер
   капсом рассыпался на четыре строки. В одну колонку заголовок
   получает всю ширину карточки и укладывается в две строки.
   Форма до 600 px остаётся двухколоночной — ширины хватает.
   ---------------------------------------------------------- */
@media (max-width: 767px) {
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__inner {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto auto auto auto !important;
        gap: 22px !important;
        padding: 26px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-info.zt-request__info > .zlc-intro {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zt-request__art {
        grid-column: 1 !important;
        grid-row: 2 !important;
        min-height: 0 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-form.zt-request__form {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-info.zt-request__info > .zlc-contacts.zt-request__contacts {
        grid-column: 1 !important;
        grid-row: 4 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title {
        max-width: 460px;
        font-size: 32px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__description {
        max-width: 460px;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-picture {
        width: min(100%, 280px) !important;
    }

    /* Сетка-чертёж в одноколоночной раскладке тянется вниз, под форму. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art::before {
        inset: -18% -40% -180% -40%;
        -webkit-mask-image: radial-gradient(ellipse 84% 40% at 50% 20%, #000 28%, rgba(0, 0, 0, .45) 56%, transparent 86%);
        mask-image: radial-gradient(ellipse 84% 40% at 50% 20%, #000 28%, rgba(0, 0, 0, .45) 56%, transparent 86%);
    }
}

/* ----------------------------------------------------------
   ≤599 px. Телефон: одна колонка, порядок как в N-622 —
   текст, техника, форма, контакты.
   ---------------------------------------------------------- */
@media (max-width: 599px) {
    #ziptehLeadModule.zt-request.zt-request--home-ref {
        padding: 36px 0 32px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__inner {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto auto auto auto !important;
        gap: 22px !important;
        padding: 24px 18px !important;
        border-radius: 12px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-info.zt-request__info > .zlc-intro {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zt-request__art {
        grid-column: 1 !important;
        grid-row: 2 !important;
        min-height: 0 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-form.zt-request__form {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zlc-card > .zlc-info.zt-request__info > .zlc-contacts.zt-request__contacts {
        grid-column: 1 !important;
        grid-row: 4 !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__title {
        /* Ограничение 330 px убрано: на 480–599 px из-за него оффер капсом
           ломался на три строки, хотя ширины карточки хватало на две. */
        max-width: none;
        font-size: clamp(28px, 8.5vw, 34px) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__description {
        margin-top: 14px;
        font-size: 14px;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__contacts {
        margin-top: 0 !important;
        grid-template-columns: 1fr;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-picture {
        /* Тот же потолок, что на 600–767 px: иначе на узком экране
           техника оказывалась крупнее, чем на широком. */
        width: min(100%, 280px) !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="name"]) { grid-column: 1 !important; grid-row: 1 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="phone"]) { grid-column: 1 !important; grid-row: 2 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="email"]) { grid-column: 1 !important; grid-row: 3 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="inn"]) { grid-column: 1 !important; grid-row: 4 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-item:has([data-zip-field="message"]) { grid-column: 1 !important; grid-row: 5 !important; }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .form-item:has(input[type="checkbox"]),
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-consent-label { grid-column: 1 !important; grid-row: 7 !important; }
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .zl-required-note { grid-column: 1 !important; grid-row: 8 !important; }

    /* На узкой карточке кнопка занимает всю ширину: ограничения ширины
       с широких экранов здесь только мешают. */
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form .form-area > .yellow-button {
        grid-column: 1 !important;
        grid-row: 6 !important;
        min-width: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form input.zl-normalized-field:not([type="checkbox"]) {
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
        line-height: 50px !important;
    }

    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__form textarea.zl-normalized-field {
        height: 128px !important;
        min-height: 128px !important;
        max-height: 180px !important;
        line-height: 1.45 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #ziptehLeadModule.zt-request.zt-request--home-ref .zt-request__art-layer {
        animation: none !important;
        transition: none !important;
    }
}
