/* Wortex Print — мелкие поправки поверх стилей темы wortex (dist/styles/main.css). Основные стили не трогаем. */
html { background: #fff; color-scheme: light; }
body { background: #fff; }

/* ---- Шапка закреплена сверху при прокрутке (правка Виктора 2026-09-04, №1 по главной).
   Тема на экранах от 1024 px делала шапку «отпускаемой» (position: absolute); на телефоне она и так закреплена.
   Отступ под шапку у контента (primary-header-margin-offset, 170 px) в теме уже есть, поэтому ничего не прыгает. */
@media (min-width: 1024px) {
  .primary-header { position: fixed; box-shadow: 0 0 6px rgba(0, 0, 0, .15); }
}

/* ---- Телефон (до 640 px) ---- */
@media (max-width: 639px) {
  /* Верхняя полоса: телефон и почта не влезали в одну строку, почта обрезалась справа. */
  .primary-header-top__container { flex-wrap: nowrap; }
  .primary-header-top__container > .flex-1 { min-width: 0; }
  .primary-header-top__link { font-size: 13px; white-space: nowrap; }

  /* Слайдер: в описании слайда таблица из четырёх колонок с иконками не помещалась в ширину экрана.
     Делаем две колонки в два ряда, иконки поменьше. */
  .main-slider-slide__description table { width: 100%; table-layout: fixed; }
  .main-slider-slide__description tr,
  .main-slider-slide__description tbody { display: block; }
  .main-slider-slide__description tr[align="center"] td { display: inline-block; width: 48%; box-sizing: border-box; vertical-align: top; padding: 6px 2px; font-size: 13px; line-height: 1.25; }
  .main-slider-slide__description tr[align="center"] td img { width: 40px; height: auto; margin: 0 auto 4px; display: block; }
  /* Слайды со списком «иконка + текст»: строки-распорки убираем, текст меньше. */
  .main-slider-slide__description td[height="15"] { display: none; }
  .main-slider-slide__description td[valign] { font-size: 13px; line-height: 1.3; padding: 4px 0; }
  .main-slider-slide__description td[valign="top"] { width: 44px; padding-right: 8px; }
  .main-slider-slide__description td[valign="top"] img { width: 32px; height: auto; }

  /* Точки под лентой клиентов: их 13, вылезали за край. */
  .clients-section__pagination { overflow: hidden; max-width: 140px; }
}

/* ---- Главный слайдер: сцена вместо растрового фона ----
   Раньше фон слайда был одной картинкой 1920×543, куда были впечатаны четыре фото и строка подписей
   (текст не читался поиском, на широких экранах мылился). Теперь фон синий цветом, четыре фото —
   отдельные файлы (assets/slider/), скос — clip-path, подписи — живой текст с SVG-иконками.
   Слои переключает скрипт темы по data-slide-index, прозрачность по ширине экрана — из стилей темы. */
.main-slider { background-color: #004370; }
.main-slider .hero-scene { background: radial-gradient(ellipse 55% 75% at 42% 55%, #002f5d 0%, rgba(0, 47, 93, 0) 100%); }
.hero-scene__container { position: relative; height: 100%; }
/* Сцена прижата к верху, а не к центру: иначе при коротком тексте слайда подписи ложатся на точки и стрелки.
   Слайду задана минимальная высота, чтобы сцена (370 фото + подписи) помещалась над блоком управления. */
.hero-scene__inner {
  position: absolute; right: 3rem; top: 3rem; width: 792px;
  transform-origin: right top;
}
@media (min-width: 1280px) { .main-slider-slide { min-height: 440px; } }
@media (min-width: 1600px) { .main-slider-slide { min-height: 470px; } }
.hero-scene__photos { position: relative; height: 370px; }
.hero-scene__photo {
  position: absolute; top: 0; width: 231px; height: 370px;
  clip-path: polygon(53px 0, 100% 0, 178px 100%, 0 100%);
}
.hero-scene__photo:nth-child(1) { left: 0; }
.hero-scene__photo:nth-child(2) { left: 187px; }
.hero-scene__photo:nth-child(3) { left: 374px; }
.hero-scene__photo:nth-child(4) { left: 561px; }
.hero-scene__photo img { display: block; width: 231px; height: 370px; }
.hero-scene__features {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 18px;
  width: 739px; margin: 18px 0 0; padding: 0; list-style: none;
  font-size: 13px; line-height: 1.2; color: #fff;
}
.hero-scene__features li { display: flex; align-items: center; gap: 8px; }
.hero-scene__icon { flex: 0 0 22px; width: 22px; height: 22px; color: #8ec4ef; }
/* Между 1280 и 1600 сцена чуть меньше, чтобы не наезжать на текст слайда. */
@media (max-width: 1599px) { .hero-scene__inner { right: 0; transform: scale(.88); } }
@media (max-width: 1279px) { .hero-scene__inner { right: 0; transform: scale(.72); } }
@media (max-width: 1023px) { .hero-scene__inner { right: 50%; top: 50%; transform: translate(50%, -50%) scale(.72); } }

/* На планшете подписи под фото лишние (мелко и полупрозрачно), на телефоне сцена не нужна вовсе:
   раньше фон просвечивал на 10 % и подписи «призраком» ложились на текст слайда. */
@media (max-width: 1023px) { .hero-scene__features { display: none; } }
@media (max-width: 767px)  { .main-slider .hero-scene { display: none; } }

/* ==== Первый экран, варианты A и B (partials/sections/hero.php) ====
   Общее: текст и фото не пересекаются, одна типографическая пара темы (Gilroy заголовок, Roboto текст),
   подписи-преимущества отдельной полосой под слайдом. Слои фото и подписей переключает скрипт темы
   классом active по data-slide-index, поэтому все слои лежат стопкой и показывается активный. */
.main-slider.hero { padding: 48px 0 0; overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.hero__grid > * { min-width: 0; }
.hero__text .swiper-container, .hero__text .swiper-slide { width: 100%; max-width: 100%; }
.hero__text .swiper-container { padding: 0; }
.hero .main-slider-slide { min-height: 0; height: auto; justify-content: center; }
.hero__overtitle { font: 600 12px/1.4 "Roboto", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #8ec4ef; margin-bottom: 14px; }
.hero__title { text-shadow: none; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: clamp(28px, 3.1vw, 42px); line-height: 1.15; margin: 0 0 16px; max-width: 14em; }
.hero__desc { font-size: 17px; line-height: 1.55; color: rgba(255, 255, 255, .82); max-width: 520px; }
.hero__desc p { margin: 0 0 10px; }
.hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin-top: 26px; }
.hero__phone { font-family: "Gilroy", sans-serif; font-weight: 600; font-size: 18px; color: #fff; white-space: nowrap; }
.hero__phone:hover { color: #8ec4ef; }
/* Слои фото: стопкой, без фонового рисунка темы */
/* Рамки под фото 2:3 — формат вертикальных картинок ChatGPT (1024×1536), чтобы не резать. */
.hero__media { position: relative; aspect-ratio: 2.62 / 1; }
.hero__photo { aspect-ratio: 2 / 3; }
.main-slider.hero .main-slider__bg-image { position: absolute; inset: 0; background: none; z-index: 0; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
.main-slider.hero .main-slider__bg-image.active { opacity: 1; visibility: visible; z-index: 1; }
.hero__photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.hero__photo { min-width: 0; border-radius: 10px; overflow: hidden; background: #0d2440; }
.hero__photo img { display: block; width: 100%; max-width: 100%; height: 100%; object-fit: cover; }
/* Полоса преимуществ и управление */
.hero__bottom { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 40px; padding: 18px 0 22px; border-top: 1px solid rgba(255, 255, 255, .12); }
.hero__features { position: relative; flex: 1 1 auto; min-height: 0; }
/* Активный список подписей задаёт высоту блока (иначе на телефоне второй ряд карточек ложился под стрелки). */
.main-slider.hero .hero__features-list.active { position: relative; }
.hero__features-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 20px; align-items: center; font-size: 14px; line-height: 1.25; color: #fff; }
.hero__features-list li { display: flex; align-items: center; gap: 10px; }
.hero__icon { flex: 0 0 22px; width: 22px; height: 22px; color: #8ec4ef; }
.hero__controls { display: flex; align-items: center; gap: 22px; flex: 0 0 auto; }
.hero .main-slider__pagination { margin: 0; }

/* --- Вариант A: тёмный строгий --- */
.hero--a { background: #0f2a44; }

/* --- Вариант B: светлый воздушный --- */
.hero--b { background: #f3f6fa; color: #1f2d3d; }
.hero--b .hero__overtitle { color: #2384de; }
.hero--b .hero__title { color: #1f2d3d; }
.hero--b .hero__desc { color: #4a5a6a; }
.hero--b .hero__phone { color: #1f2d3d; }
.hero--b .hero__phone:hover { color: #2384de; }
.hero--b .hero__photo { border-radius: 14px; box-shadow: 0 14px 30px rgba(20, 40, 70, .16); background: #dfe6ee; }
.hero--b .hero__photo:nth-child(2n) { transform: translateY(22px); }
.hero--b .hero__media { padding-bottom: 22px; }
.hero--b .hero__bottom { border-top: 0; margin-top: 36px; padding: 0 0 28px; }
.hero--b .hero__features-list { gap: 12px; color: #1f2d3d; }
.hero--b .hero__features-list li { background: #fff; border-radius: 12px; padding: 12px 14px; box-shadow: 0 2px 8px rgba(20, 40, 70, .06); font-size: 13.5px; }
.hero--b .hero__icon { color: #2384de; }

/* Планшет и телефон */
@media (max-width: 1023px) {
  .hero__grid { grid-template-columns: 1fr; gap: 28px; }
  .hero__media { max-width: min(640px, 100%); }
  .hero__bottom { flex-direction: column; align-items: stretch; gap: 18px; }
  .hero__features-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__controls { justify-content: space-between; }
}
@media (max-width: 639px) {
  .main-slider.hero { padding-top: 28px; }
  .hero__title { font-size: 26px; }
  .hero__desc { font-size: 15px; }
  .hero__photos { gap: 6px; }
  .hero__photo { border-radius: 8px; }
  .hero--b .hero__photo:nth-child(2n) { transform: translateY(10px); }
  .hero__features-list { font-size: 13px; }
  .hero__actions .btn { width: 100%; }
  .hero__phone { font-size: 17px; }
}

/* Карусель на первом экране: при смене слайда двигается только текст, всё остальное стоит на месте
   (Виктор, 2026-09-04). Высоты закреплены под самый длинный слайд, анимации сдвига темы отключены. */
.hero .main-slider-slide { justify-content: flex-start; }
.hero .main-slider-slide__title,
.hero .main-slider-slide__description,
.hero .main-slider-slide__overtitle { transform: none !important; transition: opacity .3s ease !important; }
.hero__overtitle { min-height: 17px; }
.hero__title { min-height: 2.3em; }
.hero__desc { min-height: 3.1em; }
.hero__features-list li span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 1024px) {
  .hero__text { min-height: 320px; }
  .hero__features { min-height: 64px; }
  .hero--b .hero__features-list li { min-height: 60px; }
}

/* Кнопка прижата к низу блока и стоит на одном месте при любой длине текста; под ней телефон и почта
   с иконками, неброско (Виктор, 2026-09-04). */
.hero .main-slider-slide { display: flex; flex-direction: column; }
.hero__desc { min-height: 0; }
.hero__actions { margin-top: auto; padding-top: 28px; flex-direction: column; align-items: flex-start; gap: 28px; }
/* Правка Виктора №3 (2026-09-04): кнопка одной ширины на всех слайдах (по самой длинной подписи «Рассчитать навигацию»),
   чтобы при листании не менялась; телефон и почта отодвинуты от кнопки на 28 px, чтобы не сливались. */
.hero__actions .btn { box-sizing: border-box; min-width: 244px; text-align: center; justify-content: center; }
.hero__contacts { display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: 15px; }
.hero__contacts a { display: inline-flex; align-items: center; gap: 9px; color: #4a5a6a; white-space: nowrap; }
.hero__contacts a:hover { color: #2384de; }
.hero__contacts i { font-size: 15px; color: #2384de; line-height: 1; }
.hero--a .hero__contacts a { color: rgba(255, 255, 255, .8); }
.hero--a .hero__contacts a:hover { color: #fff; }
.hero--a .hero__contacts i { color: #8ec4ef; }
@media (min-width: 1024px) { .hero__text { min-height: 360px; } }
@media (max-width: 639px) { .hero__actions .btn { width: 100%; } .hero__contacts { gap: 8px 18px; font-size: 14px; } }

/* ---- Карточка услуги без фото: вместо картинки слово (meta thumb_text), пока фото не сгенерированы (Виктор, правка №4, 2026-09-04).
   Пропорции как у фото услуг 500×300, фон тот же серо-голубой, шрифт как у названия карточки. */
.primary-card__image-text { display: flex; align-items: center; justify-content: center; aspect-ratio: 5 / 3; width: 100%; font: 600 22.5px/1.2 "Gilroy", "Roboto", sans-serif; color: #2c3a4b; letter-spacing: .02em; }

/* ---- Портфолио без проектов: окна-заглушки вместо фото, квадрат как у превью 500×500 (Виктор, правка №6, 2026-09-04). */
.portfolio-slide-empty { aspect-ratio: 1 / 1; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 16px; box-sizing: border-box; background: #e5ebf1; border: 2px dashed #b9c6d3; border-radius: .25rem; color: #2c3a4b; font-family: "Gilroy", "Roboto", sans-serif; }
.portfolio-slide-empty__title { font-size: 14px; font-weight: 500; color: #6b7a89; margin-bottom: 10px; }
.portfolio-slide-empty__text { font-size: 20px; font-weight: 600; line-height: 1.2; }
.portfolio-slide-empty__note { font-size: 12px; color: #8a97a5; margin-top: 10px; }
@media (max-width: 639px) { .portfolio-slide-empty__text { font-size: 16px; } .portfolio-slide-empty__title, .portfolio-slide-empty__note { font-size: 11px; } }

/* ---- Портфолио: пять типов работ кнопками в ряд, без карусели и стрелок (Виктор, правка №7, 2026-09-04). */
/* Сетка из 6 колонок: три кнопки в первой строке (по 2 колонки), две во второй со сдвигом на колонку — ровно по центру,
   все одной ширины (Виктор: «сделай кнопки в 2 строчки, аккуратно отцентруй»). */
.portfolio-types-nav { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-left: 0; }
.portfolio-types-nav .portfolio-categories-nav__item { white-space: normal; text-align: center; line-height: 1.2; height: auto; min-height: 44px; padding: 10px 12px; }
.portfolio-types-nav .portfolio-categories-nav__item:nth-child(1) { grid-column: 1 / 3; }
.portfolio-types-nav .portfolio-categories-nav__item:nth-child(2) { grid-column: 3 / 5; }
.portfolio-types-nav .portfolio-categories-nav__item:nth-child(3) { grid-column: 5 / 7; }
.portfolio-types-nav .portfolio-categories-nav__item:nth-child(4) { grid-column: 2 / 4; }
.portfolio-types-nav .portfolio-categories-nav__item:nth-child(5) { grid-column: 4 / 6; }
@media (max-width: 639px) {
  /* Телефон: два столбца, пятая кнопка во всю ширину. */
  .portfolio-types-nav { grid-template-columns: 1fr 1fr; gap: 8px; }
  .portfolio-types-nav .portfolio-categories-nav__item { font-size: 13px; padding: 8px; }
  .portfolio-types-nav .portfolio-categories-nav__item:nth-child(1), .portfolio-types-nav .portfolio-categories-nav__item:nth-child(3) { grid-column: 1 / 2; }
  .portfolio-types-nav .portfolio-categories-nav__item:nth-child(2), .portfolio-types-nav .portfolio-categories-nav__item:nth-child(4) { grid-column: 2 / 3; }
  .portfolio-types-nav .portfolio-categories-nav__item:nth-child(5) { grid-column: 1 / 3; }
}

/* ---- Блок «Бизнесу / Частным заказчикам» вместо блока с сертификатом (Виктор, 2026-09-04, вариант 1). */
.audience__lead { max-width: 640px; margin: 0 0 32px; font-size: 17px; line-height: 1.55; }
.audience__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.audience__card { display: flex; flex-direction: column; padding: 32px 32px 28px; border: 1px solid #e1e1e1; border-radius: .75rem; background: #fff; color: #2c3a4b; transition: box-shadow .3s, transform .3s; }
.audience__card:hover { box-shadow: 0 12px 36px rgba(35, 68, 108, .12); transform: translateY(-2px); }
.audience__label { font: 600 12px/1.4 "Roboto", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #2384de; margin-bottom: 12px; }
.audience__title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 22.5px; line-height: 1.3; margin: 0 0 12px; }
.audience__text { color: #4a5a6a; line-height: 1.55; margin: 0 0 8px; }
.audience__list { margin: 8px 0 20px; }
.audience__list li { padding-left: 1.1rem; }
.audience__btn { margin-top: auto; padding-top: 8px; }
@media (max-width: 1023px) { .audience__grid { grid-template-columns: 1fr; gap: 16px; } .audience__card { padding: 24px 22px 22px; } }
@media (max-width: 639px) { .audience__btn .btn { width: 100%; text-align: center; } .audience__lead { font-size: 15px; margin-bottom: 20px; } }

/* ---- География работ (Виктор, 2026-09-04): заголовок проще, три кнопки городов столбиком одной ширины,
   точки на карте меньше (растут по клику), окошко с названием и адресом своим шрифтом. */
/* Две копии кнопок: одна для широкого экрана (hidden lg:block), другая для телефона (lg:hidden) — показываем только нужную. */
.geo-section__cities { gap: 8px; }
.geo-section__cities .geo-section__city { margin: 0; text-align: center; }
@media (min-width: 1024px) {
  .geo-section__cities.lg\:block { display: flex; flex-direction: column; width: 260px; max-width: 100%; }
  .geo-section__cities.lg\:block .geo-section__city { width: 100%; }
  .geo-section__cities.lg\:hidden { display: none; }
}
@media (max-width: 1023px) {
  .geo-section__cities.lg\:hidden { display: flex; flex-direction: row; width: 100%; }
  .geo-section__cities.lg\:hidden .geo-section__city { flex: 1 1 0; padding-left: 8px; padding-right: 8px; }
  .geo-section__cities.hidden { display: none; }
}
.geo-balloon { font-family: "Gilroy", "Roboto", sans-serif; color: #2c3a4b; padding: 4px 6px 2px 2px; min-width: 180px; max-width: 280px; }
/* Первая строка — город (Виктор, 2026-09-04). */
.geo-balloon__city { font: 600 11px/1.3 "Roboto", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #2384de; margin-bottom: 5px; }
.geo-balloon__title { font-weight: 600; font-size: 16px; line-height: 1.25; margin-bottom: 4px; }
.geo-balloon__address { font-family: "Roboto", sans-serif; font-size: 13px; line-height: 1.4; color: #6b7a89; }
[class*="ymaps-2"][class*="-balloon__content"] { font-family: "Gilroy", "Roboto", sans-serif !important; padding: 12px 34px 12px 14px !important; }
[class*="ymaps-2"][class*="-balloon"] { box-shadow: 0 8px 24px rgba(35, 68, 108, .18) !important; }

/* ---- География: заставка над картой до выбора города (Виктор, правка №10, 2026-09-04). Картинка — assets/geo-cover.jpg
   (генерируется в ChatGPT), пока её нет — фирменный градиент с точками. */
.geo-section__map-wrap { position: relative; }
.geo-section__cover { position: absolute; inset: 0; z-index: 5; display: flex; align-items: flex-end; border-radius: .25rem; overflow: hidden; cursor: pointer;
  background: #1f2d3d url('/assets/geo-cover.jpg') center / cover no-repeat; transition: opacity .35s; }
.geo-section__cover::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31, 45, 61, .05) 30%, rgba(31, 45, 61, .85) 100%); }
.geo-section__cover.is-hidden { opacity: 0; pointer-events: none; }
.geo-section__cover-text { position: relative; padding: 28px 28px 30px; color: #fff; max-width: 480px; }
.geo-section__cover-title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 24px; line-height: 1.2; margin-bottom: 10px; }
.geo-section__cover-note { font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, .82); margin-bottom: 14px; }
/* Призыв к действию выделен: жирнее, крупнее, с синей чертой слева (Виктор, 2026-09-04). */
.geo-section__cover-cta { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 18px; line-height: 1.3; color: #fff; padding-left: 14px; border-left: 3px solid #2384de; margin-bottom: 18px; }
.geo-section__cover-btn { display: inline-block; }
@media (max-width: 639px) { .geo-section__cover-text { padding: 20px 18px 22px; } .geo-section__cover-title { font-size: 20px; } }

/* ---- «Вопросы и ответы» на главной вместо «С чего чаще всего начинают» (Виктор, 2026-09-04, вариант 1). */
.faq__grid { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; align-items: start; }
.faq__aside { position: sticky; top: 190px; }
.faq__lead { line-height: 1.55; margin: 0 0 22px; max-width: 360px; }
.faq__item { border: 1px solid #e1e1e1; border-radius: .75rem; background: #fff; margin-bottom: 10px; transition: box-shadow .3s; }
.faq__item[open] { box-shadow: 0 8px 24px rgba(35, 68, 108, .08); }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none;
  font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 17px; line-height: 1.3; color: #2c3a4b; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q:hover { color: #2384de; }
.faq__icon { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #d5dde5; position: relative; transition: transform .25s, background .25s, border-color .25s; }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; background: #2384de; transform: translate(-50%, -50%); }
.faq__icon::before { width: 10px; height: 2px; }
.faq__icon::after { width: 2px; height: 10px; transition: opacity .2s; }
.faq__item[open] .faq__icon { transform: rotate(45deg); background: #2384de; border-color: #2384de; }
.faq__item[open] .faq__icon::before, .faq__item[open] .faq__icon::after { background: #fff; }
.faq__a { padding: 0 22px 20px; color: #4a5a6a; line-height: 1.6; }
.faq__a p { margin: 0 0 8px; }
@media (max-width: 1023px) { .faq__grid { grid-template-columns: 1fr; gap: 20px; } .faq__aside { position: static; } .faq__aside .btn { display: none; } }
@media (max-width: 639px) { .faq__q { padding: 14px 16px; font-size: 15px; } .faq__a { padding: 0 16px 16px; font-size: 14px; } }

/* ---- «Наше оборудование» вместо «Почему нам можно доверить объект» (Виктор, 2026-09-04). Схематичные рисунки — свои SVG. */
.equip__lead { max-width: 680px; margin: 0 0 32px; font-size: 17px; line-height: 1.55; }
.equip__card { display: flex; flex-direction: column; border: 1px solid #e1e1e1; border-radius: .75rem; background: #fff; padding: 24px 22px; color: #2c3a4b; transition: box-shadow .3s, transform .3s; }
.equip__card:hover { box-shadow: 0 12px 36px rgba(35, 68, 108, .12); transform: translateY(-2px); }
.equip__card--big { flex-direction: row; align-items: center; gap: 36px; padding: 32px; margin-bottom: 20px; background: #f5f8fb; border-color: #e5ebf1; }
.equip__card--big .equip__pic { flex: 0 0 300px; }
.equip__pic { color: #2384de; margin-bottom: 14px; }
.equip__icon { width: 100%; max-width: 300px; height: auto; display: block; }
.equip__card:not(.equip__card--big) .equip__icon { max-width: 150px; }
.equip__type { font: 600 11px/1.4 "Roboto", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #2384de; margin-bottom: 8px; }
.equip__name { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 19px; line-height: 1.3; margin: 0 0 12px; }
.equip__card--big .equip__name { font-size: 26px; }
.equip__key { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.equip__key-value { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: 28px; line-height: 1; color: #2c3a4b; white-space: nowrap; }
.equip__card--big .equip__key-value { font-size: 44px; }
.equip__key-label { font-size: 14px; color: #6b7a89; }
.equip__specs { list-style: none; margin: 0 0 10px; padding: 0; font-size: 14px; line-height: 1.5; color: #4a5a6a; }
.equip__specs li { position: relative; padding-left: 14px; margin: 4px 0; }
.equip__specs li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: #2384de; }
.equip__note { margin: auto 0 0; padding-top: 8px; font-size: 14px; line-height: 1.5; color: #6b7a89; }
.equip__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 1023px) { .equip__grid { grid-template-columns: 1fr 1fr; gap: 16px; } .equip__card--big { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px 22px; } .equip__card--big .equip__pic { flex: none; } .equip__card--big .equip__name { font-size: 22px; } .equip__card--big .equip__key-value { font-size: 36px; } }
@media (max-width: 639px) { .equip__grid { grid-template-columns: 1fr; } .equip__lead { font-size: 15px; margin-bottom: 20px; } }

/* ---- Подвал: ссылки на услуги кнопками, в 2–3 строки, по центру (Виктор, 2026-09-04). Те же названия, что в «Наши услуги». */
.footer-services { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 36px 0; max-width: 900px; margin: 0 auto; } /* 900 px → на широком экране три ряда по четыре кнопки */
.footer-services__item { white-space: nowrap; font-size: 14px; padding-left: 20px; padding-right: 20px; }
@media (max-width: 767px) { .footer-services { padding: 24px 0; gap: 8px; } .footer-services__item { white-space: normal; text-align: center; height: auto; min-height: 40px; padding: 9px 14px; font-size: 13px; line-height: 1.2; flex: 1 1 calc(50% - 8px); } .footer-services__item--all { flex-basis: 100%; } }

/* ---- Капча в формах заявки: пример на сложение (Виктор, 2026-09-04). */
.captcha-field { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 14px; }
.captcha-field__label { font-size: 14px; color: #4a5a6a; }
.captcha-field__label b { color: #2c3a4b; font-weight: 600; white-space: nowrap; }
.captcha-field__input { width: 96px; height: 40px; padding: 0 12px; border: 1px solid #d5dde5; border-radius: .5rem; font: inherit; font-size: 15px; color: #2c3a4b; background: #fff; }
.captcha-field__input:focus { outline: none; border-color: #2384de; box-shadow: 0 0 0 3px rgba(35, 132, 222, .15); }

/* ---- Подвал: телефон, почта и режим работы одним столбиком (Виктор, 2026-09-04). */
.footer-contacts__row { margin: 4px 0; }
.footer-contacts__email { color: #2c3a4b; font-size: 15px; display: inline-flex; align-items: center; }
.footer-contacts__email:hover { color: #2384de; }
.footer-contacts__email i { color: #2384de; }
.footer-contacts__hours { font-size: 13px; color: #6b7a89; line-height: 1.5; max-width: 320px; }

/* Рейтинги в шапке и блок отзывов (Яндекс Карты + Авито), Виктор 2026-09-04 */
.header-ratings { display: none; gap: 18px; }
@media (min-width: 1024px) { .header-ratings { display: flex; } }
.header-rating { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; white-space: nowrap; color: #2c3a4b; border: none; }
.header-rating:hover { color: #2384de; }
.header-rating b { font-weight: 700; }
.header-rating span { color: #6b7a8a; }
.reviews-star { display: inline-block; width: 13px; height: 13px; background: #f5a623; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.reviews-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.reviews-col { border: 1px solid #e1e1e1; border-radius: .75rem; background: #fff; overflow: hidden; }
.reviews-col__head { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid #e9eef3; }
.reviews-col__source { font: 600 16px/1.2 "Gilroy", "Roboto", sans-serif; color: #2c3a4b; flex: 1; }
.reviews-col__rating { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #2c3a4b; }
.reviews-col__all { font-size: 13px; color: #2384de; border-bottom: 1px solid transparent; }
.reviews-col__all:hover { border-bottom-color: currentColor; }
.reviews-yandex iframe { display: block; width: 100%; height: 560px; border: 0; }
.reviews-avito { padding: 8px 20px 20px; }
.reviews-item { padding: 14px 0; border-bottom: 1px solid #e9eef3; }
.reviews-item:last-of-type { border-bottom: 0; }
.reviews-item__top { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.reviews-item__name { font-weight: 600; color: #2c3a4b; }
.reviews-item__date { color: #6b7a8a; }
.reviews-item__what { margin-top: 2px; font-size: 12px; color: #2384de; }
.reviews-item__text { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: #2c3a4b; }
.reviews-avito__more { display: inline-block; margin-top: 12px; font-size: 14px; color: #2384de; border: none; }
@media (max-width: 1023px) {
  .reviews-grid { grid-template-columns: 1fr; }
  .reviews-yandex iframe { height: 480px; }
}
/* Слоган в верхней полосе показываем только когда хватает места рядом с рейтингами */
@media (min-width: 1024px) and (max-width: 1599px) { .header-ratings + div { display: none !important; } }

/* ---- «Отзывы» — карусель реальных отзывов с Яндекс Карт вместо «Преимуществ» (Виктор, 2026-09-04). */
.tm__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.tm__lead { max-width: 560px; margin: 0; line-height: 1.55; }
.tm__badge { display: inline-flex; align-items: center; gap: 12px; padding: 12px 18px; background: #fff; border: 1px solid #e1e1e1; border-radius: .75rem; color: #2c3a4b; text-decoration: none; transition: box-shadow .3s; }
.tm__badge:hover { box-shadow: 0 8px 24px rgba(35, 68, 108, .12); color: #2c3a4b; }
.tm__badge-value { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: 30px; line-height: 1; }
.tm__badge-text { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #6b7a89; }
.tm__stars { display: inline-flex; gap: 2px; }
.tm__star { width: 14px; height: 14px; background: #f5a623; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.tm__slider { position: relative; }
.tm__track { display: flex; gap: 20px; overflow-x: auto; padding: 4px 4px 20px; margin: -4px -4px 0; scrollbar-width: none; }
/* Прилипание карточек — только на сенсорных экранах: на компьютере оно мешает плавной прокрутке по стрелкам в Chrome. */
@media (hover: none) { .tm__track { scroll-snap-type: x mandatory; } .tm__card { scroll-snap-align: start; } }
.tm__track::-webkit-scrollbar { display: none; }
.tm__card { flex: 0 0 calc((100% - 40px) / 3); display: flex; flex-direction: column; margin: 0; padding: 26px 26px 22px; background: #fff; border: 1px solid #e1e1e1; border-radius: .75rem; color: #2c3a4b; }
.tm__card .tm__stars { margin-bottom: 14px; }
.tm__text { flex: 1; margin: 0 0 18px; font-size: 15px; line-height: 1.6; color: #2c3a4b; }
.tm__foot { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid #eef2f6; padding-top: 14px; }
.tm__author { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 15px; }
.tm__meta { font-size: 13px; color: #6b7a89; }
.tm__nav { display: flex; justify-content: flex-end; margin-top: 4px; }
@media (max-width: 1023px) { .tm__card { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 639px) { .tm__card { flex-basis: 86%; padding: 20px 18px 18px; } .tm__badge-value { font-size: 24px; } .tm__nav { justify-content: center; } }

/* ---- «Что говорят заказчики»: значки источников в заголовках столбцов (Виктор, 2026-09-04). Значки — свои упрощённые
   рисунки в цветах сервисов, не официальные файлы логотипов. */
.reviews-col__source { display: inline-flex; align-items: center; gap: 8px; }
.reviews-logo { width: 22px; height: 22px; flex: none; }

/* ---- Стена логотипов «С кем работали» (правка Виктора 2026-09-05: крупнее, 12–18 в кадре, блок невысокий) ----
   Два ряда карточек на всю ширину экрана, ряды едут в разные стороны, второй экземпляр ряда даёт бесшовный круг.
   На наведении ряд останавливается; при отключённой анимации в системе ряды стоят на месте. */
.clients-wall { display: flex; flex-direction: column; gap: 14px; }
.clients-wall__row { display: flex; width: max-content; }
.clients-wall__row:hover .clients-wall__track { animation-play-state: paused; }
.clients-wall__track { display: flex; gap: 14px; padding-right: 14px; animation: clients-wall-move var(--wall-duration, 150s) linear infinite; }
.clients-wall__row--reverse .clients-wall__track { animation-direction: reverse; }
.clients-wall__item { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 236px; height: 120px; padding: 14px 20px; box-sizing: border-box; background: #fff; border: 1px solid #ececec; border-radius: 8px; }
.clients-wall__item img { display: block; width: auto; height: auto; max-width: 196px; max-height: 88px; }
@keyframes clients-wall-move { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (max-width: 767px) {
  .clients-wall { gap: 10px; }
  .clients-wall__track { gap: 10px; padding-right: 10px; }
  .clients-wall__item { width: 152px; height: 84px; padding: 10px 12px; }
  .clients-wall__item img { max-width: 124px; max-height: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  .clients-wall__track { animation: none; }
}

/* ---- Пункты меню «Услуги», «Отзывы» и «Портфолио» (Виктор, 2026-09-05): ведут на блоки главной /#services («Наши услуги»), /#reviews («Что говорят заказчики») и /#portfolio («Наши работы»).
   Шапка закреплена, поэтому при переходе по якорю блок отступает от неё; прокрутка плавная. */
html { scroll-behavior: smooth; }
#services, #reviews, #portfolio { scroll-margin-top: 196px; }
@media (max-width: 1023px) { #services, #reviews, #portfolio { scroll-margin-top: 90px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---- Полоса «Нарисуем макет вывески на фото фасада — бесплатно» (Виктор, 2026-09-05: «ярче, креативнее, заметнее»).
   Карточка-«эскиз»: пунктирная рамка и уголки-метки, как на макете, значок карандаша, крупный текст, слово «бесплатно»
   подсвечено фирменным синим. Цвета берутся из переменных темы (theme-navy.css), запасные значения — для светлого вида. */
.mini-note { padding: 28px 0; }
.mini-note__card { position: relative; display: flex; align-items: center; gap: 28px; padding: 30px 40px; border-radius: .75rem;
  background: radial-gradient(ellipse 60% 120% at 0% 50%, rgba(35, 132, 222, .22) 0%, rgba(35, 132, 222, 0) 70%), var(--t-surface, #fff);
  outline: 1px dashed var(--t-neon, #2384de); outline-offset: -10px; box-shadow: 0 0 0 1px var(--t-line, #e1e1e1);
  transition: box-shadow .3s, outline-offset .3s; }
.mini-note__card:hover { box-shadow: var(--t-glow, 0 10px 30px rgba(35, 132, 222, .18)); outline-offset: -7px; }
/* Уголки-метки, как на печатном макете */
.mini-note__card::before, .mini-note__card::after { content: ""; position: absolute; width: 22px; height: 22px; border: 2px solid var(--t-neon, #2384de); }
.mini-note__card::before { top: 4px; left: 4px; border-right: 0; border-bottom: 0; border-radius: .75rem 0 0 0; }
.mini-note__card::after { right: 4px; bottom: 4px; border-left: 0; border-top: 0; border-radius: 0 0 .75rem 0; }
.mini-note__icon { flex: none; width: 76px; height: 76px; display: flex; align-items: center; justify-content: center; border-radius: 50%;
  color: var(--t-neon, #2384de); background: rgba(35, 132, 222, .12); box-shadow: inset 0 0 0 1px rgba(93, 177, 255, .35); }
.mini-note__icon svg { width: 44px; height: 44px; }
.mini-note__text { flex: 1 1 auto; margin: 0; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: clamp(20px, 2vw, 26px); line-height: 1.3; color: var(--t-text, #2c3a4b); }
.mini-note__hl { font-style: normal; color: var(--t-neon, #2384de); text-shadow: var(--t-glow-text, none); white-space: nowrap; }
.mini-note__action { flex: none; }
.mini-note__btn { min-width: 200px; }
@media (max-width: 1023px) { .mini-note__card { padding: 26px 28px; gap: 20px; } .mini-note__icon { width: 60px; height: 60px; } .mini-note__icon svg { width: 34px; height: 34px; } }
@media (max-width: 767px) {
  .mini-note__card { flex-direction: column; align-items: flex-start; padding: 26px 22px 22px; }
  .mini-note__text { font-size: 19px; }
  .mini-note__action, .mini-note__btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .mini-note__card { transition: none; } }

/* ---- Контакты (Виктор, 2026-09-05: «убери всю воду, оставь режим работы, адрес, телефон, почту и реквизиты, оформи культурно»).
   Слева карточки телефон / почта / режим / адрес, справа карта; ниже реквизиты ООО и ИП с кнопкой «Скопировать». */
.contacts-page__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 32px; align-items: stretch; }
.contacts-page__list { display: flex; flex-direction: column; gap: 12px; }
.contact-card { display: flex; align-items: flex-start; gap: 16px; padding: 18px 22px; border-radius: .75rem; background: var(--t-surface, #fff);
  border: 1px solid var(--t-line, #e1e1e1); color: var(--t-text, #2c3a4b); text-decoration: none; transition: box-shadow .25s, border-color .25s; }
a.contact-card:hover { border-color: var(--t-neon, #2384de); box-shadow: var(--t-glow, 0 8px 24px rgba(35, 132, 222, .14)); color: var(--t-text, #2c3a4b); }
.contact-card__icon { flex: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%;
  color: var(--t-neon, #2384de); background: rgba(35, 132, 222, .12); }
.contact-card__icon svg { width: 22px; height: 22px; }
.contact-card__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.contact-card__label { font: 600 11px/1.4 "Roboto", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--t-text-3, #6b7a89); }
.contact-card__value { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; }
.contact-card__value--big { font-size: 24px; }
.contact-card__line { display: block; }
.contacts-page__map .contact-map { height: 100%; min-height: 420px; border: 1px solid var(--t-line, #e1e1e1); border-radius: .75rem; }
/* Реквизиты */
.requisites { margin-top: 48px; }
.requisites__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.requisites__card { border-radius: .75rem; background: var(--t-surface, #fff); border: 1px solid var(--t-line, #e1e1e1); padding: 24px 26px; }
.requisites__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.requisites__title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 19px; line-height: 1.3; margin: 0 0 4px; }
.requisites__note { font-size: 13px; color: var(--t-text-3, #6b7a89); line-height: 1.4; }
.requisites__copy { flex: none; white-space: nowrap; }
.requisites__copy.is-done { border-color: var(--t-neon, #2384de); color: var(--t-neon, #2384de); }
.requisites__rows { margin: 0; }
.requisites__row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-top: 1px solid var(--t-line, #eef2f6); font-size: 14px; line-height: 1.45; }
.requisites__row dt { color: var(--t-text-3, #6b7a89); margin: 0; }
.requisites__row dd { margin: 0; color: var(--t-text, #2c3a4b); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; user-select: all; }
@media (max-width: 1023px) {
  .contacts-page__grid { grid-template-columns: 1fr; }
  .contacts-page__map .contact-map { min-height: 340px; }
  .requisites__grid { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  .contact-card { padding: 14px 16px; gap: 12px; }
  .contact-card__value--big { font-size: 21px; }
  .requisites__card { padding: 18px 16px; }
  .requisites__head { flex-direction: column; }
  .requisites__copy { width: 100%; }
  .requisites__row { grid-template-columns: 1fr; gap: 2px; }
}



/* ==== Первый экран: фото «дугой» — выбор Виктора 2026-09-05 (из вариантов ряд / дуга / 2×2 / лента; остальные в Архиве).
   Четыре фото в ряд, крайние на 26 px ниже, средние выше — симметрично. Фото крупнее исходного ряда: колонка с фото шире
   (0.9:1.1), кадр выше (3:5 вместо 2:3 — те же фото, чуть срезаны края по бокам). Заголовок чуть компактнее (до 40 px),
   чтобы при более узкой колонке остаться в две строки. ==== */
@media (min-width: 1024px) { .hero--photos-arc .hero__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 36px; } }
.hero--photos-arc .hero__title { font-size: clamp(28px, 2.95vw, 40px); max-width: none; }
.hero--photos-arc .hero__media { aspect-ratio: 2.55 / 1; padding-bottom: 26px; }
.hero--photos-arc .hero__photos { gap: 12px; }
.hero--photos-arc .hero__photo, .hero--b.hero--photos-arc .hero__photo:nth-child(2n) { aspect-ratio: 3 / 5; transform: none; }
.hero.hero--photos-arc .hero__photo:nth-child(1), .hero.hero--photos-arc .hero__photo:nth-child(4) { transform: translateY(26px); }
@media (max-width: 639px) {
  .hero--photos-arc .hero__photos { gap: 6px; }
  .hero.hero--photos-arc .hero__photo:nth-child(1), .hero.hero--photos-arc .hero__photo:nth-child(4) { transform: translateY(12px); }
  .hero--photos-arc .hero__media { padding-bottom: 12px; }
}

/* ---- Заголовки формы заявки — обычный текст в стиле h2/h3 темы, не заголовки (SEO-аудит 2026-09-05: форма на всех
   страницах, и один и тот же H2 повторялся на каждой). Размеры — как у h2 и h3 темы. */
.contact-form__title { margin: 0 0 1rem; font-family: "Gilroy", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-weight: 700; font-size: 1.5rem; line-height: 1.25; color: var(--t-text, #2c3a4b); }
.contact-form__sub { margin: 0 0 1rem; font-family: "Gilroy", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-weight: 700; font-size: 1.25rem; line-height: 1.3; }
@media (min-width: 1024px) { .contact-form__title { font-size: 1.875rem; } }

/* ---- Тексты услуг с разделами H2/H3 (SEO-тексты 2026-09-05): заголовки внутри текста компактнее, чем заголовки блоков. */
.service-text h2 { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 22px; line-height: 1.3; margin: 30px 0 10px; color: var(--t-text, #2c3a4b); }
.service-text h3 { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 17px; line-height: 1.35; margin: 20px 0 6px; color: var(--t-text, #2c3a4b); }
.service-text p { margin: 0 0 12px; line-height: 1.6; }
.service-text ul { margin: 0 0 12px; }
@media (max-width: 639px) { .service-text h2 { font-size: 20px; margin-top: 24px; } .service-text h3 { font-size: 16px; } }

/* Согласование вывески с КГА или ТРЦ (главная, после «Как проходит заказ», Виктор 2026-09-07) */
.approval__top { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.approval__label { font: 600 12px/1.4 "Roboto", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--t-neon, #2384de); margin-bottom: 12px; }
.approval__title { margin: 0 0 16px; }
.approval__lead { max-width: 560px; margin: 0 0 28px; font-size: 17px; line-height: 1.55; color: var(--t-text-2, #4a5a6a); }
.approval__price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; margin-bottom: 24px; }
.approval__price { display: flex; align-items: baseline; gap: 14px; }
.approval__price-new { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: clamp(34px, 4vw, 48px); line-height: 1; color: var(--t-neon, #2384de); text-shadow: var(--t-glow-text, none); white-space: nowrap; }
.approval__price-old { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: clamp(18px, 2vw, 24px); color: var(--t-text-3, #8a97a8); text-decoration-color: var(--t-neon, #2384de); text-decoration-thickness: 2px; white-space: nowrap; }
.approval__price-note { font-size: 14px; color: var(--t-text-3, #8a97a8); }
.approval__btn { min-width: 240px; }
.approval__art { position: relative; color: var(--t-text-2, #4a5a6a); }
.approval__art svg { width: 100%; height: auto; display: block; }
.approval__art-neon { stroke: var(--t-neon, #2384de); }
.approval__art-glow { filter: drop-shadow(0 0 6px rgba(99, 184, 255, .8)); }
.approval__art-dim { stroke: var(--t-text-3, #8a97a8); }
.approval__art-doc { fill: var(--t-surface, #fff); }
.approval__art-text { fill: var(--t-text-3, #8a97a8); font: 600 14px "Roboto", sans-serif; stroke: none; }
.approval__steps { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 48px 0 0; padding: 0; }
.approval__step { position: relative; display: flex; flex-direction: column; padding: 22px 20px 20px; border: 1px solid var(--t-line, #e1e1e1); border-radius: .75rem; background: var(--t-surface, #fff); transition: box-shadow .25s, border-color .25s, transform .25s; }
.approval__step:hover { border-color: var(--t-neon, #2384de); box-shadow: var(--t-glow, 0 12px 36px rgba(35, 68, 108, .12)); transform: translateY(-2px); }
.approval__step-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.approval__step-num { font: 600 13px/1 "Roboto", sans-serif; letter-spacing: .06em; color: var(--t-text-3, #8a97a8); }
.approval__step-icon { width: 44px; height: 44px; color: var(--t-neon, #2384de); }
.approval__step-icon svg { width: 100%; height: 100%; }
.approval__step-title { margin: 0 0 8px; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 17px; line-height: 1.3; color: var(--t-text, #2c3a4b); }
.approval__step-text { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: var(--t-text-2, #4a5a6a); }
.approval__step-tag { margin-top: auto; font: 600 11px/1.4 "Roboto", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--t-neon, #2384de); }
.approval__step-tag--we { color: var(--t-text-3, #8a97a8); }
.approval__step--you { background: var(--t-surface-2, #f3f7fc); border-color: var(--t-neon, #2384de); box-shadow: var(--t-glow, none); }
.approval__step--you .approval__step-num { color: var(--t-neon, #2384de); }
@media (max-width: 1279px) { .approval__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1023px) { .approval__top { grid-template-columns: 1fr; gap: 28px; } .approval__art { max-width: 460px; } }
@media (max-width: 767px) { .approval__steps { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 32px; } .approval__step { padding: 18px 16px 16px; } }
@media (max-width: 639px) { .approval__steps { grid-template-columns: 1fr; } .approval__lead { font-size: 15px; margin-bottom: 20px; } .approval__action, .approval__btn { width: 100%; text-align: center; } }
@media (prefers-reduced-motion: reduce) { .approval__step { transition: none; } }

/* Как проходит заказ — дорожка заказа (переделка 2026-09-07 по замечанию Виктора) */
.wsteps__head { max-width: 720px; margin-bottom: 40px; }
.wsteps__lead { margin: 0; font-size: 17px; line-height: 1.55; color: var(--t-text-2, #4a5a6a); }
.wsteps__track { position: relative; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 26px 0 0; }
.wsteps__track::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: linear-gradient(90deg, var(--t-neon, #2384de) 0%, var(--t-line-strong, #cfd6de) 100%); opacity: .55; }
.wsteps__item { position: relative; display: flex; }
.wsteps__dot { position: absolute; left: 0; top: -26px; width: 16px; height: 16px; border-radius: 50%; background: var(--t-bg, #fff); border: 2px solid var(--t-neon, #2384de); box-shadow: 0 0 0 4px var(--t-bg, #fff), 0 0 14px rgba(99, 184, 255, .8); }
.wsteps__dot::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--t-neon, #2384de); }
.wsteps__card { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; padding: 26px 24px 22px; border: 1px solid var(--t-line, #e1e1e1); border-radius: .75rem; background: var(--t-surface, #fff); overflow: hidden; transition: box-shadow .25s, border-color .25s, transform .25s; }
.wsteps__item:hover .wsteps__card { border-color: var(--t-neon, #2384de); box-shadow: var(--t-glow, 0 12px 36px rgba(35, 68, 108, .12)); transform: translateY(-3px); }
.wsteps__num { position: absolute; right: 14px; top: 2px; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: 72px; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--t-line-strong, #cfd6de); opacity: .7; pointer-events: none; }
.wsteps__icon { width: 48px; height: 48px; margin-bottom: 20px; color: var(--t-neon, #2384de); filter: drop-shadow(0 0 6px rgba(99, 184, 255, .45)); }
.wsteps__icon svg { width: 100%; height: 100%; }
.wsteps__title { margin: 0 0 10px; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 20px; line-height: 1.3; color: var(--t-text, #2c3a4b); }
.wsteps__text { margin: 0 0 18px; font-size: 15px; line-height: 1.55; color: var(--t-text-2, #4a5a6a); }
.wsteps__result { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; padding-top: 14px; border-top: 1px solid var(--t-line, #e1e1e1); font: 600 13px/1.4 "Roboto", sans-serif; color: var(--t-text, #2c3a4b); }
.wsteps__result svg { flex: none; width: 16px; height: 16px; color: var(--t-neon, #2384de); }
@media (max-width: 1023px) {
  .wsteps__track { grid-template-columns: 1fr 1fr; }
  .wsteps__track::before { display: none; }
  .wsteps__dot { display: none; }
  .wsteps__track { padding-top: 0; }
}
@media (max-width: 639px) {
  .wsteps__head { margin-bottom: 28px; }
  .wsteps__lead { font-size: 15px; }
  .wsteps__track { grid-template-columns: 1fr; gap: 0; padding-left: 26px; }
  .wsteps__track::before { display: block; left: 7px; right: auto; top: 8px; bottom: 8px; width: 2px; height: auto; background: linear-gradient(180deg, var(--t-neon, #2384de) 0%, var(--t-line-strong, #cfd6de) 100%); }
  .wsteps__item { padding-bottom: 16px; }
  .wsteps__dot { display: block; left: -26px; top: 22px; }
  .wsteps__card { padding: 22px 20px 20px; }
  .wsteps__num { font-size: 56px; }
}
@media (prefers-reduced-motion: reduce) { .wsteps__card { transition: none; } }
.footer-services--landings { max-width: 1100px; } /* пять кнопок-лендингов (2026-09-07): на широком экране в один ряд */

/* ---- Страница «Спасибо» (/spasibo) после любой формы заявки (Виктор, 2026-09-07).
   Один экран: отметка «принято», три шага «что дальше», контакты карточками темы, две кнопки. */
.thanks { max-width: 960px; }
.thanks__hero { text-align: center; padding: 8px 0 40px; }
.thanks__mark { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%;
  color: var(--t-neon, #2384de); background: rgba(35, 132, 222, .12); box-shadow: var(--t-glow, none); margin-bottom: 22px; }
.thanks__mark svg { width: 38px; height: 38px; }
.thanks__kicker { font: 600 12px/1.4 "Roboto", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--t-neon, #2384de); margin: 0 0 10px; }
.thanks__title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: 40px; line-height: 1.15; margin: 0 0 14px; }
.thanks__lead { font-size: 18px; line-height: 1.5; color: var(--t-text-2, #4b5a6b); max-width: 560px; margin: 0 auto; }
.thanks__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: none; }
.thanks__step { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px 24px; border-radius: .75rem;
  background: var(--t-surface, #fff); border: 1px solid var(--t-line, #e1e1e1); }
.thanks__num { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
  font: 700 15px/1 "Gilroy", "Roboto", sans-serif; color: #fff; background: var(--t-accent, #2384de); margin-bottom: 6px; }
.thanks__step-title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 19px; line-height: 1.3; }
.thanks__step-text { font-size: 15px; line-height: 1.5; color: var(--t-text-2, #4b5a6b); }
.thanks__contacts { margin-top: 44px; }
.thanks__contacts-title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 20px; margin: 0 0 14px; }
.thanks__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.thanks__cards .contact-card { align-items: center; }
.thanks__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 40px; }
/* Отзыв на Яндекс Картах: QR-код слева, текст и кнопка справа (2026-09-15) */
.thanks__review { display: flex; align-items: center; gap: 24px; margin-top: 32px; padding: 22px 24px; border-radius: .75rem; border: 1px solid var(--t-border, rgba(35,132,222,.25)); background: var(--t-card, rgba(255,255,255,.03)); }
.thanks__review-qr { flex: 0 0 auto; display: block; padding: 6px; border-radius: 8px; background: #fff; line-height: 0; }
.thanks__review-qr img { width: 120px; height: 120px; display: block; }
.thanks__review-title { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 19px; line-height: 1.3; margin: 0 0 6px; }
.thanks__review-text { font-size: 15px; line-height: 1.5; color: var(--t-text-2, #4b5a6b); margin: 0 0 14px; }
@media (max-width: 767px) { .thanks__review { flex-direction: column; text-align: center; } .thanks__review-btn { width: 100%; } }
@media (max-width: 1023px) { .thanks__steps, .thanks__cards { grid-template-columns: 1fr; } .thanks__title { font-size: 32px; } }
@media (max-width: 639px) {
  .thanks__hero { padding-bottom: 28px; }
  .thanks__title { font-size: 27px; }
  .thanks__lead { font-size: 16px; }
  .thanks__actions { flex-direction: column; }
  .thanks__actions .btn { width: 100%; }
}

/* Портфолио: превью одного формата (Виктор 2026-09-08: «фото разнокалиберные — превью симметрично и аккуратно, по клику как есть»).
   Плитка всегда квадрат, фото обрезается по центру; в галерее проекта фото показывается целиком на тёмном поле, а по клику — лайтбокс в оригинале. */
.portfolio-slider-slide__container { aspect-ratio: 1 / 1; background: var(--t-surface, #182b48); }
.portfolio-slider-slide__container img.wp-post-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.portfolio-slide-empty { position: absolute; inset: 0; }
.gallery-large__slide { background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; background-color: var(--t-bg-deep, #081322) !important; }
/* Фото проекта — <img> внутри слайда (2026-09-16): целиком, как раньше фон contain; слайд держит высоту через padding-top темы */
.gallery-large__slide img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-thumbs__slide { background-size: cover; background-position: center; }

/* Страница «Наши работы» /portfolio: фильтр по пяти типам работ и сетка (Виктор 2026-09-08) */
.works__lead { max-width: 720px; margin: 0 0 24px; font-size: 16px; line-height: 1.55; color: var(--t-text-2, #4a5a6a); }
.works-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.works-nav__btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--t-line-strong, #cfd6de); border-radius: .5rem; background: var(--t-surface, #fff); color: var(--t-text, #2c3a4b); font: 600 14px/1.2 "Roboto", sans-serif; cursor: pointer; transition: background .2s, border-color .2s, box-shadow .2s, color .2s; text-align: left; }
.works-nav__btn:hover { border-color: var(--t-neon, #2384de); box-shadow: var(--t-glow, none); }
.works-nav__btn.is-active { background: var(--t-accent, #2384de); border-color: var(--t-accent, #2384de); color: #fff; }
.works-nav__count { display: inline-block; min-width: 22px; padding: 2px 7px; border-radius: 999px; background: rgba(150, 190, 240, .16); color: var(--t-text-2, #4a5a6a); font-size: 12px; font-weight: 600; text-align: center; }
.works-nav__btn.is-active .works-nav__count { background: rgba(255, 255, 255, .22); color: #fff; }
.works-grid { display: flex; flex-wrap: wrap; }
.works-item { width: 25%; }
.works-item[hidden] { display: none; }
.works__empty { margin: 8px 0 24px; color: var(--t-text-3, #8a97a8); }
.works__more { margin-top: 8px; }
.works__more[hidden] { display: none; }
.works__more-count { opacity: .7; margin-left: 4px; }
@media (max-width: 1023px) { .works-item { width: 33.333%; } }
@media (max-width: 639px) { .works-item { width: 50%; } .works-nav { gap: 8px; margin-bottom: 20px; } .works-nav__btn { padding: 8px 12px; font-size: 13px; } .works__lead { font-size: 14px; } }
@media (prefers-reduced-motion: reduce) { .works-nav__btn { transition: none; } }

/* Шапка: верхнее меню в одну строку на любом экране от 1024 px (Виктор 2026-09-08: «не влезают Контакты и О нас»,
   вариант в две строки отверг). Пункты плотнее, на ноутбуках у рейтингов прячем «7 отзывов», а до 1140 px — и почту
   (она есть на первом экране и в подвале). Полоса остаётся 50 px, ничего не переносится и не обрезается. */
.primary-header-top-nav .primary-scrollable__container { overflow: visible; }
.primary-header-top-nav ul { flex-wrap: nowrap; }
.primary-header-top-nav ul li { padding-left: .1rem; padding-right: .1rem; }
.primary-header-top-nav ul li a { padding: .75rem .55rem; letter-spacing: .04em; }
.primary-header-top-nav ul li a:after { right: 1px; }
.primary-header-top__container > .flex-none { padding-left: .75rem; padding-right: .75rem; }
/* После v069 (пункт «Требования к макетам» убран из меню) почта и счётчики отзывов помещаются на любой ширине от 1024 px. */

/* Капча: кнопка «другой пример» рядом с полем (2026-09-08) */
.captcha-field__refresh { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #d5dde5; border-radius: .5rem; background: #fff; color: #2384de; cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .3s; }
.captcha-field__refresh svg { width: 18px; height: 18px; }
.captcha-field__refresh:hover { border-color: #2384de; box-shadow: 0 0 0 3px rgba(35, 132, 222, .15); }
.captcha-field__refresh.is-busy svg { animation: captcha-spin .6s linear infinite; }
@keyframes captcha-spin { to { transform: rotate(360deg); } }
.captcha-field--inline { margin-bottom: 0; }
/* Капча внутри окна «Перезвоните мне» */
.diamodal-box .captcha-field { margin: 12px 0 4px; }
.diamodal-box .captcha-field__label { color: var(--t-text-2, #4a5a6a); }
.diamodal-box .captcha-field__label b { color: var(--t-text, #2c3a4b); }
.diamodal-box .captcha-field__input, .diamodal-box .captcha-field__refresh { background: var(--t-bg-deep, #fff); border-color: var(--t-line-strong, #d5dde5); color: var(--t-text, #2c3a4b); }
.diamodal-box .captcha-field__refresh { color: var(--t-neon, #2384de); }

/* Контакты: запасной блок вместо карты, если Яндекс Карты не загрузились (2026-09-08) */
.contact-map__fallback { display: flex; flex-direction: column; justify-content: center; gap: 6px; height: 100%; min-height: inherit; padding: 28px; box-sizing: border-box; border-radius: .75rem; background: var(--t-surface, #f5f7fa); color: var(--t-text, #2c3a4b); font-size: 16px; line-height: 1.45; }
.contact-map__fallback p { margin: 0; }
.contact-map__fallback-title { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--t-text-3, #6b7a8a); margin-top: 10px !important; }
.contact-map__fallback-btn { align-self: flex-start; margin: 10px 0 8px; padding: 12px 22px; border-radius: .5rem; background: var(--t-accent, #2384de); color: #fff !important; font: 600 14px/1.2 "Roboto", sans-serif; text-decoration: none; transition: background .2s, box-shadow .2s; }
.contact-map__fallback-btn:hover { background: var(--t-accent-hover, #1a6fc0); box-shadow: var(--t-glow, 0 8px 24px rgba(35, 132, 222, .3)); }


/* ---------- Поиск: подсказки под строкой и страница результатов (2026-09-11) ---------- */
form.has-suggest { position: relative; }
.search-suggest {
  position: absolute; left: 1rem; right: 1rem; top: calc(100% - .5rem); z-index: 60;
  max-width: 350px; width: calc(100% - 2rem);
  background: var(--t-surface, #182b48); color: var(--t-text, #ebf1fb);
  border: 1px solid var(--t-line-strong, rgba(150,190,240,.32)); border-radius: 14px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .45), var(--t-glow, 0 0 0 1px rgba(99,184,255,.55));
  overflow: hidden; text-align: left;
}
.burger-search .search-field { max-width: none; }
.burger-search .search-suggest { left: 0; right: 0; width: 100%; max-width: none; top: calc(100% + .35rem); }
.search-suggest__item, .search-suggest__all { display: block; padding: .6rem .9rem; text-decoration: none; color: inherit; border-top: 1px solid var(--t-line, rgba(150,190,240,.14)); }
.search-suggest__item:first-child { border-top: 0; }
.search-suggest__item:hover, .search-suggest__item.is-active { background: var(--t-surface-2, #1f3556); }
.search-suggest__kind { display: block; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: var(--t-neon, #63b8ff); margin-bottom: .1rem; }
.search-suggest__title { display: block; font-weight: 600; font-size: .92rem; line-height: 1.3; }
.search-suggest__hint { display: block; font-size: .78rem; color: var(--t-text-3, #8fa3bf); margin-top: .1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-suggest__all { font-size: .82rem; color: var(--t-text-2, #b9c8dd); background: var(--t-bg-alt, #0c192e); }
.search-suggest__all:hover { color: var(--t-neon, #63b8ff); }

.search-page__lead { max-width: 46rem; font-size: 1.05rem; line-height: 1.6; color: var(--t-text-2, #b9c8dd); margin: 0 0 2rem; }
.search-page__h2 { font-size: 1.5rem; margin: 3rem 0 1.25rem; }
.search-results { display: grid; gap: .75rem; margin-bottom: 1rem; }
.search-result {
  display: flex; gap: 1.25rem; align-items: flex-start; padding: 1rem 1.25rem; text-decoration: none; color: inherit;
  background: var(--t-surface, #182b48); border: 1px solid var(--t-line, rgba(150,190,240,.14)); border-radius: 14px;
  transition: box-shadow .25s, border-color .25s;
}
.search-result:hover { border-color: var(--t-line-strong, rgba(150,190,240,.32)); box-shadow: var(--t-glow, 0 0 26px rgba(99,184,255,.35)); }
.search-result__thumb { flex: 0 0 160px; max-width: 160px; border-radius: 10px; overflow: hidden; }
.search-result__thumb img { display: block; width: 100%; height: auto; }
.search-result__body { flex: 1 1 auto; min-width: 0; }
.search-result__kind { font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; color: var(--t-neon, #63b8ff); margin-bottom: .25rem; }
.search-result__title { font-size: 1.1rem; font-weight: 600; line-height: 1.3; }
.search-result__text { font-size: .9rem; line-height: 1.5; color: var(--t-text-2, #b9c8dd); margin-top: .35rem; }
.search-page__works .portfolio-slider-slide { display: block; }
.search-page__more { margin: 1rem 0 0; }
@media (max-width: 640px) {
  .search-result { gap: .75rem; padding: .85rem; }
  .search-result__thumb { flex-basis: 96px; max-width: 96px; }
}
/* Мобильное меню: список подсказок должен лежать поверх пунктов меню ниже (2026-09-11) */
.burger-content-menu--search { position: relative; z-index: 80; }
.burger-search .search-suggest { max-height: 60vh; overflow: auto; }

/* «Пригласите нас в тендер» — страница «О нас» (2026-09-11), partials/sections/tender.php.
   Один акцент — фирменный синий (--t-neon), приём — тонкая неоновая линия слева от заголовка, как у заставки карты.
   Размеры шрифта: 13 (надзаголовок, подписи), 15 (поля, факты), 17 (лид), clamp 26–36 (заголовок). */
.tender { padding: 56px 0; }
.tender__kicker { margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--t-neon, #2384de); }
.tender__title { position: relative; margin: 0 0 16px; padding-left: 18px; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; color: var(--t-text, #2c3a4b); max-width: 14em; }
.tender__title::before { content: ""; position: absolute; left: 0; top: .12em; bottom: .12em; width: 3px; border-radius: 2px; background: var(--t-neon, #2384de); box-shadow: var(--t-glow-text, none); }
.tender__lead { margin: 0 0 22px; font-size: 17px; line-height: 1.55; color: var(--t-text-2, #4a5a6a); max-width: 34em; }
.tender__facts { list-style: none; margin: 0 0 22px; padding: 0; }
.tender__facts li { display: grid; grid-template-columns: 9.5em 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--t-line, #e1e1e1); font-size: 15px; line-height: 1.45; color: var(--t-text-2, #4a5a6a); }
.tender__facts li:last-child { border-bottom: 1px solid var(--t-line, #e1e1e1); }
.tender__facts b { font-weight: 600; color: var(--t-text, #2c3a4b); }
.tender__mail { display: inline-block; font-size: 15px; line-height: 1.5; color: var(--t-text-2, #4a5a6a); text-decoration: none; }
.tender__mail b { font-weight: 600; color: var(--t-neon, #2384de); border-bottom: 1px solid rgba(99, 184, 255, .45); transition: border-color .2s; }
.tender__mail:hover b { border-color: var(--t-neon, #2384de); }

/* Вариант 1: две колонки, справа карточка-форма */
.tender__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.tender__form { padding: 30px 32px 26px; border-radius: .75rem; background: var(--t-surface, #fff); box-shadow: 0 0 0 1px var(--t-line, #e1e1e1); }
.tender__form-title { margin: 0 0 18px; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 17px; line-height: 1.3; color: var(--t-text, #2c3a4b); }
.tender__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.tender__field { display: block; margin: 0; }
.tender__field--wide { grid-column: 1 / -1; }
.tender__label { display: block; margin: 0 0 6px; font-size: 13px; line-height: 1.3; color: var(--t-text-2, #4a5a6a); }
.tender__label em { font-style: normal; color: var(--t-neon, #2384de); }
.tender__input { display: block; width: 100%; box-sizing: border-box; height: 44px; padding: 0 14px; border: 1px solid var(--t-line-strong, #d5dde5); border-radius: .5rem; background: var(--t-bg-deep, #fff); color: var(--t-text, #2c3a4b); font: inherit; font-size: 15px; transition: border-color .2s, box-shadow .2s; }
.tender__input::placeholder { color: var(--t-text-3, #8a97a8); }
.tender__input:focus { outline: none; border-color: var(--t-neon, #2384de); box-shadow: var(--t-glow, 0 0 0 3px rgba(35, 132, 222, .15)); }
.tender__input--area { height: auto; padding: 10px 14px; line-height: 1.45; resize: vertical; min-height: 88px; }
.tender__file-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.tender__file { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px dashed var(--t-line-strong, #cfd6de); border-radius: .5rem; color: var(--t-text-2, #4a5a6a); cursor: pointer; transition: border-color .2s, background-color .2s; }
.tender__file:hover, .tender__file-input:focus-visible + .tender__file { border-color: var(--t-neon, #2384de); background: rgba(35, 132, 222, .08); }
.tender__file svg { flex: none; width: 24px; height: 24px; color: var(--t-neon, #2384de); }
.tender__file span { display: flex; flex-direction: column; gap: 2px; font-size: 15px; line-height: 1.3; }
.tender__file b { font-weight: 600; color: var(--t-text, #2c3a4b); }
.tender__file small { font-size: 13px; color: var(--t-text-3, #8a97a8); }
.tender__file.is-filled { border-style: solid; border-color: var(--t-neon, #2384de); }
.tender__submit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 18px; }
.tender__submit .captcha-field { margin: 0; }
.tender__btn { min-width: 220px; }
.tender__consent { margin: 14px 0 0; font-size: 13px; line-height: 1.45; color: var(--t-text-3, #8a97a8); }
.tender__consent a { color: var(--t-text-2, #4a5a6a); }

/* Вариант 2: широкая полоса с шагами, форма раскрывается по кнопке */
.tender__band { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px 56px; align-items: center; padding: 40px 44px; border-radius: .75rem;
  background: radial-gradient(ellipse 55% 110% at 0% 50%, rgba(35, 132, 222, .2) 0%, rgba(35, 132, 222, 0) 70%), var(--t-surface, #fff); box-shadow: 0 0 0 1px var(--t-line, #e1e1e1); }
.tender--v2 .tender__lead { margin-bottom: 26px; }
.tender__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.tender__open { min-width: 240px; }
.tender__open[aria-expanded="true"] { background: var(--t-surface-2, #f0f3f6); color: var(--t-text, #2c3a4b); box-shadow: 0 0 0 1px var(--t-line-strong, #cfd6de); }
.tender__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.tender__step { display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto; column-gap: 14px; padding: 16px 0 0; border-top: 1px solid var(--t-line, #e1e1e1); }
.tender__step:first-child { padding-top: 0; border-top: 0; }
.tender__num { grid-row: 1 / 3; font-family: "Gilroy", "Roboto", sans-serif; font-weight: 700; font-size: 26px; line-height: 1; color: var(--t-neon, #2384de); text-shadow: var(--t-glow-text, none); }
.tender__step b { font-family: "Gilroy", "Roboto", sans-serif; font-weight: 600; font-size: 17px; line-height: 1.3; color: var(--t-text, #2c3a4b); }
.tender__step span:last-child { margin-top: 4px; font-size: 15px; line-height: 1.45; color: var(--t-text-2, #4a5a6a); }
.tender__drawer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s ease; }
.tender__drawer[hidden] { display: none; }
.tender__drawer.is-open { grid-template-rows: 1fr; }
.tender__drawer-inner { overflow: hidden; }
.tender__drawer .tender__form { margin-top: 20px; }
.tender__form--compact .tender__fields { grid-template-columns: 1fr 1fr 1fr; }
.tender__form--compact .tender__field--wide { grid-column: 1 / -1; }
.tender__form--compact .tender__input--area { min-height: 72px; }

@media (max-width: 1023px) {
  .tender { padding: 44px 0; }
  .tender__grid { grid-template-columns: 1fr; gap: 32px; }
  .tender__band { grid-template-columns: 1fr; gap: 28px; padding: 30px 28px; }
  .tender__form--compact .tender__fields { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 639px) {
  .tender { padding: 36px 0; }
  .tender__form { padding: 22px 18px 20px; }
  .tender__band { padding: 24px 18px; }
  .tender__fields, .tender__form--compact .tender__fields { grid-template-columns: 1fr; }
  .tender__facts li { grid-template-columns: 1fr; gap: 2px; }
  .tender__btn, .tender__open, .tender__actions { width: 100%; }
  .tender__submit { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) { .tender__drawer, .tender__input, .tender__file, .tender__mail b { transition: none; } }

/* Окно заявки по кнопкам призыва (2026-09-11) — своё окно вместо окна темы «Заявка на обратный звонок». */
.lead-modal-open { overflow: hidden; }
.lead-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; transition: opacity .25s; }
.lead-modal.is-open { opacity: 1; }
.lead-modal__backdrop { position: absolute; inset: 0; background: rgba(4, 12, 24, .72); backdrop-filter: blur(3px); }
.lead-modal__box { position: relative; width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow: auto; padding: 28px 28px 24px; border-radius: 14px;
  background: var(--t-surface, #fff); color: var(--t-text, #1f2d3d); border: 1px solid var(--t-line-strong, #d5dde5); box-shadow: 0 24px 70px rgba(0, 0, 0, .55), 0 0 0 1px rgba(99, 184, 255, .18);
  transform: translateY(12px); transition: transform .25s; }
.lead-modal.is-open .lead-modal__box { transform: none; }
.lead-modal__close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; padding: 8px; border: 0; background: none; color: var(--t-text-3, #8fa3bf); cursor: pointer; border-radius: 8px; }
.lead-modal__close:hover { color: var(--t-neon, #2384de); background: var(--t-bg-deep, #f1f5fa); }
.lead-modal__close svg { width: 100%; height: 100%; }
.lead-modal__title { font-size: 22px; line-height: 1.2; font-weight: 700; padding-right: 36px; }
.lead-modal__lead { margin: 8px 0 18px; font-size: 14px; line-height: 1.45; color: var(--t-text-2, #4a5a6a); }
.lead-modal__form .lead-modal__input { display: block; width: 100%; margin: 0 0 10px; font-size: 15px; }
.lead-modal__form textarea.lead-modal__input { min-height: 104px; resize: vertical; }
.lead-modal__form select.lead-modal__input { appearance: none; -webkit-appearance: none; padding-right: 36px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238fa3bf' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; }
.lead-modal__label { display: block; margin: 4px 0 6px; font-size: 13px; color: var(--t-text-3, #8fa3bf); }
.lead-modal__files { margin: 2px 0 10px; padding: 6px 8px; border: 1px dashed var(--t-line-strong, #d5dde5); border-radius: 10px; }
.lead-modal__files.has-file { border-style: solid; border-color: var(--t-neon, #2384de); }
.lead-modal__files.has-file .lead-modal__files-hint { color: var(--t-neon, #2384de); }
.lead-modal .primary-file-input__label { cursor: pointer; margin: 0; }
.lead-modal .captcha-field { margin: 8px 0 4px; }
.lead-modal__error { margin: 10px 0 0; padding: 10px 12px; border-radius: 8px; font-size: 14px; line-height: 1.4; background: rgba(224, 82, 82, .12); color: #ff8a8a; border: 1px solid rgba(224, 82, 82, .35); }
.lead-modal__submit { margin-top: 14px; }
.lead-modal__consent { margin: 12px 0 0; font-size: 12px; line-height: 1.4; color: var(--t-text-3, #8fa3bf); }
.lead-modal__consent a { color: var(--t-neon, #2384de); }
@media (max-width: 639px) {
  .lead-modal { padding: 0; align-items: flex-end; }
  .lead-modal__box { max-width: none; max-height: 100vh; border-radius: 14px 14px 0 0; padding: 22px 18px 18px; }
  .lead-modal__title { font-size: 19px; }
}

/* Галерея на странице проекта (Виктор, 2026-09-11): стрелок нет, миниатюры крупнее (108×72) и подсвечиваются при наведении —
   неоновая рамка и свечение темы, активная миниатюра обведена постоянно. Белые «затухания» темы по краям полосы убраны. */
.gallery-btn--hidden { display: none !important; }
/* Полоса миниатюр: отступ сверху и по бокам, чтобы рамка и свечение не резались краем контейнера (замечание Виктора: «картинки обрезаны сверху») */
.gallery-thumbs--clean { padding: 6px 4px 12px !important; }
.gallery-thumbs--clean::before, .gallery-thumbs--clean::after { display: none; }
.gallery-thumbs--clean .gallery-thumbs__slide { opacity: .72; background-position: center top; box-shadow: 0 0 0 1px var(--t-line, rgba(0, 0, 0, .1)); cursor: pointer;
  transition: opacity .25s, box-shadow .25s, transform .25s; }
.gallery-thumbs--clean .gallery-thumbs__slide:hover, .gallery-thumbs--clean .gallery-thumbs__slide:focus-visible { opacity: 1; transform: translateY(-2px); outline: none;
  box-shadow: 0 0 0 2px var(--t-neon, #2384de), 0 0 18px rgba(99, 184, 255, .45); }
.gallery-thumbs--clean .swiper-slide-thumb-active { opacity: 1; box-shadow: 0 0 0 2px var(--t-neon, #2384de); }
.gallery-large--single .gallery-large__slide { cursor: zoom-in; }
/* Края-подсказки: градиент от фона страницы к прозрачному, стрелка по центру; видны только когда есть куда листать (класс is-on из site.js) */
.gallery-thumbs__edge { position: absolute; z-index: 4; top: 6px; bottom: 12px; width: 64px; padding: 0; border: 0; cursor: pointer; color: var(--t-text, #2c3a4b);
  display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.gallery-thumbs__edge.is-on { opacity: 1; visibility: visible; }
.gallery-thumbs__edge--prev { left: 0; justify-content: flex-start; padding-left: 6px; background: linear-gradient(90deg, var(--t-bg, #fff) 0%, var(--t-bg, #fff) 30%, rgba(16, 32, 58, 0) 100%); }
.gallery-thumbs__edge--next { right: 0; justify-content: flex-end; padding-right: 6px; background: linear-gradient(270deg, var(--t-bg, #fff) 0%, var(--t-bg, #fff) 30%, rgba(16, 32, 58, 0) 100%); }
.gallery-thumbs__edge svg { width: 32px; height: 32px; padding: 6px; border-radius: 50%; background: var(--t-surface, #f1f5fa); box-shadow: 0 0 0 1px var(--t-line-strong, #cfd6de); transition: color .2s, box-shadow .2s, transform .2s; }
.gallery-thumbs__edge:hover svg { color: var(--t-neon, #2384de); box-shadow: 0 0 0 1px var(--t-neon, #2384de), 0 0 16px rgba(99, 184, 255, .5); transform: scale(1.06); }
@media (max-width: 639px) { .gallery-thumbs--clean .gallery-thumbs__slide { width: 84px !important; height: 63px !important; } .gallery-thumbs__edge { width: 48px; } .gallery-thumbs__edge svg { width: 28px; height: 28px; } }
@media (prefers-reduced-motion: reduce) { .gallery-thumbs--clean .gallery-thumbs__slide, .gallery-thumbs__edge, .gallery-thumbs__edge svg { transition: none; } .gallery-thumbs--clean .gallery-thumbs__slide:hover { transform: none; } }
