/* =========================================================
   IMSTECH — базовые стили (по дизайн-системе Figma «IMSTECH Design System»)
   Токены = переменные Figma. Без обводок (кроме фокуса), без hover-анимаций.
   ========================================================= */

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/manrope-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;
}

:root {
  /* цвета */
  --text: #1b2430;
  --text2: #55606d;
  --muted: #8a95a3;
  --text-inverse: #ffffff;
  --navy: #064872;
  --blue: #1e6fd9;
  --blue-100: #d6e2f1;
  --tint: #eaf2fc;
  --tint2: #f6f9fd;
  --line: #e2e7ee;
  --line2: #edf1f6;
  --bg: #f3f5f8;
  --sheet: #ffffff;
  --bg-inverse: #0d2a44;
  --bg-map: #e9eef4;
  --bg-success: #e8f6ee;
  --green: #1d9a5b;
  --red: #ec1d24;
  --star: #f4a500;
  --wa: #25c261;
  --tg: #2aa1df;
  --grad: linear-gradient(160deg, #2a7ee6 0%, #0b4f8f 70.7%);

  /* радиусы */
  --r: 20px;
  --r-lg: 16px;
  --r-md: 12px;
  --r-sm: 6px;
  --r-xs: 4px;
  --r-full: 999px;

  /* отступы */
  --space-xs: 6px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 20px;
  --space-2xl: 24px;
  --space-3xl: 32px;
  --space-4xl: 48px;
  --gutter: 32px;
  --sec-gap: 100px;

  /* размеры контролов */
  --ctl-sm: 42px;
  --ctl-md: 48px;
  --ctl-lg: 56px;
  --ico-btn: 46px;
  --icon-box: 52px;

  /* тени (только метки карты и плавающие кнопки) */
  --shadow-pin: 0 6px 14px rgba(6, 71, 115, 0.14);
  --shadow-float: 0 8px 20px rgba(6, 71, 115, 0.18);
}

@media (max-width: 1023px) {
  :root { --gutter: 24px; --sec-gap: 80px; }
}
@media (max-width: 767px) {
  :root { --gutter: 16px; --sec-gap: 64px; }
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
h1, :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])), :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), :is(h4, :where([data-seo-original-heading="h4"])):not(:where(h4[data-seo-original-heading])), :is(h5, :where([data-seo-original-heading="h5"])):not(:where(h5[data-seo-original-heading])), p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea {
  font: inherit;
  color: inherit;
  margin: 0;
  border: 0;
  background: none;
}
button { cursor: pointer; padding: 0; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.field__control:focus-visible { outline-offset: 0; }
/* поиск подсвечивается целиком, по контуру «таблетки», как поля форм — не прямоугольник вокруг текста внутри */
.search__input:focus-visible { outline: none; }
.search:focus-within { outline: 2px solid var(--blue); outline-offset: 0; }
[hidden] { display: none !important; }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- иконки (спрайт img/icons.svg) ---------- */
.ico {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  fill: none;
  color: currentColor;
}
.ico--13 { width: 13px; height: 13px; }
.ico--14 { width: 14px; height: 14px; }
.ico--15 { width: 15px; height: 15px; }
.ico--16 { width: 16px; height: 16px; }
.ico--18 { width: 18px; height: 18px; }
.ico--20 { width: 20px; height: 20px; }
.ico--22 { width: 22px; height: 22px; }
.ico--rot90 { transform: rotate(90deg); }
.ico--rot-90 { transform: rotate(-90deg); }

/* ---------- типографика (текстовые стили Figma) ---------- */
.t-hero  { font-size: 46px; font-weight: 800; line-height: 1.05; letter-spacing: -0.025em; }
.t-h2    { font-size: 32px; font-weight: 800; line-height: 1.1;  letter-spacing: -0.01em; text-transform: uppercase; }
.t-h3    { font-size: 24px; font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; }
.t-h4    { font-size: 19px; font-weight: 800; line-height: 1.25; letter-spacing: -0.01em; }
.t-h5    { font-size: 16px; font-weight: 800; line-height: 1.25; }
.t-l     { font-size: 16px; line-height: 1.55; }
.t-m     { font-size: 15px; line-height: 1.55; }
.t-s     { font-size: 14px; line-height: 1.55; }
.t-s-semi{ font-size: 14px; font-weight: 600; line-height: 1.4; }
.t-s-bold{ font-size: 14px; font-weight: 700; line-height: 1.1; }
.t-cap   { font-size: 13px; line-height: 1.5; }
.t-cap-semi { font-size: 13px; font-weight: 600; line-height: 1.4; }
.t-cap12 { font-size: 12px; line-height: 1.35; }
.t-cap12-semi { font-size: 12px; font-weight: 600; line-height: 1.35; }
.t-num-l { font-size: 64px; font-weight: 800; line-height: 1; letter-spacing: -0.04em; }
.t-num-m { font-size: 26px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
.t-num-s { font-size: 22px; font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; }
.t-phone { font-size: 19px; font-weight: 800; line-height: 1.25; letter-spacing: -0.01em; }
.t-label { font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: 0.08em; text-transform: uppercase; }
.t-label11 { font-size: 11px; font-weight: 700; line-height: 1.2; letter-spacing: 0.05em; text-transform: uppercase; }

.c-text2 { color: var(--text2); }
.c-muted { color: var(--muted); }
.c-navy  { color: var(--navy); }

/* мобильный шаг вниз: Хиро→H3, H2→H3, H3→H4 */
@media (max-width: 767px) {
  .t-hero { font-size: 24px; line-height: 1.15; letter-spacing: -0.01em; }
  .t-h2   { font-size: 24px; line-height: 1.15; text-transform: none; }
  .t-h3   { font-size: 19px; line-height: 1.25; }
}

/* ---------- каркас ---------- */
.page {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 var(--gutter) 48px;
  display: flex;
  flex-direction: column;
  gap: var(--sec-gap);
}
@media (max-width: 767px) {
  .page { padding-top: 16px; }
}
.section { display: flex; flex-direction: column; }
.sheet { background: var(--sheet); border-radius: var(--r); }

/* Заголовок раздела: H2 слева, ссылка справа по нижней линии */
.section-head {
  display: flex;
  align-items: flex-end;
  gap: 24px;
}
.section-head__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.section-head__desc { max-width: 560px; color: var(--text2); }
.section-head__link { flex-shrink: 0; }
@media (max-width: 767px) {
  .section-head { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ---------- ссылка со стрелкой ---------- */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  color: var(--blue);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.link-arrow--13 { font-size: 13px; }

/* ---------- кнопки ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  height: var(--ctl-md);
  padding: 0 var(--space-2xl);
  border-radius: var(--r-full);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
  color: var(--text-inverse);
  background: var(--grad);
}
.btn--sm { height: var(--ctl-sm); padding: 0 var(--space-xl); font-size: 13px; }
.btn--lg { height: var(--ctl-lg); padding: 0 var(--space-3xl); font-size: 15px; }
.btn--soft { background: var(--tint); color: var(--navy); }
.btn--white { background: var(--sheet); color: var(--navy); }
.btn--block { width: 100%; }
.btn__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
}
.btn--white .btn__arrow { background: var(--navy); }

/* круглая иконочная кнопка */
.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--ico-btn);
  height: var(--ico-btn);
  border-radius: 50%;
  background: var(--tint);
  color: var(--navy);
  flex-shrink: 0;
}
.icon-btn--navy { background: var(--navy); color: #fff; }
.icon-btn--white { background: var(--sheet); color: var(--text); }
.icon-btn--42 { width: 42px; height: 42px; }
.icon-btn--40 { width: 40px; height: 40px; }
.icon-btn--34 { width: 34px; height: 34px; }
.icon-btn--44 { width: 44px; height: 44px; }

/* иконка в голубом квадрате */
.icon-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--icon-box);
  height: var(--icon-box);
  border-radius: var(--r-lg);
  background: var(--tint);
  color: var(--navy);
  flex-shrink: 0;
}
.icon-box--48 { width: 48px; height: 48px; border-radius: var(--r-md); }

/* вкладки / чипы */
.tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.tab {
  display: inline-flex;
  align-items: center;
  padding: 10px var(--space-lg);
  border-radius: var(--r-full);
  background: var(--blue-100);
  color: var(--text2);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.tab.is-active { background: var(--navy); color: var(--text-inverse); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex;
  align-items: center;
  padding: 9px var(--space-lg);
  border-radius: var(--r-full);
  background: var(--blue-100);
  color: var(--text2);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.chip.is-active { background: var(--navy); color: var(--text-inverse); }

/* бейджи */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--r-sm);
  background: var(--tint2);
  color: var(--text2);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
}
.badge--stock {
  background: var(--bg-success);
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.tag {
  display: inline-flex;
  padding: 3px 7px;
  border-radius: var(--r-xs);
  background: var(--tint);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  white-space: nowrap;
}

/* факт: число + подпись, верхняя линия */
.fact {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding: var(--space-md) var(--space-lg) 0 0;
  border-top: 1px solid var(--line);
  min-width: 0;
}
.fact__num { color: var(--navy); }
.fact__cap { color: var(--text2); }
.facts { display: flex; }
.facts > .fact { flex: 1 1 0; }

/* поля форм */
.field { display: flex; flex-direction: column; gap: var(--space-xs); min-width: 0; }
.field__label { font-size: 12px; font-weight: 600; line-height: 1.35; color: var(--text2); }
.field__control {
  display: flex;
  align-items: center;
  width: 100%;
  height: var(--ctl-md);
  padding: 0 var(--space-lg);
  border-radius: var(--r-md);
  background: var(--tint2);
  font-size: 15px;
  line-height: 1.55;
  color: var(--text);
}
.field__control--area { height: 96px; padding-top: var(--space-md); padding-bottom: var(--space-md); resize: none; }
.field__select { position: relative; }
.field__select .field__control { padding-right: 40px; appearance: none; -webkit-appearance: none; }
.field__select .ico { position: absolute; right: 16px; bottom: 16px; pointer-events: none; color: var(--text); }
.upload {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 14px var(--space-lg);
  border-radius: var(--r-md);
  background: var(--tint);
  color: var(--text2);
  font-size: 13px;
  line-height: 1.5;
  cursor: pointer;
}
.upload .ico { color: var(--navy); }
.checkbox { display: flex; align-items: flex-start; gap: var(--space-sm); cursor: pointer; }
.checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.checkbox__box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: var(--blue-100);   /* пустой квадратик виден на белой форме (152-ФЗ: согласие ставит сам посетитель) */
  color: #fff;
  flex-shrink: 0;
  margin-top: 1px;
}
.checkbox__box .ico { display: none; }
.checkbox input:checked + .checkbox__box { background: var(--navy); }
.checkbox input:checked + .checkbox__box .ico { display: block; }
.checkbox input:focus-visible + .checkbox__box { outline: 2px solid var(--blue); outline-offset: 2px; }
.checkbox__text { font-size: 12px; line-height: 1.35; color: var(--text2); }
.checkbox__text a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* соцкнопка-пилюля */
.social-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: var(--r-full);
  background: var(--tint);
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.social-pill--white { background: var(--sheet); }
.c-wa { color: var(--wa); }
.c-tg { color: var(--tg); }
.c-max { color: var(--blue); }
.c-yt { color: #ff0000; }

/* =========================================================
   ШАПКА
   ========================================================= */
.header { display: flex; flex-direction: column; }
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text2);
}
.topbar__menu { display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.topbar__contacts { display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.topbar__phone { font-weight: 600; line-height: 1.4; color: var(--text); }
.topbar__item { display: inline-flex; align-items: center; gap: 6px; }
.topbar__item .ico { color: var(--navy); }

.header__sheet {
  position: relative;
  background: var(--sheet);
  border-radius: var(--r);
  padding: 0 var(--space-2xl);
}
.header__row1 {
  display: flex;
  align-items: center;
  gap: 40px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line2);
}
.logo { display: flex; flex-direction: column; gap: 10px; width: 238px; flex-shrink: 0; }
.logo__img { width: 238px; height: 58px; }
.logo__tagline { font-size: 12px; line-height: 1.35; color: var(--muted); }

.search {
  display: flex;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  height: 48px;
  padding: 4px 4px 4px 20px;
  border-radius: var(--r-full);
  background: var(--tint2);
}
.search__input {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  font-size: 15px;
  line-height: 1.55;
  color: var(--text);
  background: none;
}
.header__contacts { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.header__phones { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.header__callback { display: inline-flex; align-items: center; gap: 6px; color: var(--navy); font-size: 13px; font-weight: 600; line-height: 1.4; white-space: nowrap; }
.header__burger { display: none; }
.header__phone-btn { display: none; }

.header__row2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
}
.header__nav { display: flex; align-items: center; gap: 14px; min-width: 0; }
.catalog-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  height: 44px;
  padding: 0 var(--space-2xl);
  border-radius: var(--r-full);
  background: var(--grad);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
  flex-shrink: 0;
}
.header__cats { display: flex; align-items: center; }
.header__cats a {
  display: inline-flex;
  padding: 12px 11px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--text2);
  white-space: nowrap;
}
.header__pick { display: inline-flex; align-items: center; gap: 8px; color: var(--navy); font-size: 14px; font-weight: 600; line-height: 1.2; white-space: nowrap; flex-shrink: 0; }

/* меню «Продукция» (раскрывается под шапкой) */
.products-menu {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 30;
  padding: 28px;
  background: var(--sheet);
  border-radius: var(--r);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 32px;
}
.products-menu.is-open { display: grid; }
.products-menu__col { display: flex; flex-direction: column; gap: 12px; }
.products-menu__col :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) { margin-bottom: 0; }
.products-menu__col a { font-size: 14px; line-height: 1.55; color: var(--text2); }
.products-menu__col a.products-menu__all { color: var(--blue); }

/* мобильное/планшетное меню */
.mobile-menu {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 30;
  background: var(--sheet);
  border-radius: var(--r);
  padding: 28px 24px 32px;
}
.mobile-menu.is-open { display: block; }
.mobile-menu__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; }
.mobile-menu__group-title { font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); padding: 8px 0 8px; }
.mobile-menu__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--text);
}
.mobile-menu__item .ico { color: var(--blue); }
.mobile-menu__list--products .mobile-menu__item { font-size: 14px; font-weight: 800; line-height: 1.4; }
.mobile-menu__contacts { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 24px; }
.mobile-menu__contacts .btn { margin-top: 6px; }
.mobile-menu__socials { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 10px; }

