
/* Montserrat — вариативный: один файл на все веса вместо шести копий
   (400/500/600 были байт в байт одинаковы и грузились по три раза) */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url('../fonts/montserrat-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url('../fonts/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ₽ нет ни в кириллическом, ни в латинском сабсете — без этого файла символ
   рисовался фолбэком (Arial с size-adjust) и вылезал за строку */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url('../fonts/montserrat-ruble.woff2') format('woff2');
  unicode-range: U+20BD;
}
/* при font-display: block этот шрифт НЕ рисуется — он только держит геометрию,
   пока woff2 в пути, чтобы рамки и линии не дергались. Коэффициент разный по
   весам: у Arial свое соотношение regular/bold, одним числом не сходится */
@font-face {
  font-family: 'Montserrat Fallback';
  font-weight: 100 450;
  src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans');
  size-adjust: 112.3%;
  ascent-override: 86.4%;
  descent-override: 22.3%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Montserrat Fallback';
  font-weight: 451 550;
  src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans');
  size-adjust: 110.6%;
  ascent-override: 87.7%;
  descent-override: 22.6%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Montserrat Fallback';
  font-weight: 551 900;
  src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans');
  size-adjust: 110%;
  ascent-override: 88.2%;
  descent-override: 22.7%;
  line-gap-override: 0%;
}

:root {
  --c-accent: #E22C42;
  --c-dark: #181818;
  --c-dark-2: #1B1B1B;
  --c-text: #1C1C1C;
  --c-grey: #666666;
  --c-muted: #5C5C5C;
  --c-line: #DCDCDC;
  --c-line-light: #E7E7E7;
  --c-bg-light: #F8F8F8;
  --c-bg-soft: #F0F0F0;
  --c-white: #FFFFFF;
  --c-green: #2AFF00;

  --font-main: 'Montserrat', 'Montserrat Fallback', Arial, sans-serif;
  --container: 162rem;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  /* 1rem = 10px на макете 1920px */
  font-size: 10px;
}
/* 1280–1920px: пропорциональное масштабирование макета (на 1440 и уже —
   нижний предел 0.75, чтобы текст оставался читаемым); ниже 1280 — адаптив
   на брейкпоинтах, rem снова равен макетным px */
@media (min-width: 1280px) {
  html { font-size: clamp(7.5px, 100vw / 192, 10px); }
}

body {
  font-family: var(--font-main);
  font-size: 2rem;
  line-height: 1.2;
  color: var(--c-text);
  background: var(--c-white);
  overflow-x: hidden;
  overflow-x: clip;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font: inherit; border: 0; background: none; cursor: pointer; }
a, button { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }

.container {
  width: min(var(--container), 100% - 4.8rem);
  margin-inline: auto;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* красный текст в макете — medium; исключения — название компании и «Читать подробнее», они 600 */
.accent { color: var(--c-accent); font-weight: 500; }
b, strong, b.accent { font-weight: 600; }


.btn {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--c-accent); color: var(--c-white);
  font-weight: 500; font-size: 1.8rem; line-height: 1.2;
  border-radius: 6rem; padding: 1.8rem 4.8rem;
  transition: background .2s ease;
}
.btn:hover { background: #c92438; }

.section-badge {
  display: inline-flex; align-items: center; gap: 0.8rem;
  background: var(--c-dark-2); color: var(--c-line);
  font-size: 1.5rem; line-height: 1.2;
  border-radius: 3rem; padding: 0.5rem 2.2rem;
}
.section-badge::before {
  content: ''; width: 0.6rem; height: 0.6rem; border-radius: 50%;
  background: var(--c-line);
}

.section-title {
  font-weight: 600; font-size: clamp(2.4rem, 2.1vw, 4rem); line-height: 1.2;
  text-transform: uppercase; color: var(--c-dark-2);
}

.chip {
  display: inline-block;
  border: 1px solid var(--c-accent); border-radius: 3rem;
  font-size: 1.7rem; line-height: 1.2; color: var(--c-text);
  padding: 0.7rem 1.6rem;
}

/* защита сеток от разрыва длинным неразрывным словом из CMS:
   minmax(0,1fr) на треках снимает min-content-распор, а перенос — здесь */
.solution-card__title, .solution-card__text,
.stage-card__title, .stage-card__text,
.advantage-card__title, .advantage-card__text,
.about__text, .about__highlight-title, .about__highlight-text,
.other-card__title, .other-card__text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.hero {
  position: relative;
  background: var(--c-dark);
  color: var(--c-white);
  overflow: hidden;
}
.hero__bg, .hero__crane, .hero__overlay {
  position: absolute; pointer-events: none;
}
/* слой текстуры в макете 1923x631 на y=-21, растянут (не cover) */
.hero__bg {
  top: -2.1rem; left: 0;
  width: 192.3rem; height: 63.1rem;
  background: url('../img/hero-bg.webp') no-repeat;
  background-size: 100% 100%;
}
/* на хабах Модернизации и Автоматизации тот же слой лежит на y=0 */
.hero--modern .hero__bg { top: 0; }
.hero__glow {
  position: absolute; pointer-events: none;
  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__crane {
  top: 0; right: 0; bottom: 0; width: 57%;
  background: url('../img/hero-crane.webp') right center / cover no-repeat;
}
/* в макете затемнение одинаковое на всех страницах: ровный переход .9 → 0
   (проверено на 10 нодах, включая еще не сверстанные) */
.hero__overlay {
  inset: 0;
  background: linear-gradient(90deg, rgba(24, 24, 24, .9), rgba(24, 24, 24, 0));
}
.hero--koz .hero__crane { background-image: url('../img/hero-crane-koz.webp'); }
.hero--port .hero__crane { background-image: url('../img/hero-crane-port.webp'); }
.hero--smart .hero__crane { background-image: url('../img/hero-crane-smart.webp'); }
.hero > .container { position: relative; z-index: 1; }

.header__row {
  display: flex; align-items: center; gap: 3rem;
  padding: 2rem 0 2.4rem;
}
.header__logo { flex-shrink: 0; }
.header__logo img { height: 4.3rem; width: auto; }
.header__nav { margin-left: 3rem; }
.header__nav ul { display: flex; gap: 3.4rem; }
.header__nav a { font-size: 2rem; line-height: 1.2; white-space: nowrap; }
.header__nav a:hover { color: var(--c-accent); }
.header__contacts { margin-left: auto; text-align: left; }
.header__phone { font-weight: 500; font-size: 2.3rem; display: block; white-space: nowrap; }
.header__hours {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-size: 1.5rem; color: #CCCCCC; margin-top: 0.6rem;
}
.header__hours::before {
  content: ''; width: 0.6rem; height: 0.6rem; border-radius: 50%;
  background: var(--c-green);
}
.header__cta { flex-shrink: 0; }

.header__divider {
  border: 0; border-top: 1px solid rgba(255, 255, 255, .2); margin: 0;
}

.breadcrumbs {
  font-size: 1.4rem; color: var(--c-muted);
  padding: 3.8rem 0 0;
}
.breadcrumbs a:hover { color: var(--c-white); }
.breadcrumbs__current { color: var(--c-white); }

.hero__title {
  font-weight: 600; font-size: clamp(3rem, 3.2vw, 6rem); line-height: 1.2;
  text-transform: uppercase;
  margin-top: 3.4rem;
}
.hero__lead {
  max-width: 85rem;
  font-size: 2rem; line-height: 1.2;
  margin: 4.4rem 0 9rem;
}
.hero__lead .accent { color: var(--c-accent); }
.hero__lead--wide { max-width: 90.3rem; }
/* лид ремонта козловых — текст-фрейм макета 973 */
.hero__lead--xwide { max-width: 97.3rem; }

.intro {
  background: var(--c-bg-light);
  padding: 7rem 0;
}
.intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 80rem);
  gap: 2rem;
  align-items: start;
}
.intro__title { margin-top: 3.2rem; }
.intro__text { max-width: 71.6rem; font-size: 2rem; margin-top: 1.4rem; }
.intro__text + .intro__text { margin-top: 2.4rem; }
.intro__list-label {
  color: var(--c-accent); font-weight: 500; font-size: 2rem;
  margin-top: 2.2rem;
}
.intro__chips {
  display: flex; flex-wrap: wrap; gap: 1.9rem 2rem;
  max-width: 71.6rem; margin-top: 2.4rem;
}
.intro__note {
  background: var(--c-bg-soft); border-radius: 1rem;
  max-width: 80rem; padding: 1.6rem 1.75rem;
  font-size: 2rem; color: var(--c-dark-2);
  margin-top: 2.8rem;
}
.intro__note .accent { color: var(--c-accent); }
.intro__photo { border-radius: 2rem; overflow: hidden; height: 64.7rem; }
.intro__photo img { width: 100%; height: 100%; object-fit: cover; }

.reasons {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.reasons__title { margin: 2.2rem 0 4.6rem; }

.reasons__slider {
  position: relative;
  border-radius: 2rem;
  overflow: hidden;
}
.reasons__slide {
  position: relative;
  min-height: 54.6rem;
  border-radius: 2rem;
  overflow: hidden;
  color: var(--c-white);
}
.reasons__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
/* затемнение по макету: подложка-градиент + две размытые «кляксы» (Figma layer
   blur 70/40 = blur(7rem)/blur(4rem)) — под текстом и под стрелками */
/* пятна затемнения макета (Ellipse 2497/2507, layer blur 70/40) — фоновыми
   радиальными градиентами, а не отдельными слоями: filter: blur() и mask-image
   заводят слой композитора, и по его боксу виден ровный контур */
.reasons__shade {
  position: absolute; inset: 0;
  background:
    radial-gradient(43.9rem 16.1rem at 39.6rem 41.6rem, rgba(24, 24, 24, .72) 20%, rgba(24, 24, 24, 0) 100%),
    radial-gradient(12.7rem 9.1rem at calc(100% - 10.8rem) 47rem, rgba(24, 24, 24, .7) 20%, rgba(24, 24, 24, 0) 100%),
    linear-gradient(90deg, rgba(24, 24, 24, .76), rgba(24, 24, 24, .11));
}
.reasons__top {
  position: absolute; top: 7.2rem; left: 5rem; right: 5rem;
}
.reasons__label {
  font-weight: 600; font-size: 2rem; line-height: 1.2;
}
.reasons__body {
  position: absolute; left: 5rem; bottom: 5rem;
  max-width: 88.1rem;
  z-index: 1;
}
.reasons__heading {
  font-weight: 600; font-size: 2.7rem; line-height: 3.2rem;
  text-transform: uppercase;
}
.reasons__text {
  font-size: 2rem; line-height: 2.4rem; color: #ECECEC;
  max-width: 88.1rem;
  margin-top: 1.1rem;
}
.reasons__text .accent { color: var(--c-accent); }

/* свой margin 0 у точек перебивает более специфичный .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet
   (0 4px с каждой стороны) — шаг получался 20 вместо макетных 12; гасим через переменную Swiper */
.reasons__pagination.swiper-pagination {
  --swiper-pagination-bullet-horizontal-gap: 0;
  position: absolute; top: 5rem; left: 5rem;
  bottom: auto; width: auto;
  display: flex; gap: 0.4rem;
  z-index: 5;
}
.reasons__pagination .swiper-pagination-bullet {
  width: 0.8rem; height: 0.8rem; margin: 0;
  background: var(--c-white); opacity: .53;
  transition: opacity .3s ease;
}
.reasons__pagination .swiper-pagination-bullet-active { opacity: 1; }

.reasons__nav {
  position: absolute; right: 5rem; bottom: 5rem;
  display: flex; gap: 1rem;
  z-index: 5;
}
.reasons__arrow {
  width: 5.3rem; height: 5.3rem;
  border: 1px solid var(--c-white); border-radius: 50%;
  color: var(--c-white);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s ease, color .25s ease;
}
.reasons__arrow:hover {
  background: var(--c-white); color: var(--c-dark);
}

.solutions {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.solutions__title { margin: 3.8rem 0 4rem; }

.solutions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.1rem;
}
.solution-card {
  background: var(--c-bg-soft);
  border-radius: 1rem;
  padding: 2rem 2.5rem 2.4rem;
  display: flex; flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease;
}
.solution-card:hover {
  transform: translateY(-0.6rem);
  box-shadow: 0 1.8rem 4rem rgba(24, 24, 24, .10);
}
.solution-card__icon { width: 3.3rem; height: 3.3rem; }
.solution-card__photo {
  width: 100%; height: 20.4rem;
  object-fit: cover; border-radius: 1rem;
  margin-top: 2rem;
}
.solution-card__title {
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
  color: var(--c-dark-2);
  margin-top: 2.2rem;
}
.solution-card__text {
  font-size: 1.9rem; line-height: 2.28rem; color: #292929;
  margin-top: 1rem;
}
.solution-card__more {
  display: inline-flex; align-items: center; gap: 1rem;
  color: var(--c-accent);
  font-weight: 600; font-size: 2.5rem; line-height: 3rem;
  text-transform: uppercase;
  margin-top: auto; padding-top: 2rem;
  align-self: flex-start;
}
.solution-card__more svg { transition: transform .25s ease; }
.solution-card__more:hover svg { transform: translateX(0.6rem); }

.modal {
  position: fixed; inset: 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  background: rgba(244, 244, 244, .70);
  padding: 2.4rem;
  overflow-y: auto;
}
.modal[hidden] { display: none; }
.modal__box {
  position: relative;
  background: var(--c-white);
  border-radius: 2rem;
  box-shadow: 0 2.4rem 8rem rgba(24, 24, 24, .18);
  width: min(112rem, 100%);
  max-height: calc(100vh - 4.8rem);
  max-height: calc(100dvh - 4.8rem);
  overflow-y: auto;
  padding: 4.4rem 10rem 5.2rem 3.7rem;
  animation: modal-in .3s ease;
}
@keyframes modal-in {
  from { opacity: 0; transform: translateY(2.4rem); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .modal__box { animation: none; }
}
/* попап «Заказать звонок»: та же модалка, но узкая — поля берутся
   от формы консультации, чтобы не заводить второй стиль полей */
.modal__box--form {
  width: min(56rem, 100%);
  padding: 4.4rem 4rem;
}
.modal__box--form .modal__close { top: 3rem; right: 3rem; }
.modal__box--form .modal__text { font-size: 2rem; line-height: 2.4rem; margin-top: 1.4rem; }
.callback__form { display: grid; gap: 1.6rem; margin-top: 2.8rem; }
.callback__form .consult__agree {
  margin-top: 0.4rem;
  font-size: 1.7rem; line-height: 2.2rem;
  align-items: flex-start;
}
.callback__form .consult__checkbox { width: 2.2rem; height: 2.2rem; margin-top: 0.1rem; }
.callback__submit { height: 6.5rem; font-size: 2rem; margin-top: 0.8rem; }

.modal__close {
  position: absolute; top: 3.6rem; right: 4rem;
  color: var(--c-accent);
  transition: transform .25s ease;
}
.modal__close:hover { transform: rotate(90deg); }
.modal__title {
  font-weight: 500; font-size: clamp(2.6rem, 2.1vw, 4rem); line-height: 1.2;
  color: var(--c-dark-2);
}
.modal__text {
  font-size: 2.3rem; line-height: 2.8rem; color: var(--c-text);
  margin-top: 2.4rem;
}
.modal__text .accent { color: var(--c-accent); }
.modal__label {
  color: var(--c-accent);
  font-size: 2.3rem; line-height: 2.8rem;
  margin-top: 2.4rem;
}
.modal__list {
  font-size: 2.3rem; line-height: 2.8rem; color: var(--c-text);
  margin-top: 2px;
}
.modal__list li {
  position: relative;
  padding-left: 3rem;
}
.modal__list li::before {
  content: '';
  position: absolute; left: 1.3rem; top: 1.2rem;
  width: 0.4rem; height: 0.4rem; border-radius: 50%;
  background: var(--c-text);
}

.smart-banner {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.smart-banner__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
.smart-banner__card {
  background: var(--c-white);
  border-radius: 2rem;
  padding: 11.5rem 9rem 4rem 3rem;
}
.smart-banner__text {
  font-size: 2rem; line-height: 2.4rem;
  margin-top: 2.4rem;
  max-width: 68rem;
}
.smart-banner__text .accent { color: var(--c-accent); }
.smart-banner__btn { margin-top: 3.3rem; }
.btn--dark { background: #231F20; }
.btn--dark:hover { background: #3a3536; }
.smart-banner__photo { border-radius: 2rem; overflow: hidden; }
.smart-banner__photo img { width: 100%; height: 100%; object-fit: cover; }

.effect {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.effect__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.8rem 0 4rem;
}
.effect__nav { display: flex; gap: 1rem; }
.effect__arrow {
  width: 5.3rem; height: 5.3rem;
  border: 1px solid var(--c-dark-2); border-radius: 50%;
  color: var(--c-dark-2);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s ease, color .25s ease;
}
.effect__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }

.effect__slider { overflow: hidden; }
.effect-card {
  position: relative;
  min-height: 35.6rem;
  border-radius: 1.5rem;
  overflow: hidden;
  color: var(--c-white);
}
.effect-card__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
.effect-card__shade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(24, 24, 24, .25) 0%, rgba(24, 24, 24, .72) 100%);
}
/* размер иконок в rem: с px-атрибутами img круг ужимался с экраном, а иконка нет —
   на 1536px получалось 39 в круге 52 вместо 39 в 65 */
.effect-card__icon img { width: 2rem; height: 2.2rem; }
.effect-card__icon {
  position: absolute; top: 2rem; left: 2.1rem;
  width: 4.5rem; height: 4.5rem; border-radius: 50%;
  background: rgba(255, 255, 255, .31);
  display: flex; align-items: center; justify-content: center;
}
.effect-card__body {
  position: absolute; left: 2.1rem; right: 2.1rem; bottom: 2.2rem;
}
.effect-card__title {
  font-weight: 500; font-size: 2.3rem; line-height: 2.8rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(255, 255, 255, .6);
}
.effect-card__caption {
  font-size: 1.7rem; line-height: 2.04rem;
  margin-top: 1rem;
  max-width: 50rem;
}
/* карточки «Снижение…» в макете крупнее: fs18/lh21.6 */
.effect-card__caption--big { font-size: 1.8rem; line-height: 2.16rem; max-width: 48.8rem; }
.effect-card__caption--big.is-cost { max-width: 47rem; }
/* страницы Модернизации: все caption'ы в макете fs18/lh21.6 */
.effect-card__caption--18 { font-size: 1.8rem; line-height: 2.16rem; }

.consult {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.consult__box {
  background: var(--c-bg-soft);
  border-radius: 2rem;
  padding: 3.5rem 4rem 4rem;
}
.consult__text {
  font-size: 2rem; line-height: 2.4rem;
  margin-top: 1.4rem;
  max-width: 116.2rem;
}
.consult__text .accent { color: var(--c-accent); }
.consult__row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem;
  margin-top: 3rem;
}
.consult__input {
  width: 100%; min-width: 0;
  height: 6.5rem;
  border: 1px solid var(--c-accent); border-radius: 6rem;
  background: transparent;
  font: inherit; color: var(--c-text);
  padding: 0 2rem;
  transition: border-color .2s ease, background .2s ease;
}
.consult__input::placeholder { color: #292929; }
.consult__input:focus {
  outline: none;
  background: var(--c-white);
}
.consult__submit { height: 6.5rem; font-size: 2rem; }
.consult__agree {
  display: inline-flex; align-items: center; gap: 1rem;
  font-size: 2rem; line-height: 2.4rem; color: #292929;
  margin-top: 2rem;
  cursor: pointer;
}
.consult__agree input {
  position: absolute; opacity: 0; width: 0; height: 0;
}
.consult__checkbox {
  width: 2.8rem; height: 2.8rem; flex-shrink: 0;
  border: 1px solid var(--c-accent); border-radius: 0.4rem;
  background: var(--c-white);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .2s ease;
}
.consult__agree input:checked + .consult__checkbox { background: var(--c-accent); }
.consult__agree input:checked + .consult__checkbox::after {
  content: '';
  width: 1.2rem; height: 0.7rem;
  border-left: 2px solid var(--c-white);
  border-bottom: 2px solid var(--c-white);
  transform: rotate(-45deg) translateY(-1px);
}
.consult__agree input:focus-visible + .consult__checkbox {
  outline: 2px solid var(--c-accent); outline-offset: 2px;
}

.stages {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.stages__title { margin: 3.8rem 0 1.4rem; }
.stages__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 103rem;
  margin-bottom: 4rem;
}
.stages__lead .accent { color: var(--c-accent); }
.stages__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem;
}
.stage-card {
  background: var(--c-bg-soft);
  border-radius: 1rem;
  min-height: 25.5rem;
  padding: 1.6rem 2.1rem 2.4rem;
  display: flex; flex-direction: column;
}
.stage-card__num {
  color: var(--c-accent);
  font-weight: 500; font-size: 4rem; line-height: 4.8rem;
}
.stage-card__title {
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
  color: var(--c-dark-2);
  margin-top: auto;
}
.stage-card__text {
  font-size: 2rem; line-height: 2.4rem; color: #292929;
  margin-top: 1rem;
}
/* на «Смарт-опциях» текст-фреймы этапов в макете 369 против колонки 348 —
   на остальных страницах они уже (319–357), поэтому вынос точечный */
.stages--smart .stage-card__text { margin-right: -2.1rem; }
.stage-card--photo { padding: 0; overflow: hidden; }
.stage-card--photo img { width: 100%; height: 100%; object-fit: cover; }
.stage-card--accent { background: var(--c-accent); }
.stage-card--accent .stage-card__num,
.stage-card--accent .stage-card__title { color: var(--c-bg-light); }
.stage-card--accent .stage-card__text { color: #F3F3F3; }

.about {
  background: var(--c-bg-light);
  padding: 7rem 0 5rem;
}
.about__title { margin: 2.2rem 0 1.4rem; }
.about__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 110.5rem;
  margin-bottom: 4rem;
}
.about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 2rem;
}
.about__card {
  background: var(--c-bg-soft);
  border-radius: 2rem;
  padding: 4.6rem 5rem 5rem;
}
.about__text {
  overflow-wrap: break-word;
  font-size: 2rem; line-height: 2.4rem;
  max-width: 67.6rem;
}
.about__text + .about__text { margin-top: 1rem; }
.about__highlight {
  background: var(--c-accent);
  border-radius: 1rem;
  color: var(--c-bg-light);
  padding: 1.8rem 2.1rem 2rem;
  margin-top: 4.6rem;
  max-width: 70rem;
}
.about__highlight-title {
  font-weight: 600; font-size: 2.5rem; line-height: 3rem;
}
.about__highlight-text {
  font-size: 2rem; line-height: 2.4rem; color: #F3F3F3;
  margin-top: 1rem;
}
.about__btn { margin-top: 5rem; }
.about__photo { border-radius: 2rem; overflow: hidden; height: 54.6rem; }
.about__photo img { width: 100%; height: 100%; object-fit: cover; }

.safety { background: var(--c-bg-light); padding: 5rem 0; }
.safety__head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 4rem;
  margin: 3.8rem 0 4rem;
}
.safety__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 120rem; margin-top: 1.4rem;
}
.safety__slider { border-radius: 2rem; overflow: hidden; }
.safety__slide img { width: 100%; height: auto; display: block; }


.stats {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.stats__grid {
  display: grid;
  grid-template-columns: 1fr 82rem;
  gap: 4rem;
  align-items: start;
}
.stats__title { margin: 3.8rem 0 0; max-width: 68rem; }
.btn--grey {
  background: var(--c-line-light); color: #404040;
}
.btn--grey:hover { background: #d8d8d8; }
.stats__btn { margin-top: 2.6rem; }
.stats__text {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 68rem;
  margin-top: 4.6rem;
}
.stats__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
/* вертикальные отступы плитки одинаковые сверху и снизу (фидбек клиента) */
.stat-card {
  background: var(--c-white);
  border-radius: 1rem;
  min-height: 16rem;
  padding: 1.4rem 2rem 1.6rem;
  display: flex; flex-direction: column;
  justify-content: space-between;
}
.stat-card--grey { background: var(--c-bg-soft); }
.stat-card__value {
  color: var(--c-accent);
  font-weight: 500; font-size: clamp(3.6rem, 2.6vw, 5rem); line-height: 1.2;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--c-line);
}
.stat-card__caption {
  font-size: 2rem; line-height: 2.4rem; color: #292929;
  margin-top: 1.5rem;
}
.stat-card--accent { background: var(--c-accent); }
.stat-card--accent .stat-card__value {
  color: var(--c-bg-light);
  border-bottom-color: rgba(255, 255, 255, .6);
}
.stat-card--accent .stat-card__caption { color: #F3F3F3; }

.advantages {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.advantages__title { margin: 3.8rem 0 4rem; }
.advantages__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.1rem;
}
.advantage-card {
  background: var(--c-bg-soft);
  border-radius: 1.5rem;
  min-height: 29.5rem;
  padding: 2rem 2.1rem 2.4rem;
}
.advantage-card--white {
  background: var(--c-white);
  border: 1px solid var(--c-line-light);
}
.advantage-card__icon img, .about-card__icon img { width: auto; height: auto; max-width: 4rem; max-height: 4rem; }
.advantage-card__icon {
  width: 6.5rem; height: 6.5rem; border-radius: 50%;
  background: #231F20;
  display: flex; align-items: center; justify-content: center;
}
.advantage-card__title {
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
  text-transform: uppercase;
  color: var(--c-dark-2);
  margin-top: 1.4rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--c-line);
}
.advantage-card__text {
  font-size: 2rem; line-height: 2.4rem; color: #292929;
  margin-top: 2rem;
}
.advantage-card__text .accent { color: var(--c-accent); }

.slider-nav { display: flex; gap: 1rem; flex-shrink: 0; }
.slider-arrow {
  width: 5.3rem; height: 5.3rem;
  border: 1px solid var(--c-dark-2); border-radius: 50%;
  color: var(--c-dark-2);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s ease, color .25s ease;
}
.slider-arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
/* стрелка слайдеров по рендеру Figma (Arrow 5: 17.6x14.7, линия 2 в круге 53) — один svg на все слайдеры, размер в rem */
.slider-arrow svg, .reasons__arrow svg, .effect__arrow svg, .other__arrow svg { width: 1.8rem; height: 1.6rem; }

.cases {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.cases__head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 4rem;
  margin: 3.8rem 0 4.4rem;
}
.cases__lead { font-size: 2rem; line-height: 2.4rem; margin-top: 1.4rem; }
.cases__slider { overflow: hidden; }
.case-card {
  display: flex;
  background: var(--c-bg-soft);
  border-radius: 1.5rem;
  overflow: hidden;
  min-height: 38.3rem;
}
.case-card__photo {
  width: 50%; align-self: stretch; height: auto;
  object-fit: cover;
  flex-shrink: 0;
}
.case-card__content {
  padding: 1.6rem 2rem 2rem;
  display: flex; flex-direction: column;
}
.case-card__title {
  font-weight: 500; font-size: 2rem; line-height: 2.4rem;
  color: #000;
}
.case-card__text {
  font-size: 1.7rem; line-height: 2.04rem; color: #292929;
  margin-top: 1.4rem;
}
.case-card__label {
  color: var(--c-accent);
  font-size: 1.7rem; line-height: 2rem;
  margin-top: 2rem;
}
.case-card__label + .case-card__text { margin-top: 0.3rem; }
.case-card__link {
  color: var(--c-accent);
  font-size: 1.7rem; line-height: 2rem;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
  margin-top: auto;
}
.case-card__link:hover { text-decoration: none; }
.cases__all {
  display: flex; justify-content: center;
  margin-top: 4rem;
}

.geo {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.geo__head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 4rem;
}
.geo__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 84.4rem;
  margin-top: 1.4rem;
}
/* padding-top (не margin на карте!) — margin коллапсирует с оберткой,
   и карта не отодвигается от плашки «40+» */
/* якорь формы заявки: небольшой зазор сверху, чтобы секция не упиралась
   в край экрана после прокрутки от кнопок заказа */
#zayavka { scroll-margin-top: 3rem; }

.geo__map-wrap { position: relative; margin-top: 3rem; padding-top: 8.5rem; }
.geo__stat {
  position: absolute; top: 0; left: 2px; z-index: 1;
  background: var(--c-white);
  border: 1px solid var(--c-line-light);
  border-radius: 1rem;
  width: 44.7rem; max-width: 100%;
  padding: 0.6rem 1.8rem 2rem;
}
.geo__stat-value {
  color: var(--c-accent);
  font-weight: 500; font-size: clamp(4rem, 3.2vw, 6rem); line-height: 1.2;
}
.geo__stat-caption {
  font-size: 2rem; line-height: 2.4rem; color: #292929;
}
/* карта подключена как <object>: подсветка региона по наведению живет
   внутри самого svg, из документа стили в него не достают */
.geo__map { display: block; width: 100%; height: auto; aspect-ratio: 1620 / 846; }
.geo__clients {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2rem;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  padding: 2rem 0;
  margin-top: 3.8rem;
}
/* бегущая строка: JS оборачивает логотипы в трек и дублирует его, две копии
   едут на свою ширину + gap — стык незаметен */
.geo__clients.is-marquee {
  flex-wrap: nowrap; justify-content: flex-start;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6rem, #000 calc(100% - 6rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6rem, #000 calc(100% - 6rem), transparent);
}
.geo__track {
  display: flex; align-items: center; gap: 2rem;
  flex-shrink: 0;
  animation: geo-marquee 45s linear infinite;
}
.geo__clients.is-marquee:hover .geo__track { animation-play-state: paused; }
@keyframes geo-marquee {
  to { transform: translateX(calc(-100% - 2rem)); }
}
@media (prefers-reduced-motion: reduce) {
  .geo__track { animation: none; }
}
.geo__logo {
  background: #F4F4F4;
  border-radius: 0.6rem;
  width: 13rem; height: 6rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.geo__logo img { max-width: 100%; max-height: 100%; object-fit: contain; filter: grayscale(1); }

.other {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.other__head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 4rem;
  margin: 3.8rem 0 4.4rem;
}
.other__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 94.8rem;
  margin-top: 1.4rem;
}
.other__slider { overflow: hidden; }
.other-card { display: flex; flex-direction: column; }
.other-card__photo {
  width: 100%; height: 38.3rem;
  object-fit: cover; border-radius: 1.5rem;
}
.other-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
  gap: 0 2.4rem;
  margin-top: 2.6rem;
}
.other-card__title {
  font-weight: 500; font-size: clamp(2.2rem, 1.6vw, 3rem); line-height: 1.2;
  color: var(--c-dark-2);
  text-transform: uppercase;
}
.other-card__row::before {
  content: '';
  order: 1;
  background: #474747;
  width: 1px; height: 8rem;
}
.other-card__text {
  order: 2;
  font-size: 1.7rem; line-height: 2.04rem; color: var(--c-dark-2);
}
.other-card__btn {
  width: 100%;
  margin-top: 2.6rem;
}

.diag {
  background: var(--c-bg-light);
  padding: 5rem 0;
}
.diag__box {
  position: relative;
  border-radius: 2rem;
  overflow: hidden;
  color: var(--c-white);
}
.diag__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
/* как в reasons: ровная подложка + размытые пятна под заголовком, под формой
   и синеватое под телефоном (Figma layer blur 70/40) */
/* тем же способом, что и в reasons: пятна — фоновые градиенты, без слоев.
   Синеватое под телефоном (Ellipse 2498) — усредненный цвет его градиента */
