/* Загородный Формат - единая таблица стилей
   Токены → базовые элементы → компоненты → адаптив */

@font-face { font-family: 'Gilroy'; src: url('fonts/Gilroy-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gilroy'; src: url('fonts/Gilroy-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gilroy'; src: url('fonts/Gilroy-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gilroy'; src: url('fonts/Gilroy-Semibold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gilroy'; src: url('fonts/Gilroy-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  --forest: #357C5F;
  --forest-2: #2E6E54;
  --moss: #33795B;
  --sage: #38835F;
  --forest-text: #2F7357;
  --mint: #D3EFE2;
  --ink: #3D4B44;
  --ink-2: #6B786F;
  --ink-3: #66746D;
  --border: #E4EAE7;
  --surface: #FFFFFF;
  --bg: #F3F6F5;
  --tint: #E9F3EE;
  --tint-2: #EEF6EF;
  --star: #FFC107;
  --danger: #D32F2F;
  --radius: 14px;
  --radius-lg: 22px;
  --shadow: 0 2px 12px rgba(36, 47, 30, .05);
  --shadow-md: 0 3px 14px rgba(36, 47, 30, .07);
  --shadow-lg: 0 14px 38px rgba(36, 47, 30, .10);
  --btn-shadow: 0 6px 16px rgba(31, 74, 55, .26), inset 0 1px 0 rgba(255, 255, 255, .34), inset 0 -1px 0 rgba(0, 0, 0, .10);
  --grad: linear-gradient(180deg, var(--sage) 0%, var(--moss) 52%, var(--forest-2) 100%);
  --display: 'Montserrat', system-ui, sans-serif;
  --sans: 'Gilroy', 'Poppins', system-ui, -apple-system, sans-serif;
  --max: 1280px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font: 400 16px/1.6 var(--sans);
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; }

a { color: var(--forest-text); }
a:hover { color: var(--moss); }

h1, h2, h3, h4 { font-family: var(--display); letter-spacing: -.3px; margin: 0; text-wrap: pretty; }
h1 { font-size: 42px; line-height: 1.1; font-weight: 700; letter-spacing: -1px; }
h2 { font-size: 28px; line-height: 1.2; font-weight: 700; }
h3 { font-size: 18px; line-height: 1.3; font-weight: 600; }
h4 { font-size: 16px; line-height: 1.3; font-weight: 600; }
p { margin: 0 0 12px; }
ul { margin: 0 0 12px; padding-left: 22px; }
li { margin-bottom: 8px; }

.container { max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.section { padding: 44px 0 0; }
.section--last { padding-bottom: 96px; }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ── Шапка ─────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 90;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  box-shadow: 0 1px 0 rgba(36, 47, 30, .08);
}
.site-header__inner { display: flex; align-items: center; gap: 24px; padding: 16px 24px; max-width: var(--max); margin: 0 auto; }
.logo { display: flex; align-items: center; gap: 11px; text-decoration: none; flex: 0 0 auto; }
.logo__mark { flex: 0 0 auto; width: 32px; height: 32px; }
.logo > span { display: flex; flex-direction: column; }
.logo__name { display: block; font: 800 16px var(--display); color: var(--ink); letter-spacing: .2px; line-height: 1; }
.logo__sub { display: block; font: 700 12px var(--sans); letter-spacing: 4px; color: var(--ink-3); margin-top: 3px; line-height: 1; }
.site-header__spacer { flex: 1; }

.nav { display: flex; gap: 26px; }
.nav__link { font: 500 15px var(--sans); color: var(--ink); text-decoration: none; white-space: nowrap; }
.nav__link:hover, .nav__link[aria-current="page"] { color: var(--forest-text); }

/* ── Кнопки ────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 44px; padding: 0 22px; border: none; border-radius: var(--radius);
  font: 400 15px var(--display); text-decoration: none; cursor: pointer;
  transition: filter .18s ease, transform .18s ease, background .16s ease;
}
.btn--primary { background: var(--grad); color: #fff; box-shadow: var(--btn-shadow); height: 52px; }
.btn--primary:hover { filter: brightness(1.08); transform: translateY(-1px); color: #fff; }
.btn--white { background: #fff; color: var(--forest-text); font-weight: 600; }
.btn--white:hover { filter: brightness(.97); }
.btn--ghost { background: var(--surface); border: 1px solid var(--border); color: var(--forest-text); font: 600 14px var(--sans); }
.btn--ghost:hover { background: var(--tint); }
.btn--block { width: 100%; }
.btn--icon { width: 44px; min-height: 44px; padding: 0; border-radius: 999px; }
.btn:disabled, .btn[aria-disabled="true"] { background: #BFD3C8; box-shadow: none; cursor: not-allowed; }

.burger {
  position: relative; flex: 0 0 auto; width: 52px; height: 52px;
  border: none; border-radius: 999px; background: var(--grad);
  box-shadow: var(--btn-shadow); cursor: pointer;
}
.burger span {
  position: absolute; left: 50%; top: 50%; width: 22px; height: 2.4px;
  border-radius: 2px; background: #fff; transition: transform .3s cubic-bezier(.3, .7, .3, 1);
}
.burger span:nth-child(1) { transform: translate(-50%, -50%) translateY(-4px); }
.burger span:nth-child(2) { transform: translate(-50%, -50%) translateY(4px); }
.burger[aria-expanded="true"] { background: #fff; }
.burger[aria-expanded="true"] span { background: var(--forest-text); }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }

/* ── Выезжающее меню ───────────────────────────── */
.menu-panel {
  position: fixed; top: 0; left: 0; right: 0; z-index: 80;
  background: radial-gradient(90% 160% at 18% 0%, var(--sage) 0%, var(--moss) 42%, var(--forest) 100%);
  border-radius: 0 0 22px 22px; box-shadow: 0 12px 34px rgba(36, 47, 30, .16);
  transform: translateY(-102%); transition: transform .5s cubic-bezier(.4, 0, .2, 1);
  padding: 104px 40px 36px;
}
.menu-panel[data-open="true"] { transform: translateY(0); }
.menu-panel__links { display: flex; flex-wrap: wrap; gap: 26px; margin-bottom: 26px; }
.menu-panel__links a { color: #fff; text-decoration: none; font: 500 19px var(--display); }
.menu-panel__links a:hover { color: var(--mint); }
.menu-panel__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.menu-card {
  display: flex; flex-direction: column; justify-content: space-between; gap: 12px;
  min-height: 118px; padding: 16px; border-radius: 16px; background: var(--surface);
  color: var(--ink); text-decoration: none; box-shadow: var(--shadow-md);
  transition: transform .2s ease;
}
.menu-card:hover { transform: translateY(-4px); color: var(--forest-text); }
.menu-card__count { font: 500 12px var(--sans); color: var(--ink-3); }

/* ── Хлебные крошки ────────────────────────────── */
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 400 13px var(--sans); color: var(--ink-3); padding: 22px 0 18px; }
.breadcrumbs a { color: var(--ink-3); text-decoration: none; white-space: nowrap; }
.breadcrumbs a:hover { color: var(--forest-text); }
.breadcrumbs span[aria-current] { color: var(--ink); }

/* ── Герой ─────────────────────────────────────── */
.hero { position: relative; background: var(--surface); border-radius: var(--radius-lg); padding: 56px; overflow: hidden; display: flex; align-items: center; gap: 32px; min-height: 300px; }
.hero__body { position: relative; z-index: 2; max-width: 54%; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.hero__lead { font: 500 17px/1.55 var(--sans); color: var(--ink-2); margin: 0 0 4px; }
.hero__img { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); height: 86%; width: auto; max-width: 40%; object-fit: contain; z-index: 1; pointer-events: none; user-select: none; }
.hero--dark { background: linear-gradient(122deg, #2F3D36 0%, #2C6A51 55%, #357C5F 100%); color: #fff; }
.hero--dark .hero__lead { color: rgba(255, 255, 255, .9); }
.hero--dark h1 { color: #fff; }

/* ── Заголовки секций ──────────────────────────── */
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 22px; }
.section-head p { margin: 6px 0 0; font: 400 16px/1.55 var(--sans); color: var(--ink-2); max-width: 640px; }
.link-more { font: 600 14px var(--sans); color: var(--forest-text); text-decoration: none; white-space: nowrap; }
.link-more:hover { color: var(--moss); }

/* ── Плитки рубрик (бенто) ─────────────────────── */
.bento { display: grid; grid-template-columns: minmax(0, 428px) minmax(0, 1fr) minmax(0, 1fr); grid-auto-rows: 172px; gap: 20px; }
.bento > *:first-child { grid-row: span 2; }
.tile {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  border-radius: 18px; text-decoration: none; color: var(--ink);
  background: linear-gradient(180deg, var(--tint-2) 0%, #F5FAF6 100%);
  transition: transform .16s ease, box-shadow .16s ease;
}
.tile:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(36, 47, 30, .10); color: var(--ink); }
.tile__body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 56px; max-width: 64%; }
.tile__body h3 { font-size: 18px; }
.tile__body p { margin: 0; font: 400 14px/1.5 var(--sans); color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tile__img { position: absolute; right: 0; bottom: 0; width: 62%; height: 52%; z-index: 1; object-fit: contain; object-position: right bottom; }
.tile__arrow {
  position: absolute; left: 18px; bottom: 16px; z-index: 3;
  width: 34px; height: 34px; border-radius: 999px; background: var(--grad);
  box-shadow: 0 6px 16px rgba(31, 74, 55, .26), inset 0 1px 0 rgba(255, 255, 255, .34);
  display: flex; align-items: center; justify-content: center;
}
.bento > *:first-child .tile__body { padding: 26px 26px 64px; gap: 8px; max-width: 62%; }
.bento > *:first-child .tile__body h3 { font-size: 24px; }
.bento > *:first-child .tile__body p { -webkit-line-clamp: 4; }
.bento > *:first-child .tile__arrow { left: 26px; bottom: 24px; width: 44px; height: 44px; }
.bento > *:first-child .tile__img { width: 52%; height: 66%; }

/* ── Карточка категории со слайдером ───────────── */
.cat-row { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(0, 1fr); gap: 20px; align-items: stretch; margin-bottom: 20px; }
.card {
  background: var(--surface); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md); padding: 24px 24px 26px;
}
.card--flex { display: flex; flex-direction: column; }
.card__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }

.slider { position: relative; overflow: hidden; border-radius: 16px; touch-action: pan-y; user-select: none; cursor: grab; }
.slider__track { display: flex; gap: 18px; transition: transform .55s cubic-bezier(.3, .7, .2, 1); will-change: transform; }
.slider__item { flex: 0 0 auto; height: 186px; }
.slider__dots { display: flex; justify-content: center; align-items: center; gap: 7px; margin-top: 18px; }
.slider__dots button { width: 8px; height: 8px; padding: 0; border: none; border-radius: 999px; background: var(--border); cursor: pointer; transition: width .25s ease, background .25s ease; }
.slider__dots button[aria-current="true"] { width: 22px; background: var(--forest-text); }

/* ── Список подрядчиков ───────────────────────── */
.partners-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.partner-mini { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--ink); min-width: 0; }
.partner-mini img { height: 104px; width: 100%; object-fit: cover; border-radius: 12px; background: var(--bg); display: block; }
.partner-mini__name { font: 600 13px/1.3 var(--sans); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partner-mini__meta { font: 400 12px/1.3 var(--sans); color: var(--ink-2); }

.partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; }
.partner-card {
  position: relative; display: flex; flex-direction: column; gap: 14px;
  background: var(--bg); border-radius: 16px; padding: 20px;
  text-decoration: none; color: var(--ink); transition: background .16s ease;
}
.partner-card:hover { background: var(--tint); color: var(--ink); }
.partner-card__top { display: flex; align-items: flex-start; gap: 14px; padding-right: 60px; }
.partner-card__logo { flex: 0 0 auto; width: auto; min-width: 56px; max-width: 116px; height: 72px; border-radius: 14px; overflow: hidden; box-sizing: border-box; padding: 0; background: transparent; display: flex; align-items: center; justify-content: center; }
.partner-card__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.partner-card__call { position: absolute; right: 20px; top: 20px; z-index: 4; background: var(--grad); box-shadow: var(--btn-shadow); }
.partner-card__works { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: auto; }
.partner-card__works img { height: 86px; width: 100%; object-fit: cover; border-radius: 12px; display: block; background: #fff; }

.rating { display: inline-flex; align-items: center; gap: 6px; font: 400 13px var(--sans); color: var(--ink-2); }
.rating__star { color: var(--star); font-size: 15px; }
.rating__value { font: 600 14px var(--sans); color: var(--ink); }
.tags { display: flex; gap: 6px; flex-wrap: wrap; }
.tag { background: #fff; color: var(--ink-2); font: 400 12px/1.3 var(--sans); padding: 6px 11px; border-radius: 8px; }
.tag--green { background: rgba(182, 232, 208, .45); color: var(--forest-text); }

/* ── Промо-баннер ─────────────────────────────── */
.promo {
  position: relative; display: flex; align-items: center; min-height: 170px;
  border-radius: 20px; overflow: hidden; text-decoration: none;
  background: var(--grad); color: #fff;
  box-shadow: 0 3px 14px rgba(36, 47, 30, .14), inset 0 1px 0 rgba(255, 255, 255, .25);
  transition: filter .18s ease, transform .18s ease;
}
.promo:hover { filter: brightness(1.06); transform: translateY(-2px); color: #fff; }
.promo__body { position: relative; z-index: 2; padding: 26px 36px; max-width: 62%; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.promo h2, .promo h3 { color: #fff; }
.promo p { margin: 0; font: 500 16px/1.35 var(--sans); }
.promo__img { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); height: 100%; width: auto; max-width: 44%; object-fit: contain; z-index: 1; pointer-events: none; }

/* ── Статистика ───────────────────────────────── */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.stat { background: var(--bg); border-radius: var(--radius); padding: 18px; }
.stat__value { font: 700 26px var(--display); color: var(--forest-text); margin-bottom: 4px; }
.stat__label { font: 400 13px/1.35 var(--sans); color: var(--ink-2); }

/* ── Галерея партнёра ─────────────────────────── */
.gallery { display: grid; grid-template-columns: 1fr 360px; gap: 24px; margin-bottom: 18px; }
.gallery__main { height: 420px; border-radius: var(--radius-lg); overflow: hidden; background: var(--tint); }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery__side { display: grid; grid-template-rows: repeat(2, 1fr); gap: 24px; }
.gallery__side img { width: 100%; height: 100%; min-height: 96px; object-fit: cover; border-radius: 16px; background: var(--tint); display: block; }

.profile { display: grid; grid-template-columns: 1fr 360px; gap: 24px; align-items: start; }
.profile__main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.profile__aside { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 16px; }
.company-head { display: flex; align-items: center; gap: 18px; margin-bottom: 14px; }
.company-head__logo { flex: 0 0 auto; width: auto; min-width: 72px; max-width: 160px; height: 96px; border-radius: 18px; overflow: hidden; box-sizing: border-box; padding: 0; background: transparent; display: flex; align-items: center; justify-content: center; }
.company-head__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.company-meta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; font: 400 15px var(--sans); color: var(--ink-2); margin-bottom: 22px; }
.source { display: inline-flex; align-items: center; gap: 5px; font: 500 13px var(--sans); color: var(--ink-3); }

.price-row { display: flex; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.price-row__name { flex: 1; min-width: 0; font: 500 16px/1.35 var(--sans); }
.price-row__note { font: 400 13px/1.4 var(--sans); color: var(--ink-3); margin-top: 3px; }
.price-row__term { font: 400 13px var(--sans); color: var(--ink-2); white-space: nowrap; }
.price-row__price { font: 600 16px var(--sans); color: var(--forest-text); white-space: nowrap; min-width: 120px; text-align: right; }

/* ── Формы ────────────────────────────────────── */
.form { display: flex; flex-direction: column; gap: 12px; }
.form label { font: 500 13px var(--sans); color: var(--ink-3); }
.input, .textarea {
  width: 100%; min-height: 52px; border: 1px solid var(--border); border-radius: 12px;
  padding: 14px 16px; font: 500 16px var(--sans); color: var(--ink); background: #fff; outline: none;
  transition: border-color .16s ease;
}
.input:focus, .textarea:focus { border-color: var(--forest-text); }
.textarea { min-height: 110px; resize: vertical; }
.consent { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; font: 400 12px/1.45 var(--sans); color: var(--ink-3); }
.consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--forest-text); flex: 0 0 auto; cursor: pointer; }
.consent--error { color: var(--danger); }
.form__success { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 18px 0; }
.form__success-mark { width: 56px; height: 56px; border-radius: 999px; background: rgba(182, 232, 208, .35); color: var(--forest-text); display: flex; align-items: center; justify-content: center; font-size: 28px; }
.hidden { display: none !important; }

/* ── Модальное окно ───────────────────────────── */
.modal { position: fixed; inset: 0; z-index: 300; background: rgba(28, 38, 32, .55); display: flex; align-items: center; justify-content: center; padding: 24px; }
.modal[hidden] { display: none; }
.modal__box { width: 100%; max-width: 460px; background: var(--surface); border-radius: var(--radius-lg); padding: 30px; box-shadow: 0 24px 60px rgba(20, 30, 24, .34); max-height: 90vh; overflow-y: auto; }
.modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.modal__close { flex: 0 0 auto; width: 36px; height: 36px; border: none; border-radius: 999px; background: var(--bg); color: var(--ink-2); font: 400 18px var(--sans); cursor: pointer; }

/* ── Документ (политика) ──────────────────────── */
.doc { background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow); padding: 44px 48px 48px; }
.doc h2 { font-size: 22px; font-weight: 600; margin: 28px 0 12px; }
.doc h2:first-of-type { margin-top: 0; }
.doc p, .doc li { font: 400 16px/1.7 var(--sans); color: var(--ink-2); }
.doc__date { font: 400 14px var(--sans); color: var(--ink-3); margin-bottom: 30px; }
.doc__note { margin-top: 34px; padding: 22px 24px; background: var(--bg); border-radius: 16px; }

/* ── Подвал ───────────────────────────────────── */
.site-footer { background: var(--grad); color: #fff; margin-top: 56px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--mint); }
.site-footer__grid { max-width: var(--max); margin: 0 auto; padding: 64px 24px 36px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; }
.site-footer__title { font: 700 12px var(--sans); letter-spacing: 1.4px; text-transform: uppercase; margin-bottom: 14px; }
.site-footer__list { display: flex; flex-direction: column; gap: 10px; font: 500 14px var(--sans); }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .18); }
.site-footer__bottom > div { max-width: var(--max); margin: 0 auto; padding: 18px 24px; font: 400 12px var(--sans); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.site-footer .logo__name, .site-footer .logo__sub { color: #fff; }

/* ── Адаптив ──────────────────────────────────── */
@media (max-width: 1150px) {
  .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 172px; }
  .bento > *:first-child { grid-column: span 2; grid-row: span 1; }
  .bento > *:first-child .tile__body { padding: 18px 20px 56px; }
  .bento > *:first-child .tile__body h3 { font-size: 18px; }
  .bento > *:first-child .tile__body p { -webkit-line-clamp: 2; }
  .bento > *:first-child .tile__arrow { left: 18px; bottom: 16px; width: 34px; height: 34px; }
}
@media (max-width: 1000px) {
  .nav { display: none; }
  .cat-row { grid-template-columns: 1fr; }
  .gallery, .profile { grid-template-columns: 1fr; }
  .profile__aside { position: static; }
}
@media (max-width: 760px) {
  h1, h2, h3 { overflow-wrap: break-word; hyphens: auto; }
  h1:not(.zf-title) { font-size: 24px; }
  h2 { font-size: 24px; }
  .container { padding: 0 14px; }
  .section { padding: 24px 0 0; }
  .section--last { padding-bottom: 56px; }
  .hero { padding: 28px 20px; min-height: 0; display: block; }
  .hero__body { max-width: 100%; }
  .hero__img { display: none; }
  .card, .doc { padding: 22px 18px 24px; }
  .doc { border-radius: 18px; }
  .promo__body { max-width: 100%; padding: 22px 20px; }
  .promo__img { display: none; }
  .gallery__main { height: 240px; }
  .menu-panel { padding: 92px 16px 26px; max-height: 92vh; overflow-y: auto; }
  .site-header__inner { padding: 12px 14px; gap: 10px; }
  .btn--wide-hide { display: none; }
  .partners-mini { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .link-more { white-space: normal; }
  .bento { grid-template-columns: 1fr; grid-auto-rows: 160px; gap: 12px; }
  .bento > *:first-child { grid-column: span 1; }
  .tile__body { padding: 14px 14px 52px; max-width: 70%; }
  .partner-grid { grid-template-columns: 1fr; }
  .partner-card__works img { height: 70px; }
  .partners-mini { grid-template-columns: 1fr 1fr; }
  .doc { padding: 20px 16px 24px; }
}

/* Ссылки в заголовках и плотность карточек */
h2 a, h3 a, h4 a { color: var(--ink); text-decoration: none; }
h2 a:hover, h3 a:hover, h4 a:hover { color: var(--forest-text); }
.card__head h2 { font-size: 22px; }
.card__head h3 { font-size: 17px; }
.card > h2 { margin-bottom: 12px; }
.card h3 { margin: 18px 0 8px; }
.card h3:first-of-type { margin-top: 0; }
.doc h1 { font-size: 34px; }
.partner-card h4 { font-size: 16px; margin-bottom: 4px; }
.partner-card p { margin: 0 0 6px; font-size: 14px; color: var(--ink-2); }
.partner-mini img { background: #fff; }
.stat { min-width: 0; }

/* Слайдер не должен раздувать грид */
.cat-row > * { min-width: 0; }
.card--flex { min-width: 0; }
.slider { min-width: 0; width: 100%; }
.slider__track { min-width: 0; }
.slider__item { min-width: 0; }

/* ═══════════ ГЛАВНАЯ 1:1 С ДИЗАЙНОМ ═══════════ */
@keyframes zfFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes zfRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes zfKen{0%{transform:scale(1.06) translate(0%,0%)}20%{transform:scale(1.14) translate(-1%,-2%)}40%{transform:scale(1.22) translate(-3%,-4%)}60%{transform:scale(1.28) translate(-7%,0%)}80%{transform:scale(1.34) translate(-3%,2%)}100%{transform:scale(1.06) translate(0%,0%)}}
body.zf-home{background:#F3F6F5}
.zf-max{max-width:95vw;margin:0 auto}

/* Герой */
.zf-hero-wrap{position:relative;height:100vh}
.zf-shell{position:sticky;top:0;height:100vh;background:#F3F6F5;display:flex;flex-direction:column;padding:44px 18px}
.zf-hero{position:relative;flex:1;min-height:0;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;will-change:transform}
.zf-slide{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity .9s ease;overflow:hidden}
.zf-slide.on{opacity:1}
.zf-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:center;animation:zfKen 40s linear infinite}
.zf-hero__dim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(12,16,14,.72) 0%,rgba(12,16,14,.42) 34%,rgba(12,16,14,.12) 68%,rgba(12,16,14,.06) 100%)}
.zf-hero__lines{position:absolute;inset:0;z-index:2;pointer-events:none;display:grid;grid-template-columns:repeat(4,1fr)}
.zf-hero__lines span{border-right:1px solid rgba(255,255,255,.12)}
.zf-hero__lines span:last-child{border-right:none}
.zf-slidecontent{position:relative;z-index:5;flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:30px;padding:52px 56px 56px}
.zf-title{margin:auto 0 0;max-width:900px;font:600 48px/1.16 var(--display);color:#fff;text-align:left;letter-spacing:-1px}
.zf-title-brand{display:block;margin-bottom:16px;font:700 13px var(--sans);letter-spacing:3.4px;text-transform:uppercase;color:rgba(255,255,255,.78)}
@media(max-width:1100px){.zf-title{font-size:38px}}
@media(max-height:720px){.zf-title{font-size:34px}.zf-slidecontent{gap:20px;padding:40px 40px 40px}}
@media(max-width:760px){.zf-title{font-size:24px;letter-spacing:-.4px;max-width:100%}.zf-title-brand{margin-bottom:10px;font-size:11px;letter-spacing:2.4px}}
@media(max-width:760px){.zf-title{font-size:22px;line-height:1.25;letter-spacing:-.3px;max-width:94%}}

.zf-cta-main{display:inline-flex;align-items:center;gap:12px;background:var(--grad);color:#fff;border:none;border-radius:14px;height:58px;padding:0 34px;text-decoration:none;white-space:nowrap;box-shadow:0 10px 26px rgba(20,48,35,.34),inset 0 1px 0 rgba(255,255,255,.36),inset 0 -1px 0 rgba(0,0,0,.12);font:400 16px var(--display);transition:filter .18s ease,box-shadow .18s ease,transform .18s ease}
.zf-cta-main:hover{filter:brightness(1.08);box-shadow:0 14px 32px rgba(20,48,35,.38),inset 0 1px 0 rgba(255,255,255,.44);transform:translateY(-2px);color:#fff}
.zf-toggles{position:absolute;right:26px;bottom:24px;z-index:6;display:flex;gap:18px}
.zf-toggles button{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:none;cursor:pointer;padding:0}
.zf-toggles .zf-thumb{width:56px;height:56px;border-radius:999px;overflow:hidden;border:3px solid rgba(255,255,255,.45);box-shadow:0 8px 20px rgba(0,0,0,.35);display:block;position:relative;transition:border-color .2s ease}
.zf-toggles button.on .zf-thumb{border-color:#fff}
.zf-toggles .zf-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zf-toggles .zf-tlabel{font:700 11px var(--sans);letter-spacing:1.4px;color:rgba(255,255,255,.72);text-shadow:0 1px 6px rgba(0,0,0,.5);transition:color .15s ease}
.zf-toggles button.on .zf-tlabel{color:#fff}

/* Шапка поверх героя */
.zf-header{position:fixed;top:44px;left:18px;right:18px;z-index:90;padding:22px 34px;border-radius:22px 22px 0 0;background:transparent;pointer-events:none;display:flex;align-items:center;gap:24px}
.zf-header .logo{pointer-events:auto}
.zf-header .logo__name,.zf-header .logo__sub{color:var(--hdText,#fff)}
.zf-header .logo__sub{opacity:.72}
.zf-header .logo__mark path:first-child{fill:var(--hdText,#fff)}
.zf-cta-top{flex:0 0 auto;width:250px;pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;background:var(--grad);color:#fff;border:none;border-radius:14px;height:52px;text-decoration:none;box-shadow:var(--btn-shadow);font:400 15px var(--display);cursor:pointer;transition:filter .18s ease,transform .18s ease,opacity .22s ease}
.zf-cta-top:hover{filter:brightness(1.08);transform:translateY(-1px)}
body[data-menu-open="true"] .zf-cta-top{opacity:0;pointer-events:none}
.zf-header .burger{pointer-events:auto}
.burger:not([aria-expanded="true"]):hover span:nth-child(1){transform:translate(-50%,-50%) rotate(90deg)}
.burger:not([aria-expanded="true"]):hover span:nth-child(2){transform:translate(-50%,-50%) rotate(0deg)}

/* Мегаменю */
.zf-panel{position:fixed;top:0;left:18px;right:18px;z-index:80;overflow:hidden;background:radial-gradient(90% 160% at 18% 0%,var(--sage) 0%,var(--moss) 42%,var(--forest) 100%);border-radius:0 0 22px 22px;box-shadow:0 12px 34px rgba(36,47,30,.16);transform:translateY(-102%);transition:transform .55s cubic-bezier(.4,0,.2,1),height .4s ease;pointer-events:none;height:72vh;min-height:520px}
.zf-panel[data-open="true"]{transform:translateY(0);pointer-events:auto}
.zf-panel-inner{height:100%;display:flex;flex-direction:column;gap:26px;padding:152px 56px 40px}
.zf-cats{display:flex;align-items:center;gap:38px;flex-wrap:wrap}
.zf-cats a{color:#fff;text-decoration:none;font:500 19px var(--display);letter-spacing:.2px;padding:4px 0;opacity:.62;border-bottom:2px solid transparent;transition:opacity .2s ease,border-color .2s ease}
.zf-cats a.on{opacity:1;border-bottom-color:#fff}
.zf-panel-body{display:flex;flex-direction:column;gap:20px;flex:1;min-height:0}
.zf-panel-heading{margin:0;font:600 24px/1.25 var(--display);color:#fff;letter-spacing:-.3px;animation:zfFade .4s ease both}
.zf-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch;flex:1;min-height:0}
.zf-grid > a:nth-child(1){grid-column:1/4;grid-row:1/3}
.zf-grid > a:nth-child(2){grid-column:4/7;grid-row:1/2}
.zf-grid > a:nth-child(3){grid-column:7/10;grid-row:1/2}
.zf-grid > a:nth-child(4){grid-column:4/7;grid-row:2/3}
.zf-grid > a:nth-child(5){grid-column:7/10;grid-row:2/3}
.zf-grid > .zf-allbtn{grid-column:10/13;grid-row:1/3}
.zf-grid.play > a{opacity:0;animation:zfRise .5s ease both}
.zf-grid.play > a:nth-child(1){animation-delay:0s}.zf-grid.play > a:nth-child(2){animation-delay:.05s}.zf-grid.play > a:nth-child(3){animation-delay:.1s}.zf-grid.play > a:nth-child(4){animation-delay:.15s}.zf-grid.play > a:nth-child(5){animation-delay:.2s}.zf-grid.play > .zf-allbtn{animation-delay:.25s}
.zf-catcard{min-width:0;min-height:0;overflow:hidden;background:var(--surface);border-radius:18px;padding:16px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:12px;box-shadow:0 3px 14px rgba(36,47,30,.09);transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}
.zf-catcard:hover{transform:translateY(-8px) scale(1.035);box-shadow:0 10px 26px rgba(36,47,30,.15);color:var(--ink)}
.zf-catcard .zf-catpic{flex:1;min-height:0;border-radius:12px;background:#F3F6F5;display:flex;align-items:center;justify-content:center;overflow:hidden}
.zf-catcard .zf-catimg{height:auto;max-height:100%;max-width:82%;width:auto;object-fit:contain;transition:transform .28s cubic-bezier(.34,1.56,.64,1)}
.zf-catcard:hover .zf-catimg{transform:scale(1.1) rotate(-2deg)}
.zf-catcard h4{margin:0;font:500 16px/1.3 var(--sans);color:var(--ink)}
.zf-allbtn{min-width:0;min-height:0;border-radius:18px;padding:16px;text-decoration:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;color:#fff;background:rgba(255,255,255,.08);border:2px dashed rgba(255,255,255,.55);transition:transform .16s ease,background .16s ease,border-color .16s ease}
.zf-allbtn:hover{transform:translateY(-6px);background:rgba(255,255,255,.16);border-style:solid;border-color:#fff;color:#fff}
.zf-allbtn .zf-allico{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center}
.zf-allbtn span:last-child{font:500 16px var(--sans);text-align:center}

/* Квиз */
.zf-quiz-sec{background:#F3F6F5;padding:88px 24px 0}
.zf-quiz-card{max-width:1280px;margin:0 auto;background:var(--surface);border-radius:34px;box-shadow:var(--shadow);padding:56px 56px 58px}
.zf-quiz-card h2{font:600 32px/1.15 var(--display);color:var(--ink);margin:0 0 6px}
.zf-quiz-card h2 em{font-style:normal;color:var(--forest-text)}
.zf-quiz-sub{font:400 16px/1.55 var(--sans);color:var(--ink-2);margin:0 0 30px}
.zf-quiz-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:start}
.zf-quiz-col{display:flex;flex-direction:column;gap:24px}
.zf-quiz-label{font:500 13px var(--sans);color:var(--ink-3);margin-bottom:10px}
.zf-chips{display:flex;gap:10px;flex-wrap:wrap}
.zf-quiz-chip{height:44px;padding:0 18px;border-radius:999px;border:none;font:500 14px var(--sans);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap;background:#EDF3F0;color:var(--ink)}
.zf-quiz-chip.on{background:var(--forest);color:#fff}
.zf-counter{display:inline-flex;align-items:center;gap:18px;background:#EDF3F0;border-radius:999px;padding:6px}
.zf-counter button{width:44px;height:44px;border-radius:999px;border:none;font:700 20px var(--display);cursor:pointer;box-shadow:var(--shadow)}
.zf-counter .dec{background:var(--surface);color:var(--forest-text)}
.zf-counter .inc{background:var(--grad);color:#fff}
.zf-counter output{min-width:76px;text-align:center;font:700 20px var(--display);color:var(--ink)}
.zf-quiz-go{align-self:flex-start;display:inline-flex;align-items:center;gap:14px;height:56px;padding:0 18px 0 32px;border-radius:14px;text-decoration:none;white-space:nowrap;background:var(--grad);color:#fff;font:400 16px var(--display);box-shadow:var(--btn-shadow);transition:filter .18s ease,transform .18s ease}
.zf-quiz-go{border:none;cursor:pointer;-webkit-appearance:none;appearance:none}
.zf-quiz-go:hover{filter:brightness(1.08);transform:translateY(-1px);color:#fff}
.zf-quiz-go .zf-goico{width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center}
.zf-quiz-res{margin-top:34px;padding-top:28px;border-top:1px solid #E6ECE8}
.zf-quiz-reshead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.zf-quiz-reshead h3{margin:0 0 6px;font:600 22px/1.2 var(--display);color:var(--ink)}
.zf-resnote{margin:0;font:400 14px/1.5 var(--sans);color:var(--ink-3)}
.zf-reslist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.zf-rescard{display:flex;align-items:center;gap:14px;padding:14px;border-radius:18px;background:#F7FAF8;border:1px solid #E6ECE8;text-decoration:none;color:var(--ink);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.zf-rescard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(36,47,30,.12);background:var(--surface);color:var(--ink)}
.zf-resimg{flex:0 0 auto;width:72px;height:72px;border-radius:12px;overflow:hidden;background:#EDF3F0}
.zf-resimg img{width:100%;height:100%;object-fit:cover;display:block}
.zf-resbody{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.zf-resname{display:flex;align-items:center;gap:8px;font:600 16px var(--display);color:var(--ink)}
.zf-resname b{font:600 13px var(--sans);color:var(--ink-2);white-space:nowrap}
.zf-resspec{font:400 13px/1.4 var(--sans);color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.zf-resbadges{display:flex;flex-wrap:wrap;gap:6px}
.zf-resbadges i{font:500 11px var(--sans);font-style:normal;padding:3px 8px;border-radius:999px;background:#EDF3F0;color:var(--ink-3)}
.zf-resbadges i.ok{background:#E8F5E9;color:#2E7D32}
.zf-resbadges i.tpp{background:#E3EBF8;color:#1A3A6B}
.zf-resmatch{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.zf-resmatch b{font:700 17px var(--display);color:var(--forest-text)}
.zf-resmatch span{font:400 10px var(--sans);color:var(--ink-3)}
@media(max-width:1100px){.zf-reslist{grid-template-columns:minmax(0,1fr)}.zf-rescard{min-width:0}.zf-resbody,.zf-rescard > div{min-width:0}}

/* Волна-переход */
.zf-overlay{position:relative;z-index:20;background:var(--surface)}
.wave-canvas{position:absolute;left:0;top:-130px;width:100%;height:150px;pointer-events:none;z-index:0;display:block}
.zf-spacer{position:relative;background:#F3F6F5;height:150px}

/* Промо-баннер (иконка перехода) */
.zf-promo-sec{position:relative;z-index:1;max-width:95vw;margin:0 auto;padding:72px 24px}
.zf-promo{position:relative;display:flex;align-items:center;height:170px;border-radius:20px;overflow:hidden;text-decoration:none;background:var(--grad);box-shadow:0 3px 14px rgba(36,47,30,.14),inset 0 1px 0 rgba(255,255,255,.25);transition:filter .18s ease,transform .18s ease}
.zf-promo:hover{filter:brightness(1.06);transform:translateY(-2px)}
.zf-promo > div{position:relative;z-index:2;padding:0 36px;max-width:62%;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.zf-promo h3{margin:0;font:600 24px/1.25 var(--display);color:#fff;letter-spacing:-.3px}
.zf-promo p{margin:0;font:500 16px/1.3 var(--sans);color:#fff}
.zf-promo .zf-goarr{position:absolute;right:24px;top:22px;z-index:3;width:44px;height:44px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .18s ease}
.zf-promo-img{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:100%;width:auto;max-width:46%;object-fit:contain;object-position:right center;z-index:1;pointer-events:none;user-select:none}

/* Рубрики (бенто как в дизайне) */
.zf-cats-sec{max-width:95vw;margin:0 auto;padding:24px 24px 104px}
.zf-sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.zf-sechead h2{font:700 32px/1.15 var(--display);color:var(--ink);letter-spacing:-.4px;margin:0 0 6px}
.zf-sechead p{font:400 16px/1.55 var(--sans);color:var(--ink-2);margin:0;max-width:640px}
.zf-secgrid{display:grid;grid-template-columns:428px minmax(0,1fr) minmax(0,1fr);grid-auto-rows:172px;gap:20px}
.zf-secgrid > *{min-width:0}
.zf-secgrid > *:first-child{grid-row:span 2}
.zf-rub{position:relative;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:18px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .16s ease,box-shadow .16s ease}
.zf-rub:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(36,47,30,.10)}
.zf-rub-txt{position:relative;z-index:2;display:flex;flex-direction:column;padding:18px 20px 56px;gap:6px;max-width:64%}
.zf-rub-txt h3{margin:0;font:600 18px/1.25 var(--display);color:var(--ink);letter-spacing:-.2px}
.zf-rub-txt p{margin:0;font:400 14px/1.5 var(--sans);color:var(--ink-2);text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.zf-rub-img{position:absolute;right:0;bottom:0;width:62%;height:52%;z-index:1}
.zf-rub-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:right bottom}
.zf-rub-arrow{position:absolute;left:18px;bottom:16px;z-index:3;width:34px;height:34px;border-radius:999px;background:var(--grad);box-shadow:0 6px 16px rgba(31,74,55,.26),inset 0 1px 0 rgba(255,255,255,.34);display:flex;align-items:center;justify-content:center}
.zf-secgrid > *:first-child .zf-rub-txt{padding:26px 26px 64px;gap:8px;max-width:62%}
.zf-secgrid > *:first-child .zf-rub-txt h3{font-size:24px}
.zf-secgrid > *:first-child .zf-rub-txt p{-webkit-line-clamp:4}
.zf-secgrid > *:first-child .zf-rub-arrow{left:26px;bottom:24px;width:44px;height:44px}
.zf-secgrid > *:first-child .zf-rub-img{width:52%;height:66%}

/* Карусель подрядчиков */
.zf-partners-sec{max-width:95vw;margin:0 auto;padding:0 24px}
.zf-partners-sec h2{font:700 32px/1.15 var(--display);color:var(--ink);margin:0 0 40px}
.zf-pcar{position:relative;overflow:hidden;border-radius:22px;touch-action:pan-y;user-select:none}
.zf-ptrack{display:flex;gap:20px;transition:transform .55s cubic-bezier(.3,.7,.2,1);will-change:transform}
.zf-pcard{flex:0 0 auto;position:relative;height:340px;border-radius:18px;overflow:hidden;text-decoration:none;background:var(--bg);display:block}
.zf-pcard > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-pshade{position:absolute;left:0;right:0;bottom:0;height:56%;background:linear-gradient(180deg,rgba(24,38,30,0) 0%,rgba(24,38,30,.72) 62%,rgba(20,32,25,.88) 100%);pointer-events:none}
.zf-prate{position:absolute;right:14px;top:14px;z-index:3;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.92);color:var(--ink);font:600 12px var(--sans);padding:6px 11px;border-radius:999px}
.zf-pcap{position:absolute;left:20px;right:20px;bottom:18px;z-index:3;display:flex;align-items:center;gap:12px}
.zf-plogo{flex:0 0 auto;width:46px;height:46px;border-radius:10px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}
.zf-plogo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.zf-pname{min-width:0;display:flex;flex-direction:column;gap:3px}
.zf-pname b{font:600 18px/1.25 var(--display);color:#fff}
.zf-pname span{font:400 14px/1.35 var(--sans);color:rgba(255,255,255,.86);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zf-pdots{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:22px}
.zf-pdots button{width:8px;height:8px;padding:0;border:none;border-radius:999px;background:var(--border);cursor:pointer;transition:width .25s ease,background .25s ease}
.zf-pdots button.on{width:22px;background:var(--forest-text)}

/* ТПП + форма */
.zf-tpp-sec{max-width:95vw;margin:0 auto;padding:104px 24px 112px}
.zf-tpp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;align-items:stretch}
.zf-tpp{position:relative;background:var(--forest);border-radius:22px;padding:44px;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:16px;overflow:hidden}
.zf-tpp::after{content:"";position:absolute;right:-90px;bottom:-110px;width:320px;height:320px;background:radial-gradient(circle,rgba(182,232,208,.3) 0%,transparent 65%);pointer-events:none}
.zf-tpp-head{position:relative;display:flex;align-items:center;gap:14px}
.zf-tpp-head h3{font:600 24px/1.25 var(--display);margin:0;color:#fff;min-width:0}
.zf-tpp p{position:relative;font:400 15px/1.6 var(--sans);color:#fff;margin:0}
.zf-tpp-stats{position:relative;display:flex;gap:28px;margin-top:6px;flex-wrap:wrap}
.zf-tpp-stats b{display:block;font:700 32px var(--display);color:var(--mint)}
.zf-tpp-stats span{font:500 13px var(--sans);color:#fff}
.zf-form-card{background:var(--surface);border-radius:22px;padding:44px;box-shadow:var(--shadow)}
.zf-form-card h3{font:600 24px/1.25 var(--display);color:var(--ink);margin:0 0 8px}
.zf-form-card > p, .zf-form-card form > p{font:400 15px/1.55 var(--sans);color:var(--ink-2);margin:0 0 20px}

/* Мобайл: следующая секция наезжает на приклеенный герой */
@media(max-width:760px){
  .zf-shell{height:70vh}
  .zf-hero-wrap{height:132vh}
  .zf-home main{position:relative;z-index:20;margin-top:-62vh;background:transparent}
  .zf-quiz-sec{background:transparent;border-radius:24px 24px 0 0}
}

/* Адаптив главной */
@media(max-width:1150px){
  .zf-secgrid{display:flex;flex-wrap:wrap;align-content:flex-start}
  .zf-secgrid > *{flex:1 1 calc(50% - 10px);min-height:150px}
  .zf-secgrid > *:first-child{flex:1 1 100%;min-height:150px}
  .zf-rub-txt,.zf-secgrid > *:first-child .zf-rub-txt{padding:18px 20px 58px;padding-right:140px;max-width:100%;gap:6px}
  .zf-rub-txt p,.zf-secgrid > *:first-child .zf-rub-txt p{-webkit-line-clamp:3}
  .zf-rub-img,.zf-secgrid > *:first-child .zf-rub-img{width:112px;height:112px;right:12px;bottom:12px}
  .zf-secgrid > *:first-child .zf-rub-txt h3{font-size:18px}
  .zf-secgrid > *:first-child .zf-rub-arrow{left:18px;bottom:16px;width:34px;height:34px}
}
@media(max-width:900px){
  .zf-header{padding:16px 20px;gap:12px}
  .zf-cta-top{display:none}
  .zf-slidecontent{padding:36px 22px 26px}
  .zf-panel-inner{padding:116px 24px 28px;gap:18px}
  .zf-cats{gap:16px 22px}
  .zf-cats a{font-size:16px}
  .zf-grid{grid-template-columns:1fr 1fr !important;grid-template-rows:auto !important}
  .zf-grid > a{grid-column:auto !important;grid-row:auto !important;min-height:150px}
  .zf-panel{height:auto;min-height:0;max-height:92vh}
  .zf-panel-inner{overflow-y:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:860px){.zf-quiz-grid{grid-template-columns:1fr;gap:24px}}
@media(min-width:1280px){
  .zf-panel{height:82vh;min-height:640px}
  .zf-panel-inner{padding:152px 40px 44px;gap:22px}
  .zf-grid{gap:20px}
}
@media(max-width:760px){
  .zf-promo{height:auto;padding:26px 0}
  .zf-promo > div{max-width:100%}
  .zf-promo-img{display:none}
  .zf-pcard{height:260px}
  .zf-pcap{left:14px;right:14px;bottom:14px}
  .zf-quiz-sec{padding:44px 14px 0}
  .zf-quiz-card{padding:26px 18px 28px;border-radius:24px}
  .zf-promo-sec{padding:32px 14px}
  .zf-cats-sec{padding:16px 14px 56px}
  .zf-partners-sec{padding:0 14px}
  .zf-tpp-sec{padding:52px 14px 60px}
  .zf-tpp,.zf-form-card{padding:26px 20px}
}
@media(max-width:560px){
  .zf-secgrid{gap:12px}
  .zf-secgrid > *{flex:1 1 100%;min-height:132px}
  .zf-secgrid > *:first-child{min-height:132px}
  .zf-rub-txt,.zf-secgrid > *:first-child .zf-rub-txt{padding:14px 14px 58px;padding-right:112px}
  .zf-rub-img,.zf-secgrid > *:first-child .zf-rub-img{width:92px;height:92px;right:10px;bottom:10px}
}
@media(max-width:480px){
  .zf-toggles{right:14px;bottom:14px;gap:14px}
  .zf-toggles .zf-thumb{width:46px;height:46px}
  .zf-shell{padding:10px}
  .zf-hero{border-radius:16px}
  .zf-header{padding:14px 14px}
  .zf-slidecontent{padding:28px 16px 30px}
  .zf-panel-inner{padding:100px 16px 22px}
  .zf-cats a{font-size:15px}
  .zf-grid{grid-template-columns:1fr !important}
  .zf-grid > a{min-height:120px}
}
@media(max-width:400px){
  .zf-shell{padding:8px}
  .zf-hero{border-radius:14px}
  .zf-header{padding:12px 12px;gap:8px}
  .zf-title{letter-spacing:-1px;line-height:1.04}
  .zf-slidecontent{padding:22px 13px 24px}
  .zf-cta-main{height:52px;font-size:15px}
  .zf-panel-inner{padding:92px 13px 18px;gap:14px}
  .zf-cats{gap:12px 16px}
  .zf-cats a{font-size:14px}
}

/* ═══════════ ВНУТРЕННИЕ СТРАНИЦЫ 1:1 ═══════════ */
.zf-inhead{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.9);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-shadow:0 1px 0 rgba(36,47,30,.08)}
.zf-inhead__in{max-width:95vw;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:24px}
.zf-inhead .logo__name{color:var(--ink)}
.zf-inhead .logo__sub{color:var(--ink-3)}
.zf-panel--flush{left:0;right:0}
.zf-panel--flush .zf-panel-inner{padding:128px 56px 40px}
.zf-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:400 13px var(--sans);color:var(--ink-3);margin-bottom:22px}
.zf-crumbs a{color:var(--ink-3);text-decoration:none}
.zf-crumbs a:hover{color:var(--forest-text)}
.zf-crumbs b{color:var(--ink);font-weight:400}
.zf-herocard{position:relative;background:#fff;border-radius:22px;padding:64px 56px;overflow:hidden;display:flex;align-items:center;gap:32px;min-height:340px}
.zf-herocard > div{position:relative;z-index:2;max-width:52%;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.zf-herocard h1{margin:0;font:600 46px/1.12 var(--display);color:var(--ink);letter-spacing:-1.1px;text-wrap:balance}
.zf-herocard p{margin:0;font:400 18px/1.55 var(--sans);color:var(--ink-2);max-width:560px}
.zf-hero-img{position:absolute;right:24px;top:50%;transform:translateY(-50%);height:88%;width:auto;max-width:46%;object-fit:contain;object-position:right center;z-index:1;pointer-events:none;user-select:none}
.zf-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 28px;border-radius:14px;background:var(--grad);color:#fff;text-decoration:none;white-space:nowrap;font:400 16px var(--display);box-shadow:var(--btn-shadow);border:none;cursor:pointer;transition:filter .18s ease,transform .18s ease}
.zf-btn:hover{filter:brightness(1.08);transform:translateY(-1px);color:#fff}
.slider .tile{min-height:186px;height:auto;border-radius:16px}
.slider .tile__body{padding:22px 24px 24px;max-width:none;gap:10px}
.slider .tile__body h3{font:600 18px/1.35 var(--display);letter-spacing:-.2px;max-width:none}
.slider .tile__body p{display:block;overflow:visible;line-height:1.6;max-width:none}
.slider .tile__img{display:none}
.zf-workname{font:600 13.5px/1.3 var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zf-worknote{font:400 12.5px/1.3 var(--sans);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){
  .zf-inhead__in{padding:14px 14px}
  .zf-panel--flush .zf-panel-inner{padding:96px 16px 28px}
  .zf-herocard{padding:30px 20px;min-height:0;display:block}
  .zf-herocard > div{max-width:100%}
  .zf-herocard h1{font-size:24px;letter-spacing:-.5px}
  .zf-herocard p{font-size:14px}
  .zf-hero-img{display:none}
}

/* Страница категории */
.zf-catlayout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}
.zf-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px}
.zf-sidenav{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:10px}
.zf-sidenav a{display:flex;align-items:center;gap:12px;padding:16px 14px;border-radius:12px;text-decoration:none;font:500 16px/1.3 var(--sans);color:var(--ink);transition:background .16s ease}
.zf-sidenav a:hover{background:#EFF5F2;color:var(--ink)}
.zf-sidenav a.on{background:#E9F3EE;color:var(--forest-text)}
.zf-sidenav a svg{flex:0 0 auto;opacity:.6}
.zf-sidenav a span{flex:1;min-width:0}
.zf-sideb{position:relative;display:block;border-radius:18px;overflow:hidden;text-decoration:none;background:var(--grad);padding:24px;box-shadow:0 3px 14px rgba(36,47,30,.14),inset 0 1px 0 rgba(255,255,255,.25);transition:filter .18s ease,transform .18s ease}
.zf-sideb:hover{filter:brightness(1.06);transform:translateY(-2px)}
.zf-sideb h4{margin:0 0 8px;font:600 18px/1.28 var(--display);color:#fff;max-width:80%}
.zf-sideb p{margin:0;font:400 13.5px/1.5 var(--sans);color:#fff;max-width:80%}
.zf-sideb .zf-goarr2{position:absolute;right:16px;top:16px;width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center}
.zf-block{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:28px 28px 30px;scroll-margin-top:88px}
.zf-block > h2{margin:0 0 18px;font:600 24px/1.22 var(--display);color:var(--ink);letter-spacing:-.4px}
.zf-svc-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.zf-svc-chips span{background:#F3F6F5;color:var(--ink-2);font:400 14px/1.3 var(--sans);padding:9px 14px;border-radius:10px}
.zf-emptynote{font:400 13.5px/1.5 var(--sans);color:var(--ink-3)}
.partner-card__top .zf-pc-name{font:600 17px/1.3 var(--sans);color:var(--ink)}
.partner-card__top .zf-pc-city{font:400 13.5px/1.45 var(--sans);color:var(--ink-2)}
@media(max-width:1000px){.zf-catlayout{grid-template-columns:1fr}.zf-side{position:static}}

/* Страница партнёра */
.zf-gal{display:grid;grid-template-columns:1fr 360px;gap:24px;margin-bottom:18px}
.zf-gal-main{position:relative;height:420px;border-radius:22px;overflow:hidden;background:#E9F3EE;cursor:zoom-in}
.zf-gal-main img,.zf-gal-side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-gal > div:last-child{display:grid;grid-template-rows:repeat(2,1fr);gap:24px}
.zf-gal-side{position:relative;border-radius:16px;overflow:hidden;background:#E9F3EE;min-height:96px;cursor:zoom-in}
.zf-plyt{display:grid;grid-template-columns:1fr 360px;gap:24px;align-items:start}
.zf-pmain{display:flex;flex-direction:column;gap:18px;min-width:0}
.zf-pcard-b{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:34px}
.zf-pcard-b h2{margin:0 0 18px;font:600 26px/1.2 var(--display);color:var(--ink);letter-spacing:-.4px}
.zf-phead{display:flex;align-items:center;gap:18px;margin-bottom:14px}
.zf-phead .zf-plogo96{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:auto;min-width:72px;max-width:160px;height:96px;border-radius:18px;overflow:hidden;background:transparent}
.zf-phead .zf-plogo96 img{position:static;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.zf-phead h1{margin:0;font:600 38px/1.12 var(--display);color:var(--ink);letter-spacing:-1px}
.zf-pmeta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font:400 15px var(--sans);color:var(--ink-2);margin-bottom:22px}
.zf-ya{display:inline-flex;align-items:center;gap:5px;font:500 13px var(--sans);color:var(--ink-3)}
.zf-about{margin:0 0 22px;font:400 16px/1.65 var(--sans);color:var(--ink-2);max-width:720px}
.zf-ptags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.zf-ptags .t1{background:#F3F6F5;color:var(--ink-2);font:400 13.5px/1.3 var(--sans);padding:8px 13px;border-radius:9px}
.zf-ptags .t2{background:rgba(182,232,208,.35);color:var(--forest-text);font:500 13.5px/1.3 var(--sans);padding:8px 13px;border-radius:9px}
.zf-workgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:150px;gap:12px}
.zf-workgrid > span{position:relative;display:block;border-radius:14px;overflow:hidden;background:#F3F6F5;cursor:zoom-in}
.zf-workgrid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-gnote{font:400 14px var(--sans);color:var(--ink-2)}
.zf-aside-card{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:28px}
.zf-aside-card .zf-ac-t{font:600 20px/1.25 var(--display);color:var(--ink);margin-bottom:6px}
.zf-aside-card .zf-ac-s{font:400 13.5px/1.5 var(--sans);color:var(--ink-2);margin-bottom:18px}
.zf-phone-btn{width:100%;height:52px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--forest-text);font:600 15px var(--sans);cursor:pointer;margin-bottom:10px;transition:background .16s ease}
.zf-phone-btn:hover{background:#E6F2EC}
.zf-phone-num[hidden]{display:none}
.zf-phone-num{display:flex;align-items:center;justify-content:center;height:52px;border-radius:12px;background:#F3F6F5;color:var(--ink);text-decoration:none;font:700 19px var(--display);margin-bottom:10px;animation:zfFade .2s ease}
.zf-netcard{background:var(--grad);border-radius:22px;padding:26px;color:#fff;box-shadow:0 3px 14px rgba(36,47,30,.14),inset 0 1px 0 rgba(255,255,255,.25)}
.zf-netcard h4{margin:0 0 8px;font:600 18px/1.3 var(--display);color:#fff}
.zf-netcard p{margin:0 0 16px;font:400 13.5px/1.5 var(--sans);color:#fff}
.zf-netlinks{display:flex;flex-direction:column;gap:10px}
.zf-netlinks button{border:none;cursor:pointer;font-family:inherit;width:100%}
.zf-netlinks a,.zf-netlinks button{display:flex;align-items:center;gap:10px;height:44px;padding:0 16px;border-radius:12px;background:#fff;color:var(--forest-text);text-decoration:none;font:600 14px var(--sans);transition:filter .16s ease}
.zf-netlinks a:hover,.zf-netlinks button:hover{filter:brightness(.97);color:var(--forest-text)}
.zf-netlinks a span,.zf-netlinks button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zf-facts{display:flex;flex-direction:column;gap:12px}
.zf-fact{display:flex;justify-content:space-between;gap:12px;font:400 13.5px var(--sans)}
.zf-fact span:first-child{color:var(--ink-3)}
.zf-fact span:last-child{color:var(--ink);text-align:right;font-weight:500}
.zf-lb{position:fixed;inset:0;z-index:200;background:rgba(24,32,28,.88);display:flex;align-items:center;justify-content:center;padding:40px;animation:zfFade .18s ease}
.zf-lb[hidden]{display:none}
.zf-lb__img{max-width:88vw;max-height:82vh;border-radius:14px;object-fit:contain}
.zf-lb button{position:absolute;width:56px;height:56px;border-radius:999px;border:none;cursor:pointer;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .16s ease}
.zf-lb button:hover{background:rgba(255,255,255,.26)}
.zf-lb [data-lb-prev]{left:24px;top:50%;transform:translateY(-50%)}
.zf-lb [data-lb-next]{right:24px;top:50%;transform:translateY(-50%)}
.zf-lb [data-lb-close]{right:24px;top:24px;width:48px;height:48px}
.zf-lb__pos{position:absolute;left:0;right:0;bottom:26px;text-align:center;font:500 14px var(--sans);color:rgba(255,255,255,.75)}
.zf-videobox{display:flex;justify-content:center;background:#E9F3EE;border-radius:16px;overflow:hidden}
.zf-videobox video{max-height:560px;max-width:100%;height:auto;width:auto;display:block}
@media(max-width:1000px){.zf-gal{grid-template-columns:1fr}.zf-plyt{grid-template-columns:1fr}.zf-gal-main{height:280px}}
@media(max-width:760px){.zf-phead h1{font-size:24px}.zf-pcard-b{padding:24px 18px}.zf-workgrid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:120px}.zf-gal-main{height:200px}.zf-lb{padding:14px}.zf-lb [data-lb-prev]{left:8px}.zf-lb [data-lb-next]{right:8px}}

/* О проекте и Контакты */
.zf-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.zf-darkhero{background:linear-gradient(122deg,#2F3D36 0%,#2C6A51 55%,#357C5F 100%);border-radius:22px;padding:56px 48px;color:#fff;position:relative;overflow:hidden}
.zf-darkhero::before{content:"";position:absolute;right:-120px;top:-140px;width:440px;height:440px;background:radial-gradient(circle,rgba(211,239,226,.22) 0%,transparent 65%);pointer-events:none}
.zf-darkhero .zf-kicker{position:relative;font:700 12px var(--sans);letter-spacing:2px;color:rgba(255,255,255,.7)}
.zf-darkhero h1{position:relative;margin:12px 0 14px;font:600 48px/1.08 var(--display);color:#fff;letter-spacing:-1.4px;max-width:820px;text-wrap:balance}
.zf-darkhero > p{position:relative;margin:0;font:400 17px/1.65 var(--sans);color:rgba(255,255,255,.88);max-width:660px}
.zf-darkhero .zf-hbtns{position:relative;display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
.zf-btn-white{display:inline-flex;align-items:center;height:52px;padding:0 26px;border-radius:14px;background:#fff;color:var(--forest-text);text-decoration:none;font:600 15px var(--sans)}
.zf-btn-white:hover{color:var(--forest-text);filter:brightness(.97)}
.zf-btn-outline{display:inline-flex;align-items:center;height:52px;padding:0 26px;border-radius:14px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);color:#fff;text-decoration:none;font:500 15px var(--sans)}
.zf-btn-outline:hover{background:rgba(255,255,255,.22);color:#fff}
.zf-txtcard{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:38px}
.zf-txtcard h2{margin:0 0 14px;font:600 28px/1.18 var(--display);color:var(--ink);letter-spacing:-.5px}
.zf-txtcard p{margin:0 0 14px;font:400 16px/1.65 var(--sans);color:var(--ink-2)}
.zf-txtcard p:last-child{margin-bottom:0}
.zf-imgcard{position:relative;border-radius:22px;overflow:hidden;min-height:320px;background:#E4EDE8}
.zf-imgcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zf-princip{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.zf-princip > div{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:28px}
.zf-princip .zf-pn{width:44px;height:44px;border-radius:12px;background:rgba(182,232,208,.4);color:var(--forest-text);display:flex;align-items:center;justify-content:center;font:700 18px var(--display);margin-bottom:14px}
.zf-princip h3{margin:0 0 8px;font:600 18px/1.3 var(--display);color:var(--ink)}
.zf-princip p{margin:0;font:400 14.5px/1.6 var(--sans);color:var(--ink-2)}
.zf-steps5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.zf-step5{display:grid;grid-template-columns:1fr .8fr;gap:16px;align-items:center;background:var(--grad);border-radius:20px;padding:24px;overflow:hidden;box-shadow:0 4px 14px rgba(20,30,12,.12),inset 0 1px 0 rgba(255,255,255,.16)}
.zf-step5 > div:first-child{min-width:0}
.zf-step5 .zf-snum{display:inline-block;font:700 20px var(--display);color:var(--mint);margin-bottom:7px}
.zf-step5 h3{margin:0 0 6px;font:600 18px/1.28 var(--display);color:#fff}
.zf-step5 p{margin:0;font:400 13.5px/1.5 var(--sans);color:rgba(255,255,255,.88)}
.zf-step5 .zf-simg{position:relative;border-radius:12px;overflow:hidden;min-height:118px;align-self:stretch;min-width:0;background:rgba(255,255,255,.14)}
.zf-step5 .zf-simg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zf-faq button{width:100%;display:flex;align-items:center;gap:14px;background:none;border:none;cursor:pointer;padding:16px 0;text-align:left}
.zf-faq .zf-fq{flex:1;font:500 15.5px/1.4 var(--sans);color:var(--ink)}
.zf-faq .zf-fx{flex:0 0 auto;width:26px;height:26px;border-radius:999px;background:#F3F6F5;color:var(--forest-text);display:flex;align-items:center;justify-content:center;font:700 15px var(--display);transition:transform .2s ease}
.zf-faq details{border-bottom:1px solid var(--border)}
.zf-faq details summary{list-style:none;display:flex;align-items:center;gap:14px;cursor:pointer;padding:16px 0}
.zf-faq details summary::-webkit-details-marker{display:none}
.zf-faq details[open] .zf-fx{transform:rotate(45deg)}
.zf-faq details p{margin:0 0 16px;font:400 14.5px/1.6 var(--sans);color:var(--ink-2);animation:zfFade .2s ease}
.zf-chan{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.zf-chan a{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:28px;text-decoration:none;display:flex;flex-direction:column;gap:8px;transition:transform .16s ease,box-shadow .16s ease}
.zf-chan a:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.zf-chan .zf-cl{font:700 12px var(--sans);letter-spacing:1.6px;color:var(--ink-3);text-transform:uppercase}
.zf-chan .zf-cv{font:600 20px/1.3 var(--display);color:var(--ink)}
.zf-chan .zf-cn{font:400 13.5px/1.5 var(--sans);color:var(--ink-2)}
.zf-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.zf-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.zf-topic{height:44px;padding:0 18px;border-radius:999px;border:none;cursor:pointer;font:500 14px var(--sans);background:#F3F6F5;color:var(--ink);transition:background .16s ease,color .16s ease}
.zf-topic.on{background:var(--grad);color:#fff}
.zf-check{display:flex;align-items:flex-start;gap:10px}
.zf-check .zf-chk{flex:0 0 auto;width:20px;height:20px;border-radius:999px;background:var(--mint);color:var(--forest-2);display:flex;align-items:center;justify-content:center;font:700 12px var(--sans);margin-top:2px}
.zf-check span:last-child{font:400 14.5px/1.5 var(--sans);color:#fff}
.zf-benefit h4{margin:0 0 4px;font:600 16px/1.3 var(--display);color:var(--ink)}
.zf-benefit p{margin:0;font:400 14px/1.55 var(--sans);color:var(--ink-2)}
@media(max-width:1024px){.zf-steps5{grid-template-columns:1fr 1fr}.zf-step5{grid-column:auto !important}}
@media(max-width:900px){.zf-two{grid-template-columns:1fr}.zf-formgrid{grid-template-columns:1fr}}
@media(max-width:640px){.zf-steps5{grid-template-columns:1fr}.zf-darkhero{padding:32px 20px}.zf-darkhero h1{font-size:24px}.zf-2col{grid-template-columns:1fr}.zf-txtcard{padding:26px 20px}}

/* Поп-ап выезда на объект */
.modal__box--wide{max-width:520px}
.modal__lead{margin:0 0 18px;font:400 14px/1.55 var(--sans);color:var(--ink-2)}
.modal__points{display:flex;flex-direction:column;gap:10px;margin:0 0 20px;padding:16px 18px;background:var(--tint);border-radius:14px}
.modal__points div{display:flex;align-items:flex-start;gap:10px;color:var(--ink)}
.modal__points div > span:last-child{flex:1;min-width:0;font:400 13.5px/1.5 var(--sans)}
.modal__points .zf-chk2{flex:0 0 auto;width:20px;height:20px;border-radius:999px;background:var(--forest-text);color:#fff;display:flex;align-items:center;justify-content:center;font:700 12px var(--sans);margin-top:1px}
select.input{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B786F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;padding-right:44px;cursor:pointer}

/* Светлые (белые) логотипы - тёмная подложка */
.is-lightlogo{background:var(--forest-2)!important;box-shadow:none!important;padding:8px!important}

/* Мобайл: увеличенная зона нажатия у точек слайдера */
@media(max-width:760px){
  .slider__dots button,.zf-pdots button{position:relative}
  .slider__dots button::after,.zf-pdots button::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:36px}
}

/* Мобайл: единый кегель главных заголовков страниц (кроме заголовка героя) */
@media (max-width: 760px) {
  h1:not(.zf-title),
  .doc h1, .zf-herocard h1, .zf-phead h1, .zf-darkhero h1 { font-size: 24px; line-height: 1.18; letter-spacing: -.5px; }
}

/* Мобайл: единый кегель заголовков секций */
@media (max-width: 760px) {
  .zf-quiz-card h2, .zf-sechead h2, .zf-partners-sec h2,
  .zf-block > h2, .zf-pcard-b h2, .zf-txtcard h2, .doc h2, .section-head h2 { font-size: 24px; line-height: 1.22; }
}

/* Мобайл: у квиза скрыт подзаголовок-кикер */
@media (max-width: 760px) {
  .zf-quiz-card .zf-quiz-sub { display: none; }
  .zf-quiz-card h2 { margin-bottom: 20px; }
}

/* Мобайл: компактный квиз */
@media (max-width: 760px) {
  .zf-quiz-sec { padding: 28px 12px 0; }
  .zf-quiz-card { padding: 20px 14px 22px; border-radius: 20px; }
  .zf-quiz-grid { gap: 14px; grid-template-columns: minmax(0, 1fr); }
  .zf-quiz-col, .zf-quiz-col > div { min-width: 0; }
  .zf-quiz-col { gap: 14px; }
  .zf-quiz-label { font-size: 12px; margin-bottom: 7px; }
  .zf-chips { flex-wrap: nowrap; overflow-x: auto; gap: 7px; padding-bottom: 2px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .zf-chips::-webkit-scrollbar { display: none; }
  .zf-quiz-chip { height: 44px; padding: 0 14px; font-size: 13px; flex: 0 0 auto; }
  .zf-counter { gap: 10px; padding: 4px; }
  .zf-counter button { width: 44px; height: 44px; font-size: 18px; }
  .zf-counter output { min-width: 56px; font-size: 18px; }

  .zf-quiz-res { margin-top: 20px; padding-top: 18px; }
  .zf-quiz-reshead { align-items: flex-start; gap: 10px; margin-bottom: 12px; }
  .zf-quiz-reshead h3 { font-size: 17px; margin-bottom: 3px; }
  .zf-resnote { font-size: 12px; line-height: 1.4; }
  .zf-quiz-go { height: 44px; padding: 0 12px 0 18px; font-size: 14px; gap: 10px; border-radius: 12px; }
  .zf-quiz-go .zf-goico { width: 26px; height: 26px; }
  .zf-reslist { gap: 8px; }
  .zf-rescard { gap: 10px; padding: 10px; border-radius: 14px; align-items: flex-start; }
  .zf-resimg { width: 48px; height: 48px; border-radius: 10px; }
  .zf-resbody { gap: 3px; }
  .zf-resname { font-size: 14px; gap: 6px; }
  .zf-resname b { font-size: 12px; }
  .zf-resspec { font-size: 12px; -webkit-line-clamp: 1; }
  .zf-resbadges { gap: 4px; }
  .zf-resbadges i { font-size: 10px; padding: 2px 6px; }
  .zf-resmatch b { font-size: 14px; }
}

/* Мобайл: единый вертикальный ритм секций — 32px между всеми */
@media (max-width: 760px) {
  .zf-spacer { display: none; }
  .wave-canvas { display: none; }
  .zf-quiz-sec { padding: 0 12px 55px !important; background: transparent; }
  .zf-quiz-card { position: relative; z-index: 2; margin-top: -32px; box-shadow: 0 -14px 34px rgba(20, 30, 12, .14); }
  .zf-promo-sec { padding: 0 12px 0 !important; }
  .zf-cats-sec { padding: 55px 12px 0; }
  .zf-partners-sec { padding: 55px 12px 0; }
  .zf-tpp-sec { padding: 55px 12px 55px; }
  .zf-sechead { margin-bottom: 20px; }
  .zf-partners-sec h2 { margin-bottom: 20px; }
  .zf-pdots { margin-top: 16px; }
}

/* Мобайл: единый вертикальный ритм секций по всему сайту (32px) */
@media (max-width: 760px) {
  main > .zf-max,
  main > section,
  main > .container,
  main > .section { padding-top: 55px !important; padding-bottom: 0 !important; padding-left: 12px !important; padding-right: 12px !important; }
  main > *:last-child:not(.zf-overlay) { padding-bottom: 55px !important; }
  .zf-overlay > *:last-child { padding-bottom: 55px !important; }
  footer { margin-top: 0 !important; }
  main > .zf-max > *:last-child { margin-bottom: 0; }
  main > .zf-max > h2, main > .section > h2 { margin-bottom: 20px; }
  .zf-block { padding: 20px 16px 22px; border-radius: 18px; }
  .zf-block > h2 { margin-bottom: 16px; }
}

/* Мобайл: без белой плиты под квизом — единый фон страницы */
@media (max-width: 760px) {
  .zf-pcard { background: var(--surface); border: 1px solid rgba(36, 47, 30, .09); }
}

/* Мобайл: отступ под квизом переносим в саму секцию квиза */
@media (max-width: 760px) {
  .zf-quiz-sec { padding-bottom: 55px !important; }
  .zf-promo-sec { padding-top: 0 !important; }
}

/* Мобайл: единый фон страницы, оверлей — отдельный белый блок */
@media (max-width: 760px) {
  body, body.zf-home, .zf-shell { background: #F3F6F5; }
  .zf-home main { background: transparent; }
  .zf-overlay { background: var(--surface); }
  .zf-quiz-sec { background: transparent !important; }
}

/* Мобайл: промо-баннер — текст 48% + место под иконку 50% */
@media (max-width: 760px) {
  .zf-promo { height: auto; padding: 12px 16px; gap: 2%; align-items: center; }
  .zf-promo > div { flex: 0 0 48%; width: 48%; max-width: 48%; padding: 0; gap: 6px; }
  .zf-promo h3 { font-size: 16px; line-height: 1.25; }
  .zf-promo p { font-size: 12px; line-height: 1.35; font-weight: 400; }
  .zf-promo-img { display: block; position: static; transform: none; flex: 0 0 auto; width: 50%; max-width: 110px; height: auto; margin-left: auto; object-position: center; }
  .zf-promo .zf-goarr { right: 12px; top: 12px; width: 34px; height: 34px; }
}

/* Попап-квиз */
.modal--quiz{align-items:flex-start;overflow-y:auto;padding:24px}
.modal__box--quiz{max-width:1040px;padding:32px 32px 34px;border-radius:24px;margin:auto}
.modal__box--quiz .modal__head{align-items:flex-start;margin-bottom:26px}
.modal__box--quiz h2{margin:0;font:600 28px/1.15 var(--display);color:var(--ink)}
.modal__box--quiz h2 em{font-style:normal;color:var(--forest-text)}
@media (max-width:760px){
  .modal--quiz{padding:10px}
  .modal__box--quiz{padding:18px 14px 20px;border-radius:20px;max-height:94vh}
  .modal__box--quiz .modal__head{margin-bottom:16px}
  .modal__box--quiz h2{font-size:20px}
}

/* Квиз: шаг 2 */
.zf-quiz-next{margin-top:28px}
.zf-quiz-back{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;padding:0;border:none;background:none;cursor:pointer;font:500 14px var(--sans);color:var(--forest-text)}
.zf-quiz-back:hover{opacity:.75}
.zf-quiz-res h3:focus{outline:none}
@media (max-width:760px){
  .zf-quiz-next{margin-top:16px;width:100%;justify-content:space-between}
  .zf-quiz-back{margin-bottom:12px;font-size:13px}
}

[hidden].zf-quiz-grid,[hidden].zf-quiz-go,[hidden].zf-quiz-next,[hidden].zf-quiz-back,[hidden].zf-quiz-res{display:none}

/* Мобайл: меню каталога скроллится целиком */
@media (max-width: 760px) {
  .zf-panel { max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .zf-panel-inner { height: auto; min-height: 0; overflow: visible; }
  .zf-panel-body, .zf-grid { min-height: 0; flex: none; }
}

/* Мобайл: заголовок карточки-рубрики в одном кегле с плитками внутри */
@media (max-width: 760px) {
  .card__head h2, .card__head h2 a { font-size: 20px; line-height: 1.28; }
  .card__head h3 { font-size: 20px; line-height: 1.28; }
  .card__head { gap: 10px; align-items: flex-end; }
  .card__head .link-more { flex: 0 0 auto; white-space: nowrap; font-size: 13px; line-height: 1.28; }
}

/* Мобайл: в рубриках прячем сайдбар-навигацию по рубрикам */
@media (max-width: 760px) {
  .zf-catlayout > .zf-side .zf-sidenav { display: none; }
}

/* Мобайл: CTA в hero-карточке — как кнопка квиза, текст по центру */
@media (max-width: 760px) {
  .zf-herocard .zf-btn { width: 100%; height: 44px; padding: 0 18px; border-radius: 12px; font-size: 14px; justify-content: center; text-align: center; }
}

/* Мобайл: звонок — кнопка внизу карточки, текст на всю ширину */
@media (max-width: 760px) {
  .partner-card__top { padding-right: 0; }
  .partner-card__call {
    position: static; order: 99; width: 100%; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    color: #fff; font: 400 14px var(--sans); text-decoration: none;
  }
  .partner-card__call::after { content: "Позвонить"; }
  .partner-card__call:hover, .partner-card__call:active, .partner-card__call:focus { color: #fff; }
  .partner-card__works { margin-top: 0; }
}

/* Мобайл: логотипы подрядчиков одной ширины */
@media (max-width: 760px) {
  .partner-card__logo { width: 96px; min-width: 96px; max-width: 96px; height: 72px; display: flex; align-items: center; justify-content: center; }
  .partner-card__logo img { max-width: 100%; max-height: 100%; }
}

/* Мобайл: попап-квиз — нормальный кегель и воздух */
@media (max-width: 760px) {
  .modal--quiz { padding: 12px; align-items: center; }
  .modal__box--quiz { padding: 22px 16px 24px; border-radius: 20px; max-height: 92dvh; }
  .modal__box--quiz .modal__head { margin-bottom: 20px; gap: 12px; }
  .modal__box--quiz h2 { font: 600 22px/1.22 var(--display); }
  .modal__box--quiz .zf-quiz-grid { gap: 20px; }
  .modal__box--quiz .zf-quiz-col { gap: 18px; }
  .modal__box--quiz .zf-quiz-label { font-size: 13px; margin-bottom: 10px; }
  .modal__box--quiz .zf-chips { gap: 8px; }
  .modal__box--quiz .zf-quiz-chip { height: 44px; padding: 0 16px; font-size: 14px; }
  .modal__box--quiz .zf-counter { gap: 12px; padding: 5px; }
  .modal__box--quiz .zf-counter button { width: 44px; height: 44px; font-size: 20px; }
  .modal__box--quiz .zf-counter output { min-width: 64px; font-size: 20px; }
  .modal__box--quiz .zf-quiz-next { margin-top: 22px; height: 48px; font-size: 15px; }
  .modal__box--quiz .zf-quiz-res { margin-top: 22px; padding-top: 20px; }
  .modal__box--quiz .zf-quiz-reshead h3 { font-size: 18px; }
  .modal__box--quiz .zf-resnote { font-size: 13px; line-height: 1.45; }
  .modal__box--quiz .zf-quiz-back { font-size: 14px; margin-bottom: 14px; }
  .modal__box--quiz .zf-resname { font-size: 15px; }
  .modal__box--quiz .zf-resspec { font-size: 13px; }
  .modal__box--quiz .zf-resbadges i { font-size: 11px; padding: 3px 7px; }
}

/* Мобайл: попап выезда — без плашки проверок и без скролла */
@media (max-width: 760px) {
  .modal { padding: 12px; align-items: center; }
  .modal__box { padding: 20px 16px 22px; border-radius: 18px; max-height: 92dvh; margin: auto; }
  .modal__head { margin-bottom: 10px; gap: 10px; }
  .modal__box h2 { font: 600 20px/1.25 var(--display); }
  .modal__points { display: none; }
  .modal__lead { font-size: 13.5px; line-height: 1.5; margin-bottom: 14px; }
  .modal__box label { font-size: 13px; }
  .modal__box .input { height: 46px; font-size: 15px; }
  .modal__box .consent { font-size: 12px; }
}

/* Карточки-панели (контакты, FAQ) и «плотный» тёмный герой */
.zf-panecard{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:40px}
@media (min-width: 761px){ .zf-darkhero--tight{padding:52px 48px} }

/* Мобайл: единые отступы, кегли и кнопки на «О проекте», «Контакты», «Политике» */
@media (max-width: 760px) {
  .zf-darkhero, .zf-darkhero--tight { padding: 22px 18px 24px; border-radius: 18px; }
  .zf-darkhero .zf-kicker { font-size: 11px; letter-spacing: 1.6px; }
  .zf-darkhero h1 { margin: 10px 0 12px; font-size: 24px; line-height: 1.2; }
  .zf-darkhero > p { font-size: 14px; line-height: 1.55; }
  .zf-darkhero .zf-hbtns { margin-top: 18px; gap: 10px; flex-direction: column; align-items: stretch; }
  .zf-btn-white, .zf-btn-outline { width: 100%; height: 44px; padding: 0 18px; border-radius: 12px; font: 400 14px var(--sans); justify-content: center; text-align: center; }

  .zf-panecard, .zf-txtcard, .doc { padding: 22px 18px 24px; border-radius: 18px; }
  .zf-panecard h2, .zf-panecard h3, .zf-txtcard h2 { font-size: 20px !important; line-height: 1.28 !important; }
  .zf-txtcard p, .doc p, .doc li { font-size: 14px; line-height: 1.6; }

  .doc h1 { font-size: 22px; line-height: 1.22; hyphens: auto; overflow-wrap: break-word; }
  .doc__date { font-size: 13px; margin-bottom: 20px; }
  .doc h2 { font-size: 18px; margin: 22px 0 10px; }
  .doc__note { margin-top: 24px; padding: 18px 16px; border-radius: 14px; }

  .zf-chan a { padding: 16px 18px; }
  .zf-chan .zf-cl { font-size: 11px; letter-spacing: 1.4px; }
  .zf-chan .zf-cv { font-size: 17px; line-height: 1.3; overflow-wrap: anywhere; }
  .zf-chan .zf-cn { font-size: 12.5px; }
  main .container { padding-left: 0; padding-right: 0; }
  .zf-aside-card { padding: 20px 18px; border-radius: 18px; }
}

/* Карточка «Что вы получаете» */
.zf-benefitcard{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:44px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.zf-benefits{display:flex;flex-direction:column;gap:14px}
@media (max-width: 760px) {
  .zf-benefitcard { padding: 22px 18px 24px; border-radius: 18px; gap: 16px; }
  .zf-benefitcard > h3 { font-size: 20px !important; line-height: 1.28 !important; }
  .zf-benefits { gap: 16px; }
  .zf-benefit h4 { margin: 0 0 6px; font-size: 16px; }
  .zf-benefit p { font-size: 14px; line-height: 1.55; }
}

/* Мобайл: скрываем блок «Пять шагов до попадания в каталог» */
@media (max-width: 760px) {
  #kak { display: none; }
}

/* Мобайл: промо-баннер — текст на всю ширину, иконка абсолютом в правом нижнем углу */
@media (max-width: 760px) {
  .zf-promo { position: relative; min-height: 104px; padding: 16px 18px; align-items: center; overflow: hidden; }
  .zf-promo > div { flex: 1 1 auto; width: auto; max-width: none; padding-right: 42%; }
  .zf-promo h3 { font-size: 17px; line-height: 1.3; font-weight: 600; text-wrap: balance; }
  .zf-promo p { display: none; }
  .zf-promo .zf-goarr { display: flex; position: absolute; right: 12px; top: 12px; width: 20px; height: 20px; background: none; box-shadow: none; border-radius: 0; }
  .zf-promo-img { position: absolute; right: 0; bottom: 0; top: auto; width: auto; max-width: 42%; height: 100%; margin: 0; transform: none; object-fit: contain; object-position: right bottom; }
}

/* Промо-баннер: вариант с авто-высотой (ПК) */
@media (min-width: 761px){ .zf-promo--tall{min-height:170px;height:auto} }

/* Мобайл: все промо-баннеры — как на главной */
@media (max-width: 760px) {
  .zf-promo, .zf-promo--tall { min-height: 104px; height: auto; }
  .zf-sideb { padding: 16px 18px; min-height: 104px; display: flex; flex-direction: column; justify-content: center; }
  .zf-sideb h4 { margin: 0; font: 600 17px/1.3 var(--display); max-width: 78%; text-wrap: balance; }
  .zf-sideb p { display: none; }
  .zf-sideb .zf-goarr2 { right: 12px; top: 12px; width: 20px; height: 20px; background: none; border-radius: 0; }
}

/* Слайдер «Подрядчики в категории» */
.slider--mini .slider__item{height:auto}
.slider--mini + .slider__dots{margin-top:14px}

/* Подрядчики в категории — галерея с подписью на фото */
.slider--mini .partner-mini{position:relative;display:block;height:196px;border-radius:14px;overflow:hidden;background:#F3F6F5;gap:0}
.slider--mini .partner-mini > img{position:absolute;inset:0;width:100%;height:100%;border-radius:0;object-fit:cover;transition:transform .35s ease}
.slider--mini .partner-mini:hover > img{transform:scale(1.04)}
.partner-mini__bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:34px 12px 12px;background:linear-gradient(to top,rgba(14,30,22,.86) 0%,rgba(14,30,22,.55) 55%,rgba(14,30,22,0) 100%)}
.partner-mini__logo{flex:0 0 40px;width:40px;height:40px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;padding:5px}
.partner-mini__logo img{position:static;width:100%;height:100%;object-fit:contain;border-radius:0;background:none}
.partner-mini__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.slider--mini .zf-workname{color:#fff}
.slider--mini .zf-worknote{color:rgba(255,255,255,.82)}
@media (max-width:760px){
  .slider--mini .partner-mini{height:152px}
  .partner-mini__bar{padding:26px 10px 10px;gap:8px}
  .partner-mini__logo{flex:0 0 32px;width:32px;height:32px;border-radius:8px;padding:4px}
}

/* Преимущества (после рубрик) */
.zf-adv-sec{position:relative;z-index:1;max-width:95vw;margin:0 auto;padding:0 24px 72px}
.zf-advgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.zf-adv{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);padding:26px 24px 28px;display:flex;flex-direction:column;gap:12px}
.zf-adv-ic{width:48px;height:48px;border-radius:14px;background:#E9F3EE;display:flex;align-items:center;justify-content:center}
.zf-adv h3{margin:0;font:600 18px/1.3 var(--display);color:var(--ink)}
.zf-adv p{margin:0;font:400 14.5px/1.55 var(--sans);color:var(--ink-2);text-wrap:pretty}
@media (max-width:1100px){ .zf-advgrid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){
  .zf-adv-sec{padding:55px 12px 0;max-width:100%}
  .zf-advgrid{grid-template-columns:1fr;gap:12px}
  .zf-adv{padding:18px 16px;border-radius:16px;gap:8px}
  .zf-adv-ic{width:40px;height:40px;border-radius:12px}
  .zf-adv h3{font-size:17px}
  .zf-adv p{font-size:14px}
}

/* Страница рубрики: белая CTA с иконкой */
.zf-btn-w{display:inline-flex;align-items:center;white-space:nowrap;gap:14px;height:60px;padding:0 8px 0 28px;border-radius:999px;background:#fff;border:1px solid var(--border);color:var(--ink);font:600 17px var(--sans);text-decoration:none;cursor:pointer;box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease}
.zf-btn-w:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg);color:var(--ink)}
.zf-btn-w-ic{flex:0 0 44px;width:44px;height:44px;border-radius:999px;background:var(--grad);display:flex;align-items:center;justify-content:center}

/* Плитки подкатегорий */
.zf-subgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.zf-subtile{position:relative;min-height:168px;background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:24px 22px;overflow:hidden;text-decoration:none;display:block;transition:transform .16s ease,box-shadow .16s ease}
.zf-subtile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.zf-subtile h2{position:relative;z-index:2;margin:0;max-width:74%;font:600 19px/1.28 var(--display);color:var(--ink);letter-spacing:-.3px;text-wrap:pretty}
.zf-subtile-ic{position:absolute;right:10px;bottom:8px;width:96px;height:96px;z-index:1;display:block}
.zf-subtile-ic img{width:100%;height:100%;object-fit:contain;object-position:right bottom}

/* Плитки подрядчиков с подписью на фото */
.zf-pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.zf-ptile{position:relative;display:block;height:280px;border-radius:18px;overflow:hidden;background:#F3F6F5;text-decoration:none}
.zf-ptile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.zf-ptile:hover .zf-ptile-img{transform:scale(1.04)}
.zf-ptile-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:12px;padding:46px 16px 16px;background:linear-gradient(to top,rgba(14,30,22,.9) 0%,rgba(14,30,22,.6) 58%,rgba(14,30,22,0) 100%)}
.zf-ptile-logo{flex:0 0 46px;width:46px;height:46px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:6px}
.zf-ptile-logo img{width:100%;height:100%;object-fit:contain}
.zf-ptile-txt{min-width:0;display:flex;flex-direction:column;gap:3px}
.zf-ptile-name{font:600 17px/1.25 var(--display);color:#fff}
.zf-ptile-desc{font:400 13px/1.45 var(--sans);color:rgba(255,255,255,.84);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:1100px){.zf-subgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.zf-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .zf-btn-w{height:52px;padding:0 6px 0 20px;font-size:15px;gap:10px}
  .zf-btn-w-ic{flex:0 0 40px;width:40px;height:40px}
  .zf-subgrid{grid-template-columns:1fr;gap:12px}
  .zf-subtile{min-height:118px;padding:16px 16px;border-radius:16px}
  .zf-subtile h2{font-size:17px;max-width:64%}
  .zf-subtile-ic{width:78px;height:78px;right:8px;bottom:6px}
  .zf-pgrid{grid-template-columns:1fr;gap:12px}
  .zf-ptile{height:210px;border-radius:16px}
  .zf-ptile-bar{padding:34px 12px 12px;gap:10px}
  .zf-ptile-logo{flex:0 0 38px;width:38px;height:38px;border-radius:10px}
  .zf-ptile-name{font-size:16px}
}

/* Баннер консультации внутри списка подрядчиков (только мобайл) */
.zf-sideb--inline{display:none}
@media (max-width:760px){
  .zf-sideb--inline{display:flex}
  .zf-catlayout > .zf-side .zf-sideb{display:none}
}

/* Логотип-картинка */
.logo__img{display:block;height:64px;width:auto;flex:0 0 auto}
.zf-header .logo__img{height:86px;filter:drop-shadow(0 2px 14px rgba(0,0,0,.45))}
.zf-inhead .logo__img{height:56px}
.site-footer .logo__img{height:78px}
@media(max-width:760px){
  .logo__img{height:46px}
  .zf-header .logo__img{height:56px}
  .zf-inhead .logo__img{height:44px}
  .site-footer .logo__img{height:60px}
}