@media (max-width: 1023px) {
  .topbar { justify-content: flex-end; }
  .topbar__menu { display: none; }
  .header__sheet { padding: 0 20px; }
  .header__row1 { justify-content: space-between; gap: 16px; padding: 14px 0; }
  .logo { width: 178.5px; gap: 0; }
  .logo__img { width: 178.5px; height: 43.5px; }
  .logo__tagline { display: none; }
  .header__row1 .search { display: none; }
  .header__contacts { gap: 24px; margin-left: auto; }
  .header__burger { display: inline-flex; }
  .header__row2 { gap: 12px; }
  .header__cats, .header__pick { display: none; }
  .header__row2 .search { display: flex; }
  .products-menu { grid-template-columns: 1fr 1fr; }
  .mobile-menu__contacts .t-phone, .mobile-menu__contacts .t-cap { display: none; }
}
@media (min-width: 1024px) {
  .header__row2 .search { display: none; }
  .mobile-menu { display: none !important; }
}
@media (max-width: 767px) {
  .topbar { display: none; }
  .header__sheet { padding: 0 16px; }
  .header__row1 { padding: 12px 0; }
  .logo { width: 142.8px; }
  .logo__img { width: 142.8px; height: 34.8px; }
  .header__contacts { gap: 10px; }
  .header__max, .header__phones { display: none; }
  .header__phone-btn { display: inline-flex; }
  .header__nav { display: none; }
  .mobile-menu { padding: 8px 20px 32px; }
  .mobile-menu__cols { grid-template-columns: 1fr; gap: 0; }
  .mobile-menu__list--products .mobile-menu__item { font-size: 15px; }
  .mobile-menu__contacts { padding-top: 24px; }
  .mobile-menu__contacts .t-phone, .mobile-menu__contacts .t-cap { display: block; }
}

/* =========================================================
   ХИРО
   ========================================================= */
.hero {
  display: flex;
  align-items: flex-start;
  padding: 16px 16px 16px 0;
  background: var(--sheet);
  border-radius: var(--r);
  margin-top: 20px;
}
.hero__text {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 56px 24px 40px 56px;
}
.hero__title { color: var(--text); }
.hero__desc { max-width: 520px; margin-top: 20px; color: var(--text2); }
.hero__actions { display: flex; align-items: center; gap: 20px; margin-top: 28px; }
.hero__dots { display: flex; align-items: center; gap: 8px; padding-top: 26px; }
.hero__dot { height: 4px; width: 28px; border-radius: 2px; background: var(--line); }
.hero__dot.is-active { width: 44px; background: var(--navy); }
.hero__facts { width: 100%; padding-top: 36px; }
.hero__photo {
  position: relative;
  width: 640px;
  height: 520px;
  flex-shrink: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--bg-inverse);
}
.hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.hero__arrows { position: absolute; right: 12px; top: 20px; display: flex; gap: 8px; }
.hero__card {
  position: absolute;
  left: 20px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-radius: var(--r-md);
  background: var(--sheet);
}
.hero__card-text { display: flex; flex-direction: column; gap: 2px; }
.hero__card-text .t-cap { color: var(--text2); }

@media (max-width: 1023px) {
  .hero { flex-direction: column; padding: 16px; }
  .hero__text { width: 100%; padding: 40px 40px 48px; }
  .hero__desc { max-width: none; }
  .hero__photo { width: 100%; height: 420px; }
}
@media (max-width: 767px) {
  .hero { padding: 12px; }
  .hero__text { padding: 28px 20px 36px; }
  .hero__desc { margin-top: 20px; }
  .hero__actions { flex-direction: column; align-items: flex-start; gap: 16px; }
  .hero__facts { flex-wrap: wrap; padding-top: 24px; }
  .hero__facts > .fact { flex: 0 0 50%; }
  .hero__facts > .fact:nth-child(n + 3) { margin-top: 20px; }
  .hero__photo { height: 260px; }
  .hero__arrows { top: 16px; right: 12px; }
  .hero__card { left: 16px; right: 16px; bottom: 16px; gap: 14px; align-items: center; }
  .hero__card-text .t-cap { white-space: normal; }
}

/* =========================================================
   КАТАЛОГ (плитки)
   ========================================================= */
.catalog { gap: 32px; }
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.tile {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
  padding: 22px var(--space-2xl) var(--space-2xl);
  border-radius: var(--r);
  background: var(--sheet);
  overflow: hidden;
  min-width: 0;
}
.tile__photo {
  height: 190px;
  border-radius: var(--r-lg);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.tile__photo img { width: 100%; height: 100%; object-fit: cover; }
.tile__photo--contain img { object-fit: contain; }
.tile__body { display: flex; flex-direction: column; gap: var(--space-md); flex: 1 1 auto; min-width: 0; }
.tile__title { color: var(--text); }
.tile__desc { color: var(--text2); }
.tile__subs { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--text2); font-size: 14px; line-height: 1.55; }
.tile__subs span { white-space: nowrap; }
.tile__spacer { flex: 1 1 0; }
.tile__bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 18px; margin-top: auto; }
.tile__count { font-size: 13px; line-height: 1.5; color: var(--muted); white-space: nowrap; }

/* широкая плитка: фото слева, на две колонки */
.tile--wide { grid-column: span 2; flex-direction: row; gap: var(--space-2xl); padding: 0; min-height: 390px; }
.tile--wide .tile__photo { width: 470px; height: auto; align-self: stretch; border-radius: 0; }
.tile--wide .tile__body { padding: 26px var(--space-2xl) 26px 0; }

