
.burger {
  display: none;
  position: relative;
  width: 44px; height: 44px;
  flex-shrink: 0;
  z-index: 101;
}
.burger span {
  display: block;
  width: 26px; height: 2px;
  background: var(--c-white);
  margin: 5px auto;
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
}
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-menu {
  position: fixed; inset: 0; z-index: 100;
  background: var(--c-dark);
  padding: calc(96px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-left)) max(32px, env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  display: flex; flex-direction: column; justify-content: space-between; gap: 40px;
}
.mobile-menu[hidden] { display: none; }
.mobile-menu__list li + li { margin-top: 4px; }
.mobile-menu__list a {
  display: block;
  color: var(--c-white);
  font-size: 24px; line-height: 1.2;
  padding: 12px 0;
}
.mobile-menu__list a:active { color: var(--c-accent); }
.mobile-menu__contacts { display: grid; gap: 14px; justify-items: start; }
.mobile-menu__phone {
  color: var(--c-white);
  font-weight: 600; font-size: 24px;
}
body.menu-open { overflow: hidden; }


/* Диапазон 1280–1919px закрыт пропорциональным масштабированием rem
   (см. html { font-size } в main.css) — компенсирующие брейкпоинты
   1439/1679 не нужны. */

@media (max-width: 1279px) {
  .page-dgkoz .experts__box > .experts__text:first-of-type,
  .page-dgkoz .experts__alert-text,
  .page-dgkoz .trust-slide__title,
  .page-dgprt .experts__box > .experts__text:first-of-type,
  .page-dgprt .experts__alert-text,
  .page-dgprt .trust-slide__title,
  .page-dgprt .out-card__title,
  .page-dgkoz .servprog__item:nth-child(2) .servprog__item-text,
  .page-dgkoz .servprog__item:nth-child(3) .servprog__item-text,
  .page-dgprt .servprog__item:nth-child(2) .servprog__item-text,
  .page-dgprt .servprog__item:nth-child(3) .servprog__item-text,
  .page-mtkoz .servprog__item:nth-child(2) .servprog__item-text,
  .page-mtprt .servprog__item:nth-child(2) .servprog__item-text,
  .page-mtmst .servprog__item:nth-child(2) .servprog__item-text,
  .page-dgmst .servprog__item:nth-child(2) .servprog__item-text,
  .page-mtkoz .servprog__item:nth-child(3) .servprog__item-text,
  .page-mtprt .servprog__item:nth-child(3) .servprog__item-text,
  .page-mtmst .servprog__item:nth-child(3) .servprog__item-text,
  .page-dgmst .servprog__item:nth-child(3) .servprog__item-text,
  .page-dgprt .servprog__item-text,
  .advantages--dgprt .advantage-card__text,
  .advantages--dgkoz .advantage-card__text,
  .repair--dgprt .repair-card:nth-child(8) .repair-card__text,
  .page-dgprt .out-card__title,
  .advantages--dgprt .advantage-card:nth-child(5) .advantage-card__text,
  .advantages--dgprt .advantage-card:nth-child(6) .advantage-card__text,
  .page-dgkoz .outsource .swiper-slide[data-i="2"] .out-card__text,
  .repair--dgprt .repair-card__text,
  .page-mtkoz .experts__box > .experts__text:first-of-type,
  .page-mtprt .experts__box > .experts__text:first-of-type,
  .page-mtmst .experts__box > .experts__text:first-of-type,
  .page-dgmst .experts__box > .experts__text:first-of-type,
  .page-mtkoz .experts__alert-text,
  .page-mtprt .experts__alert-text,
  .page-mtmst .experts__alert-text,
  .page-dgmst .experts__alert-text,
  .page-mtkoz .trust-slide__title,
  .page-mtprt .trust-slide__title,
  .page-mtmst .trust-slide__title,
  .page-dgmst .trust-slide__title,
  .page-mtkoz .servprog__item:nth-child(2) .servprog__item-text,
  .page-mtprt .servprog__item:nth-child(2) .servprog__item-text,
  .page-mtmst .servprog__item:nth-child(2) .servprog__item-text,
  .page-dgmst .servprog__item:nth-child(2) .servprog__item-text,
  .advantages--mtkoz .advantage-card:nth-child(6) .advantage-card__text,
  .advantages--mtprt .advantage-card:nth-child(6) .advantage-card__text,
  .advantages--mtmst .advantage-card:nth-child(6) .advantage-card__text,
  .advantages--dgmst .advantage-card:nth-child(6) .advantage-card__text,
  .page-toprt .experts__text + .experts__text,
  .page-toprt .servprog__item-text,
  .page-toprt .out-card__text,
  .page-tokoz .experts__text + .experts__text,
  .page-tokoz .servprog__item:nth-child(3) .servprog__item-text,
  .page-tokoz .servprog__item:nth-child(4) .servprog__item-text,
  .page-tomst .experts__text + .experts__text,
  .svcdiag-card:nth-child(4) .svcdiag-card__text { max-width: none; margin-right: 0; }
  .page-mtprt .outsource .swiper-slide[data-i="3"] .out-card__text { max-width: none; margin-right: 0; }
  .page-mtkoz .dgsteps .dgstep:nth-child(4) .dgstep__text + .dgstep__text { max-width: none; margin-right: 0; }
  .page-tomst .hero__lead br,
  .repair--mt .repair__title br,
  .repair--mt .repair-card__text br,
  .repair--mt .repair-card__title br,
  .hub-services--mt .hub-services__title br,
  .hub-services--mt .tile__title br,
  .repair--tomst .repair__title br,
  .repair--tomst .repair-card__text br,
  .svcdiag-card__text br,
  .advantages--tomst .advantage-card__text br,
  .faq--tomst .faq__q span br,
  .other--koz .tile__title br,
  .page-tokoz .servprog__item-text br,
  .page-tokoz .servprog__col-text p br,
  .page-tokoz .repair-card__text br,
  .page-toprt .servprog__item-text br,
  .page-toprt .servprog__col-text p br,
  .page-toprt .repair-card__text br,
  .page-toprt .out-card__text br,
  .page-toprt .faq__q span br,
  .page-mtkoz .repair-card__text br,
  .page-mtprt .repair-card__text br,
  .page-mtmst .repair-card__text br,
  .page-dgmst .repair-card__text br,
  .page-mtkoz .dgstep__text br,
  .page-mtprt .dgstep__text br,
  .page-mtmst .dgstep__text br,
  .page-dgmst .dgstep__text br,
  .page-mtkoz .servprog__item-text br,
  .page-mtprt .servprog__item-text br,
  .page-mtmst .servprog__item-text br,
  .page-dgmst .servprog__item-text br,
  .page-mtkoz .servprog__col-text p br,
  .page-mtprt .servprog__col-text p br,
  .page-mtmst .servprog__col-text p br,
  .page-dgmst .servprog__col-text p br,
  .page-mtkoz .advantage-card__text br,
  .page-mtprt .advantage-card__text br,
  .page-mtmst .advantage-card__text br,
  .page-dgmst .advantage-card__text br,
  .page-mtkoz .experts__alert-text br,
  .page-mtprt .experts__alert-text br,
  .page-mtmst .experts__alert-text br,
  .page-dgmst .experts__alert-text br,
  .page-mtkoz .out-card__title br,
  .page-mtkoz .out-card__text br,
  .page-mtprt .out-card__title br,
  .page-mtprt .out-card__text br,
  .page-mtprt .servprog__col-text p br,
  .page-mtmst .out-card__title br,
  .page-mtkoz .faq__q span br,
  .page-mtprt .faq__q span br,
  .page-mtmst .faq__q span br,
  .page-dgmst .faq__q span br,
  .page-dgkoz .repair-card__text br,
  .page-dgkoz .dgstep__text br,
  .page-dgkoz .servprog__item-text br,
  .page-dgkoz .servprog__col-text p br,
  .page-dgkoz .advantage-card__text br,
  .page-dgkoz .experts__alert-text br,
  .page-dgkoz .faq__q span br,
  .page-dgprt .repair-card__text br,
  .page-dgprt .dgstep__text br,
  .page-dgprt .servprog__item-text br,
  .page-dgprt .servprog__col-text p br,
  .page-dgprt .advantage-card__text br,
  .page-dgprt .out-card__title br,
  .page-dgprt .experts__alert-text br,
  .page-dgprt .faq__q span br { display: none; }

  .advantages--to .advantage-card:nth-child(2) .advantage-card__text { max-width: none; margin-right: 0; }
  .advantages--to .advantage-card__text br,
  .hub-services--to .tile__title br,
  .hub-services--to .hub-services__title br,
  .faq--to .faq__q span br { display: none; }
  /* заголовки плиток тут в три строки: на узкой колонке fs30 не влезает в фото */
  .hub-services--to .tile__title,
  .page-tomst .tile__title { font-size: 2.2rem; line-height: 2.6rem; }

  /* отрицательные отступы, которыми выровнены переносы на 1920, ниже 1280
     выносят текст за бокс — селекторы той же специфичности, что в main.css */
  .trust--pkp .trust-slide__title { max-width: none; margin-right: 0; }
  .page-remont-kb .servprog__item-text { max-width: none; margin-right: 0; }
  .page-remont-mst .servprog__item:nth-child(3) .servprog__item-text,
  .page-remont-mst .servprog__item:nth-child(4) .servprog__item-text,
  .page-remont-mst .repair-card:nth-child(1) .repair-card__text,
  .page-remont-mst .experts__alert-text,
  .page-remont-mst .outsource .swiper-slide[data-i="1"] .out-card__text { max-width: none; margin-right: 0; }
  .diag--main .diag__text { margin-right: 0; }
  /* жесткие переносы десктопа на узких распирают карточки */
  .page-remont-mst .repair-card__text br,
  .page-remont-mst .out-card__text br,
  .page-remont-mst .servprog__item-text br,
  .page-remont-mst .experts__alert-text br,
  .page-remont-mst .advantage-card__text br { display: none; }
  .page-remont-koz .repair-card__text,
  .page-remont-kb .repair-card__text,
  .page-remont-koz .format-card__subtitle { max-width: none; margin-right: 0; }
  .stages--pkp .stage-card:nth-child(2) .stage-card__title,
  .stages--pkp .stage-card:nth-child(4) .stage-card__text,
  .stages--pkp .stage-card:nth-child(1) .stage-card__text { max-width: none; margin-right: 0; }
  .advantages--put .advantage-card:nth-child(1) .advantage-card__text { max-width: none; margin-right: 0; }
  /* ниже 1280 rem фиксирован и колонки уже макетных — жёсткие переносы,
     расставленные по строкам Figma, начинают рвать текст в клочья.
     Гасим только там, где в разметке перед <br> стоит пробел, иначе слова слипнутся */
  .page-remont-koz .hero__lead br,
  .page-remont-koz .experts__text br,
  .page-remont-koz .repair-card__text br,
  .page-remont-koz .advantage-card__text br,
  .page-remont-koz .servprog__col-text p br,
  .page-remont-koz .servprog__item-text br,
  .page-remont-koz .servprog__foot-text br,
  .page-remont-koz .out-card__text br,
  .page-remont-koz .trust-slide__text br,
  .page-remont-koz .faq__q span br,
  .page-remont-koz .format-card__subtitle br { display: none; }

  /* главная: 1220 макета держатся на rem — ниже 1280 отдаем высоту контенту,
     а масштабную единицу баннера возвращаем к обычному rem, иначе calc-и
     из main.css сожмут декор и колонки под высоту окна */
  /* макетное пятно-подложка 1121x252 шире слайда уже с 1097 и не накрывает
     текст; вместо него — ровное затемнение всего слайда, иначе текст лежит
     на пестром фото и красный акцент на светлых участках не читается */
  .trust-slide__body::before { display: none; }
  .trust-slide__shade {
    background: linear-gradient(90deg, rgba(24, 24, 24, .9) 0%, rgba(24, 24, 24, .74) 100%);
  }
  .hero--main { --u: 1rem; min-height: 0; }
  .direction__text { max-width: none; }
  .hero__title--main { font-size: 90px; margin-top: 16px; }
  .hero__decor { margin-top: 60px; }
  .hero__directions { height: auto; margin: 60px 0 50px; }
  .direction { padding: 26px 20px; }
  .direction__title { font-size: 24px; line-height: 1.2; padding-top: 14px; }
  .direction__text { font-size: 18px; line-height: 1.3; margin-top: 12px; }
  .hub-services__all .btn { width: auto; height: 52px; font-size: 17px; }
  .promo__photo { height: 380px; }
  .header__nav, .header__contacts, .header__cta { display: none; }
  .burger { display: block; margin-left: auto; }
  .header__row { padding: 16px 0 18px; }

  .hero__lead { margin: 34px 0 60px; }
  /* ниже 1280 rem фиксирован — макетная геометрия в rem дает зум, возвращаем cover */
  .hero__bg, .hero--modern .hero__bg {
    inset: 0; width: auto; height: auto;
    background-size: cover; background-position: center;
  }
  /* у хабов новой редакции кадр держится позицией — общий center его сбивает */
  .hero--photo .hero__bg { background-position: 50% 64.8%; }
  .hero--modern .hero__crane {
    top: 0; bottom: 0; right: 0; width: 57%; height: auto;
    background-size: cover; background-position: right center;
  }
  .hero--modern .hero__glow { right: 8%; top: 45%; width: 47%; height: 60%; }
  .hero--mostovyh .hero__crane {
    top: 0; bottom: 0; right: 0; width: 57%; height: auto;
    background-size: cover; background-position: right center;
  }
  .hero--mostovyh .hero__glow,
  .hero--koz .hero__glow,
  .hero--port .hero__glow,
  .hero--kranbalok .hero__glow,
  .hero--smart .hero__glow { inset: auto; right: 8%; top: 45%; width: 47%; height: 60%; background: radial-gradient(50% 50% at 50% 50%, rgba(226, 44, 66, .45) 0%, transparent 70%); }
  .hero--koz .hero__crane, .hero--port .hero__crane, .hero--smart .hero__crane,
  .hero--kranbalok .hero__crane {
    top: 0; bottom: 0; right: 0; width: 57%; height: auto;
    background-size: cover; background-position: right center;
  }
  .hero--koz, .hero--port, .hero--smart, .hero--kranbalok { min-height: 0; }
  /* ниже 1280 макетная высота hero не действует — контент задает ее сам */
  .hero--hub { min-height: 0; }
  .hero--hub .hero__lead { margin: 34px 0 60px; max-width: none; }

  .hub-services__grid { gap: 30px; }
  .advantages--mosaic .advantages__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .advantages--serv .advantages__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .servprog__body { grid-template-columns: minmax(0, 1fr); }
  .servprog__col-list { border-left: 0; padding-left: 0; margin-top: 30px; }

  .solutions__grid { grid-template-columns: repeat(2, 1fr); }
  .stages__grid { grid-template-columns: repeat(2, 1fr); }
  .stage-card { min-height: 220px; }
  .stats__grid { grid-template-columns: 1fr; gap: 30px; }
  .stats__cards { max-width: 820px; }
  .footer__cols { grid-template-columns: 1fr 1fr; }
  .footer__contacts { grid-template-columns: auto 1fr; }
  /* пятна затемнения посчитаны под макетные 1620×546 — ниже 1280 сетка баннера
     перестраивается, и они попадают мимо текста; хватает ровной подложки */
  .diag__shade { background: rgba(24, 24, 24, .55); }
  .reasons__shade { background: linear-gradient(180deg, rgba(24, 24, 24, .35) 0%, rgba(24, 24, 24, .72) 100%); }

  .diag__grid { grid-template-columns: 1fr; padding: 40px 30px; min-height: 0; }
  .diag__phone-block { margin-top: 40px; }
  .geo__clients { justify-content: center; }
}