.diag__shade {
  position: absolute; inset: 0;
  background:
    /* Ellipse 2497: 763x274 у (27,90) + layer blur 70 — пятно тянем на всю высоту текстового блока,
       иначе второй абзац и телефон лежат на светлых фермах фото */
    radial-gradient(46rem 21rem at 40rem 25rem, rgba(24, 24, 24, .72) 35%, rgba(24, 24, 24, 0) 100%),
    radial-gradient(47rem 9.9rem at calc(100% - 45rem) 35.9rem, rgba(24, 24, 24, .84) 20%, rgba(24, 24, 24, 0) 100%),
    radial-gradient(23.7rem 9.3rem at 22.2rem 41.3rem, rgba(53, 77, 96, .9) 20%, rgba(53, 77, 96, 0) 100%),
    rgba(24, 24, 24, .34);
}
.diag__grid {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1fr 74rem;
  gap: 6rem;
  padding: 9rem 5rem 4rem;
  min-height: 54.6rem;
}
.diag__title {
  font-weight: 600; font-size: clamp(2.6rem, 2.1vw, 4rem); line-height: 1.2;
  text-transform: uppercase;
}
.diag__text {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 66.1rem;
  margin-top: 0.6rem;
}
.diag__phone-block {
  font-size: 2rem; line-height: 3rem;
  margin-top: 13rem;
}
/* диагностика главной: заголовок в две строки, под ним два абзаца fs19/lh23 */
.diag--main .diag__box .diag__grid { padding-top: 6rem; }
.diag--main .diag__text {
  font-size: 1.9rem; line-height: 2.3rem;
  max-width: 74rem;
  margin-top: .8rem;
}
/* текст-фрейм 740 при колонке 720 — иначе «для дальнейшей» рвется на третью строку */
.diag--main .diag__text { margin-right: -2rem; }
.diag--main .diag__text + .diag__text { margin-top: 1rem; }
.diag--main .diag__phone-block { margin-top: 5.9rem; }
.diag__phone {
  display: inline-block;
  font-weight: 600; font-size: 2.5rem; line-height: 3rem;
}
/* форма в макете начинается на 90 от верха бокса (заголовок — на 60), шаг полей 20 */
.diag__form { display: flex; flex-direction: column; gap: 2rem; margin-top: 3rem; }
.diag__form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
.diag__input {
  min-width: 0;
  height: 6.5rem;
  border: 0; border-radius: 6rem;
  background: var(--c-white);
  font: inherit; color: var(--c-text);
  padding: 0 2.2rem;
  width: 100%;
}
.diag__input::placeholder { color: #808080; }
.diag__input:focus { outline: 2px solid var(--c-accent); }
.diag__file input { position: absolute; opacity: 0; width: 0; height: 0; }
.diag__file-label {
  display: flex; align-items: center;
  height: 6.5rem;
  border-radius: 6rem;
  background: var(--c-white);
  color: #808080;
  padding: 0 2.2rem;
  cursor: pointer;
}
.diag__file input:focus-visible + .diag__file-label {
  outline: 2px solid var(--c-accent);
}
.diag__agree {
  display: inline-flex; align-items: center; gap: 1rem;
  font-size: 2rem; line-height: 2.4rem;
  cursor: pointer;
}
.diag__agree input { position: absolute; opacity: 0; width: 0; height: 0; }
.diag__checkbox {
  width: 2.8rem; height: 2.8rem; flex-shrink: 0;
  border-radius: 0.4rem;
  background: var(--c-white);
  display: inline-flex; align-items: center; justify-content: center;
}
.diag__agree input:checked + .diag__checkbox::after {
  content: '';
  width: 1.2rem; height: 0.7rem;
  border-left: 2px solid var(--c-accent);
  border-bottom: 2px solid var(--c-accent);
  transform: rotate(-45deg) translateY(-1px);
}
.diag__submit { height: 6.5rem; font-size: 2rem; }

[data-reveal] {
  opacity: 0;
  transform: translateY(3rem);
  transition: opacity .7s ease, transform .7s ease;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

.footer {
  background: var(--c-bg-light);
  color: var(--c-dark);
  padding-top: 1px;
}
.footer a:hover { color: var(--c-accent); }
.footer hr {
  border: 0; border-top: 1px solid var(--c-line); margin: 0;
}

/* обе строки футера — на одной сетке макета: колонки 331/504/546/239 из 1620 */
.footer__contacts {
  display: grid;
  grid-template-columns: minmax(0, 331fr) minmax(0, 504fr) minmax(0, 546fr) minmax(0, 239fr);
  gap: 4rem 0;
  padding: 5rem 0;
  font-size: 2.5rem; line-height: 1.2;
}
.footer__address { font-size: 2.2rem; line-height: 2.64rem; max-width: 46.6rem; }
.footer__emails li + li { margin-top: 2rem; }
.footer__emails .note { font-size: 2rem; color: var(--c-grey); }

.footer__cols {
  display: grid;
  grid-template-columns: minmax(0, 331fr) minmax(0, 504fr) minmax(0, 546fr) minmax(0, 239fr);
  gap: 4rem 0;
  padding: 4.8rem 0;
}
.footer__logo img { height: 8.4rem; width: auto; }
.footer__col-title {
  font-weight: 500; font-size: 2.5rem;
  text-transform: uppercase;
  margin-bottom: 1.6rem;
}
/* ритм списка 36px — через отступ между пунктами, а не line-height,
   чтобы двухстрочные пункты не разъезжались */
.footer__col ul { font-size: 2rem; line-height: 1.3; color: var(--c-grey); }
.footer__col li + li { margin-top: 1rem; }

.footer__bottom {
  display: flex; justify-content: space-between; gap: 4rem;
  padding: 3.6rem 0 4.2rem;
  font-size: 2rem;
}

/* Хабы услуг: заголовки крупнее детальных (макет fs70/fs100 против fs60),
   лид идет вплотную под заголовком — зазор 15px против 44px на детальных */
.hero__title--xl { font-size: clamp(3rem, 3.9vw, 7rem); }
.hero__title--xxl { font-size: clamp(3.4rem, 5.4vw, 10rem); }
/* высота hero на хабах задана макетом (503px), а не отступом под лидом:
   при fs70 и fs100 заголовках контент разной высоты, низ должен совпадать */
.hero--hub { min-height: 50.3rem; }
.hero--hub .hero__lead { margin: 1.5rem 0 0; max-width: 65.7rem; }
.hero--hub .hero__lead--wide { max-width: 90.6rem; }
/* кадрирование под макет: рендер шире блока, привязка к правому краю с выносом */
/* хабы «Модернизация»/«Автоматизация»: рендер лежит в макете отдельным слоем
   690,38 при 1468x979 — переносим геометрию как есть, привязка к правому краю */
.hero--modern .hero__crane {
  background-image: url('../img/hero-crane-modern.webp');
  top: 3.8rem; bottom: auto; left: auto; right: -23.8rem;
  width: 146.8rem; height: 97.9rem;
  background-size: 100% 100%;
}
.hero--modern .hero__glow {
  right: 5.6rem; top: 31.2rem; width: 89.2rem; height: 20.2rem;
}

/* фрейм лида в макете 951, общий --wide (906) рвет строку раньше */
.hero--mostovyh .hero__lead--wide { max-width: 95.1rem; }
/* по макету H1 на y=196, лид сразу под ним на y=274 */
.hero--mostovyh .hero__title,
.hero--smart .hero__title { margin-top: 3.9rem; }
/* высоту держит min-height (503 по макету), а не отступ лида: лид тут
   двухстрочный на «Ремонте» и четырехстрочный на «Модернизации» */
.hero--mostovyh, .hero--smart { min-height: 50.3rem; }
.hero--mostovyh .hero__lead,
.hero--smart .hero__lead { margin: 0.6rem 0 6rem; }

/* «Смарт-опции»: слой рендера 1000,-79 при 1104x621; подсветка и затемнение
   те же, что у мостовых (эллипсы в макете совпадают до пикселя) */
.hero--smart .hero__crane {
  top: -7.9rem; bottom: auto; left: auto; right: -18.4rem;
  width: 110.4rem; height: 62.1rem;
  background-size: 100% 100%;
}

/* один и тот же фон на «Ремонте мостовых» и «Модернизации мостовых»:
   слой рендера 1076,-7 при 1101x734 + три размытых эллипса подсветки */
.hero--mostovyh .hero__crane {
  background-image: url('../img/hero-crane-mostovyh.webp');
  top: -0.7rem; bottom: auto; left: auto; right: -25.7rem;
  width: 110.1rem; height: 73.4rem;
  background-size: 100% 100%;
}
/* Ellipse 108/110 (красные .35/.49) и 109 (синий), layer blur 300 —
   эквивалент радиусами: полуоси эллипса + размытие */
.hero--mostovyh .hero__glow,
.hero--smart .hero__glow {
  inset: 0; width: auto; height: auto;
  background:
    radial-gradient(59.7rem 20.1rem at 154.8rem 31.3rem, rgba(226, 44, 66, .49), transparent 70%),
    radial-gradient(41rem 24.5rem at 131.2rem 38.8rem, rgba(226, 44, 66, .35), transparent 70%),
    radial-gradient(43.5rem 22rem at 170rem 49.4rem, rgba(3, 43, 249, .30), transparent 70%);
}

/* «Модернизация козловых/портальных»: та же схема — свой слой рендера
   и подсветка тремя эллипсами, отличаются только Ellipse 110 и кроп */
.hero--koz, .hero--port { min-height: 50.3rem; }
.hero--koz .hero__title, .hero--port .hero__title { margin-top: 3.9rem; }
.hero--koz .hero__lead, .hero--port .hero__lead { margin: 0.6rem 0 6rem; }
.hero--koz .hero__lead--wide { max-width: 90.3rem; }
.hero--koz .hero__lead--xwide { max-width: 97.3rem; }
.hero--port .hero__lead { max-width: 85rem; }

.hero--koz .hero__crane {
  top: 7rem; bottom: auto; left: auto; right: -19.4rem;
  width: 97.3rem; height: 64.9rem;
  background-size: 100% 100%;
}
.hero--port .hero__crane {
  top: 12rem; bottom: auto; left: auto; right: -14.8rem;
  width: 97rem; height: 64.7rem;
  background-size: 100% 100%;
}
.hero--koz .hero__glow, .hero--port .hero__glow {
  inset: 0; width: auto; height: auto;
}
.hero--koz .hero__glow {
  background:
    radial-gradient(59.7rem 24.05rem at 154.9rem 26.25rem, rgba(226, 44, 66, .49), transparent 70%),
    radial-gradient(41rem 24.5rem at 131.2rem 38.8rem, rgba(226, 44, 66, .35), transparent 70%),
    radial-gradient(43.5rem 22rem at 170rem 49.4rem, rgba(3, 43, 249, .30), transparent 70%);
}
.hero--port .hero__glow {
  background:
    radial-gradient(59.7rem 23.4rem at 154.8rem 31.3rem, rgba(226, 44, 66, .49), transparent 70%),
    radial-gradient(41rem 24.5rem at 131.2rem 38.8rem, rgba(226, 44, 66, .35), transparent 70%),
    radial-gradient(43.5rem 22rem at 170rem 49.4rem, rgba(3, 43, 249, .30), transparent 70%);
}

/* «Ремонт козловых»: слой рендера тот же, что у «Модернизации козловых»
   (imageRef совпадает), а подсветка своя — Ellipse 110 здесь 1101,262 при
   894x102, то есть повторяет мостовые; фрейм лида 838 */
.hero--remont-koz .hero__lead--wide { max-width: 83.8rem; }
.hero--remont-koz .hero__glow {
  background:
    radial-gradient(59.7rem 20.1rem at 154.8rem 31.3rem, rgba(226, 44, 66, .49), transparent 70%),
    radial-gradient(41rem 24.5rem at 131.2rem 38.8rem, rgba(226, 44, 66, .35), transparent 70%),
    radial-gradient(43.5rem 22rem at 170rem 49.4rem, rgba(3, 43, 249, .30), transparent 70%);
}

/* «Ремонт портальных»: рендер тот же, что у «Модернизации портальных», а
   подсветка здесь всего из двух эллипсов — синего Ellipse 109 в макете нет */
.hero--remont-port .hero__lead { max-width: 95.1rem; }
.hero--remont-port .hero__glow {
  background:
    radial-gradient(59.7rem 20.1rem at 154.8rem 31.3rem, rgba(226, 44, 66, .49), transparent 70%),
    radial-gradient(41rem 24.5rem at 131.2rem 38.8rem, rgba(226, 44, 66, .35), transparent 70%);
}

/* «Ремонт кран-балок»: свой рендер (слой 1156,-20 при 1026x684) и подсветка
   одним эллипсом 1121,212 при 894x161 */
.hero--kranbalok { min-height: 50.3rem; }
.hero--kranbalok .hero__title { margin-top: 3.9rem; }
.hero--kranbalok .hero__lead { margin: 0.6rem 0 6rem; }
.hero--kranbalok .hero__lead--wide { max-width: 92.7rem; }
.hero--kranbalok .hero__crane {
  background-image: url('../img/hero-crane-kranbalok.webp');
  top: -2rem; bottom: auto; left: auto; right: -26.2rem;
  width: 102.6rem; height: 68.4rem;
  background-size: 100% 100%;
}
.hero--kranbalok .hero__glow {
  inset: 0; width: auto; height: auto;
  background: radial-gradient(59.7rem 23.05rem at 156.8rem 29.25rem, rgba(226, 44, 66, .49), transparent 70%);
}

/* хабы новой редакции: фото цеха во всю ширину, поверх — ровное затемнение
   .94 → .28, отдельная полоса под шапкой и пятно под заголовком. Слои
   одинаковые на всех хабах — отсюда общий модификатор */
.hero--photo { min-height: 54.7rem; }
.hero--photo .hero__bg {
  /* слой в макете 1923x1094 на y=-353, но фиксированная ширина обрывает фото
     на мониторе шире 1923 — берем cover, а кадр держим позицией: видимая
     полоса 547 начинается с 353 из 1092, то есть 353/545 по вертикали */
  inset: 0;
  top: 0; width: 100%; height: 100%;
  background-image: url('../img/hero-hub-bg.webp');
  background-size: cover;
  background-position: 50% 64.8%;
}
/* затемнение в макете идет ВЛЕВО, а не вниз: ручки градиента -0.113 → 1.0
   по горизонтали. Сверху отдельная полоса .7 → 0 высотой 161 */
.hero--photo .hero__overlay {
  background:
    linear-gradient(180deg, rgba(6, 15, 22, .7) 0%, rgba(6, 15, 22, 0) 100%) top / 100% 16.1rem no-repeat,
    linear-gradient(90deg, rgba(6, 15, 22, .94) -11.3%, rgba(6, 15, 22, .282) 100%);
}
/* Ellipse 2497: заливка .49 при LAYER_BLUR 130 — размытие эллипса, а не
   радиальный градиент, иначе пятно получается вдвое слабее */
.hero--photo .hero__glow {
  left: 8.1rem; right: auto; top: 20.7rem;
  width: 116.9rem; height: 22.7rem;
  background: rgba(6, 15, 22, .49);
  border-radius: 50%;
  filter: blur(6.5rem);
}
/* на хабах заголовок fs60/lh72 (на «Услугах» — fs100, там свой модификатор) */
.hero--photo .hero__title--xl { font-size: clamp(3rem, 3.2vw, 6rem); line-height: 1.2; }
.hero--photo .hero__title { margin-top: 3.9rem; }
.hero--photo .hero__lead { margin-top: 1.8rem; }
.hero--photo .hero__lead + .hero__lead { margin-top: 1rem; }
.hero--photo .hero__lead--wide { max-width: 108.5rem; }
.hero--photo .hero__lead--xwide { max-width: 122.1rem; }

.hub-services {
  background: var(--c-bg-light);
  padding: 7rem 0 5rem;
}
.hub-services__title { margin: 3.3rem 0 1.4rem; }
.hub-services__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 81.6rem;
}
.hub-services__lead .accent { color: var(--c-accent); }
.hub-services__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem 4rem;
  margin-top: 4.5rem;
}
.hub-services__sep {
  grid-column: 1 / -1;
  border: 0; border-top: 1px solid var(--c-line); margin: 0;
}
.service-card { display: flex; flex-direction: column; }
.service-card__photo {
  display: block; width: 100%;
  aspect-ratio: 790 / 383; object-fit: cover;
  border-radius: 1.5rem;
}
/* колонка заголовка 395px из 790 по макету, описание — за вертикальной линией */
.service-card__body {
  display: grid;
  grid-template-columns: 39.5rem minmax(0, 1fr);
  margin-top: 2.6rem;
  flex-grow: 1;
}
.service-card__title {
  font-weight: 500; font-size: 3rem; line-height: 3.6rem;
  text-transform: uppercase; color: var(--c-dark-2);
  padding-right: 2rem;
  min-width: 0; overflow-wrap: anywhere;
}
.service-card__text {
  font-size: 1.7rem; line-height: 2.04rem; color: var(--c-text);
  border-left: 1px solid var(--c-line);
  padding-left: 2.5rem;
  min-width: 0; overflow-wrap: anywhere;
}
.service-card__text .accent { color: var(--c-accent); }
/* в Figma текст-фрейм 383 вылезает за колонку 370; Chrome в 370 не вмещает
   «сокращения эксплуатационных расходов.» (374) — отдаем колонке 15px */
.service-card--text-wide .service-card__body {
  grid-template-columns: 38rem minmax(0, 1fr);
}
.service-card__btn {
  display: flex; align-items: center; justify-content: center;
  height: 6.5rem; border-radius: 6rem;
  background: #231F20; color: var(--c-white);
  font-weight: 500; font-size: 2rem; line-height: 1.2;
  margin-top: 2.3rem;
  transition: background .2s ease;
}
.service-card__btn:hover { background: var(--c-accent); }

/* мозаика преимуществ на хабах: 4 колонки, фото чередуются с карточками */
.advantages--mosaic .advantages__title { margin: 3.3rem 0 1.4rem; }
.advantages__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 119.4rem;
}
.advantages__lead .accent { color: var(--c-accent); }
.advantages--mosaic .advantages__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 4.5rem;
}
.advantages--mosaic .advantage-card {
  border-radius: 1rem;
  min-height: 28.5rem;
  padding-bottom: 2rem;
}
.advantages__photo {
  display: block; width: 100%; height: 100%;
  min-height: 28.5rem;
  object-fit: cover; border-radius: 1rem;
}
/* текст-фреймы мозаики в макете уже колонки карточки (332 из 348) —
   без этого Chrome вмещает лишнее слово и переносы уезжают */
.advantages--mosaic .advantage-card__text { max-width: 33rem; }
/* в Figma строка «Отсутствие незапланированных» влезает в 332, Chrome дает 338 —
   этой карточке отдаем всю колонку (348) */
.advantages--mosaic .advantage-card__text--wide { max-width: 34.8rem; }
/* «Комплексный инженерный подход» на хабе: мозаика 3x2, ряды разной высоты
   (324 и 302 по макету), карточки шире — текст занимает всю колонку */
.advantages--approach .advantages__lead { max-width: 135rem; }
.advantages--approach .advantages__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  /* minmax, а не жесткие высоты: на 1920 ряды совпадают с макетом, но если
     текст занял больше строк — карточка растет, а не выпускает текст наружу */
  grid-template-rows: minmax(var(--row-1, 32.4rem), auto) minmax(var(--row-2, 30.2rem), auto);
  gap: 1.9rem 2.1rem;
  margin-top: 4rem;
}
.advantages--approach .advantage-card { min-height: 0; }
/* в этой секции текст fs18/lh22, а не базовые fs20/lh24 — иначе лишняя
   строка и текст выходит за плашку */
.advantages--approach .advantage-card__text {
  max-width: none;
  font-size: 1.8rem; line-height: 2.2rem;
}
/* ширины текстовых фреймов из макета: 491 / 480 / 487 / 455 из колонки 484 */
.advantages--approach .advantage-card:nth-child(1) .advantage-card__text { max-width: 49.1rem; }
.advantages--approach .advantage-card:nth-child(2) .advantage-card__text { max-width: 48rem; }
.advantages--approach .advantage-card:nth-child(5) .advantage-card__text { max-width: 48.7rem; }
.advantages--approach .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }

.experts { background: var(--c-bg-light); padding: 7rem 0 5rem; }
.experts__title { margin: 3.3rem 0 4rem; }
.experts__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  align-items: stretch;
}
.experts__box {
  background: var(--c-bg-soft);
  border-radius: 2rem;
  padding: 4.6rem 5rem 5rem;
  display: flex; flex-direction: column;
}
.experts__text {
  font-size: 2rem; line-height: 2.4rem; color: var(--c-text);
  max-width: 73rem;
}
.experts__text + .experts__text { margin-top: 1.1rem; }
.experts__text .accent { color: var(--c-accent); }
.experts__alert {
  background: var(--c-accent); color: var(--c-white);
  border-radius: 1rem;
  padding: 1.8rem 2.1rem 2rem;
  margin-top: 2.4rem;
}
.experts__alert-title { font-weight: 600; font-size: 2.5rem; line-height: 3rem; }
.experts__alert-text { font-size: 2rem; line-height: 2.4rem; margin-top: 1rem; }
.experts__btn {
  align-self: flex-start;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 6.5rem; padding: 0 2.5rem;
  border-radius: 6rem; background: #231F20; color: var(--c-white);
  font-weight: 500; font-size: 2rem; line-height: 1.2;
  margin-top: 3.5rem;
  transition: background .2s ease;
}
.experts__btn:hover { background: var(--c-accent); }
.experts__photo {
  display: block; width: 100%; height: 100%;
  min-height: 53rem;
  object-fit: cover; border-radius: 2rem;
}

.formats { background: var(--c-bg-light); padding: 5rem 0; }
/* заголовок в макете козловых — фрейм 1182, иначе перенос уезжает */
.formats__title { margin: 3.3rem 0 4rem; max-width: 118.2rem; }
.formats__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  align-items: start; /* карточки раскрываются независимо */
}
.format-card {
  display: flex; flex-direction: column;
  background: var(--c-bg-soft);
  border-radius: 2rem;
  overflow: hidden;
}
.format-card__head { padding: 2rem 2rem 2.5rem; }
.format-card__head-row {
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
}
.format-card__title { font-weight: 600; font-size: 2.8rem; line-height: 3.36rem; }
.format-card__badge {
  flex-shrink: 0;
  background: #494949; color: var(--c-white);
  border-radius: 3rem; padding: 0.5rem 1.3rem;
  font-weight: 500; font-size: 2rem; line-height: 2.4rem;
}
.format-card__subtitle {
  font-size: 1.9rem; line-height: 2.28rem;
  max-width: 50rem;
  margin-top: 1.1rem;
}
.format-card__list {
  flex-grow: 1;
  background: var(--c-white);
  padding: 2rem;
}
.format-card__list li {
  position: relative;
  font-size: 1.9rem; line-height: 2.28rem;
  padding: 0 0 1.6rem 2.6rem;
  margin-bottom: 1.6rem;
  border-bottom: 1px solid var(--c-line-light);
  background: url('../img/rem-gear-dark.svg') no-repeat 0 0.3rem / 1.7rem 1.7rem;
}
.format-card__list li:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.format-card__foot { padding: 2.1rem 2rem 2.9rem; }
.format-card__note { font-size: 2rem; line-height: 2.4rem; }
.format-card__note .accent { color: var(--c-accent); }
.format-card__btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 5rem; padding: 0 2.4rem;
  border-radius: 6rem; background: #231F20; color: var(--c-white);
  font-weight: 500; font-size: 1.7rem; line-height: 1.2;
  margin-top: 1.6rem;
  transition: background .2s ease;
}
.format-card__btn:hover { background: var(--c-accent); }
.format-card--accent .format-card__head { background: var(--c-accent); color: var(--c-white); }
.format-card--accent .format-card__subtitle { max-width: 44.2rem; }
.format-card--accent .format-card__badge { background: var(--c-white); color: var(--c-text); }
.format-card--accent .format-card__list li {
  background-image: url('../img/rem-gear-red.svg');
}

.repair { background: var(--c-bg-light); padding: 5rem 0; }
.repair__title { margin: 3.3rem 0 4rem; }
.repair__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}
.repair-card {
  background: var(--c-bg-soft);
  border-radius: 1rem;
  padding: 2rem 2.1rem 2.4rem;
  min-height: 26rem;
}
.repair-card__icon { display: block; width: 3.3rem; height: 3.3rem; }
.repair-card__title {
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
  color: var(--c-dark-2);
  margin-top: 4.6rem;
}
.repair-card__text {
  font-size: 2rem; line-height: 2.4rem; color: var(--c-text);
  margin-top: 1rem;
  min-width: 0; overflow-wrap: anywhere;
}
.repair-card__text .accent { color: var(--c-accent); }

.servprog { background: var(--c-bg-light); padding: 5rem 0; }
.servprog__title { margin: 3.3rem 0 4rem; }
.servprog__tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.servprog__tab {
  min-height: 6.5rem; border-radius: 6rem;
  border: 1px solid var(--c-accent);
  color: var(--c-accent); background: transparent;
  font-weight: 500; font-size: 2rem; line-height: 1.2;
  transition: background .2s ease, color .2s ease;
}
.servprog__tab:hover { background: rgba(226, 44, 66, .08); }
.servprog__tab.is-active {
  background: var(--c-accent); color: var(--c-white);
}
.servprog__panel {
  background: var(--c-white);
  border-radius: 2rem;
  overflow: hidden;
  margin-top: 5rem;
}
.servprog__panel[hidden] { display: none; }
.servprog__head {
  background: #231F20; color: var(--c-white);
  padding: 5rem 5.2rem 4.4rem;
}
.servprog__badge {
  display: inline-block;
  background: #E8E8E8; color: var(--c-text);
  border-radius: 3rem; padding: 0.8rem 2.1rem;
  font-weight: 500; font-size: 2rem; line-height: 2.4rem;
}
.servprog__name {
  font-weight: 600; font-size: 3.5rem; line-height: 4.2rem;
  margin-top: 1.4rem;
}
.servprog__subtitle { font-size: 2rem; line-height: 2.4rem; margin-top: 1rem; }
/* колонки по макету: текст 807 от края панели, список — за вертикальной линией.
   Зазор дает padding колонки, а не gap, иначе правая колонка уже макетных 709 */
.servprog__body {
  display: grid;
  grid-template-columns: minmax(0, 75.8rem) minmax(0, 1fr);
  padding: 4.5rem 5.2rem 4rem;
}
.servprog__col-text { max-width: 74.9rem; }
.servprog__col-text p { font-size: 2rem; line-height: 2.4rem; }
.servprog__col-text p + p { margin-top: 2rem; }
.servprog__col-text .accent { color: var(--c-accent); }
.servprog__col-list { border-left: 1px solid var(--c-line); padding-left: 4.9rem; }
.servprog__list-title { font-weight: 500; font-size: 2.5rem; line-height: 3rem; }
.servprog__item { margin-top: 2.3rem; }
.servprog__item-title {
  font-weight: 500; font-size: 2.2rem; line-height: 2.64rem;
  padding-left: 2.6rem;
  background: url('../img/rem-gear-red.svg') no-repeat 0 0.4rem / 1.7rem 1.7rem;
}
/* текст-фреймы пунктов в макете 719 при колонке 709: выносим на 10px вправо —
   иначе «…программируемых логических» рвется лишний раз */
.servprog__item-text { font-size: 1.9rem; line-height: 2.28rem; margin-top: 0.5rem; margin-right: -1rem; }
.servprog__foot {
  background: var(--c-bg-soft);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3rem;
  align-items: center;
  padding: 2.4rem 5rem 2.6rem 5.1rem;
}
.servprog__foot-text { font-size: 2rem; line-height: 2.4rem; max-width: 106.4rem; }
/* у вкладки «Пакет 24/7» плашек брендов нет — текст занимает всю строку (1492) */
.servprog__foot--full { grid-template-columns: minmax(0, 1fr); }
.servprog__foot--full .servprog__foot-text { max-width: 149.2rem; }
.servprog__foot-text .accent { color: var(--c-accent); }
/* в макете это жесткая сетка 148/106/148 с шагом 10 (группа 422x82),
   по контенту ширины разъезжаются и второй ряд не встает под первый */
.servprog__brands {
  display: grid;
  grid-template-columns: 14.8rem 10.6rem 14.8rem;
  gap: 1rem;
  width: 42.2rem;
  margin-left: auto;
}
/* колонка текста до плашек в макете 939 при фрейме 1041 — зазор почти нулевой */
.page-remont-mst .servprog__foot, .page-remont-koz .servprog__foot,
.page-remont-prt .servprog__foot, .page-remont-kb .servprog__foot { gap: 1rem; }
/* деталки ремонта: 8 марок в 4 колонки (148/148/106/148 по макету) */
.page-remont-mst .servprog__brands, .page-remont-koz .servprog__brands,
.page-remont-prt .servprog__brands, .page-remont-kb .servprog__brands {
  grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem;
}
/* деталки ТО: та же раскладка 4×2 */
.page-tomst .servprog__foot, .page-tokoz .servprog__foot, .page-toprt .servprog__foot { gap: 1rem; }
.page-tomst .servprog__brands, .page-tokoz .servprog__brands, .page-toprt .servprog__brands {
  grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem;
}
.page-dgmst .servprog__foot { gap: 1rem; }
.page-dgmst .servprog__brands { grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem; }
.servprog__brand {
  display: flex; align-items: center; justify-content: center;
  height: 3.6rem;
  background: var(--c-white); border-radius: 3rem;
  font-weight: 500; font-size: 1.7rem; line-height: 2.04rem;
  white-space: nowrap;
}

/* мозаика преимуществ сервисных программ: 3 колонки, заголовки без капса */
/* заголовок секции в макете козловых — фрейм 1200, иначе перенос уезжает */
.advantages--serv .advantages__title { max-width: 120rem; }
.advantages--serv .advantages__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.1rem;
  margin-top: 4rem;
}
.advantages--serv .advantage-card {
  border-radius: 1rem; min-height: 0; padding-bottom: 2rem;
}
/* высоту рядов задают карточки (268/245/245 по макету), а не фото */
.advantages--serv .advantages__photo { min-height: 0; }
.advantages--serv .advantage-card__title { text-transform: none; }
/* глифы выгружены из макета в своих размерах (26–40px) — не растягиваем */
.advantages--serv .advantage-card__icon img { max-width: 4rem; max-height: 4rem; }
.advantages--serv .advantage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-top: 1.5rem; }
/* текст-фрейм макета 496 при карточке 526: правый отступ 9, а не 21 —
   иначе «выезд поддерживают краны в работоспособном» не вмещается */
.advantages--serv .advantage-card { padding-right: 0.9rem; }
.advantages--serv .advantage-card__title { padding-bottom: 1.2rem; }
.advantages--serv .advantages__title { margin: 3.3rem 0 0; }

.outsource { background: var(--c-bg-light); padding: 5rem 0; }
.outsource__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.3rem 0 4rem;
}
.outsource__slider { overflow: hidden; }
.out-card {
  position: relative;
  height: 28.5rem;
  border-radius: 1.5rem;
  overflow: hidden;
  color: var(--c-white);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 2.1rem;
}
.out-card__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
/* в макете два наложенных градиента .3→.7 (второй с opacity .72),
   в сумме .45 сверху и .85 снизу — верх был перетемнен */
.out-card__shade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(24, 24, 24, .45) 0%, rgba(24, 24, 24, .85) 100%);
}
.out-card__icon {
  position: absolute; top: 2.1rem; left: 2.1rem; z-index: 1;
  width: 4rem; height: 4rem; border-radius: 50%;
  background: rgba(255, 255, 255, .25);
  display: flex; align-items: center; justify-content: center;
}
.out-card__icon img { width: 2rem; height: 2.2rem; }
.out-card__title {
  position: relative; z-index: 1;
  font-weight: 500; font-size: 2.3rem; line-height: 2.76rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(255, 255, 255, .45);
}
.out-card__text {
  position: relative; z-index: 1;
  font-size: 1.8rem; line-height: 2.16rem;
  margin-top: 1.4rem;
}
/* текст-фрейм этой карточки в макете 505 против колонки 484 — иначе строка
   «…риск аварий и остановок,» рвется на четвертую */
.out-card__text--wide { margin-right: -2.1rem; }

.trust { background: var(--c-bg-light); padding: 5rem 0; }
.trust__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.3rem 0 4rem;
}
.trust__slider { overflow: hidden; border-radius: 2rem; position: relative; }
/* точки по макету — внутри баннера слева сверху, над подписью слайда.
   Селектор с .trust__slider обязателен: свой .swiper-horizontal>.swiper-pagination
   ставит bottom:8px и top:auto, и точки уезжают под низ баннера */
.trust__slider .trust__pagination {
  --swiper-pagination-bullet-horizontal-gap: 0;
  position: absolute; z-index: 2;
  top: 5rem; bottom: auto; left: 5rem;
  display: flex; gap: 0.4rem;
  width: auto;
}
.trust__pagination .swiper-pagination-bullet {
  width: 0.8rem; height: 0.8rem; margin: 0;
  background: var(--c-white); opacity: .45;
}
.trust__pagination .swiper-pagination-bullet-active { opacity: 1; }
.trust-slide {
  position: relative;
  min-height: 54.6rem;
  border-radius: 2rem;
  overflow: hidden;
  color: var(--c-white);
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 7.2rem 5rem 5rem;
}
.trust-slide__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
/* в макете ровный градиент .76→.11 при opacity слоя .92 (итог .70→.10):
   фон был перетемнен, а локальную тень под текстом дает эллипс ниже */