/* плитка склада на градиенте */
.tile--stock { background: var(--grad); color: #fff; }
.tile--stock .tile__title { color: #fff; }
.tile--stock .tile__desc, .tile--stock .tile__subs, .tile--stock .tile__count { color: #fff; opacity: 0.85; }
.tile--stock .icon-btn { background: var(--sheet); color: var(--navy); }

/* три направления */
.directions {
  display: flex;
  align-items: stretch;
  margin-top: 40px;
  padding: 0 48px;
  background: var(--sheet);
  border-radius: var(--r);
}
.direction { flex: 1 1 33.333%; min-width: 0; display: flex; gap: 18px; padding: 28px; }
.direction:first-child { padding-left: 0; }
.direction__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.direction__text .t-s { color: var(--text2); }
.direction__text .link-arrow { margin-top: 12px; }
.directions__divider { width: 1px; background: var(--line); flex-shrink: 0; }

@media (max-width: 1023px) {
  .tiles { grid-template-columns: 1fr 1fr; }
  .tile--wide .tile__photo { width: 340px; }
  .tile--wide .tile__body { padding: 26px var(--space-2xl) 26px 0; }
  .tile--inj { grid-column: span 2; flex-direction: row; gap: var(--space-2xl); padding: 0; min-height: 380px; }
  .tile--inj .tile__photo { width: 340px; height: auto; align-self: stretch; border-radius: 0; }
  .tile--inj .tile__body { padding: 26px var(--space-2xl) 26px 0; }
  .directions { flex-direction: column; padding: 8px 28px 8px; }
  .direction { padding: 28px 0; }
  .direction:first-child { padding-left: 0; }
  .directions__divider { width: auto; height: 1px; }
}
@media (max-width: 767px) {
  .tiles { grid-template-columns: 1fr; }
  .tile--wide, .tile--inj { grid-column: auto; flex-direction: column; gap: var(--space-xl); padding: 22px var(--space-2xl) var(--space-2xl); min-height: 0; }
  .tile--wide .tile__photo, .tile--inj .tile__photo { width: 100%; height: 190px; border-radius: var(--r-lg); align-self: auto; }
  .tile--wide .tile__body, .tile--inj .tile__body { padding: 0; }
  .directions { padding: 8px 20px; }
}

/* =========================================================
   ОБОРУДОВАНИЕ НА СКЛАДЕ
   ========================================================= */
.stock { gap: 24px; }
.stock__cards { display: flex; gap: 16px; }   /* высота — по самой высокой карточке */
.stock-card {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-xl);
  border-radius: var(--r);
  background: var(--sheet);
}
.stock-card__head { display: flex; align-items: flex-start; justify-content: space-between; }
/* фото одной высоты во всех карточках; высота карточки — по содержимому, кнопки прижаты к низу (margin-top: auto) */
.stock-card__photo {
  flex: 0 0 auto;
  height: 200px;
  border-radius: var(--r-md);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.stock-card__photo img { width: auto; height: auto; max-width: 100%; max-height: 100%; border-radius: var(--r-md); }
.stock-card__photo--cover img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.stock-card__price { display: flex; flex-direction: column; gap: 4px; }
.stock-card__price-note { color: var(--muted); }
/* ключевые параметры: подпись слева, значение справа */
.stock-card__params { display: flex; flex-direction: column; gap: 6px; margin: 0; padding-top: 12px; border-top: 1px solid var(--line2); }
.stock-card__param { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 13px; line-height: 1.35; }
.stock-card__param dt { color: var(--text2); }
.stock-card__param dd { margin: 0; margin-left: auto; font-weight: 600; text-align: right; }
.stock-card__btns { display: flex; gap: 8px; margin-top: auto; padding-top: 2px; }
.stock-card__btns .btn { flex: 1 1 0; padding: 0 12px; }

.stock-summary {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  padding: var(--space-xl);
  border-radius: var(--r);
  background: var(--tint);
}
.stock-summary__content { display: flex; flex-direction: column; gap: 10px; }
.stock-summary__content .t-s { color: var(--text2); }
.stock-summary__list { display: flex; flex-direction: column; gap: 8px; padding-top: 6px; }
.stock-summary__list li { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; line-height: 1.4; }
.stock-summary__list .ico { color: var(--green); }

@media (max-width: 1023px) {
  .stock__cards { flex-wrap: wrap; height: auto; }
  .stock__cards > * { flex: 0 0 calc(50% - 8px); }
}
@media (max-width: 767px) {
  .stock__cards > * { flex: 0 0 100%; }
}

/* =========================================================
   ПОДБОР ОБОРУДОВАНИЯ
   ========================================================= */
.picker {
  display: flex;
  align-items: stretch;
  background: var(--sheet);
  border-radius: var(--r);
  overflow: hidden;
}
.picker__form {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  padding: 44px 48px;
}
.picker__head { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.picker__head .t-m { color: var(--text2); }
.picker__steps { display: flex; flex-direction: column; gap: 22px; width: 100%; }
.step { display: flex; gap: 14px; }
.step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
}
.step__content { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.step__fields { display: flex; gap: 10px; }
.step__fields > * { flex: 1 1 0; }
.picker__result {
  width: 540px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 44px 40px;
  background: linear-gradient(132deg, #2a7ee6 0%, #0b4f8f 70.7%);
  color: #fff;
}
.picker__result-head { display: flex; flex-direction: column; gap: 8px; }
.picker__result-head .t-s { opacity: 0.78; }
.picker__series { display: flex; flex-direction: column; gap: 8px; width: 100%; padding: 26px 0 18px; }
.picker__serie {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.14);
}
.picker__serie .t-cap { opacity: 0.85; white-space: nowrap; }
.picker__note { opacity: 0.85; }
.picker__result .btn { margin-top: 22px; }
.picker__spacer { flex: 1 1 0; min-height: 22px; }
.picker__kpis { display: flex; gap: 28px; width: 100%; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.picker__kpi { display: flex; flex-direction: column; gap: 4px; white-space: nowrap; }
.picker__kpi .t-cap12 { opacity: 0.75; }

@media (max-width: 1023px) {
  .picker { flex-direction: column; }
  .picker__form { padding: 44px 40px; }
  .picker__result { width: 100%; padding: 44px 40px; }
  .picker__spacer { min-height: 16px; }
}
@media (max-width: 767px) {
  .picker__form { padding: 28px 20px; }
  .step__fields { flex-direction: column; gap: 12px; }
  .step__fields > .step__gap { display: none; }
  .picker__result { padding: 28px 20px; }
  .picker__serie { align-items: center; }
  .picker__serie .t-s-semi { flex: 1 1 0; }
  .picker__kpis { flex-wrap: wrap; gap: 16px 28px; }
}

/* =========================================================
   ПРЕСС-ФОРМЫ И ОСНАСТКА
   ========================================================= */
.molds { display: flex; gap: 48px; align-items: stretch; }
.molds__text { width: 520px; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-start; }
.molds__text .t-m { color: var(--text2); margin-top: 18px; }
.molds__spacer { flex: 1 1 0; }
.molds__facts { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
.molds__facts .fact:nth-child(2n) { padding-left: 16px; }
.molds__btns { display: flex; align-items: center; gap: 12px; padding-top: 28px; }
.molds__works { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.molds__row { display: flex; gap: 14px; height: 262px; }
.work-card {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px;
  border-radius: 20px;
  background: var(--sheet);
  overflow: hidden;
}
.work-card__photo { height: 150px; border-radius: 16px; overflow: hidden; flex-shrink: 0; }
.work-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.work-card__body { display: flex; flex-direction: column; gap: 8px; }
.work-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.work-card--more { align-items: center; justify-content: center; background: var(--tint); }

@media (max-width: 1023px) {
  .molds { flex-direction: column; gap: 32px; }
  .molds__text { width: 100%; }
  .molds__text .t-m { margin-top: 20px; }
  .molds__facts { margin-top: 20px; }
  .molds__btns { padding-top: 20px; }
  .molds__row { height: auto; }
}
@media (max-width: 767px) {
  .molds__text .t-m { margin-top: 16px; }
  .molds__facts { margin-top: 16px; }
  .molds__btns { flex-direction: column; align-items: flex-start; padding-top: 16px; }
  .molds__row { flex-direction: column; }
  .work-card { flex: 0 0 auto; }
  .work-card--more { min-height: 150px; }
}

/* =========================================================
   УСЛУГИ + ШОУ-РУМ
   ========================================================= */
.services__list { display: flex; flex-direction: column; padding-top: 32px; border-top: 1px solid var(--line); }
.service-row {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.service-row__title { width: 440px; flex-shrink: 0; color: var(--text); }
.service-row__desc { flex: 1 1 0; min-width: 0; color: var(--text2); }
.service-row .icon-btn { margin-left: auto; }
.service-row--plain .icon-btn { display: none; }

.showroom {
  display: flex;
  align-items: stretch;
  margin-top: 20px;
  background: var(--sheet);
  border-radius: var(--r);
  overflow: hidden;
}
.showroom__photo { position: relative; flex: 0 0 50%; min-width: 0; }
.showroom__photo img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.showroom__caption {
  position: absolute;
  left: 20px;
  bottom: 20px;
  padding: 8px 12px;
  border-radius: var(--r-sm);
  background: var(--sheet);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.showroom__text { flex: 0 0 50%; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 48px; }
.showroom__text > .t-m { color: var(--text2); margin-top: 16px; }
.showroom__facts { width: 100%; padding-top: 26px; }
.showroom__info { display: flex; flex-direction: column; gap: 10px; width: 100%; padding: 12px 0 8px; }
.showroom__list { display: flex; flex-direction: column; gap: 10px; }
.showroom__list li { display: flex; align-items: flex-start; gap: 10px; }
.showroom__info .ico { color: var(--navy); margin-top: 2px; }
.showroom__btns { display: flex; align-items: center; gap: 12px; padding-top: 30px; }

@media (max-width: 1023px) {
  .service-row__title { width: 220px; }
  .showroom { flex-direction: column; }
  .showroom__photo { flex: none; height: 340px; }
  .showroom__text { padding: 36px 40px 36px; }
}
@media (max-width: 767px) {
  .service-row { flex-wrap: wrap; gap: 12px 16px; padding: 20px 0; }
  .service-row__title { width: auto; flex: 1 1 0; }
  .service-row__desc { flex: 0 0 100%; order: 3; }
  .service-row .icon-btn { margin-left: 0; }
  .showroom__photo { height: 240px; }
  .showroom__text { padding: 28px 20px; }
  .showroom__facts { flex-wrap: wrap; padding-top: 26px; }
  .showroom__facts > .fact { flex: 0 0 50%; }
  .showroom__facts > .fact:nth-child(n + 3) { margin-top: 20px; }
  .showroom__btns { flex-direction: column; align-items: flex-start; }
}

/* =========================================================
   КАРТА ПОСТАВОК
   ========================================================= */
.delivery { gap: 32px; }
.delivery__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.delivery__head .t-m { width: 480px; flex-shrink: 0; color: var(--text2); }
.delivery__body { position: relative; }
.map {
  position: relative;
  height: 520px;
  border-radius: var(--r);
  background: var(--bg-map);
  overflow: hidden;
}
.map__note { position: absolute; left: 24px; bottom: 20px; font-size: 13px; line-height: 1.5; color: var(--muted); white-space: nowrap; }
.map-pin { position: absolute; left: var(--dx); top: var(--dy); display: flex; flex-direction: column; align-items: center; gap: 2px; }
.map-pin__label {
  padding: 6px 10px;
  border-radius: var(--r-full);
  background: var(--sheet);
  box-shadow: var(--shadow-pin);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--navy);
  white-space: nowrap;
}
.map-pin .ico { width: 10px; height: 10px; }
.delivery-card {
  position: absolute;
  right: 24px;
  top: 24px;
  width: 400px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 24px;
  border-radius: var(--r-lg);
  background: var(--sheet);
}
.delivery-card__head { display: flex; align-items: center; gap: 8px; }
.delivery-card__head .ico { color: var(--red); }
.delivery-card__desc { color: var(--text2); }
.delivery-card__form { display: flex; align-items: center; gap: 8px; padding-top: 6px; }
.delivery-card__input {
  flex: 1 1 0;
  min-width: 0;
  height: 46px;
  padding: 0 16px;
  border-radius: var(--r-full);
  background: var(--tint2);
  font-size: 15px;
  line-height: 1.55;
}
.delivery-card__cities { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 8px; }
.delivery-card__cities span {
  padding: 4px 9px;
  border-radius: 6px;
  background: var(--tint2);
  font-size: 12px;
  line-height: 1.35;
  color: var(--text2);
  white-space: nowrap;
}

@media (max-width: 1023px) {
  .delivery__head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .delivery__head .t-m { width: auto; }
  .delivery-card { right: 20px; top: 20px; }
  .map__note { left: 13px; }
  .map-pin { left: var(--tx); top: var(--ty); }
}
@media (max-width: 767px) {
  .map { height: 360px; }
  .map__note { left: 12px; bottom: 12px; }
  .map-pin { left: var(--mx); top: var(--my); }
  .delivery__body { display: flex; flex-direction: column; gap: 32px; }
  .delivery-card { position: static; width: 100%; }
  .delivery-card__form .btn { padding: 0 20px; }
}

/* =========================================================
   КЛИЕНТЫ О НАС
   ========================================================= */
.reviews { gap: 24px; }
.reviews__cards { display: flex; gap: 16px; align-items: stretch; }
.review-card {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px;
  border-radius: var(--r);
  background: var(--sheet);
}
.review-card__meta { display: flex; align-items: center; justify-content: space-between; }
.stars { display: flex; align-items: center; gap: 2px; color: var(--star); }
.stars--lg { gap: 3px; }
.review-card__date { color: var(--muted); }
.review-card__spacer { flex: 1 1 0; }
.review-card__author { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--line2); }
.review-card__avatar { width: 56px; height: 56px; border-radius: var(--r-lg); background: var(--tint); overflow: hidden; flex-shrink: 0; }
.review-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.review-card__name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.review-card__name .t-cap12 { color: var(--text2); }
.rating-card {
  width: 260px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;
  padding: 22px;
  border-radius: var(--r);
  background: var(--tint);
}
.rating-card .t-s { color: var(--text2); }
.rating-card__spacer { flex: 1 1 0; }

@media (max-width: 1023px) {
  .reviews__cards { flex-wrap: wrap; }
  .reviews__cards > * { flex: 0 0 calc(50% - 8px); }
  .rating-card { width: auto; min-height: 388px; }
}
@media (max-width: 767px) {
  .reviews__cards > * { flex: 0 0 100%; }
  .rating-card { min-height: 0; gap: 8px; }
  .rating-card__spacer { min-height: 8px; }
}

/* =========================================================
   ПОЧЕМУ ВЫБИРАЮТ НАС
   ========================================================= */
.why { display: flex; flex-direction: column; gap: 28px; padding: 48px; background: var(--sheet); border-radius: var(--r); }
.why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.why-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 28px 28px 30px;
  border-radius: var(--r-lg);
  background: var(--tint2);
}
.why-card .icon-box { margin-bottom: 10px; }
.why-card .t-s { color: var(--text2); }

@media (max-width: 1023px) {
  .why { padding: 32px; }
  .why__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .why { padding: 28px 20px; gap: 28px; }
  .why__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   КАК СДЕЛАТЬ ЗАКАЗ
   ========================================================= */
.order { gap: 32px; }
.timeline { position: relative; display: flex; }
.timeline::before { content: ""; position: absolute; left: 24px; right: 24px; top: 23px; height: 2px; background: var(--line); }
.order-step { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding-right: 24px; }
.order-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--tint);
  color: var(--navy);
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 10px;
}
.order-step:first-child .order-step__num { background: var(--navy); color: #fff; }
.order-step__title { font-size: 12px; font-weight: 600; line-height: 1.35; }
.order-step__desc { color: var(--text2); }

@media (max-width: 1023px) {
  .timeline { flex-wrap: wrap; gap: 24px 0; }
  .timeline::before { display: none; }
  .order-step { flex: 0 0 33.333%; }
  .order-step:nth-child(n + 4) { flex: 0 0 50%; }
}
@media (max-width: 767px) {
  .order-step, .order-step:nth-child(n + 4) { flex: 0 0 100%; padding-right: 0; }
}

/* =========================================================
   ФОРМА ЗАЯВКИ (сквозная)
   ========================================================= */
.lead {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4xl);
  padding: var(--space-4xl);
  background: var(--sheet);
  border-radius: var(--r);
}
.lead__text { width: 440px; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-lg); }
.lead__text > .t-s { color: var(--text2); }
.lead__contacts { display: flex; flex-direction: column; gap: var(--space-md); padding-top: 8px; }
.lead__contacts li { display: flex; align-items: center; gap: 10px; }
.lead__contacts .ico { color: var(--navy); }
.lead__messengers { display: flex; flex-wrap: wrap; gap: var(--space-sm); padding-top: 4px; }
.lead__fields { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.lead__row { display: flex; gap: 12px; width: 100%; }
.lead__row > .field { flex: 1 1 0; }
.lead__fields > .field, .lead__fields > .upload { width: 100%; }
.lead__consent { padding: 4px 0; }

@media (max-width: 1023px) {
  .lead { flex-direction: column; gap: 28px; padding: 40px; }
  .lead__text { width: 100%; }
  .lead__contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
}
@media (max-width: 767px) {
  .lead { padding: 28px 20px; gap: 24px; }
  .lead__contacts { grid-template-columns: 1fr; }
  .lead__row { flex-direction: column; }
}

/* =========================================================
   ФУТЕР
   ========================================================= */
.footer { display: flex; flex-direction: column; padding-bottom: 16px; }
.footer__top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.footer__logo { width: 273px; height: 64px; }
.footer__socials { display: flex; flex-wrap: wrap; gap: 8px; }
.footer__cols { display: flex; gap: 32px; padding: 32px 0; }
.footer__col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer__col-title { color: var(--muted); margin-bottom: 7px; }
.footer__col a, .footer__col p { font-size: 14px; line-height: 1.55; color: var(--text2); }
.footer__col .t-phone { color: var(--text); }
.footer__rating {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--r-md);
  background: var(--sheet);
}
.footer__rating .t-cap12 { width: 120px; color: var(--muted); }
.footer__rate-note { color: var(--muted); }
.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  line-height: 1.35;
}
.footer__copy { color: var(--muted); }
.footer__legal { display: flex; flex-wrap: wrap; gap: 24px; color: var(--text2); }
.footer__legal a { text-decoration: underline; text-underline-position: from-font; }

@media (max-width: 1023px) {
  .footer__top { flex-direction: column; align-items: flex-start; gap: 20px; padding-bottom: 24px; }
  .footer__logo { width: 178.5px; height: 42px; }
  .footer__cols { flex-wrap: wrap; gap: 32px 32px; }
  .footer__col { flex: 0 0 calc(50% - 16px); }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 767px) {
  .footer__cols { gap: 32px; }
  .footer__col { flex: 0 0 100%; }
  .footer__legal { flex-direction: column; gap: 8px; }
}

/* =========================================================
   ПЛАВАЮЩИЕ КНОПКИ
   ========================================================= */
.float-btns { position: fixed; right: 20px; bottom: 20px; z-index: 20; display: flex; flex-direction: column; gap: 8px; }
.float-btns a,
.float-btns button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  color: #fff;
  box-shadow: var(--shadow-float);
}
.float-btns__wa { background: var(--wa); }
.float-btns__tg { background: var(--tg); }
.float-btns__max { background: var(--blue); }
.float-btns__call { background: var(--navy); }
.float-btns button { padding: 0; border: 0; cursor: pointer; }
.float-btns .float-btns__top { background: var(--sheet); color: var(--navy); }
.float-btns__top[hidden] { display: none; }

/* =========================================================
   ВНУТРЕННИЕ СТРАНИЦЫ: шапка страницы, хлебные крошки
   ========================================================= */
.page-head { display: flex; flex-direction: column; gap: 24px; padding-top: 32px; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 13px; line-height: 1.5; color: var(--text2); }
.breadcrumbs span { color: var(--muted); }
.breadcrumbs a:last-child, .breadcrumbs .is-current { color: var(--text); }
@media (max-width: 767px) {
  .page-head { gap: 16px; padding-top: 24px; }
}

/* блок «заголовок + сетка» */
.block { gap: 32px; }
@media (max-width: 767px) { .block { gap: 24px; } }

/* ---------- плитка серии (4 в ряд) ---------- */
.series-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.series-tile {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: var(--space-xl);
  border-radius: var(--r);
  background: var(--sheet);
  overflow: hidden;
  min-width: 0;
}
.series-tile__photo { display: flex; align-items: center; justify-content: center; height: 292px; border-radius: var(--r-lg); overflow: hidden; flex-shrink: 0; }
/* станок целиком, без растягивания мелких фото; скругляется сама картинка (у фото на сером фоне видны углы) */
.series-tile__photo img { width: auto; height: auto; max-width: 100%; max-height: 100%; border-radius: var(--r-md); }
.series-tile__photo--cover img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.series-tile__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--space-xs); }
.series-tile__body .t-cap { color: var(--text2); }
.series-tile__bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 6px; margin-top: auto; }
@media (max-width: 1023px) { .series-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .series-grid { grid-template-columns: 1fr; } }

/* ---------- полоса «Шоу-рум» ---------- */
.showroom-strip { display: flex; align-items: stretch; height: 320px; border-radius: var(--r); background: var(--sheet); overflow: hidden; }
.showroom-strip__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--space-lg); padding: var(--space-4xl); }
.showroom-strip__text .t-m { color: var(--text2); }
.showroom-strip__btns { display: flex; flex-wrap: wrap; gap: var(--space-md); padding-top: 8px; }
.showroom-strip__photo { width: 560px; flex-shrink: 0; }
.showroom-strip__photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1023px) {
  .showroom-strip { flex-direction: column-reverse; height: auto; }
  .showroom-strip__photo { width: 100%; height: 260px; }
  .showroom-strip__text { padding: 36px 40px 40px; }
}
@media (max-width: 767px) {
  .showroom-strip__photo { height: 200px; }
  .showroom-strip__text { padding: 24px 20px 28px; }
}

/* ---------- компактный подбор (внутренние страницы) ---------- */
.picker-compact { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2xl); padding: var(--space-4xl); border-radius: var(--r); background: var(--sheet); }
.picker-compact__head { display: flex; flex-direction: column; gap: 8px; }
.picker-compact__head .t-m { max-width: 720px; color: var(--text2); }
.picker-compact__fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; width: 100%; }
.picker-compact__have { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-lg); }
@media (max-width: 1023px) {
  .picker-compact { padding: 40px; }
  .picker-compact__fields { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .picker-compact { padding: 28px 20px; gap: 20px; }
  .picker-compact__fields { grid-template-columns: 1fr; gap: 12px; }
  .picker-compact__have { align-items: flex-start; flex-direction: column; gap: 10px; }
}

/* =========================================================
   КАТЕГОРИЯ: фильтры, листинг, пагинация, SEO-текст
   ========================================================= */
.page-head__note { flex-shrink: 0; font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--text2); white-space: nowrap; }
.badge .ico { width: 6px; height: 6px; }
.catalog-layout { display: flex; align-items: flex-start; gap: 24px; }
.filters {
  width: 320px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-xl);
  padding: var(--space-2xl);
  border-radius: var(--r);
  background: var(--sheet);
}
.filters > .field { width: 100%; }
.filters__group { display: flex; flex-direction: column; gap: 10px; }
.filters__group-title { font-size: 12px; font-weight: 600; line-height: 1.35; }
.filters__btns { display: flex; flex-wrap: wrap; gap: var(--space-sm); padding-top: 4px; }
.checkbox--plain .checkbox__box { background: var(--tint); }
.checkbox--plain input:checked + .checkbox__box { background: var(--navy); }

/* слайдер диапазона */
.range { display: flex; flex-direction: column; gap: var(--space-sm); width: 100%; }
.range__label { font-size: 12px; font-weight: 600; line-height: 1.35; }
.range__track { position: relative; height: 16px; }
.range__line { position: absolute; left: 0; right: 0; top: 6px; height: 4px; border-radius: 2px; background: var(--line); }
.range__fill { position: absolute; top: 6px; height: 4px; border-radius: 2px; background: var(--navy); }
.range__track input[type="range"] {
  position: absolute; inset: 0; width: 100%; height: 16px; margin: 0;
  -webkit-appearance: none; appearance: none; background: none; pointer-events: none;
}
.range__track input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--navy); border: 0; pointer-events: auto; cursor: pointer; }
.range__track input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--navy); border: 0; pointer-events: auto; cursor: pointer; }
.range__track input[type="range"]::-moz-range-track { background: none; }
.range__values { display: flex; gap: var(--space-md); }
.range__values > .field { flex: 1 1 0; }

