/* =====================================================================
 * ЧистВент — оформление 2026 («технический паспорт»), 13.10.2026.
 *
 * Подключается последним — ссылку вставляет server.js (SKIN_VER там же).
 * Задача слоя: сайт про инженерную работу должен выглядеть как документ
 * исполнителя, а не как типовой лендинг с круглыми карточками.
 *
 *  — прямые углы и тонкие линии вместо скруглений и теней;
 *  — заголовки разделов слева, с порядковым номером (счётчик CSS, разметку
 *    не трогаем);
 *  — тёмно-синий «чернильный» цвет для шапки, призыва и подвала; фирменный
 *    синий остаётся цветом действия;
 *  — сетка-миллиметровка как единственный декоративный мотив;
 *  — цены набраны табличными цифрами и стоят в меню и карточках на одном месте.
 *
 * Нарочно НЕ повторяет deseko.ru (там мягкие карточки, Onest, бирюза):
 * у каждого сайта владельца свой язык.
 * ===================================================================== */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/fonts/inter-cyrillic-wght-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/fonts/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --ink: #0b1a3c;            /* тёмно-синие «чернила» */
  --ink-2: #1c2b4f;
  --paper: #f3f6fb;
  --rule: #d3dbe8;           /* линии */
  --rule-2: #e6ebf3;
  --text-color: #0f1b33;
  --text-muted: #51607a;     /* 6:1 на белом */
  --accent: #f5b301;
  --r: 3px;
  --grid: linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px) 0 0 / 28px 28px,
          linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px) 0 0 / 28px 28px;
}