.trust-slide__shade {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(24, 24, 24, .7), rgba(24, 24, 24, .1));
}
.trust-slide__label {
  position: relative; z-index: 1;
  font-weight: 600; font-size: 2rem; line-height: 2.4rem;
}
/* текстовые фреймы в макете: заголовок 1003, абзац 923 */
.trust-slide__body { position: relative; z-index: 1; max-width: 100.3rem; }
/* Ellipse 2497: подложка 1051x182, заливка .67, layer blur 70 */
.trust-slide__body::before {
  content: ''; position: absolute; z-index: -1;
  /* бокс расширен на радиус размытия макета, растушевка — самим градиентом:
     filter: blur() рисуется отдельным слоем, и его бокс виден ровным контуром */
  left: -5.8rem; top: -4.3rem;
  width: 112.1rem; height: 25.2rem;
  background: radial-gradient(closest-side, rgba(24, 24, 24, .67) 20%, rgba(24, 24, 24, 0) 100%);
}
.trust-slide__title {
  font-weight: 600; font-size: 2.7rem; line-height: 3.24rem;
  text-transform: uppercase;
}
/* фреймы абзацев в макете разные (849/923/933) — разбивку держат <br>,
   ширина здесь только страховка от расползания */
.trust-slide__text { font-size: 2rem; line-height: 2.4rem; margin-top: 1.1rem; max-width: 93.3rem; }
.trust-slide__text .accent { color: var(--c-accent); }

.faq { background: var(--c-bg-light); padding: 5rem 0; }
.faq__title { margin: 3.3rem 0 4rem; }
.faq__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}
/* строка с раскрытой карточкой не растягивает соседей (класс вешает JS) */
.faq__item--fit { align-self: start; }
/* поля считаются от текста (25/24 по макету), не от стрелки: при однострочном
   вопросе это дает те же 77, при двухстрочном — 105, а не 84 */
.faq__item {
  background: var(--c-bg-soft);
  border-radius: 1.5rem;
  padding: 2.5rem 2rem 2.4rem;
}
.faq__q {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 0.4rem;
  text-align: left;
  font-weight: 500; font-size: 2.3rem; line-height: 2.8rem;
  color: var(--c-dark-2);
}
/* свернутый пункт — темный круг со стрелкой вниз, раскрытый — красный со стрелкой вверх */
.faq__toggle {
  flex-shrink: 0;
  /* высоту пункта задает текст, а не стрелка: она выходит за поля симметрично */
  margin-block: -1rem;
  width: 4.8rem; height: 4.8rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #231F20; color: var(--c-white);
  transition: transform .25s ease, background .2s ease;
}
.faq__item.is-open .faq__toggle {
  background: var(--c-accent);
  transform: rotate(180deg);
}
/* плавное раскрытие: 0fr → 1fr анимирует реальную высоту содержимого,
   без magic-числа max-height и без пересчета в JS */
/* отступ от вопроса живет на контейнере и анимируется вместе с высотой:
   padding на самом тексте не клипается строкой 0fr и держит лишние 10px */
.faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  padding-top: 0;
  visibility: hidden;
  transition:
    grid-template-rows .38s cubic-bezier(.22, .61, .36, 1),
    padding-top .38s cubic-bezier(.22, .61, .36, 1),
    visibility .38s;
}
/* обёртка нужна, когда ответ из нескольких абзацев: 0fr задает только первый
   ряд, остальные уходят в grid-auto-rows и не сворачиваются */
.faq__answer > *, .faq__answer-in { overflow: hidden; min-height: 0; }
/* в макете 
 внутри ответа — обычный перенос строки, а не отбивка абзаца */
.faq__answer-in .faq__a + .faq__a { margin-top: 0; }
/* текстовые фреймы ответов: левая колонка 725, правая 739 */
.faq--new .faq__item:nth-child(odd) .faq__a { max-width: 72.5rem; }
.faq--new .faq__item:nth-child(even) .faq__a { max-width: 73.9rem; }
/* два вопроса в макете переносятся раньше — ширины их текстовых фреймов */
.faq--usl .faq__item:nth-child(2) .faq__q > span { max-width: 60rem; }
.faq--usl .faq__item:nth-child(6) .faq__q > span { max-width: 50.6rem; }
.faq__item.is-open .faq__answer {
  grid-template-rows: 1fr;
  padding-top: 1rem;
  visibility: visible;
}
.faq__a {
  font-size: 1.9rem; line-height: 2.28rem; color: var(--c-text);
  max-width: 72.5rem;
  opacity: 0; transform: translateY(-0.4rem);
  transition: opacity .3s ease .06s, transform .3s ease .06s;
}
.faq__item.is-open .faq__a { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .faq__answer, .faq__a, .faq__toggle { transition: none; }
}

.other-services { background: var(--c-bg-light); padding: 5rem 0; }
.other-services__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4rem;
  align-items: center;
  margin: 3.3rem 0 4rem;
}
.other-services__lead { font-size: 2rem; line-height: 2.4rem; max-width: 94.8rem; }
.other-services__lead .accent { color: var(--c-accent); }
.other-services__slider { overflow: hidden; }
.other-services .service-card__photo { border-radius: 2rem; }

/* мега-меню «Услуги»: две панели по макету — корневая 351x391 и подменю
   360x229 со сдвигом 22px вниз; открывается по наведению и по клику */
.header__nav-item.has-mega { position: relative; }
.mega {
  position: absolute; top: calc(100% + 1.4rem); left: 0; z-index: 20;
  display: flex; align-items: flex-start;
  opacity: 0; visibility: hidden; transform: translateY(-0.6rem);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.has-mega:hover .mega,
.has-mega.is-open .mega { opacity: 1; visibility: visible; transform: none; }
.mega__col {
  background: var(--c-bg-soft);
  border-radius: 0.8rem;
  box-shadow: 0 1.2rem 3.2rem rgba(0, 0, 0, .25);
  padding: 1rem 1.2rem;
  color: var(--c-text);
}
.header__nav .mega ul { display: block; gap: 0; }
.mega__col--root { width: 35.1rem; }
/* подколонки лежат друг на друге в одной точке: их несколько, и в потоке
   они выстроились бы в ряд */
.mega__col--sub {
  position: absolute; top: 0; left: 36rem;
  margin: 0;
  padding-block: 0.4rem;
  opacity: 0; visibility: hidden;
  transition: opacity .2s ease, visibility .2s;
}
.mega__col--sub.is-shown { opacity: 1; visibility: visible; }
/* прозрачный мостик до корневой колонки: иначе курсор по пути к подменю
   выходит за пределы .mega и меню закрывается */
.mega__col--sub::before {
  content: ""; position: absolute; top: 0; bottom: 0;
  left: -1.9rem; width: 1.9rem;
}
/* «Перевод кранов на радиоуправление» — 335px по макету; Chrome в 360-панель
   его не вмещает, поэтому панель на 10px шире макетной */
.mega__col--sub { width: 37rem; padding-inline: 1rem; }
.mega__col--sub .mega__item a { padding-right: 0; }
.mega__item + .mega__item { border-top: 1px solid var(--c-line); }
.header__nav .mega__item a {
  display: block; position: relative;
  white-space: normal;
  font-size: 1.6rem; line-height: 1.9rem;
  padding: 1.25rem 2.6rem 1.25rem 0;
  transition: color .2s ease;
}
.mega__item a:hover, .mega__item.is-active a { color: var(--c-accent); }
.mega__col--root .mega__item a::after {
  content: ''; position: absolute; right: 0.8rem; top: 50%;
  width: 0; height: 0; margin-top: -0.6rem;
  border: 0.6rem solid transparent; border-left: 1rem solid var(--c-dark-2);
  transition: border-color .2s ease;
}
.mega__col--root .mega__item--leaf a::after { content: none; }
.mega__col--root .mega__item a:hover::after,
.mega__col--root .mega__item.is-active a::after { border-left-color: var(--c-accent); }

/* главная: hero занимает окно целиком. Единица --u — «макетный пиксель»
   этого экрана: макет 1920x1220 вписывается по узкому измерению, поэтому
   на низком мониторе банер сжимается вместе с содержимым, а не вылезает */
.hero--main {
  --u: min(1rem, 100vh / 122);
  display: flex; flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
}
.hero--main > .container { display: flex; flex-direction: column; flex-grow: 1; }
.hero__bg--main {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  background: url('../img/main-hero-bg.webp') center / cover no-repeat;
}
/* две черты над заголовком: длинная белая и короткая красная поверх нее */
.hero__decor {
  position: relative;
  width: calc(17.8 * var(--u)); height: 1px;
  background: rgba(255, 255, 255, .5);
  margin-top: calc(9.2 * var(--u));
}
.hero__decor::after {
  content: ''; position: absolute; inset: 0 auto 0 0;
  width: calc(9.2 * var(--u)); background: var(--c-accent);
}
.hero__title--main {
  font-size: calc(13 * var(--u)); line-height: 0.93;
  font-weight: 600; text-transform: uppercase;
  margin-top: calc(2 * var(--u));
}
.hero__directions {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  background: #0D1720; border-radius: calc(2 * var(--u));
  height: calc(26.2 * var(--u));
  margin: auto 0 calc(7 * var(--u));
}
.direction { padding: calc(3.8 * var(--u)) 0 0 calc(3.1 * var(--u)); }
.direction + .direction { border-left: 1px solid rgba(255, 255, 255, .2); }
.direction__title {
  position: relative;
  font-weight: 500; font-size: calc(3 * var(--u)); line-height: 1.2;
  text-transform: uppercase;
  padding-top: calc(1.4 * var(--u));
}
.direction__title::before {
  content: ''; position: absolute; left: 0; top: 0;
  width: calc(5 * var(--u)); height: 2px; background: var(--c-accent);
}
.direction__text {
  font-size: calc(2.4 * var(--u)); line-height: 1.2;
  margin-top: calc(1.6 * var(--u));
}
/* текст-фреймы колонок по макету (345/345/374/373) — иначе при сжатии
   баннера строки перетекают и разбивка уезжает от макетной */
.direction:nth-child(-n+2) .direction__text { max-width: calc(34.5 * var(--u)); }
.direction:nth-child(3) .direction__text { max-width: calc(37.4 * var(--u)); }
.direction:nth-child(4) .direction__text { max-width: calc(37.3 * var(--u)); }

.hub-services--main { padding-bottom: 5rem; }
.hub-services--main .hub-services__lead { max-width: 125.4rem; }
.hub-services--main .hub-services__lead + .hub-services__lead { margin-top: 1rem; }
.hub-services--main .hub-services__grid { margin-top: 4rem; gap: 4rem; }
.hub-services--hub .hub-services__lead { max-width: 121.7rem; }
.hub-services--hub .hub-services__grid { margin-top: 4rem; gap: 4rem; }
.hub-services--main .hub-services__all { margin-top: 4rem; }

/* плитка услуги: подпись лежит на фото, описание раскрывается по наведению
   (в макете это отдельный фрейм «При наведении») */
.tile {
  position: relative; display: block;
  aspect-ratio: 790 / 383;
  border-radius: 1.5rem; overflow: hidden;
  color: var(--c-white);
}
.tile__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
.tile::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(35, 31, 32, 0) 0%, rgba(35, 31, 32, .8) 100%);
  transition: background .3s ease;
}
/* стрелка есть только в наведенном состоянии — в базовом макете ее нет */
.tile__arrow {
  /* группа в макете 75 с отступом 9, но сам круг рендерится 53 — итого 20 от краев плитки */
  position: absolute; top: 2rem; right: 2rem; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: 5.3rem; height: 5.3rem; border-radius: 50%;
  border: 1px solid currentColor;
  opacity: 0;
  transition: opacity .3s ease;
}
.tile:hover .tile__arrow { opacity: 1; }
/* стрелка по рендеру 284:29463: 13x14 в круге 53, округлые концы; размер в rem —
   svg с px-атрибутами не масштабировался вместе с кругом */
.tile__arrow svg { width: 1.4rem; height: 1.4rem; }
.tile__caption {
  position: absolute; left: 2rem; right: 2rem; bottom: 2.2rem; z-index: 1;
  display: block;
  transition: bottom .3s ease;
}
.tile__title {
  display: block;
  font-weight: 500; font-size: 3rem; line-height: 3.6rem;
  text-transform: uppercase;
}
/* 0fr → 1fr: высота анимируется без фиксированного значения */
.tile__reveal {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
}
.tile__reveal-in { overflow: hidden; min-height: 0; }
.tile__text {
  display: block;
  font-size: 1.7rem; line-height: 2rem;
}
.tile__text .accent { color: var(--c-accent); }
/* при наведении подложка из градиента 0→.8 становится .56→1 */
.tile:hover::after {
  background: linear-gradient(180deg, rgba(35, 31, 32, .56) 0%, rgba(35, 31, 32, 1) 100%);
}
/* линия — псевдоэлемент, а не border: border на grid-элементе с высотой 0fr
   продолжает рисоваться и торчит под заголовком в свернутом состоянии */
.tile__text:first-child { position: relative; padding-top: 2.3rem; }
.tile__text:first-child::before {
  content: ''; position: absolute; top: 1rem; left: 0; right: 0;
  height: 1px; background: rgba(255, 255, 255, .4);
}
.tile__text + .tile__text { margin-top: 1.4rem; }
.tile:hover .tile__reveal { grid-template-rows: 1fr; }
.tile:hover .tile__caption { bottom: 2rem; }
.hub-services__all { display: flex; justify-content: center; margin-top: 5rem; }
.hub-services__all .btn { width: 37.5rem; height: 6.5rem; font-size: 2rem; }
/* «Продукция»: карточки без описания — заголовок занимает всю ширину */
.hub-services--prod { padding-top: 5rem; }
.hub-services--prod .hub-services__lead { max-width: 118.9rem; }
.hub-services--prod .hub-services__grid { margin-top: 4rem; }
.service-card--plain .service-card__body { display: block; }
.service-card--plain .service-card__title { padding-right: 0; }
.service-card__note {
  font-size: 1.8rem; line-height: 2.2rem; color: var(--c-text);
  margin-top: 1.5rem; padding-top: 1.5rem;
  border-top: 1px solid var(--c-line);
}

.about-us { background: var(--c-bg-light); padding: 5rem 0; }
.about-us__title { margin: 3.3rem 0 1.4rem; }
.about-us__lead { font-size: 2rem; line-height: 2.4rem; max-width: 128.1rem; }
/* текст-фрейм четвертой карточки в макете уже остальных — 654 из 800 */
.about-card--narrow .about-card__list { max-width: 65.4rem; }
/* ширины текстовых фреймов из макета — иначе строки рвутся на слово позже */
.hub-services--prod .service-card:nth-child(2) .service-card__note { max-width: 73.8rem; }
.hub-services--prod .service-card:nth-child(4) .service-card__note { max-width: 67.8rem; }
.hub-services--prod .service-card:nth-child(5) .service-card__note { max-width: 71.8rem; }
.about-us__grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem; margin-top: 4.5rem;
}
.about-card {
  background: var(--c-white); border: 1px solid var(--c-line-light);
  border-radius: 1.5rem;
  min-height: 32rem;
  padding: 2rem 2rem 2.4rem;
}
.about-card--grey { background: var(--c-bg-soft); border-color: transparent; }
.about-card__icon {
  width: 6.5rem; height: 6.5rem; border-radius: 50%;
  background: #231F20;
  display: flex; align-items: center; justify-content: center;
}
.about-card__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 2rem;
  margin-top: 1.4rem;
  padding-bottom: 1.8rem;
  border-bottom: 1px solid var(--c-line);
}
.about-card__title {
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
  text-transform: uppercase; color: var(--c-accent);
}
.about-card__num { font-size: 2.5rem; line-height: 3rem; color: var(--c-text); }
.about-card__list { margin-top: 2.2rem; display: grid; gap: 1rem; }
.about-card__list li {
  position: relative;
  font-size: 2rem; line-height: 2.4rem; color: #292929;
  padding-left: 2.5rem;
}
/* маркер макета — красное кольцо 15px с заливкой 9px */
.about-card__list li::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}

.promo { background: var(--c-bg-light); padding-bottom: 5rem; }
.promo__photo {
  width: 100%; height: 54.6rem; object-fit: cover;
  border-radius: 2rem;
}

/* «Комплексные инженерные решения» на хабе автоматизации: серый блок с текстом
   и красной плашкой слева, фото справа */
.solution { background: var(--c-bg-light); padding: 7rem 0 4.9rem; }
.solution__title { margin: 3.3rem 0 0; }
.solution__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 4rem;
}
.solution__box {
  background: var(--c-bg-soft);
  border-radius: 1.5rem;
  padding: 4.6rem 5rem 5rem;
}
/* ширины текстовых фреймов из макета: 732 / 750 */
.solution__text { font-size: 2rem; line-height: 2.4rem; color: var(--c-dark-2); max-width: 73.2rem; }
.solution__text + .solution__text { max-width: 75rem; }
.solution__text .accent { color: var(--c-accent); }
.solution__text + .solution__text { margin-top: 1rem; }
.solution__note {
  background: var(--c-accent); color: var(--c-white);
  border-radius: 1rem;
  /* правое поле в макете 15, а не 21 — иначе строка рвется раньше */
  padding: 1.8rem 1.5rem 2rem 2.1rem;
  margin-top: 3.3rem;
}
.solution__note-title { font-weight: 500; font-size: 2.2rem; line-height: 2.6rem; }
.solution__note-text {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 66.4rem;
  margin-top: .7rem;
}
.solution__btn { width: 34.4rem; height: 6.5rem; font-size: 2rem; margin-top: 2rem; }
.solution__photo {
  display: block; width: 100%; height: 100%;
  object-fit: cover; border-radius: 1.5rem;
}
/* у хаба автоматизации первый ряд мозаики ниже: 278 против 324 */
.advantages--avt { --row-1: 27.8rem; }
.advantages--avt .advantages__lead { max-width: 112.9rem; }
.advantages--avt .advantage-card:nth-child(1) .advantage-card__text { max-width: 49.1rem; }
.advantages--avt .advantage-card:nth-child(2) .advantage-card__text,
.advantages--avt .advantage-card:nth-child(5) .advantage-card__text,
.advantages--avt .advantage-card:nth-child(6) .advantage-card__text { max-width: 48rem; }
.hub-services--avt .hub-services__lead { max-width: 98.4rem; }
/* текст-фреймы hero этой страницы: заголовок 1152 (две строки), лид 1163 */
.hero--avt .hero__title { max-width: 115.2rem; margin-top: 2.9rem; }
.hero--avt .hero__lead { max-width: 116.3rem; margin-top: 1.4rem; }

.hero--avtm .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--avtm .hero__title { max-width: 90.3rem; margin-top: 3.5rem; }
.hero--avtm .hero__lead--wide { max-width: 90.3rem; margin-top: 1.4rem; }

/* «Как это работает» на страницах автоматизации: тот же серый бокс, что на хабе,
   плюс список технической платформы чипами */
.solution__label {
  color: var(--c-accent); font-weight: 500;
  font-size: 2rem; line-height: 2.4rem;
  margin-top: 1.5rem;
}
.solution__chips {
  display: flex; flex-wrap: wrap; gap: 1.4rem 1rem;
  /* чипы в макете шире текстовых фреймов бокса: 200..884 */
  max-width: 68.4rem; margin-top: 1.6rem;
}
.solution--avtm { padding-bottom: 5.9rem; }
.solution--avtm .solution__text { max-width: 66.2rem; }
.solution--avtm .solution__text + .solution__text { max-width: 73.6rem; margin-top: 1rem; }
.solution--avtm .solution__note { padding: 2.1rem 1.7rem 2.8rem 2.1rem; margin-top: 2rem; }
.solution--avtm .solution__note-title { font-size: 2.4rem; line-height: 2.88rem; }
.solution--avtm .solution__note-text { max-width: 66.2rem; margin-top: 1rem; }
.solution--avtm .solution__btn { margin-top: 3rem; }
.solution--avtm .solution__photo { height: 76rem; border-radius: 2rem; }

/* карточки «Что внедряем» новой редакции: текст fs18, а не базовые fs19 */
.solutions--avtm .solution-card__text { font-size: 1.8rem; line-height: 2.16rem; }

.guarantee {
  background: var(--c-bg-light);
  padding: 0 0 5rem;
}
.guarantee__box {
  background: var(--c-bg-soft);
  border-radius: 2rem;
  padding: 3.5rem 4rem 4rem;
}
.guarantee__text {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 131.4rem;
  margin-top: 1.4rem;
}
.guarantee__text .accent { color: var(--c-accent); }

/* «Другие услуги» новой редакции: слайдер плиток хаба (по две на экран),
   стрелки в шапке напротив заголовка — в макете есть, второго экрана нет */
.other__title { margin: 3.8rem 0 0; }
.other--tiles { padding: 5rem 0; }
.other--tiles .other__head { align-items: flex-start; margin: 0 0 3.8rem; }
.other--tiles .other__heading { min-width: 0; }
.other__nav { display: flex; gap: 1rem; flex-shrink: 0; margin-top: 3.8rem; }
.other__arrow {
  width: 5.3rem; height: 5.3rem;
  border: 1px solid var(--c-dark-2); border-radius: 50%;
  color: var(--c-dark-2);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s ease, color .25s ease;
}
.other__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
/* плитка в слайде: aspect-ratio не задает высоту absolute-подписи без явной ширины */
.other--tiles .swiper-slide { height: auto; }
.other--tiles .tile { width: 100%; }

/* ширины ответов по колонкам макета этой страницы */
.faq--avtm .faq__item:nth-child(1) .faq__a { max-width: 65.2rem; }
.faq--avtm .faq__item:nth-child(2) .faq__a { max-width: 66.8rem; }
.faq--avtm .faq__item:nth-child(3) .faq__a { max-width: 70.2rem; }
.faq--avtm .faq__item:nth-child(4) .faq__a { max-width: 73.9rem; }
.faq--avtm .faq__item:nth-child(5) .faq__a { max-width: 66.8rem; }

/* ширины текстовых фреймов макета этой страницы: правое поле бокса 14, а не 50 —
   иначе строки рвутся на слово раньше */
.solution--avtm .solution__box { padding-right: 1.4rem; }
.solution--avtm .solution__text { max-width: 66.2rem; }
.solution--avtm .solution__text + .solution__text { max-width: 73.6rem; }
.solution--avtm .solution__note { max-width: 70rem; }

.reasons--avtm .reasons__slide[data-i="1"] .reasons__text { max-width: 84rem; }
.reasons--avtm .reasons__slide[data-i="2"] .reasons__text { max-width: 82rem; }
.reasons--avtm .reasons__slide[data-i="3"] .reasons__text { max-width: 89rem; }
.reasons--avtm .reasons__slide[data-i="4"] .reasons__text { max-width: 80.7rem; }

/* текст карточки в макете доходит до правого края плашки: 506 при колонке 526 */
.solutions--avtm .solution-card { padding: 2rem 2rem 2.4rem; }
.solutions--avtm .solution-card__text { margin-right: -2rem; }

.smart-banner--avtm .smart-banner__text { max-width: 74.7rem; }

/* карточки «Выгод» в макете 285 высотой, подписи — по ширине своего фрейма */
.effect--avtm .effect-card { min-height: 28.5rem; }
.effect--avtm .effect-card[data-i="1"] .effect-card__caption { max-width: 50.5rem; margin-right: -2.1rem; }
.effect--avtm .effect-card[data-i="2"] .effect-card__caption { max-width: 39.2rem; }
.effect--avtm .effect-card[data-i="3"] .effect-card__caption { max-width: 41.6rem; }
.effect--avtm .effect-card[data-i="4"] .effect-card__caption { max-width: 46.7rem; }
.effect--avtm .effect-card[data-i="5"] .effect-card__caption { max-width: 47.1rem; }
.effect--avtm .effect-card[data-i="6"] .effect-card__caption { max-width: 48.8rem; }

.stages--avtm .stages__lead { max-width: 94.7rem; }
.stages--avtm .stage-card__text { margin-right: -2.1rem; }

.about--avtm .about__lead { max-width: 117.1rem; }
.about--avtm .about__text { max-width: 67.6rem; }
.about--avtm .about__text + .about__text { max-width: 71.3rem; }
.about--avtm .about__highlight { margin-top: 2.2rem; }
.about--avtm .about__highlight-title { font-size: 2.5rem; line-height: 3rem; }
.about--avtm .about__btn { margin-top: 3rem; }
.about--avtm .about__photo { height: 52.4rem; }
.smart-banner--avtm .smart-banner__card { padding-right: 2.3rem; }

/* макет: бейдж лежит внутри белой плашки, отступы 40/23/75/30 */
.smart-banner--avtm .smart-banner__card { padding: 4rem 2.3rem 7.5rem 3rem; }
.smart-banner--avtm .smart-banner__title { margin-top: .9rem; }
.smart-banner--avtm .smart-banner__text { margin-top: 1.4rem; }
.smart-banner--avtm .smart-banner__btn { margin-top: 5.6rem; }

.about--avtm { padding: 5rem 0; }
.about--avtm .about__title { margin: 3.3rem 0 1.4rem; }
.about--avtm .about__lead { margin-bottom: 3rem; }
.about--avtm .about__btn { width: 34.4rem; height: 6.5rem; font-size: 2rem; }

/* в новой редакции стрелки слайдера предпосылок стоят в строке заголовка,
   а не внутри слайда */
.reasons--avtm .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
}
.reasons--avtm .reasons__nav { position: static; }
.reasons--avtm .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--avtm .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }

.hero--avtk .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--avtk .hero__title { max-width: 81.8rem; margin-top: 3.5rem; }
.hero--avtk .hero__lead--wide { max-width: 88.5rem; margin-top: 1.4rem; }

.solution--avtk { padding-bottom: 5.9rem; }
.solution--avtk .solution__box { padding-right: 3.4rem; }
.solution--avtk .solution__text,
.solution--avtk .solution__text + .solution__text { max-width: 71.6rem; }
.solution--avtk .solution__note { max-width: 70rem; padding: 2.1rem 2.1rem 2.1rem; margin-top: 2rem; }
.solution--avtk .solution__note-title { font-size: 2.4rem; line-height: 2.88rem; }
.solution--avtk .solution__note-text { max-width: 61.1rem; margin-top: 1rem; }
.solution--avtk .solution__btn { margin-top: 3rem; }
.solution--avtk .solution__photo { height: 77.8rem; border-radius: 2rem; }

.reasons--avtk .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
}
.reasons--avtk .reasons__nav { position: static; }
.reasons--avtk .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--avtk .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--avtk .reasons__slide[data-i="1"] .reasons__text { max-width: 68.5rem; }
.reasons--avtk .reasons__slide[data-i="2"] .reasons__text { max-width: 75.6rem; }
.reasons--avtk .reasons__slide[data-i="3"] .reasons__text { max-width: 88.1rem; }
.reasons--avtk .reasons__slide[data-i="4"] .reasons__text { max-width: 80.7rem; }

.solutions--avtk .solution-card { padding: 2rem; }
.solutions--avtk .solution-card__more { padding-top: 1.4rem; }
.solutions--avtk .solution-card__text { margin-right: -2rem; }

.smart-banner--avtk .smart-banner__card { padding: 4rem 2.3rem 10.1rem 3rem; }
.smart-banner--avtk .smart-banner__title { margin-top: 3.4rem; }
.smart-banner--avtk .smart-banner__text { max-width: 74.4rem; margin-top: 1.4rem; }
.smart-banner--avtk .smart-banner__btn { margin-top: 2.9rem; }

.effect--avtk .effect-card { min-height: 28.5rem; }
.effect--avtk .effect-card[data-i="1"] .effect-card__caption { max-width: 50.5rem; margin-right: -2.1rem; }
.effect--avtk .effect-card[data-i="2"] .effect-card__caption { max-width: 43rem; }
.effect--avtk .effect-card[data-i="3"] .effect-card__caption { max-width: 40.9rem; }
.effect--avtk .effect-card[data-i="4"] .effect-card__caption { max-width: 40.9rem; }
.effect--avtk .effect-card[data-i="5"] .effect-card__caption { max-width: 47.1rem; }
.effect--avtk .effect-card[data-i="6"] .effect-card__caption { max-width: 46.4rem; }

/* этапы этой страницы выше и текст в них мельче: ряды 324/320, fs19 */
.stages--avtk .stages__lead { max-width: 111.5rem; }
.stages--avtk .stages__grid { grid-auto-rows: minmax(32.4rem, auto); }
.stages--avtk .stage-card { min-height: 32rem; }
.stages--avtk .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-right: -2.1rem; }

.about--avtk { padding: 5rem 0; }
.about--avtk .about__title { margin: 3.3rem 0 1.4rem; }
.about--avtk .about__lead { max-width: 110.5rem; margin-bottom: 3rem; }
.about--avtk .about__text { max-width: 71.6rem; }
.about--avtk .about__text + .about__text { max-width: 67.6rem; }
.about--avtk .about__highlight { margin-top: 2rem; padding: 2.1rem 2.1rem 2.1rem; }
.about--avtk .about__highlight-title { font-size: 2.4rem; line-height: 2.88rem; max-width: 42.7rem; }
.about--avtk .about__highlight-text { max-width: 61.1rem; }
.about--avtk .about__btn { width: 34.4rem; height: 6.5rem; font-size: 2rem; margin-top: 3rem; }
.about--avtk .about__photo { height: 57.1rem; }

.guarantee--avtk .guarantee__text { max-width: 152.8rem; }

.faq--avtk .faq__item:nth-child(1) .faq__a { max-width: 65.2rem; }
.faq--avtk .faq__item:nth-child(2) .faq__a { max-width: 69.9rem; }
.faq--avtk .faq__item:nth-child(3) .faq__a { max-width: 70.2rem; }
.faq--avtk .faq__item:nth-child(4) .faq__a { max-width: 73.9rem; }
.faq--avtk .faq__item:nth-child(5) .faq__a { max-width: 76.4rem; }
.solution--avtk { padding-bottom: 5rem; }
.stages--avtk .stages__title { margin-top: 3.3rem; }

/* «Автоматизация портальных»: бокс «Как это работает» выше — 826, текст идет
   до правого края плашки (750 при 800) */
.hero--avtp .hero__title { max-width: 84.9rem; margin-top: 3.5rem; }
.hero--avtp .hero__lead--wide { max-width: 97.5rem; margin-top: 1.4rem; }

.solution--avtp { padding-bottom: 5.9rem; }
.solution--avtp .solution__box { padding-right: 0; }
.solution--avtp .solution__text { max-width: 75rem; }
.solution--avtp .solution__text + .solution__text { max-width: 72.9rem; }
.solution--avtp .solution__note { max-width: 70rem; padding: 2.1rem 2.1rem 2.1rem; margin-top: 2rem; }
.solution--avtp .solution__note-title { font-size: 2.4rem; line-height: 2.88rem; }
.solution--avtp .solution__note-text { max-width: 60.7rem; margin-top: 1rem; }
.solution--avtp .solution__btn { margin-top: 3rem; }
.solution--avtp .solution__photo { height: 82.6rem; border-radius: 2rem; }
.solution--avtp .solution__chips { margin-left: 0; }

.reasons--avtp .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
}
.reasons--avtp .reasons__nav { position: static; }
.reasons--avtp .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--avtp .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--avtp .reasons__slide[data-i="1"] .reasons__text { max-width: 87.5rem; }
.reasons--avtp .reasons__slide[data-i="2"] .reasons__text { max-width: 86.4rem; }
.reasons--avtp .reasons__slide[data-i="3"] .reasons__text { max-width: 91.3rem; }
.reasons--avtp .reasons__slide[data-i="4"] .reasons__text { max-width: 86.8rem; }

.solutions--avtp .solution-card { padding: 2rem 2rem 2.4rem; }
.solutions--avtp .solution-card__text { font-size: 1.8rem; line-height: 2.16rem; margin-right: -2rem; }

.smart-banner--avtp .smart-banner__card { padding: 4rem 2.3rem 7.5rem 3rem; }
.smart-banner--avtp .smart-banner__title { margin-top: .9rem; }
.smart-banner--avtp .smart-banner__text { max-width: 74.7rem; margin-top: 1.4rem; }
.smart-banner--avtp .smart-banner__btn { margin-top: 5.6rem; }

.effect--avtp .effect-card { min-height: 28.5rem; }
.effect--avtp .effect-card[data-i="1"] .effect-card__caption { max-width: 50.5rem; margin-right: -2.1rem; }
.effect--avtp .effect-card[data-i="2"] .effect-card__caption { max-width: 39.2rem; }
.effect--avtp .effect-card[data-i="3"] .effect-card__caption { max-width: 41.6rem; }
.effect--avtp .effect-card[data-i="4"] .effect-card__caption { max-width: 40.9rem; }
.effect--avtp .effect-card[data-i="5"] .effect-card__caption { max-width: 47.1rem; }
.effect--avtp .effect-card[data-i="6"] .effect-card__caption { max-width: 48.8rem; }