/* листинг */
.listing { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.sort { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.sort__group { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sort__count { font-size: 14px; line-height: 1.55; color: var(--text2); }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.stock-card__compare { flex-shrink: 0; }
.stock-card__title { color: inherit; }
.stock-card__compare .checkbox__box { background: var(--tint); }
.stock-card__compare .checkbox__text { white-space: nowrap; }
/* галочка «Сравнить» на странице модели — справа от бейджа наличия */
.product-summary__status { display: flex; align-items: center; gap: var(--space-xl); }
/* мини-окно сравнения (inc/catalog-data.php, js/catalog.js): снизу по центру, левее кнопок мессенджеров */
.compare-bar { position: fixed; left: 50%; bottom: 20px; z-index: 60; display: flex; align-items: center; gap: var(--space-xl); max-width: calc(100% - 200px); padding: 10px 10px 10px 24px; border-radius: 20px; background: var(--sheet); box-shadow: var(--shadow-float); transform: translateX(-50%); }
.compare-bar[hidden] { display: none; }
.compare-bar__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.compare-bar__clear { padding: 0; border: 0; background: none; color: var(--text2); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.compare-bar .btn { flex-shrink: 0; }
.compare-bar .btn[hidden] { display: none; }
@media (max-width: 767px) {
  .compare-bar { left: 16px; right: 84px; bottom: 16px; max-width: none; gap: 12px; padding: 10px 10px 10px 16px; transform: none; flex-wrap: wrap; }
}
.pagination { display: flex; flex-direction: column; align-items: center; gap: var(--space-lg); padding-top: 16px; }
.pagination__pages { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-sm); }

/* сетка карточек склада 4 в ряд (внутренние страницы) */
.stock-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }

/* список статей в белом листе (как «Три направления») */
.directions--articles { margin-top: 0; }
.directions--articles .direction__text .link-arrow { margin-top: 6px; }

/* полоса «Вопрос инженеру» */
.qa-band { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: var(--space-2xl) var(--space-3xl); border-radius: var(--r); background: var(--tint); }
.qa-band__text { display: flex; flex-direction: column; gap: 6px; }
.qa-band__text .t-s { color: var(--text2); }
.qa-band .btn { flex-shrink: 0; }

/* SEO-текст */
.seo-text { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.seo-text .t-h2 { margin-bottom: 0; }
.seo-text p { max-width: 900px; color: var(--text2); }
.seo-text__note { font-size: 12px; line-height: 1.35; color: var(--muted); }
.seo-text .link-arrow { margin-top: 0; }

/* ---------- длинный текст раздела под «Подробнее» (partials/catalog/section-text.php, assets/js/main.js) ---------- */
.text-collapse { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; }
.text-collapse__body { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; }
.article-sheet .text-collapse, .article-sheet .text-collapse__body { gap: 24px; }
.text-collapse.is-collapsed .text-collapse__body { position: relative; max-height: 360px; overflow: hidden; }
.text-collapse.is-collapsed .text-collapse__body::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 160px; pointer-events: none;
  background: linear-gradient(to bottom, rgba(243, 245, 248, 0), var(--bg) 85%);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 60%); mask-image: linear-gradient(to bottom, transparent, #000 60%);
}
.article-sheet .text-collapse.is-collapsed .text-collapse__body::after { background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--sheet) 85%); }
@media (max-width: 767px) { .text-collapse.is-collapsed .text-collapse__body { max-height: 300px; } }

@media (max-width: 1023px) {
  .page-head .section-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .catalog-layout { flex-direction: column; }
  .filters { width: 100%; }
  .filters .range__values { max-width: none; }
  .listing { width: 100%; }
  .product-grid { grid-template-columns: 1fr 1fr; }
  .stock-grid { grid-template-columns: 1fr 1fr; }
  .qa-band { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
  .page-head__note { white-space: normal; }
  .filters { padding: 20px; }
  .product-grid, .stock-grid { grid-template-columns: 1fr; }
  .qa-band { padding: 24px 20px; }
}

/* ---------- склад: факты в шапке, группы карточек ---------- */
.facts--head { max-width: 944px; gap: 48px; padding-top: 8px; }
.facts--head > .fact { flex: 0 0 200px; }
.stock-groups { gap: 56px; }
.stock-group { display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 1023px) {
  .facts--head { flex-wrap: wrap; gap: 24px; }
  .facts--head > .fact { flex: 0 0 calc(50% - 12px); }
  .stock-groups { gap: 48px; }
}
@media (max-width: 767px) {
  .facts--head > .fact { flex: 0 0 100%; }
  .stock-groups { gap: 40px; }
}

/* =========================================================
   КАРТОЧКА МОДЕЛИ
   ========================================================= */
.product-top { display: flex; align-items: flex-start; gap: 40px; padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); margin-top: 24px; }
.gallery { display: flex; flex-direction: column; gap: var(--space-md); width: 600px; flex-shrink: 0; }
.gallery__main { position: relative; height: 440px; border-radius: var(--r-lg); overflow: hidden; background: var(--sheet); }
/* фото станка целиком и не крупнее исходника: не обрезается и не «мылится» (фото старого сайта бывают по 300 px) */
.gallery__main img { width: 100%; height: 100%; object-fit: scale-down; }
.gallery__arrows { position: absolute; right: 20px; top: 20px; display: flex; gap: 8px; }
/* миниатюры 96×72 как в макете; лишние — прокруткой вбок */
.gallery__thumbs { --thumbs: 6; position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--thumbs) - 1) * var(--space-sm)) / var(--thumbs)); gap: var(--space-sm); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; padding-bottom: 4px; }
/* в ряд ровно --thumbs миниатюр (без обрезанной последней), остальные — прокруткой; выбранная — яркая, прочие приглушены */
.gallery__thumb { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-md); overflow: hidden; display: block; scroll-snap-align: start; background: var(--tint2); opacity: 0.55; transition: opacity 0.15s; }
.gallery__thumb.is-active, .gallery__thumb--video { opacity: 1; }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery__thumb--video::after { content: ""; position: absolute; inset: 0; background: rgba(13, 42, 68, 0.25); }
.gallery__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -60%); z-index: 1; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--sheet); color: var(--navy); }
.gallery__video-label { position: absolute; left: 6px; bottom: 4px; z-index: 1; font-size: 12px; line-height: 1.35; color: #fff; }
.product-summary { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-lg); }
.product-params { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 12px 16px; width: 100%; margin: 0; }
.product-param { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.product-param .t-cap12 { color: var(--text2); }
.product-param dd { margin: 0; }
.product-lead { max-width: 640px; color: var(--text2); }
/* вкладка «Описание» — белый блок, как остальные вкладки */
.product-tabs > .product-desc { padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); }
.product-price { display: flex; flex-direction: column; gap: 4px; padding-top: 8px; }
.product-price .t-cap { color: var(--text2); }
.product-terms { display: flex; flex-direction: column; gap: var(--space-sm); }
.product-terms li { display: flex; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.product-terms .ico { color: var(--navy); margin-top: 2px; }
.product-terms .link-arrow { margin-left: 4px; }
.product-leasing__text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 0; flex: 1; min-width: 0; }
.product-leasing__text strong { font-weight: 600; }
.product-leasing__text .t-cap12 { flex-basis: 100%; }
.product-btns { display: flex; flex-wrap: wrap; gap: var(--space-sm); padding-top: 8px; }
.product-note { color: var(--text2); }
/* описание модели — на всю ширину, как текст статьи: отступы между абзацами, маркеры списков, подзаголовки */
.product-desc { display: flex; flex-direction: column; gap: 16px; color: var(--text2); }
.product-desc ul, .product-desc ol { display: flex; flex-direction: column; gap: 4px; padding-left: 22px; }
.product-desc ul { list-style: disc; } .product-desc ol { list-style: decimal; }
.product-desc :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])), .product-desc :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), .product-desc :is(h4, :where([data-seo-original-heading="h4"])):not(:where(h4[data-seo-original-heading])) { margin-top: 8px; color: var(--text); }
.product-tabs { display: flex; flex-direction: column; gap: 32px; }

/* таблица характеристик */
.spec-sheet { display: flex; flex-direction: column; gap: 24px; padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); }
.spec-head { display: grid; grid-template-columns: 1fr repeat(var(--spec-cols, 2), 200px); gap: 16px; padding: 0 16px; font-size: 12px; font-weight: 600; line-height: 1.35; color: var(--muted); }
.spec-group { display: flex; flex-direction: column; gap: 4px; }
.spec-rows { display: flex; flex-direction: column; padding-top: 8px; }
.spec-row { display: grid; grid-template-columns: 1fr repeat(var(--spec-cols, 2), 200px); gap: 16px; align-items: center; padding: 12px 16px; border-radius: var(--r-md); font-size: 14px; }
.spec-row:nth-child(even) { background: var(--tint2); }
.spec-row__name { line-height: 1.55; color: var(--text2); }
.spec-row__val { font-weight: 600; line-height: 1.4; }
/* таблицы характеристик (модель, сравнение, старые таблицы): названия слева, значения и заголовки колонок по центру */
.spec-sheet .spec-head > span:not(:first-child), .spec-sheet .spec-row__val { text-align: center; }
.spec-row__val--all { grid-column: span var(--spec-cols, 2); }
.spec-html { overflow-x: auto; }
.spec-html table { width: 100% !important; height: auto !important; border-collapse: collapse; font-size: 14px; }
.spec-html td, .spec-html th { padding: 10px 12px; border: 0; text-align: left; vertical-align: top; }
.spec-html tr:nth-child(even) { background: var(--tint2); }
.spec-html td:not(:first-child), .spec-html th:not(:first-child) { text-align: center; }
/* серия на одной странице: вкладки моделей, у каждой карточка над ее таблицей (single-equipment.php) */
.spec-model { display: flex; flex-direction: column; gap: 16px; }
.spec-models-pick { display: flex; flex-direction: column; gap: 12px; }
.spec-model__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
/* карточка модели над ее таблицей: фото слева, справа название, наличие, цена, ключевые параметры, лизинг и кнопки */
.spec-model__card { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 32px; padding: 24px; border-radius: var(--r-lg); background: var(--tint2); }
.spec-model__photo { display: flex; align-items: center; justify-content: center; height: 240px; border-radius: var(--r-md); overflow: hidden; background: var(--sheet); }
.spec-model__photo img { width: auto; height: auto; max-width: 100%; max-height: 100%; }
.spec-model__photo--cover img { width: 100%; height: 100%; object-fit: cover; }
.spec-model__body { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; min-width: 0; }
.spec-model__top { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.spec-model__title { color: inherit; }
.spec-model__params { align-self: stretch; max-width: 560px; }
.spec-model__card .spec-model__actions { gap: 8px; margin-top: auto; }
@media (hover: hover) { .spec-model__title:hover { color: var(--navy); } }
@media (max-width: 1023px) {
  .spec-model__card { grid-template-columns: 240px minmax(0, 1fr); gap: 24px; }
  .spec-model__photo { height: 200px; }
}
@media (max-width: 767px) {
  .spec-model__card { grid-template-columns: 1fr; gap: 16px; padding: 16px; }
  .spec-model__photo { height: 180px; }
}

/* вкладка «Сертификаты» и «Доставка» */
.cert-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); }
.cert-card { display: flex; flex-direction: column; border-radius: var(--r-lg); background: var(--tint2); overflow: hidden; }
.cert-card__photo { display: flex; align-items: center; justify-content: center; height: 300px; padding: 10px; }
.cert-card__photo img { max-height: 100%; width: auto; height: auto; max-width: 100%; }
.cert-card__title { padding: 12px 10px 16px; font-size: 14px; font-weight: 700; line-height: 1.25; color: var(--text); }
.cert-card, .drawing-card__pic, .gallery__main img[data-gallery-main] { cursor: zoom-in; }
.drawing-card__pic { display: block; }

/* увеличение фото (partials/lightbox.php, assets/js/main.js): фото целиком на темном фоне, стрелки, счетчик */
.lightbox { position: fixed; inset: 0; z-index: 110; display: flex; align-items: center; justify-content: center; padding: 72px 88px; background: rgba(13, 42, 68, 0.9); }
.lightbox[hidden] { display: none; }
.lightbox__img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: var(--r-md); background: var(--sheet); }
.lightbox__close { position: absolute; top: 20px; right: 20px; }
.lightbox__prev, .lightbox__next { position: absolute; top: 50%; transform: translateY(-50%); }
.lightbox__prev { left: 20px; }
.lightbox__next { right: 20px; }
.lightbox__prev[hidden], .lightbox__next[hidden] { display: none; }
.lightbox__count { position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); font-size: 13px; line-height: 1.5; color: #fff; }
@media (max-width: 767px) {
  .lightbox { padding: 72px 12px 88px; }
  .lightbox__prev, .lightbox__next { top: auto; bottom: 16px; transform: none; }
  .lightbox__prev { left: 16px; }
  .lightbox__next { right: 16px; }
  .lightbox__count { bottom: 28px; }
}
/* вкладка «Чертежи»: два ландшафтных чертежа + ссылка на PDF */
.drawing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); }
.drawing-card { display: flex; flex-direction: column; border-radius: var(--r-lg); background: var(--tint2); overflow: hidden; }
.drawing-card__pic { padding: 24px 24px 8px; }
.drawing-card__pic img { display: block; width: 100%; height: auto; }
.drawing-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px 14px 14px; }
.drawing-card__title { font-size: 14px; font-weight: 700; line-height: 1.25; }
.text-sheet { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); }
.text-sheet p { color: var(--text2); }
.tab-panel[hidden] { display: none; }

@media (max-width: 1023px) {
  .product-top { flex-direction: column; padding: 24px; }
  .gallery { width: 100%; }
  .gallery__main { height: 420px; }
  .spec-head, .spec-row { grid-template-columns: 1fr repeat(var(--spec-cols, 2), 140px); }
  .cert-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 24px; }
  .drawing-grid { grid-template-columns: 1fr; padding: 24px; }
}
@media (max-width: 767px) {
  .product-top { padding: 16px; gap: 24px; margin-top: 16px; }
  .gallery__main { height: 240px; }
  .gallery__arrows { right: 12px; top: 12px; }
  .gallery__thumbs { --thumbs: 4; }
  .product-params { grid-template-columns: 1fr 1fr; }
  .spec-sheet { padding: 20px 16px; }
  .spec-head, .spec-row { grid-template-columns: 1fr repeat(var(--spec-cols, 2), 84px); gap: 8px; padding: 10px 8px; font-size: 13px; }
  .cert-grid { grid-template-columns: 1fr; padding: 16px; }
  .cert-card__photo { height: 240px; }
  .drawing-grid { padding: 16px; }
  .drawing-card__pic { padding: 12px 12px 4px; }
  .text-sheet, .product-tabs > .product-desc { padding: 24px 20px; }
}

/* =========================================================
   ШОУ-РУМ: первый экран, адрес и проезд
   ========================================================= */