body { color: var(--text-color); font-feature-settings: "tnum" 1, "cv11" 1; counter-reset: sec; }
h1, h2, h3 { letter-spacing: -.02em; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

/* ---------------------------------------------------------- кнопки -- */
.btn { border-radius: var(--r); font-weight: 600; letter-spacing: .005em; box-shadow: none; }
.btn-primary:hover, .btn-outline:hover { transform: none; }
.btn-primary { background: var(--primary-color); }
.btn-primary:hover { background: var(--ink); }
.btn-outline { border-radius: var(--r); }

/* ----------------------------------------------------------- шапка -- */
.header { box-shadow: none; border-bottom: 1px solid var(--rule); }
.header__top { background: var(--ink); color: #dbe4f5; border: 0; }
.header__top span, .header__top .header__schedule, .header__top .header__city { color: #dbe4f5; }
.header__top a, .header__top .header__phone { color: #fff; }
.header__top i { color: #7fa2ff; }
.header__top .city-selector-btn { color: #dbe4f5; }
.header__logo-text { letter-spacing: -.02em; }
.header__cta { border-radius: var(--r); }

.nav-item > a { position: relative; }
.nav-item--cat { display: flex; align-items: center; gap: 2px; }
.cat-toggle {
  display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
  background: none; border: 0; border-radius: var(--r); color: inherit; cursor: pointer;
  transition: transform .18s ease, background-color .15s ease;
}
.cat-toggle:hover { background: var(--paper); }
.nav-item--cat.is-open .cat-toggle { transform: rotate(180deg); }

/* каталог услуг с ценами: панель во всю ширину под шапкой */
.header__main { position: relative; }
.cat {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 20;
  background: #fff; border-top: 1px solid var(--rule); border-bottom: 3px solid var(--ink);
  box-shadow: 0 24px 40px -24px rgba(11, 26, 60, .35);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.nav-item--cat.is-open > .cat { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.cat__in {
  display: grid; grid-template-columns: 1.25fr 1fr 300px; gap: 0 40px;
  max-width: 1280px; margin: 0 auto; padding: 26px 20px 28px;
}
.cat__h {
  margin: 0 0 6px; padding-bottom: 10px; border-bottom: 1px solid var(--ink);
  color: var(--ink); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.cat__row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding: 9px 0; border-bottom: 1px solid var(--rule-2);
  color: var(--text-color); font-size: 15px; font-weight: 500; line-height: 1.3;
}
.cat__row b { flex: none; color: var(--text-muted); font-size: 14px; font-weight: 600; white-space: nowrap; }
.cat__row:hover { color: var(--primary-color); border-bottom-color: var(--primary-color); }
.cat__row:hover b { color: var(--primary-color); }
.cat__aside { align-self: start; padding: 20px; background: var(--paper); border-left: 3px solid var(--primary-color); }
.cat__aside-h { margin: 0 0 6px; color: var(--ink); font-size: 17px; font-weight: 700; }
.cat__aside-t { margin: 0 0 14px; color: var(--text-muted); font-size: 14px; line-height: 1.5; }
.cat__all { display: block; margin-top: 14px; color: var(--primary-color); font-size: 14px; font-weight: 600; }
.cat__all:hover { color: var(--ink); }

/* ---------------------------------------------------- первый экран -- */
.hero { min-height: 500px; }
.hero::after {                     /* миллиметровка по нижнему краю кадра */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 46%; z-index: 1; pointer-events: none;
  background: var(--grid); mask-image: linear-gradient(transparent, #000); -webkit-mask-image: linear-gradient(transparent, #000);
}
.hero__title { font-size: clamp(30px, 4.4vw + 8px, 54px); font-weight: 800; line-height: 1.08; letter-spacing: -.03em; }
.hero__title-highlight { color: var(--accent); }
.hero__subtitle { max-width: 56ch; font-size: 18px; line-height: 1.55; }
.hero__features { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.hero__feature { font-size: 14.5px; font-weight: 500; }
.hero__feature i { color: var(--accent); }
.hero:has(+ .rq) { padding-bottom: 110px; }

/* быстрая заявка: карточка, наезжающая на нижний край первого экрана */
.rq { position: relative; z-index: 3; margin-top: -56px; }
.rq__form {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 420px); grid-template-areas: "lead send" "chips note"; align-items: center; gap: 14px 32px;
  padding: 22px 26px; background: #fff; border: 1px solid var(--rule); border-top: 3px solid var(--primary-color);
  box-shadow: 0 18px 40px -22px rgba(11, 26, 60, .45);
}
.rq__lead { grid-area: lead; }
.rq__title { margin: 0 0 2px; color: var(--ink); font-size: 20px; font-weight: 700; letter-spacing: -.02em; }
.rq__text { margin: 0; color: var(--text-muted); font-size: 14.5px; line-height: 1.45; }
.rq__chips { grid-area: chips; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.rq__chips label { cursor: pointer; }
.rq__chips input { position: absolute; opacity: 0; pointer-events: none; }
.rq__chips span {
  display: block; padding: 8px 12px; border: 1px solid var(--rule); border-radius: var(--r);
  color: var(--ink-2); font-size: 14px; font-weight: 500; line-height: 1.2; white-space: nowrap;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.rq__chips label:hover span { border-color: var(--ink); }
.rq__chips input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.rq__chips input:focus-visible + span { outline: 2px solid var(--primary-color); outline-offset: 2px; }
.rq__send { grid-area: send; display: flex; gap: 8px; }
.rq__send input {
  flex: 1 1 170px; min-width: 0; height: 48px; padding: 0 14px;
  border: 1px solid var(--ink); border-radius: var(--r); background: #fff;
  color: var(--ink); font: 600 16px/1 'Inter', sans-serif;
}
.rq__send input::placeholder { color: #8a96ab; font-weight: 500; }
.rq__send input:focus { outline: 2px solid var(--primary-color); outline-offset: 1px; }
.rq__send input.is-bad { border-color: #dc2626; outline-color: #dc2626; }
.rq__send .btn { flex: none; height: 48px; padding: 0 20px; }
.rq__note { grid-area: note; margin: 0; color: var(--text-muted); font-size: 12.5px; line-height: 1.4; }
.rq__note a { text-decoration: underline; text-underline-offset: 2px; }
.rq__done { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 6px 0; color: var(--ink); font-size: 17px; font-weight: 600; }
.rq__done::before { content: "✓"; display: grid; place-items: center; flex: none; width: 34px; height: 34px; background: #0e9f6e; color: #fff; font-size: 18px; }

/* ------------------------------------------------- заголовки разделов -- */
.section { padding: 72px 0; }
.section__header { max-width: 760px; margin: 0 0 36px; text-align: left; }
.section__title { counter-increment: sec; text-align: left; font-size: clamp(24px, 2.4vw + 10px, 38px); font-weight: 800; line-height: 1.12; margin-bottom: 10px; }
.section__title::before {
  content: counter(sec, decimal-leading-zero); display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
  color: var(--primary-color); font-size: 13px; font-weight: 700; letter-spacing: .12em;
  background: linear-gradient(var(--rule), var(--rule)) 34px 50% / 56px 1px no-repeat;
}
.section__subtitle { margin: 0; color: var(--text-muted); font-size: 17px; line-height: 1.55; }
.section--gray { background: var(--paper); }
.section--primary .section__title::before, .cta .section__title::before { display: none; }

/* «Нам доверяют»: лента стояла в пустом поле высотой в пол-экрана */
.trusted-by { margin-top: 0; }
.section:has(.trusted-by) { padding: 56px 0 44px; }
.section:has(.trusted-by) .section__header { margin-bottom: 18px; }

/* --------------------------------------------------- карточки услуг -- */
.services-grid { gap: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.service-card {
  padding: 0 0 22px; border: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  border-radius: 0; box-shadow: none; background: #fff; overflow: hidden;
}
.service-card:hover { transform: none; box-shadow: inset 0 -3px 0 var(--primary-color); }
.service-card__photo { display: block; margin: 0; border-radius: 0; overflow: hidden; }
.service-card__photo img { border-radius: 0; transition: transform .5s ease; }
.service-card:hover .service-card__photo img { transform: scale(1.03); }
.service-card__icon { display: none; }                 /* круглый значок поверх фото — примета шаблона */
.service-card__title { margin: 20px 22px 8px; font-size: 19px; font-weight: 700; line-height: 1.25; }
.service-card__title a:hover { color: var(--primary-color); }
.service-card__description { margin: 0 22px 18px; color: var(--text-muted); font-size: 14.5px; line-height: 1.55; }
.service-card__footer { margin: auto 22px 0; padding-top: 14px; border-top: 1px solid var(--rule-2); }
.service-card__price { color: var(--ink); font-size: 19px; font-weight: 800; letter-spacing: -.01em; }
.service-card__footer .btn { padding: 0; border: 0; background: none; color: var(--primary-color); font-size: 14.5px; }
.service-card__footer .btn:hover { background: none; color: var(--ink); }
.services-preview .text-center, .services-preview .services-more { text-align: left; }

/* ------------------------------------------------------ преимущества -- */
.benefits-grid { gap: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); background: #fff; }
.benefit-card {
  display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 4px 16px; align-items: start;
  padding: 24px 22px; text-align: left; border: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  border-radius: 0; box-shadow: none;
}
.benefit-card:hover { transform: none; box-shadow: none; background: var(--paper); }
.benefit-card__icon {
  grid-row: 1 / span 2; width: 44px; height: 44px; margin: 0; border-radius: 0;
  background: var(--ink); color: #fff; font-size: 18px; box-shadow: none;
}
.benefit-card__title { margin: 0; font-size: 17px; font-weight: 700; }
.benefit-card__description { grid-column: 2; margin: 0; color: var(--text-muted); font-size: 14.5px; line-height: 1.5; }

/* ------------------------------------------------------------- шаги -- */
.steps { counter-reset: step; gap: 0; align-items: stretch; }
.steps::before, .step::before, .step::after { display: none !important; }
.step { counter-increment: step; padding: 20px 20px 0 0; border-top: 2px solid var(--ink); text-align: left; }
.step + .step { margin-left: 16px; }
.step__number { display: none; }
.step__title { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
.step__title::before {
  content: counter(step, decimal-leading-zero); display: block; margin-bottom: 14px;
  color: transparent; -webkit-text-stroke: 1.2px var(--primary-color); font-size: 44px; font-weight: 800; line-height: 1; letter-spacing: -.03em;
}
.step__description { margin: 0; color: var(--text-muted); font-size: 14.5px; line-height: 1.5; }

/* ----------------------------------------------------------- города -- */
.cities-grid a, .cities-grid-section a.city-link, .city-chip { border-radius: var(--r); }

/* ------------------------------------------------ призыв и подвал -- */
.section--primary, .cta { background: var(--grid), var(--ink); text-align: left; }
.cta .container { position: relative; }
.cta__title { font-size: clamp(24px, 2.2vw + 12px, 36px); font-weight: 800; letter-spacing: -.02em; }
.cta .btn { border-radius: var(--r); }
.footer { background: #071127; }
.page-header { background: var(--grid), var(--ink); }

/* ------------------------------------------------- страница услуги -- */
@media (min-width: 992px) {
  /* цена и кнопка заказа остаются на виду, пока человек читает описание */
  .service-single { align-items: start; }
  .service-single__sidebar { position: sticky; top: 124px; align-self: start; }
}
.service-single__image img, .service-single__image { border-radius: 0; }

/* ============================================================ телефон == */
@media (max-width: 991px) {
  /* каталог становится списком внутри мобильного меню */
  .nav-item--cat { flex-wrap: wrap; justify-content: space-between; }
  .cat-toggle { width: 44px; height: 44px; }
  .cat { position: static; display: none; width: 100%; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; background: var(--paper); }
  .nav-item--cat.is-open > .cat { display: block; }
  .cat__in { display: block; padding: 12px 16px 16px; }
  .cat__col + .cat__col { margin-top: 16px; }
  .cat__row { padding: 11px 0; font-size: 15.5px; }
  .cat__aside { display: none; }
}
@media (max-width: 900px) {
  .rq__form { grid-template-columns: 1fr; grid-template-areas: "lead" "chips" "send" "note"; }
}
@media (max-width: 768px) {
  .section { padding: 48px 0; }
  .section__header { margin-bottom: 24px; }
  .hero { min-height: 0; }
  .hero:has(+ .rq) { padding-bottom: 84px; }
  .hero__features { flex-direction: column; gap: 8px; }
  .rq { margin-top: -48px; }
  .rq__form { gap: 14px; padding: 18px 16px; }
  .rq__send { flex-wrap: wrap; }
  .rq__send input, .rq__send .btn { flex: 1 1 100%; height: 52px; font-size: 17px; }
  .rq__chips span { padding: 10px 12px; }

  /* карточка услуги — строкой: фото слева, название и цена справа.
     Шесть карточек во весь экран занимали 2 200 px прокрутки. */
  .service-card { display: grid; grid-template-columns: 116px minmax(0, 1fr); grid-template-rows: auto auto; gap: 0 14px; padding: 0; }
  .service-card__photo { grid-row: 1 / span 2; height: 100%; }
  .service-card__photo img { width: 116px; height: 100%; min-height: 116px; object-fit: cover; }
  .service-card__title { margin: 14px 12px 6px 0; font-size: 16.5px; }
  .service-card__description { display: none; }
  .service-card__footer { margin: 0 12px 12px 0; padding-top: 0; border-top: 0; align-self: end; }
  .service-card__price { font-size: 17px; }

  .benefit-card { padding: 16px; }
  .steps { flex-direction: column; }
  .step { position: relative; min-width: 0; padding: 14px 0 16px 70px; border-top: 1px solid var(--rule); }
  .step + .step { margin-left: 0; }
  .step__title::before { position: absolute; left: 0; top: 14px; margin: 0; font-size: 36px; }
  .cta { text-align: left; }
}

/* ------------------------------------------------- мелкие выравнивания -- */
.cities-grid-section .section__title, .cities-grid-section .section__title + p,
.cities-grid-section .section__subtitle { text-align: left; margin-left: 0; }
.cities-grid-section .section__title + p { margin-bottom: 26px; color: var(--text-muted); }
.seo-section .seo-content, .seo-content { border-radius: 0; box-shadow: none; border: 1px solid var(--rule); }
.cta__content { max-width: 820px; margin: 0; text-align: left; }
.cta__phone { justify-content: flex-start; }
/* подзаголовок блока городов выровнен по центру прямо в разметке (style="…") */
.cities-grid-section .section__title + p { text-align: left !important; margin-top: 0 !important; }

/* overflow-x: hidden на <html> и <body> одновременно делает body отдельной областью
   прокрутки, и «липкие» блоки внутри него перестают держаться. clip обрезает так же,
   но области прокрутки не создаёт. Старые браузеры значение не поймут и останутся на hidden. */
html, body { overflow-x: clip; }

/* ============ 14.10.2026: телефон — поломки вёрстки и карточки услуг ============ */

/* «О компании»: значок, заголовок и текст стояли в один ряд тремя колонками и
   на телефоне текст уезжал за экран. Теперь значок слева, заголовок и текст справа. */
.feature-item { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 4px 16px; align-items: start; }
.feature-item__icon { grid-row: 1 / span 2; width: 48px; height: 48px; border-radius: 0; background: var(--ink); color: #fff; font-size: 20px; }
.feature-item h3 { margin: 0; font-size: 18px; }
.feature-item p { grid-column: 2; margin: 0; }

/* «Контакты»: колонки сетки не сжимались уже своего содержимого (min-width:auto),
   и вся страница была шире экрана на сто пикселей */
.contact-content > *, .contact-info, .contact-form-wrapper, .about-content > *, .service-single > *, .service-single__main { min-width: 0; }
.social-buttons { flex-wrap: wrap; gap: 10px; }
.contact-card, .contact-form-wrapper, .social-button, .review-card, .org-benefit, .stat-card, .cta-box, .cta-card,
.service-item, .service-sidebar-card, .process-step, .faq details, .map-placeholder, .modal__content,
.contact-form input, .contact-form select, .contact-form textarea, .order-form input, .order-form select, .order-form textarea {
  border-radius: var(--r); box-shadow: none;
}
.contact-card__value, .contact-card__content { min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 768px) {
  /* Карточки услуг на телефоне: плитка в две колонки — фото сверху, название и цена.
     Вариант «строкой с узким фото слева» владельцу не понравился (14.10.2026). */
  .services-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; border: 0; }
  .service-card {
    display: flex; flex-direction: column; position: relative; padding: 0 0 12px;
    border: 1px solid var(--rule); background: #fff;
  }
  .service-card__photo { grid-row: auto; height: auto; }
  .service-card__photo img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; }
  .service-card__title { margin: 10px 10px 8px; font-size: 15px; line-height: 1.25; }
  .service-card__title a::after { content: ""; position: absolute; inset: 0; }   /* нажимается вся плитка */
  .service-card__footer { display: flex; align-items: center; justify-content: space-between; margin: auto 10px 0; padding-top: 8px; border-top: 1px solid var(--rule-2); }
  .service-card__price { font-size: 15.5px; }
  .service-card__footer .btn { font-size: 0; gap: 0; }                           /* остаётся только стрелка */
  .service-card__footer .btn i { font-size: 14px; }

  .contact-cards { grid-template-columns: 1fr; gap: 10px; }
  .page-header { padding: 28px 0; }
  .breadcrumbs { flex-wrap: wrap; }
}

/* =====================================================================
 * 14.10.2026 — внутренние страницы в том же языке, что и главная.
 * Владелец: «со страницами услуг не поработал, сделай весь сайт в едином стиле».
 * ===================================================================== */

/* шапка на телефоне: город, телефон и часы шли тремя строками, и вместе с липкой
   шапкой занимали почти четверть экрана на каждой странице */
@media (max-width: 768px) {
  .header__top { padding: 6px 0; }
  .header__top-content { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; }
  .header__contacts { display: flex; flex-direction: row; gap: 0; }
  .header__schedule { display: none; }
  .header__top, .header__top a { font-size: 14px; }
}
.service-card__price { margin-right: auto; }

/* ---------------------------------------------- шапка внутренней страницы -- */
.page-header { padding: 46px 0 50px; text-align: left; }
.page-header--small { padding: 34px 0 38px; }
.page-header .breadcrumbs { justify-content: flex-start; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; color: #b9c6e2; font-size: 13.5px; opacity: 1; }
.page-header .breadcrumbs a { color: #dbe4f5; }
.page-header__title { max-width: 900px; margin: 0; font-size: clamp(26px, 3vw + 10px, 44px); font-weight: 800; line-height: 1.1; letter-spacing: -.025em; }
.page-header__description { max-width: 62ch; margin: 12px 0 0; color: #c9d4ea; font-size: 17px; line-height: 1.55; text-align: left; }

/* ------------------------------------------------- страница «Услуги» -- */
.services-hero { padding: 40px 0 44px; background: var(--paper); border-bottom: 1px solid var(--rule); }
.services-badge { border-radius: 0; background: none; padding: 0; color: var(--primary-color); font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.services-badge i { display: none; }
.services-hero__title { font-size: clamp(28px, 3vw + 10px, 46px); font-weight: 800; letter-spacing: -.025em; line-height: 1.1; }
.services-hero__description { color: var(--text-muted); }
.services-hero__stats { gap: 0; }
.services-hero__stats .stat-item { padding: 0 22px; border-left: 1px solid var(--rule); text-align: left; }
.services-hero__stats .stat-item:first-child { padding-left: 0; border-left: 0; }
.stat-number { color: var(--ink); font-weight: 800; }
.cta-card { border-radius: 0; border: 1px solid var(--rule); border-top: 3px solid var(--primary-color); box-shadow: none; background: #fff; text-align: left; }

/* строки списка: фото | описание | цена и кнопки — как позиция в прайсе */
.services-list { display: grid; gap: 0; border-top: 1px solid var(--rule); }
.service-item {
  grid-template-columns: 230px minmax(0, 1fr) 200px; gap: 28px; padding: 24px 0;
  border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; background: none; box-shadow: none;
}
.section--gray .service-item { background: none; }
.service-item:hover { transform: none; box-shadow: none; }
.service-item__photo { border-radius: 0; }
.service-item__photo .service-item__icon, .service-item__icon { display: none; }
.service-item__title { font-size: 21px; font-weight: 800; letter-spacing: -.015em; }
.service-item__title a:hover { color: var(--primary-color); }
.service-item__description { color: var(--text-muted); }
.service-item__features { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; }
.service-item__features li { font-size: 14px; color: var(--ink-2); }
.service-item__aside { align-self: stretch; justify-content: flex-start; padding-left: 24px; border-left: 1px solid var(--rule); }
.service-item__price { color: var(--ink); font-size: 24px; font-weight: 800; letter-spacing: -.02em; }

/* ------------------------------------------------ страница услуги -- */
.service-single__image figcaption { padding: 8px 0 0 12px; border-left: 3px solid var(--primary-color); color: var(--text-muted); font-size: 13.5px; }
.service-single__content h2 { font-size: clamp(22px, 1.6vw + 12px, 30px); font-weight: 800; letter-spacing: -.02em; }
.service-single__content h3 { border-radius: 0; }

/* пункты списков — плитки по две в ряд (решение владельца 20.08.2026), но с прямыми углами */
.check-list li { border-radius: 0; background: #fff; border-color: var(--rule); }
.check-list li:hover { box-shadow: none; }
.check-list li i { border-radius: 0; }
.check-list li:has(i.fa-exclamation-triangle) { border-radius: 0; }

/* шаги работы: номер-контур слева, текст справа, без «пузырей» */
.process-steps { display: grid; grid-template-columns: 1fr; gap: 0; counter-reset: pstep; border-top: 1px solid var(--rule); }
.process-step {
  counter-increment: pstep; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: start; gap: 0 14px;
  padding: 16px 0; background: none; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; text-align: left;
}
.process-step:hover { transform: none; box-shadow: none; background: none; }
.process-step__number { width: auto; height: auto; border-radius: 0; background: none; box-shadow: none; color: transparent; font-size: 0; }
.process-step__number::before { content: counter(pstep, decimal-leading-zero); color: transparent; -webkit-text-stroke: 1.2px var(--primary-color); font-size: 34px; font-weight: 800; line-height: 1; letter-spacing: -.03em; }
.process-step__text { padding-top: 6px; font-size: 15.5px; line-height: 1.5; }

/* вопросы-ответы */
.faq details { border: 1px solid var(--rule); border-radius: 0; background: #fff; box-shadow: none; }
.faq details[open] { border-color: var(--ink); }
.faq summary { font-weight: 700; }

/* правая колонка: цена — главная карточка */
.service-sidebar-card { border-radius: 0; border: 1px solid var(--rule); box-shadow: none; }
.service-sidebar-card:first-child { border-top: 3px solid var(--primary-color); }
.service-sidebar-card__price .value { color: var(--ink); font-weight: 800; letter-spacing: -.02em; }
.service-sidebar-card--accent { background: var(--grid), var(--ink); border-color: var(--ink); color: #fff; }

@media (max-width: 991px) {
  /* цена и кнопки заказа на телефоне стояли в самом низу, после всего текста.
     Колонки «растворяются», и карточка цены встаёт сразу под фото. */
  .service-single { display: flex; flex-direction: column; gap: 0; }
  .service-single__main, .service-single__sidebar { display: contents; }
  .service-single__image { order: 1; }
  .service-single__sidebar > .service-sidebar-card:first-child { order: 2; margin: 16px 0 6px; }
  .service-single__content { order: 3; }
  .service-single__sidebar > .service-sidebar-card { order: 4; }
}

/* ------------------------------------------------------ «О компании» -- */
.about-image, .about-image img { border-radius: 0; }
.stats-grid { gap: 0; }
.stat-card { padding: 6px 24px; border: 0; border-left: 1px solid rgba(255, 255, 255, .22); border-radius: 0; background: none; text-align: left; }
.stat-card:first-child { border-left: 0; }
.stat-card__number { font-weight: 800; letter-spacing: -.03em; }
.features-grid { gap: 0; border-top: 1px solid var(--rule); }
.feature-item { padding: 22px 0; border-bottom: 1px solid var(--rule); }
.features-grid .feature-item:nth-child(odd) { padding-right: 24px; }

/* ----------------------------------------------------------- отзывы -- */
.reviews-grid { gap: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.review-card { border: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); border-radius: 0; box-shadow: none; background: #fff; }
.review-card:hover { transform: none; box-shadow: none; background: var(--paper); }
.review-card__avatar { border-radius: 0; }
.review-card__rating { color: var(--accent); }
.review-card__service { padding-top: 10px; border-top: 1px solid var(--rule-2); color: var(--text-muted); }

/* ---------------------------------------------------- «Организациям» -- */
.org-benefits { gap: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.org-benefit { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 4px 14px; align-items: start; padding: 22px 20px; text-align: left; border: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); border-radius: 0; background: #fff; }
.org-benefit i { grid-row: 1 / span 2; display: grid; place-items: center; width: 44px; height: 44px; margin: 0; background: var(--ink); color: #fff; font-size: 18px; }
.org-benefit h3 { margin: 0; font-size: 17px; }
.org-benefit p { grid-column: 2; margin: 0; }
.org-figure, .org-figure img { border-radius: 0; }

/* -------------------------------------------------- блок «призыв» -- */
.cta-box { border-radius: 0; box-shadow: none; padding: 36px 40px; background: #fff; border: 1px solid var(--rule); border-left: 4px solid var(--primary-color); }
.section--gray .cta-box { background: #fff; }
.cta-box__title { font-size: clamp(22px, 1.4vw + 14px, 30px); font-weight: 800; letter-spacing: -.02em; }
.seo-cta { border-radius: 0; background: var(--grid), var(--ink); box-shadow: none; }

/* --------------------------------------------------------- контакты -- */
.contact-cards { gap: 0; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.contact-card { border: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: #fff; }
.contact-card__icon { border-radius: 0; background: var(--ink); }
.contact-form-wrapper { border: 1px solid var(--rule); border-top: 3px solid var(--primary-color); background: #fff; }
.social-button { border: 1px solid var(--rule); background: #fff; }
.social-button:hover { transform: none; border-color: var(--ink); }
.contact-legal { border-radius: 0; }

/* -------------------------------------------- формы, окна, кнопки -- */
input, select, textarea { border-radius: var(--r); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: 2px solid var(--primary-color); outline-offset: 1px; }
.modal__content { border-top: 3px solid var(--primary-color); }
.floating-button, .floating-buttons > a, .floating-buttons > button { border-radius: var(--r); }
.scroll-top { border-radius: var(--r); }
.error-code { color: transparent; -webkit-text-stroke: 2px var(--primary-color); }

/* ------------------------------------------------------------ телефон -- */
@media (max-width: 768px) {
  .page-header, .page-header--small { padding: 22px 0 26px; }
  .page-header__description { font-size: 15.5px; }
  .services-hero { padding: 26px 0 30px; }
  .services-hero__stats .stat-item { padding: 0 14px; }

  /* список услуг — те же плитки в две колонки, что и на главной */
  .services-list { grid-template-columns: 1fr 1fr; gap: 10px; border: 0; }
  .service-item { position: relative; display: flex; flex-direction: column; gap: 0; padding: 0 0 12px; border: 1px solid var(--rule); background: #fff; }
  .section--gray .service-item { background: #fff; }
  .service-item__photo img { aspect-ratio: 4 / 3; }
  .service-item__content { padding: 10px 10px 0; }
  .service-item__title { margin: 0 0 6px; font-size: 15px; line-height: 1.25; }
  .service-item__title a::after { content: ""; position: absolute; inset: 0; }
  .service-item__description, .service-item__features { display: none; }
  .service-item__aside { margin-top: auto; padding: 8px 10px 0; border: 0; border-top: 1px solid var(--rule-2); margin-left: 10px; margin-right: 10px; padding-left: 0; padding-right: 0; }
  .service-item__aside .btn { display: none; }
  .service-item__price { font-size: 16px; }

  .features-grid .feature-item:nth-child(odd) { padding-right: 0; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-card { padding: 14px 16px; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .22); }
  .reviews-grid, .org-benefits, .contact-cards { grid-template-columns: 1fr; }
  .cta-box { flex-direction: column; align-items: stretch; padding: 22px 18px; text-align: left; }
  .cta-box__actions .btn { width: 100%; justify-content: center; }
  .process-step { grid-template-columns: 52px minmax(0, 1fr); }
  .process-step__number::before { font-size: 28px; }
}
.org-content h2, .org-content h3, .section > .container > h2:not(.section__title) { text-align: left; }
@media (max-width: 768px) { .stats-grid { gap: 0; } .stats-grid > .stat-card { min-width: 0; } .stat-card__number { font-size: 34px; } }