@media (max-width: 1023px) {
  /* три колонки макета не живут ниже 1024: сетка той же специфичности */
  .repair--mt .repair__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
  .repair--mt .repair-card, .repair--mt .repair-card:nth-child(n+4) { grid-column: auto; }
  .repair--mt .repair-card:nth-child(2) .repair-card__text { max-width: none; margin-right: 0; }

  .repair--dg .repair__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }

  .dgsteps__grid { grid-template-columns: minmax(0, 1fr); }
  .dgstep { min-height: 0; padding: 20px 20px 24px; }
  .dgstep__title { margin-top: 40px; }

  /* сетка из шести колонок держится только на десктопе: span 2 и span 3
     на узком дают колонку в 70px */
  .svcdiag__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }
  .svcdiag-card, .svcdiag-card:nth-child(n+4) { grid-column: auto; }
  .svcdiag__grid > .svcdiag-card:nth-child(n+4) { grid-row: auto; }

  .hero__title--main { font-size: 64px; }
  .hero__directions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .direction:nth-child(3) { border-left: 0; }
  .direction:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .2); }

  .about-us { padding: 40px 0 30px; }
  .about-us__title { margin: 20px 0 12px; }
  .about-us__lead { font-size: 17px; line-height: 1.3; }
  .about-us__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 28px; }
  .about-card { min-height: 0; padding: 18px 18px 22px; }
  .about-card__icon { width: 52px; height: 52px; }
  .about-card__icon img { width: 30px; height: auto; }
  .about-card__title, .about-card__num { font-size: 20px; line-height: 1.2; }
  .about-card__list li { font-size: 16px; line-height: 1.3; padding-left: 22px; }
  .about-card__list li::before { top: 4px; width: 13px; height: 13px; }
  .promo { padding-bottom: 30px; }
  .promo__photo { height: 300px; border-radius: 14px; }
  body { font-size: 18px; }

  .hub-services { padding: 40px 0 30px; }
  .hub-services__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 28px; }
  .hub-services__title { margin: 20px 0 12px; }
  .hub-services__lead { font-size: 17px; line-height: 1.3; }
  .service-card__body,
  .service-card--text-wide .service-card__body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 18px; }
  .service-card__title { font-size: 22px; line-height: 1.2; }
  .service-card__text { font-size: 15px; line-height: 1.25; padding-left: 16px; }
  .service-card__btn { height: 52px; font-size: 17px; margin-top: 18px; }
  .advantages__lead { font-size: 17px; line-height: 1.3; }
  .advantages--mosaic .advantages__title { margin: 20px 0 12px; }
  .advantages--mosaic .advantages__grid { gap: 16px; margin-top: 28px; }
  .advantages--mosaic .advantage-card { min-height: 0; }
  .advantages--mosaic .advantage-card__text { max-width: none; }
  .advantages__photo { min-height: 180px; }

  .experts { padding: 40px 0 30px; }
  .experts__grid { grid-template-columns: minmax(0, 1fr); }
  .experts__box { padding: 28px 24px 30px; }
  .experts__photo { min-height: 320px; }
  .experts__text { font-size: 17px; line-height: 1.3; }
  .experts__alert-title { font-size: 21px; line-height: 1.2; }
  .experts__alert-text { font-size: 16px; line-height: 1.3; }
  .experts__btn { font-size: 17px; min-height: 52px; }

  .formats__grid, .repair__grid, .faq__grid { grid-template-columns: minmax(0, 1fr); }
  /* специфичность как у .repair--prt в main.css */
  .repair--prt .repair__grid { grid-template-columns: minmax(0, 1fr); }
  .format-card__title { font-size: 24px; }
  .format-card__list li, .format-card__subtitle { font-size: 17px; line-height: 1.25; }
  .repair-card { min-height: 0; }
  .repair-card__title { font-size: 21px; margin-top: 24px; }
  .repair-card__text { font-size: 17px; line-height: 1.3; }

  .servprog__tabs { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .servprog__tab { min-height: 52px; font-size: 17px; }
  .servprog__head { padding: 28px 24px 26px; }
  .servprog__name { font-size: 26px; line-height: 1.2; }
  .servprog__subtitle, .servprog__col-text p, .servprog__foot-text { font-size: 17px; line-height: 1.3; }
  .servprog__body { padding: 28px 24px; }
  .servprog__list-title { font-size: 21px; }
  .servprog__item-title { font-size: 19px; }
  /* на узком макетный вынос текста за колонку не нужен */
  .servprog__item-text { font-size: 16px; margin-right: 0; }
  .servprog__foot { grid-template-columns: minmax(0, 1fr); padding: 24px; }
  /* макетная сетка 148/106/148 держится только на десктопе */
  .servprog__brands {
    grid-template-columns: repeat(auto-fit, minmax(96px, max-content));
    justify-content: flex-start;
    width: auto; max-width: none; margin-left: 0;
  }
  .servprog--tomst .servprog__brands {
    grid-template-columns: repeat(auto-fit, minmax(96px, max-content));
    width: auto;
  }
  .servprog__brand { padding: 0 14px; }

  .outsource__head, .trust__head, .other-services__head { flex-wrap: wrap; gap: 20px; }
  .other-services__head { grid-template-columns: minmax(0, 1fr); }
  .trust-slide { min-height: 0; padding: 28px 24px; }
  /* на узких ширинах отрицательный отступ заголовка (–6rem на 1920) выносит
     текст за слайд — клип-аудит ловит это как обрезку контента */
  .trust-slide__title { font-size: 21px; }
  .trust-slide__text, .trust-slide__label { font-size: 16px; line-height: 1.35; }
  .trust-slide__body { margin-top: 120px; }

  .faq__q { font-size: 18px; line-height: 1.25; }
  .faq__toggle { width: 38px; height: 38px; }
  .faq__toggle svg { width: 16px; height: 16px; }
  .faq__a { font-size: 16px; line-height: 1.35; }

  .intro { padding: 50px 0; }
  .intro__grid { grid-template-columns: 1fr; }
  .intro__photo { max-width: 640px; }
  .intro__text, .intro__note { font-size: 18px; }

  .reasons__slide { min-height: 480px; }
  .reasons__top { top: 40px; left: 30px; right: 30px; }
  .reasons__body { left: 30px; right: 30px; bottom: 30px; padding-right: 110px; }
  .reasons__pagination.swiper-pagination { top: 28px; left: 30px; }
  .reasons__nav { right: 30px; bottom: 30px; }
  .reasons__text { font-size: 18px; line-height: 1.25; }

  .about__grid, .smart-banner__grid { grid-template-columns: minmax(0, 1fr); }
  .about__photo, .smart-banner__photo { max-height: 420px; }
  .about__card { padding: 32px 28px 36px; }
  .smart-banner__card { padding: 32px 28px 36px; }

  .advantages__grid { grid-template-columns: repeat(2, 1fr); }
  .advantage-card { min-height: 0; }

  .consult__row { grid-template-columns: 1fr; }
  .consult__box { padding: 28px 24px 32px; }

  .cases__head, .other__head, .geo__head, .safety__head { flex-direction: column; align-items: flex-start; gap: 24px; }
  .case-card { height: auto; min-height: 340px; }

  .geo__stat { position: static; width: auto; max-width: 447px; margin-bottom: 20px; }
  .geo__map-wrap { padding-top: 0; }
  .geo__map { margin-top: 0; }

  .footer__contacts { font-size: 20px; gap: 24px 40px; padding: 36px 0; }
  .footer__address { font-size: 18px; }
  .footer__emails .note { font-size: 16px; }

  .modal__box { padding: 32px 64px 36px 28px; }
  .modal__close { top: 24px; right: 24px; }
  .modal__text, .modal__label, .modal__list { font-size: 19px; line-height: 1.3; }

  /* десктопные строки в rem держат пропорцию фото — на узких экранах
     колонок меньше, высоту задает контент, фото — aspect-ratio ячейки */
}