.page-hero { display: flex; align-items: stretch; margin-top: 24px; }
.page-hero__text { width: 736px; flex-shrink: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 20px; padding: 56px; }
.page-hero__text .t-l { color: var(--text2); }
.page-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.page-hero__photo { flex: 1 1 0; min-width: 0; height: 520px; border-radius: var(--r); overflow: hidden; }
.page-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.address { display: flex; align-items: stretch; border-radius: var(--r); background: var(--sheet); overflow: hidden; }
.address__info { width: 560px; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 40px; }
.address__list { display: flex; flex-direction: column; gap: 16px; }
.address__list li { display: flex; align-items: flex-start; gap: 10px; }
.address__list .ico { color: var(--navy); margin-top: 2px; flex-shrink: 0; }
.address__list .t-s { color: var(--text2); }
.address__map { position: relative; flex: 1 1 0; min-width: 0; background: var(--bg-map); }
.address__map .map-pin { left: 50%; top: 45%; transform: translateX(-50%); }
.address__map .map__note { left: 20px; bottom: 16px; font-size: 12px; }
@media (max-width: 1023px) {
  .page-hero { flex-direction: column; }
  .page-hero__text { width: 100%; padding: 40px; }
  .page-hero__photo { height: 420px; flex: none; }
  .address { flex-direction: column; }
  .address__info { width: 100%; }
  .address__map { min-height: 360px; }
}
@media (max-width: 767px) {
  .page-hero { margin-top: 16px; }
  .page-hero__text { padding: 28px 20px; }
  .page-hero__btns { flex-direction: column; align-items: flex-start; }
  .page-hero__photo { height: 260px; }
  .address__info { padding: 24px 20px; }
  .address__map { min-height: 280px; }
}

/* =========================================================
   ПОДКАТЕГОРИЯ / СЕРИЯ: заголовок с видео, текстовый лист, работы
   ========================================================= */
.head-video { display: flex; align-items: center; gap: 40px; padding: 32px; margin-top: 24px; border-radius: var(--r); background: var(--sheet); }
.head-video__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.head-video__text .t-l { color: var(--text2); }
.head-video__video { position: relative; width: 560px; height: 315px; flex-shrink: 0; border-radius: var(--r-lg); overflow: hidden; background: var(--bg-inverse); }
.head-video__video img, .head-video__video iframe { width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.head-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--sheet); color: var(--navy); }
.article-sheet { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px; border-radius: var(--r); background: var(--sheet); }
.article-sheet > * { max-width: 900px; }
.article-sheet p, .article-list li { color: var(--text2); }
.article-list { display: flex; flex-direction: column; gap: 2px; padding-left: 18px; list-style: disc; }
.article-list li::marker { color: var(--text2); }
.works-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.works-grid .work-card { min-height: 251px; }
@media (max-width: 1023px) {
  .head-video { flex-direction: column; align-items: stretch; padding: 24px; }
  .head-video__video { width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .works-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .head-video { padding: 16px; margin-top: 16px; gap: 20px; }
  .article-sheet { padding: 24px 20px; gap: 20px; }
  .works-grid { grid-template-columns: 1fr; }
}

/* ---------- серия: шапка серии и таблица моделей ---------- */
.series-head { display: flex; align-items: flex-start; gap: 40px; padding: 32px; margin-top: 24px; border-radius: var(--r); background: var(--sheet); }
.series-head__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.series-head__text .t-l { color: var(--text2); }
.series-head__price { display: flex; align-items: center; gap: 24px; }
.series-head__facts { max-width: 680px; gap: 40px; padding-top: 8px; }
.series-head__facts > .fact { flex: 0 0 200px; }
.series-head__facts .fact__num { white-space: nowrap; }
.series-head__photo { width: 520px; height: 374px; flex-shrink: 0; border-radius: var(--r-lg); overflow: hidden; }
.series-head__photo img { width: 100%; height: 100%; object-fit: cover; }
/* фото меньше рамки — целиком и не крупнее исходника, без обрезки (imstech_head_photo_class) */
.series-head__photo--fit img { object-fit: scale-down; }
.models-table { display: flex; flex-direction: column; padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); overflow-x: auto; }
.models-table__head, .models-row { display: grid; grid-template-columns: minmax(200px, 1fr) 120px 150px 150px 150px 120px 110px; gap: 16px; align-items: center; padding: 12px 16px; }
.models-table__head { padding: 0 16px 8px; font-size: 12px; font-weight: 600; line-height: 1.35; color: var(--text2); }
.models-row { border-radius: var(--r-md); font-size: 14px; line-height: 1.55; }
.models-row:nth-child(odd) { background: var(--tint2); }
.models-row__name, .models-row__price { font-weight: 600; line-height: 1.4; }
.models-row .link-arrow { justify-self: end; }
@media (max-width: 1023px) {
  .series-head { flex-direction: column; padding: 24px; }
  .series-head__photo { width: 100%; height: 340px; }
  .models-table { padding: 24px 16px; }
  .models-table__head, .models-row { grid-template-columns: minmax(160px, 1fr) 90px 130px 130px 130px 100px 100px; min-width: 860px; }
}
@media (max-width: 767px) {
  .series-head { padding: 16px; margin-top: 16px; }
  .series-head__price { flex-wrap: wrap; gap: 12px; }
  .series-head__facts { flex-wrap: wrap; gap: 16px; }
  .series-head__facts > .fact { flex: 0 0 calc(50% - 8px); }
  .series-head__facts .fact__num { white-space: normal; }
  .series-head__photo { height: 240px; }
}

/* ---------- лизинг: калькулятор, документ, партнеры ---------- */
.leasing-head { display: flex; align-items: flex-start; gap: 64px; }
.leasing-head .t-m { max-width: 720px; }
.leasing-head__card { width: 400px; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px; border-radius: var(--r); background: var(--sheet); }
.leasing-head__facts { display: flex; flex-direction: column; gap: 16px; width: 100%; }
.leasing-head__facts > .fact:first-child { padding-top: 0; border-top: 0; }
.section.leasing-duo { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.section.leasing-duo--single { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) {
  .leasing-duo:not(.leasing-duo--single) .calc { gap: 32px; }
  .leasing-duo:not(.leasing-duo--single) .calc__row { grid-template-columns: minmax(0, 1fr); }
  .leasing-duo:not(.leasing-duo--single) .calc__result { width: 340px; }
}
.calc { display: flex; align-items: flex-start; gap: var(--space-4xl); padding: var(--space-4xl); border-radius: var(--r); background: var(--sheet); }
.calc__fields { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.calc__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; width: 100%; }
.calc__result { width: 400px; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; border-radius: 16px; background: var(--tint); }
.calc__result .t-cap12 { color: var(--text2); }
.doc-card { display: inline-flex; align-items: center; gap: 16px; max-width: 404px; padding: 24px; border-radius: var(--r); background: var(--sheet); }
.doc-card .ico { color: var(--navy); }
.doc-card__text { display: flex; flex-direction: column; gap: 2px; }
.doc-card__text .t-cap12 { color: var(--text2); }
.partners { display: flex; flex-direction: column; gap: 16px; }
.partner-card { display: flex; align-items: center; gap: var(--space-4xl); padding: var(--space-4xl); border-radius: var(--r); background: var(--sheet); }
.partner-card__logo { flex: 0 0 260px; display: block; }
.partner-card__logo img { display: block; width: 100%; height: auto; }
.partner-card__body { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.partner-card__body :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) a { color: inherit; text-decoration: none; }
.partner-card__links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; }
.partner-card__links .t-s-semi { color: var(--text); text-decoration: none; }
@media (max-width: 1023px) {
  .calc { flex-direction: column; padding: 40px; }
  .calc__result { width: 100%; }
  .leasing-head { flex-direction: column; gap: 24px; }
  .section.leasing-duo { grid-template-columns: minmax(0, 1fr); gap: var(--sec-gap); }
  .leasing-head__card { width: 100%; }
  .partner-card { padding: 40px; }
  .partner-card__logo { flex-basis: 200px; }
}
@media (max-width: 767px) {
  .calc { padding: 28px 20px; gap: 24px; }
  .calc__row { grid-template-columns: 1fr; gap: 12px; }
  .doc-card { max-width: none; padding: 20px; }
  .partner-card { flex-direction: column; align-items: flex-start; gap: 20px; padding: 28px 20px; }
  .leasing-head__card { padding: 24px 20px; }
  .partner-card__logo { flex-basis: auto; width: 200px; }
}

/* ---------- пресс-формы ---------- */
.series-head__text .t-l + .t-l { margin-top: -4px; }
.series-head__facts--2x2 { flex-wrap: wrap; max-width: 792px; gap: 16px 40px; }
.molds-head__photo { width: 480px; height: 465px; flex-shrink: 0; border-radius: var(--r-lg); overflow: hidden; }
.molds-head__photo img { width: 100%; height: 100%; object-fit: cover; }
.price-table__head, .price-row { grid-template-columns: minmax(300px, 1fr) 120px 150px 150px 150px; }
.compare-note { display: flex; flex-direction: column; gap: 8px; padding-top: 16px; }
.compare-note .t-m { max-width: 900px; color: var(--text2); }
.country-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.country-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 16px; background: var(--tint); }
.country-card .t-s { color: var(--text2); }
.summary-text { max-width: 900px; color: var(--text2); }
.resource-row { display: flex; align-items: flex-start; gap: 40px; padding-top: 32px; }
.resource-row > .t-s-semi { width: 300px; flex-shrink: 0; padding-top: 12px; }
.resource-row .facts { gap: 40px; }
.resource-row .facts > .fact { flex: 0 0 200px; }
.timeline--wrap { flex-wrap: wrap; gap: 32px 0; }
.timeline--wrap::before { display: none; }
.timeline--wrap .order-step { flex: 0 0 20%; }
.timeline--wrap .order-step:nth-child(2) .order-step__num,
.timeline--wrap .order-step:nth-child(n+2) .order-step__num { background: var(--tint); color: var(--navy); }
@media (max-width: 1023px) {
  .molds-head__photo { width: 100%; height: 360px; }
  .price-table__head, .price-row { grid-template-columns: minmax(200px, 1fr) 110px 100px 120px 140px; min-width: 760px; }
  .resource-row { flex-direction: column; gap: 16px; }
  .resource-row > .t-s-semi { width: auto; padding-top: 0; }
  .timeline--wrap .order-step { flex: 0 0 33.333%; }
}
@media (max-width: 767px) {
  .molds-head__photo { height: 240px; }
  .series-head__facts, .series-head__facts--2x2 { gap: 16px; }
  .series-head__facts--2x2 > .fact { flex: 0 0 calc(50% - 8px); }
  .country-grid { grid-template-columns: 1fr; }
  .resource-row .facts { flex-wrap: wrap; gap: 16px; }
  .resource-row .facts > .fact { flex: 0 0 calc(50% - 8px); }
  .timeline--wrap .order-step { flex: 0 0 100%; }
}

/* ---------- услуга: шапка с фото ---------- */
.service-head__photo { width: 480px; flex-shrink: 0; align-self: stretch; min-height: 331px; border-radius: var(--r-lg); overflow: hidden; }
.service-head__photo img { width: 100%; height: 100%; object-fit: cover; }
.text-plain { display: flex; flex-direction: column; gap: 16px; max-width: 900px; }
.text-plain p { color: var(--text2); }
@media (max-width: 1023px) { .service-head__photo { width: 100%; height: 340px; align-self: auto; } }
@media (max-width: 767px) { .service-head__photo { height: 240px; min-height: 0; } }

/* ---------- о компании ---------- */
.about-hero { display: flex; align-items: stretch; height: 480px; margin-top: 24px; border-radius: var(--r); background: var(--sheet); overflow: hidden; }
.about-hero__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 16px; padding: var(--space-4xl); }
.about-hero__text .t-l { color: var(--text2); }
.about-hero__facts { flex-wrap: wrap; gap: 16px 40px; padding-top: 8px; }
.about-hero__facts > .fact { flex: 0 0 200px; }
.about-hero__photo { width: 560px; flex-shrink: 0; }
.about-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.staff-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.staff-card { display: flex; flex-direction: column; gap: 12px; height: 364px; padding: var(--space-xl); border-radius: var(--r); background: var(--sheet); }
.staff-card__photo { height: 220px; border-radius: 16px; background: var(--tint2); overflow: hidden; flex-shrink: 0; }
.staff-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.staff-card .t-cap { color: var(--text2); }
.cert-row { display: flex; gap: 16px; }
.cert-item { width: 332px; height: 456px; display: flex; flex-direction: column; border-radius: var(--r-lg); background: var(--sheet); overflow: hidden; }
.cert-item__photo { height: 400px; display: flex; align-items: center; justify-content: center; }
.cert-item__photo img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.cert-item__title { padding: 12px 14px 14px; font-size: 14px; font-weight: 700; line-height: 1.1; }
.clients-text { display: flex; flex-direction: column; gap: 16px; max-width: 900px; }
.clients-text p { color: var(--text2); }
@media (max-width: 1023px) {
  .about-hero { flex-direction: column-reverse; height: auto; }
  .about-hero__photo { width: 100%; height: 320px; }
  .about-hero__text { padding: 36px 40px 40px; }
  .staff-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cert-row { flex-wrap: wrap; }
}
@media (max-width: 767px) {
  .about-hero { margin-top: 16px; }
  .about-hero__photo { height: 220px; }
  .about-hero__text { padding: 24px 20px 28px; }
  .about-hero__facts > .fact { flex: 0 0 calc(50% - 8px); }
  .staff-grid { grid-template-columns: 1fr; }
  .cert-item { width: 100%; height: auto; }
  .cert-item__photo { height: 320px; }
}