.stages--avtp .stages__lead { max-width: 94.6rem; }
.stages--avtp .stage-card__text { margin-right: -2.1rem; }

.about--avtp { padding: 5rem 0; }
.about--avtp .about__title { margin: 3.3rem 0 1.4rem; }
.about--avtp .about__lead { max-width: 117.1rem; margin-bottom: 3rem; }
.about--avtp .about__text { max-width: 67.6rem; }
.about--avtp .about__text + .about__text { max-width: 71.3rem; }
.about--avtp .about__highlight { margin-top: 2.2rem; }
.about--avtp .about__highlight-title { font-size: 2.5rem; line-height: 3rem; }
.about--avtp .about__btn { width: 34.4rem; height: 6.5rem; font-size: 2rem; margin-top: 3rem; }
.about--avtp .about__photo { height: 52.4rem; }

.faq--avtp .faq__item:nth-child(1) .faq__a { max-width: 65.2rem; }
.faq--avtp .faq__item:nth-child(2) .faq__a { max-width: 66.8rem; }
.faq--avtp .faq__item:nth-child(3) .faq__a { max-width: 70.2rem; }
.faq--avtp .faq__item:nth-child(4) .faq__a { max-width: 73.9rem; }
.faq--avtp .faq__item:nth-child(5) .faq__a { max-width: 66.8rem; }

.hero--avtg .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--avtg .hero__title { max-width: 90.3rem; margin-top: 3.5rem; }
.hero--avtg .hero__lead--wide { max-width: 90.3rem; margin-top: 1.4rem; }

.solution--avtg { padding-bottom: 5rem; }
.solution--avtg .solution__box { padding-right: 3.4rem; }
.solution--avtg .solution__text { max-width: 73rem; }
.solution--avtg .solution__text + .solution__text { max-width: 71rem; }
.solution--avtg .solution__note { max-width: 70rem; padding: 2.1rem; margin-top: 2rem; }
.solution--avtg .solution__note-title { font-size: 2.4rem; line-height: 2.88rem; }
.solution--avtg .solution__note-text { max-width: 61.1rem; margin-top: 1rem; }
.solution--avtg .solution__btn { margin-top: 3rem; }
.solution--avtg .solution__photo { height: 70.6rem; border-radius: 2rem; }

.reasons--avtg .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
}
.reasons--avtg .reasons__nav { position: static; }
.reasons--avtg .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--avtg .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--avtg .reasons__slide[data-i="1"] .reasons__text { max-width: 68.5rem; }
.reasons--avtg .reasons__slide[data-i="2"] .reasons__text { max-width: 75.6rem; }
.reasons--avtg .reasons__slide[data-i="3"] .reasons__text { max-width: 88.1rem; }
.reasons--avtg .reasons__slide[data-i="4"] .reasons__text { max-width: 80.7rem; }

.solutions--avtg .solution-card { padding: 2rem; }
.solutions--avtg .solution-card__more { padding-top: 1.4rem; }
.solutions--avtg .solution-card__text { margin-right: -2rem; }

.smart-banner--avtg .smart-banner__card { padding: 4rem 2.3rem 10.1rem 3rem; }
.smart-banner--avtg .smart-banner__title { margin-top: 3.4rem; }
.smart-banner--avtg .smart-banner__text { max-width: 74.2rem; margin-top: 1.4rem; }
.smart-banner--avtg .smart-banner__btn { margin-top: 2.9rem; }

.effect--avtg .effect-card { min-height: 28.5rem; }
.effect--avtg .effect-card[data-i="1"] .effect-card__caption { max-width: 48.5rem; }
.effect--avtg .effect-card[data-i="2"] .effect-card__caption { max-width: 43rem; }
.effect--avtg .effect-card[data-i="3"] .effect-card__caption { max-width: 44.4rem; }
.effect--avtg .effect-card[data-i="4"] .effect-card__caption { max-width: 45.7rem; }
.effect--avtg .effect-card[data-i="5"] .effect-card__caption { max-width: 47.1rem; }
.effect--avtg .effect-card[data-i="6"] .effect-card__caption { max-width: 46.4rem; }

/* этапы: ряды 300/304 */
.stages--avtg .stages__title { margin-top: 3.3rem; }
.stages--avtg .stages__lead { max-width: 109.1rem; }
.stages--avtg .stages__grid { grid-auto-rows: minmax(30rem, auto); }
.stages--avtg .stage-card { min-height: 30rem; }
.stages--avtg .stage-card__text { margin-right: -2.1rem; }

.about--avtg { padding: 5rem 0; }
.about--avtg .about__title { margin: 3.3rem 0 1.4rem; }
.about--avtg .about__lead { max-width: 110.5rem; margin-bottom: 3rem; }
.about--avtg .about__text { max-width: 73.8rem; }
.about--avtg .about__text + .about__text { max-width: 73rem; }
.about--avtg .about__highlight { margin-top: 2rem; padding: 2.1rem; }
.about--avtg .about__highlight-title { font-size: 2.4rem; line-height: 2.88rem; max-width: 41.5rem; }
.about--avtg .about__highlight-text { max-width: 64.1rem; }
.about--avtg .about__btn { width: 34.4rem; height: 6.5rem; font-size: 2rem; margin-top: 3rem; }
.about--avtg .about__photo { height: 54.3rem; }

.guarantee--avtg .guarantee__text { max-width: 152.8rem; }

.faq--avtg .faq__item:nth-child(1) .faq__a { max-width: 72.5rem; }
.faq--avtg .faq__item:nth-child(2) .faq__a { max-width: 76.4rem; }
.faq--avtg .faq__item:nth-child(3) .faq__a { max-width: 70.2rem; }
.faq--avtg .faq__item:nth-child(4) .faq__a { max-width: 73.9rem; }
.faq--avtg .faq__item:nth-child(5) .faq__a { max-width: 76.4rem; }
/* текст в макете доходит почти до правого края плашки: 738 при 800 */
.about--avtg .about__card { padding-right: 1.2rem; }
.about--avtg .about__highlight { padding: 1.8rem 2.1rem 2rem; }

/* hero этой страницы выше базовых 547, кадр слоя пересчитан на 585 */
.hero--udal { min-height: 58.5rem; }
.hero--udal .hero__bg { background-image: url('../img/avt-hero-bg.webp'); background-position: 50% 69.6%; }
.hero--udal .hero__title { max-width: 153.2rem; margin-top: 3.9rem; }
.hero--udal .hero__lead--wide { max-width: 129.9rem; margin-top: 1.4rem; }
.hero--udal .hero__lead--wide + .hero__lead--wide { max-width: 113.5rem; margin-top: 1rem; margin-bottom: 3.4rem; }

/* «Как это работает» удаленного управления: два ряда «текст/фото»,
   во втором фото слева, между рядами линейка макета */
.solution--udal { padding-bottom: 5rem; }
.solution--udal .solution__row {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem; align-items: start;
}
.solution--udal .solution__row--rev {
  margin-top: 4rem; padding-top: 4rem;
  border-top: 1px solid #DCDCDC;
}
/* фрейм заголовка в макете 827 при колонке 800 */
.solution--udal .solution__row--rev .solution__title { margin-top: 0; margin-right: -3rem; }
.solution__lead {
  font-size: 2rem; line-height: 2.4rem; color: var(--c-dark-2);
  max-width: 80rem; margin-top: 1.4rem;
}
.solution__lead .accent { color: var(--c-accent); }
.solution__lead + .solution__lead { margin-top: 1rem; }
.solution__list { margin-top: 1rem; }
.solution__list li { color: var(--c-dark-2); max-width: 80rem; }
.solution__list .accent { color: var(--c-accent); }
.solution__pic img { display: block; width: 100%; border-radius: 2rem; object-fit: cover; }
.solution--udal .solution__row .solution__pic img { height: 60.3rem; }
.solution--udal .solution__row--rev .solution__pic img { height: 33.5rem; }
.solution--udal .solution__row--rev .solution__lead { max-width: 71.8rem; }
.solution--udal .solution__row--rev .solution__lead + .solution__lead { max-width: 80rem; }
.solution--udal .solution__btn { margin-top: 3rem; }
.solution--pkp .solution__btn { width: 44.6rem; white-space: nowrap; }

.reasons--udal .reasons__title { margin: 3.3rem 0 0; }
.reasons--udal .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 1.4rem 0 4rem;
}
.reasons--udal .reasons__lead { font-size: 2rem; line-height: 2.4rem; max-width: 138.6rem; }
.reasons--udal .reasons__lead .accent { color: var(--c-accent); }
.reasons--udal .reasons__nav { position: static; }
.reasons--udal .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--udal .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
/* макет: подложка-градиент с непрозрачностью слоя .22, пятно только под текстом
   (стрелки вынесены из фото — второй «кляксы» нет) */
.reasons--udal .reasons__shade {
  background:
    radial-gradient(43.9rem 16.1rem at 45.6rem 43rem, rgba(24, 24, 24, .72) 20%, rgba(24, 24, 24, 0) 100%),
    linear-gradient(90deg, rgba(24, 24, 24, .17), rgba(24, 24, 24, .02));
}
.reasons--udal .reasons__body { max-width: none; bottom: 3.4rem; }
.reasons--udal .reasons__heading { max-width: 67.3rem; }
.reasons--udal .reasons__slide[data-i="1"] .reasons__text { max-width: 100.4rem; }
.reasons--udal .reasons__slide[data-i="2"] .reasons__text { max-width: 85.2rem; }
.reasons--udal .reasons__slide[data-i="3"] .reasons__text { max-width: 97.2rem; }

/* «Что внедряем»: 6 карточек по 526 и ряд из двух широких по 800 —
   сетка на 6 колонок, span 2 и span 3 */
.solutions--udal .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--udal .solutions__grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  row-gap: 2rem;
}
.solutions--udal .solutions__grid { align-items: start; }
.solutions--udal .solution-card { grid-column: span 2; padding-left: 2rem; padding-right: 2rem; min-height: 55.1rem; }
/* фрейм заголовка в макете шире колонки карточки: 506 при 486 */
.solutions--udal .solution-card:nth-child(4) .solution-card__title { margin-right: -2rem; }
.solutions--udal .solution-card--wide { grid-column: span 3; padding-bottom: 2rem; min-height: 48.3rem; }
.solutions--udal .solution-card--wide .solution-card__photo { height: 20.4rem; }
.solutions--udal .solution-card:nth-child(1) .solution-card__text,
.solutions--udal .solution-card:nth-child(4) .solution-card__text { max-width: 46.9rem; }
.solutions--udal .solution-card:nth-child(2) .solution-card__text { max-width: 44.7rem; }
.solutions--udal .solution-card:nth-child(3) .solution-card__text,
.solutions--udal .solution-card:nth-child(6) .solution-card__text { max-width: 46.2rem; }
.solutions--udal .solution-card:nth-child(5) .solution-card__text { max-width: 43.4rem; }
.solutions--udal .solution-card--wide .solution-card__text { max-width: 76.5rem; }

/* «Читать подробнее» новой редакции: подчеркнутая ссылка fs20, без стрелки */
.more-link {
  align-self: flex-start; margin-top: auto; padding-top: 2rem;
  color: var(--c-accent); font-weight: 600; font-size: 2rem; line-height: 2.4rem;
  text-decoration: underline; text-underline-offset: .4rem;
}
.more-link:hover { text-decoration-color: transparent; }
/* раскрытие на месте: короткий текст с акцентом + ссылка → полный черный текст */
.solution-card__more-text, .stage-card__more-text, .advantage-card__more-text { display: none; }
.solution-card.is-open .solution-card__more-text { display: block; }
.advantage-card.is-open .advantage-card__more-text { display: block; }
.stage-card.is-open .stage-card__more-text { display: block; margin-top: 2.4rem; }
.solution-card.is-open .more-link, .stage-card.is-open .more-link, .advantage-card.is-open .more-link { display: none; }
.solution-card.is-open, .stage-card.is-open, .advantage-card.is-open { cursor: pointer; }
.solution-card.is-open .solution-card__text .accent,
.advantage-card.is-open .advantage-card__text .accent { color: inherit; }

.effect--udal .effect__head { margin: 3.3rem 0 0; }
.effect--udal .effect__lead {
  font-size: 2rem; line-height: 2.4rem;
  max-width: 112.6rem; margin: 1.4rem 0 4rem;
}
.effect--udal .effect__lead .accent { color: var(--c-accent); }
.effect--udal .effect-card { min-height: 33.5rem; }
.effect--udal .effect-card__body { bottom: 2rem; }
.effect--udal .effect-card[data-i="1"] .effect-card__caption { max-width: 47.5rem; }
/* фрейм текста в макете шире поля карточки: 497 при 484 */
.effect--udal .effect-card[data-i="2"] .effect-card__caption { max-width: 49.7rem; margin-right: -1.3rem; }
.effect--udal .effect-card[data-i="3"] .effect-card__caption { max-width: 49.6rem; }
.effect--udal .effect-card[data-i="4"] .effect-card__caption { max-width: 48.5rem; }
.effect--udal .effect-card[data-i="5"] .effect-card__caption { max-width: 49.7rem; }
/* в макете полный текст карточки показан состоянием «при наведении»:
   блок прижат к низу, поэтому хвост раскрывается вверх и не двигает слайд */
.effect-card__more {
  font-size: 1.8rem; line-height: 2.16rem;
  max-width: 49.7rem;
  max-height: 0; margin-top: 0; opacity: 0; overflow: hidden;
  transition: max-height .35s ease, margin-top .35s ease, opacity .25s ease;
}
.effect-card:hover .effect-card__more,
.effect-card:focus-within .effect-card__more { max-height: 16rem; margin-top: .6rem; opacity: 1; }

.smart-banner--udal .smart-banner__card { padding: 2.6rem 2.1rem 3.1rem 3rem; }
.smart-banner--udal .smart-banner__title { max-width: 67.1rem; }
.smart-banner--udal .smart-banner__text { margin-top: 1.4rem; max-width: 65rem; }
.smart-banner__chips {
  display: flex; flex-wrap: wrap; gap: .9rem 1rem;
  max-width: 75rem; margin-top: 1.5rem;
}
/* чипы этого блока в макете уже общих: 12.5 по бокам вместо 16 */
.smart-banner__chips .chip { padding: .7rem 1.25rem; }
.smart-banner__note { font-size: 1.8rem; line-height: 2.16rem; max-width: 58rem; margin-top: 1.9rem; }
.smart-banner--udal .smart-banner__btn { margin-top: 2rem; width: 39.8rem; height: 6.5rem; font-size: 2rem; white-space: nowrap; }
.smart-banner--udal .smart-banner__photo img { height: 54.5rem; }

.stages--udal .stages__title { margin: 3.3rem 0 4rem; }
/* карточки раскрываются независимо: строка сетки не тянет соседей, поэтому
   общая высота свернутых задается min-height (по самой высокой), фото — явно */
.stages--udal .stages__grid { align-items: start; }
.stages--udal .stage-card { padding: 1.6rem 2.1rem 1.8rem; min-height: 34.6rem; }
.stages--udal .stage-card--photo { height: 34.6rem; }
.stages--udal .stage-card__num { line-height: 4.8rem; }
/* между номером и заголовком в макете 54, дальше карточка растет вниз */
.stages--udal .stage-card__title { font-size: 2.3rem; line-height: 2.8rem; margin-top: 5.4rem; }
/* текст-фреймы этапов в макете 354 при колонке 348 */
.stages--udal .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-right: -.6rem; }
/* пятая ячейка сетки — этап 04 (третья ячейка занята фото) */
.stages--udal .stage-card:nth-child(5) .stage-card__text { max-width: 32.5rem; margin-right: 0; }
.stages--udal .more-link { margin-top: auto; padding-top: .6rem; }
.stage-card--accent .more-link { color: var(--c-bg-light); }

.about--udal { padding-top: 5rem; }
.about--udal .about__title { margin: 3.3rem 0 4rem; }
.about--udal .about__card { padding: 4.6rem 5rem 5rem; }
.about--udal .about__text { max-width: 65.4rem; }
.about--udal .about__text + .about__text { max-width: 70rem; }
/* третий абзац в макете шире поля карточки: фрейм 734 при 700 */
.about--udal .about__text + .about__text + .about__text { max-width: 73.4rem; margin-right: -3.4rem; }
.about--udal .about__highlight { margin-top: 1.9rem; max-width: 70rem; padding: 1.8rem 2.1rem 2.1rem; }
.about--udal .about__highlight-title { font-size: 2.3rem; line-height: 2.8rem; }
.about--udal .about__highlight-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 65.7rem; }
.about--udal .about__btn { margin-top: 3rem; width: 36.3rem; height: 6.5rem; font-size: 2rem; }
.about--udal .about__photo { height: 65.5rem; }

.advantages--udal .advantage-card:nth-child(2) .advantage-card__text { max-width: 46.5rem; }
.advantages--udal .advantage-card:nth-child(3) .advantage-card__text { max-width: 45.5rem; }
.faq--udal .faq__item:nth-child(6) .faq__q span { max-width: 65.4rem; }

.hero--modn .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--modn .hero__title { max-width: 115.2rem; margin-top: 2.5rem; }
.hero--modn .hero__lead--wide { max-width: 104rem; margin-top: 1.4rem; }
.hero--modn .hero__lead--wide + .hero__lead--wide { max-width: 79.4rem; margin-top: 1rem; }

/* хаб «Модернизация»: пять плиток в две колонки, последняя одна в ряду */
.hub-services--modn { padding-top: 5rem; }
.hub-services--modn .hub-services__title { max-width: 133.8rem; }
.hub-services--modn .hub-services__lead { max-width: 148.7rem; }

.advantages--modn { --row-1: 34rem; --row-2: 36.6rem; }
.advantages--modn .advantages__grid { gap: 2rem 2.1rem; }
.advantages--modn .advantages__lead { max-width: 112.9rem; }
.advantages--modn .advantage-card__title { text-transform: uppercase; }
.advantages--modn .advantage-card:nth-child(1) .advantage-card__text { max-width: 50.5rem; }
/* фрейм текста в макете шире колонки карточки: 501 при 484 */
.advantages--modn .advantage-card:nth-child(2) .advantage-card__text { max-width: 50.1rem; margin-right: -1.7rem; }
.advantages--modn .advantage-card:nth-child(5) .advantage-card__text,
.advantages--modn .advantage-card:nth-child(6) .advantage-card__text { max-width: 48rem; }

/* врезка-плашка 1620x235 на светлом фоне: заголовок fs40 и два абзаца fs20 */
.note-band { background: var(--c-bg-light); padding-bottom: 5rem; }
.note-band__box { background: var(--c-bg-soft); padding: 3.5rem 4rem 0; min-height: 23.5rem; }
.note-band__title { margin: 0; }
.note-band__text {
  max-width: 152.8rem;
  margin-top: 1.4rem;
  font-size: 2rem; line-height: 2.4rem;
}
.note-band__text + .note-band__text { margin-top: 1rem; }

.hero--pkp .hero__bg { background-image: url('../img/hubp-hero.webp'); }
.hero--pkp .hero__title { max-width: 153.2rem; margin-top: 2.5rem; }
.hero--pkp .hero__lead--wide { max-width: 88.1rem; margin-top: 1.4rem; }
.hero--pkp .hero__lead--wide + .hero__lead--wide { margin-top: 1rem; }

.solution--pkp .solution__box { padding-right: 3rem; }
.solution--pkp .solution__text { max-width: 72.7rem; }
.solution--pkp .solution__text:first-child { max-width: 70rem; }
.solution--pkp .solution__note-text { max-width: 66.1rem; }

/* «Выгоды»: четыре карточки 800x256 в две колонки, иконка без тёмного круга */
.advantages--pkpv .advantages__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(25.6rem, auto);
  gap: 2rem;
  margin-top: 4.5rem;
}
.advantages--pkpv .advantage-card { min-height: 25.6rem; padding: 2rem 2.1rem 2.4rem; }
.advantages--pkpv .advantage-card__icon {
  width: 3.3rem; height: 3.3rem; border-radius: 0; background: none;
}
.advantages--pkpv .advantage-card__title {
  text-transform: none;
  margin-top: 1.3rem; padding-bottom: 0; border-bottom: 0;
}
.advantages--pkpv .advantage-card__text { max-width: 68.6rem; margin-top: 1rem; }
.advantages--pkpv .advantage-card:nth-child(1) .advantage-card__text { max-width: 68.3rem; }
.advantages--pkpv .advantage-card:nth-child(3) .advantage-card__text { max-width: 73.5rem; }
.advantages--pkpv .advantage-card:nth-child(4) .advantage-card__text { max-width: 75.6rem; }

/* «Форматы ремонта»: у карточки нет бейджа-срока, зато список раскрывается
   по «Смотреть еще» — семь последних пунктов скрыты до клика */
.formats--pkp { padding: 5rem 0; }
.formats--pkp .formats__title { max-width: 154.6rem; margin: 3.3rem 0 3.6rem; }
.formats--pkp .format-card__head { padding: 2.5rem 2rem 0; min-height: 12.1rem; }
.formats--pkp .format-card__title { text-transform: uppercase; }
.formats--pkp .format-card__subtitle { max-width: 49.8rem; margin-top: 1.2rem; }
.formats--pkp .format-card__list { padding: 1.6rem 2rem; }
.formats--pkp .format-card__list li { padding-bottom: 1.5rem; margin-bottom: 1.5rem; }
.format-card__list li.is-extra { display: none; }
.format-card.is-open .format-card__list li.is-extra { display: list-item; }
/* последний видимый пункт без разделителя — в свёрнутом виде это восьмой */
.formats--pkp .format-card:not(.is-open) .format-card__list li:nth-child(8) {
  margin-bottom: 0; padding-bottom: 0; border-bottom: 0;
}
.formats--pkp .format-card__list li:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.formats--pkp .format-card__foot { padding: 1.4rem 2rem 2.9rem; }
.format-card__more {
  display: block;
  background: none; border: 0; padding: 0;
  font: inherit; font-weight: 600; font-size: 2rem; line-height: 2.4rem;
  color: var(--c-accent); cursor: pointer;
  text-decoration: underline; text-underline-offset: 0.4rem;
}
.format-card__more:hover { text-decoration: none; }
.formats--pkp .format-card__btn { margin-top: 2.6rem; font-size: 1.7rem; }

.outsource--pkp .out-card__title { max-width: 44.8rem; }

/* «Этапы»: шесть шагов и два фото, 4 колонки, ряды 322 и 323 по макету */
.stages--pkp .stages__title { margin: 3.3rem 0 4rem; }
.stages--pkp .stages__grid { grid-auto-rows: minmax(32.2rem, auto); }
.stages--pkp .stage-card { min-height: 32.2rem; padding: 1.6rem 2.1rem 2.4rem; }
.stages--pkp .stage-card--photo { padding: 0; }
/* между номером и заголовком в макете 54, дальше карточка растет вниз */
.stages--pkp .stage-card__title { font-size: 2.5rem; line-height: 3rem; margin-top: 5.4rem; }
.stages--pkp .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; }

/* «Преимущества работы»: мозаика 3x2, карточка/фото/карточка — фото/карточка/карточка */
.advantages--pkpa .advantages__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(26.6rem, auto) minmax(27.3rem, auto);
  gap: 2rem 2.1rem;
  margin-top: 4rem;
}
.advantages--pkpa .advantage-card { min-height: 0; border-radius: 1rem; }
.advantages--pkpa .advantage-card__title {
  text-transform: none;
  font-size: 2.5rem; line-height: 3rem;
  margin-top: 1.4rem; padding-bottom: 1.4rem;
}
.advantages--pkpa .advantage-card__text {
  font-size: 1.9rem; line-height: 2.28rem;
  margin-top: 1.3rem; max-width: 47.7rem;
}
.advantages--pkpa .advantage-card:nth-child(1) .advantage-card__text { max-width: 48.5rem; }
.advantages--pkpa .advantage-card:nth-child(5) .advantage-card__text { max-width: 47.4rem; }
.advantages--pkpa .advantages__photo { min-height: 0; }

/* переносы по ширинам фреймов макета: ремонт подкрановых путей */
.faq--pkp .faq__item:nth-child(3) .faq__q span,
.faq--pkp .faq__item:nth-child(11) .faq__q span { max-width: 57.8rem; }
.advantages--pkpa .advantage-card:nth-child(6) .advantage-card__title { max-width: 41.9rem; }
.stages--pkp .stage-card:nth-child(1) .stage-card__text { max-width: 33.6rem; margin-right: -1.2rem; }
/* фреймы в макете шире колонки 348: заголовок 382, текст 369 */
.stages--pkp .stage-card:nth-child(2) .stage-card__title { max-width: 38.2rem; margin-right: -3.6rem; }
.stages--pkp .stage-card:nth-child(4) .stage-card__text { max-width: 36.9rem; margin-right: -2.3rem; }
.trust--pkp .trust-slide { justify-content: flex-end; } /* без верхней подписи — текст у низа, как в макете */
.trust--pkp .trust-slide__title { max-width: 104.3rem; margin-right: -6rem; }
.outsource--pkp .swiper-slide[data-i="2"] .out-card__title { max-width: 50.4rem; }
.outsource--pkp .swiper-slide[data-i="2"] .out-card__text { max-width: 46.2rem; }
.outsource--pkp .swiper-slide[data-i="3"] .out-card__text { max-width: 42.5rem; }

.other--pkp .other__title { margin-bottom: 1.4rem; }
.other--pkp .other__lead { max-width: 118.9rem; font-size: 2rem; line-height: 2.4rem; }

/* переносы по ширинам фреймов макета: главная (453 и 683 при более широких
   боксах — Chrome вмещает лишнее слово и строки уезжают) */
.advantages--main .advantage-card:nth-child(2) .advantage-card__text { max-width: 45.3rem; }

.format-card__kicker {
  display: block;
  font-size: 1.5rem; line-height: 1.8rem;
  color: var(--c-accent);
  margin-bottom: 0.8rem;
}
.format-card--accent .format-card__kicker { color: var(--c-white); }
.format-card__term {
  font-size: 1.5rem; line-height: 1.8rem;
  color: #6B6B6B;
  margin-bottom: 1rem;
}
.formats--kb .formats__title { max-width: 135.8rem; }
/* карточки одной высоты (в макете 867/930 — выравниваем по большей): шапка 232,
   список тянется, подвал у низа; кикер — плашка 15/31 с заливкой .15/.30 */
.formats--kb .formats__grid { align-items: stretch; }
.formats--kb .format-card__head { min-height: 23.2rem; padding: 2rem 2rem 2rem; }
.formats--kb .format-card__kicker {
  display: inline-block; margin-bottom: 1.7rem;
  padding: .65rem 1.5rem; border-radius: 3rem;
  background: rgba(73, 73, 73, .15); color: var(--c-text);
}
.formats--kb .format-card--accent .format-card__kicker { background: rgba(255, 255, 255, .3); color: var(--c-white); }
.formats--kb .format-card__subtitle { max-width: 75.9rem; margin-top: .8rem; }
.formats--kb .format-card__head .format-card__term { margin: 1rem 0 0; }
.formats--kb .format-card--accent .format-card__term { color: #F3F3F3; }
.formats--kb .format-card__foot { padding: 1.9rem 2rem 3.4rem; }

/* «Читать подробнее» в карточках основных параметров: часть текста скрыта,
   в макете это второй экран секции */
.repair--prt .repair__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.repair-card__more-box { display: none; }
.repair-card.is-open .repair-card__more-box { display: block; }
.repair-card__more-box .repair-card__text { margin-top: 1.4rem; }
.repair-card__more {
  align-self: start;
  margin-top: 1.4rem;
  background: none; border: 0; padding: 0;
  font: inherit; font-weight: 600; font-size: 2rem; line-height: 2.4rem;
  color: var(--c-accent); cursor: pointer;
  text-decoration: underline; text-underline-offset: 0.4rem;
}
.repair-card__more:hover { text-decoration: none; }
/* ТО-деталки: ссылка у нижнего края карточки при любой длине текста */
.page-tomst .repair-card, .page-tokoz .repair-card, .page-toprt .repair-card { display: flex; flex-direction: column; }
.page-tomst .repair-card__more, .page-tokoz .repair-card__more, .page-toprt .repair-card__more { margin-top: auto; padding-top: 1.4rem; }

.page-remont-mst .servprog__item:nth-child(4) .servprog__item-text { max-width: 60.3rem; }
/* фреймы шире боксов: ширина работает вместе с жесткими переносами */
.page-remont-mst .servprog__item:nth-child(3) .servprog__item-text { max-width: 76rem; margin-right: -4.2rem; }
.page-remont-mst .outsource .swiper-slide[data-i="1"] .out-card__text { max-width: 51.2rem; margin-right: -2.7rem; }
.page-remont-mst .repair-card:nth-child(1) .repair-card__text { max-width: 78.2rem; margin-right: -2.4rem; }
.page-remont-mst .experts__alert-text { max-width: 67.2rem; margin-right: -1rem; }
.page-remont-mst .servprog__col-text p:nth-child(2) { max-width: 67rem; }
.page-remont-mst .outsource .swiper-slide[data-i="2"] .out-card__text { max-width: 51.2rem; }
.page-remont-mst .outsource .swiper-slide[data-i="3"] .out-card__text { max-width: 47.2rem; }
.page-remont-mst .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 51.2rem; margin-right: -2.7rem; } /* второй экран, фреймы 512/505 */
.page-remont-mst .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 50.5rem; margin-right: -2rem; }
.page-remont-mst .repair__title { max-width: 114.4rem; }
.page-remont-mst .format-card:nth-child(1) .format-card__subtitle { max-width: 67.2rem; }
.page-remont-mst .experts__text:nth-of-type(2) { max-width: 66.6rem; }
.page-remont-mst #prog-mesyac .servprog__foot-text { max-width: 80.9rem; } /* фрейм второй вкладки */
.page-remont-mst #prog-247 .servprog__foot-text { max-width: 84.6rem; }
.page-remont-mst #prog-mesyac .servprog__col-text p:first-child { max-width: 74.9rem; }
.page-remont-mst #prog-mesyac .servprog__col-text p + p { max-width: 70rem; }
.page-remont-mst #prog-247 .servprog__col-text p:first-child { max-width: 67.5rem; }
.page-remont-prt #prog-247 .servprog__col-text p:first-child { max-width: 67.5rem; }
/* фреймы макета: первый абзац «О нас» 614/727/730, баннер доверия 978/849, карточка 447 */
.page-remont-mst .experts__text:nth-of-type(1) { max-width: 61.4rem; }
.page-remont-prt .experts__text:nth-of-type(1) { max-width: 72.7rem; }
/* фрейм 730 шире внутренней ширины плашки: последняя строка выезжает за паддинг */
.page-remont-kb .experts__text:nth-of-type(1) { max-width: none; margin-right: -3rem; }
.page-remont-koz .trust-slide__text { max-width: 97.8rem; }
/* баннеры без верхней подписи — текст у низа; фреймы абзацев 849/933/923/955/760 */
.page-remont-kb .trust-slide { justify-content: flex-end; }
.page-remont-prt .trust-slide, .page-remont-mst .trust-slide { justify-content: flex-end; }
.page-remont-prt .swiper-slide[data-i="2"] .trust-slide__text { max-width: 93.3rem; }
.page-remont-mst .swiper-slide[data-i="2"] .trust-slide__text { max-width: 93.3rem; }
.page-remont-mst .swiper-slide[data-i="3"] .trust-slide__text { max-width: 92.3rem; }
.page-remont-mst .swiper-slide[data-i="4"] .trust-slide__text { max-width: 99.8rem; }
.page-remont-mst .swiper-slide[data-i="5"] .trust-slide__text { max-width: 72.2rem; }
.page-remont-kb .trust-slide__text { max-width: 84.9rem; }
.page-remont-kb .swiper-slide[data-i="2"] .trust-slide__text { max-width: 93.3rem; }
.page-remont-kb .swiper-slide[data-i="3"] .trust-slide__text { max-width: 92.3rem; }
.page-remont-kb .swiper-slide[data-i="4"] .trust-slide__text { max-width: 95.5rem; }
.page-remont-kb .swiper-slide[data-i="5"] .trust-slide__text { max-width: 76rem; }
.page-remont-kb .advantages--serv .advantage-card:nth-child(7) .advantage-card__text { max-width: 44.7rem; }
.page-remont-mst .faq__item:nth-child(7) .faq__q span { max-width: 65rem; }
.page-remont-mst .hero { min-height: 54.7rem; }
.page-remont-mst .repair__title { text-transform: uppercase; }