@media (max-width: 767px) {
  .repair--mt .repair__grid { grid-template-columns: minmax(0, 1fr); }
  .repair--dg .repair__grid { grid-template-columns: minmax(0, 1fr); }

  .svcdiag__grid { grid-template-columns: minmax(0, 1fr); }

  .hero__title--main { font-size: 42px; margin-top: 14px; }
  .hero__decor { margin-top: 34px; width: 120px; }
  .hero__decor::after { width: 62px; }
  .hero__directions {
    grid-template-columns: minmax(0, 1fr);
    margin: 40px 0 36px; border-radius: 14px;
  }
  .direction { padding: 20px 18px; }
  .direction + .direction { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
  .direction:nth-child(3) { border-left: 0; }
  .direction__title { font-size: 20px; }
  .direction__text { font-size: 16px; }
  .promo__photo { height: 220px; }
  body { font-size: 17px; }
  .container { width: min(var(--container), 100% - 32px); }

  /* на 320 длинные слова («противораскачивания») шире колонки: переносим
     по слогам, а не выпихиваем страницу вбок */
  .section-title, .safety__head > div { hyphens: auto; min-width: 0; }

  .hero__crane { width: 100%; opacity: .45; background-image: url('../img/hero-crane-768.webp'); }
  .hero--koz .hero__crane { background-image: url('../img/hero-crane-koz-768.webp'); }
  .hero--port .hero__crane { background-image: url('../img/hero-crane-port-768.webp'); }
  /* отдельного 768-ассета для кран-балок нет — держим десктопный рендер */
  .hero--kranbalok .hero__crane { background-image: url('../img/hero-crane-kranbalok.webp'); }
  .hero__overlay { background: linear-gradient(90deg, rgba(24, 24, 24, .9) 0%, rgba(24, 24, 24, .55) 100%); }
  .breadcrumbs { padding-top: 20px; font-size: 12px; }
  .hero__title { margin-top: 22px; }
  .hero__lead { font-size: 17px; margin: 24px 0 44px; }
  .hero--hub .hero__lead { margin: 24px 0 44px; }

  /* макетные переносы карточек рассчитаны на 1920 — на узких ломают колонку */
  .service-card__title br, .service-card__text br { display: none; }

  .hub-services { padding: 34px 0 24px; }
  .hub-services__grid { gap: 20px; margin-top: 24px; }
  .hub-services__lead { font-size: 16px; }
  /* заголовок над описанием: в две колонки на телефоне не читается */
  .service-card__body,
  .service-card--text-wide .service-card__body { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 16px; }
  .service-card__title { font-size: 20px; }
  .service-card__text { border-left: 0; padding-left: 0; font-size: 15px; }
  .service-card__btn { height: 48px; font-size: 16px; margin-top: 16px; }
  .advantages__lead { font-size: 16px; }
  .advantages--mosaic .advantages__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 24px; }
  .advantages--serv .advantages__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .advantages__photo { min-height: 200px; }
  .experts__photo { min-height: 240px; }
  .format-card__head, .format-card__foot, .format-card__list { padding: 18px 16px; }
  .format-card__title { font-size: 21px; }
  /* на 320px бейдж со сроком не влезает рядом с заголовком */
  .format-card__head-row { flex-wrap: wrap; gap: 10px; }
  .format-card__badge { font-size: 16px; padding: 4px 12px; }
  /* высота от контента: длинные тексты ремонта выталкивали заголовок за верх карточки */
  .out-card { height: auto; min-height: 260px; padding-top: 80px; }

  .section-badge { font-size: 13px; padding: 4px 16px; }

  .intro__title { margin-top: 24px; }
  .intro__chips { gap: 10px; }
  .chip { font-size: 15px; padding: 6px 14px; }

  .reasons__slide { height: auto; min-height: 420px; }
  .reasons__heading { font-size: 21px; line-height: 1.25; }
  .reasons__text { font-size: 16px; }
  .reasons__body { position: static; padding: 120px 20px 80px; max-width: none; }
  .reasons__body::before { inset: 0; background: linear-gradient(180deg, rgba(24, 24, 24, 0) 0%, rgba(24, 24, 24, .78) 45%); }
  .reasons__top { top: 64px; left: 20px; right: 20px; }
  .reasons__pagination.swiper-pagination { top: 44px; left: 20px; }
  .reasons__nav { right: 16px; bottom: 16px; }
  .reasons__arrow, .slider-arrow, .effect__arrow { width: 44px; height: 44px; }

  .solutions__grid { grid-template-columns: 1fr; }
  .solution-card__title { font-size: 21px; line-height: 1.2; }
  .solution-card__text { font-size: 16px; }
  .solution-card__more { font-size: 20px; }

  .effect__head { flex-direction: column; align-items: flex-start; gap: 20px; margin: 24px 0 28px; }
  .effect-card { min-height: 240px; }
  .effect-card__title { font-size: 19px; line-height: 1.25; }
  .effect-card__caption { font-size: 15px; line-height: 1.25; }

  .stages__grid { grid-template-columns: 1fr; }
  .stage-card { min-height: 0; gap: 14px; }
  .stage-card--photo { min-height: 200px; }
  .stage-card__num { font-size: 32px; line-height: 1.2; }
  .stage-card__title { font-size: 21px; line-height: 1.2; }
  /* на узком макетный вынос за колонку не нужен */
  .stage-card__text, .stages--smart .stage-card__text { font-size: 16px; margin-right: 0; }

  .about__text { font-size: 17px; line-height: 1.35; }
  .about__highlight-title { font-size: 20px; line-height: 1.25; }
  .about__highlight-text { font-size: 16px; }
  /* фиксированная ширина кнопки из десктопного модификатора шире экрана */
  .about__btn { margin-top: 28px; width: 100%; }

  .stats__cards { grid-template-columns: 1fr; }
  .stats__btn { width: 100%; }
  .stats__text { margin-top: 24px; }

  .advantages__grid { grid-template-columns: 1fr; }
  .advantage-card__title { font-size: 21px; }
  .advantage-card__text { font-size: 16px; }

  .consult__agree, .diag__agree { font-size: 16px; }

  .case-card { flex-direction: column; }
  .case-card__photo { width: 100%; height: 220px; }
  .case-card__link { margin-top: 20px; }
  .cases__all .btn { width: 100%; }

  .geo__head .btn { width: 100%; }
  .geo__stat-caption { font-size: 16px; }
  .geo__logo { width: 110px; height: 52px; }

  .other-card__photo { height: 240px; }
  .other-card__row { grid-template-columns: 1fr; gap: 12px; }
  .other-card__row::before { display: none; }

  .diag__grid { padding: 28px 20px; }
  .diag__form-row { grid-template-columns: 1fr; }
  .diag__phone-block { margin-top: 32px; }

  .modal { padding: 16px; }
  .modal__box { padding: 24px 20px 28px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); }
  .modal__close { top: 16px; right: 16px; }
  .modal__close svg { width: 22px; height: 22px; }
  .modal__title { padding-right: 44px; }
  .modal__text, .modal__label, .modal__list { font-size: 17px; }
  .modal__list li { padding-left: 22px; }
  .modal__list li::before { left: 8px; top: 10px; }

  .footer__contacts { grid-template-columns: 1fr; gap: 20px; }
  .footer__cols { grid-template-columns: 1fr; gap: 32px; padding: 32px 0; }
  .footer__logo img { height: 64px; }
  .footer__bottom { flex-direction: column; gap: 10px; padding: 24px 0 32px; }

  [data-reveal] { transform: translateY(20px); }
}