/* ---------- как сделать заказ: 10 шагов ---------- */
.steps10 { display: flex; flex-direction: column; gap: 16px; }
.step10 { display: flex; align-items: flex-start; gap: 32px; padding: 32px; border-radius: var(--r); background: var(--sheet); }
.step10--tint { background: var(--tint); }
.step10__num { width: 80px; flex-shrink: 0; color: var(--text); }
.step10__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.step10__text .t-m { color: var(--text2); max-width: 900px; }
.step10__btns { display: flex; align-items: center; gap: 20px; padding-top: 8px; }
@media (max-width: 767px) {
  .step10 { flex-direction: column; gap: 12px; padding: 20px; }
  .step10__num { width: auto; }
  .step10__btns { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* ---------- отзывы ---------- */
.reviews-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.reviews-head .section-head { flex: 1 1 0; max-width: 874px; }
.rating-card--wide { width: 478px; height: 240px; justify-content: center; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.reviews-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reviews-grid .review-card { min-height: 309px; }
.video-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.video-tile { position: relative; display: block; height: 187px; border-radius: 16px; background: var(--tint2); overflow: hidden; }
.video-tile__play { position: absolute; left: 50%; top: 70px; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--sheet); color: var(--navy); }
.video-tile__caption { position: absolute; left: 16px; right: 16px; bottom: 14px; font-size: 12px; line-height: 1.35; color: var(--text2); }
/* с превью ролика (partials/video-tile.php): фото на всю плитку, снизу затемнение, подпись белая */
.video-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video-tile--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13, 42, 68, 0) 40%, rgba(13, 42, 68, 0.78) 100%); }
.video-tile--photo .video-tile__play, .video-tile--photo .video-tile__caption { z-index: 1; }
.video-tile--photo .video-tile__caption { color: #fff; }
@media (max-width: 1023px) {
  .reviews-head { flex-direction: column; }
  .rating-card--wide { width: 100%; height: auto; }
  .reviews-grid, .reviews-grid--2 { grid-template-columns: 1fr 1fr; }
  .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .reviews-grid, .reviews-grid--2, .video-grid { grid-template-columns: 1fr; }
}

/* ---------- контакты ---------- */
.contacts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-card { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; border-radius: var(--r); background: var(--sheet); }
.contact-card__map { position: relative; width: 100%; height: 260px; border-radius: 16px; background: var(--bg-map); }
.contact-card__map .map-pin { left: 50%; top: 42%; transform: translateX(-50%); }
.contact-card .address__list { gap: 12px; }
.contacts-block { display: flex; gap: 48px; padding: 48px; border-radius: var(--r); background: var(--sheet); }
.contacts-block__col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.contacts-block__col .t-h5 { margin-bottom: 0; }
.contacts-block__col li { display: flex; align-items: center; gap: 10px; }
.contacts-block__col li .ico { color: var(--navy); }
.contacts-block__col ul { display: flex; flex-direction: column; gap: 12px; }
.contacts-block__col .lead__messengers { padding-top: 4px; }
.rekv-row { grid-template-columns: 440px 1fr; }
@media (max-width: 1023px) {
  .contacts-block { flex-direction: column; padding: 40px; }
  .rekv-row { grid-template-columns: 260px 1fr; min-width: 0; }
}
@media (max-width: 767px) {
  .contacts-grid { grid-template-columns: 1fr; }
  .contact-card__map { height: 200px; }
  .contacts-block { padding: 28px 20px; gap: 24px; }
  .rekv-row { grid-template-columns: 1fr; gap: 4px; }
}

/* ---------- статьи / новости ---------- */
.article-card { display: flex; flex-direction: column; gap: 14px; padding: var(--space-xl); border-radius: var(--r); background: var(--sheet); min-width: 0; }
.article-card__photo { display: flex; align-items: center; justify-content: center; height: 180px; border-radius: var(--r-lg); background: var(--tint2); overflow: hidden; flex-shrink: 0; color: var(--muted); font-size: 13px; }
.article-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.article-card__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; }
.article-card__body .t-cap { color: var(--text2); }
.article-card__bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 6px; margin-top: auto; }
.article-card__meta { display: flex; gap: 8px; font-size: 12px; line-height: 1.35; color: var(--muted); white-space: nowrap; }
.article-card__meta b { font-weight: 600; color: var(--text2); }
.articles-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.articles-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.articles-more { display: flex; justify-content: center; }
.article-meta { display: flex; flex-wrap: wrap; gap: 20px; font-size: 13px; line-height: 1.5; color: var(--text2); }
.article-meta b { font-weight: 600; }
.article-layout { display: flex; align-items: flex-start; gap: 48px; }
.article-body { width: 900px; flex-shrink: 0; display: flex; flex-direction: column; gap: 20px; }
.article-body p, .article-body li { color: var(--text); }
.article-body :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])) { margin-top: 12px; }
.article-body :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) { margin-top: 4px; }
.article-body ul, .article-body ol { display: flex; flex-direction: column; gap: 0; padding-left: 22px; }
.article-body ul { list-style: disc; } .article-body ol { list-style: decimal; }
.article-figure { display: flex; align-items: center; justify-content: center; height: 420px; border-radius: var(--r-lg); background: var(--tint2); color: var(--muted); font-size: 13px; overflow: hidden; }
.article-figure img { width: 100%; height: 100%; object-fit: cover; }
.article-figures { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.article-figures .article-figure { height: 300px; }
.article-author { display: flex; align-items: center; gap: 16px; padding: 20px; border-radius: var(--r-lg); background: var(--tint2); margin-top: 12px; }
.article-author__photo { width: 56px; height: 56px; border-radius: 16px; background: var(--tint); flex-shrink: 0; }
.article-author__text { display: flex; flex-direction: column; gap: 2px; }
.article-author__text .t-cap { color: var(--text2); }
.toc { position: sticky; top: 24px; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: var(--r-lg); background: var(--tint2); }
.toc a { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--blue); }
@media (max-width: 1023px) {
  .articles-grid, .articles-grid--3 { grid-template-columns: 1fr 1fr; }
  .article-layout { flex-direction: column-reverse; }
  .article-body { width: 100%; }
  .toc { position: static; width: 100%; }
}
@media (max-width: 767px) {
  .articles-grid, .articles-grid--3, .article-figures { grid-template-columns: 1fr; }
  .article-figure { height: 220px; }
}

/* ---------- 404 ---------- */
.search-sheet { display: flex; align-items: flex-end; gap: 12px; padding: 24px; border-radius: var(--r); background: var(--sheet); }
.search-sheet .field { flex: 1 1 0; }
.not-found { display: flex; flex-direction: column; gap: 32px; padding-top: 24px; }
@media (max-width: 767px) { .search-sheet { flex-direction: column; align-items: stretch; } }

.thanks-head { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.thanks-head__icon { background: var(--bg-success); color: var(--green); }

.spec-table { display: flex; flex-direction: column; width: 100%; }
.spec-head--2 { grid-template-columns: 1fr 120px; }
.spec-head--3, .article-body .spec-row { grid-template-columns: minmax(200px, 1fr) minmax(160px, 1fr) 120px; }
.article-body .spec-row:nth-child(odd) { background: none; }
.article-body .spec-row:nth-child(even) { background: var(--tint2); }
.spec-table .spec-head { padding-bottom: 8px; }
.article-body .spec-row--2 { grid-template-columns: 1fr 120px; }
.article-body .spec-row { padding: 12px 16px; }
@media (max-width: 767px) { .spec-head--3, .article-body .spec-row { grid-template-columns: 1fr 1fr 60px; gap: 8px; padding: 10px 8px; } }

/* =========================================================
   МОДАЛЬНЫЕ ОКНА И COOKIE
   ========================================================= */
.modal-overlay { position: fixed; inset: 0; z-index: 100; display: none; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto; background: rgba(13, 42, 68, 0.6); }
.modal-overlay.is-open { display: flex; }
.modal { width: 560px; max-width: 100%; display: none; flex-direction: column; gap: 24px; padding: 40px; border-radius: 20px; background: var(--sheet); margin: auto 0; }
.modal.is-active { display: flex; }
.modal__head { display: flex; align-items: flex-start; gap: 16px; }
.modal__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.modal__text .t-s { color: var(--text2); }
.modal__close { flex-shrink: 0; background: var(--tint2); color: var(--text); }
.modal__fields { display: flex; flex-direction: column; gap: 12px; }
.modal__row { display: flex; gap: 12px; }
.modal__row > .field { flex: 1 1 0; }
.modal__actions { display: flex; align-items: center; gap: 16px; }
.modal__note { flex: 1 1 0; min-width: 0; font-size: 12px; line-height: 1.35; color: var(--muted); }
.modal__status { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--bg-success); color: var(--green); margin-bottom: 4px; }
/* страница под открытым окном или мобильным меню стоит на месте (сдвиг top ставит assets/js/main.js — imstechScrollLock);
   на iPhone одного overflow: hidden у body мало — страница прокручивалась под меню, меню моргало */
body.is-locked { position: fixed; left: 0; right: 0; overflow: hidden; }
.modal-overlay { overscroll-behavior: contain; }
.modal { position: relative; }   /* невидимая ловушка для ботов (position: absolute) — внутри окна, а не над ним */
.modal:focus { outline: none; }   /* фокус на само окно ставит скрипт при открытии — без рамки */
@media (max-width: 767px) {
  .modal-overlay { padding: 16px; }
  .modal { padding: 24px 20px; gap: 20px; }
  .modal__row { flex-direction: column; }
  .modal__actions { flex-direction: column; align-items: flex-start; }
}

/* =========================================================
   HOVER-СОСТОЯНИЯ
   Только смена цвета/фона (без transform, теней и свечения).
   ========================================================= */
