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

@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__img { flex: 0 0 auto; width: auto; height: 46px; object-fit: contain; display: block; }
.site-footer .logo__img { height: 84px; }
.zf-header .logo__img { filter: brightness(calc(1 - var(--hdInv, 1))) invert(var(--hdInv, 1)); }
.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:has(.partner-mini__bar) { position: relative; border-radius: 14px; overflow: hidden; gap: 0; }
.partner-mini:has(.partner-mini__bar) { min-height: 210px; }
.partner-mini:has(.partner-mini__bar) > img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 0; }
.partner-mini:has(.partner-mini__bar)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 55%; background: linear-gradient(180deg, rgba(24,38,30,0) 0%, rgba(24,38,30,.7) 60%, rgba(20,32,25,.88) 100%); pointer-events: none; }
.partner-mini__bar { position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 2; display: flex; align-items: center; gap: 10px; min-width: 0; }
.partner-mini__logo { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 10px; background: #fff; padding: 3px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.partner-mini__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 0; background: none; }
.partner-mini__txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.partner-mini__txt .zf-workname { font: 600 13.5px/1.25 var(--sans); color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.partner-mini__txt .zf-worknote { font: 400 12px/1.3 var(--sans); color: rgba(255,255,255,.85); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.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--quiz { padding: 24px; }
.modal__box--quiz { max-width: 980px; padding: 36px 40px 40px; border-radius: 24px; }
.modal__box--quiz .modal__head { margin-bottom: 24px; }
.modal__box--quiz h2 { margin: 0; font: 600 26px/1.2 var(--display); color: var(--ink); letter-spacing: -.3px; }
.modal__box--quiz h2 em { font-style: normal; color: var(--forest-text); }
.modal__box--quiz .zf-quiz-grid { gap: 32px; }
@media(max-width:760px){
  .modal--quiz { padding: 12px; }
  .modal__box--quiz { padding: 20px 16px 24px; border-radius: 20px; }
  .modal__box--quiz h2 { font-size: 20px; }
  .modal__box--quiz .modal__head { margin-bottom: 18px; }
  .modal__box--quiz .zf-quiz-grid { gap: 22px; }
}
.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; }
.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-go.zf-quiz-next{margin-top:32px}
.zf-quiz-back{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;margin-bottom:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--ink-2);font:500 14px var(--sans);cursor:pointer;transition:border-color .15s ease,color .15s ease}
.zf-quiz-back:hover{border-color:var(--forest-text);color:var(--forest-text)}
.zf-quiz-res{margin-top:34px;padding-top:28px;border-top:1px solid #E6ECE8}
.zf-quiz-res[hidden],.zf-quiz-grid[hidden],.zf-quiz-next[hidden]{display:none}
.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-promo--tall{height:auto;min-height:190px;padding:32px 0}
.zf-promo--tall > div{max-width:66%;gap:12px}

/* Преимущества */
.zf-adv-sec{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:20px;box-shadow:var(--shadow);padding:24px 26px 26px;display:flex;flex-direction:column;gap:10px;transition:transform .15s ease,box-shadow .15s ease}
.zf-adv:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(36,47,30,.12)}
.zf-adv-ic{width:48px;height:48px;border-radius:14px;background:linear-gradient(180deg,#EEF6EF 0%,#E1F0E6 100%);display:flex;align-items:center;justify-content:center;margin-bottom:2px}
.zf-adv h3{margin:0;font:600 18px/1.28 var(--display);color:var(--ink);letter-spacing:-.2px;text-wrap:pretty}
.zf-adv p{margin:0;font:400 14.5px/1.6 var(--sans);color:var(--ink-2);text-wrap:pretty}

/* Рубрики (бенто как в дизайне) */
.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-jour-sec{max-width:95vw;margin:0 auto;padding:0 24px 96px}
.zf-jourbox{background:#fff;border-radius:28px;box-shadow:var(--shadow-md);padding:40px 40px 42px}
.zf-jourhead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.zf-jourhead h2{font:700 28px/1.15 var(--display);color:var(--ink);letter-spacing:-.4px;margin:0}
.zf-jourhead p{font:400 15px/1.6 var(--sans);color:var(--ink-2);margin:8px 0 0;max-width:640px;text-wrap:pretty}
.zf-jourgrid{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);gap:20px}
.zf-jcol{display:flex;flex-direction:column;gap:20px;min-width:0}
.zf-jbig{display:flex;flex-direction:column;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:22px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.zf-jbig:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(36,47,30,.10);color:inherit}
.zf-jpic{position:relative;display:block;height:340px;background:#E4EFE7;overflow:hidden}
.zf-jpic img{width:100%;height:100%;object-fit:cover;display:block}
.zf-jbody{padding:24px 26px 26px;display:flex;flex-direction:column;gap:10px}
.zf-jbig h3{font:500 24px/1.25 var(--display);color:var(--ink);margin:0;letter-spacing:-.2px;text-wrap:pretty}
.zf-jbig p{font:400 14px/1.5 var(--sans);color:var(--ink-2);margin:0;text-wrap:pretty}
.zf-jmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:400 13px var(--sans);color:var(--ink-3)}
.zf-jlist{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.zf-jrow{display:flex;align-items:center;gap:14px;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:16px;padding:12px 14px;text-decoration:none;color:inherit;flex:1;min-height:0;transition:transform .15s ease,box-shadow .15s ease}
.zf-jrow:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(36,47,30,.10);color:inherit}
.zf-jthumb{flex:0 0 56px;width:56px;height:56px;border-radius:12px;overflow:hidden;background:#E4EFE7;position:relative}
.zf-jthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-jrtxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.zf-jrow h3{margin:0;font:500 15px/1.3 var(--display);color:var(--ink);letter-spacing:-.1px;text-wrap:pretty}
.zf-jrmeta{display:flex;align-items:center;gap:6px;font:400 12.5px var(--sans);color:var(--ink-3)}
.zf-jrmeta svg{opacity:.75;flex:0 0 auto}
.zf-jbm{flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#fff;border:none;color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:color .15s ease}
.zf-jbm:hover,.zf-jbm.on{color:var(--forest-text)}

/* Журнал: рекламный блок */
.zf-adbox{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:var(--surface);border-radius:24px;box-shadow:var(--shadow-md);overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.zf-adbox:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(36,47,30,.13);color:inherit}
.zf-adgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;min-height:300px;padding:6px}
.zf-adcell{position:relative;overflow:hidden;border-radius:12px;background:#E4EFE7}
.zf-adcell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-adcell:first-child{grid-column:span 2;grid-row:span 2}
.zf-adbody{padding:32px 36px 34px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;justify-content:center}
.zf-adlogo{height:34px;display:flex;align-items:center}
.zf-adlogo img{height:100%;width:auto;object-fit:contain;display:block}
.zf-adbody b{font:600 26px/1.22 var(--display);color:var(--ink);letter-spacing:-.3px;text-wrap:pretty}
.zf-adtext{font:400 15px/1.6 var(--sans);color:var(--ink-2);text-wrap:pretty}
.zf-adbtn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 24px;border-radius:14px;background:var(--grad);color:#fff;font:600 15px var(--sans);margin-top:6px}

/* Журнал: сервисные карточки */
.zf-svcrow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.zf-svc{position:relative;display:flex;flex-direction:column;gap:12px;align-items:flex-start;text-align:left;background:var(--surface);border:none;border-radius:20px;box-shadow:var(--shadow);padding:20px 22px 54px;text-decoration:none;color:inherit;font-family:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.zf-svc:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(36,47,30,.12);color:inherit}
.zf-svcico{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex:0 0 auto}
.zf-svcico--g{background:linear-gradient(180deg,#3E9C68,#2E6E54)}
.zf-svcico--g2{background:linear-gradient(180deg,#57B77F,#357C5F)}
.zf-svcico--b{background:linear-gradient(180deg,#2F5FA8,#1A3A6B)}
.zf-svcico--b2{background:linear-gradient(180deg,#4A93C4,#25628C)}
.zf-svcico--o{background:linear-gradient(180deg,#EFA13F,#C87316)}
.zf-svctxt{display:flex;flex-direction:column;gap:5px;min-width:0}
.zf-svctxt b{font:600 17px/1.25 var(--display);color:var(--ink);letter-spacing:-.2px}
.zf-svctxt span{font:400 14px/1.45 var(--sans);color:var(--ink-2);text-wrap:pretty}
.zf-svcarr{position:absolute;right:16px;bottom:16px;width:30px;height:30px;border-radius:50%;background:#F1F6F3;color:var(--ink-2);display:flex;align-items:center;justify-content:center}
.zf-svc:hover .zf-svcarr{background:var(--grad);color:#fff}

/* Страница журнала */
.zf-jbar-t{font:700 40px/1.12 var(--display);color:var(--ink);letter-spacing:-.6px;margin:0}
.zf-jtabs{display:flex;align-items:center;gap:8px;min-width:0;margin-top:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.zf-jtabs::-webkit-scrollbar{display:none}
.zf-jtab{flex:0 0 auto;display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 16px 0 8px;border:1px solid transparent;border-radius:14px;background:var(--surface);color:var(--ink);font:600 15.5px var(--sans);cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}
.zf-jtab:hover{background:#fff;border-color:#CFDED5}
.zf-jtab.on{background:var(--grad);color:#fff}
.zf-jtab.on:hover{filter:brightness(1.06)}
.zf-jtico{flex:0 0 28px;width:28px;height:28px;border-radius:50%;box-shadow:inset 0 -2px 4px rgba(0,0,0,.14),inset 0 2px 3px rgba(255,255,255,.5),0 1px 3px rgba(36,47,30,.16)}
.zf-jtico--all{background:radial-gradient(circle at 32% 28%,#7FD8A6 0%,#3E9C68 52%,#25674A 100%)}
.zf-jtico--podryadchik{background:radial-gradient(circle at 32% 28%,#9BD3F0 0%,#4A93C4 52%,#255A80 100%)}
.zf-jtico--etapy{background:radial-gradient(circle at 32% 28%,#F5C98A 0%,#DD9040 52%,#96591B 100%)}
.zf-jtico--dengi{background:radial-gradient(circle at 32% 28%,#FFE49B 0%,#F0BC45 52%,#A8801A 100%)}
.zf-jtico--materialy{background:radial-gradient(circle at 32% 28%,#CBD3CE 0%,#8E9B93 52%,#5A655E 100%)}
.zf-jtico--uchastok{background:radial-gradient(circle at 32% 28%,#B7E88C 0%,#74B742 52%,#41751F 100%)}
.zf-jnowgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:22px}
.zf-jnowbig{display:flex;flex-direction:column;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:20px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s ease}
.zf-jnowbig:hover{transform:translateY(-2px);color:inherit}
.zf-jnowpic{position:relative;height:288px;background:#E4EFE7}
.zf-jnowpic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-jnowbody{padding:20px 24px 0;display:flex;flex-direction:column;gap:10px}
.zf-jnowbig h3{font:500 22px/1.28 var(--display);color:var(--ink);letter-spacing:-.2px;margin:0;text-wrap:pretty}
.zf-jnowbig p{font:400 14.5px/1.55 var(--sans);color:var(--ink-2);margin:0;text-wrap:pretty}
.zf-jnowfoot{margin-top:auto;padding:18px 20px 18px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.zf-jtag{background:#fff;color:var(--ink-2);font:500 12.5px/1 var(--sans);padding:6px 11px;border-radius:20px}
.zf-jbox{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-md);padding:32px 32px 36px}
.zf-jboxhead{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.zf-jboxhead .link-more{border:none;background:none;padding:0;cursor:pointer;font:600 14px var(--sans);color:var(--forest-text);text-decoration:none}
.zf-jboxhead .link-more:hover{color:var(--moss)}
.zf-jboxhead h2{font:700 28px/1.15 var(--display);color:var(--ink);letter-spacing:-.4px;margin:0}
.zf-jboxhead .link-more{border:none;background:none;padding:0;cursor:pointer;font:600 14px var(--sans);color:var(--forest-text);text-decoration:none}
.zf-jboxhead .link-more:hover{color:var(--moss)}
.zf-jsort select{appearance:none;-webkit-appearance:none;height:44px;padding:0 40px 0 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface) 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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 15px center;font:500 14.5px var(--sans);color:var(--ink);cursor:pointer}
.zf-jsort select:focus{outline:none;border-color:var(--forest-text)}
.zf-jboxlead{font:400 15px/1.6 var(--sans);color:var(--ink-2);margin:8px 0 0;max-width:720px;text-wrap:pretty}
.zf-jgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.zf-jgrid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}
.zf-jgrid.cols2 .zf-jcard-pic{height:260px}
.zf-jgrid.cols2 .zf-jcard h3{font-size:20px}
.zf-jgrid.is-in > .zf-jcard:not([hidden]){animation:zf-jin .32s cubic-bezier(.22,.7,.24,1) both;animation-delay:calc(var(--i,0) * 35ms)}
@keyframes zf-jin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.zf-jgrid.is-in > .zf-jcard:not([hidden]){animation:none}}
.zf-jcard{display:flex;flex-direction:column;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:20px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.zf-jcard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(36,47,30,.10);color:inherit}
.zf-jcard[hidden],.zf-jrow[hidden],.zf-jempty[hidden],[data-jfeat][hidden]{display:none}
.zf-jcard-pic{position:relative;height:200px;background:#E4EFE7}
.zf-jcard-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-jcard-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:9px}
.zf-jcard h3{font:500 18px/1.3 var(--display);color:var(--ink);letter-spacing:-.15px;margin:0;text-wrap:pretty}
.zf-jcard p{font:400 14px/1.55 var(--sans);color:var(--ink-2);margin:0;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.zf-jempty{font:400 15px var(--sans);color:var(--ink-2);margin:28px 0 0}

/* Статья: реакции и блок автора */
.zf-react{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin:36px 0 20px}
.zf-rbtn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--border);border-radius:22px;background:var(--surface);cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease}
.zf-rbtn:hover{border-color:#CFDED5}
.zf-rbtn b{font:600 15px var(--sans);color:var(--ink-2)}
.zf-remo{font-size:18px;line-height:1}
.zf-rbtn.on{background:rgba(182,232,208,.35);border-color:rgba(47,115,87,.4)}
.zf-rbtn.on b{color:var(--forest-text)}
.zf-rbtn--add{font:500 22px/1 var(--sans);color:var(--ink-3);padding:0;width:44px;justify-content:center}
.zf-rpick{position:absolute;z-index:5;bottom:52px;right:0;display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:8px;box-shadow:var(--shadow-lg)}
.zf-rpick[hidden]{display:none}
.zf-rpick button{width:40px;height:40px;border:none;border-radius:12px;background:none;font-size:20px;line-height:1;cursor:pointer;transition:background .15s ease}
.zf-rpick button:hover{background:#F1F6F3}
.zf-authbox{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:22px 24px 24px;margin:0 0 8px}
.zf-authtop{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.zf-authname{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.zf-authname a{font:600 18px var(--display);color:var(--forest-text);text-decoration:none;letter-spacing:-.2px}
.zf-authname a:hover{color:var(--moss);text-decoration:underline}
.zf-authname > span{display:flex;align-items:center;gap:9px;font:400 14px var(--sans);color:var(--ink-3);flex-wrap:wrap}
.zf-authname > span span{color:var(--border)}
.zf-authall{flex:0 0 auto;font:500 14px var(--sans);color:var(--ink-2);text-decoration:none}
.zf-authall:hover{color:var(--forest-text)}
.zf-authask{background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:16px;padding:20px 22px;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.zf-authask b{display:block;font:600 17px var(--display);color:var(--ink);margin-bottom:4px}
.zf-authask > div span{font:400 14px var(--sans);color:var(--ink-3)}
.zf-authbtns{display:flex;gap:8px;flex-wrap:wrap}
.zf-ubtn{height:44px;padding:0 18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink);font:500 14.5px var(--sans);cursor:pointer;transition:border-color .15s ease,color .15s ease}
.zf-ubtn:hover{border-color:var(--forest-text);color:var(--forest-text)}
.zf-ubtn.on{background:var(--grad);border-color:transparent;color:#fff}
.zf-auththanks{width:100%;margin:0;font:500 14.5px var(--sans);color:var(--forest-text)}
.zf-auththanks[hidden]{display:none}

/* Страница статьи */
.zf-artlyt{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start}
.zf-art{min-width:0}
.zf-arthead{padding-top:8px}
.zf-arthead h1{font:700 40px/1.14 var(--display);color:var(--ink);letter-spacing:-.8px;margin:14px 0 0}
.zf-artlead{font:400 19px/1.6 var(--sans);color:var(--ink-2);margin:14px 0 0;max-width:82ch;text-wrap:pretty}
.zf-jtag--link{text-decoration:none;transition:background .15s ease}
.zf-jtag--link:hover{background:rgba(182,232,208,.55);color:var(--forest-text)}
.zf-artbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:24px 0 0;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.zf-author{display:flex;align-items:center;gap:12px}
.zf-author > span{display:flex;flex-direction:column;gap:2px;min-width:0}
.zf-author b{font:600 14.5px var(--sans);color:var(--ink)}
.zf-author span span{font:400 13px var(--sans);color:var(--ink-3)}
.zf-avatar{flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#F3F6F5;border:1px dashed #CFD8D2}
.zf-avatar--sm{flex:0 0 34px;width:34px;height:34px}
.zf-avatar--lg{flex:0 0 54px;width:54px;height:54px}
.zf-avatar--logo{border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:3px}
.zf-avatar--logo img{width:100%;height:100%;object-fit:contain;display:block}
.zf-share{display:flex;align-items:center;gap:8px;font:500 13.5px var(--sans);color:var(--ink-3)}
.zf-shbtn{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;padding:0;transition:color .15s ease,border-color .15s ease}
.zf-shbtn:hover{color:var(--forest-text);border-color:#CFDED5}
.zf-shbtn.copied{color:var(--forest-text);border-color:var(--forest-text)}
.zf-artcover{margin:28px 0 0}
.zf-artcover img{width:100%;height:440px;object-fit:cover;border-radius:20px;display:block}
.zf-artcover figcaption,.zf-artgal figcaption{font:400 13px/1.5 var(--sans);color:var(--ink-3);margin-top:10px}
.zf-arttext{margin-top:30px}
.zf-arttext p{font:400 17.5px/1.75 var(--sans);color:var(--ink);margin:0 0 18px;max-width:78ch;text-wrap:pretty}
.zf-arttext h2{font:600 26px/1.25 var(--display);color:var(--ink);letter-spacing:-.3px;margin:38px 0 14px;scroll-margin-top:96px}
.zf-arttext ul{margin:0 0 20px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.zf-arttext ul li{position:relative;padding-left:26px;font:400 17px/1.68 var(--sans);color:var(--ink);max-width:78ch;text-wrap:pretty}
.zf-arttext ul li::before{content:"";position:absolute;left:6px;top:11px;width:7px;height:7px;border-radius:50%;background:var(--forest-text)}
.zf-quote{background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:20px;padding:28px 30px;margin:28px 0}
.zf-quote p{font:500 18px/1.6 var(--display);color:var(--ink);margin:0 0 16px;text-wrap:pretty}
.zf-quoteauth{display:flex;align-items:center;gap:11px}
.zf-quoteauth > span:last-child{display:flex;flex-direction:column;gap:2px}
.zf-quoteauth b{font:600 14px var(--sans);color:var(--ink)}
.zf-quoteauth span span{font:400 12.5px var(--sans);color:var(--ink-3)}
.zf-artgal{margin:28px 0}
.zf-artgal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.zf-artgal-cell{position:relative;display:block;height:250px;border-radius:14px;overflow:hidden;background:#E4EFE7;cursor:zoom-in}
.zf-artgal-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-inpick{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px;margin:32px 0}
.zf-inpick-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.zf-inpick-head b{font:600 21px/1.25 var(--display);color:var(--ink);letter-spacing:-.2px}
.zf-inpick-lead{font:400 14.5px/1.55 var(--sans);color:var(--ink-2);margin:12px 0 0;max-width:640px;text-wrap:pretty}
.zf-inpick .zf-pickgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.zf-pickgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}
.zf-pick{display:flex;flex-direction:column;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:18px;overflow:hidden}
.zf-pick-pic{position:relative;display:block;height:150px;background:#E4EFE7}
.zf-pick-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-pick-b{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1}
.zf-pick-top{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.zf-pick-logo{flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;padding:4px}
.zf-pick-logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.zf-pick-top b{font:600 15.5px/1.2 var(--display);color:var(--ink);letter-spacing:-.1px;min-width:0}
.zf-pick-top:hover b{color:var(--forest-text)}
.zf-pick-spec{font:400 13.5px/1.5 var(--sans);color:var(--ink-2);text-wrap:pretty}
.zf-pick-tel{margin-top:auto;height:40px;border:none;border-radius:12px;background:var(--grad);color:#fff;font:600 14px var(--sans);cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;transition:filter .15s ease,transform .15s ease}
.zf-pick-tel:hover{filter:brightness(1.06);transform:translateY(-1px);color:#fff}
.zf-relgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:22px}

.zf-inpick{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px;margin:32px 0}
.zf-inpick-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.zf-inpick-head b{font:600 21px/1.25 var(--display);color:var(--ink);letter-spacing:-.2px}
.zf-inpick-lead{font:400 14.5px/1.55 var(--sans);color:var(--ink-2);margin:12px 0 0;max-width:640px;text-wrap:pretty}
.zf-inpick .zf-pickgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.zf-pickgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}
.zf-pick{display:flex;flex-direction:column;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:18px;overflow:hidden}
.zf-pick-pic{position:relative;display:block;height:150px;background:#E4EFE7}
.zf-pick-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zf-pick-b{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1}
.zf-pick-top{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.zf-pick-logo{flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;padding:4px}
.zf-pick-logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.zf-pick-top b{font:600 15.5px/1.2 var(--display);color:var(--ink);letter-spacing:-.1px;min-width:0}
.zf-pick-top:hover b{color:var(--forest-text)}
.zf-pick-spec{font:400 13.5px/1.5 var(--sans);color:var(--ink-2);text-wrap:pretty}
.zf-pick-tel{margin-top:auto;height:40px;border:none;border-radius:12px;background:var(--grad);color:#fff;font:600 14px var(--sans);cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;transition:filter .15s ease,transform .15s ease}
.zf-pick-tel:hover{filter:brightness(1.06);transform:translateY(-1px);color:#fff}
.zf-check{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:28px 30px;margin:28px 0}
.zf-check > b{display:block;font:600 19px/1.35 var(--display);color:var(--ink);margin-bottom:12px;text-wrap:pretty}
.zf-check-lead{font:400 16px/1.6 var(--sans);color:var(--ink);margin:0 0 16px}
.zf-check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.zf-check-list li{display:flex;align-items:flex-start;gap:12px;font:400 16px/1.6 var(--sans);color:var(--ink);text-wrap:pretty}
.zf-check-n{flex:0 0 26px;width:26px;height:26px;border-radius:8px;background:var(--forest-text);color:#fff;font:600 14px/26px var(--sans);text-align:center;margin-top:1px}
.zf-check-note{font:400 16px/1.6 var(--sans);color:var(--ink);margin:18px 0 0}
.zf-callout{display:flex;gap:20px;background:linear-gradient(180deg,#EEF6EF 0%,#F5FAF6 100%);border-radius:20px;padding:26px 28px;margin:30px 0}
.zf-callout-l{flex:0 0 76px;width:76px;height:76px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px}
.zf-callout-l img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.zf-callout-b{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.zf-callout-t{font:500 12.5px var(--sans);color:var(--ink-3);letter-spacing:.3px;text-transform:uppercase}
.zf-callout-b b{font:600 21px var(--display);color:var(--ink);letter-spacing:-.2px}
.zf-callout-x{font:400 14.5px/1.55 var(--sans);color:var(--ink-2);text-wrap:pretty}
.zf-callout-go{display:inline-flex;align-items:center;gap:8px;font:600 14.5px var(--sans);color:var(--forest-text);text-decoration:none;margin-top:4px}
.zf-artside{position:sticky;top:88px;display:flex;flex-direction:column;gap:16px}
.zf-toc{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px 18px;display:flex;flex-direction:column;gap:4px}
.zf-toc b{font:600 14px var(--sans);color:var(--ink);margin-bottom:8px}
.zf-toc a{font:400 14px/1.4 var(--sans);color:var(--ink-2);text-decoration:none;padding:8px 10px;border-radius:10px;border-left:2px solid transparent;transition:background .15s ease,color .15s ease}
.zf-toc a:hover{background:#F1F6F3;color:var(--ink)}
.zf-toc a.on{background:#E9F3EE;color:var(--forest-text);border-left-color:var(--forest-text);font-weight:500}
@media(max-width:1100px){
  .zf-artlyt{grid-template-columns:1fr;gap:24px}
  .zf-artside{position:static;order:-1}
  .zf-toc{gap:2px}
  .zf-art{max-width:100%}
  .zf-arthead h1{font-size:32px;letter-spacing:-.5px}
}
@media(max-width:760px){
  .zf-arthead h1{font-size:24px;letter-spacing:-.3px;line-height:1.2}
  .zf-artlead{font-size:15.5px}
  .zf-artbar{gap:14px;padding:14px 0}
  .zf-artcover img{border-radius:14px;height:220px}
  .zf-arttext p{font-size:15.5px;line-height:1.68}
  .zf-arttext h2{font-size:20px;margin:28px 0 12px}
  .zf-arttext ul li{font-size:15px}
  .zf-quote{padding:20px 18px;border-radius:16px}
  .zf-quote p{font-size:16px}
  .zf-artgal-grid{grid-template-columns:1fr;gap:8px}
  .zf-artgal-cell{height:200px}
  .zf-check{padding:18px 16px;border-radius:16px}
  .zf-check > b{font-size:17px}
  .zf-check-lead,.zf-check-list li,.zf-check-note{font-size:15px}
  .zf-check-n{flex:0 0 24px;width:24px;height:24px;font-size:13px;line-height:24px}
  .zf-callout{flex-direction:column;gap:14px;padding:18px 16px;border-radius:16px}
  .zf-callout-l{flex:0 0 64px;width:64px;height:64px;border-radius:14px}
  .zf-callout-b b{font-size:18px}
}

@media(max-width:1100px){
  .zf-jourgrid{grid-template-columns:1fr}
  .zf-jpic{height:300px}
  .zf-svcrow{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zf-adbox{grid-template-columns:1fr}
  .zf-adgrid{min-height:240px}
  .zf-adbody{padding:24px 22px 26px}
  .zf-adbody b{font-size:22px}
  .zf-jnowgrid{grid-template-columns:1fr}
  .zf-jnowpic{height:240px}
  .zf-relgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zf-jgrid,.zf-jgrid.cols2,.zf-relgrid,.zf-pickgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zf-jbar-t{font-size:32px}
}
@media(max-width:760px){
  .zf-jour-sec{padding:55px 12px 0;max-width:100%}
  .zf-jourbox{padding:20px 16px 22px;border-radius:20px}
  .zf-jourhead h2{font-size:20px}
  .zf-jourgrid{gap:12px}
  .zf-jcol{gap:12px}
  .zf-jbig{border-radius:16px}
  .zf-jpic{height:200px}
  .zf-jbody{padding:18px 16px 20px}
  .zf-jbig h3{font-size:18px}
  .zf-jlist{gap:8px}
  .zf-jrow{padding:10px 12px;border-radius:14px;gap:12px}
  .zf-jthumb{flex:0 0 48px;width:48px;height:48px;border-radius:10px}
  .zf-jrow h3{font-size:14.5px}
  .zf-svcrow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .zf-svc{padding:14px 14px 48px;border-radius:16px;gap:10px}
  .zf-svcico{width:34px;height:34px;border-radius:10px}
  .zf-svctxt b{font-size:15px}
  .zf-svctxt span{font-size:13px}
  .zf-svcarr{right:12px;bottom:12px;width:28px;height:28px}
  .zf-adbox{border-radius:20px}
  .zf-adgrid{min-height:200px;gap:4px;padding:4px}
  .zf-adcell{border-radius:9px}
  .zf-adbody{padding:18px 16px 20px;gap:10px}
  .zf-adbody b{font-size:19px}
  .zf-adtext{font-size:14px}
  .zf-adbtn{height:44px;padding:0 18px;font-size:14px}
  .zf-adlogo{height:26px}
  .zf-jbar-t{font-size:24px;letter-spacing:-.3px}
  .zf-jtabs{margin-top:14px;gap:6px}
  .zf-jtab{height:40px;font-size:14px;padding:0 13px 0 6px;gap:7px}
  .zf-jtico{flex:0 0 24px;width:24px;height:24px}
  .zf-jnowgrid{gap:12px;margin-top:16px}
  .zf-jnowpic{height:190px}
  .zf-jnowbody{padding:16px 16px 0}
  .zf-jnowbig h3{font-size:17px}
  .zf-jnowfoot{padding:14px 16px}
  .zf-jbox{padding:18px 16px 22px;border-radius:20px}
  .zf-jboxhead h2{font-size:20px}
  .zf-jboxhead{gap:12px}
  .zf-jsort select{height:40px;font-size:13.5px}
    .zf-jgrid,.zf-jgrid.cols2,.zf-relgrid,.zf-pickgrid,.zf-inpick .zf-pickgrid{grid-template-columns:1fr;gap:12px;margin-top:16px}
  .zf-inpick{padding:16px;border-radius:16px;margin:24px 0}
  .zf-inpick-head b{font-size:17px}
  .zf-pick-pic{height:180px}
  .zf-jgrid.cols2 .zf-jcard-pic{height:180px}
  .zf-jgrid.cols2 .zf-jcard h3{font-size:17px}
  .zf-jcard-pic{height:180px}
  .zf-jcard-body{padding:16px}
  .zf-jcard h3{font-size:17px}
  .zf-react{gap:6px;margin:26px 0 16px}
  .zf-rbtn{height:40px;padding:0 13px;gap:6px}
  .zf-rbtn--add{width:40px}
  .zf-authbox{padding:16px;border-radius:18px}
  .zf-authname a{font-size:16px}
  .zf-authask{padding:16px;flex-direction:column;align-items:stretch;gap:14px}
  .zf-authbtns{gap:6px}
  .zf-ubtn{flex:1;min-width:0;font-size:13.5px;padding:0 12px}
  .zf-artgal-cell{height:200px}
}
@media(max-width:1100px){
  .zf-advgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .logo__img{height:38px}
  .site-footer .logo__img{height:48px}
  .zf-adv-sec{padding:0 12px 48px;max-width:100%}
  .zf-advgrid{grid-template-columns:1fr;gap:12px}
  .zf-adv{padding:18px 16px 20px;border-radius:16px}
  .zf-adv-ic{width:42px;height:42px;border-radius:12px}
  .zf-adv h3{font-size:16px}
  .zf-adv p{font-size:14px}
  .zf-promo--tall{min-height:auto;padding:24px 0}
  .zf-promo--tall > div{max-width:100%}
}
@media(max-width:760px){
  .zf-sechead h2{font-size:20px;letter-spacing:-.2px}
  .zf-sechead p{font-size:14px}
  .zf-partners-sec h2{font-size:20px;letter-spacing:-.2px;margin-bottom:20px}
  .zf-quiz-card h2{font-size:20px;letter-spacing:-.2px}
  .zf-quiz-sub{font-size:14px;margin-bottom:20px}
  .zf-darkhero h1{font-size:26px;letter-spacing:-.5px;line-height:1.15}
  .zf-darkhero > p{font-size:15px}
  .doc h1{font-size:24px}
  .zf-tpp h2,.zf-form-card h2{font-size:20px}
}
@media(max-width:760px){
  .zf-panel{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .zf-panel-inner{max-height:none;overflow:visible}
}
@media(max-width:1000px){
  .zf-steps5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zf-steps5 > *{grid-column:auto !important}
}
@media(max-width:760px){
  /* О проекте / Контакты */
  .zf-two{grid-template-columns:1fr;gap:12px}
  .zf-darkhero{padding:28px 20px 30px;border-radius:20px}
  .zf-darkhero h1{font-size:26px;letter-spacing:-.5px;line-height:1.18;margin:10px 0 12px}
  .zf-darkhero > p{font-size:15px;line-height:1.6}
  .zf-darkhero .zf-hbtns{margin-top:20px;gap:10px}
  .zf-btn-white,.zf-btn-outline{height:48px;padding:0 20px;font-size:14.5px;flex:1;justify-content:center;min-width:0;white-space:nowrap}
  .zf-txtcard{padding:22px 18px 24px;border-radius:18px}
  .zf-txtcard h2{font-size:20px;letter-spacing:-.2px;margin-bottom:10px}
  .zf-txtcard p{font-size:15px;line-height:1.6}
  .zf-imgcard{min-height:200px;border-radius:18px}
  .zf-princip > div{padding:20px 18px}
  .zf-steps5{grid-template-columns:1fr;gap:12px}
  .zf-steps5 > *{grid-column:auto !important}
  .zf-step5{padding:20px;gap:14px}
  .zf-step5 .zf-simg{min-height:100px}
  /* промо-баннеры */
  .zf-promo h3{font-size:19px;line-height:1.25}
  .zf-promo p{font-size:14px;line-height:1.5}
  .zf-promo > div{padding:0 20px;gap:8px}
  .zf-promo .zf-goarr{right:14px;top:14px;width:38px;height:38px}
  /* сервисные карточки: пятая на всю ширину */
  .zf-svcrow .zf-svc:nth-child(5){grid-column:1/-1}
  /* блок автора статьи */
  .zf-authtop{gap:12px}
  .zf-authname a{font-size:15.5px;line-height:1.3}
  .zf-authname > span{flex-direction:column;align-items:flex-start;gap:2px;font-size:13px}
  .zf-authname > span span[aria-hidden]{display:none}
  .zf-authall{flex:1 0 calc(100% - 66px);margin:2px 0 0 66px;font-size:13.5px}
  .zf-authask b{font-size:15.5px}
  .zf-authask > div span{font-size:13px}
  /* зазор под квизом на главной */
  .zf-spacer{height:56px}
}
@media(max-width:760px){
  .partner-mini:has(.partner-mini__bar){min-height:240px}
  .partner-mini__bar{left:10px;right:10px;bottom:10px;gap:10px}
  .partner-mini__logo{flex-basis:40px;width:40px;height:40px}
  .partner-mini__txt .zf-workname{font-size:14px}
  .partner-mini__txt .zf-worknote{font-size:12px}
}

/* ── Клипы «Коротко о главном» ─────────────────── */
.zf-clips-sec{max-width:95vw;margin:0 auto;padding:0 24px 104px}
.zf-clips{position:relative}
.zf-clips-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 2px 8px}
.zf-clips-track::-webkit-scrollbar{display:none}
.zf-clip{position:relative;flex:0 0 200px;aspect-ratio:9/16;border-radius:16px;overflow:hidden;scroll-snap-align:start;text-decoration:none;background:#3D4B44;transition:transform .15s ease,box-shadow .15s ease}
.zf-clip:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.zf-clip-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zf-clip-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,30,26,.78) 0%,rgba(24,30,26,.30) 42%,rgba(24,30,26,0) 68%)}
.zf-clip-txt{position:relative;display:flex;flex-direction:column;gap:10px;padding:14px;height:100%;box-sizing:border-box}
.zf-clip-chips{display:flex;gap:6px;flex-wrap:wrap}
.zf-clip-chip{font:500 11px/1 var(--sans);color:#fff;background:rgba(255,255,255,.24);border-radius:999px;padding:5px 9px}
.zf-clip-title{font:600 16px/1.32 var(--sans);color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.28)}
.zf-clip-logo{position:absolute;left:12px;bottom:12px;width:28px;height:28px;border-radius:8px}
.zf-clips-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:opacity .15s ease,color .15s ease}
.zf-clips-btn:hover{color:var(--forest-text)}
.zf-clips-btn[disabled]{opacity:0;pointer-events:none}
.zf-clips-btn--prev{left:-16px}
.zf-clips-btn--next{right:-16px}
@media(max-width:760px){
  .zf-clips-sec{padding:0 14px 56px}
  .zf-clips-jsec{padding:28px 14px 0!important}
  .zf-clips-track{gap:10px}
  .zf-clip{flex-basis:150px;border-radius:12px}
  .zf-clip-txt{padding:10px;gap:8px}
  .zf-clip-title{font-size:13px}
  .zf-clip-chip{font-size:10px;padding:4px 7px}
  .zf-clip-logo{width:22px;height:22px;border-radius:6px;left:10px;bottom:10px}
  .zf-clips-btn{display:none}
}

/* Клипы: попап */
.zf-clip{border:none;padding:0;cursor:pointer;text-align:left;font:inherit}
.zf-clipmodal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:rgba(20,26,22,.78)}
.zf-clipmodal[hidden]{display:none}
.zf-clipmodal-box{position:relative;width:min(420px,92vw,calc(88vh*9/16));aspect-ratio:9/16;border-radius:20px;overflow:hidden;background:#3D4B44;box-shadow:var(--shadow-lg)}
.zf-clipmodal-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zf-clipmodal-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(24,30,26,.72) 0%,rgba(24,30,26,.18) 38%,rgba(24,30,26,0) 55%,rgba(24,30,26,.62) 100%)}
.zf-clipmodal-txt{position:absolute;top:0;left:0;right:0;pointer-events:none;display:flex;flex-direction:column;gap:10px;padding:20px 56px 0 20px}
.zf-clipmodal-txt .zf-clip-title{font-size:20px;line-height:1.3}
.zf-clipmodal-bottom{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 20px}
.zf-clipmodal-logo{width:32px;height:32px;border-radius:9px;flex:none;margin-right:2px}
.zf-clipmodal-max{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;background:var(--surface);color:var(--forest-text);font:600 14px var(--sans);text-decoration:none;transition:background .15s ease}
.zf-clipmodal-max:hover{background:var(--mint)}
.zf-clipmodal-close{position:absolute;top:12px;right:12px;z-index:3;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.22);color:#fff;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}
.zf-clipmodal-close:hover{background:rgba(255,255,255,.36)}
.zf-clipmodal-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:color .15s ease,opacity .15s ease}
.zf-clipmodal-nav:hover{color:var(--forest-text)}
.zf-clipmodal-nav[disabled]{opacity:0;pointer-events:none}
.zf-clipmodal-nav--prev{left:calc(50% - min(210px,46vw,44vh*9/16) - 60px)}
.zf-clipmodal-nav--next{right:calc(50% - min(210px,46vw,44vh*9/16) - 60px)}
@media(max-width:760px){
  .zf-clipmodal-box{width:min(92vw,calc(88vh*9/16));border-radius:16px}
  .zf-clipmodal-nav--prev{left:8px}
  .zf-clipmodal-nav--next{right:8px}
  .zf-clipmodal-txt{padding:14px 56px 0 14px}
  .zf-clipmodal-txt .zf-clip-title{font-size:16px}
}

/* Клипы: видео в попапе */
.zf-clipmodal-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#101512}
.zf-clipmodal-video[hidden]{display:none}
.zf-clipmodal-sound{margin-right:auto;flex:none;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.22);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}
.zf-clipmodal-sound:hover{background:rgba(255,255,255,.36)}
.zf-clipmodal-sound[hidden]{display:none}

/* Клипы: превью видео при наведении */
.zf-clip-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s ease;pointer-events:none}
.zf-clip-video.is-on{opacity:1}

/* Клипы: спиннер загрузки */
.zf-clipmodal-spin{position:absolute;top:50%;left:50%;margin:-22px 0 0 -22px;width:44px;height:44px;border-radius:50%;border:3px solid rgba(255,255,255,.28);border-top-color:#fff;animation:zfspin .8s linear infinite;z-index:2;pointer-events:none}
.zf-clipmodal-spin[hidden]{display:none}
@keyframes zfspin{to{transform:rotate(360deg)}}

/* Клипы: сетка вместо скроллера — ширину задаёт только секция */
.zf-clips-sec,.zf-clips-jsec{max-width:min(95vw,1368px);margin-left:auto;margin-right:auto}
.zf-clips-track{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;overflow:visible;scroll-snap-type:none;padding:0}
.zf-clip{flex:none;width:auto}
.zf-clips-btn{display:none}
.zf-clip-title{font-size:17px}
@media(max-width:1100px){
  .zf-clips-sec,.zf-clips-jsec{max-width:min(95vw,728px)}
  .zf-clips-track{grid-template-columns:repeat(2,1fr);gap:14px}
}
@media(max-width:760px){
  .zf-clips-sec,.zf-clips-jsec{max-width:none}
  .zf-clips-track{grid-template-columns:repeat(2,1fr);gap:10px}
  .zf-clip{flex-basis:auto}
  .zf-clip-title{font-size:13px}
}

/* ── Электронный журнал: полка выпусков ─────────── */
.zf-mag-sec{max-width:min(95vw,1368px);margin:0 auto;padding:0 24px 104px}
.zf-mag-shelf{display:grid;grid-template-columns:1.7fr 3fr;gap:20px;align-items:start}
.zf-mag-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.zf-mag-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.zf-use-list{display:flex;flex-direction:column;gap:8px}
.zf-use-listhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:2px}
.zf-use-listhead h3{margin:0;font:600 18px/1.2 var(--sans);color:var(--ink)}
.zf-userow{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 8px;background:var(--bg,#F5F5F7);border-radius:12px;transition:background .15s ease}
.zf-userow:hover{background:var(--mint)}
.zf-userow-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-decoration:none}
.zf-userow-pic{flex:none;width:44px;height:44px;border-radius:10px;overflow:hidden;background:var(--surface)}
.zf-userow-pic img{width:100%;height:100%;object-fit:cover}
.zf-userow-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.zf-userow-txt b{font:600 14px/1.3 var(--sans);color:var(--ink);text-wrap:pretty}
.zf-userow-meta{font:400 12px/1 var(--sans);color:var(--ink-2)}
.zf-userow .zf-jbm{flex:none}
.zf-mag{display:flex;flex-direction:column;gap:10px;border:none;background:none;padding:0;cursor:pointer;text-align:left;font:inherit}
.zf-mag-cover{position:relative;display:block;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:#3D4B44;box-shadow:var(--shadow-md);transition:transform .15s ease,box-shadow .15s ease}
.zf-mag:hover .zf-mag-cover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.zf-mag-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zf-mag-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,30,26,.10) 0%,rgba(24,30,26,.52) 56%,rgba(24,30,26,.86) 100%);pointer-events:none}
.zf-mag-txt{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:6px;padding:16px;pointer-events:none}
.zf-mag-num{font:500 12px/1 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.zf-mag-title{font:600 16px/1.3 var(--sans);color:#fff;text-wrap:pretty}
.zf-mag--lead .zf-mag-num{font-size:13px}
.zf-mag--lead .zf-mag-title{font-size:23px}
.zf-mag-badge{position:absolute;top:12px;left:12px;white-space:nowrap;font:600 12px/1.1 var(--sans);color:var(--forest-text);background:#fff;border-radius:999px;padding:8px 12px}
.zf-mag-meta{font:400 13px/1.3 var(--sans);color:var(--ink-2)}
@media(max-width:1100px){
  .zf-mag-sec{max-width:min(95vw,728px)}
  .zf-mag-shelf{grid-template-columns:1fr;gap:16px}
  .zf-mag--lead .zf-mag-cover{aspect-ratio:16/10}
}
@media(max-width:760px){
  .zf-mag-sec{max-width:none;padding:0 14px 56px!important}
  .zf-mag-shelf{gap:12px}
  .zf-mag-row{gap:10px}
  .zf-use-listhead h3{font-size:17px}
  .zf-userow-txt b{font-size:13px}
  .zf-mag-title{font-size:14px}
  .zf-mag--lead .zf-mag-title{font-size:18px}
  .zf-mag-meta{font-size:12px}
}

/* ── Электронный журнал: ридер ──────────────────── */
.zf-rd{position:fixed;inset:0;z-index:1300;display:flex;flex-direction:column;background:rgba(20,26,22,.9)}
.zf-rd[hidden]{display:none}
.zf-rd-top{display:flex;align-items:center;gap:16px;padding:14px 20px}
.zf-rd-title{display:flex;flex-direction:column;gap:2px;min-width:0}
.zf-rd-title b{font:600 16px var(--sans);color:#fff}
.zf-rd-title span{font:400 13px var(--sans);color:rgba(255,255,255,.7)}
.zf-rd-tools{margin-left:auto;display:flex;align-items:center;gap:10px}
.zf-rd-count{font:500 14px var(--sans);color:rgba(255,255,255,.86);min-width:66px;text-align:center}
.zf-rd-btn{width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}
.zf-rd-btn:hover{background:rgba(255,255,255,.32)}
.zf-rd-btn[disabled]{opacity:.35;pointer-events:none}
.zf-rd-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:14px;padding:0 20px;min-height:0}
.zf-rd-page{position:relative;height:100%;max-height:min(70vh,860px);width:auto;flex:none;aspect-ratio:3/4;background:var(--surface);border-radius:8px;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column}
.zf-rd-page[hidden]{display:none}
.zf-rd-page img{width:100%;height:100%;object-fit:cover}
.zf-rd-ph{flex:1;margin:18px;border:1px dashed var(--border);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px}
.zf-rd-ph b{font:600 15px var(--sans);color:var(--ink)}
.zf-rd-ph span{font:400 13px/1.45 var(--sans);color:var(--ink-2);max-width:250px}
.zf-rd-pn{position:absolute;bottom:10px;right:14px;font:500 12px var(--sans);color:var(--ink-2)}
.zf-rd-bottom{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:16px 20px 22px}
.zf-rd-dl{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:8px;background:var(--forest-text);color:#fff;font:600 15px var(--sans);border:none;cursor:pointer;text-decoration:none;transition:background .15s ease}
.zf-rd-dl:hover{background:#265E29}
.zf-rd-sub{display:flex;gap:8px}
.zf-rd-sub input{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;font:400 14px var(--sans);width:230px}
.zf-rd-sub input::placeholder{color:rgba(255,255,255,.6)}
.zf-rd-sub button{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font:600 14px var(--sans);cursor:pointer;transition:background .15s ease}
.zf-rd-sub button:hover{background:rgba(255,255,255,.14)}
.zf-rd-note{font:500 14px var(--sans);color:var(--mint)}
.zf-rd--full .zf-rd-page{max-height:100%}
.zf-rd--full .zf-rd-top,.zf-rd--full .zf-rd-bottom{padding-top:10px;padding-bottom:10px}
@media(max-width:900px){
  .zf-rd-page{max-height:min(62vh,720px)}
  .zf-rd-stage{gap:0;padding:0 12px}
  .zf-rd-sub input{width:170px}
}


.zf-mag-sec--off{display:none!important}

/* «Сейчас читают»: крупная карточка + список статей */
.zf-jnowgrid{grid-template-columns:minmax(0,1.32fr) minmax(0,1fr)}
@media(max-width:1100px){.zf-jnowgrid{grid-template-columns:1fr}}

/* ── Разделы в шапке (ПК) + подложка ────────────── */
.zf-hnav{display:none}
.zf-hbar{display:flex;align-items:center;gap:16px;pointer-events:auto;min-width:0}
@media(min-width:901px){
  .zf-hbar{gap:18px;height:64px;padding:0 12px 0 24px;border-radius:18px;background:var(--hnavBg,var(--grad));box-shadow:var(--hnavShadow,0 10px 24px rgba(20,48,35,.22))}
  .zf-hbar .logo__img{height:32px;filter:brightness(0) invert(1)}
  .zf-hnav{pointer-events:auto;display:flex;align-items:center;gap:6px}
  .zf-hnav a{display:inline-flex;align-items:center;height:44px;padding:0 20px;border-radius:13px;font:400 15px var(--display);color:var(--hnavText,#fff);text-decoration:none;white-space:nowrap;transition:background .15s ease,color .15s ease}
  .zf-hnav a:hover{background:var(--hnavHover,rgba(255,255,255,.18));color:var(--hnavText,#fff)}
  .zf-hnav a[aria-current="page"]{background:var(--hnavOn,#fff);color:var(--hnavOnText,var(--forest-text))}
  .zf-hnav a[aria-current="page"]:hover{background:var(--hnavOn,#fff);color:var(--hnavOnText,var(--forest-text))}
  .zf-inhead{--hnavShadow:0 6px 16px rgba(20,48,35,.18)}
  body[data-menu-open="true"] .zf-hnav{opacity:0;pointer-events:none;transition:opacity .2s ease}
  body[data-menu-open="true"] .zf-hbar{background:transparent;box-shadow:none;transition:background .2s ease}
  .zf-cats a[data-nav-sec]{display:none}
}