@media (max-width: 479px) {
  /* «ПУСКОНАЛАДКА И ФУНКЦИОНАЛЬНЫЕ ПРОВЕРКИ»: в uppercase слово шире карточки */
  .dgstep__title { overflow-wrap: anywhere; }

  /* длинные составные слова («опорно-поворотное») распирают карточку на 320 */
  .repair--mt .repair-card,
  .repair--dg .repair-card,
  .repair--dgprt .repair-card,
  .repair--dgkoz .repair-card,
  .repair--mtkoz .repair-card { overflow-wrap: anywhere; }
  .repair--mtprt .repair-card { overflow-wrap: anywhere; }
  .repair--mtmst .repair-card { overflow-wrap: anywhere; }
  .repair--dgmst .repair-card { overflow-wrap: anywhere; }

  .container { width: min(var(--container), 100% - 24px); }
  .btn { padding: 14px 24px; font-size: 16px; width: 100%; }
  .header__logo img { height: 36px; }
  .hero__lead { font-size: 16px; }
  .consult__input, .diag__input, .diag__file-label, .consult__submit, .diag__submit { height: 56px; }
  .mobile-menu__list a { font-size: 21px; }
  .effect-card { min-height: 220px; }
  .geo__logo { width: calc(50% - 10px); }
  /* в бегущей строке ряд не переносится: процент от трека дал бы рост без предела */
  .geo__clients.is-marquee .geo__logo { width: 110px; }
}