a, button, .tab, .chip, .icon-btn, .btn, .social-pill, .tile, .service-row, .work-card {
  transition: color 0.15s ease, background-color 0.15s ease, opacity 0.15s ease;
}
@media (hover: hover) {
  /* текстовые ссылки */
  .topbar__menu a:hover, .topbar__item:hover, .topbar__phone:hover,
  .header__cats a:hover, .footer__col a:hover, .footer__legal a:hover,
  .products-menu__col a:hover, .mobile-menu__item:hover { color: var(--navy); }
  .products-menu__col a.products-menu__all:hover, .link-arrow:hover { color: var(--navy); }
  .header__callback:hover, .header__pick:hover { color: var(--blue); }
  .t-phone:hover { color: var(--navy); }

  /* кнопки */
  .btn:hover { background-image: linear-gradient(160deg, #2571d4 0%, #093f74 70.7%); }
  .btn--soft:hover { background: var(--blue-100); }
  .btn--white:hover { background: var(--tint); }
  .catalog-btn:hover { background-image: linear-gradient(160deg, #2571d4 0%, #093f74 70.7%); }

  /* круглые иконочные кнопки */
  .icon-btn:hover { background: var(--blue-100); }
  .icon-btn--navy:hover { background: var(--bg-inverse); }
  .icon-btn--white:hover { background: var(--tint); }
  .tile--stock .icon-btn:hover { background: var(--tint); }
  .float-btns a:hover, .float-btns button:hover { opacity: 0.85; }

  /* вкладки, чипы, пилюли, метки городов */
  .tab:not(.is-active):hover, .chip:not(.is-active):hover { background: #c6d6ea; }
  .social-pill:hover { background: var(--blue-100); }
  .social-pill--white:hover { background: var(--tint); }
  .delivery-card__cities span:hover { background: var(--tint); cursor: pointer; }

  /* карточки-ссылки: подсвечиваем стрелку и заголовок */
  .tile:hover .icon-btn, .service-row:hover .icon-btn { background: var(--navy); color: #fff; }
  .tile:hover .tile__title, .service-row:hover .service-row__title { color: var(--navy); }
  .tile--stock:hover .tile__title { color: #fff; }
  .tile--stock:hover .icon-btn { background: var(--tint); color: var(--navy); }
  .work-card--more:hover { background: var(--blue-100); }
  .direction:hover .link-arrow { color: var(--navy); }

  /* поля и загрузка */
  .field__control:hover, .search:hover, .delivery-card__input:hover { background: var(--tint); }
  .upload:hover { background: var(--blue-100); }
  .checkbox:hover .checkbox__text { color: var(--text); }
  .checkbox__text a:hover { color: var(--navy); }
  .gallery__thumb:hover { opacity: 1; }
  .compare-bar__clear:hover { color: var(--navy); }
  .stock-card__title:hover { color: var(--navy); }
  .hero__dot:not(.is-active):hover { background: var(--blue-100); }
}

/* Сравнение моделей (/sravnenie/, тема): колонки моделей поровну, длинные названия переносятся; узкий экран — прокрутка вбок */
.spec-sheet--compare { width: 0; min-width: 100%; overflow-x: auto; }
.spec-sheet--compare .spec-head,
.spec-sheet--compare .spec-row { grid-template-columns: minmax(140px, 1.2fr) repeat(var(--spec-cols, 2), minmax(120px, 1fr)); min-width: calc(140px + var(--spec-cols, 2) * 136px); }
.spec-sheet--compare .spec-head > span { overflow-wrap: anywhere; }
/* Видео из текста раздела ([video] WordPress задаёт ширину 640px) — не шире колонки */
.wp-video, .wp-video video { max-width: 100%; height: auto; }

/* Формы заявок (тема, плагин SD Forms — его стили не подключаются): форма окна внутри .modal, скрытая ловушка для ботов,
   ошибки у полей и формы, отправка, строка reCAPTCHA */
.modal > .sdf-form { display: contents; }
.sdf-form__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.field__error { font-size: 12px; line-height: 1.35; color: var(--red); }
.form-error { font-size: 13px; line-height: 1.5; color: var(--red); }
.field__error:empty, .form-error:empty { display: none; }
.sdf-form--loading .sdf-form__submit { opacity: .6; pointer-events: none; }
.sdf-form__captcha-notice { font-size: 12px; line-height: 1.35; color: var(--muted); }
.grecaptcha-badge { visibility: hidden; }

/* Карточка компактной формы с тремя полями (срочная заявка в сервис): три колонки на широком экране */
@media (min-width: 1024px) { .picker-compact__fields--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Калькулятор лизинга в колонку (планшет, телефон): поля во всю ширину */
@media (max-width: 1023px) { .calc__fields { width: 100%; } }

/* Чипы: длинная подпись (альбом галереи) на телефоне переносится, а не расширяет страницу */
.chip { max-width: 100%; }
@media (max-width: 767px) { .chip { white-space: normal; } }

/* ========== Этап 3, часть 5.5: карты Яндекса в блоках [data-map], панели вкладок отзывов, виджет отзывов Яндекса ========== */
[data-map] > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: inherit; }
/* карта на JavaScript API (js/maps.js): метка сайта острием в точку, выбранный город — темная подпись, кнопки масштаба */
[data-map].is-api { overflow: hidden; }
.map-pin--api { position: absolute; left: 0; top: 0; transform: translate(-50%, calc(-100% + 5px)); }
.map-pin--api.is-active .map-pin__label { background: var(--navy); color: #fff; }
.map-zoom { position: absolute; right: 16px; bottom: 16px; z-index: 5; display: flex; flex-direction: column; gap: 6px; }
.map-zoom .icon-btn { font-size: 20px; line-height: 1; color: var(--navy); box-shadow: var(--shadow-pin); }
.reviews-panel { display: flex; flex-direction: column; gap: 24px; }
.reviews-panel[hidden] { display: none; }
.yandex-reviews { width: 100%; max-width: 760px; height: 800px; border-radius: 16px; overflow: hidden; background: var(--sheet); }
.yandex-reviews iframe { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 767px) {
  .yandex-reviews { height: 640px; }
}

/* ========== Этап 3, часть 5.7: скрытые панели вкладок (склад и отзывы на главной; у панелей вёрстки свой display) ========== */
[data-panel][hidden] { display: none !important; }
/* подписи плиток главной — названия подразделов каталога, бывают длинными: обрезаются по ширине плитки */
.tile__subs span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }

/* ========== Этап 3, фаза 6: неактивные панели вкладок — видны без JavaScript, с JS скрыты сразу (inc/setup.php) ========== */
.js [data-panel][data-inactive] { display: none !important; }

/* ---------- ширины без своего макета (этап 3, фаза 7): страница не шире экрана ---------- */
/* 1024–1319: полная шапка занимает 1314 px — до 1320 работает шапка планшета; в футере подпись рейтинга переносится, ряд выполненных работ растёт по тексту */
@media (min-width: 1024px) and (max-width: 1319px) {
  .topbar { justify-content: flex-end; }
  .topbar__menu { display: none; }
  .header__sheet { padding: 0 20px; }
  .header__row1 { justify-content: space-between; gap: 16px; padding: 14px 0; }
  .logo { width: 178.5px; gap: 0; }
  .logo__img { width: 178.5px; height: 43.5px; }
  .logo__tagline { display: none; }
  .header__row1 .search { display: none; }
  .header__contacts { gap: 24px; margin-left: auto; }
  .header__burger { display: inline-flex; }
  .header__row2 { gap: 12px; }
  .header__cats, .header__pick { display: none; }
  .header__row2 .search { display: flex; }
  .mobile-menu.is-open { display: block !important; }
  .mobile-menu__contacts .t-phone, .mobile-menu__contacts .t-cap { display: none; }
  .footer__rating { flex-wrap: wrap; }
  .footer__rating .t-cap12 { width: auto; }
  .article-body { flex: 0 1 900px; width: auto; min-width: 0; }
  .toc { flex: 0 0 260px; }
  .molds__row { height: auto; }
}
/* 1024–1279: первый экран главной — по правилам планшета (заголовок не помещается рядом с фото 640 px); карточки склада в разделах — по две */
@media (min-width: 1024px) and (max-width: 1279px) {
  .hero { flex-direction: column; padding: 16px; }
  .hero__text { width: 100%; padding: 40px 40px 48px; }
  .hero__desc { max-width: none; }
  .hero__photo { width: 100%; height: 420px; }
  .product-grid { grid-template-columns: 1fr 1fr; }
}
/* 1024–1199: блоки с фото фиксированной ширины и склад — по правилам планшета, статьи по три, цифры ресурса сжимаются */
@media (min-width: 1024px) and (max-width: 1199px) {
  .articles-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .resource-row .facts > .fact { flex: 1 1 0; }
  .about-hero { flex-direction: column-reverse; height: auto; }
  .about-hero__photo { width: 100%; height: 320px; }
  .about-hero__text { padding: 36px 40px 40px; }
  .showroom-strip { flex-direction: column-reverse; height: auto; }
  .showroom-strip__photo { width: 100%; height: 260px; }
  .showroom-strip__text { padding: 36px 40px 40px; }
  .showroom { flex-direction: column; }
  .showroom__photo { flex: none; height: 340px; }
  .showroom__text { padding: 36px 40px 36px; }
  .series-head { flex-direction: column; padding: 24px; }
  .series-head__photo { width: 100%; height: 340px; }
  .product-top { flex-direction: column; padding: 24px; }
  .gallery { width: 100%; }
  .gallery__main { height: 420px; }
  .molds { flex-direction: column; gap: 32px; }
  .molds__text { width: 100%; }
  .molds__text .t-m { margin-top: 20px; }
  .molds__facts { margin-top: 20px; }
  .molds__btns { padding-top: 20px; }
  .stock__cards { flex-wrap: wrap; height: auto; }
  .stock__cards > * { flex: 0 0 calc(50% - 8px); }
  .stock-grid { grid-template-columns: 1fr 1fr; }
}
/* характеристики модели: колонки шнеков сжимаются; на телефоне при 3–4 шнеках таблица листается вбок */
.product-tabs > .spec-sheet > .spec-head, .product-tabs > .spec-sheet .spec-row { grid-template-columns: minmax(160px, 1fr) repeat(var(--spec-cols, 2), minmax(0, 200px)); }
@media (max-width: 1023px) {
  .product-tabs > .spec-sheet > .spec-head, .product-tabs > .spec-sheet .spec-row { grid-template-columns: minmax(140px, 1fr) repeat(var(--spec-cols, 2), minmax(0, 140px)); }
}
@media (max-width: 767px) {
  .product-tabs > .spec-sheet { overflow-x: auto; }
  .product-tabs > .spec-sheet > .spec-head, .product-tabs > .spec-sheet .spec-row { grid-template-columns: minmax(96px, 1fr) repeat(var(--spec-cols, 2), 84px); min-width: calc(112px + var(--spec-cols, 2) * 92px); }
  .product-tabs > .spec-sheet:has(.spec-head > :nth-child(4)) :is(.spec-head, .spec-row) { grid-template-columns: 136px repeat(var(--spec-cols, 2), 84px); min-width: calc(152px + var(--spec-cols, 2) * 92px); }
  .product-tabs > .spec-sheet .spec-row__name { overflow-wrap: anywhere; }
  .product-tabs > .spec-sheet:has(.spec-head > :nth-child(4)) .spec-row__name { hyphens: auto; }
}
/* уже 390: кнопка калькулятора лизинга («Отправить заявку на лизинг») переносится в две строки */
@media (max-width: 389px) {
  .calc__result .btn { white-space: normal; height: auto; min-height: var(--ctl-md); padding-top: 10px; padding-bottom: 10px; line-height: 1.3; }
}
/* видео YouTube в текстах моделей и статей — по ширине текста */
.product-desc iframe, .article-body iframe { max-width: 100%; height: auto; aspect-ratio: 16 / 9; }
/* тексты старого сайта: таблицы шире экрана листаются вбок, слово, которое не помещается в свой блок, переносится */
.seo-text table, .product-desc table, .article-body table { display: block; max-width: 100%; overflow-x: auto; }
.seo-text, .product-desc, .article-body { overflow-wrap: anywhere; }
/* таблица моделей серии и прайс пресс-форм: колонки общие для всех строк (subgrid) — длинное название переносится
   в своей колонке, а не сдвигает строку; фон строки до стрелки, на узком экране таблица листается вбок */
.models-table { display: grid; grid-template-columns: minmax(260px, 1fr) 120px 150px 150px 150px 120px 110px; column-gap: 16px; align-items: stretch; }
.models-table--price { grid-template-columns: minmax(300px, 1fr) 120px 150px 150px 150px; }
.models-table__head, .models-row { grid-column: 1 / -1; grid-template-columns: subgrid; min-width: 0; }
@media (max-width: 1023px) {
  .models-table { grid-template-columns: minmax(200px, 1fr) 90px 130px 130px 130px 100px 100px; }
  .models-table--price { grid-template-columns: minmax(200px, 1fr) 110px 100px 120px 140px; }
}
/* поля с подсказками (поиск, город доставки): без стрелки списка браузера — подсказки появляются при вводе */
input[list]::-webkit-calendar-picker-indicator { display: none !important; }
input[list]::-webkit-list-button { display: none !important; }
/* плитки раздела над фильтрами на телефоне — одна строка с прокруткой вбок, фильтры сразу под ней */
@media (max-width: 767px) {
  .series-grid--swipe { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--gutter); margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); scrollbar-width: none; }
  .series-grid--swipe::-webkit-scrollbar { display: none; }
  .series-grid--swipe > * { flex: 0 0 82%; scroll-snap-align: start; }
  .series-grid--swipe .series-tile__photo { height: 200px; }
}

/* ========== Cookie-баннер плагина Cookie Consent RKN — вид плашки макета (cookie-bar вёрстки) ==========
   Разметку строит плагин (assets/src/js/frontend.js), тексты — в его настройках (tools/seed-cookie.php), вид — здесь. */
body .ccrkn-banner.ccrkn-pos-bottom { right: auto; left: 16px; bottom: 16px; width: 480px; max-width: calc(100% - 32px); margin: 0; display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: 20px; background: var(--sheet); color: var(--text); box-shadow: var(--shadow-float); font: 400 14px/1.55 "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; z-index: 90; }
body .ccrkn-banner .ccrkn-title, body .ccrkn-banner .ccrkn-close { display: none; }
body .ccrkn-banner .ccrkn-description { margin: 0; font-size: 14px; line-height: 1.55; color: var(--text); }
body .ccrkn-banner .ccrkn-description br { display: none; }
body .ccrkn-banner .ccrkn-description::after { content: "."; }
body .ccrkn-banner .ccrkn-description a, body .ccrkn-modal-dialog a { color: var(--blue); text-decoration: none; }
body .ccrkn-banner .ccrkn-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
body .ccrkn-btn { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: auto; min-width: 0; height: var(--ctl-md); margin: 0; padding: 0 var(--space-2xl); border: 0; border-radius: var(--r-full); font: 700 14px/1.1 "Manrope", system-ui, sans-serif; white-space: nowrap; color: var(--text-inverse); background: var(--grad); cursor: pointer; filter: none; }
body .ccrkn-btn.ccrkn-btn-reject, body .ccrkn-btn.ccrkn-btn-customize, body .ccrkn-btn.ccrkn-btn-revoke { background: var(--tint); color: var(--navy); }
body .ccrkn-banner .ccrkn-btn-accept { order: 0; }
body .ccrkn-banner .ccrkn-btn-customize { order: 1; }
body .ccrkn-banner .ccrkn-btn-reject { order: 2; }
body .ccrkn-btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
@media (hover: hover) {
  body .ccrkn-btn:hover { filter: none; background-image: linear-gradient(160deg, #2571d4 0%, #093f74 70.7%); }
  body .ccrkn-btn.ccrkn-btn-reject:hover, body .ccrkn-btn.ccrkn-btn-customize:hover, body .ccrkn-btn.ccrkn-btn-revoke:hover { background: var(--blue-100); }
}
/* окно «Настроить» — как окна сайта (.modal) */
body .ccrkn-modal-dialog { width: min(560px, calc(100% - 32px)); padding: 40px; border-radius: 20px; background: var(--sheet); color: var(--text); box-shadow: 0 0 0 100vmax rgba(13, 42, 68, 0.6); font: 400 14px/1.55 "Manrope", system-ui, sans-serif; }
body .ccrkn-modal-dialog .ccrkn-title { margin: 0 0 16px; font-size: 24px; font-weight: 700; line-height: 1.2; }
body .ccrkn-modal-dialog .ccrkn-categories { display: flex; flex-direction: column; gap: 12px; }
body .ccrkn-modal-dialog .ccrkn-category { gap: 16px; padding: 16px; border: 0; border-radius: 12px; background: var(--tint2); }
body .ccrkn-modal-dialog .ccrkn-category-info strong { font-size: 14px; font-weight: 700; }
body .ccrkn-modal-dialog .ccrkn-category-info span { font-size: 12px; line-height: 1.35; color: var(--text2); opacity: 1; }
body .ccrkn-modal-dialog .ccrkn-toggle-slider { background: var(--blue-100); }
body .ccrkn-modal-dialog .ccrkn-toggle input:checked + .ccrkn-toggle-slider { background: var(--navy); }
body .ccrkn-modal-dialog .ccrkn-modal-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
body .ccrkn-modal-dialog .ccrkn-modal-actions .ccrkn-btn-revoke { margin: 0; border: 0; }
@media (max-width: 767px) {
  body .ccrkn-banner.ccrkn-pos-bottom { left: 8px; bottom: 8px; max-width: calc(100% - 16px); padding: 20px; }
  body .ccrkn-modal-dialog { padding: 24px; }
}

/* ========== Липкая шапка (библиотека решений UI-10; js — assets/js/main.js) ========== */
.header__sheet.is-pinned { position: fixed; top: 0; left: 50%; z-index: 80; width: min(calc(1440px - 2 * var(--gutter)), calc(100% - 2 * var(--gutter))); transform: translate(-50%, 0); border-radius: 0 0 var(--r) var(--r); box-shadow: var(--shadow-float); }
.header__sheet.is-pinned.is-hidden { transform: translate(-50%, calc(-100% - 16px)); }
.header__sheet.is-pinned.is-ready { transition: transform 0.2s ease; }
/* на компьютере в закрепленной шапке только строка разделов (логотип, поиск, телефон — в обычной шапке сверху) */
@media (min-width: 1320px) { .header__sheet.is-pinned .header__row1 { display: none; } }
/* меню из закрепленной шапки не выходит за экран — прокручивается внутри (100% — высота листа шапки) */
.header__sheet.is-pinned .products-menu, .header__sheet.is-pinned .mobile-menu { max-height: calc(100dvh - 100% - 24px); overflow-y: auto; }
/* мобильное меню прокручивается внутри, прокрутка не переходит на страницу (высоту до низа экрана ставит main.js) */
.mobile-menu { overflow-y: auto; overscroll-behavior: contain; }
/* на телефоне в закрепленной шапке только логотип, телефон и меню — без строки поиска */
@media (max-width: 767px) {
  .header__sheet.is-pinned .header__row2 { display: none; }
  .header__sheet.is-pinned .header__row1 { border-bottom: 0; }
}
/* меню-прокрутка внутри фиксированной сдвинутой шапки — свой слой отрисовки: иначе при прокрутке страницы под ним
   браузер оставлял в меню «крошки» текста страницы (точки в нижнем поле) */
.header__sheet.is-pinned .products-menu, .header__sheet.is-pinned .mobile-menu { will-change: transform; transform: translateZ(0); }
@media (prefers-reduced-motion: reduce) { .header__sheet.is-pinned.is-ready { transition: none; } }

/* Поля ввода на сенсорных экранах — не мельче 16 px: iPhone увеличивает страницу при фокусе в поле с шрифтом меньше 16 px */
@media (hover: none) and (pointer: coarse) {
  :is(input, select, textarea):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]) { font-size: 16px; }
}

/* ---------- Тексты со старого сайта (этап 4): все длинные тексты — как SEO-текст раздела ----------
   Ширина — весь контейнер; картинки — со скруглением, подпись под картинкой; несколько подряд — сетка;
   списки с номерами/точками; ссылки в тексте — синие; таблицы — без рамок, полосами. Разметку дает
   imstech_legacy_html() (inc/content-format.php). */
.seo-text, .article-sheet { align-items: stretch; }
.seo-text > *, .seo-text p, .article-sheet > *, .product-desc { max-width: none; }
.seo-text > .link-arrow, .article-sheet > .link-arrow { align-self: flex-start; }
.product-desc { display: flex; flex-direction: column; gap: 16px; }
.product-desc :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])) { font-size: 22px; line-height: 1.25; font-weight: 700; color: var(--text); margin-top: 8px; }
.product-desc :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), .seo-text :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), .article-sheet :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) { color: var(--text); margin-top: 4px; }
.seo-text ol, .article-sheet ol, .product-desc ol, .product-desc ul { display: flex; flex-direction: column; gap: 2px; padding-left: 22px; }
.seo-text ol, .article-sheet ol, .product-desc ol, .article-list--ol { list-style: decimal; }
.product-desc ul { list-style: disc; }
.seo-text li, .article-sheet li, .product-desc li { color: var(--text2); }
.seo-text li::marker, .article-sheet li::marker, .product-desc li::marker { color: var(--text2); }
.seo-text strong, .article-sheet strong, .product-desc strong, .article-body strong { font-weight: 600; color: var(--text); }
.seo-text p a:not(.link-arrow), .seo-text li a, .article-sheet p a:not(.link-arrow), .article-sheet li a,
.product-desc p a:not(.link-arrow), .product-desc li a, .article-body p a:not(.link-arrow), .article-body li a {
  color: var(--blue); text-decoration: underline; text-decoration-color: var(--blue-100); text-underline-offset: 3px;
}
.article-more { margin: 0; }
.article-more .link-arrow { white-space: normal; }
.article-figure--content { height: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  background: none; overflow: visible; border-radius: 0; color: inherit; font-size: inherit; }
.article-figure--content a { display: block; max-width: 100%; }
.article-figure--content img { display: block; width: auto; height: auto; max-width: 100%; border-radius: var(--r-lg); }
.article-figure__cap { color: var(--muted); }
.article-figures { width: 100%; }
.article-figures .article-figure--content, .article-figures .article-figure--content a { width: 100%; height: auto; }
.article-figures .article-figure--content img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--tint2); }
.article-figures--many { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.seo-text table, .article-sheet table, .product-desc table, .article-body table {
  border-collapse: separate; border-spacing: 0; width: 100%; border-radius: var(--r-lg); background: var(--sheet);
  font-size: 14px; line-height: 1.4; color: var(--text); }
.seo-text :is(td, th), .article-sheet :is(td, th), .product-desc :is(td, th), .article-body :is(td, th) {
  padding: 12px 16px; text-align: left; vertical-align: top; }
.seo-text th, .article-sheet th, .product-desc th, .article-body th,
.seo-text tr:first-child td, .article-sheet tr:first-child td, .product-desc tr:first-child td, .article-body tr:first-child td { font-weight: 600; background: var(--tint); }
.seo-text tr:nth-child(even) td, .article-sheet tr:nth-child(even) td, .product-desc tr:nth-child(even) td, .article-body tr:nth-child(even) td { background: var(--tint2); }
.seo-text iframe, .article-sheet iframe, .product-desc iframe { width: 100%; max-width: 900px; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: var(--r-lg); }
@media (max-width: 767px) {
  .article-figures--many { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .seo-text :is(td, th), .article-sheet :is(td, th), .product-desc :is(td, th), .article-body :is(td, th) { padding: 10px 12px; }
}

/* ---------- Компоненты вёрстки внутри текстов (imstech_legacy_html): работы, этапы, карточки ---------- */
.works-grid--content { width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.why__grid--content { width: 100%; }
.timeline--content { width: 100%; margin: 8px 0; padding: 0; list-style: none; }
.timeline--content .order-step { padding-left: 0; }
@media (max-width: 1023px) {
  .works-grid--content { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .works-grid--content { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .timeline--content .order-step { flex: 0 0 50%; }
}

/* видео из старых текстов (обертка wp-video убрана): 16:9, скругление */
.seo-text video, .article-sheet video, .product-desc video, .article-body video {
  display: block; width: 100%; max-width: 900px; height: auto; aspect-ratio: 16 / 9; border-radius: var(--r-lg); background: #0b1622; }

/* текст услуги (text-plain) — так же, как остальные тексты: вся ширина, списки, ссылки, таблицы, видео */
.text-plain { max-width: none; align-items: stretch; }
.text-plain > .link-arrow { align-self: flex-start; }
.text-plain :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])) { margin-top: 12px; } .text-plain :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) { color: var(--text); margin-top: 4px; }
.text-plain ol { display: flex; flex-direction: column; gap: 2px; padding-left: 22px; list-style: decimal; }
.text-plain li { color: var(--text2); } .text-plain li::marker { color: var(--text2); }
.text-plain strong { font-weight: 600; color: var(--text); }
.text-plain p a:not(.link-arrow), .text-plain li a { color: var(--blue); text-decoration: underline; text-decoration-color: var(--blue-100); text-underline-offset: 3px; }
.text-plain table { border-collapse: separate; border-spacing: 0; width: 100%; border-radius: var(--r-lg); background: var(--sheet); font-size: 14px; line-height: 1.4; color: var(--text); display: block; max-width: 100%; overflow-x: auto; }
.text-plain :is(td, th) { padding: 12px 16px; text-align: left; vertical-align: top; }
.text-plain th, .text-plain tr:first-child td { font-weight: 600; background: var(--tint); }
.text-plain tr:nth-child(even) td { background: var(--tint2); }
.text-plain iframe, .text-plain video { display: block; width: 100%; max-width: 900px; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: var(--r-lg); background: #0b1622; }
.text-plain { overflow-wrap: anywhere; }

.works-grid--content .work-card__body :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading]))::first-letter { text-transform: uppercase; }