/* новая редакция: hero — стандартные 547 макета */
.page-remont-prt .hero { min-height: 54.7rem; }
.page-remont-prt .servprog__item-text { max-width: 63.2rem; }
.page-remont-prt .servprog__item:nth-child(4) .servprog__item-text { max-width: 60.3rem; }
/* только первые две вкладки — у «Пакета 24/7» текст во всю строку */
.page-remont-prt #prog-kvartal .servprog__foot-text { max-width: 93.6rem; }
.page-remont-prt #prog-mesyac .servprog__foot-text { max-width: none; } /* фрейм 1041 — вся колонка */
.page-remont-prt .other__lead { max-width: 94.8rem; }
.page-remont-prt .advantages--serv .advantage-card:nth-child(3) .advantage-card__text { max-width: 47.6rem; }
.page-remont-prt .other__tiles .tile:nth-child(1) .tile__text { max-width: 39.1rem; }
.page-remont-prt .other__tiles .tile:nth-child(2) .tile__text { max-width: 36.3rem; }
.page-remont-prt .advantages--serv .advantage-card:nth-child(1) .advantage-card__text { max-width: 48.5rem; }
.page-remont-prt .advantages--serv .advantage-card:nth-child(2) .advantage-card__text { max-width: 47.6rem; }
.page-remont-prt .experts__text:nth-of-type(2) { max-width: 66.6rem; }
.page-remont-prt .formats__title { max-width: 135.8rem; }
.page-remont-prt .format-card:nth-child(1) .format-card__subtitle { max-width: 67.2rem; }
.page-remont-prt .format-card:nth-child(2) .format-card__subtitle { max-width: 66.4rem; }
.page-remont-prt .repair__title { text-transform: uppercase; max-width: 114.4rem; }
.page-remont-prt .repair-card__text { max-width: 75.5rem; }
.page-remont-prt .experts__alert-text { max-width: 61.3rem; }

/* «Ремонт кран-балок», новая редакция: ширины текстовых фреймов макета */
/* новая редакция: hero — стандартные 547 макета, а не 503 старой версии */
.page-remont-kb .hero { min-height: 54.7rem; }
.page-remont-kb .outsource .section-title { max-width: 105.2rem; }
/* только первые две вкладки — у «Пакета 24/7» текст во всю строку */
.page-remont-kb #prog-kvartal .servprog__foot-text { max-width: 83.4rem; }
.page-remont-kb #prog-mesyac .servprog__foot-text { max-width: none; } /* фрейм 1041 — вся колонка */
.page-remont-kb #prog-247 .servprog__foot-text { max-width: 78.7rem; }
.page-remont-kb #prog-mesyac .servprog__col-text p:first-child { max-width: 71.2rem; }
.page-remont-kb #prog-247 .servprog__col-text p:first-child { max-width: 75.2rem; }
.page-remont-kb #prog-247 .servprog__col-text p + p { max-width: 73.5rem; }
/* фрейм пункта в макете 730 при боксе 718 — жесткий перенос иначе роняет «цепи» */
.page-remont-kb .servprog__item-text { max-width: 75rem; margin-right: -3.2rem; }
.page-remont-kb .outsource .swiper-slide[data-i="1"] .out-card__text { max-width: 46.3rem; }
.page-remont-kb .outsource .swiper-slide[data-i="3"] .out-card__text { max-width: 45.4rem; }
.page-remont-kb .experts__alert-text { max-width: 61.3rem; }
.page-remont-kb .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.page-remont-kb .repair-card:nth-child(3) .repair-card__text { max-width: 71.2rem; }

/* «Ремонт козловых», новая редакция: ширины текстовых фреймов макета */
/* новая редакция: hero этой страницы — стандартные 547 макета, а не 503
   старой версии (правило .hero--koz общее с .hero--port) */
.page-remont-koz .hero--koz { min-height: 54.7rem; }
.other--koz .other__title { margin-bottom: 1.4rem; }
.other--koz .other__lead { max-width: 118.9rem; font-size: 2rem; line-height: 2.4rem; }
.page-remont-koz .repair__title { text-transform: uppercase; max-width: 128.4rem; }
.page-remont-koz .repair-card:nth-child(1) .repair-card__text { max-width: 72.1rem; }
.page-remont-koz .repair-card:nth-child(3) .repair-card__text { max-width: 73.1rem; }
.page-remont-koz .format-card:nth-child(1) .format-card__subtitle { max-width: 66.4rem; }
.page-remont-koz .format-card:nth-child(2) .format-card__subtitle { max-width: 52.4rem; }
/* только первые две вкладки — у «Пакета 24/7» текст во всю строку */
.page-remont-koz #prog-kvartal .servprog__foot-text { max-width: 89.1rem; }
.page-remont-koz #prog-mesyac .servprog__foot-text { max-width: none; } /* фрейм 1041 — вся колонка */
.page-remont-koz #prog-247 .servprog__foot-text { max-width: 88.6rem; } /* у «Пакета 24/7» козловых плашки есть, фрейм 886 */
.page-remont-koz .outsource .swiper-slide[data-i="1"] .out-card__text { max-width: 47.3rem; }
.page-remont-koz .outsource .swiper-slide[data-i="2"] .out-card__text { max-width: 47.6rem; }

.hero--rem .hero__bg { background-image: url('../img/hubp-hero.webp'); }
.hero--rem .hero__title { max-width: 132.9rem; margin-top: 2.5rem; }
.hero--rem .hero__lead--wide { max-width: 116.3rem; margin-top: 1.4rem; }
/* деталки ремонта: тот же фото-hero, фреймы лида 951/973/1047/1019 */
.hero--rem-mst .hero__lead--wide { max-width: 95.1rem; }
.hero--rem-mst .hero__lead--wide + .hero__lead--wide { margin-top: 1rem; }
.hero--rem-koz .hero__lead--wide { max-width: 97.3rem; }
.hero--rem-prt .hero__lead--wide { max-width: 104.7rem; }
.hero--rem-kb .hero__lead--wide { max-width: 101.9rem; }

/* хаб «Ремонт грузоподъемных кранов»: четыре плитки 2x2 */
.hub-services--rem { padding-bottom: 5rem; }
.hub-services--rem .hub-services__title { text-transform: uppercase; }
.hub-services--rem .hub-services__lead { max-width: 118.9rem; }

.advantages--rem { --row-1: 30.2rem; --row-2: 27.8rem; }
.advantages--rem .advantages__grid { gap: 2rem 2.1rem; }
.advantages--rem .advantages__lead { max-width: 104.8rem; }
.advantages--rem .advantage-card__title { text-transform: uppercase; }
.advantages--rem .advantage-card:nth-child(1) .advantage-card__text { max-width: 49.3rem; }
.advantages--rem .advantage-card:nth-child(2) .advantage-card__text,
.advantages--rem .advantage-card:nth-child(5) .advantage-card__text,
.advantages--rem .advantage-card:nth-child(6) .advantage-card__text { max-width: 48rem; }

.hero--put .hero__bg { background-image: url('../img/hubp-hero.webp'); }
.hero--put .hero__title { max-width: 152.7rem; margin-top: 2.5rem; }
.hero--put .hero__lead--wide { max-width: 101.7rem; margin-top: 1.4rem; }
.hero--put .hero__lead--wide + .hero__lead--wide { margin-top: 1rem; }

/* хаб «Ремонт крановых путей»: единственная плитка занимает первую колонку */
.hub-services--put { padding-bottom: 4.9rem; }
.hub-services--put .hub-services__lead { max-width: 131.7rem; }

.advantages--put { --row-1: 32.2rem; --row-2: 32.4rem; }
.advantages--put .advantages__grid { gap: 2rem 2.1rem; }
.advantages--put .advantages__lead { max-width: 104.8rem; }
.advantages--put .advantage-card__title { text-transform: uppercase; }
/* текст шире колонки: макет вмещает «состояние рельсов» в первую строку */
.advantages--put .advantage-card:nth-child(1) .advantage-card__text { max-width: 51.2rem; margin-right: -3rem; }
.advantages--put .advantage-card:nth-child(2) .advantage-card__text { max-width: 48rem; }
.advantages--put .advantage-card:nth-child(5) .advantage-card__text { max-width: 49rem; }
.advantages--put .advantage-card:nth-child(6) .advantage-card__text { max-width: 48rem; }

/* переносы вопросов по ширине фреймов макета */
.faq--put .faq__item:nth-child(3) .faq__q span { max-width: 58.9rem; }
.faq--put .faq__item:nth-child(4) .faq__q span { max-width: 64.7rem; }
.faq--put .faq__item:nth-child(9) .faq__q span { max-width: 59.6rem; }

.hero--modm .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--modm .hero__title { max-width: 153.2rem; margin-top: 3.5rem; }
.hero--modm .hero__lead--wide { max-width: 85.2rem; margin-top: 1.4rem; }

/* «Как это работает» модернизации: текст без серой плашки, фото с подписью-плашкой */
.solution--modm { padding: 7rem 0 5rem; }
.solution--modm .solution__row {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem; align-items: start;
}
.solution--modm .solution__lead { max-width: 80rem; }
.solution--modm .solution__lead + .solution__label { margin-top: 1rem; }
.solution--modm .solution__chips { max-width: none; gap: 1.1rem 1rem; }
.solution--modm .solution__chips + .solution__lead { margin-top: 1.5rem; max-width: 78.3rem; }
.solution--modm .solution__note { margin-top: 2rem; max-width: 71.6rem; padding: 2.1rem 2.1rem 2rem; }
.solution--modm .solution__note-title { font-size: 2.3rem; line-height: 2.8rem; }
.solution--modm .solution__note-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 67.7rem; margin-top: .6rem; }
.solution--modm .solution__pic { position: relative; margin-top: 5rem; }
.solution--modm .solution__pic img { height: 65rem; }
/* подпись лежит на фото плашкой, как в макете: 760x91 с отступом 20 снизу */
.solution__caption {
  position: absolute; left: 2rem; right: 2rem; bottom: 3.2rem;
  background: rgba(244, 244, 244, .93); border-radius: 1rem;
  padding: 1.3rem 2rem 1.2rem;
  font-size: 1.8rem; line-height: 2.16rem; color: var(--c-dark-2);
}
.solution__caption .accent { color: var(--c-accent); }

.reasons--modm .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.3rem 0 4.6rem;
}
.reasons--modm .reasons__title { margin: 0; }
.reasons--modm .reasons__nav { position: static; }
.reasons--modm .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--modm .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--modm .reasons__body { max-width: none; }
.reasons--modm .reasons__slide[data-i="1"] .reasons__heading { max-width: 89.3rem; }
.reasons--modm .reasons__slide[data-i="1"] .reasons__text { max-width: 79.2rem; }
.reasons--modm .reasons__slide[data-i="2"] .reasons__heading { max-width: 77rem; }
.reasons--modm .reasons__slide[data-i="2"] .reasons__text { max-width: 69.2rem; }
.reasons--modm .reasons__slide[data-i="3"] .reasons__text { max-width: 77.4rem; }
.reasons--modm .reasons__slide[data-i="4"] .reasons__text { max-width: 77rem; }

.solutions--modm .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--modm .solutions__grid { row-gap: 2rem; }
.solutions--modm .solution-card { padding-left: 2rem; padding-right: 2rem; }
.solutions--modm .solution-card__text { font-size: 1.9rem; line-height: 2.28rem; }
.solutions--modm .solution-card:nth-child(1) .solution-card__text { max-width: 45.8rem; }
.solutions--modm .solution-card:nth-child(2) .solution-card__text,
.solutions--modm .solution-card:nth-child(4) .solution-card__text { max-width: 48.6rem; }
.solutions--modm .solution-card:nth-child(3) .solution-card__text { max-width: 46.4rem; }
.solutions--modm .solution-card:nth-child(5) .solution-card__text { max-width: 47.5rem; }
.solutions--modm .solution-card:nth-child(6) .solution-card__text { max-width: 50.6rem; margin-right: -1.4rem; }

.smart-banner--modm .smart-banner__card { padding: 4rem 3rem 4rem; }
.smart-banner--modm .smart-banner__title { max-width: 67.1rem; margin-top: 1.4rem; }
.smart-banner--modm .smart-banner__text { max-width: 75.7rem; margin-top: 1.4rem; }
.smart-banner--modm .smart-banner__btn { margin-top: 2rem; width: 33.9rem; height: 6.5rem; font-size: 2rem; white-space: nowrap; }
.smart-banner--modm .smart-banner__photo img { height: 50.2rem; }

.effect--modm .effect-card { min-height: 28.5rem; }
.effect--modm .effect-card[data-i="1"] .effect-card__caption { max-width: 48.5rem; }
.effect--modm .effect-card[data-i="2"] .effect-card__caption { max-width: 46.9rem; }
.effect--modm .effect-card[data-i="3"] .effect-card__caption { max-width: 49.6rem; }
.effect--modm .effect-card[data-i="4"] .effect-card__caption { max-width: 45.9rem; }
.effect--modm .effect-card[data-i="5"] .effect-card__caption { max-width: 48.5rem; }
.effect--modm .effect-card[data-i="6"] .effect-card__caption { max-width: 47.2rem; }

.stages--modm .stages__title { margin: 3.3rem 0 1.4rem; }
.stages--modm .stages__lead { max-width: 106.4rem; margin-bottom: 4rem; }
.stages--modm .stage-card { min-height: 33.6rem; padding: 1.6rem 2.1rem 2.4rem; }
/* между номером и заголовком в макете 54, дальше карточка растет вниз */
.stages--modm .stage-card__title { font-size: 2.3rem; line-height: 2.8rem; margin-top: 5.4rem; }
/* текст-фреймы этапов в макете 354 при колонке 348 */
.stages--modm .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-right: -.6rem; }
.stages--modm .stage-card:nth-child(1) .stage-card__text { max-width: 34.7rem; margin-right: 0; }

.about--modm { padding-top: 5rem; }
.about--modm .about__title { margin: 3.3rem 0 1.4rem; }
.about--modm .about__lead { max-width: 119.2rem; margin-bottom: 4rem; }
.about--modm .about__card { padding: 4.6rem 5rem 5rem; }
/* текст-фреймы в макете шире поля карточки: 711 и 732 при 700 */
.about--modm .about__text { max-width: 71.1rem; margin-right: -1.1rem; }
.about--modm .about__text + .about__text { max-width: 73.2rem; margin-right: -3.2rem; }
.about--modm .about__highlight { margin-top: 2.2rem; max-width: 70rem; padding: 1.8rem 2.1rem 2.1rem; }
.about--modm .about__highlight-title { font-size: 2.3rem; line-height: 2.8rem; max-width: 40.8rem; }
.about--modm .about__highlight-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 64rem; }
.about--modm .about__btn { margin-top: 3.1rem; width: 34.4rem; height: 6.5rem; font-size: 2rem; }
.about--modm .about__photo { height: 51rem; }
.guarantee--modm .guarantee__text { max-width: 154.4rem; }
.faq--modm .faq__item:nth-child(6) .faq__q span { max-width: 46.8rem; }

.hero--modk .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--modk .hero__title { max-width: 153.2rem; margin-top: 3.5rem; }
.hero--modk .hero__lead--wide { max-width: 85.2rem; margin-top: 1.4rem; }

/* «Как это работает» модернизации: текст без серой плашки, фото с подписью-плашкой */
.solution--modk { padding: 7rem 0 5rem; }
.solution--modk .solution__row {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem; align-items: start;
}
/* заголовок этой секции в макете fs37, а не общие fs40 */
.solution--modk .solution__title { font-size: 3.7rem; max-width: 78.6rem; }
.solution--modk .solution__lead { max-width: 80rem; }
.solution--modk .solution__lead + .solution__label { margin-top: 1rem; }
.solution--modk .solution__chips { max-width: none; gap: 1.1rem 1rem; }
.solution--modk .solution__chips + .solution__lead { margin-top: 1.5rem; max-width: 78.3rem; }
.solution--modk .solution__note { margin-top: 2rem; max-width: 71.6rem; padding: 2.1rem 2.1rem 2rem; }
.solution--modk .solution__note-title { font-size: 2.3rem; line-height: 2.8rem; }
.solution--modk .solution__note-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 67.7rem; margin-top: .6rem; }
.solution--modk .solution__pic { position: relative; margin-top: 5rem; }
.solution--modk .solution__pic img { height: 64.7rem; }
/* подпись лежит на фото плашкой, как в макете: 760x91 с отступом 20 снизу */
.solution__caption {
  position: absolute; left: 2rem; right: 2rem; bottom: 3.2rem;
  background: rgba(244, 244, 244, .93); border-radius: 1rem;
  padding: 1.3rem 2rem 1.2rem;
  font-size: 1.8rem; line-height: 2.16rem; color: var(--c-dark-2);
}
.solution__caption .accent { color: var(--c-accent); }

.reasons--modk .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.3rem 0 4.6rem;
}
.reasons--modk .reasons__title { margin: 0; }
.reasons--modk .reasons__nav { position: static; }
.reasons--modk .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--modk .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--modk .reasons__body { max-width: none; }
.reasons--modk .reasons__slide[data-i="1"] .reasons__heading { max-width: 89.3rem; }
.reasons--modk .reasons__slide[data-i="1"] .reasons__text { max-width: 79rem; }
.reasons--modk .reasons__slide[data-i="2"] .reasons__heading { max-width: 77rem; }
.reasons--modk .reasons__slide[data-i="2"] .reasons__text { max-width: 69.2rem; }
.reasons--modk .reasons__slide[data-i="3"] .reasons__text { max-width: 77.4rem; }
.reasons--modk .reasons__slide[data-i="4"] .reasons__text { max-width: 77rem; }

.solutions--modk .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--modk .solutions__grid { row-gap: 2rem; }
.solutions--modk .solution-card { padding-left: 2rem; padding-right: 2rem; }
.solutions--modk .solution-card__text { font-size: 1.9rem; line-height: 2.28rem; }
.solutions--modk .solution-card:nth-child(1) .solution-card__text { max-width: 45.8rem; }
.solutions--modk .solution-card:nth-child(2) .solution-card__text,
.solutions--modk .solution-card:nth-child(4) .solution-card__text { max-width: 48.6rem; }
.solutions--modk .solution-card:nth-child(3) .solution-card__text { max-width: 46.4rem; }
.solutions--modk .solution-card:nth-child(5) .solution-card__text { max-width: 47.5rem; }
.solutions--modk .solution-card:nth-child(6) .solution-card__text { max-width: 50.6rem; margin-right: -1.4rem; }

.smart-banner--modk .smart-banner__card { padding: 4rem 3rem 4rem; }
.smart-banner--modk .smart-banner__title { max-width: 67.1rem; margin-top: 1.4rem; }
.smart-banner--modk .smart-banner__text { max-width: 69.7rem; margin-top: 1.4rem; }
.smart-banner--modk .smart-banner__btn { margin-top: 2rem; width: 33.9rem; height: 6.5rem; font-size: 2rem; white-space: nowrap; }
.smart-banner--modk .smart-banner__photo img { height: 50.2rem; }

.effect--modk .effect-card { min-height: 28.5rem; }
.effect--modk .effect-card[data-i="1"] .effect-card__caption { max-width: 48.5rem; }
.effect--modk .effect-card[data-i="2"] .effect-card__caption { max-width: 46.9rem; }
.effect--modk .effect-card[data-i="3"] .effect-card__caption { max-width: 45.4rem; }
.effect--modk .effect-card[data-i="4"] .effect-card__caption { max-width: 45.9rem; }
.effect--modk .effect-card[data-i="5"] .effect-card__caption { max-width: 48.5rem; }
.effect--modk .effect-card[data-i="6"] .effect-card__caption { max-width: 47.2rem; }

.stages--modk .stages__title { margin: 3.3rem 0 1.4rem; }
.stages--modk .stages__lead { max-width: 106.4rem; margin-bottom: 4rem; }
.stages--modk .stage-card { min-height: 33.6rem; padding: 1.6rem 2.1rem 2.4rem; }
/* между номером и заголовком в макете 54, дальше карточка растет вниз */
.stages--modk .stage-card__title { font-size: 2.3rem; line-height: 2.8rem; margin-top: 5.4rem; }
/* текст-фреймы этапов в макете 354 при колонке 348 */
.stages--modk .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-right: -.6rem; }
.stages--modk .stage-card:nth-child(1) .stage-card__text { max-width: 34.7rem; margin-right: 0; }

.about--modk { padding-top: 5rem; }
.about--modk .about__title { margin: 3.3rem 0 1.4rem; }
.about--modk .about__lead { max-width: 119.2rem; margin-bottom: 4rem; }
.about--modk .about__card { padding: 4.6rem 5rem 5rem; }
/* текст-фреймы в макете шире поля карточки: 711 и 732 при 700 */
.about--modk .about__text { max-width: 71.1rem; margin-right: -1.1rem; }
.about--modk .about__text + .about__text { max-width: 73.7rem; margin-right: -3.7rem; }
.about--modk .about__highlight { margin-top: 2.2rem; max-width: 70rem; padding: 1.8rem 2.1rem 2.1rem; }
.about--modk .about__highlight-title { font-size: 2.3rem; line-height: 2.8rem; max-width: 40.8rem; }
.about--modk .about__highlight-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 64rem; }
.about--modk .about__btn { margin-top: 3.1rem; width: 34.4rem; height: 6.5rem; font-size: 2rem; }
.about--modk .about__photo { height: 53rem; }
.guarantee--modk .guarantee__text { max-width: 146rem; }
.faq--modk .faq__item:nth-child(6) .faq__q span { max-width: 62.8rem; }

.hero--modp .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--modp .hero__title { max-width: 153.2rem; margin-top: 3.5rem; }
.hero--modp .hero__lead--wide { max-width: 85.2rem; margin-top: 1.4rem; }

/* «Как это работает» модернизации: текст без серой плашки, фото с подписью-плашкой */
.solution--modp { padding: 7rem 0 5rem; }
.solution--modp .solution__row {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem; align-items: start;
}
.solution--modp .solution__title { max-width: 66.8rem; }
.solution--modp .solution__lead { max-width: 80rem; }
.solution--modp .solution__lead + .solution__label { margin-top: 1rem; }
.solution--modp .solution__chips { max-width: none; gap: 1.1rem 1rem; }
.solution--modp .solution__chips + .solution__lead { margin-top: 1.5rem; max-width: 78.3rem; }
.solution--modp .solution__note { margin-top: 2rem; max-width: 71.6rem; padding: 2.1rem 2.1rem 2rem; }
.solution--modp .solution__note-title { font-size: 2.3rem; line-height: 2.8rem; }
.solution--modp .solution__note-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 67.7rem; margin-top: .6rem; }
.solution--modp .solution__pic { position: relative; margin-top: 5rem; }
.solution--modp .solution__pic img { height: 50.5rem; }
.solution--modp .solution__caption { bottom: 2rem; }
/* подпись лежит на фото плашкой, как в макете: 760x91 с отступом 20 снизу */
.solution__caption {
  position: absolute; left: 2rem; right: 2rem; bottom: 3.2rem;
  background: rgba(244, 244, 244, .93); border-radius: 1rem;
  padding: 1.3rem 2rem 1.2rem;
  font-size: 1.8rem; line-height: 2.16rem; color: var(--c-dark-2);
}
.solution__caption .accent { color: var(--c-accent); }

.reasons--modp .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.3rem 0 4.6rem;
}
.reasons--modp .reasons__title { margin: 0; }
.reasons--modp .reasons__nav { position: static; }
.reasons--modp .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--modp .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--modp .reasons__body { max-width: none; }
.reasons--modp .reasons__slide[data-i="1"] .reasons__heading { max-width: 89.3rem; }
.reasons--modp .reasons__slide[data-i="1"] .reasons__text { max-width: 86.8rem; }
.reasons--modp .reasons__slide[data-i="2"] .reasons__heading { max-width: 77rem; }
.reasons--modp .reasons__slide[data-i="2"] .reasons__text { max-width: 79.7rem; }
.reasons--modp .reasons__slide[data-i="3"] .reasons__text { max-width: 77.4rem; }
.reasons--modp .reasons__slide[data-i="3"] .reasons__heading { max-width: 67.3rem; }
.reasons--modp .reasons__slide[data-i="4"] .reasons__heading { max-width: 74.5rem; }
.reasons--modp .reasons__slide[data-i="4"] .reasons__text { max-width: 82.3rem; }

.solutions--modp .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--modp .solutions__grid { row-gap: 2rem; }
.solutions--modp .solution-card { padding-left: 2rem; padding-right: 2rem; }
.solutions--modp .solution-card__text { font-size: 1.9rem; line-height: 2.28rem; }
.solutions--modp .solution-card:nth-child(1) .solution-card__text { max-width: 45.8rem; }
.solutions--modp .solution-card:nth-child(2) .solution-card__text,
.solutions--modp .solution-card:nth-child(4) .solution-card__text { max-width: 48.6rem; }
.solutions--modp .solution-card:nth-child(3) .solution-card__text { max-width: 46.4rem; }
.solutions--modp .solution-card:nth-child(5) .solution-card__text { max-width: 47.5rem; }
.solutions--modp .solution-card:nth-child(6) .solution-card__text { max-width: 50.6rem; margin-right: -1.4rem; }
.solutions--modp .solution-card:nth-child(3) .solution-card__text { max-width: 46.4rem; }

.smart-banner--modp .smart-banner__card { padding: 4rem 3rem 4rem; }
.smart-banner--modp .smart-banner__title { max-width: 67.1rem; margin-top: 1.4rem; }
.smart-banner--modp .smart-banner__text { max-width: 73.6rem; margin-top: 1.4rem; }
.smart-banner--modp .smart-banner__btn { margin-top: 2rem; width: 33.9rem; height: 6.5rem; font-size: 2rem; white-space: nowrap; }
.smart-banner--modp .smart-banner__photo img { height: 50.2rem; }

.effect--modp .effect-card { min-height: 28.5rem; }
.effect--modp .effect-card[data-i="1"] .effect-card__caption { max-width: 48.5rem; }
.effect--modp .effect-card[data-i="2"] .effect-card__caption { max-width: 40.2rem; }
.effect--modp .effect-card[data-i="3"] .effect-card__caption { max-width: 46.9rem; }
.effect--modp .effect-card[data-i="4"] .effect-card__caption { max-width: 45.9rem; }
.effect--modp .effect-card[data-i="5"] .effect-card__caption { max-width: 48.5rem; }
.effect--modp .effect-card[data-i="6"] .effect-card__caption { max-width: 47.2rem; }

.stages--modp .stages__title { margin: 3.3rem 0 1.4rem; }
.stages--modp .stages__lead { max-width: 96.4rem; margin-bottom: 4rem; }
.stages--modp .stage-card { min-height: 31.6rem; padding: 1.6rem 2.1rem 2.4rem; }
/* между номером и заголовком в макете 54, дальше карточка растет вниз */
.stages--modp .stage-card__title { font-size: 2.3rem; line-height: 2.8rem; margin-top: 5.4rem; }
/* текст-фреймы этапов в макете 354 при колонке 348 */
.stages--modp .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-right: -.6rem; }
.stages--modp .stage-card:nth-child(1) .stage-card__text { max-width: 36.9rem; margin-right: -2.1rem; }
.stages--modp .stage-card:nth-child(5) .stage-card__text { max-width: 33.8rem; margin-right: 0; }
.stages--modp .stage-card:nth-child(7) .stage-card__text { max-width: 34.5rem; margin-right: 0; }
/* фото в сетке этапов занимает клетку целиком (390x336) — общий padding карточки его ужимал */
.stages--modm .stage-card--photo, .stages--modk .stage-card--photo, .stages--modp .stage-card--photo { padding: 0; }

.about--modp { padding-top: 5rem; }
.about--modp .about__title { margin: 3.3rem 0 1.4rem; }
.about--modp .about__lead { max-width: 119.2rem; margin-bottom: 4rem; }
.about--modp .about__card { padding: 4.6rem 5rem 5rem; }
/* текст-фреймы в макете шире поля карточки: 711 и 732 при 700 */
.about--modp .about__text { max-width: 71.1rem; margin-right: -1.1rem; }
.about--modp .about__text + .about__text { max-width: 64.9rem; margin-right: 0; }
.about--modp .about__highlight { margin-top: 1.6rem; max-width: 70rem; padding: 1.8rem 2.1rem 2.1rem; }
.about--modp .about__highlight-title { font-size: 2.3rem; line-height: 2.8rem; max-width: 63.9rem; }
.about--modp .about__highlight-text { font-size: 1.8rem; line-height: 2.16rem; max-width: 64rem; }
.about--modp .about__btn { margin-top: 2rem; width: 34.4rem; height: 6.5rem; font-size: 2rem; }
.about--modp .about__photo { height: 49.4rem; }
.guarantee--modp .guarantee__text { max-width: 147.7rem; }



.hero--rad .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--rad .hero__title { max-width: 153.2rem; margin-top: 3.5rem; }
.hero--rad .hero__lead--wide { max-width: 105.9rem; margin-top: 1.4rem; }
.hero--rad .hero__lead--wide + .hero__lead--wide { max-width: 90.3rem; margin-top: 1rem; }

.solution--rad { padding-bottom: 4.8rem; }
.solution--rad .solution__title { margin: 3.3rem 0 0; }
.solution--rad .solution__grid { margin-top: 4rem; }
.solution--rad .solution__text { max-width: 73.4rem; }
.solution--rad .solution__text + .solution__text { max-width: 67.6rem; margin-top: 1rem; }
.solution--rad .solution__note { margin-top: 1.6rem; max-width: 70rem; padding: 1.8rem 2.1rem 2rem; }
.solution--rad .solution__note-title { font-size: 2.3rem; line-height: 2.8rem; }
.solution--rad .solution__note-text { max-width: 66.3rem; margin-top: 1rem; }
.solution--rad .solution__btn { margin-top: 3rem; }
.solution--rad .solution__photo { height: 62.8rem; border-radius: 2rem; }

/* «Для каких задач»: та же мозаика 3x2, но фото стоят в средней колонке */
.advantages--rad { --row-1: 26.8rem; --row-2: 28.8rem; }
.advantages--rad .advantages__title { margin: 3.3rem 0 0; }
.advantages--rad .advantages__grid { gap: 2.1rem; margin-top: 4rem; }
/* заголовки этих карточек в макете обычным регистром, не капсом */
.advantages--rad .advantage-card__title { text-transform: none; }
.advantages--rad .advantage-card:nth-child(1) .advantage-card__text,
.advantages--rad .advantage-card:nth-child(5) .advantage-card__text { max-width: 49.1rem; }
.advantages--rad .advantage-card:nth-child(3) .advantage-card__text { max-width: 50.5rem; margin-right: -2.1rem; }
.advantages--rad .advantage-card:nth-child(6) .advantage-card__text { max-width: 48.5rem; }

.solutions--rad .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--rad .solutions__grid { row-gap: 2rem; }
.solutions--rad .solution-card { padding-left: 2rem; padding-right: 2rem; }
.solutions--rad .solution-card__text { font-size: 1.9rem; line-height: 2.28rem; }
.solutions--rad .solution-card:nth-child(1) .solution-card__text { max-width: 45.4rem; }
.solutions--rad .solution-card:nth-child(2) .solution-card__text { max-width: 48.5rem; }
.solutions--rad .solution-card:nth-child(3) .solution-card__text { max-width: 48.6rem; }
.solutions--rad .solution-card:nth-child(4) .solution-card__text { max-width: 47.6rem; }
.solutions--rad .solution-card:nth-child(5) .solution-card__text { max-width: 47.3rem; }
.solutions--rad .solution-card:nth-child(6) .solution-card__text { max-width: 47.5rem; }

.reasons--rad .reasons__head {
  display: flex; align-items: center; justify-content: space-between; gap: 4rem;
  margin: 3.3rem 0 3.9rem;
}
.reasons--rad .reasons__title { margin: 0; }
.reasons--rad .reasons__nav { position: static; }
.reasons--rad .reasons__arrow { border-color: var(--c-dark-2); color: var(--c-dark-2); }
.reasons--rad .reasons__arrow:hover { background: var(--c-dark-2); color: var(--c-white); }
.reasons--rad .reasons__body { max-width: none; }
.reasons--rad .reasons__slide[data-i="1"] .reasons__heading { max-width: 78.9rem; }
.reasons--rad .reasons__slide[data-i="1"] .reasons__text { max-width: 84.2rem; }
.reasons--rad .reasons__slide[data-i="2"] .reasons__text { max-width: 79.3rem; }
.reasons--rad .reasons__slide[data-i="3"] .reasons__text { max-width: 72.7rem; }
.reasons--rad .reasons__slide[data-i="4"] .reasons__heading { max-width: 76.9rem; }
.reasons--rad .reasons__slide[data-i="4"] .reasons__text { max-width: 60.4rem; }