@media (hover: none) and (pointer: coarse) {
  .solution-card:hover { transform: none; box-shadow: none; }
}

/* плитки услуг на главной */
@media (max-width: 1023px) {
  .hub-services--main .hub-services__grid { gap: 24px; margin-top: 28px; }
  .tile__title { font-size: 22px; }
  .tile__text { font-size: 15px; line-height: 1.3; }
  .tile__arrow { width: 52px; height: 52px; }
  .tile__caption { left: 16px; right: 16px; bottom: 16px; }
  .tile:hover .tile__caption { bottom: 16px; }
}
@media (max-width: 767px) {
  .tile__title { font-size: 20px; }
  .hub-services--to .tile__title,
  .page-tomst .tile__title { font-size: 17px; line-height: 1.2; }
  .tile__text { font-size: 14px; }
  .tile__arrow { width: 44px; height: 44px; }
}
/* без курсора описание не раскрыть — показываем его сразу */
@media (hover: none) and (pointer: coarse) {
  .tile__reveal { grid-template-rows: 1fr; }
  .tile__arrow { opacity: 1; }
  .tile::after { background: linear-gradient(180deg, rgba(35, 31, 32, .56) 0%, rgba(35, 31, 32, 1) 100%); }
}

/* ниже 1280 rem снова равен 10px, а контейнер уже макетного: макетные
   переносы и фиксированные высоты рядов (324/302) начинают резать текст */
@media (max-width: 1279px) {
  .advantages--approach .advantage-card__text br { display: none; }
  .advantages--approach .advantage-card__text { max-width: none !important; }
  .advantages--approach .advantages__grid { grid-template-rows: none; }
  /* макетные ширины текстовых фреймов главной — тоже только для 1920 */
  .hub-services--prod .service-card__note,
  .about-card--narrow .about-card__list { max-width: none; }
}
@media (max-width: 1023px) {
  .advantages--approach .advantages__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}
@media (max-width: 767px) {
  .advantages--approach .advantages__grid { grid-template-columns: minmax(0, 1fr); }
}