/* этапы в текстах — в строку, как в макете (правила нумерованных списков текста их не трогают) */
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) ol.timeline {
  display: flex; flex-direction: row; flex-wrap: wrap; gap: 32px 0; padding-left: 0; list-style: none; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) ol.timeline .order-step { flex: 0 0 20%; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) .order-step__title { font-size: 14px; }
/* одиночная картинка — не выше 420 px (как article-figure макета) */
.article-figure--content img { max-height: 420px; object-fit: contain; }
/* таблицы — на всю ширину; на телефоне листаются */
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) table { display: table; width: 100%; }
@media (max-width: 767px) {
  :is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) table { display: block; overflow-x: auto; }
  :is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) ol.timeline .order-step { flex: 0 0 50%; }
}


/* этапы в узкой колонке статьи/кейса — по три в ряд */
.article-body ol.timeline .order-step { flex: 0 0 33.333%; }
@media (max-width: 767px) { .article-body ol.timeline .order-step { flex: 0 0 50%; } }


/* длинный список коротких пунктов в тексте (data-cols="2" ставит imstech_legacy_html) — две колонки */
ul[data-cols="2"] { display: block; columns: 2; column-gap: 40px; }
ul[data-cols="2"] > li { break-inside: avoid; margin-bottom: 6px; }
@media (max-width: 767px) { ul[data-cols="2"] { columns: 1; } }

/* блок «Выполненные работы» раздела: фото работ из текста над карточками работ */
.block .works-grid--content + .works-grid { margin-top: 16px; }

/* таблица характеристик старого сайта: первая строка — шапка (названия столбцов) */
.spec-html tr:first-child td, .spec-html tr:first-child th { font-weight: 600; color: var(--navy); }

/* таблица текста с длинными значениями (spec-table--wide, imstech_spec_tables) — колонки поровну */
.spec-table--wide .spec-head--2, .article-body .spec-table--wide .spec-row--2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.spec-table--wide .spec-head--3, .article-body .spec-table--wide .spec-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }

/* текст без оглавления (новости, короткие статьи, страницы, кейсы) — на всю ширину, а не колонкой 900 px макета со свободным местом под оглавление */
.article-layout > .article-body:only-child { flex: 1 1 auto; width: 100%; max-width: none; }

/* ---------- карточки фото в текстах (works-grid--content): все одинаковые, как карточки работ макета ----------
   белая карточка с отступом 12, фото в рамке 4:3 со скруглением, снимок заполняет рамку; подпись под фото.
   Сетка из коллажей (форма и изделия рядом, works-grid--wide) — рамка 2:1, чтобы коллаж не резался */
.works-grid--content { width: 100%; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; align-items: stretch; }
.works-grid--content .work-card { min-height: 0; padding: 12px; gap: 12px; background: var(--sheet); border-radius: var(--r-lg); }
.works-grid--content .work-card__photo { flex: none; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--tint2); }
.works-grid--content .work-card__photo a { display: block; width: 100%; height: 100%; }
.works-grid--content .work-card__photo img { display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; }
.works-grid--content.works-grid--wide { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.works-grid--content.works-grid--wide .work-card__photo { aspect-ratio: 2 / 1; }
@media (max-width: 767px) {
  .works-grid--content, .works-grid--content.works-grid--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .works-grid--content .work-card { padding: 8px; }
}

/* ---------- расстояния между блоками в текстах: заголовок отделен от блока над ним, компоненты не липнут к тексту ---------- */
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) > :is(:is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading]))):not(:first-child) { margin-top: 32px; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) > :is(:is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), :is(h4, :where([data-seo-original-heading="h4"])):not(:where(h4[data-seo-original-heading]))):not(:first-child) { margin-top: 12px; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) > :is(.works-grid, .timeline, ol.timeline, .why__grid, .spec-table, table, .article-figure, iframe, video):not(:first-child) { margin-top: 8px; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) > :is(.works-grid, .timeline, ol.timeline, .why__grid, .spec-table, table, .article-figure, iframe, video):not(:last-child) { margin-bottom: 8px; }

/* заголовки внутри SEO-текстов (текст раздела, услуги, описание модели) — меньше заголовков блоков страницы */
:is(.seo-text, .text-plain, .product-desc) :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])), :is(.seo-text, .text-plain, .product-desc) :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])).t-h2 { font-size: 22px; line-height: 1.2; }
:is(.seo-text, .text-plain, .product-desc) :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), :is(.seo-text, .text-plain, .product-desc) :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])).t-h4 { font-size: 17px; line-height: 1.3; }
/* SEO-текст внизу страницы — спокойнее заголовков блоков: строчные, 700, 20 px (цвет текста не бледнее --text2) */
.seo-text :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])), .seo-text :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])).t-h2 { font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: 0; text-transform: none; }
@media (max-width: 767px) {
  :is(.seo-text, .text-plain, .product-desc) :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])), :is(.seo-text, .text-plain, .product-desc) :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])).t-h2 { font-size: 19px; }
  :is(.seo-text, .text-plain, .product-desc) :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])), :is(.seo-text, .text-plain, .product-desc) :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])).t-h4 { font-size: 16px; }
  .seo-text :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])), .seo-text :is(h2, :where([data-seo-original-heading="h2"])):not(:where(h2[data-seo-original-heading])).t-h2 { font-size: 18px; }
}

/* таблицы в текстах — в одном стиле с характеристиками товара (spec-sheet): белый блок с отступом 32 px и скруглением,
   строки через одну на светлом фоне со скруглением, первая строка — жирная темно-синяя (как у spec-html) */
:is(.seo-text, .text-plain, .product-desc, .article-body) > .spec-table,
:is(.seo-text, .text-plain, .product-desc, .article-body) table {
  padding: var(--space-3xl); border-radius: var(--r); background: var(--sheet); }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) table {
  border-collapse: separate; border-spacing: 0; font-size: 14px; line-height: 1.4; color: var(--text); }
.article-sheet table { padding: 0; border-radius: 0; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) :is(td, th) { padding: 12px 16px; background: none; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) :is(th, tr:first-child td) { font-weight: 600; color: var(--navy); background: none; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) tr:nth-child(even) td { background: var(--tint2); }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) tr:nth-child(even) td:first-child { border-radius: var(--r-md) 0 0 var(--r-md); }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) tr:nth-child(even) td:last-child { border-radius: 0 var(--r-md) var(--r-md) 0; }
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) tr:nth-child(even) td:only-child { border-radius: var(--r-md); }
@media (max-width: 767px) {
  :is(.seo-text, .text-plain, .product-desc, .article-body) > .spec-table,
  :is(.seo-text, .text-plain, .product-desc, .article-body) table { padding: 20px 16px; }
  :is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) :is(td, th) { padding: 10px 12px; }
}
/* слова в ячейках не рвутся по буквам: широкая таблица листается вбок внутри белого блока (display: block, overflow-x) */
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) :is(td, th) { overflow-wrap: normal; word-break: normal; }
/* таблицы в текстах: колонки с короткими значениями (числа, размеры, сроки) — по центру, названия и длинный текст — слева
   (класс spec-center ставит imstech_legacy_html / imstech_spec_tables); прайс пресс-форм — все колонки, кроме названия */
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) :is(td, th).spec-center,
.spec-table .spec-center { text-align: center; }
.price-table__head > span:not(:first-child), .price-row > span:not(:first-child) { text-align: center; }

/* строка со значком без ссылки (partials/catalog/rows.php, пустая ссылка): без стрелки и без подсветки при наведении */
.service-row--static { cursor: default; }
@media (hover: hover) { .service-row--static:hover .service-row__title { color: var(--text); } }

/* заголовок группы характеристик («Основное») — по уровню текста строк, а не по краю подсветки строки */
.spec-group > :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) { padding: 0 16px; }
@media (max-width: 767px) { .spec-group > :is(h3, :where([data-seo-original-heading="h3"])):not(:where(h3[data-seo-original-heading])) { padding: 0 8px; } }
/* стрелки галереи модели — тень, чтобы белые кнопки были видны на светлом фото */
.gallery__arrows .icon-btn { box-shadow: var(--shadow-pin); }

/* галерея: фото в карточке в рамке 4:3, как фото в текстах (а не полоса высотой 150 px на всю ширину колонки) */
.works-grid--gallery .work-card { min-height: 0; }
.works-grid--gallery .work-card__photo { height: auto; aspect-ratio: 4 / 3; background: var(--tint2); }
.works-grid--gallery .work-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* таблица с двухстрочной шапкой (в первой строке объединенные ячейки): вторая строка — тоже заголовок, без полосы */
:is(.seo-text, .text-plain, .article-sheet, .product-desc, .article-body) tr:first-child:has([rowspan]) + tr td { font-weight: 600; color: var(--navy); background: none; }

/* The fallback wrapper must not create a layout box. */
.seo-picture { display: contents; }


/* таблицы характеристик модели: заголовки групп («Узел впрыска», «Узел смыкания», «Основное») — синей плашкой с градиентом;
   в старых таблицах (spec-html) это строка из одной ячейки (tr.spec-group-row, imstech_spec_html_layout), у таблиц
   в 2–4 колонки ширина колонок постоянная (spec-fixed: название — половина), значения соседних таблиц стоят друг под другом */
.spec-group > :first-child, .spec-group > :first-child.t-h5,
.spec-html tr.spec-group-row > :is(td, th) {
  padding: 11px 16px; border-radius: var(--r-md); background: linear-gradient(90deg, #0b4f8f 0%, #2a7ee6 100%);
  color: var(--text-inverse); font-size: 15px; font-weight: 600; line-height: 1.35; text-align: left; }
.spec-html table { border-collapse: separate; border-spacing: 0; }
.spec-html table + table { margin-top: 16px; }
.spec-html table.spec-fixed { table-layout: fixed; }
.spec-html .spec-col-name { width: 50%; }
.spec-html tr:nth-child(even) { background: none; }
.spec-html tr:nth-child(even) > :is(td, th) { background: var(--tint2); }
.spec-html tr:nth-child(even) > :first-child { border-radius: var(--r-md) 0 0 var(--r-md); }
.spec-html tr:nth-child(even) > :last-child { border-radius: 0 var(--r-md) var(--r-md) 0; }
.spec-html tr:nth-child(even) > :only-child { border-radius: var(--r-md); }
/* под шапкой thead первая строка тела — обычный параметр, не строка названий колонок */
.spec-html thead + tbody > tr:first-child > :is(td, th) { font-weight: inherit; color: inherit; }
.spec-html td, .spec-html th { overflow-wrap: break-word; }
@media (max-width: 767px) {
  .spec-group > :first-child, .spec-group > :first-child.t-h5, .spec-html tr.spec-group-row > :is(td, th) { padding: 10px 12px; font-size: 14px; }
}

/* карточка модели серии с чертежом: чертеж справа (увеличение по клику — data-lightbox), уже 1280 px — под текстом карточки */
.spec-model__card--drawing { grid-template-columns: 320px minmax(0, 1fr) 280px; }
.spec-model__drawing { align-self: start; background: var(--sheet); }
.spec-model__drawing .drawing-card__pic { padding: 16px 16px 4px; }
.spec-model__drawing .drawing-card__pic img { max-height: 220px; object-fit: contain; }
.spec-model__terms { align-self: stretch; }
@media (max-width: 1279px) {
  .spec-model__card--drawing { grid-template-columns: 320px minmax(0, 1fr); }
  .spec-model__card--drawing .spec-model__drawing { grid-column: 2; max-width: 320px; }
}
@media (max-width: 1023px) {
  .spec-model__card--drawing { grid-template-columns: 240px minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .spec-model__card--drawing { grid-template-columns: 1fr; }
  .spec-model__card--drawing .spec-model__drawing { grid-column: auto; max-width: none; }
}
