/* ============================================================
   Инженерные системы — стили
   Макет десктопа нарисован на ширину 2083 ед.; размеры заданы
   в этих единицах через --u, поэтому на 1920 страница выглядит
   как макет, а на 1440/1280 пропорционально уменьшается.
   ============================================================ */

@font-face { font-family: "Days One"; src: url("../fonts/daysone-cyr.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Days One"; src: url("../fonts/daysone-lat.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-cyr.woff2") format("woff2"); font-weight: 400 800; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-lat.woff2") format("woff2"); font-weight: 400 800; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --u: clamp(0.5px, calc(100vw / 2083), 1px);
  --orange: #dc6434;
  --orange-light: #f5b596;
  --dark: #1e1e1e;
  --tile: #090909;
  --text: #111;
  --grey-line: #7a7a7a;
  --glow: 0 calc(var(--u) * 10) calc(var(--u) * 26) calc(var(--u) * 2) rgba(170, 72, 22, .85);
  --radius-block: calc(var(--u) * 56);
  --display: "Days One", "Arial Black", sans-serif;
  --sans: "Inter", "Segoe UI", Arial, sans-serif;
  --header-h: calc(var(--u) * 110);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; background: #fff; color: var(--text); font-family: var(--sans); font-size: calc(var(--u) * 32); line-height: 1.32; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; }
p { margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3 { margin: 0; font-weight: 400; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }

.container { width: calc(100% - var(--u) * 100); max-width: calc(var(--u) * 1983); margin-inline: auto; }

.h2 { font-family: var(--display); font-size: calc(var(--u) * 64); line-height: 1.1; text-transform: uppercase; letter-spacing: .01em; }
.h2--light { color: #fff; }
.h2--orange { color: var(--orange); font-size: calc(var(--u) * 48); }

/* ---------- Кнопки ---------- */
.btn-grad {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: calc(var(--u) * 508); height: calc(var(--u) * 95); padding: 0 calc(var(--u) * 50);
  border-radius: 999px; background: linear-gradient(90deg, var(--orange) 0%, var(--orange-light) 48%, var(--orange) 100%);
  color: #111; text-decoration: none; text-transform: uppercase; font-size: calc(var(--u) * 32); font-weight: 500;
  transition: filter .2s, transform .2s;
}
.btn-grad:hover { filter: brightness(1.06); transform: translateY(-2px); }

.btn-line {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: calc(var(--u) * 508); height: calc(var(--u) * 92); padding: 0 calc(var(--u) * 16);
  border: calc(var(--u) * 5) solid transparent; border-radius: calc(var(--u) * 5);
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, var(--orange), var(--orange-light) 50%, var(--orange)) border-box;
  color: var(--orange); text-transform: uppercase; letter-spacing: .1em; font-size: calc(var(--u) * 25);
  transition: background .2s, color .2s;
}
.btn-line:hover { background: linear-gradient(var(--orange), var(--orange)) padding-box, linear-gradient(90deg, var(--orange), var(--orange-light) 50%, var(--orange)) border-box; color: #fff; }
.btn-line[hidden] { display: none; }

/* ---------- Шапка ---------- */
.header { position: sticky; top: 0; z-index: 50; }
.header__bar { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); background: #000; padding: 0 calc(var(--u) * 60) 0 calc(var(--u) * 30); }
.logo { display: flex; align-items: center; gap: calc(var(--u) * 12); color: #fff; text-decoration: none; }
.logo__icon { width: calc(var(--u) * 92); height: auto; }
.logo__text { font-weight: 800; font-size: calc(var(--u) * 24); line-height: 1.1; text-transform: uppercase; }
.nav { display: flex; flex: 1; justify-content: space-around; margin-left: calc(var(--u) * 120); }
.nav a { color: #fff; text-decoration: none; text-transform: uppercase; font-weight: 700; font-size: calc(var(--u) * 19); letter-spacing: .02em; padding: 8px 4px; position: relative; }
.nav a::after { content: ""; position: absolute; left: 4px; right: 4px; bottom: 2px; height: 2px; background: var(--orange); transform: scaleX(0); transition: transform .2s; }
.nav a:hover::after { transform: scaleX(1); }
.burger { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; display: grid; grid-template-columns: 1fr calc(var(--u) * 858); gap: calc(var(--u) * 40); padding: calc(var(--u) * 30) 0 0; }
.hero::before { /* бледный экскаватор на фоне */
  content: ""; position: absolute; z-index: -1; left: 0; top: calc(var(--u) * -10); width: calc(var(--u) * 1125); height: calc(var(--u) * 1110);
  background: url("../img/hero-bg.webp") left bottom / cover no-repeat; opacity: .11;
}
.hero__text { padding: calc(var(--u) * 95) 0 calc(var(--u) * 60) calc(var(--u) * 62); }
.hero__title { font-family: var(--display); font-size: calc(var(--u) * 68); line-height: 1.1; text-transform: uppercase; letter-spacing: 0; }
.hero__title .nowrap-d { display: block; }
.hero__subtitle { margin-top: calc(var(--u) * 115); color: var(--orange); font-weight: 800; font-size: calc(var(--u) * 40); line-height: 1.15; text-transform: uppercase; max-width: calc(var(--u) * 640); }
.hero__lead { margin-top: calc(var(--u) * 14); max-width: calc(var(--u) * 740); font-size: calc(var(--u) * 32); line-height: 1.2; }
.hero__cta--desktop { margin-top: calc(var(--u) * 58); margin-left: calc(var(--u) * -18); }
.hero__cta--mobile, .geo { display: none; }
.hero__photo { align-self: start; border-radius: calc(var(--u) * 90); overflow: hidden; height: calc(var(--u) * 930); }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 66% 50%; }

/* ---------- О компании ---------- */
.about { position: relative; margin-top: calc(var(--u) * 55); background: var(--dark); border-radius: var(--radius-block); color: #fff; padding: calc(var(--u) * 45) calc(var(--u) * 75) calc(var(--u) * 150) calc(var(--u) * 46); }
.about__body { display: grid; grid-template-columns: 1fr calc(var(--u) * 825); gap: calc(var(--u) * 80); }
.about__text .h2 { margin-top: calc(var(--u) * 45); }
.about__text p { margin-top: calc(var(--u) * 80); font-size: calc(var(--u) * 32); font-weight: 500; line-height: 1.62; max-width: calc(var(--u) * 880); }
.stats { display: grid; grid-template-columns: repeat(2, calc(var(--u) * 336)); justify-content: space-between; row-gap: calc(var(--u) * 38); }
.stat { background: var(--tile); border-radius: calc(var(--u) * 4); min-height: calc(var(--u) * 278); padding: calc(var(--u) * 36) calc(var(--u) * 20) calc(var(--u) * 20) calc(var(--u) * 26); display: flex; flex-direction: column; }
.stat__icon { width: calc(var(--u) * 92); height: calc(var(--u) * 84); fill: none; stroke: var(--orange); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.stat__num { margin-top: auto; font-family: var(--display); color: var(--orange); font-size: calc(var(--u) * 58); line-height: 1; letter-spacing: .08em; white-space: nowrap; }
.stat__num small { font-size: .55em; letter-spacing: .08em; }
.stat__label { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 21); line-height: 1.2; letter-spacing: .13em; font-weight: 500; }
.about__tab { position: absolute; left: 0; bottom: 0; width: calc(var(--u) * 1022); background: #fff; border-top-right-radius: calc(var(--u) * 70); padding: calc(var(--u) * 16) 0 0 calc(var(--u) * 14); }
.about__tab .h2 { color: #000; font-size: calc(var(--u) * 58); line-height: 1; }

/* ---------- Почему выбирают нас ---------- */
.why { padding: calc(var(--u) * 28) 0 calc(var(--u) * 36); }
.why__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: calc(var(--u) * 30) calc(var(--u) * 40); }
.why__item { display: flex; align-items: flex-start; gap: calc(var(--u) * 18); font-size: calc(var(--u) * 23.5); line-height: 1.22; font-weight: 600; }
.why__item b { display: block; font-weight: 700; }
.why__icon { flex: 0 0 calc(var(--u) * 78); height: calc(var(--u) * 78); fill: none; stroke: var(--orange); stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Наши услуги ---------- */
.services { position: relative; overflow: hidden; background: var(--dark); border-radius: var(--radius-block); color: #fff; padding: calc(var(--u) * 90) calc(var(--u) * 47) calc(var(--u) * 26); }
.services__blueprint { position: absolute; top: 0; right: 0; width: calc(var(--u) * 1036); height: auto; opacity: .95; pointer-events: none; }
.services__head { position: relative; max-width: calc(var(--u) * 840); }
.services__head p { margin-top: calc(var(--u) * 80); font-size: calc(var(--u) * 32); line-height: 1.32; }
.services__grid { position: relative; margin-top: calc(var(--u) * 80); display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 66) calc(var(--u) * 60); }
.srv {
  min-height: calc(var(--u) * 266); border-radius: calc(var(--u) * 46); border: calc(var(--u) * 4) solid #d6d6d6;
  background: linear-gradient(rgba(255,255,255,.8), rgba(255,255,255,.8)), var(--bg) center / cover no-repeat;
  box-shadow: var(--glow); color: #111; padding: calc(var(--u) * 16) calc(var(--u) * 36) calc(var(--u) * 30);
  display: flex; flex-direction: column; gap: calc(var(--u) * 20);
  transition: transform .25s, box-shadow .25s;
}
.srv:hover { transform: translateY(-4px); box-shadow: 0 calc(var(--u) * 16) calc(var(--u) * 34) calc(var(--u) * 4) rgba(200, 90, 30, .9); }
.srv__title { font-family: var(--display); font-size: calc(var(--u) * 40); line-height: 1.35; letter-spacing: .02em; }
.srv p { font-size: calc(var(--u) * 20.5); font-weight: 600; line-height: 1.3; max-width: calc(var(--u) * 340); }

/* ---------- Достижения ---------- */
.achievements { padding-top: calc(var(--u) * 100); }
.achievements .h2 { padding-left: calc(var(--u) * 46); }
.achievements__lead { margin: calc(var(--u) * 60) 0 0 calc(var(--u) * 42); max-width: calc(var(--u) * 640); line-height: 1.32; }
.contracts { position: relative; margin: calc(var(--u) * 45) calc(var(--u) * 76) 0 calc(var(--u) * 38); min-height: calc(var(--u) * 912); border: 2px solid var(--grey-line); border-radius: calc(var(--u) * 6); overflow: hidden; }
.contracts__map { position: absolute; top: 0; left: 42%; width: 71%; height: auto; }
.contracts__body { position: relative; padding: calc(var(--u) * 105) 37% calc(var(--u) * 60) calc(var(--u) * 18); }
.contracts__title { font-family: var(--display); font-size: calc(var(--u) * 42); line-height: 1.5; letter-spacing: .06em; max-width: calc(var(--u) * 1080); }
.client { display: grid; grid-template-columns: calc(var(--u) * 440) 1fr; align-items: center; margin-top: calc(var(--u) * 45); max-width: calc(var(--u) * 1230); }
.client + .client { margin-top: calc(var(--u) * 90); }
.client__logo { width: calc(var(--u) * 415); height: auto; position: relative; }
.client__logo + p { position: relative; font-size: calc(var(--u) * 30); line-height: 1.24; }
.client__logo + p::before { content: ""; position: absolute; left: calc(var(--u) * -34); top: .95em; width: calc(var(--u) * 22); height: 2px; background: var(--orange); }

/* ---------- Сертификаты / письма ---------- */
.docs { padding: calc(var(--u) * 90) 0 0 calc(var(--u) * 38); }
.docs .h2 { margin-bottom: calc(var(--u) * 14); }
.docs__frame { max-width: calc(var(--u) * 1400); border: 2px solid var(--grey-line); border-radius: calc(var(--u) * 6); padding: calc(var(--u) * 24) calc(var(--u) * 18); }
.docs__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 20); }
.doc { display: block; width: 100%; padding: 0; border: 0; background: #d9d9d9; aspect-ratio: 324 / 450; overflow: hidden; }
.doc img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .3s; }
button.doc:hover img { transform: scale(1.03); }
.docs .btn-line { margin-top: calc(var(--u) * 26); }

/* ---------- Контакты ---------- */
.contacts { margin-top: calc(var(--u) * 95); background: var(--dark); border-radius: var(--radius-block); color: #fff; padding: calc(var(--u) * 26) calc(var(--u) * 36) calc(var(--u) * 58) calc(var(--u) * 40); }
.contacts__lead { margin-top: calc(var(--u) * 85); max-width: calc(var(--u) * 740); font-size: calc(var(--u) * 26.5); line-height: 1.3; }
.contacts__cards { margin-top: calc(var(--u) * 62); display: grid; grid-template-columns: 363fr 598fr 363fr 363fr; gap: calc(var(--u) * 52); }
.ccard { background: #fff; color: #111; border-radius: calc(var(--u) * 50); box-shadow: var(--glow); padding: calc(var(--u) * 12) calc(var(--u) * 14) calc(var(--u) * 28) calc(var(--u) * 12); min-height: calc(var(--u) * 190); font-weight: 700; font-size: calc(var(--u) * 27); line-height: 1.2; display: flex; flex-direction: column; gap: calc(var(--u) * 30); }
.ccard__label { font-family: var(--display); font-weight: 400; color: var(--orange); font-size: calc(var(--u) * 31); line-height: 1.1; margin-bottom: calc(var(--u) * -14); }
.ccard a { text-decoration: none; }
.ccard a.u { text-decoration: underline; text-underline-offset: 3px; }
.ccard a:hover { color: var(--orange); }
.ccard--wide { font-size: calc(var(--u) * 28.5); }
.contacts__form-title { margin-top: calc(var(--u) * 150); }
.contacts__sub { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 28.5); }

.form { margin-top: calc(var(--u) * 58); max-width: calc(var(--u) * 1543); }
.form__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 23); }
.form__field { width: 100%; height: calc(var(--u) * 82); border: 2px solid transparent; border-radius: calc(var(--u) * 3); background: #fff; padding: 0 calc(var(--u) * 17); font: inherit; font-size: max(16px, calc(var(--u) * 28.5)); color: #111; }
.form__field::placeholder { color: #767676; }
.form__field:focus { outline: none; border-color: var(--orange); }
.form__field.is-invalid { border-color: #e5484d; }
.form__field--area { display: block; margin-top: calc(var(--u) * 40); height: calc(var(--u) * 126); padding: calc(var(--u) * 42) calc(var(--u) * 23) 0; resize: vertical; min-height: calc(var(--u) * 126); }
.form__bottom { margin-top: calc(var(--u) * 36); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.consent { display: flex; align-items: flex-start; gap: 10px; font-size: calc(var(--u) * 21); line-height: 1.3; color: #cfcfcf; max-width: calc(var(--u) * 900); cursor: pointer; }
.consent input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--orange); }
.consent a { color: #fff; }
.consent.is-invalid { color: #ff8a8d; }
.btn-line--sm { min-width: calc(var(--u) * 288); height: calc(var(--u) * 56); border-width: 3px; font-size: calc(var(--u) * 21); letter-spacing: .02em; flex: none; }
.form .btn-line { background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, var(--orange), var(--orange-light) 50%, var(--orange)) border-box; }
.form .btn-line:hover { background: linear-gradient(var(--orange), var(--orange)) padding-box, linear-gradient(90deg, var(--orange), var(--orange-light) 50%, var(--orange)) border-box; }
.form .btn-line:disabled { opacity: .6; cursor: wait; }
.form__status { margin-top: 14px; min-height: 1.3em; font-size: calc(var(--u) * 24); }
.form__status.is-ok { color: #7ee2a0; }
.form__status.is-err { color: #ff8a8d; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Подвал ---------- */
.footer { position: relative; overflow: hidden; margin-top: calc(var(--u) * 78); margin-bottom: calc(var(--u) * 24); border-radius: var(--radius-block); color: #fff;
  background: linear-gradient(rgba(40,40,40,.72), rgba(40,40,40,.72)), url("../img/footer-bg.webp") center 60% / cover no-repeat, #333; }
.footer__brand { display: flex; align-items: center; justify-content: center; gap: calc(var(--u) * 46); padding: calc(var(--u) * 48) 0 calc(var(--u) * 50); }
.footer__logo { width: calc(var(--u) * 320); height: auto; }
.footer__name { font-weight: 800; font-size: calc(var(--u) * 70); line-height: 1.12; text-transform: uppercase; padding-top: calc(var(--u) * 110); }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding: 16px calc(var(--u) * 50) 18px; border-top: 1px solid rgba(255,255,255,.15); font-size: 14px; color: rgba(255,255,255,.75); }
.footer-bottom-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.footer-bottom-links a { color: inherit; opacity: .9; text-decoration: none; }
.footer-bottom-links a:hover { opacity: 1; color: #fff; text-decoration: underline; }

/* ---------- Лайтбокс ---------- */
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.88); display: flex; align-items: center; justify-content: center; padding: 48px 72px; }
.lightbox[hidden] { display: none; }
.lightbox__figure { margin: 0; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.lightbox__figure img { max-height: calc(100vh - 130px); width: auto; background: #fff; }
.lightbox__figure figcaption { color: #ddd; font-size: 15px; text-align: center; }
.lightbox__close, .lightbox__nav { position: absolute; border: 0; background: rgba(255,255,255,.1); color: #fff; width: 52px; height: 52px; border-radius: 50%; font-size: 34px; line-height: 1; display: grid; place-items: center; }
.lightbox__close:hover, .lightbox__nav:hover { background: var(--orange); }
.lightbox__close { top: 16px; right: 16px; }
.lightbox__nav--prev { left: 12px; top: 50%; transform: translateY(-50%); }
.lightbox__nav--next { right: 12px; top: 50%; transform: translateY(-50%); }

/* ---------- Cookie ---------- */
.cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 90; max-width: 760px; margin-inline: auto; display: flex; align-items: center; gap: 16px; background: #111; color: #eee; border: 1px solid #333; border-radius: 14px; padding: 14px 18px; font-size: 14px; line-height: 1.4; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.cookie[hidden] { display: none; }
.cookie a { color: var(--orange-light); }
.cookie__btn { flex: none; border: 0; border-radius: 999px; padding: 10px 20px; background: var(--orange); color: #fff; font-weight: 600; }
.cookie__btn:hover { filter: brightness(1.1); }

/* ============================================================
   Планшет
   ============================================================ */
@media (max-width: 1180px) {
  :root { --u: clamp(0.5px, calc(100vw / 1700), 1px); }
  .hero { grid-template-columns: 1fr; }
  .hero__text { padding: calc(var(--u) * 60) 0 0 calc(var(--u) * 30); }
  .hero__title { font-size: calc(var(--u) * 60); }
  .hero__photo { margin-top: calc(var(--u) * 40); height: calc(var(--u) * 640); }
  .about__body { grid-template-columns: 1fr; gap: calc(var(--u) * 60); }
  .stats { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .stat { min-height: 0; }
  .why__grid { grid-template-columns: 1fr 1fr; }
  .services__blueprint { width: 55%; }
  .contacts__cards { grid-template-columns: 1fr 1fr; gap: 24px; }
  .nav { margin-left: 24px; }
  .nav a, .srv p, .stat__label, .consent { font-size: max(12px, calc(var(--u) * 21)); }
}
@media (max-width: 960px) {
  .services__grid { grid-template-columns: 1fr 1fr; }
  .client { grid-template-columns: 1fr; gap: 12px; }
  .client__logo + p::before { display: none; }
  .form__bottom { flex-direction: column; align-items: stretch; }
  .form__bottom .btn-line { align-self: flex-end; }
}

/* ============================================================
   Мобильная версия (по мобильному макету)
   ============================================================ */
@media (max-width: 767px) {
  :root { --u: 1px; --header-h: 56px; --radius-block: 28px; --glow: 0 6px 14px 1px rgba(170, 72, 22, .85); }
  body { font-size: 14px; line-height: 1.35; }
  .container { width: calc(100% - 32px); }
  .h2 { font-size: 24px; }
  .h2--orange { font-size: 17px; }

  .header__bar { padding: 0 14px 0 12px; }
  .logo__icon { width: 44px; }
  .logo__text { font-size: 12px; }
  .burger { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 0 4px; background: none; border: 0; }
  .burger span { display: block; width: 28px; height: 2px; background: var(--orange); transition: transform .25s, opacity .25s; }
  .burger span:nth-child(2) { width: 22px; background: #fff; }
  .burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .nav { position: absolute; top: 100%; left: 0; right: 0; margin: 0; flex-direction: column; background: #000; padding: 8px 20px 18px; border-bottom-left-radius: 18px; border-bottom-right-radius: 18px; display: none; }
  .nav.is-open { display: flex; }
  .nav a { font-size: 15px; padding: 12px 0; border-bottom: 1px solid #222; }
  .nav a:last-child { border-bottom: 0; }

  .hero { grid-template-columns: 1fr 41%; gap: 12px; padding-top: 24px; }
  .hero::before { width: 60%; height: 360px; top: 30px; }
  .hero__text { padding: 50px 0 0 4px; }
  .hero__title { font-size: clamp(17px, 5.6vw, 26px); line-height: 1.32; }
  .hero__title .nowrap-d { white-space: normal; }
  .hero__subtitle { margin-top: 40px; font-size: clamp(12px, 3.6vw, 16px); }
  .hero__lead { margin-top: 2px; font-size: clamp(12px, 3.6vw, 16px); }
  .hero__cta--desktop { display: none; }
  .hero__photo { height: auto; aspect-ratio: 164 / 235; border-radius: 40px; margin-top: 18px; }
  .hero__photo img { object-position: 72% 50%; }

  .geo { display: block; position: relative; grid-column: 1 / -1; margin-top: 14px; aspect-ratio: 336 / 168; background: #111; overflow: hidden; color: #fff; }
  .geo__map { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .geo__helmet { position: absolute; left: 49%; top: 24%; width: 16%; height: auto; }
  .geo__title { position: absolute; left: 7%; top: 12%; color: var(--orange); font-weight: 800; font-size: clamp(16px, 5.4vw, 24px); text-transform: uppercase; }
  .geo__text { position: absolute; left: 7%; bottom: 13%; font-size: clamp(10px, 3.1vw, 14px); letter-spacing: .08em; }
  .geo__region { position: absolute; right: 7%; bottom: 25%; color: var(--orange); font-size: clamp(10px, 3.1vw, 14px); letter-spacing: .08em; text-transform: uppercase; padding-left: 26px; }
  .geo__region::before { content: ""; position: absolute; left: 0; top: 50%; width: 20px; height: 2px; background: var(--orange); }
  .hero__cta--mobile { display: inline-flex; grid-column: 1 / -1; justify-self: start; margin-top: 14px; min-width: 0; width: 60%; height: 44px; font-size: 14px; }

  .about { margin-top: 26px; padding: 12px 12px 60px; }
  .about__text .h2 { margin-top: 0; font-size: 26px; }
  .about__text p { margin-top: 6px; font-size: 14px; line-height: 1.5; }
  .about__body { gap: 16px; }
  .stats { grid-template-columns: repeat(4, 1fr); gap: 3px; }
  .stat { padding: 8px 5px 10px; border-radius: 2px; }
  .stat__icon { width: 26px; height: 24px; }
  .stat__num { margin-top: 6px; font-size: clamp(11px, 3.3vw, 15px); letter-spacing: .04em; }
  .stat__label { margin-top: 5px; font-size: clamp(8px, 2.3vw, 10px); letter-spacing: .06em; }
  .about__tab { width: 76%; border-top-right-radius: 30px; padding: 8px 0 0 6px; }
  .about__tab .h2 { font-size: clamp(13px, 4.2vw, 19px); }

  .why { padding: 16px 0 22px; }
  .why__grid { grid-template-columns: 1fr 1fr; gap: 22px 16px; }
  .why__item { font-size: 12px; gap: 6px; }
  .why__icon { flex-basis: 24px; height: 24px; }

  .services { padding: 16px 12px 22px; }
  .services__blueprint { width: 70%; opacity: .5; }
  .services__head p { margin-top: 10px; font-size: 14px; line-height: 1.45; }
  .services__grid { grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
  .srv { min-height: 88px; border-radius: 14px; border-width: 2px; padding: 8px 10px 10px; gap: 8px; }
  .srv__title { font-size: clamp(11px, 3.2vw, 14px); line-height: 1.25; }
  .srv p { font-size: clamp(8px, 2.4vw, 11px); }

  .achievements { padding-top: 40px; }
  .achievements .h2 { padding-left: 0; font-size: 26px; }
  .achievements__lead { margin: 10px 0 0; max-width: 70%; font-size: 14px; }
  .contracts { margin: 18px 0 0; min-height: 0; }
  .contracts__map { left: 42%; width: 71%; }
  .contracts__body { padding: 16px 44% 18px 10px; }
  .contracts__title { font-size: clamp(10px, 2.9vw, 13px); line-height: 1.4; letter-spacing: .03em; }
  .client { grid-template-columns: 1fr; margin-top: 12px; gap: 6px; }
  .client + .client { margin-top: 14px; }
  .client__logo { width: 90px; }
  .client__logo + p { font-size: clamp(8px, 2.4vw, 11px); }

  .docs { padding: 30px 0 0; }
  .docs .h2 { margin-bottom: 6px; }
  .docs__frame { padding: 8px 6px; }
  .docs__grid { gap: 5px; }
  .docs .btn-line { margin-top: 12px; min-width: 0; height: 30px; padding: 0 14px; border-width: 2px; font-size: 10px; }

  .contacts { margin-top: 36px; padding: 14px 14px 22px; }
  .contacts .h2 { font-size: 26px; }
  .contacts__lead { margin-top: 8px; font-size: 13px; }
  .contacts__cards { margin-top: 18px; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ccard { border-radius: 16px; padding: 8px 10px 12px; min-height: 0; gap: 8px; font-size: clamp(11px, 3.4vw, 14px); }
  .ccard a[href^="tel:"] { white-space: nowrap; }
  .ccard--wide { font-size: clamp(11px, 2.9vw, 12px); }
  .ccard__label { font-size: 13px; margin-bottom: -2px; }
  .contacts__form-title { margin-top: 30px; }
  .contacts__sub { font-size: 12px; }
  .form { margin-top: 14px; }
  .form__row { gap: 8px; }
  .form__field { height: 44px; font-size: 16px; padding: 0 10px; }
  .form__field--area { margin-top: 10px; height: 80px; min-height: 80px; padding: 10px; }
  .form__bottom { margin-top: 14px; flex-direction: row; align-items: center; gap: 12px; }
  .consent { font-size: 11px; }
  .btn-line--sm { min-width: 110px; height: 34px; font-size: 12px; }
  .form__status { font-size: 13px; }

  .footer { margin-top: 26px; margin-bottom: 12px; }
  .footer__brand { gap: 14px; padding: 18px 0 16px; }
  .footer__logo { width: 92px; }
  .footer__name { font-size: 18px; padding-top: 26px; }
  .footer__bottom { flex-direction: column; font-size: 12px; padding: 12px 14px 14px; }

  .lightbox { padding: 56px 8px; }
  .lightbox__nav { top: auto; bottom: 10px; transform: none; }
  .cookie { flex-direction: column; align-items: stretch; font-size: 13px; }
}

@media (max-width: 420px) {
  .form__row { grid-template-columns: 1fr; }
  .ccard { padding: 8px 8px 10px; }
}

@media (max-width: 340px) {
  .contacts__cards { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