/* «Комплексные инженерные решения»: на узком фото уходит под текст */
@media (max-width: 1279px) {
  .solution__text, .solution__note-text { max-width: none !important; }
  .solution__text br { display: none; }
}
@media (max-width: 1023px) {
  .solution { padding: 40px 0 30px; }
  .solution__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 28px; }
  .solution__box { padding: 24px 20px 28px; }
  .solution__text { font-size: 17px; line-height: 1.35; }
  .solution__note { margin-top: 24px; padding: 16px 18px 18px; }
  .solution__note-title { font-size: 19px; line-height: 1.25; }
  .solution__note-text { font-size: 16px; line-height: 1.35; }
  .solution__btn { width: 100%; height: 52px; font-size: 17px; }
  .solution__photo { height: 280px; }
}
@media (max-width: 767px) {
  .solution__note-title { font-size: 18px; }
  .solution__text, .solution__note-text { font-size: 15px; }
  .solution__photo { height: 220px; }
}

/* страницы автоматизации: чипы, гарантии, плитки «Других услуг» */
@media (max-width: 1279px) {
  .solution__chips { max-width: none; }
  .solution--avtm .solution__box { padding-right: 5rem; }
  .solution--avtm .solution__photo { height: auto; }
  .solutions--avtm .solution-card__text { margin-right: 0; }
  .solutions--avtm .solution-card__text br { display: none; }
  .stages--avtm .stage-card__text { margin-right: 0; }
  .stages--avtm .stage-card__text br { display: none; }
  .effect--avtm .effect-card__caption { max-width: none !important; margin-right: 0 !important; }
  .about--avtm .about__text, .about--avtm .about__lead { max-width: none; }
  .guarantee__text { max-width: none; }
  .smart-banner--avtm .smart-banner__text { max-width: none; }
}
@media (max-width: 1023px) {
  .solution--avtm .solution__box { padding: 24px 20px 28px; }
  .guarantee { padding: 0 0 30px; }
  .guarantee__box { padding: 24px 20px 28px; }
  .guarantee__text { font-size: 17px; line-height: 1.35; margin-top: 12px; }
  .other--tiles { padding: 40px 0; }
  .other--tiles .other__head { margin-bottom: 24px; }
  .other__nav { margin-top: 0; }
  .other__arrow { width: 44px; height: 44px; }
  .other__title { margin-top: 24px; }
}
@media (max-width: 767px) {
  .guarantee__text { font-size: 15px; }
}
@media (max-width: 1023px) {
  .about--avtm .about__btn { width: 100%; height: 52px; font-size: 17px; }
}
@media (max-width: 1023px) {
  .reasons--avtm .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* «Автоматизация козловых» — те же сбросы, что у мостовых */
@media (max-width: 1279px) {
  .solution--avtk .solution__box { padding-right: 5rem; }
  .solution--avtk .solution__photo { height: auto; }
  .solutions--avtk .solution-card__text { margin-right: 0; }
  .solutions--avtk .solution-card__text br { display: none; }
  .stages--avtk .stage-card__text { margin-right: 0; }
  .stages--avtk .stage-card__text br { display: none; }
  .stages--avtk .stages__grid { grid-auto-rows: auto; }
  .stages--avtk .stage-card { min-height: 0; }
  .stages--avtk .stages__lead { max-width: none; }
  .effect--avtk .effect-card__caption { max-width: none !important; margin-right: 0 !important; }
  .about--avtk .about__text, .about--avtk .about__lead,
  .about--avtk .about__highlight-title, .about--avtk .about__highlight-text { max-width: none; }
  .guarantee--avtk .guarantee__text { max-width: none; }
  .smart-banner--avtk .smart-banner__text { max-width: none; }
}
@media (max-width: 1023px) {
  .solution--avtk .solution__box { padding: 24px 20px 28px; }
  .about--avtk .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--avtk .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .stages--avtk .stage-card__text { font-size: 16px; }
}

/* «Автоматизация портальных» — те же сбросы */
@media (max-width: 1279px) {
  .solution--avtp .solution__box { padding-right: 5rem; }
  .solution--avtp .solution__photo { height: auto; }
  .solutions--avtp .solution-card__text { margin-right: 0; }
  .solutions--avtp .solution-card__text br { display: none; }
  .stages--avtp .stage-card__text { margin-right: 0; }
  .stages--avtp .stage-card__text br { display: none; }
  .stages--avtp .stages__lead { max-width: none; }
  .effect--avtp .effect-card__caption { max-width: none !important; margin-right: 0 !important; }
  .about--avtp .about__text, .about--avtp .about__lead { max-width: none; }
  .smart-banner--avtp .smart-banner__text { max-width: none; }
}
@media (max-width: 1023px) {
  .solution--avtp { padding-bottom: 30px; }
  .solution--avtp .solution__box { padding: 24px 20px 28px; }
  .about--avtp .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--avtp .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* «Автоматизация грейферных» — те же сбросы */
@media (max-width: 1279px) {
  .solution--avtg .solution__box { padding-right: 5rem; }
  .solution--avtg .solution__photo { height: auto; }
  .solutions--avtg .solution-card__text { margin-right: 0; }
  .solutions--avtg .solution-card__text br { display: none; }
  .stages--avtg .stage-card__text { margin-right: 0; }
  .stages--avtg .stage-card__text br, .stages--avtg .stage-card__title br { display: none; }
  .stages--avtg .stages__grid { grid-auto-rows: auto; }
  .stages--avtg .stage-card { min-height: 0; }
  .stages--avtg .stages__lead { max-width: none; }
  .effect--avtg .effect-card__caption { max-width: none !important; }
  .about--avtg .about__card { padding-right: 5rem; }
  .about--avtg .about__text, .about--avtg .about__lead,
  .about--avtg .about__highlight-title, .about--avtg .about__highlight-text { max-width: none; }
  .guarantee--avtg .guarantee__text { max-width: none; }
  .smart-banner--avtg .smart-banner__text { max-width: none; }
}
@media (max-width: 1023px) {
  .solution--avtg .solution__box { padding: 24px 20px 28px; }
  .about--avtg .about__card { padding: 24px 20px 28px; }
  .about--avtg .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--avtg .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* «Удаленное управление кранами» */
@media (max-width: 1279px) {
  .solution--udal .solution__row { grid-template-columns: minmax(0, 1fr); }
  .solution--udal .solution__row .solution__pic img,
  .solution--udal .solution__row--rev .solution__pic img { height: auto; }
  .solution--udal .solution__row--rev { display: flex; flex-direction: column-reverse; }
  .solution--udal .solution__row--rev .solution__title { margin-right: 0; }
  .solution__lead, .solution__list li { max-width: none; }
  .solution__list li br { display: none; }
  .reasons--udal .reasons__lead { max-width: none; }
  .reasons--udal .reasons__lead br,
  .reasons--udal .reasons__text br { display: none; }
  .reasons--udal .reasons__text { max-width: none !important; }
  .solutions--udal .solutions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .solutions--udal .solution-card,
  .solutions--udal .solution-card--wide { grid-column: auto; }
  .solutions--udal .solution-card__text { max-width: none !important; }
  .solutions--udal .solution-card__title { margin-right: 0; }
  .effect--udal .effect__lead { max-width: none; }
  .effect--udal .effect__lead br { display: none; }
  .effect--udal .effect-card__caption,
  .effect-card__more { max-width: none !important; margin-right: 0 !important; }
  .smart-banner--udal .smart-banner__text,
  .smart-banner__chips, .smart-banner__note { max-width: none; }
  .smart-banner--udal .smart-banner__photo img { height: auto; }
  .stages--udal .stage-card__text { max-width: none !important; margin-right: 0 !important; }
  .stages--udal .stage-card__title br { display: none; }
  .about--udal .about__text { max-width: none !important; margin-right: 0 !important; }
  .about--udal .about__text br { display: none; }
  .about--udal .about__photo { height: auto; }
  .advantages--udal .advantage-card__text { max-width: none; }
  .faq--udal .faq__q span { max-width: none; }
  .hero--udal { min-height: 0; }
  .hero--udal .hero__title br,
  .hero--udal .hero__lead--wide br { display: none; }
}
@media (max-width: 1023px) {
  .solutions--udal .solutions__grid { grid-template-columns: minmax(0, 1fr); }
  .smart-banner--udal .smart-banner__card { padding: 24px 20px 28px; }
  .smart-banner--udal .smart-banner__btn { width: 100%; height: 52px; font-size: 17px; white-space: normal; }
  .about--udal .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .solution--udal .solution__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--udal .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .effect-card__more { max-height: none; margin-top: 6px; opacity: 1; }
}
@media (max-width: 767px) {
  .solution__lead, .solution__list li { font-size: 15px; }
  .more-link { font-size: 17px; padding-top: 12px; }
}

/* хаб «Модернизация» новой редакции */
@media (max-width: 1279px) {
  .hero--modn { min-height: 0; }
  .hero--modn .hero__title,
  .hero--modn .hero__lead--wide { max-width: none; }
  .hero--modn .hero__lead--wide br { display: none; }
  .hub-services--modn .hub-services__title,
  .hub-services--modn .hub-services__lead { max-width: none; }
  .hub-services--modn .hub-services__title br { display: none; }
  .advantages--modn .advantages__lead { max-width: none; }
  .advantages--modn .advantage-card__text { max-width: none !important; margin-right: 0 !important; }
  .advantages--modn .advantage-card__text br { display: none; }
}

/* «Модернизация мостовых» новой редакции */
@media (max-width: 1279px) {
  .hero--modm { min-height: 0; }
  .hero--modm .hero__title,
  .hero--modm .hero__lead--wide { max-width: none; }
  .hero--modm .hero__lead--wide br { display: none; }
  .solution--modm .solution__row { grid-template-columns: minmax(0, 1fr); }
  .solution--modm .solution__pic { margin-top: 0; }
  .solution--modm .solution__pic img { height: auto; }
  .solution--modm .solution__lead,
  .solution--modm .solution__chips + .solution__lead,
  .solution--modm .solution__note,
  .solution--modm .solution__note-text { max-width: none; }
  .solution--modm .solution__lead br,
  .solution__caption br { display: none; }
  .reasons--modm .reasons__text,
  .reasons--modm .reasons__heading { max-width: none !important; }
  .reasons--modm .reasons__text br { display: none; }
  .solutions--modm .solution-card__text { max-width: none !important; margin-right: 0 !important; }
  .solutions--modm .solution-card__text br { display: none; }
  .smart-banner--modm .smart-banner__title,
  .smart-banner--modm .smart-banner__text { max-width: none; }
  .smart-banner--modm .smart-banner__title br { display: none; }
  .smart-banner--modm .smart-banner__photo img { height: auto; }
  .effect--modm .effect-card__caption { max-width: none !important; }
  .effect--modm .effect-card__caption br { display: none; }
  .stages--modm .stages__lead { max-width: none; }
  .stages--modm .stage-card__text { max-width: none !important; margin-right: 0 !important; }
  .stages--modm .stage-card__text br { display: none; }
  .about--modm .about__lead,
  .about--modm .about__text,
  .about--modm .about__highlight-title,
  .about--modm .about__highlight-text { max-width: none !important; margin-right: 0 !important; }
  .guarantee--modm .guarantee__text { max-width: none; }
  .faq--modm .faq__q span { max-width: none; }
  .faq--modm .faq__a br { display: none; }
}
@media (max-width: 1023px) {
  .solution--modm .solution__note { padding: 18px 20px 20px; }
  .solution__caption { position: static; margin-top: 12px; padding: 14px 16px; }
  .smart-banner--modm .smart-banner__card { padding: 24px 20px 28px; }
  .smart-banner--modm .smart-banner__btn { width: 100%; height: 52px; font-size: 17px; white-space: normal; }
  .about--modm .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--modm .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .stages--modm .stage-card { min-height: 220px; }
}

/* «Модернизация козловых» новой редакции */
@media (max-width: 1279px) {
  .hero--modk { min-height: 0; }
  .hero--modk .hero__title,
  .hero--modk .hero__lead--wide { max-width: none; }
  .hero--modk .hero__lead--wide br { display: none; }
  .solution--modk .solution__row { grid-template-columns: minmax(0, 1fr); }
  .solution--modk .solution__pic { margin-top: 0; }
  .solution--modk .solution__pic img { height: auto; }
  .solution--modk .solution__lead,
  .solution--modk .solution__chips + .solution__lead,
  .solution--modk .solution__note,
  .solution--modk .solution__note-text { max-width: none; }
  .solution--modk .solution__lead br,
  .solution__caption br { display: none; }
  .reasons--modk .reasons__text,
  .reasons--modk .reasons__heading { max-width: none !important; }
  .reasons--modk .reasons__text br { display: none; }
  .solutions--modk .solution-card__text { max-width: none !important; margin-right: 0 !important; }
  .solutions--modk .solution-card__text br { display: none; }
  .smart-banner--modk .smart-banner__title,
  .smart-banner--modk .smart-banner__text { max-width: none; }
  .smart-banner--modk .smart-banner__title br { display: none; }
  .smart-banner--modk .smart-banner__photo img { height: auto; }
  .effect--modk .effect-card__caption { max-width: none !important; }
  .effect--modk .effect-card__caption br { display: none; }
  .stages--modk .stages__lead { max-width: none; }
  .stages--modk .stage-card__text { max-width: none !important; margin-right: 0 !important; }
  .stages--modk .stage-card__text br { display: none; }
  .about--modk .about__lead,
  .about--modk .about__text,
  .about--modk .about__highlight-title,
  .about--modk .about__highlight-text { max-width: none !important; margin-right: 0 !important; }
  .guarantee--modk .guarantee__text { max-width: none; }
  .faq--modk .faq__q span { max-width: none; }
  .faq--modk .faq__a br { display: none; }
}
@media (max-width: 1023px) {
  .solution--modk .solution__note { padding: 18px 20px 20px; }
  .solution__caption { position: static; margin-top: 12px; padding: 14px 16px; }
  .smart-banner--modk .smart-banner__card { padding: 24px 20px 28px; }
  .smart-banner--modk .smart-banner__btn { width: 100%; height: 52px; font-size: 17px; white-space: normal; }
  .about--modk .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--modk .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .stages--modk .stage-card { min-height: 220px; }
}

/* «Модернизация портальных» новой редакции */
@media (max-width: 1279px) {
  .hero--modp { min-height: 0; }
  .hero--modp .hero__title,
  .hero--modp .hero__lead--wide { max-width: none; }
  .hero--modp .hero__lead--wide br { display: none; }
  .solution--modp .solution__row { grid-template-columns: minmax(0, 1fr); }
  .solution--modp .solution__pic { margin-top: 0; }
  .solution--modp .solution__pic img { height: auto; }
  .solution--modp .solution__lead,
  .solution--modp .solution__chips + .solution__lead,
  .solution--modp .solution__note,
  .solution--modp .solution__note-text { max-width: none; }
  .solution--modp .solution__lead br,
  .solution__caption br { display: none; }
  .reasons--modp .reasons__text,
  .reasons--modp .reasons__heading { max-width: none !important; }
  .reasons--modp .reasons__text br { display: none; }
  .solutions--modp .solution-card__text { max-width: none !important; margin-right: 0 !important; }
  .solutions--modp .solution-card__text br { display: none; }
  .smart-banner--modp .smart-banner__title,
  .smart-banner--modp .smart-banner__text { max-width: none; }
  .smart-banner--modp .smart-banner__title br { display: none; }
  .smart-banner--modp .smart-banner__photo img { height: auto; }
  .effect--modp .effect-card__caption { max-width: none !important; }
  .effect--modp .effect-card__caption br { display: none; }
  .stages--modp .stages__lead { max-width: none; }
  .stages--modp .stage-card__text { max-width: none !important; margin-right: 0 !important; }
  .stages--modp .stage-card__text br { display: none; }
  .about--modp .about__lead,
  .about--modp .about__text,
  .about--modp .about__highlight-title,
  .about--modp .about__highlight-text { max-width: none !important; margin-right: 0 !important; }
  .guarantee--modp .guarantee__text { max-width: none; }
  .faq--modp .faq__q span { max-width: none; }
  .faq--modp .faq__a br { display: none; }
}
@media (max-width: 1023px) {
  .solution--modp .solution__note { padding: 18px 20px 20px; }
  .solution__caption { position: static; margin-top: 12px; padding: 14px 16px; }
  .smart-banner--modp .smart-banner__card { padding: 24px 20px 28px; }
  .smart-banner--modp .smart-banner__btn { width: 100%; height: 52px; font-size: 17px; white-space: normal; }
  .about--modp .about__btn { width: 100%; height: 52px; font-size: 17px; }
  .reasons--modp .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .stages--modp .stage-card { min-height: 220px; }
}


/* «Перевод кранов на радиоуправление» */
@media (max-width: 1279px) {
  .hero--rad { min-height: 0; }
  .hero--rad .hero__title,
  .hero--rad .hero__lead--wide { max-width: none; }
  .hero--rad .hero__lead--wide br { display: none; }
  .solution--rad .solution__text,
  .solution--rad .solution__note,
  .solution--rad .solution__note-text { max-width: none; }
  .solution--rad .solution__photo { height: auto; }
  .advantages--rad .advantage-card__text { max-width: none !important; margin-right: 0 !important; }
  .solutions--rad .solution-card__text { max-width: none !important; }
  .solutions--rad .solution-card__text br { display: none; }
  .reasons--rad .reasons__heading,
  .reasons--rad .reasons__text { max-width: none !important; }
  .reasons--rad .reasons__text br { display: none; }
  .smart-banner--rad .smart-banner__title,
  .smart-banner--rad .smart-banner__text { max-width: none; }
  .smart-banner--rad .smart-banner__title br { display: none; }
  .smart-banner--rad .smart-banner__photo img { height: auto; }
  .stages--rad .stage-card__title,
  .stages--rad .stage-card__text { max-width: none !important; margin-right: 0 !important; }
  .stages--rad .stage-card__text br { display: none; }
  .effect--rad .effect-card__caption { max-width: none !important; margin-right: 0 !important; }
  .faq--rad .faq__q span { max-width: none; }
  .faq--rad .faq__a br { display: none; }
}
@media (max-width: 1023px) {
  .solution--rad .solution__note { padding: 18px 20px 20px; }
  .solution--rad .solution__btn { width: 100%; height: 52px; font-size: 17px; }
  .smart-banner--rad .smart-banner__btn { width: 100%; height: 52px; font-size: 17px; white-space: normal; }
  .reasons--rad .reasons__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .stages--rad .stage-card { min-height: 220px; }
}


/* «Смарт-опции для кранов» */
@media (max-width: 1279px) {
  .hero--smart { min-height: 0; }
  .hero--smart .hero__title,
  .hero--smart .hero__lead--wide { max-width: none; }
  .solution--smart .solution__box { padding: 30px 20px 32px; }
  .solution--smart .solution__text,
  .solution--smart .solution__note,
  .solution--smart .solution__note-text { max-width: none; }
  .solution--smart .solution__text br { display: none; }
  .solution--smart .solution__photo { height: auto; }
  .advantages--smart .advantages__grid { grid-template-rows: auto; }
  .advantages--smart .advantage-card__text { max-width: none !important; margin-right: 0 !important; }
  .advantages--smart .advantage-card__title { margin-right: 0 !important; }
  .advantages--smart .advantage-card__text br { display: none; }
  .solutions--smart .solution-card,
  .solutions--osn .solution-card { min-height: 0; }
  .solutions--smart .solution-card__text,
  .solutions--osn .solution-card__text { max-width: none !important; }
  .solutions--smart .solution-card__text br,
  .solutions--osn .solution-card__text br { display: none; }
  .solutions--osn .solution-card:nth-child(n+4) { min-height: 0; }
  .effect--smart .effect-card__caption { max-width: none !important; margin-right: 0 !important; }
  .effect--smart .effect-card__caption br { display: none; }
  .stages--smart .stage-card__title,
  .stages--smart .stage-card__text { max-width: none !important; margin-right: 0 !important; }
  .stages--smart .stage-card__title br,
  .stages--smart .stage-card__text br { display: none; }
  .faq--smart .faq__q span { max-width: none; }
  .faq--smart .faq__a br { display: none; }
}
@media (max-width: 1023px) {
  .solution--smart .solution__btn { width: 100%; height: 52px; font-size: 17px; }
  .solutions--smart .solution-card__photo { height: auto; }
  .stages--smart .stage-card,
  .stages--smart .stage-card:nth-child(n+5) { min-height: 220px; }
  .effect--smart .effect-card { min-height: 260px; }
}