/* «Технические возможности»: текст лежит на фоне секции, без белой плашки */
.smart-banner--rad .smart-banner__card { background: none; border-radius: 0; padding: 0; }
.smart-banner--rad .smart-banner__title { margin: 3.3rem 0 0; max-width: 73.2rem; }
.smart-banner--rad .smart-banner__text { margin-top: 1.4rem; max-width: 77.9rem; }
.smart-banner--rad .smart-banner__text + .smart-banner__text { margin-top: 1rem; max-width: 65.5rem; }
.smart-banner--rad .smart-banner__btn { margin-top: 3rem; width: 41.5rem; height: 6.5rem; font-size: 2rem; white-space: nowrap; }
.smart-banner--rad .smart-banner__photo img { height: 46.7rem; }

.stages--rad .stages__title { margin: 3.3rem 0 4rem; }
.stages--rad .stage-card { min-height: 29.6rem; padding: 1.6rem 2.1rem 2.4rem; }
/* фреймы заголовков этапов в макете шире колонки: 388 и 364 при 348 */
.stages--rad .stage-card__title { font-size: 2.4rem; line-height: 2.9rem; }
.stages--rad .stage-card:nth-child(1) .stage-card__title { margin-right: -4rem; }
.stages--rad .stage-card:nth-child(2) .stage-card__title { margin-right: -1.6rem; }
.stages--rad .stage-card:nth-child(5) .stage-card__text { max-width: 33.5rem; margin-right: 0; }
.stages--rad .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; margin-right: -1.1rem; }

.effect--rad .effect-card { min-height: 28.5rem; }
.effect--rad .effect-card[data-i="1"] .effect-card__caption { max-width: 47.2rem; }
.effect--rad .effect-card[data-i="2"] .effect-card__caption { max-width: 49.4rem; margin-right: -1rem; }
.effect--rad .effect-card[data-i="3"] .effect-card__caption { max-width: 48.8rem; }
.effect--rad .effect-card[data-i="4"] .effect-card__caption { max-width: 45.7rem; }

.faq--rad .faq__item:nth-child(5) .faq__q span { max-width: 57.8rem; }
.faq--rad .faq__item:nth-child(7) .faq__q span { max-width: 54rem; }
.faq--rad .faq__item:nth-child(9) .faq__q span { max-width: 59.6rem; }

/* Смарт-опции для кранов */
.hero--smart .hero__bg { background-image: url('../img/avt-hero-bg.webp'); }
.hero--smart .hero__title { max-width: 153.2rem; margin-top: 3.5rem; }
.hero--smart .hero__lead--wide { max-width: 86.8rem; margin-top: 1.4rem; }

.solution--smart { padding-bottom: 3.9rem; }
.solution--smart .solution__title { margin: 3.3rem 0 0; }
.solution--smart .solution__grid { margin-top: 4rem; }
.solution--smart .solution__text { max-width: 65.7rem; }
.solution--smart .solution__text + .solution__text { max-width: 73.5rem; margin-top: 1rem; }
.solution--smart .solution__note { margin-top: 2rem; max-width: 70rem; padding: 1.8rem 2.1rem 2.2rem; }
.solution--smart .solution__note-title { font-size: 2.3rem; line-height: 2.8rem; }
.solution--smart .solution__note-text { max-width: 66.8rem; margin-top: 1rem; }
.solution--smart .solution__btn { margin-top: 3rem; }
.solution--smart .solution__photo { height: 62.3rem; border-radius: 2rem; }

/* «Ключевые функции»: мозаика 3x3, три ячейки заняты фото; ряды разной высоты */
.advantages--smart .advantages__title { margin: 3.3rem 0 0; }
.advantages--smart .advantages__grid {
  grid-template-rows: minmax(30.5rem, auto) minmax(33.5rem, auto) minmax(32.8rem, auto);
  gap: 2rem 2.1rem;
  margin-top: 4rem;
  align-items: start;
}
.advantages--smart .advantage-card { display: flex; flex-direction: column; padding-bottom: 2rem; }
/* карточки раскрываются независимо: высоты свернутых и фото — по строкам мозаики */
.advantages--smart .advantage-card:nth-child(-n+3) { min-height: 30.5rem; }
.advantages--smart .advantages__photo:nth-child(2) { height: 30.5rem; }
.advantages--smart .advantage-card:nth-child(n+5):nth-child(-n+6) { min-height: 33.5rem; }
.advantages--smart .advantages__photo:nth-child(4) { height: 33.5rem; }
.advantages--smart .advantage-card:nth-child(n+7) { min-height: 32.8rem; }
.advantages--smart .advantages__photo:nth-child(9) { height: 32.8rem; }
.advantages--smart .advantage-card__title {
  text-transform: none;
  padding-bottom: 1.3rem;
  border-bottom: 1px solid #DCDCDC;
}
.advantages--smart .advantage-card__text { margin-top: 1.3rem; font-size: 1.9rem; line-height: 2.28rem; }
.advantages--smart .advantage-card:nth-child(1) .advantage-card__text { max-width: 47.6rem; }
.advantages--smart .advantage-card:nth-child(3) .advantage-card__text { max-width: 49.1rem; }
.advantages--smart .advantage-card:nth-child(5) .advantage-card__text { max-width: 49.5rem; }
.advantages--smart .advantage-card:nth-child(6) .advantage-card__text { max-width: 49.1rem; }
.advantages--smart .advantage-card:nth-child(7) .advantage-card__text { max-width: 48rem; }
.advantages--smart .advantage-card:nth-child(8) .advantage-card__text { max-width: 49.3rem; }
.advantages--smart .more-link { padding-top: 1.6rem; }

/* «Дополнительные функции»: карточка 526x495 с фото 486x204 под иконкой */
.solutions--smart .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--smart .solutions__grid { row-gap: 2rem; align-items: start; }
.solutions--smart .solution-card { min-height: 49.5rem; padding-left: 2rem; padding-right: 2rem; }
.solutions--smart .solution-card__photo { height: 20.4rem; }
.solutions--smart .solution-card__text { font-size: 1.9rem; line-height: 2.28rem; }
.solutions--smart .solution-card:nth-child(1) .solution-card__text { max-width: 48.5rem; }
.solutions--smart .solution-card:nth-child(2) .solution-card__text { max-width: 47.6rem; }
.solutions--smart .solution-card:nth-child(3) .solution-card__text { max-width: 48.6rem; }
.solutions--smart .solution-card:nth-child(4) .solution-card__text { max-width: 47.2rem; }
.solutions--smart .solution-card:nth-child(5) .solution-card__text { max-width: 47.6rem; }
.solutions--smart .solution-card:nth-child(6) .solution-card__text { max-width: 47.5rem; }

/* «Когда необходимо внедрение»: те же карточки без фото и ссылки, два ряда */
.solutions--osn { padding-bottom: 5rem; }
.solutions--osn .solutions__title { margin: 3.3rem 0 4rem; }
.solutions--osn .solutions__grid { row-gap: 2rem; }
.solutions--osn .solution-card { min-height: 28rem; padding: 2rem 2rem 2.4rem; }
.solutions--osn .solution-card__title { margin-top: 1.6rem; }
.solutions--osn .solution-card__text { font-size: 2rem; line-height: 2.4rem; }
.solutions--osn .solution-card:nth-child(1) .solution-card__text { max-width: 41.6rem; }
.solutions--osn .solution-card:nth-child(2) .solution-card__text { max-width: 46.6rem; }
.solutions--osn .solution-card:nth-child(3) .solution-card__text { max-width: 44.6rem; }
.solutions--osn .solution-card:nth-child(4) .solution-card__text { max-width: 48.7rem; }
.solutions--osn .solution-card:nth-child(5) .solution-card__text { max-width: 42.7rem; }
.solutions--osn .solution-card:nth-child(6) .solution-card__text { max-width: 42.7rem; }

.effect--smart .effect-card { min-height: 35.6rem; }
.effect--smart .effect-card[data-i="1"] .effect-card__caption { max-width: 48.5rem; }
.effect--smart .effect-card[data-i="2"] .effect-card__caption { max-width: 48.5rem; }
.effect--smart .effect-card[data-i="3"] .effect-card__caption { max-width: 50.5rem; }
.effect--smart .effect-card[data-i="4"] .effect-card__caption { max-width: 47.4rem; }
.effect--smart .effect-card[data-i="5"] .effect-card__caption { max-width: 44.1rem; }
.effect--smart .effect-card[data-i="6"] .effect-card__caption { max-width: 47.2rem; }

.stages--smart .stages__title { margin: 3.3rem 0 4rem; }
.stages--smart .stage-card { min-height: 29.1rem; padding: 1.6rem 2.1rem 2.4rem; }
.stages--smart .stage-card--photo { padding: 0; }
/* между номером и заголовком в макете 54, дальше карточка растет вниз */
.stages--smart .stage-card__title { font-size: 2.3rem; line-height: 2.8rem; margin-top: 5.4rem; }
.stages--smart .stage-card__text { font-size: 1.9rem; line-height: 2.28rem; }

/* ширины текстовых фреймов макета шире колонки карточки — добираем за счет полей */
.advantages--smart .advantage-card:nth-child(3) .advantage-card__title { margin-right: -2.1rem; }
.advantages--smart .advantage-card:nth-child(3) .advantage-card__text { margin-right: -0.7rem; }
.advantages--smart .advantage-card:nth-child(5) .advantage-card__text { margin-right: -1.1rem; }
.advantages--smart .advantage-card:nth-child(6) .advantage-card__text { margin-right: -0.7rem; }
.advantages--smart .advantage-card:nth-child(8) .advantage-card__text { margin-right: -0.9rem; }
.solutions--smart .solution-card:nth-child(6) .solution-card__text { max-width: 42.8rem; }
.stages--smart .stage-card:nth-child(1) .stage-card__text { margin-right: -0.6rem; }
.stages--smart .stage-card:nth-child(2) .stage-card__text { margin-right: -1.2rem; }
.stages--smart .stage-card:nth-child(4) .stage-card__text { margin-right: -0.6rem; }
.stages--smart .stage-card:nth-child(5) .stage-card__text { max-width: 33.8rem; }
.stages--smart .stage-card:nth-child(6) .stage-card__text { margin-right: -0.5rem; }
.stages--smart .stage-card:nth-child(8) .stage-card__text { margin-right: -0.6rem; }
.faq--smart .faq__item:nth-child(12) .faq__q span { max-width: 56.4rem; }

/* правое поле карточки в макете 15, а не 50: иначе текстовый фрейм 735 не влезает */
.solution--smart .solution__box { padding: 4.6rem 1.5rem 5rem 5rem; }
.solution--smart .solution__note-text { font-size: 1.8rem; line-height: 2.2rem; }
/* ряды макета: 280/252 у оснований и 291/341 у этапов */
.solutions--osn .solution-card:nth-child(n+4) { min-height: 25.2rem; }
.stages--smart .stage-card:nth-child(n+5) { min-height: 34.1rem; }
.solutions--smart .more-link { padding-top: 1rem; }

/* хаб «Техническое обслуживание кранов» */
/* фото в макете 1923x1094 на y=-353 от верха героя, не cover */
.hero--to .hero__bg {
  top: -35.3rem; height: 109.4rem;
  background-image: url('../img/hubto-hero.webp');
}
.hero--to .hero__title { max-width: 152.7rem; margin-top: 2.5rem; }
.hero--to .hero__lead--wide { max-width: 98rem; margin-top: 1.4rem; }

.hub-services--to { padding-bottom: 5rem; }
.hub-services--to .hub-services__title { text-transform: uppercase; }
.hub-services--to .hub-services__lead { max-width: 143.2rem; }

.advantages--to { --row-1: 27.6rem; --row-2: 29.9rem; }
.advantages--to .advantages__grid { gap: 2rem 2.1rem; }
.advantages--to .advantages__lead { max-width: 114.1rem; }
.advantages--to .advantage-card__title { text-transform: uppercase; }
.advantages--to .advantage-card:nth-child(1) .advantage-card__text { max-width: 49.6rem; }
/* фрейм текста 517 шире колонки 484: в макете строка выходит за плашку */
.advantages--to .advantage-card:nth-child(2) .advantage-card__text { max-width: 51.7rem; margin-right: -3.3rem; }
.advantages--to .advantage-card:nth-child(5) .advantage-card__text { max-width: 49rem; }
.advantages--to .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.5rem; }

/* «Профессиональная диагностика»: карточки с фото, ряды 3 и 2 в одной сетке
   из шести колонок — span 2 и span 3 дают 526 и 800 из макета */
.svcdiag { background: var(--c-bg-light); padding: 5rem 0 5rem; }
.svcdiag__title { margin: 3.3rem 0 0; }
.svcdiag__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: minmax(41.8rem, auto) minmax(37rem, auto);
  gap: 2.1rem;
  margin-top: 4.8rem;
}
.svcdiag-card {
  grid-column: span 2;
  background: var(--c-bg-soft);
  border-radius: 1.5rem;
  padding: 2rem 2.1rem 2.4rem;
}
.svcdiag-card:nth-child(n+4) { grid-column: span 3; }
.svcdiag__grid > .svcdiag-card:nth-child(n+4) { grid-row: 2; }
.svcdiag-card__icon { display: block; width: 3.3rem; height: 3.3rem; }
.svcdiag-card__photo {
  display: block; width: 100%; height: 18.1rem;
  object-fit: cover; border-radius: 1rem;
  margin-top: 1.4rem;
}
.svcdiag-card__title {
  margin: 1.6rem 0 0;
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
}
.svcdiag-card__text {
  margin: 0.8rem 0 0;
  font-size: 1.9rem; line-height: 2.28rem;
}

/* «ТО мостовых кранов»: ширины текстовых фреймов из макета — часть шире
   своих боксов, поэтому вместе с max-width идет отрицательный отступ */
.page-tomst .hero__lead--wide { max-width: 131.3rem; }
.page-tomst .experts__text + .experts__text { max-width: 72.7rem; margin-right: -2.7rem; }
.repair--tomst .repair__title { max-width: 126.5rem; }
.repair--tomst .repair-card:nth-child(4) .repair-card__text { max-width: 70.7rem; }
.svcdiag-card:nth-child(4) .svcdiag-card__text { max-width: 75.9rem; margin-right: -0.3rem; }
.svcdiag-card:nth-child(5) .svcdiag-card__text { max-width: 72.6rem; }
.advantages--tomst .advantage-card:nth-child(5) .advantage-card__text { max-width: 45.5rem; }
.advantages--tomst .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; }

/* восемь марок в подвале программы: два ряда по четыре, как в макете */
.servprog--tomst .servprog__brands {
  grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem;
  width: 58.2rem;
}
.page-tomst .experts__box > .experts__text:first-of-type { max-width: 65.8rem; }
/* баннеры доверия: текст у низа, фреймы абзацев 953/933/806/806 */
.page-tomst .trust-slide { justify-content: flex-end; }
.page-tomst .swiper-slide[data-i="1"] .trust-slide__text { max-width: 95.3rem; }
.page-tomst .swiper-slide[data-i="2"] .trust-slide__text { max-width: 93.3rem; }
.page-tomst .swiper-slide[data-i="3"] .trust-slide__text, .page-tomst .swiper-slide[data-i="4"] .trust-slide__text { max-width: 80.6rem; }

/* детальные ТО: фото-герой хаба, заголовок по фрейму 1126 */
.hero--tomst .hero__title, .hero--tokoz .hero__title, .hero--toprt .hero__title { max-width: 112.6rem; }
.hero--tokoz, .hero--toprt { min-height: 58.2rem; } /* лид fs18 в 6 строк, фрейм героя 582 */

/* «ТО козловых кранов»: ширины текстовых фреймов из макета */
/* хаб ТО: абзацы плиток по фреймам 738/693/750 */
.page-tohub .hub-services__grid .tile:nth-child(1) .tile__text { max-width: 73.8rem; }
.page-tohub .hub-services__grid .tile:nth-child(2) .tile__text { max-width: 69.3rem; }
.page-tokoz .hero__lead--wide { max-width: 99.1rem; }
.page-tokoz .experts__box > .experts__text:first-of-type { max-width: 72.6rem; }
.page-tokoz .experts__text + .experts__text { max-width: 72.6rem; margin-right: -2.6rem; }
.page-tokoz .servprog__foot-text { max-width: 93.9rem; }
/* баннеры доверия: текст у низа, фреймы абзацев 953/986/806/806 */
.page-tokoz .trust-slide { justify-content: flex-end; }
.page-tokoz .swiper-slide[data-i="1"] .trust-slide__text { max-width: 95.3rem; }
.page-tokoz .swiper-slide[data-i="2"] .trust-slide__text { max-width: 98.6rem; }
.page-tokoz .swiper-slide[data-i="3"] .trust-slide__text, .page-tokoz .swiper-slide[data-i="4"] .trust-slide__text { max-width: 80.6rem; }
/* фреймы 745 и 761 шире колонки 718 — в макете строки выходят за нее */
.page-tokoz .servprog__item:nth-child(3) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.page-tokoz .servprog__item:nth-child(4) .servprog__item-text { max-width: 76.1rem; margin-right: -4.3rem; }
/* лид героя тут в макете fs18/lh21.6, а не базовые fs20/lh24 */
.page-tokoz .hero__lead--wide { font-size: 1.8rem; line-height: 2.16rem; }

/* «ТО портальных кранов»: ширины текстовых фреймов из макета */
.page-toprt .hero__lead--wide { max-width: 99rem; font-size: 1.8rem; line-height: 2.16rem; }
.page-toprt .experts__box > .experts__text:first-of-type { max-width: 72.6rem; }
.page-toprt .experts__text + .experts__text { max-width: 73.5rem; margin-right: -3.5rem; }
.page-toprt .servprog__foot-text { max-width: 93.9rem; }
/* баннеры доверия: текст у низа, фреймы абзацев 979/887/841/655 */
.page-toprt .trust-slide { justify-content: flex-end; }
.page-toprt .swiper-slide[data-i="1"] .trust-slide__text { max-width: 97.9rem; }
.page-toprt .swiper-slide[data-i="2"] .trust-slide__text { max-width: 88.7rem; }
.page-toprt .swiper-slide[data-i="3"] .trust-slide__text { max-width: 84.1rem; }
.page-toprt .swiper-slide[data-i="4"] .trust-slide__text { max-width: 65.5rem; }
.page-toprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 63.1rem; }
.page-toprt .servprog__item:nth-child(3) .servprog__item-text { max-width: 68.1rem; }
.page-toprt .servprog__item:nth-child(4) .servprog__item-text { max-width: 71.1rem; }
/* вкладки 2/3 по фреймам 284:21090 / 284:21145 */
.page-toprt #prog-mesyac .servprog__col-text p:first-child { max-width: 74.4rem; }
.page-toprt #prog-mesyac .servprog__col-text p + p { max-width: 71.1rem; }
.page-toprt #prog-mesyac .servprog__foot-text { max-width: 75.9rem; }
.page-toprt #prog-mesyac .servprog__item:nth-child(2) .servprog__item-text { max-width: 70rem; }
.page-toprt #prog-mesyac .servprog__item:nth-child(3) .servprog__item-text { max-width: 71.9rem; }
.page-toprt #prog-mesyac .servprog__item:nth-child(4) .servprog__item-text { max-width: 65.1rem; }
.page-toprt #prog-247 .servprog__col-text p:first-child { max-width: 68.4rem; }
.page-toprt #prog-247 .servprog__col-text p + p { max-width: 73.8rem; }
.page-toprt #prog-247 .servprog__item:nth-child(2) .servprog__item-text { max-width: 71.9rem; }
.page-toprt #prog-247 .servprog__item:nth-child(3) .servprog__item-text { max-width: 71.1rem; }
.page-toprt #prog-247 .servprog__item:nth-child(4) .servprog__item-text { max-width: 74.1rem; }
.page-toprt #prog-247 .servprog__item:nth-child(5) .servprog__item-text { max-width: 70rem; }
.page-toprt #prog-247 .servprog__foot-text { max-width: 71.9rem; }
.page-toprt .out-card__text { max-width: 47.4rem; }

/* хаб «Диагностика кранов» */
.hero--dg .hero__bg {
  top: -35.3rem; height: 109.4rem;
  background-image: url('../img/hubto-hero.webp');
}
.hero--dg .hero__title { max-width: 152.7rem; margin-top: 2.5rem; }
.hero--dg .hero__lead--wide { max-width: 98rem; margin-top: 1.4rem; }
.hero--dg .hero__lead--wide + .hero__lead--wide { max-width: 100.9rem; margin-top: 1rem; }

.hub-services--dg { padding-bottom: 5rem; }
.hub-services--dg .hub-services__title { text-transform: uppercase; max-width: 83rem; }
.hub-services--dg .hub-services__lead { max-width: 137rem; }
.hub-services--dg .tile__text { max-width: 73.8rem; } /* фреймы подписей плиток 738 */
.hub-services--dg .hub-services__lead--2 { max-width: 110rem; margin-top: 1.4rem; }

/* «Комплексный подход к диагностике»: шесть карточек 3x2 с раскрытием */
.repair--dg { background: var(--c-bg-light); padding: 5rem 0; }
/* в этой секции заголовок сидит вплотную к лиду, как в макете */
.repair--dg .repair__title { text-transform: uppercase; max-width: 105.8rem; margin: 3.3rem 0 0; }
.repair--dg .repair__lead { max-width: 145.4rem; margin: 1.4rem 0 0; font-size: 2rem; line-height: 2.4rem; }
.repair--dg .repair__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(32.4rem, auto) minmax(29.4rem, auto);
  gap: 2rem 2.1rem;
  margin-top: 4rem;
}
.repair--dg .repair-card__title { text-transform: uppercase; }
/* ширины текстовых фреймов макета: 480 / 433 / 433 / 376 / 433 / 433 */
.repair--dg .repair-card:nth-child(1) .repair-card__text { max-width: 48rem; }
.repair--dg .repair-card:nth-child(2) .repair-card__text,
.repair--dg .repair-card:nth-child(3) .repair-card__text,
.repair--dg .repair-card:nth-child(5) .repair-card__text,
.repair--dg .repair-card:nth-child(6) .repair-card__text { max-width: 43.3rem; }
.repair--dg .repair-card:nth-child(4) .repair-card__text { max-width: 37.6rem; }

/* «Как проходит диагностика»: шесть шагов 800x320 в две колонки,
   номер лежит в правом верхнем углу карточки */
.dgsteps { background: var(--c-bg-light); padding: 5rem 0; }
.dgsteps__title { text-transform: uppercase; margin: 3.3rem 0 0; max-width: 126rem; }
.dgsteps__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 4.8rem;
}
.dgstep {
  position: relative;
  background: var(--c-white);
  border-radius: 1rem;
  min-height: 32rem;
  padding: 2rem 2rem 2.4rem 4.5rem;
}
.dgstep__num {
  position: absolute; top: 2.7rem; right: 3rem;
  font-size: 2.5rem; line-height: 3rem;
  color: var(--c-accent);
}
.dgstep__title {
  margin: 7.9rem 0 0;
  font-weight: 500; font-size: 2.5rem; line-height: 3rem;
  text-transform: uppercase;
}
.dgstep__text {
  margin: 2rem 0 0;
  font-size: 2rem; line-height: 2.4rem;
  max-width: 73.5rem;
}
.dgstep__text + .dgstep__text { margin-top: 1rem; }
/* диагностика: карточки шагов по макету — иконка 65 в кружке, заголовок красный с линией, маркеры */
.page-mtprt .dgstep { background: transparent; padding: 2rem 2rem 2.4rem 2rem; min-height: 32rem; }
.page-mtprt .dgstep__icon {
  display: flex; align-items: center; justify-content: center;
  width: 6.5rem; height: 6.5rem; border-radius: 50%; background: #231F20;
}
.page-mtprt .dgstep__icon img { width: 4rem; height: 4rem; }
.page-mtprt .dgstep__num { top: 9.7rem; right: 2rem; color: var(--c-text); }
.page-mtprt .dgstep__title {
  margin: 1.4rem 0 0; padding: 0 6rem 1.8rem 0;
  color: var(--c-accent); border-bottom: 1px solid #e6e6e6;
}
.page-mtprt .dgstep__text { margin-top: 2.2rem; padding-left: 2.5rem; box-sizing: content-box; position: relative; color: #5c5c5c; }
.page-mtprt .dgstep__text + .dgstep__text { margin-top: 1rem; }
.page-mtprt .dgstep__text::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}
/* диагностика: карточки шагов по макету — иконка 65 в кружке, заголовок красный с линией, маркеры */
.page-mtkoz .dgstep { background: transparent; padding: 2rem 2rem 2.4rem 2rem; min-height: 32rem; }
.page-mtkoz .dgstep__icon {
  display: flex; align-items: center; justify-content: center;
  width: 6.5rem; height: 6.5rem; border-radius: 50%; background: #231F20;
}
.page-mtkoz .dgstep__icon img { width: 4rem; height: 4rem; }
.page-mtkoz .dgstep__num { top: 9.7rem; right: 2rem; color: var(--c-text); }
.page-mtkoz .dgstep__title {
  margin: 1.4rem 0 0; padding: 0 6rem 1.8rem 0;
  color: var(--c-accent); border-bottom: 1px solid #d9d9d9;
}
.page-mtkoz .dgstep__text { margin-top: 2.2rem; padding-left: 2.5rem; position: relative; color: #5c5c5c; }
.page-mtkoz .dgstep__text + .dgstep__text { margin-top: 1rem; }
.page-mtkoz .dgstep__text::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}
/* диагностика: карточки шагов по макету — иконка 65 в кружке, заголовок красный с линией, маркеры */
.page-mtmst .dgstep { background: transparent; padding: 2rem 2rem 2.4rem 2rem; min-height: 32rem; }
.page-mtmst .dgstep__icon {
  display: flex; align-items: center; justify-content: center;
  width: 6.5rem; height: 6.5rem; border-radius: 50%; background: #231F20;
}
.page-mtmst .dgstep__icon img { width: 4rem; height: 4rem; }
.page-mtmst .dgstep__num { top: 9.7rem; right: 2rem; color: var(--c-text); }
.page-mtmst .dgstep__title {
  margin: 1.4rem 0 0; padding: 0 6rem 1.8rem 0;
  color: var(--c-accent); border-bottom: 1px solid #d9d9d9;
}
.page-mtmst .dgstep__text { margin-top: 2.2rem; padding-left: 2.5rem; position: relative; color: #5c5c5c; }
.page-mtmst .dgstep__text + .dgstep__text { margin-top: 1rem; }
.page-mtmst .dgstep__text::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}
/* диагностика: карточки шагов по макету — иконка 65 в кружке, заголовок красный с линией, маркеры */
.page-dgprt .dgstep { background: transparent; padding: 2rem 2rem 2.4rem 2rem; min-height: 32rem; }
.page-dgprt .dgstep__icon {
  display: flex; align-items: center; justify-content: center;
  width: 6.5rem; height: 6.5rem; border-radius: 50%; background: #231F20;
}
.page-dgprt .dgstep__icon img { width: 4rem; height: 4rem; }
.page-dgprt .dgstep__num { top: 9.7rem; right: 2rem; color: var(--c-text); }
.page-dgprt .dgstep__title {
  margin: 1.4rem 0 0; padding: 0 6rem 1.8rem 0;
  color: var(--c-accent); border-bottom: 1px solid #d9d9d9;
}
.page-dgprt .dgstep__text { margin-top: 2.2rem; padding-left: 2.5rem; position: relative; color: #5c5c5c; }
.page-dgprt .dgstep__text + .dgstep__text { margin-top: 1rem; }
.page-dgprt .dgstep__text::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}
/* диагностика: карточки шагов по макету — иконка 65 в кружке, заголовок красный с линией, маркеры */
.page-dgkoz .dgstep { background: transparent; padding: 2rem 2rem 2.4rem 2rem; min-height: 32rem; }
.page-dgkoz .dgstep__icon {
  display: flex; align-items: center; justify-content: center;
  width: 6.5rem; height: 6.5rem; border-radius: 50%; background: #231F20;
}
.page-dgkoz .dgstep__icon img { width: 4rem; height: 4rem; }
.page-dgkoz .dgstep__num { top: 9.7rem; right: 2rem; color: var(--c-text); }
.page-dgkoz .dgstep__title {
  margin: 1.4rem 0 0; padding: 0 6rem 1.8rem 0;
  color: var(--c-accent); border-bottom: 1px solid #d9d9d9;
}
.page-dgkoz .dgstep__text { margin-top: 2.2rem; padding-left: 2.5rem; position: relative; color: #5c5c5c; }
.page-dgkoz .dgstep__text + .dgstep__text { margin-top: 1rem; }
.page-dgkoz .dgstep__text::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}
/* диагностика: карточки шагов по макету — иконка 65 в кружке, заголовок красный с линией, маркеры */
.page-dgmst .dgstep { background: transparent; padding: 2rem 2rem 2.4rem 2rem; min-height: 32rem; }
.page-dgmst .dgstep__icon {
  display: flex; align-items: center; justify-content: center;
  width: 6.5rem; height: 6.5rem; border-radius: 50%; background: #231F20;
}
.page-dgmst .dgstep__icon img { width: 4rem; height: 4rem; }
.page-dgmst .dgstep__num { top: 9.7rem; right: 2rem; color: var(--c-text); }
.page-dgmst .dgstep__title {
  margin: 1.4rem 0 0; padding: 0 6rem 1.8rem 0;
  color: var(--c-accent); border-bottom: 1px solid #d9d9d9;
}
.page-dgmst .dgstep__text { margin-top: 2.2rem; padding-left: 2.5rem; position: relative; color: #5c5c5c; }
.page-dgmst .dgstep__text + .dgstep__text { margin-top: 1rem; }
.page-dgmst .dgstep__text::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}

/* «Диагностика мостовых кранов»: ширины текстовых фреймов из макета */
/* два лида подряд: нижний отступ первого (9rem базовых) схлопывал бы разрыв
   в 90px вместо макетных 10 */
.page-dgmst .hero__lead--wide { max-width: 118.7rem; margin-bottom: 0; }
.page-dgmst .hero__lead--wide + .hero__lead--wide { max-width: 115.8rem; margin: 1rem 0 0; }
.page-dgmst .experts__box > .experts__text:first-of-type { max-width: 73.5rem; }
.page-dgmst .experts__text + .experts__text { max-width: 68.5rem; }
.page-dgmst .experts__alert-text { max-width: 70.6rem; }
.repair--dgmst .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--dgmst .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--dgmst .repair-card:nth-child(7) .repair-card__text { max-width: 68.3rem; }
.repair--dgmst .repair-card--wide { grid-column: 1 / -1; }
.repair--dgmst .repair-card--wide .repair-card__text { max-width: 151.5rem; }
.advantages--dgmst .advantage-card:nth-child(5) .advantage-card__text,
.advantages--dgmst .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }
.advantages--dgmst .advantage-card:nth-child(8) .advantage-card__text,
.advantages--dgmst .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; }
.page-dgmst .trust-slide__title { max-width: 105.9rem; }
.page-dgmst .outsource .section-title { max-width: 105.2rem; }
.page-dgmst .outsource .swiper-slide[data-i="4"] .out-card__title { max-width: 44.2rem; }
.page-dgmst .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 44.8rem; }
.page-dgmst .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 50.5rem; margin-right: -2rem; }
/* «Результаты и документация» — тёмная плашка с маркерами (страница 284:32030) */
.repair--dgmst .repair-card--wide { background: #231F20; color: var(--c-white); }
.repair--dgmst .repair-card--wide .repair-card__title { color: var(--c-accent); }
.repair--dgmst .repair-card--wide .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--dgmst .repair-card--wide .repair-card__text::before,
.experts--dg .experts__text--dot::before {
  content: ''; position: absolute; left: 0; top: 0.45rem;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 1px solid var(--c-accent);
  background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem);
}
.experts--dg .experts__text--dot { position: relative; padding-left: 2.3rem; }
.page-dgmst .out-card__title { max-width: 41.8rem; }
.page-dgmst .out-card__text { max-width: 44.7rem; }
.page-dgmst .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-dgmst .servprog__item:nth-child(3) .servprog__item-text { max-width: 64rem; }
.page-dgmst .servprog__foot-text { max-width: 86.2rem; }
.page-dgmst .dgstep__text { max-width: 67.9rem; }
.dgstep:nth-child(1) .dgstep__text { max-width: 61.1rem; }
.dgstep:nth-child(1) .dgstep__text + .dgstep__text { max-width: 67.9rem; }
.dgstep:nth-child(2) .dgstep__text + .dgstep__text { max-width: 67rem; }
.dgstep:nth-child(3) .dgstep__text + .dgstep__text { max-width: 64.9rem; }
.page-dgmst .other__lead { max-width: 111.5rem; }
.page-dgmst .trust-slide__title { max-width: 110rem; }
.page-dgmst .experts__box > .experts__text:first-of-type { max-width: 73.5rem; margin-right: -3.5rem; }
.page-dgmst .experts__alert-text { max-width: 70.6rem; margin-right: -2.6rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text,
.page-dgmst .dgstep:nth-child(6) .dgstep__text { max-width: 73.5rem; }
/* фреймы 1059 и 745 шире своих боксов (1003 и 718) — вынос как в макете */
.page-dgmst .trust-slide__title { max-width: 105.9rem; margin-right: -5.6rem; }
/* баннеры доверия: текст у низа, фреймы абзацев 1003/933/758/739 */
.page-dgmst .trust-slide { justify-content: flex-end; }
.page-dgmst .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-dgmst .swiper-slide[data-i="2"] .trust-slide__text { max-width: 93.3rem; }
.page-dgmst .swiper-slide[data-i="3"] .trust-slide__text { max-width: 75.8rem; }
.page-dgmst .swiper-slide[data-i="4"] .trust-slide__text { max-width: 73.9rem; }
.page-dgmst .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.page-dgmst .experts__alert-text { max-width: 70.6rem; margin-right: -4rem; }
.advantages--dgmst .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; margin-right: -0.5rem; }

/* на детальных «Диагностики» плашка лежит поверх фото, а не в текстовом боксе */
.experts--dg .experts__media { position: relative; }
.experts--dg .experts__photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 2rem; }
/* плашка на диагностике мельче базовой: fs21/25.2 и fs18/21.6, как на монтаже */
.experts--dg .experts__alert-title { font-size: 2.1rem; line-height: 2.52rem; }
.experts--dg .experts__alert-text { font-size: 1.8rem; line-height: 2.16rem; }
.experts--dg .experts__alert {
  position: absolute; left: 2rem; right: 2rem; bottom: 3.6rem;
  margin-top: 0;
}

/* «Диагностика козловых кранов»: те же фреймы, что на мостовой */
.page-dgkoz .experts__box > .experts__text:first-of-type { max-width: 73.5rem; }
.page-dgkoz .experts__text + .experts__text { max-width: 68.5rem; }
.page-dgkoz .experts__alert-text { max-width: 70.6rem; }
.repair--dgkoz .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--dgkoz .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--dgkoz .repair-card:nth-child(7) .repair-card__text { max-width: 68.3rem; }
.repair--dgkoz .repair-card--wide { grid-column: 1 / -1; }
.repair--dgkoz .repair-card--wide .repair-card__text { max-width: 151.5rem; }
.advantages--dgkoz .advantage-card:nth-child(5) .advantage-card__text,
.advantages--dgkoz .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }
.advantages--dgkoz .advantage-card:nth-child(8) .advantage-card__text,
.advantages--dgkoz .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; }
.page-dgkoz .trust-slide__title { max-width: 105.9rem; }
.page-dgkoz .outsource .section-title { max-width: 105.2rem; }
.page-dgkoz .out-card__title { max-width: 41.8rem; }
.page-dgkoz .out-card__text { max-width: 44.7rem; }
.page-dgkoz .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-dgkoz .servprog__item:nth-child(3) .servprog__item-text { max-width: 64rem; }
.page-dgkoz .servprog__foot-text { max-width: 86.2rem; }
.page-dgkoz .dgstep__text { max-width: 67.9rem; }
.page-dgkoz .other__lead { max-width: 111.5rem; }
.page-dgkoz .trust-slide__title { max-width: 110rem; }
.page-dgkoz .experts__box > .experts__text:first-of-type { max-width: 73.5rem; margin-right: -3.5rem; }
.page-dgkoz .experts__alert-text { max-width: 70.6rem; margin-right: -2.6rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text,
.page-dgkoz .dgstep:nth-child(6) .dgstep__text { max-width: 73.5rem; }
.page-dgkoz .trust-slide__title { max-width: 105.9rem; margin-right: -5.6rem; }
.page-dgkoz .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.page-dgkoz .experts__alert-text { max-width: 70.6rem; margin-right: -4rem; }
.advantages--dgkoz .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; margin-right: -0.5rem; }
.page-dgkoz .hero__lead--wide { max-width: 112.5rem; margin-bottom: 0; }
.page-dgkoz .hero__lead--wide + .hero__lead--wide { max-width: 112.5rem; margin: 1rem 0 0; }
.page-dgkoz .experts__box > .experts__text:first-of-type { max-width: 70.6rem; margin-right: -0.6rem; }
.page-dgkoz .out-card:has(.out-card__text) .out-card__text { max-width: 48.5rem; }
.page-dgkoz .outsource .swiper-slide[data-i="2"] .out-card__text { max-width: 48.5rem; margin-right: -1.1rem; }

/* «Диагностика портальных кранов»: те же фреймы */
.page-dgprt .experts__box > .experts__text:first-of-type { max-width: 73.5rem; }
.page-dgprt .experts__text + .experts__text { max-width: 68.5rem; }
.page-dgprt .experts__alert-text { max-width: 70.6rem; }
.repair--dgprt .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--dgprt .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--dgprt .repair-card:nth-child(7) .repair-card__text { max-width: 68.3rem; }
.repair--dgprt .repair-card--wide { grid-column: 1 / -1; }
.repair--dgprt .repair-card--wide .repair-card__text { max-width: 151.5rem; }
.advantages--dgprt .advantage-card:nth-child(5) .advantage-card__text,
.advantages--dgprt .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }
.advantages--dgprt .advantage-card:nth-child(8) .advantage-card__text,
.advantages--dgprt .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; }
.page-dgprt .trust-slide__title { max-width: 105.9rem; }
.page-dgprt .outsource .section-title { max-width: 105.2rem; }
.page-dgprt .out-card__title { max-width: 41.8rem; }
.page-dgprt .out-card__text { max-width: 44.7rem; }
.page-dgprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-dgprt .servprog__item:nth-child(3) .servprog__item-text { max-width: 64rem; }
.page-dgprt .servprog__foot-text { max-width: 86.2rem; }
.page-dgprt .dgstep__text { max-width: 67.9rem; }
.page-dgprt .other__lead { max-width: 111.5rem; }
.page-dgprt .trust-slide__title { max-width: 110rem; }
.page-dgprt .experts__box > .experts__text:first-of-type { max-width: 73.5rem; margin-right: -3.5rem; }
.page-dgprt .experts__alert-text { max-width: 70.6rem; margin-right: -2.6rem; }
.page-dgprt .dgstep:nth-child(4) .dgstep__text,
.page-dgprt .dgstep:nth-child(6) .dgstep__text { max-width: 73.5rem; }
.page-dgprt .trust-slide__title { max-width: 105.9rem; margin-right: -5.6rem; }
.page-dgprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.page-dgprt .experts__alert-text { max-width: 70.6rem; margin-right: -4rem; }
.advantages--dgprt .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; margin-right: -0.5rem; }
.page-dgprt .hero__lead--wide { max-width: 124.7rem; margin-bottom: 0; }
.page-dgprt .hero__lead--wide + .hero__lead--wide { max-width: 115.8rem; margin: 1rem 0 0; }
.page-dgprt .experts__alert-text { max-width: 71.8rem; margin-right: -5.2rem; }
.page-dgprt .dgstep:nth-child(1) .dgstep__text { max-width: 72.7rem; }
.advantages--dgprt .advantage-card:nth-child(8) .advantage-card__text { max-width: 50.1rem; margin-right: -1.6rem; }
.page-dgprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 62.5rem; }
/* ширины карточек на портальной шире мостовых — свои значения */
.advantages--dgprt .advantage-card:nth-child(5) .advantage-card__text { max-width: 48.5rem; margin-right: -0.1rem; }
.advantages--dgprt .advantage-card:nth-child(6) .advantage-card__text { max-width: 50.1rem; margin-right: -1.7rem; }
.advantages--dgprt .advantage-card:nth-child(8) .advantage-card__text,
.advantages--dgprt .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; margin-right: 0; }
.page-dgprt .out-card__title { max-width: 50.4rem; margin-right: -2rem; }
.page-dgprt .advantages__title { max-width: 154.6rem; }
.repair--dgprt .repair-card:nth-child(8) .repair-card__text { max-width: 77.9rem; margin-right: -6.6rem; }

/* хаб «Монтаж кранов» */
.hero--mt .hero__bg {
  top: -35.3rem; height: 109.4rem;
  background-image: url('../img/hubto-hero.webp');
}
.hero--mt .hero__title { max-width: 152.7rem; margin-top: 2.5rem; }
.hero--mt .hero__lead--wide { max-width: 91.3rem; margin-top: 1.4rem; }
.hero--mt .hero__lead--wide + .hero__lead--wide { max-width: 88.3rem; margin-top: 1rem; }

.hub-services--mt { padding-bottom: 5rem; }
.hub-services--mt .hub-services__title { text-transform: uppercase; max-width: 83rem; }
.hub-services--mt .hub-services__lead { max-width: 123.7rem; }

/* «Комплексный подход к монтажу»: три карточки 526 и две 800 в одной сетке
   из шести колонок, раскрытия нет, заголовок отбит линией */
.repair--mt .repair__title { text-transform: uppercase; max-width: 105.8rem; margin: 3.3rem 0 0; }
.repair--mt .repair__lead { max-width: 145.4rem; margin: 1.4rem 0 0; font-size: 2rem; line-height: 2.4rem; }
.repair--mt .repair__lead:first-of-type { max-width: 134.6rem; }
.repair--mt .repair__grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: minmax(28.7rem, auto) minmax(27.9rem, auto);
  gap: 2rem 2.1rem;
  margin-top: 4rem;
}
.repair--mt .repair-card { grid-column: span 2; }
.repair--mt .repair-card:nth-child(n+4) { grid-column: span 3; }
.repair--mt .repair-card__title {
  text-transform: uppercase;
  margin-top: 2.6rem;
  padding-bottom: 1.7rem;
  border-bottom: 1px solid var(--c-line);
}
.repair--mt .repair-card { padding-bottom: 2rem; }
/* в этой секции текст карточек fs18/lh21.6, а не базовые fs20/lh24 */
.repair--mt .repair-card__text { margin-top: 2.3rem; font-size: 1.8rem; line-height: 2.16rem; }
/* ширины текстовых фреймов макета: 480 / 505 / 480 / 744 / 732 */
.repair--mt .repair-card:nth-child(1) .repair-card__text,
.repair--mt .repair-card:nth-child(3) .repair-card__text { max-width: 48rem; }
/* текст-фрейм макета 505 шире колонки карточки (484) — отдаем 21px вправо */
.repair--mt .repair-card:nth-child(2) .repair-card__text { max-width: 50.5rem; margin-right: -2.1rem; }
.repair--mt .repair-card:nth-child(4) .repair-card__text { max-width: 74.4rem; }
.repair--mt .repair-card:nth-child(5) .repair-card__text { max-width: 73.2rem; }

/* монтаж мостовых кранов */
.page-mtmst .hero__lead--wide { max-width: 118.7rem; margin-bottom: 0; }
.page-mtmst .hero__lead--wide + .hero__lead--wide { max-width: 102rem; margin: 1rem 0 0; }
.page-mtmst .experts__box > .experts__text:first-of-type { max-width: 73.5rem; }
.page-mtmst .experts__text + .experts__text { max-width: 68.5rem; }
.repair--mtmst .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--mtmst .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--mtmst .repair-card:nth-child(7) .repair-card__text { max-width: 68.3rem; }
.repair--mtmst .repair-card--wide { grid-column: 1 / -1; }
.advantages--mtmst .advantage-card:nth-child(5) .advantage-card__text,
.advantages--mtmst .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }
.advantages--mtmst .advantage-card:nth-child(8) .advantage-card__text,
.advantages--mtmst .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; }
.page-mtmst .trust-slide__title { max-width: 105.9rem; }
.page-mtmst .outsource .section-title { max-width: 105.2rem; }
.page-mtmst .out-card__title { max-width: 41.8rem; }
.page-mtmst .out-card__text { max-width: 44.7rem; }
.page-mtmst .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-mtmst .servprog__item:nth-child(3) .servprog__item-text { max-width: 64rem; }
.page-mtmst .servprog__foot-text { max-width: 86.2rem; }
.page-mtmst .dgstep__text { max-width: 67.9rem; }
.page-mtmst .other__lead { max-width: 111.5rem; }
.page-mtmst .trust-slide__title { max-width: 110rem; }
.page-mtmst .experts__box > .experts__text:first-of-type { max-width: 73.5rem; margin-right: -3.5rem; }
.page-mtmst .dgstep:nth-child(4) .dgstep__text,
.page-mtmst .dgstep:nth-child(6) .dgstep__text { max-width: 73.5rem; }
.page-mtmst .trust-slide__title { max-width: 105.9rem; margin-right: -5.6rem; }
.page-mtmst .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.advantages--mtmst .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; margin-right: -0.5rem; }
/* ширины текстовых фреймов макета */
.repair--mtmst .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.repair--mtmst .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--mtmst .repair-card:nth-child(5) .repair-card__text { max-width: 75.5rem; }
.repair--mtmst .repair-card:nth-child(6) .repair-card__text { max-width: 68.3rem; }
.repair--mtmst .repair-card:nth-child(4) .repair-card__text { max-width: 69.6rem; }
.repair--mtmst .repair-card:nth-child(7) .repair-card__text { max-width: 136.8rem; }
.repair--mtmst .repair-card:nth-child(1) .repair-card__text { max-width: 75.3rem; }
.page-mtmst .other--koz .other__lead { max-width: 137.5rem; }
.faq--mtmst .faq__item:nth-child(1) .faq__a { max-width: 70.0rem; }
.faq--mtmst .faq__item:nth-child(3) .faq__a { max-width: 76.4rem; }
.faq--mtmst .faq__item:nth-child(4) .faq__a { max-width: 76.4rem; }
.faq--mtmst .faq__item:nth-child(7) .faq__a { max-width: 71.6rem; }
.faq--mtmst .faq__item:nth-child(8) .faq__a { max-width: 71.6rem; }
.faq--mtmst .faq__item:nth-child(9) .faq__a { max-width: 63.3rem; }
.faq--mtmst .faq__item:nth-child(10) .faq__a { max-width: 70.1rem; }
.faq--mtmst .faq__item:nth-child(11) .faq__a { max-width: 76.4rem; }
.faq--mtmst .faq__item:nth-child(12) .faq__a { max-width: 62.3rem; }
.faq--mtmst .faq__item:nth-child(13) .faq__a { max-width: 67.7rem; }
.faq--mtmst .faq__item:nth-child(14) .faq__a { max-width: 76.4rem; }
.faq--mtmst .faq__item:nth-child(5) .faq__a { max-width: 75.5rem; }
.faq--mtmst .faq__item:nth-child(6) .faq__a { max-width: 66.5rem; }
.advantages--mtmst .advantage-card:nth-child(1) .advantage-card__text { max-width: 45.7rem; }
.advantages--mtmst .advantage-card:nth-child(3) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtmst .advantage-card:nth-child(3) .advantage-card__title { max-width: 43.0rem; }
.advantages--mtmst .advantage-card:nth-child(6) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtmst .advantage-card:nth-child(2) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtmst .advantage-card:nth-child(2) .advantage-card__title { max-width: 43.1rem; }
.advantages--mtmst .advantage-card:nth-child(7) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtmst .advantage-card:nth-child(8) .advantage-card__title { max-width: 44.1rem; }
.page-mtmst .trust .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtmst .outsource .out-card:nth-child(1) .out-card__text { max-width: 47.0rem; }
.page-mtmst .outsource .out-card:nth-child(1) .out-card__title { max-width: 38.1rem; }
.servprog--mtmst .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.servprog--mtmst .servprog__item:nth-child(3) .servprog__item-text { max-width: 72.5rem; }
.servprog--mtmst .servprog__item:nth-child(4) .servprog__item-text { max-width: 71.1rem; }
.servprog--mtmst .servprog__foot-text { max-width: 89.7rem; }
.page-mtmst .trust .swiper-slide[data-i="2"] .trust-slide__text { max-width: 79.5rem; }
.page-mtmst .trust .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtmst .trust .swiper-slide[data-i="4"] .trust-slide__text { max-width: 80.5rem; }
.repair--mtmst .repair__title { text-transform: uppercase; max-width: 132rem; }
.page-mtmst .experts__alert-text { max-width: 63.6rem; }
/* плашка монтажа в макете мельче базовой: fs21/25.2 и fs18/21.6 */
.page-mtmst .experts__alert-title { font-size: 2.1rem; line-height: 2.52rem; }
.page-mtmst .experts__alert-text { font-size: 1.8rem; line-height: 2.16rem; }
/* высоту карточек в этой секции задаёт контент: в макете ряды 289/290/241 */
.repair--mtmst .repair-card { min-height: 0; }
/* ряды макета 320/295/218 — высоту задаёт сетка, а не карточка */
.page-mtmst .dgsteps__grid {
  grid-template-rows: minmax(32rem, auto) minmax(29.5rem, auto) auto;
}
/* монтаж козловых кранов */
.hero--mtkoz .hero__bg {
  top: -35.3rem; height: 109.4rem;
  background-image: url('../img/hubto-hero.webp');
}
.page-mtkoz .hero__lead--wide { max-width: 112.8rem; margin-bottom: 0; }
.page-mtkoz .hero__lead--wide + .hero__lead--wide { max-width: 87.8rem; margin: 1rem 0 0; }
.page-mtkoz .experts__box > .experts__text:first-of-type { max-width: 73.5rem; }
.page-mtkoz .experts__text + .experts__text { max-width: 68.5rem; }
.repair--mtkoz .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--mtkoz .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--mtkoz .repair-card:nth-child(7) .repair-card__text { max-width: 68.3rem; }
.repair--mtkoz .repair-card--wide { grid-column: 1 / -1; }
.advantages--mtkoz .advantage-card:nth-child(5) .advantage-card__text,
.advantages--mtkoz .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }
.advantages--mtkoz .advantage-card:nth-child(8) .advantage-card__text,
.advantages--mtkoz .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; }
.page-mtkoz .trust-slide__title { max-width: 105.9rem; }
.page-mtkoz .outsource .section-title { max-width: 105.2rem; }
.page-mtkoz .out-card__title { max-width: 41.8rem; }
.page-mtkoz .out-card__text { max-width: 44.7rem; }
.page-mtkoz .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-mtkoz .servprog__item:nth-child(3) .servprog__item-text { max-width: 64rem; }
.page-mtkoz .servprog__foot-text { max-width: 86.2rem; }
.page-mtkoz .dgstep__text { max-width: 67.9rem; }
.page-mtkoz .other__lead { max-width: 111.5rem; }
.page-mtkoz .trust-slide__title { max-width: 110rem; }
.page-mtkoz .experts__box > .experts__text:first-of-type { max-width: 73.5rem; margin-right: -3.5rem; }
.page-mtkoz .dgstep:nth-child(4) .dgstep__text,
.page-mtkoz .dgstep:nth-child(6) .dgstep__text { max-width: 73.5rem; }
.page-mtkoz .trust-slide__title { max-width: 105.9rem; margin-right: -5.6rem; }
.page-mtkoz .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.advantages--mtkoz .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; margin-right: -0.5rem; }
.repair--mtkoz .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.repair--mtkoz .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--mtkoz .repair-card:nth-child(5) .repair-card__text { max-width: 75.5rem; }
.repair--mtkoz .repair-card:nth-child(6) .repair-card__text { max-width: 68.3rem; }
.repair--mtkoz .repair-card:nth-child(4) .repair-card__text { max-width: 69.6rem; }
.repair--mtkoz .repair-card:nth-child(7) .repair-card__text { max-width: 136.8rem; }
.repair--mtkoz .repair-card:nth-child(1) .repair-card__text { max-width: 75.3rem; }
.page-mtkoz .other--koz .other__lead { max-width: 137.5rem; }
.faq--mtkoz .faq__item:nth-child(1) .faq__a { max-width: 70.0rem; }
.faq--mtkoz .faq__item:nth-child(3) .faq__a { max-width: 76.4rem; }
.faq--mtkoz .faq__item:nth-child(4) .faq__a { max-width: 76.4rem; }
.faq--mtkoz .faq__item:nth-child(7) .faq__a { max-width: 71.6rem; }
.faq--mtkoz .faq__item:nth-child(8) .faq__a { max-width: 71.6rem; }
.faq--mtkoz .faq__item:nth-child(9) .faq__a { max-width: 63.3rem; }
.faq--mtkoz .faq__item:nth-child(10) .faq__a { max-width: 70.1rem; }
.faq--mtkoz .faq__item:nth-child(11) .faq__a { max-width: 76.4rem; }
.faq--mtkoz .faq__item:nth-child(12) .faq__a { max-width: 62.3rem; }
.faq--mtkoz .faq__item:nth-child(13) .faq__a { max-width: 67.7rem; }
.faq--mtkoz .faq__item:nth-child(14) .faq__a { max-width: 76.4rem; }
.faq--mtkoz .faq__item:nth-child(5) .faq__a { max-width: 75.5rem; }
.faq--mtkoz .faq__item:nth-child(6) .faq__a { max-width: 66.5rem; }
.advantages--mtkoz .advantage-card:nth-child(1) .advantage-card__text { max-width: 45.7rem; }
.advantages--mtkoz .advantage-card:nth-child(3) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtkoz .advantage-card:nth-child(3) .advantage-card__title { max-width: 43.0rem; }
.advantages--mtkoz .advantage-card:nth-child(6) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtkoz .advantage-card:nth-child(2) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtkoz .advantage-card:nth-child(2) .advantage-card__title { max-width: 43.1rem; }
.advantages--mtkoz .advantage-card:nth-child(7) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtkoz .advantage-card:nth-child(8) .advantage-card__title { max-width: 44.1rem; }
.page-mtkoz .trust .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtkoz .outsource .out-card:nth-child(1) .out-card__text { max-width: 47.0rem; }
.page-mtkoz .outsource .out-card:nth-child(1) .out-card__title { max-width: 38.1rem; }
.servprog--mtkoz .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.servprog--mtkoz .servprog__item:nth-child(3) .servprog__item-text { max-width: 72.5rem; }
.servprog--mtkoz .servprog__item:nth-child(4) .servprog__item-text { max-width: 71.1rem; }
.servprog--mtkoz .servprog__foot-text { max-width: 89.7rem; }
.page-mtkoz .trust .swiper-slide[data-i="2"] .trust-slide__text { max-width: 79.5rem; }
.page-mtkoz .trust .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtkoz .trust .swiper-slide[data-i="4"] .trust-slide__text { max-width: 80.5rem; }
.repair--mtkoz .repair__title { text-transform: uppercase; max-width: 132rem; }
.page-mtkoz .experts__alert-text { max-width: 63.6rem; }
.page-mtkoz .experts__alert-title { font-size: 2.1rem; line-height: 2.52rem; }
.page-mtkoz .experts__alert-text { font-size: 1.8rem; line-height: 2.16rem; }
.repair--mtkoz .repair-card { min-height: 0; }
.page-mtkoz .dgsteps__grid {
  grid-template-rows: minmax(32rem, auto) minmax(29.5rem, auto) auto;
}
/* ширины текстовых фреймов макета */
.repair--mtkoz .repair-card:nth-child(2) .repair-card__text { max-width: 77.9rem; }
.repair--mtkoz .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--mtkoz .repair-card:nth-child(5) .repair-card__text { max-width: 73.9rem; }
.repair--mtkoz .repair-card:nth-child(6) .repair-card__text { max-width: 68.3rem; }
.repair--mtkoz .repair-card:nth-child(4) .repair-card__text { max-width: 76.1rem; }
.repair--mtkoz .repair-card:nth-child(1) .repair-card__text { max-width: 75.3rem; }
.repair--mtkoz .repair-card:nth-child(7) .repair-card__text { max-width: 67.4rem; }
.repair--mtkoz .repair-card:nth-child(8) .repair-card__text { max-width: 68.9rem; }
.faq--mtkoz .faq__item:nth-child(1) .faq__a { max-width: 70.0rem; }
.faq--mtkoz .faq__item:nth-child(3) .faq__a { max-width: 76.4rem; }
.faq--mtkoz .faq__item:nth-child(4) .faq__a { max-width: 67.4rem; }
.faq--mtkoz .faq__item:nth-child(7) .faq__a { max-width: 71.6rem; }
.faq--mtkoz .faq__item:nth-child(8) .faq__a { max-width: 71.6rem; }
.faq--mtkoz .faq__item:nth-child(9) .faq__a { max-width: 63.3rem; }
.faq--mtkoz .faq__item:nth-child(10) .faq__a { max-width: 70.1rem; }
.faq--mtkoz .faq__item:nth-child(11) .faq__a { max-width: 76.4rem; }
.faq--mtkoz .faq__item:nth-child(12) .faq__a { max-width: 62.3rem; }
.faq--mtkoz .faq__item:nth-child(5) .faq__a { max-width: 71.6rem; }
.faq--mtkoz .faq__item:nth-child(6) .faq__a { max-width: 66.5rem; }
.page-mtkoz .experts .experts__text:nth-of-type(1) { max-width: 71.0rem; }
.page-mtkoz .experts .experts__text:nth-of-type(2) { max-width: 70.5rem; }
.page-mtkoz .experts .experts__text:nth-of-type(3) { max-width: 68.5rem; }
.page-mtkoz .experts .experts__alert-text { max-width: 68.0rem; }
.advantages--mtkoz .advantage-card:nth-child(1) .advantage-card__text { max-width: 44.9rem; }
.advantages--mtkoz .advantage-card:nth-child(3) .advantage-card__text { max-width: 46.3rem; }
.advantages--mtkoz .advantage-card:nth-child(5) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtkoz .advantage-card:nth-child(5) .advantage-card__title { max-width: 43.1rem; }
.advantages--mtkoz .advantage-card:nth-child(6) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtkoz .advantage-card:nth-child(6) .advantage-card__title { max-width: 46.2rem; }
.advantages--mtkoz .advantage-card:nth-child(2) .advantage-card__text { max-width: 49.9rem; }
.advantages--mtkoz .advantage-card:nth-child(7) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtkoz .advantage-card:nth-child(8) .advantage-card__text { max-width: 43.3rem; }
.advantages--mtkoz .advantage-card:nth-child(9) .advantage-card__text { max-width: 48.6rem; }
.advantages--mtkoz .advantage-card:nth-child(9) .advantage-card__title { max-width: 48.4rem; }
.page-mtkoz .trust .swiper-slide[data-i="1"] .trust-slide__title { max-width: 105.9rem; }
.page-mtkoz .trust .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtkoz .outsource .out-card:nth-child(1) .out-card__text { max-width: 47.0rem; }
.page-mtkoz .outsource .out-card:nth-child(1) .out-card__title { max-width: 41.8rem; }
.servprog--mtkoz .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.servprog--mtkoz .servprog__item:nth-child(3) .servprog__item-text { max-width: 70.7rem; }
.servprog--mtkoz .servprog__item:nth-child(4) .servprog__item-text { max-width: 70.0rem; }
.servprog--mtkoz .servprog__foot-text { max-width: 80.9rem; }
/* текст-фрейм макета 772 шире колонки карточки — отдаём 37px вправо */
.page-mtkoz .trust .swiper-slide[data-i="2"] .trust-slide__text { max-width: 88.6rem; }
.page-mtkoz .trust .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtkoz .trust .swiper-slide[data-i="4"] .trust-slide__text { max-width: 78.5rem; }
/* монтаж портальных кранов */
.hero--mtprt .hero__bg {
  top: -35.3rem; height: 109.4rem;
  background-image: url('../img/hubto-hero.webp');
}
.page-mtprt .hero__lead--wide { max-width: 118.7rem; margin-bottom: 0; }
.page-mtprt .hero__lead--wide + .hero__lead--wide { max-width: 102rem; margin: 1rem 0 0; }
.page-mtprt .experts__box > .experts__text:first-of-type { max-width: 73.5rem; }
.page-mtprt .experts__text + .experts__text { max-width: 68.5rem; }
.repair--mtprt .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--mtprt .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--mtprt .repair-card:nth-child(7) .repair-card__text { max-width: 68.3rem; }
.repair--mtprt .repair-card--wide { grid-column: 1 / -1; }
.advantages--mtprt .advantage-card:nth-child(5) .advantage-card__text,
.advantages--mtprt .advantage-card:nth-child(6) .advantage-card__text { max-width: 45.5rem; }
.advantages--mtprt .advantage-card:nth-child(8) .advantage-card__text,
.advantages--mtprt .advantage-card:nth-child(9) .advantage-card__text { max-width: 46.8rem; }
.page-mtprt .trust-slide__title { max-width: 105.9rem; }
.page-mtprt .outsource .section-title { max-width: 105.2rem; }
.page-mtprt .out-card__title { max-width: 41.8rem; }
.page-mtprt .out-card__text { max-width: 44.7rem; }
.page-mtprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-mtprt .servprog__item:nth-child(3) .servprog__item-text { max-width: 64rem; }
.page-mtprt .servprog__foot-text { max-width: 86.2rem; }
.page-mtprt .dgstep__text { max-width: 67.9rem; }
.page-mtprt .other__lead { max-width: 111.5rem; }
.page-mtprt .trust-slide__title { max-width: 110rem; }
.page-mtprt .experts__box > .experts__text:first-of-type { max-width: 73.5rem; margin-right: -3.5rem; }
.page-mtprt .dgstep:nth-child(4) .dgstep__text,
.page-mtprt .dgstep:nth-child(6) .dgstep__text { max-width: 73.5rem; }
.page-mtprt .trust-slide__title { max-width: 105.9rem; margin-right: -5.6rem; }
.page-mtprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; margin-right: -2.7rem; }
.advantages--mtprt .advantage-card:nth-child(6) .advantage-card__text { max-width: 47.7rem; margin-right: -0.5rem; }
.repair--mtprt .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.repair--mtprt .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--mtprt .repair-card:nth-child(5) .repair-card__text { max-width: 75.5rem; }
.repair--mtprt .repair-card:nth-child(6) .repair-card__text { max-width: 68.3rem; }
.repair--mtprt .repair-card:nth-child(4) .repair-card__text { max-width: 69.6rem; }
.repair--mtprt .repair-card:nth-child(7) .repair-card__text { max-width: 136.8rem; }
.repair--mtprt .repair-card:nth-child(1) .repair-card__text { max-width: 75.3rem; }
.page-mtprt .other--koz .other__lead { max-width: 137.5rem; }
.faq--mtprt .faq__item:nth-child(1) .faq__a { max-width: 70.0rem; }
.faq--mtprt .faq__item:nth-child(3) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(4) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(7) .faq__a { max-width: 71.6rem; }
.faq--mtprt .faq__item:nth-child(8) .faq__a { max-width: 71.6rem; }
.faq--mtprt .faq__item:nth-child(9) .faq__a { max-width: 63.3rem; }
.faq--mtprt .faq__item:nth-child(10) .faq__a { max-width: 70.1rem; }
.faq--mtprt .faq__item:nth-child(11) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(12) .faq__a { max-width: 62.3rem; }
.faq--mtprt .faq__item:nth-child(13) .faq__a { max-width: 67.7rem; }
.faq--mtprt .faq__item:nth-child(14) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(5) .faq__a { max-width: 75.5rem; }
.faq--mtprt .faq__item:nth-child(6) .faq__a { max-width: 66.5rem; }
.advantages--mtprt .advantage-card:nth-child(1) .advantage-card__text { max-width: 45.7rem; }
.advantages--mtprt .advantage-card:nth-child(3) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtprt .advantage-card:nth-child(3) .advantage-card__title { max-width: 43.0rem; }
.advantages--mtprt .advantage-card:nth-child(6) .advantage-card__text { max-width: 48.5rem; }
.advantages--mtprt .advantage-card:nth-child(2) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtprt .advantage-card:nth-child(2) .advantage-card__title { max-width: 43.1rem; }
.advantages--mtprt .advantage-card:nth-child(7) .advantage-card__text { max-width: 46.8rem; }
.advantages--mtprt .advantage-card:nth-child(8) .advantage-card__title { max-width: 44.1rem; }
.page-mtprt .trust .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtprt .outsource .out-card:nth-child(1) .out-card__text { max-width: 47.0rem; }
.page-mtprt .outsource .out-card:nth-child(1) .out-card__title { max-width: 38.1rem; }
.servprog--mtprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.servprog--mtprt .servprog__item:nth-child(3) .servprog__item-text { max-width: 72.5rem; }
.servprog--mtprt .servprog__item:nth-child(4) .servprog__item-text { max-width: 71.1rem; }
.page-mtprt .dgsteps .dgstep:nth-child(1) .dgstep__text { max-width: 67.9rem; }
.page-mtprt .dgsteps .dgstep:nth-child(4) .dgstep__text { max-width: 69.0rem; }
.page-mtprt .dgsteps .dgstep:nth-child(2) .dgstep__text { max-width: 70.0rem; }
.page-mtprt .dgsteps .dgstep:nth-child(5) .dgstep__text { max-width: 69.6rem; }
.page-mtprt .dgsteps .dgstep:nth-child(3) .dgstep__text { max-width: 69.6rem; }
.servprog--mtprt .servprog__foot-text { max-width: 89.7rem; }
.page-mtprt .trust .swiper-slide[data-i="2"] .trust-slide__text { max-width: 79.5rem; }
.page-mtprt .trust .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtprt .trust .swiper-slide[data-i="4"] .trust-slide__text { max-width: 80.5rem; }
.repair--mtprt .repair__title { text-transform: uppercase; max-width: 132rem; }
.page-mtprt .experts__alert-text { max-width: 63.6rem; }
.page-mtprt .experts__alert-title { font-size: 2.1rem; line-height: 2.52rem; }
.page-mtprt .experts__alert-text { font-size: 1.8rem; line-height: 2.16rem; }
.repair--mtprt .repair-card { min-height: 0; }
.page-mtprt .dgstep { min-height: 0; padding: 2rem 2rem 1.8rem; }
.page-mtprt .dgsteps__grid {
  grid-template-rows: minmax(32rem, auto) minmax(31.9rem, auto) minmax(31.9rem, auto);
  margin-top: 1rem;
}
.page-mtprt .dgstep__title { margin-top: 1.4rem; }
.page-mtprt .dgstep__text { margin: 2.2rem 0 0; }
.page-mtprt .dgstep__text + .dgstep__text { margin-top: 1rem; }
/* ширины текстовых фреймов макета */
.repair--mtprt .repair-card:nth-child(2) .repair-card__text { max-width: 66.2rem; }
.repair--mtprt .repair-card:nth-child(7) .repair-card__text { max-width: 75.5rem; }
.repair--mtprt .repair-card:nth-child(8) .repair-card__text { max-width: 68.3rem; }
.faq--mtprt .faq__item:nth-child(3) . { max-width: 57.8rem; }
.faq--mtprt .faq__item:nth-child(3) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(4) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(8) .faq__a { max-width: 73.6rem; }
.faq--mtprt .faq__item:nth-child(11) .faq__a { max-width: 76.4rem; }
.faq--mtprt .faq__item:nth-child(5) .faq__a { max-width: 74.2rem; }
.page-mtprt .experts .experts__alert-text { max-width: 64.7rem; }
.advantages--mtprt .advantage-card:nth-child(9) .advantage-card__text { max-width: 45.0rem; }
.advantages--mtprt .advantage-card:nth-child(9) .advantage-card__title { max-width: 38.7rem; }
.page-mtprt .outsource .out-card:nth-child(1) .out-card__text { max-width: 48.5rem; }
.page-mtprt .outsource .out-card:nth-child(1) .out-card__title { max-width: 41.8rem; }
.servprog--mtprt .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.servprog--mtprt .servprog__item:nth-child(3) .servprog__item-text { max-width: 68.0rem; }
.servprog--mtprt .servprog__item:nth-child(4) .servprog__item-text { max-width: 68.1rem; }
.servprog--mtprt .servprog__foot-text { max-width: 86.2rem; }
.page-mtprt .dgsteps .dgstep:nth-child(4) .dgstep__text { max-width: 66.4rem; }
.page-mtprt .dgsteps .dgstep:nth-child(6) .dgstep__text { max-width: 66.4rem; }
.page-mtprt .trust .swiper-slide[data-i="4"] .trust-slide__text { max-width: 92.6rem; }
/* текст-фрейм макета 488 шире карточки — отдаём 18px вправо */
.page-mtprt .outsource .swiper-slide[data-i="3"] .out-card__text { max-width: 48.8rem; margin-right: -1.8rem; }

/* page-dgkoz: сверка с макетом — ширины фреймов, баннеры у низа, тёмная «Результаты», 4×2 марок */
.repair--dgkoz .repair-card:nth-child(1) .repair-card__text { max-width: 75.3rem; }
.repair--dgkoz .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.repair--dgkoz .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--dgkoz .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--dgkoz .repair-card:nth-child(5) .repair-card__text { max-width: 75.5rem; }
.repair--dgkoz .repair-card:nth-child(6) .repair-card__text { max-width: 71.1rem; }
.repair--dgkoz .repair-card:nth-child(7) .repair-card__text { max-width: 72.1rem; }
.repair--dgkoz .repair-card:nth-child(8) .repair-card__text { max-width: 72.3rem; }
.page-dgkoz #prog-mesyac .servprog__col-text p:nth-child(1) { max-width: 70.0rem; }
.page-dgkoz #prog-mesyac .servprog__col-text p:nth-child(2) { max-width: 67.2rem; }
.page-dgkoz #prog-mesyac .servprog__foot-text { max-width: 86.2rem; }
.page-dgkoz #prog-247 .servprog__col-text p:nth-child(1) { max-width: 63.7rem; }
.page-dgkoz #prog-247 .servprog__col-text p:nth-child(2) { max-width: 68.8rem; }
.page-dgkoz .trust-slide { justify-content: flex-end; }
.page-dgkoz .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-dgkoz .swiper-slide[data-i="2"] .trust-slide__text { max-width: 93.3rem; }
.page-dgkoz .swiper-slide[data-i="3"] .trust-slide__text { max-width: 75.8rem; }
.page-dgkoz .swiper-slide[data-i="4"] .trust-slide__text { max-width: 73.9rem; }
.page-dgkoz .outsource .swiper-slide[data-i="4"] .out-card__title { max-width: 44.2rem; }
.page-dgkoz .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 44.8rem; margin-right: -2rem; }
.page-dgkoz .outsource .swiper-slide[data-i="5"] .out-card__title { max-width: 50.4rem; }
.page-dgkoz .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 50.5rem; margin-right: -2rem; }
.repair--dgkoz .repair-card--wide { background: #231F20; color: var(--c-white); }
.repair--dgkoz .repair-card--wide .repair-card__title { color: var(--c-accent); }
.repair--dgkoz .repair-card--wide .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--dgkoz .repair-card--wide .repair-card__text::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-dgkoz .servprog__foot { gap: 1rem; }
.page-dgkoz .servprog__brands { grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem; }

/* page-dgprt: сверка с макетом — ширины фреймов, баннеры у низа, тёмная «Результаты», 4×2 марок */
.repair--dgprt .repair-card:nth-child(1) .repair-card__text { max-width: 75.3rem; }
.repair--dgprt .repair-card:nth-child(2) .repair-card__text { max-width: 73.8rem; }
.repair--dgprt .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--dgprt .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--dgprt .repair-card:nth-child(5) .repair-card__text { max-width: 75.5rem; }
.repair--dgprt .repair-card:nth-child(6) .repair-card__text { max-width: 71.1rem; }
.repair--dgprt .repair-card:nth-child(7) .repair-card__text { max-width: 72.1rem; }
.repair--dgprt .repair-card:nth-child(8) .repair-card__text { max-width: 72.3rem; }
.repair--dgprt .repair-card:nth-child(9) .repair-card__text { max-width: 72.1rem; }
.repair--dgprt .repair-card:nth-child(10) .repair-card__text { max-width: 64.2rem; }
.page-dgprt #prog-mesyac .servprog__col-text p:nth-child(1) { max-width: 70.0rem; }
.page-dgprt #prog-mesyac .servprog__col-text p:nth-child(2) { max-width: 67.2rem; }
.page-dgprt #prog-mesyac .servprog__foot-text { max-width: 86.2rem; }
.page-dgprt #prog-247 .servprog__col-text p:nth-child(1) { max-width: 63.7rem; }
.page-dgprt #prog-247 .servprog__col-text p:nth-child(2) { max-width: 68.8rem; }
.page-dgprt #prog-247 .servprog__foot-text { max-width: 113.8rem; }
.page-dgprt .trust-slide { justify-content: flex-end; }
.page-dgprt .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-dgprt .swiper-slide[data-i="2"] .trust-slide__text { max-width: 92.2rem; }
.page-dgprt .swiper-slide[data-i="3"] .trust-slide__text { max-width: 75.8rem; }
.page-dgprt .swiper-slide[data-i="4"] .trust-slide__text { max-width: 82.1rem; }
.page-dgprt .outsource .swiper-slide[data-i="4"] .out-card__title { max-width: 44.2rem; }
.page-dgprt .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 48.5rem; margin-right: -2rem; }
.page-dgprt .outsource .swiper-slide[data-i="5"] .out-card__title { max-width: 50.4rem; }
.page-dgprt .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 50.5rem; margin-right: -2rem; }
.repair--dgprt .repair-card--wide { background: #231F20; color: var(--c-white); }
.repair--dgprt .repair-card--wide .repair-card__title { color: var(--c-accent); }
.repair--dgprt .repair-card--wide .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--dgprt .repair-card--wide .repair-card__text::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-dgprt .servprog__foot { gap: 1rem; }
.page-dgprt .servprog__brands { grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem; }
.page-dgprt #prog-mesyac .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-dgprt #prog-mesyac .servprog__item:nth-child(3) .servprog__item-text { max-width: 64.0rem; }
.page-dgprt #prog-mesyac .servprog__item:nth-child(4) .servprog__item-text { max-width: 55.3rem; }
.page-dgprt #prog-247 .servprog__item:nth-child(2) .servprog__item-text { max-width: 62.9rem; }
.page-dgprt #prog-247 .servprog__item:nth-child(3) .servprog__item-text { max-width: 64.0rem; }
.page-dgprt #prog-247 .servprog__item:nth-child(4) .servprog__item-text { max-width: 72.5rem; }
.page-dgprt #prog-247 .servprog__item:nth-child(5) .servprog__item-text { max-width: 55.6rem; }
.repair--dgprt .repair-card:nth-child(10) .repair-card__text { max-width: 73.1rem; }
/* шаги диагностики: текст-фреймы макета на всю ширину карточки, переносы жёсткие */
.page-dgmst .dgstep__text, .page-dgkoz .dgstep__text, .page-dgprt .dgstep__text { max-width: none; }
/* портальные: «Результаты» — тёмная карточка в сетке с маркерами */
.repair--dgprt .repair-card--dark { background: #231F20; color: var(--c-white); }
.repair--dgprt .repair-card--dark .repair-card__title { color: var(--c-accent); }
.repair--dgprt .repair-card--dark .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--dgprt .repair-card--dark .repair-card__text::before { content: ""; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.hub-services--mt .tile:nth-child(1) .tile__text { max-width: 71.7rem; }
.hub-services--mt .tile:nth-child(2) .tile__text { max-width: 72.6rem; }
.hub-services--mt .tile:nth-child(3) .tile__text { max-width: 73.8rem; }
.hub-services--mt .tile:nth-child(4) .tile__text { max-width: 66.4rem; }

/* page-mtmst: сверка с макетом — ширины фреймов, баннеры у низа, тёмная «Результаты», 4×2 марок */
.repair--mtmst .repair-card:nth-child(1) .repair-card__text { max-width: 73.8rem; }
.repair--mtmst .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.repair--mtmst .repair-card:nth-child(3) .repair-card__text { max-width: 74.3rem; }
.repair--mtmst .repair-card:nth-child(4) .repair-card__text { max-width: 75.5rem; }
.repair--mtmst .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--mtmst .repair-card:nth-child(6) .repair-card__text { max-width: 75.5rem; }
.page-mtmst #prog-mesyac .servprog__col-text p:nth-child(1) { max-width: 70.0rem; }
.page-mtmst #prog-mesyac .servprog__col-text p:nth-child(2) { max-width: 72.6rem; }
.page-mtmst #prog-mesyac .servprog__foot-text { max-width: 89.7rem; }
.page-mtmst #prog-247 .servprog__col-text p:nth-child(1) { max-width: 73.4rem; }
.page-mtmst #prog-247 .servprog__col-text p:nth-child(2) { max-width: 71.8rem; }
.page-mtmst #prog-247 .servprog__foot-text { max-width: 82.4rem; }
.page-mtmst .trust-slide { justify-content: flex-end; }
.page-mtmst .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtmst .swiper-slide[data-i="2"] .trust-slide__text { max-width: 79.5rem; }
.page-mtmst .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtmst .swiper-slide[data-i="4"] .trust-slide__text { max-width: 80.5rem; }
.page-mtmst .outsource .swiper-slide[data-i="4"] .out-card__title { max-width: 44.2rem; }
.page-mtmst .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 48.5rem; margin-right: -2rem; }
.page-mtmst .outsource .swiper-slide[data-i="5"] .out-card__title { max-width: 32.0rem; }
.page-mtmst .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 50.5rem; margin-right: -2rem; }
.repair--mtmst .repair-card--wide { background: #231F20; color: var(--c-white); }
.repair--mtmst .repair-card--wide .repair-card__title { color: var(--c-accent); }
.repair--mtmst .repair-card--wide .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--mtmst .repair-card--wide .repair-card__text::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtmst .experts__text--dot { position: relative; padding-left: 2.3rem; }
.page-mtmst .experts__text--dot::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtmst .servprog__foot { gap: 1rem; }
.page-mtmst .servprog__brands { grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem; }
.page-mtmst #prog-mesyac .servprog__item:nth-child(2) .servprog__item-text { max-width: 74.5rem; }
.page-mtmst #prog-mesyac .servprog__item:nth-child(3) .servprog__item-text { max-width: 72.7rem; }
.page-mtmst #prog-mesyac .servprog__item:nth-child(4) .servprog__item-text { max-width: 74.5rem; }
.page-mtmst #prog-247 .servprog__item:nth-child(2) .servprog__item-text { max-width: 68.7rem; }
.page-mtmst #prog-247 .servprog__item:nth-child(3) .servprog__item-text { max-width: 70.0rem; }
.page-mtmst #prog-247 .servprog__item:nth-child(4) .servprog__item-text { max-width: 75.9rem; }
.page-mtmst .dgstep__text { max-width: none; }
.repair--mtmst .repair-card--wide .repair-card__text { max-width: 136.8rem; }
/* монтаж: фото в 6-й клетке сетки шагов (макет 800x295) */
.page-mtmst .dgsteps__photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 1rem; align-self: stretch; }

/* шахматка макета: серые только 2-я, 3-я и (кроме монтажа) 6-я карточка шагов */
.page-dgmst .dgstep:nth-child(2), .page-dgmst .dgstep:nth-child(3), .page-dgmst .dgstep:nth-child(6),
.page-dgkoz .dgstep:nth-child(2), .page-dgkoz .dgstep:nth-child(3), .page-dgkoz .dgstep:nth-child(6),
.page-dgprt .dgstep:nth-child(2), .page-dgprt .dgstep:nth-child(3), .page-dgprt .dgstep:nth-child(6),
.page-mtmst .dgstep:nth-child(2), .page-mtmst .dgstep:nth-child(3) { background: var(--c-bg-soft); }
/* ширины текстовых фреймов шагов по макету (перекрывают сброс max-width:none выше) */
.page-dgmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 61.1rem; }
.page-dgmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 73.5rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(2) { max-width: 67.0rem; }
.page-dgmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 70.6rem; }
.page-dgmst .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgmst .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-dgkoz .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 61.1rem; }
.page-dgkoz .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 73.5rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgkoz .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgkoz .dgstep:nth-child(2) .dgstep__text:nth-of-type(2) { max-width: 67.0rem; }
.page-dgkoz .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgkoz .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 70.6rem; }
.page-dgkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgkoz .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgkoz .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-dgprt .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 72.7rem; }
.page-dgprt .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-dgprt .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 73.5rem; }
.page-dgprt .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 67.0rem; }
.page-dgprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(2) { max-width: 67.0rem; }
.page-dgprt .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgprt .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 70.6rem; }
.page-dgprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgprt .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgprt .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-mtmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 67.9rem; }
.page-mtmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-mtmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 69.0rem; }
.page-mtmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-mtmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 70.0rem; }
.page-mtmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 68.8rem; }
.page-mtmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
/* Chrome при ширине фрейма даёт лишнюю строку — расширяем абзац внутри карточки */
.page-mtmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 71.0rem; }
.page-mtmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 71.6rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 75.3rem; }
.page-dgmst .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 74.5rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 75.3rem; }
.page-dgkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 74.5rem; }
.page-dgprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 68.4rem; }
.page-dgprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 74.5rem; }

/* page-mtkoz: сверка с макетом — ширины фреймов, баннеры у низа, тёмная «Результаты», 4×2 марок */
.repair--mtkoz .repair-card:nth-child(1) .repair-card__text { max-width: 73.8rem; }
.repair--mtkoz .repair-card:nth-child(2) .repair-card__text { max-width: 77.9rem; }
.repair--mtkoz .repair-card:nth-child(3) .repair-card__text { max-width: 75.5rem; }
.repair--mtkoz .repair-card:nth-child(4) .repair-card__text { max-width: 74.3rem; }
.repair--mtkoz .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--mtkoz .repair-card:nth-child(6) .repair-card__text { max-width: 75.5rem; }
.repair--mtkoz .repair-card:nth-child(7) .repair-card__text { max-width: 68.9rem; }
/* фрейм 689 + отступ под маркер 23 — иначе «подготавливается» уходит на вторую строку */
.repair--mtkoz .repair-card:nth-child(8) .repair-card__text { max-width: 74rem; }
.page-mtkoz #prog-mesyac .servprog__col-text p:nth-child(1) { max-width: 70.0rem; }
.page-mtkoz #prog-mesyac .servprog__col-text p:nth-child(2) { max-width: 68.2rem; }
.page-mtkoz #prog-mesyac .servprog__foot-text { max-width: 68.1rem; }
.page-mtkoz #prog-247 .servprog__col-text p:nth-child(1) { max-width: 73.4rem; }
.page-mtkoz #prog-247 .servprog__col-text p:nth-child(2) { max-width: 66.1rem; }
.page-mtkoz #prog-247 .servprog__foot-text { max-width: 82.4rem; }
.page-mtkoz .trust-slide { justify-content: flex-end; }
.page-mtkoz .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtkoz .swiper-slide[data-i="2"] .trust-slide__text { max-width: 88.6rem; }
.page-mtkoz .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtkoz .swiper-slide[data-i="4"] .trust-slide__text { max-width: 78.5rem; }
.page-mtkoz .outsource .swiper-slide[data-i="4"] .out-card__title { max-width: 44.2rem; }
.page-mtkoz .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 48.5rem; margin-right: -2rem; }
.page-mtkoz .outsource .swiper-slide[data-i="5"] .out-card__title { max-width: 40.9rem; }
.page-mtkoz .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 44.0rem; margin-right: -2rem; }
.repair--mtkoz .repair-card--wide { background: #231F20; color: var(--c-white); }
.repair--mtkoz .repair-card--wide .repair-card__title { color: var(--c-accent); }
.repair--mtkoz .repair-card--wide .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--mtkoz .repair-card--wide .repair-card__text::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtkoz .experts__text--dot { position: relative; padding-left: 2.3rem; }
.page-mtkoz .experts__text--dot::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtkoz .servprog__foot { gap: 1rem; }
.page-mtkoz .servprog__brands { grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem; }
.page-mtkoz #prog-mesyac .servprog__item:nth-child(2) .servprog__item-text { max-width: 63.0rem; }
.page-mtkoz #prog-mesyac .servprog__item:nth-child(3) .servprog__item-text { max-width: 72.7rem; }
.page-mtkoz #prog-mesyac .servprog__item:nth-child(4) .servprog__item-text { max-width: 69.0rem; }
.page-mtkoz #prog-247 .servprog__item:nth-child(2) .servprog__item-text { max-width: 68.7rem; }
.page-mtkoz #prog-247 .servprog__item:nth-child(3) .servprog__item-text { max-width: 70.0rem; }
.page-mtkoz #prog-247 .servprog__item:nth-child(4) .servprog__item-text { max-width: 68.1rem; }
/* монтаж козловых: «Завершение работ» — тёмная карточка с маркерами */
.repair--mtkoz .repair-card--dark { background: #231F20; color: var(--c-white); }
.repair--mtkoz .repair-card--dark .repair-card__title { color: var(--c-accent); }
.repair--mtkoz .repair-card--dark .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--mtkoz .repair-card--dark .repair-card__text::before { content: ""; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtkoz .other__lead { max-width: 103.5rem; }
.repair--mtkoz .repair-card--dark .repair-card__text { max-width: 73.8rem; }
.page-mtkoz .dgstep:nth-child(2), .page-mtkoz .dgstep:nth-child(3), .page-mtkoz .dgstep:nth-child(6) { background: var(--c-bg-soft); }
.page-mtkoz .dgstep__text, .page-mtmst .dgstep__text { max-width: none; margin-right: 0; }
/* обводка вместо заливки у прозрачных карточек шагов (макет: stroke #e6e6e6, радиус 15) */
.page-dgmst .dgstep { border: 1px solid #e6e6e6; border-radius: 1.5rem; }
.page-dgmst .dgstep:nth-child(2), .page-dgmst .dgstep:nth-child(3), .page-dgmst .dgstep:nth-child(6) { border-color: transparent; }
.page-dgkoz .dgstep { border: 1px solid #e6e6e6; border-radius: 1.5rem; }
.page-dgkoz .dgstep:nth-child(2), .page-dgkoz .dgstep:nth-child(3), .page-dgkoz .dgstep:nth-child(6) { border-color: transparent; }
.page-dgprt .dgstep { border: 1px solid #e6e6e6; border-radius: 1.5rem; }
.page-dgprt .dgstep:nth-child(2), .page-dgprt .dgstep:nth-child(3), .page-dgprt .dgstep:nth-child(6) { border-color: transparent; }
.page-mtmst .dgstep { border: 1px solid #e6e6e6; border-radius: 1.5rem; }
.page-mtmst .dgstep:nth-child(2), .page-mtmst .dgstep:nth-child(3), .page-mtmst .dgstep:nth-child(6) { border-color: transparent; }
.page-mtkoz .dgstep { border: 1px solid #e6e6e6; border-radius: 1.5rem; }
/* этапы монтажа/диагностики: как на портальных — сетка на 40 от заголовка, низ карточки 18,
   высоту ряда задаёт сетка (320/295 по макету), а не min-height карточки */
.page-mtmst .dgsteps__grid, .page-mtkoz .dgsteps__grid,
.page-dgmst .dgsteps__grid, .page-dgkoz .dgsteps__grid, .page-dgprt .dgsteps__grid { margin-top: 1rem; }
.page-mtmst .dgstep, .page-mtkoz .dgstep,
.page-dgmst .dgstep, .page-dgkoz .dgstep, .page-dgprt .dgstep { min-height: 0; padding-bottom: 1.8rem; }
.page-mtkoz .dgsteps__grid { grid-template-rows: minmax(29.5rem, auto) minmax(29.5rem, auto) minmax(29.5rem, auto); }
.page-dgmst .dgsteps__grid, .page-dgkoz .dgsteps__grid, .page-dgprt .dgsteps__grid {
  grid-template-rows: minmax(32rem, auto) minmax(32rem, auto) minmax(29.5rem, auto);
}
.page-mtkoz .dgstep:nth-child(2), .page-mtkoz .dgstep:nth-child(3), .page-mtkoz .dgstep:nth-child(6) { border-color: transparent; }
.page-dgmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 61.1rem; }
.page-dgmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 73.5rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(2) { max-width: 67.0rem; }
.page-dgmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 70.6rem; }
.page-dgmst .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgmst .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-dgkoz .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 61.1rem; }
.page-dgkoz .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 73.5rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgkoz .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgkoz .dgstep:nth-child(2) .dgstep__text:nth-of-type(2) { max-width: 67.0rem; }
.page-dgkoz .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgkoz .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 70.6rem; }
.page-dgkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgkoz .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgkoz .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-dgprt .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 72.7rem; }
.page-dgprt .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-dgprt .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 73.5rem; }
.page-dgprt .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 67.0rem; }
.page-dgprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(2) { max-width: 67.0rem; }
.page-dgprt .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgprt .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 70.6rem; }
.page-dgprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 72.5rem; }
.page-dgprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-dgprt .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-dgprt .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-mtmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 67.9rem; }
.page-mtmst .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-mtmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 69.0rem; }
.page-mtmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-mtmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 70.0rem; }
.page-mtmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(2) { max-width: 68.8rem; }
.page-mtmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtmst .dgstep:nth-child(3) .dgstep__text:nth-of-type(2) { max-width: 64.9rem; }
.page-mtkoz .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 67.9rem; }
.page-mtkoz .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-mtkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 58.6rem; }
.page-mtkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 73.5rem; }
.page-mtkoz .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 70.0rem; }
.page-mtkoz .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtkoz .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 70.5rem; }
.page-mtkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 70.5rem; }
/* Chrome при ширине фрейма даёт лишнюю строку — расширяем абзац внутри карточки */
.page-mtmst .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 71.0rem; }
.page-mtmst .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 71.6rem; }
.page-dgmst .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 75.3rem; }
.page-dgmst .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 74.5rem; }
.page-dgkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 75.3rem; }
.page-dgkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 74.5rem; }
.page-dgprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 68.4rem; }
.page-dgprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 74.5rem; }
/* Chrome при ширине фрейма даёт лишнюю строку — расширяем абзац внутри карточки */
.page-mtkoz .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 72.1rem; }
.page-mtkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 60.6rem; }
.page-mtkoz .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 71.5rem; }
/* абзац шире карточки: в макете текст-фрейм тоже выходит за плашку на 17px */
.page-mtkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 77.2rem; }
.page-mtkoz .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { margin-right: -1.7rem; }

/* page-mtprt: сверка с макетом — ширины фреймов, баннеры у низа, тёмная «Результаты», 4×2 марок */
.repair--mtprt .repair-card:nth-child(1) .repair-card__text { max-width: 73.8rem; }
.repair--mtprt .repair-card:nth-child(2) .repair-card__text { max-width: 74.3rem; }
.repair--mtprt .repair-card:nth-child(3) .repair-card__text { max-width: 74.3rem; }
.repair--mtprt .repair-card:nth-child(4) .repair-card__text { max-width: 75.5rem; }
.repair--mtprt .repair-card:nth-child(5) .repair-card__text { max-width: 71.1rem; }
.repair--mtprt .repair-card:nth-child(6) .repair-card__text { max-width: 74.0rem; }
.repair--mtprt .repair-card:nth-child(7) .repair-card__text { max-width: 74.0rem; }
.page-mtprt #prog-mesyac .servprog__col-text p:nth-child(1) { max-width: 74.9rem; }
.page-mtprt #prog-mesyac .servprog__col-text p:nth-child(2) { max-width: 72.6rem; }
.page-mtprt #prog-mesyac .servprog__foot-text { max-width: 89.7rem; }
.page-mtprt #prog-247 .servprog__col-text p:nth-child(1) { max-width: 73.4rem; }
.page-mtprt #prog-247 .servprog__col-text p:nth-child(2) { max-width: 67.4rem; }
.page-mtprt #prog-247 .servprog__foot-text { max-width: 82.4rem; }
.page-mtprt .trust-slide { justify-content: flex-end; }
.page-mtprt .swiper-slide[data-i="1"] .trust-slide__text { max-width: 100.3rem; }
.page-mtprt .swiper-slide[data-i="2"] .trust-slide__text { max-width: 79.5rem; }
.page-mtprt .swiper-slide[data-i="3"] .trust-slide__text { max-width: 81.6rem; }
.page-mtprt .swiper-slide[data-i="4"] .trust-slide__text { max-width: 92.6rem; }
.page-mtprt .outsource .swiper-slide[data-i="4"] .out-card__title { max-width: 40.1rem; }
.page-mtprt .outsource .swiper-slide[data-i="4"] .out-card__text { max-width: 48.5rem; margin-right: -2rem; }
.page-mtprt .outsource .swiper-slide[data-i="5"] .out-card__title { max-width: 34.8rem; }
.page-mtprt .outsource .swiper-slide[data-i="5"] .out-card__text { max-width: 47.5rem; margin-right: -2rem; }
.repair--mtprt .repair-card--wide { background: #231F20; color: var(--c-white); }
.repair--mtprt .repair-card--wide .repair-card__title { color: var(--c-accent); }
.repair--mtprt .repair-card--wide .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--mtprt .repair-card--wide .repair-card__text::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtprt .experts__text--dot { position: relative; padding-left: 2.3rem; }
.page-mtprt .experts__text--dot::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtprt .servprog__foot { gap: 1rem; }
.page-mtprt .servprog__brands { grid-template-columns: 14.8rem 14.8rem 10.6rem 14.8rem; width: 58rem; }
.page-mtprt #prog-mesyac .servprog__item:nth-child(2) .servprog__item-text { max-width: 69.0rem; }
.page-mtprt #prog-mesyac .servprog__item:nth-child(3) .servprog__item-text { max-width: 72.7rem; }
.page-mtprt #prog-mesyac .servprog__item:nth-child(4) .servprog__item-text { max-width: 74.5rem; }
.page-mtprt #prog-247 .servprog__item:nth-child(2) .servprog__item-text { max-width: 68.7rem; }
.page-mtprt #prog-247 .servprog__item:nth-child(3) .servprog__item-text { max-width: 67.0rem; }
.page-mtprt #prog-247 .servprog__item:nth-child(4) .servprog__item-text { max-width: 75.9rem; }
/* монтаж портальных: серые только 2-я и 3-я карточки шагов; тёмная «Сдача оборудования» */
.page-mtprt .dgstep { border: 1px solid #e6e6e6; border-radius: 1.5rem; }
.page-mtprt .dgstep:nth-child(2), .page-mtprt .dgstep:nth-child(3) { background: var(--c-bg-soft); border-color: transparent; }
.repair--mtprt .repair-card--dark { background: #231F20; color: var(--c-white); }
.repair--mtprt .repair-card--dark .repair-card__title { color: var(--c-accent); }
.repair--mtprt .repair-card--dark .repair-card__text { color: var(--c-white); position: relative; padding-left: 2.3rem; }
.repair--mtprt .repair-card--dark .repair-card__text::before { content: ''; position: absolute; left: 0; top: 0.45rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--c-accent); background: radial-gradient(circle, var(--c-accent) 0 0.45rem, transparent 0.45rem); }
.page-mtprt .dgstep__text { max-width: none; margin-right: 0; }
.page-mtprt .dgstep:nth-child(1) .dgstep__text:nth-of-type(1) { max-width: 67.9rem; }
.page-mtprt .dgstep:nth-child(1) .dgstep__text:nth-of-type(2) { max-width: 67.9rem; }
.page-mtprt .dgstep:nth-child(4) .dgstep__text:nth-of-type(1) { max-width: 66.4rem; }
.page-mtprt .dgstep:nth-child(4) .dgstep__text:nth-of-type(2) { max-width: 66.1rem; }
.page-mtprt .dgstep:nth-child(2) .dgstep__text:nth-of-type(1) { max-width: 70.0rem; }
.page-mtprt .dgstep:nth-child(5) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtprt .dgstep:nth-child(3) .dgstep__text:nth-of-type(1) { max-width: 69.6rem; }
.page-mtprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(1) { max-width: 66.4rem; }
.page-mtprt .dgstep:nth-child(6) .dgstep__text:nth-of-type(2) { max-width: 66.1rem; }
.page-mtprt .other__lead { max-width: 103.6rem; }
/* портальные: «Konecranes Gottwald» в макете занимает две колонки сетки марок */
.page-mtprt .servprog__brand:nth-child(2) { grid-column: span 2; }

.form__note {
  margin: 1.6rem 0 0;
  font-size: 1.6rem;
  line-height: 1.4;
  color: var(--c-green);
}
.form__note.is-error { color: var(--c-accent); }
.consult__box .form__note,
.diag__form .form__note { color: #1e9e0e; }
.consult__box .form__note.is-error,
.diag__form .form__note.is-error { color: var(--c-accent); }

.modal__box--thanks { max-width: 56rem; }
.modal__box--thanks .modal__text { margin-bottom: 0; }
