/* Zalerio, прототип каталога: общие стили всех страниц. Собрано из variants.html (утверждённые шапка и первый экран), 07.11.2026 */
/* ===== Токены. Палитра – из кода сайта Вити (apps/web/src/lib/styles/tokens.primitives.css). Только белая тема, скруглений нет. ===== */
:root {
  --c-indigo-900: #14163a;
  --c-indigo-800: #1f2147;
  --c-indigo-600: #3340a0;
  --c-indigo-100: #e4e5f2;
  --c-indigo-50: #f1f2f8;
  --c-azure: #1e9fe0;
  --c-amber: #e8892b;
  --c-white: #ffffff;

  --c-bg: #ffffff;
  --c-bg-2: #f5f5f7;
  --c-text: #1d1d1f;
  --c-text-2: #6e6e73;
  --c-body: #424245;
  --c-ft-link: #424245;
  --c-border: #d4d4d4;
  --c-nav-text: rgba(0, 0, 0, .8);
  --c-nav-glass: rgba(245, 245, 247, .8);
  --c-panel: rgba(250, 250, 252, .96);
  --c-curtain: rgba(232, 232, 237, .4);
  --c-line: rgba(0, 0, 0, .1);
  --c-link: #3340a0;
  --c-shadow: rgba(20, 22, 58, .12);

  /* Акцент – пандан (выбор Вождя 07.11.2026, на проверке). acc-fill – обводка, линии, точка логотипа; acc – текст на белом (контраст крупного текста 3,5:1) */
  --acc-fill: #8cc63f;
  --acc: #4a9a2c;
  --acc-tint: rgba(140, 198, 63, .14);

  --f-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --f-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;

  --nav-h: 44px;
  --nav-w: 1024px;
  --page-w: 1180px;
  --ease: cubic-bezier(.4, 0, .6, 1);
  --ease-out: cubic-bezier(.2, .8, .2, 1);

  --z-base: 0;
  --z-sticky: 100;
  --z-widget: 200;
  --z-dropdown: 400;
  --z-modal: 1000;
  --c-tile-shade: rgba(0, 0, 0, .78);
  --b-line: #06c755;
  --b-wa: #25d366;
  --b-tg: #2aabee;
  --b-max: #6c5ce7;
  --b-line-glow: rgba(6, 199, 85, .35);
  --b-wa-glow: rgba(37, 211, 102, .35);
  --b-tg-glow: rgba(42, 171, 238, .35);
  --b-max-glow: rgba(108, 92, 231, .35);
}

*, *::before, *::after { box-sizing: border-box; border-radius: 0; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--c-bg); color: var(--c-text); font: 400 17px/1.47 var(--f-text); letter-spacing: -.022em; -webkit-font-smoothing: antialiased; }
body.is-locked { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; color: inherit; letter-spacing: inherit; }
:focus-visible { outline: 2px solid var(--c-azure); outline-offset: 2px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.page { max-width: var(--page-w); margin: 0 auto; padding: 0 24px; }

/* ===== Глобальная навигация (одобрена Вождём 07.11 – не менять; точка логотипа – голубой бренда) ===== */
.gn { position: sticky; top: 0; z-index: var(--z-sticky); height: var(--nav-h); }
.gn::before { content: ""; position: absolute; inset: 0; background: var(--c-nav-glass); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); transition: background-color .3s var(--ease); }
.gn.is-open::before { background: var(--c-panel); }
.gn__bar { position: relative; z-index: 3; max-width: var(--nav-w); height: 100%; margin: 0 auto; padding: 0 22px; display: flex; align-items: center; justify-content: space-between; }
.gn__logo { font: 600 19px/1 var(--f-display); letter-spacing: -.02em; color: var(--c-text); display: flex; align-items: center; height: 100%; padding: 0 8px; }
.gn__logo span { color: var(--acc-fill); }
.gn__list { display: flex; flex: 1; justify-content: space-between; margin: 0 0 0 28px; padding: 0; list-style: none; height: 100%; }
.gn__item { height: 100%; }
.gn__link { display: flex; align-items: center; height: 100%; padding: 0 8px; font-size: 12px; letter-spacing: -.01em; color: var(--c-nav-text); transition: color .3s var(--ease); }
.gn__link:hover, .gn__item.is-active .gn__link { color: var(--c-text); }
.gn__tools { display: flex; height: 100%; margin-left: 20px; }
.gn__lang { display: flex; align-items: center; height: 100%; padding: 0 8px; font-size: 12px; letter-spacing: .02em; color: var(--c-nav-text); transition: color .3s var(--ease); }
.gn__lang:hover { color: var(--c-text); }
.gn__icon { width: 36px; height: 100%; display: grid; place-items: center; background: none; border: 0; cursor: pointer; color: var(--c-nav-text); padding: 0; }
.gn__icon:hover { color: var(--c-text); }
.gn__icon svg { width: 15px; height: 15px; }
.gn__burger { display: none; }

.fly { position: absolute; z-index: 2; left: 0; right: 0; top: var(--nav-h); overflow: hidden; height: 0; visibility: hidden; transition: height .32s var(--ease), visibility .32s; }
.gn.is-open .fly { visibility: visible; }
.fly::before { content: ""; position: absolute; inset: 0; background: var(--c-panel); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); }
.fly__inner { position: relative; max-width: var(--nav-w); margin: 0 auto; padding: 22px 30px 40px; opacity: 0; transform: translateY(-6px); transition: opacity .24s var(--ease), transform .24s var(--ease); }
.gn.is-open .fly__inner { opacity: 1; transform: none; transition-delay: .08s; }
.fly__top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; margin-bottom: 22px; border-bottom: 1px solid var(--c-line); }
.fly__top a { display: inline-flex; align-items: center; gap: 8px; font: 600 15px/1.2 var(--f-text); letter-spacing: -.016em; color: var(--c-text); }
.fly__top a svg { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.fly__top a:hover { color: var(--c-link); }
.fly__top a:hover svg { transform: translateX(3px); }
.fly__top span { font-size: 12px; color: var(--c-text-2); }
.fly__cols { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.fly__col { padding: 0 24px; border-left: 1px solid var(--c-line); min-width: 0; }
.fly__col:first-child { padding-left: 0; border-left: 0; }
.fly__label { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); margin: 0 0 10px; }
.fly__links { list-style: none; margin: 0; padding: 0; }
.fly__links a { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 6px 0; font-size: 14px; font-weight: 500; letter-spacing: -.016em; color: var(--c-text); transition: color .2s var(--ease); }
.fly__links a small { font-size: 12px; font-weight: 400; color: var(--c-text-2); font-variant-numeric: tabular-nums; }
.fly__links a:hover { color: var(--c-link); }
.search { width: 100%; max-width: 640px; }
.search__field { display: flex; align-items: center; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--c-line); }
.search__field svg { width: 20px; height: 20px; color: var(--c-text-2); flex: none; }
.search__input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; font: 600 22px/1.2 var(--f-display); letter-spacing: .005em; }
.search__input::placeholder { color: var(--c-text-2); }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.search .fly__label { margin-top: 20px; }
.curtain { position: fixed; z-index: 1; inset: 0; top: var(--nav-h); background: var(--c-curtain); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); opacity: 0; visibility: hidden; transition: opacity .32s var(--ease), visibility .32s; }
.gn.is-open .curtain { opacity: 1; visibility: visible; }
.mm { position: fixed; z-index: 4; inset: var(--nav-h) 0 0 0; background: var(--c-bg); overflow-y: auto; visibility: hidden; opacity: 0; transition: opacity .3s var(--ease), visibility .3s; }
.gn.is-mobile-open .mm { visibility: visible; opacity: 1; }
.mm__level { padding: 24px 40px 48px; }
.mm__list { list-style: none; margin: 0; padding: 0; }
.mm__list > li, .mm__sec { opacity: 0; transform: translateY(-8px); transition: opacity .3s var(--ease-out), transform .3s var(--ease-out); }
.gn.is-mobile-open .mm__list > li, .gn.is-mobile-open .mm__sec { opacity: 1; transform: none; }
.mm__big { display: flex; width: 100%; justify-content: space-between; align-items: center; padding: 13px 0; font: 500 17px/1.25 var(--f-display); letter-spacing: -.005em; color: var(--c-text); background: none; border: 0; border-bottom: 1px solid var(--c-line); cursor: pointer; text-align: left; }
.mm__big svg { width: 16px; height: 16px; color: var(--c-text-2); }
.mm__back { display: inline-flex; gap: 6px; align-items: center; background: none; border: 0; padding: 4px 0 14px; color: var(--c-text-2); font-size: 14px; cursor: pointer; }
.mm__back svg { width: 14px; height: 14px; }
.mm__top { display: flex; align-items: center; gap: 8px; font: 600 21px/1.2 var(--f-display); padding: 4px 0 16px; border-bottom: 1px solid var(--c-line); margin-bottom: 8px; }
.mm__top svg { width: 16px; height: 16px; }
.mm__sec { padding: 16px 0 10px; border-bottom: 1px solid var(--c-line); }
.mm__sec:last-child { border-bottom: 0; }
.mm__sec .fly__links a { font-size: 17px; padding: 8px 0; }

/* ===== Общие элементы ===== */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; font-size: 15px; font-weight: 500; letter-spacing: -.016em; border: 1px solid transparent; cursor: pointer; transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.btn--main { background: var(--c-indigo-800); color: var(--c-white); border-color: var(--c-indigo-800); }
.btn--main:hover { background: var(--c-indigo-900); border-color: var(--c-indigo-900); }
.btn--line { color: var(--c-indigo-800); border-color: var(--c-indigo-800); background: transparent; }
.btn--line:hover { background: var(--c-indigo-50); }
.more { display: inline-flex; align-items: center; gap: 4px; color: var(--c-link); font-size: 17px; }
.more:hover { text-decoration: underline; text-underline-offset: 3px; }
.gray { color: var(--c-text-2); }
.sq-btn { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--c-border); background: var(--c-bg); cursor: pointer; color: var(--c-text); }
.sq-btn:hover { border-color: var(--c-indigo-800); }
.sq-btn svg { width: 16px; height: 16px; }

/* ===== Первый экран: заголовок, переключатели-ссылки регион/район, карточки ЖК ===== */
.first { padding: 56px 0 72px; }
.a-top { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: end; }
.a-h { font: 600 clamp(32px, 4.4vw, 52px)/1.08 var(--f-display); letter-spacing: -.02em; margin: 0; max-width: 920px; }
.a-h em { font-style: normal; color: var(--acc); }
.a-sub { font-size: 19px; line-height: 1.45; color: var(--c-text-2); margin: 18px 0 0; max-width: 760px; }
.a-help { display: grid; gap: 4px; font-size: 14px; color: var(--c-text-2); }
.a-help strong { color: var(--c-text); font-weight: 600; }
.a-help .more { font-size: 14px; }
.rail { display: grid; grid-auto-flow: column; grid-auto-columns: 300px; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.rail::-webkit-scrollbar { display: none; }
.card { position: relative; scroll-snap-align: start; background: var(--c-bg-2); display: flex; flex-direction: column; }
.card__img { aspect-ratio: 4 / 3; overflow: hidden; }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
.card:hover .card__img img { transform: scale(1.03); }
.card__body { padding: 18px 20px 22px; display: grid; gap: 4px; }
.card__state { font-size: 12px; font-weight: 600; letter-spacing: .02em; color: var(--c-indigo-600); }
.card__state.is-built { color: var(--c-text-2); }
.card__name { font: 600 19px/1.2 var(--f-display); letter-spacing: -.01em; margin: 0; }
.card__name a::after { content: ""; position: absolute; inset: 0; }
.card__place { font-size: 14px; color: var(--c-text-2); }
.card__body { flex: 1; }
.prices { list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--c-line); min-height: 103px; }
.prices li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--c-line); font-size: 14px; }
.prices li span { color: var(--c-text-2); }
.prices li b { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.prices li.is-ask { color: var(--c-text-2); border-bottom: 0; }
.card__meta { display: flex; justify-content: space-between; gap: 10px; margin-top: 10px; font-size: 12px; color: var(--c-text-2); }
.card.is-in { animation: cardIn .45s var(--ease-out) both; }
.card.is-in:nth-child(2) { animation-delay: 40ms; } .card.is-in:nth-child(3) { animation-delay: 80ms; } .card.is-in:nth-child(4) { animation-delay: 120ms; } .card.is-in:nth-child(n+5) { animation-delay: 160ms; }
@keyframes cardIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.flt { margin: 44px 0 20px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.flt__row { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.seg { display: flex; border: 1px solid var(--c-border); }
.seg a { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border: 0; background: var(--c-bg); cursor: pointer; font-size: 14px; font-weight: 500; color: var(--c-text); white-space: nowrap; transition: background-color .2s var(--ease), color .2s var(--ease); }
.seg a + a { border-left: 1px solid var(--c-border); }
.seg a small { color: var(--c-text-2); font-size: 13px; margin-left: 4px; transition: color .2s var(--ease); }
.seg a:hover { background: var(--acc-tint); }
.seg a[aria-current="page"] { background: var(--c-bg); color: var(--c-text); font-weight: 600; box-shadow: inset 0 0 0 2px var(--acc-fill); }
.seg a[aria-current="page"] small { color: var(--c-text-2); }
.arrows { display: flex; gap: 8px; }
.dist { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 32px; min-width: 0; }
.dist__list { display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.dist__list::-webkit-scrollbar { display: none; }
.dist__list a { position: relative; flex: none; padding: 6px 0; font-size: 14px; color: var(--c-text-2); white-space: nowrap; transition: color .2s var(--ease); }
.dist__list a small { font-size: 12px; margin-left: 3px; }
.dist__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--acc-fill); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.dist__list a:hover { color: var(--c-text); }
.dist__list a[aria-current="page"] { color: var(--c-text); font-weight: 600; }
.dist__list a[aria-current="page"]::after { transform: scaleX(1); }
.dist .more { font-size: 14px; flex: none; white-space: nowrap; }


/* ===== Хлебные крошки – строкой под описанием (решение Вождя 07.11) ===== */
.crumbs { margin: 14px 0 0; font-size: 13px; color: var(--c-text-2); min-width: 0; }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; gap: 6px; white-space: nowrap; overflow: hidden; }
.crumbs li { display: flex; align-items: center; gap: 6px; flex: none; }
.crumbs li:last-child { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; display: block; }
.crumbs li:last-child::before { margin-right: 6px; }
.crumbs li + li::before { content: "›"; color: var(--c-border); }
.crumbs a { color: var(--c-link); }
.crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.crumbs [aria-current="page"] { color: var(--c-text); }

/* ===== Карточки: цены крупнее – аудитория 40+ ===== */
.prices li { font-size: 15px; padding: 8px 0; }
.prices li b { font-size: 16px; }
.prices { min-height: 118px; }
.card__meta { font-size: 13px; display: grid; gap: 2px; }

/* ===== Второй экран: команда – компактно, в стилистике первого экрана ===== */
.team { border-top: 1px solid var(--c-line); padding: 64px 0 72px; }
.eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); margin: 0 0 12px; }
.team__h { font: 600 clamp(28px, 3.4vw, 40px)/1.1 var(--f-display); letter-spacing: -.015em; margin: 0; }
.team__h em { font-style: normal; color: var(--acc); }
.team__lead { font-size: 19px; line-height: 1.45; color: var(--c-text-2); max-width: 760px; margin: 14px 0 0; }
.team__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.team__side .team__lead { font-size: 18px; }
.team__contacts { display: inline-block; margin-top: 14px; font-size: 16px; }
.specs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.spec { display: grid; grid-template-columns: 150px minmax(0, 1fr); background: var(--c-bg-2); }
.spec__photo { height: 100%; min-height: 200px; background: var(--c-indigo-50); color: var(--c-indigo-100); display: grid; place-items: center; }
.spec__photo svg, .guide__photo svg { width: 52%; height: auto; }
.spec__body { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.spec__role { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--c-indigo-600); }
.spec__name { margin: 0; font: 600 20px/1.2 var(--f-display); letter-spacing: -.01em; }
.spec__name.is-stub { color: var(--c-text-2); }
.spec__bio { margin: 0; font-size: 15px; line-height: 1.45; color: var(--c-text-2); }
.hash { margin: 2px 0 0; font-size: 14px; color: var(--acc); }
.hash span + span { margin-left: 10px; }
.spec__foot { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 12px; }
.spec__foot .more { font-size: 15px; }

/* Мессенджеры: свои линейные иконки; по кругу, по очереди проходит лёгкий ореол цвета бренда */
.msgs { display: flex; gap: 6px; }
.msg { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--c-border); background: var(--c-bg); color: var(--c-text-2); cursor: pointer; animation: msgGlow 6s var(--ease) infinite; transition: color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease); }
.msg svg { width: 18px; height: 18px; }
.msg--line { --brand: var(--b-line); --glow: var(--b-line-glow); }
.msg--wa { --brand: var(--b-wa); --glow: var(--b-wa-glow); }
.msg--tg { --brand: var(--b-tg); --glow: var(--b-tg-glow); }
.msg--max { --brand: var(--b-max); --glow: var(--b-max-glow); }
@keyframes msgGlow { 0%, 76%, 100% { box-shadow: 0 0 0 0 transparent; color: var(--c-text-2); border-color: var(--c-border); } 86% { box-shadow: 0 0 0 1px var(--glow), 0 0 14px var(--glow); color: var(--brand); border-color: var(--brand); } }
.msgs .msg:nth-child(2) { animation-delay: 2s; }
.msgs .msg:nth-child(3) { animation-delay: 4s; }
.spec:nth-child(2) .msg:nth-child(1) { animation-delay: 1s; }
.spec:nth-child(2) .msg:nth-child(2) { animation-delay: 3s; }
.guide .msg:nth-child(1) { animation-delay: .5s; }
.guide .msg:nth-child(2) { animation-delay: 2.5s; }
.guide .msg:nth-child(3) { animation-delay: 4.5s; }
.msg:hover { animation: none; color: var(--brand); border-color: var(--brand); box-shadow: 0 0 0 1px var(--glow), 0 0 14px var(--glow); }

/* Общий TikTok специалисток – лента (встроим, когда будет ссылка) */
.tk { margin-top: 40px; border: 1px solid var(--c-line); padding: 14px 16px 16px; }
.tk__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; }
.tk__title { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; }
.tk__title svg { width: 16px; height: 16px; }
.tk__handle { font-size: 14px; color: var(--c-link); }
.tk__handle:hover { text-decoration: underline; text-underline-offset: 3px; }
.team__agency { margin: 8px 0 0; font-size: 15px; color: var(--c-text-2); }
.tk__title small { margin-left: 6px; font-size: 13px; font-weight: 400; color: var(--c-text-2); }
.tk__view { margin-top: 12px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, var(--c-bg) 4%, var(--c-bg) 96%, transparent); mask-image: linear-gradient(90deg, transparent, var(--c-bg) 4%, var(--c-bg) 96%, transparent); }
.tk__track { display: flex; gap: 8px; width: max-content; animation: tkRun 80s linear infinite; }
.tk__view:hover .tk__track, .tk__view:focus-within .tk__track { animation-play-state: paused; }
@keyframes tkRun { to { transform: translateX(calc(-50% - 4px)); } }
.tk__tile { position: relative; flex: 0 0 150px; aspect-ratio: 9 / 16; background: var(--c-bg-2); overflow: hidden; display: block; }
.tk__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.tk__tile:hover img { transform: scale(1.04); }
.tk__tile::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(to top, var(--c-tile-shade), transparent); pointer-events: none; }
.tk__kind { position: absolute; z-index: 1; left: 8px; top: 8px; padding: 3px 7px; font-size: 11px; font-weight: 600; letter-spacing: .02em; background: var(--c-bg); color: var(--c-text); }
.tk__kind--deal { box-shadow: inset 0 0 0 2px var(--acc-fill); }
.tk__cap { position: absolute; z-index: 1; left: 8px; right: 8px; bottom: 8px; font-size: 12px; line-height: 1.3; font-weight: 600; color: var(--c-white); }

/* Проводник на русском – компактно в левой колонке, без рамки */
.guide { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--c-line); display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px; align-items: start; }
.guide__photo { width: 56px; height: 56px; background: var(--c-indigo-50); color: var(--c-indigo-100); display: grid; place-items: center; }
.guide__text p { margin: 0; }
.guide__text .guide__name { font: 600 17px/1.3 var(--f-display); margin: 2px 0 4px; }
.guide__bio { font-size: 15px; line-height: 1.45; color: var(--c-text-2); }
.guide .msgs { margin-top: 10px; }

@media (max-width: 833px) {
  .team { padding: 44px 0 52px; }
  .team__lead { font-size: 16px; }
  .team__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .spec { grid-template-columns: 116px minmax(0, 1fr); }
  .spec__photo { min-height: 150px; }
  .spec__body { padding: 14px 16px; }
  .tk__tile { flex-basis: 120px; }
}
@media (max-width: 379px) { .spec { grid-template-columns: 92px minmax(0, 1fr); } }

/* ===== SEO-блок и соседние районы ===== */
.seo { border-top: 1px solid var(--c-line); padding: 56px 0 72px; }
.seo h2 { font: 600 clamp(26px, 3vw, 34px)/1.15 var(--f-display); letter-spacing: -.015em; margin: 0 0 14px; }
.seo__stub { max-width: 760px; margin: 0; padding: 18px 20px; background: var(--c-bg-2); color: var(--c-text-2); font-size: 16px; }
/* SEO-текст: колонка для чтения, оглавление сбоку, свёрнут до кнопки */
.seo-wrap { display: grid; grid-template-columns: 220px minmax(0, 760px); gap: 48px; align-items: start; }
/* Оглавление: на компьютере – тихий список с линией слева, на телефоне – свёрнутая строка */
.seo-toc { position: sticky; top: calc(var(--nav-h) + 24px); }
.seo-toc summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 8px; margin-bottom: 12px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); }
.seo-toc summary::-webkit-details-marker { display: none; }
.seo-toc summary small { font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.seo-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--c-line); }
.seo-toc li a { display: block; margin-left: -1px; padding: 6px 0 6px 14px; border-left: 2px solid transparent; font-size: 14px; line-height: 1.4; color: var(--c-text-2); transition: color .2s var(--ease), border-color .2s var(--ease); }
.seo-toc li a:hover { color: var(--c-text); border-left-color: var(--acc-fill); }
.seo-kicker { margin: 0 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); }
.seo-text { position: relative; max-width: 680px; font-size: 17px; line-height: 1.65; letter-spacing: -.012em; color: var(--c-body); }
.seo-rest { display: none; }
.seo-text.is-open .seo-rest { display: block; }
.seo-text h2 { font: 600 clamp(22px, 2.4vw, 28px)/1.2 var(--f-display); letter-spacing: -.01em; margin: 40px 0 12px; scroll-margin-top: calc(var(--nav-h) + 16px); }
.seo-text h3 { font: 600 20px/1.3 var(--f-display); margin: 28px 0 10px; }
.seo-text p { margin: 0 0 16px; color: var(--c-body); }
.seo-text strong { font-weight: 600; color: var(--c-text); }
.seo-text .seo-answer { padding: 2px 0 2px 18px; border-left: 2px solid var(--acc-fill); font-size: 17px; line-height: 1.6; color: var(--c-text); margin-bottom: 24px; }
.seo-text .seo-callout { padding: 14px 18px; border: 1px solid var(--c-line); color: var(--c-text-2); font-size: 16px; }
.seo-cta a, .seo-rel a { color: var(--c-link); font-weight: 500; }
.seo-cta a:hover, .seo-rel a:hover { text-decoration: underline; text-underline-offset: 3px; }
.seo-check { list-style: none; margin: 0 0 18px; padding: 0; border-top: 1px solid var(--c-line); }
.seo-check li { position: relative; padding: 10px 0 10px 28px; border-bottom: 1px solid var(--c-line); font-size: 16px; }
.seo-check li::before { content: ""; position: absolute; left: 4px; top: 17px; width: 10px; height: 6px; border-left: 2px solid var(--acc); border-bottom: 2px solid var(--acc); transform: rotate(-45deg); }
.seo-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 20px; border-top: 1px solid var(--c-line); }
.seo-facts div { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--c-line); }
.seo-facts div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--c-line); }
.seo-facts dt { font-weight: 600; font-size: 16px; }
.seo-facts dd { margin: 4px 0 0; font-size: 15px; line-height: 1.45; color: var(--c-text-2); }
.seo-table { overflow-x: auto; margin: 0 0 20px; }
.seo-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.seo-table caption { text-align: left; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); padding-bottom: 10px; }
.seo-table th, .seo-table td { text-align: left; vertical-align: top; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--c-line); }
.seo-table thead th { font-size: 13px; color: var(--c-text-2); font-weight: 600; }
.seo-table tbody th { font-weight: 600; }
.seo-faq { border-top: 1px solid var(--c-line); margin-bottom: 20px; }
.seo-faq details { border-bottom: 1px solid var(--c-line); }
.seo-faq summary { cursor: pointer; list-style: none; padding: 14px 32px 14px 0; position: relative; font-weight: 600; font-size: 17px; }
.seo-faq summary::-webkit-details-marker { display: none; }
.seo-faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font-size: 22px; font-weight: 400; color: var(--c-text-2); }
.seo-faq details[open] summary::after { content: "–"; }
.seo-faq details p { margin: 0 0 16px; color: var(--c-text-2); font-size: 16px; }
/* «Читать полностью» – просто текст с плюсом, без рамок */
.seo-more { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 0 268px; padding: 8px 0; background: none; border: 0; font-size: 16px; font-weight: 600; color: var(--c-text); cursor: pointer; }
.seo-more::after { content: "+"; font-size: 20px; font-weight: 400; line-height: 1; color: var(--acc); transition: transform .25s var(--ease); }
.seo-more[aria-expanded="true"]::after { content: "–"; }
.seo-more:hover { color: var(--acc); }
@media (max-width: 1023px) {
  .seo-wrap { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .seo-toc { position: static; background: var(--c-bg-2); padding: 14px 16px; }
  .seo-toc summary { margin: 0; justify-content: space-between; font-size: 13px; color: var(--c-text); }
  .seo-toc summary::after { content: "+"; font-size: 20px; font-weight: 400; line-height: 1; color: var(--acc); }
  .seo-toc[open] summary::after { content: "–"; }
  .seo-toc summary small { margin-right: auto; color: var(--c-text-2); }
  .seo-toc[open] ol { margin-top: 12px; }
  .seo-more { margin-left: 0; }
}
@media (max-width: 599px) { .seo-facts { grid-template-columns: 1fr; } .seo-facts div:nth-child(even) { padding-left: 0; border-left: 0; } .seo-text { font-size: 16px; } }

.near { margin-top: 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; }
.near h3 { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); margin: 0 0 8px; }
.near ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.near li a { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--c-line); font-size: 16px; }
.near li a small { color: var(--c-text-2); }
.near li a:hover { color: var(--c-link); }
.near li a[aria-current="page"] { font-weight: 600; }


/* ===== Заголовок, описание и крошки на одних уровнях на всех страницах: высота по самой длинной странице для каждой ширины ===== */
@media (min-width: 1024px) { .a-h { min-height: calc(2 * 1.08em); } .a-sub { min-height: calc(3 * 1.45em); } }
@media (min-width: 834px) and (max-width: 1023px) { .a-h { min-height: calc(3 * 1.08em); } .a-sub { min-height: calc(4 * 1.45em); } }
@media (min-width: 600px) and (max-width: 833px) { .a-h { min-height: calc(2 * 1.08em); } .a-sub { min-height: calc(3 * 1.45em); } }
@media (min-width: 380px) and (max-width: 599px) { .a-h { min-height: calc(4 * 1.08em); } .a-sub { min-height: calc(5 * 1.45em); } }
@media (max-width: 379px) { .a-h { min-height: calc(4 * 1.08em); } .a-sub { min-height: calc(6 * 1.45em); } }

/* ===== Плавающая кнопка «Подобрать ЖК» (телефон): тёмная, с живой точкой; прячется у подвала ===== */
.fab { display: none; }
@media (max-width: 833px) {
  .fab { position: fixed; z-index: var(--z-widget); left: 16px; bottom: 20px; display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 18px; border: 1px solid var(--c-line); background: var(--c-nav-glass); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); color: var(--c-text); font-size: 15px; font-weight: 600; letter-spacing: -.01em; box-shadow: 0 8px 24px var(--c-shadow); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s; }
  .fab i { width: 8px; height: 8px; background: var(--acc-fill); animation: fabDot 2.4s var(--ease) infinite; }
  body.fab-on .fab { opacity: 1; visibility: visible; transform: none; }
  body.is-locked .fab { opacity: 0; visibility: hidden; }

}
@keyframes fabDot { 0%, 100% { box-shadow: 0 0 0 0 var(--acc-tint); } 50% { box-shadow: 0 0 0 5px var(--acc-tint); } }

/* Шторка «Кому написать?»: три человека поднимаются по очереди */
.pick { position: fixed; z-index: var(--z-modal); inset: 0; background: var(--c-curtain); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); display: flex; align-items: flex-end; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility .3s; }
.pick.is-open { opacity: 1; visibility: visible; }
.pick__panel { width: 100%; max-width: 520px; background: var(--c-bg); padding: 18px 20px 24px; box-shadow: 0 -12px 40px var(--c-shadow); transform: translateY(24px); transition: transform .35s var(--ease-out); }
.pick.is-open .pick__panel { transform: none; }
.pick__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.pick__head p { margin: 0; font: 600 20px/1.2 var(--f-display); }
.pick__head button { width: 40px; height: 40px; display: grid; place-items: center; border: 0; background: none; cursor: pointer; color: var(--c-text-2); }
.pick__head svg { width: 20px; height: 20px; }
.pick__list { list-style: none; margin: 0; padding: 0; }
.pick__row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--c-line); opacity: 0; transform: translateY(14px); transition: opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.pick.is-open .pick__row { opacity: 1; transform: none; }
.pick.is-open .pick__row:nth-child(1) { transition-delay: .08s; }
.pick.is-open .pick__row:nth-child(2) { transition-delay: .16s; }
.pick.is-open .pick__row:nth-child(3) { transition-delay: .24s; }
.pick__ava { width: 44px; height: 44px; display: grid; place-items: center; background: var(--c-bg-2); color: var(--acc); font: 600 18px/1 var(--f-display); box-shadow: inset 0 0 0 1px var(--c-line); }
.pick__ava svg { width: 60%; height: auto; }
.pick__who b { display: block; font-size: 16px; font-weight: 600; }
.pick__who small { display: block; font-size: 13px; color: var(--c-text-2); line-height: 1.35; }
.pick__note { margin: 14px 0 0; font-size: 13px; color: var(--c-text-2); }
/* На компьютере – всплывает рядом с кнопкой, сайт не затемняется */
.pick.is-pop { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; display: block; }
.pick.is-pop .pick__panel { position: absolute; width: 440px; max-width: calc(100vw - 32px); border: 1px solid var(--c-line); box-shadow: 0 20px 48px var(--c-shadow); transform: translateY(-6px); }
.pick.is-pop.is-open .pick__panel { transform: none; }

/* ===== Концовка перед подвалом: соцсети; серая пальма растёт из подвала и заходит фоном на текст ===== */
.outro { position: relative; padding: 8px 0 48px; overflow-x: clip; }
.outro::after { content: ""; position: absolute; z-index: -1; right: max(8px, calc(50% - 600px)); bottom: -2px; width: 400px; height: 600px; background: url("/img/palm.svg?v=20261108") center bottom / contain no-repeat; pointer-events: none; }
.outro__text { max-width: 620px; }
.outro__h { margin: 0; font: 600 clamp(22px, 2.6vw, 28px)/1.2 var(--f-display); letter-spacing: -.01em; }
.outro__sub { margin: 8px 0 0; font-size: 16px; color: var(--c-text-2); }
.outro__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.soc-link { display: inline-flex; align-items: center; gap: 12px; padding: 10px 16px 10px 12px; border: 1px solid var(--c-border); background: var(--c-bg); transition: border-color .2s var(--ease); }
.soc-link:hover { border-color: var(--c-text); }
.soc-link svg { width: 20px; height: 20px; }
.soc-link span { display: grid; font-size: 15px; font-weight: 600; line-height: 1.25; }
.soc-link small { font-size: 12px; font-weight: 400; color: var(--c-text-2); }
@media (max-width: 833px) { .outro { padding: 4px 0 36px; } .outro::after { right: -40px; width: 300px; height: 450px; } }


/* ===== Энциклопедия покупки: текст слева, шаги справа ===== */
.enc { border-top: 1px solid var(--c-line); padding: 72px 0 40px; }
.enc + .outro { margin-top: 0; }
.enc__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.enc__text { margin: 14px 0 0; font-size: 18px; line-height: 1.5; color: var(--c-text-2); max-width: 520px; }
.enc__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-size: 17px; font-weight: 600; color: var(--c-text); text-decoration: underline; text-decoration-color: var(--acc-fill); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.enc__link::after { content: "›"; text-decoration: none; }
.enc__link:hover { color: var(--acc); }
.steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-text); }
.steps li a { display: grid; grid-template-columns: 56px minmax(0, 1fr) 20px; gap: 16px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--c-line); transition: padding-left .3s var(--ease-out); }
.steps li a::after { content: "›"; font-size: 20px; color: var(--c-text-2); transition: transform .3s var(--ease-out), color .2s var(--ease); }
.steps li a:hover { padding-left: 8px; }
.steps li a:hover::after { transform: translateX(4px); color: var(--acc); }
.step__n { font: 600 15px/1 var(--f-text); color: var(--acc); font-variant-numeric: tabular-nums; }
.step__t b { display: block; font: 600 19px/1.25 var(--f-display); letter-spacing: -.01em; color: var(--c-text); }
.step__t small { display: block; margin-top: 4px; font-size: 15px; line-height: 1.45; color: var(--c-text-2); }

/* ===== Подвал в стиле Apple ===== */
.ft { background: var(--c-bg-2); color: var(--c-text-2); font-size: 12px; line-height: 1.5; padding: 48px 0 28px; }
.ft a { color: var(--c-ft-link); }
.ft a:hover { color: var(--c-text); text-decoration: underline; text-underline-offset: 2px; }
.ft__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--c-line); }
.ft .ft__logo { font: 600 28px/1 var(--f-display); letter-spacing: -.02em; color: var(--c-text); text-decoration: none; }
.ft__logo span { color: var(--acc-fill); }
.ft__tag { margin: 10px 0 0; font-size: 14px; color: var(--c-text-2); }
.ft__msg { display: flex; align-items: center; gap: 14px; font-size: 12px; }
.ft__msg .msg { background: var(--c-bg); }
.ft__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 28px 0; }
.ft__col h3 { margin: 0 0 10px; font-size: 12px; font-weight: 600; color: var(--c-text); }
.ft__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ft__note { margin: 0; padding: 18px 0; border-top: 1px solid var(--c-line); max-width: 860px; }
.ft__bottom { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding-top: 14px; border-top: 1px solid var(--c-line); }
.ft__legal { flex: none; }
.ft__legal::before { content: "·"; margin-right: 16px; color: var(--c-text-2); }
@media (max-width: 833px) {
  .enc { padding: 48px 0 32px; }
  .enc__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .enc__text { font-size: 16px; }
  .steps li a { grid-template-columns: 30px minmax(0, 1fr) 12px; gap: 10px; padding: 13px 0; }
  .step__n { font-size: 13px; }
  .step__t b { font-size: 16px; }
  .step__t small { font-size: 14px; margin-top: 2px; }
  .steps li a::after { font-size: 17px; }
  .ft__top { flex-direction: column; align-items: flex-start; }
  .ft__msg { flex-direction: column; align-items: flex-start; gap: 10px; }
  .ft__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .ft { padding-bottom: 24px; }
}

/* ===================== Страница ЖК ===================== */
.btn--acc { min-height: 48px; padding: 0 22px; background: var(--c-bg); color: var(--c-text); border: 2px solid var(--acc-fill); font-weight: 600; }
.btn--acc:hover { background: var(--acc-tint); }
.sec__h { font: 600 clamp(26px, 3vw, 36px)/1.15 var(--f-display); letter-spacing: -.015em; margin: 0; }
.zh { padding: 56px 0 56px; }
.zh__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-areas: "top model" "rest model"; column-gap: 40px; align-items: center; }
.zh__top { grid-area: top; align-self: end; }
.zh__rest { grid-area: rest; align-self: start; display: flex; flex-direction: column; }
.zh__rest > .crumbs { order: 10; margin-top: 18px; }
.zh__model { grid-area: model; }
.zh__status { margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--c-indigo-600); }
.zh__status.is-built { color: var(--acc); }
.zh__h { margin: 0; font: 600 clamp(36px, 5vw, 60px)/1.04 var(--f-display); letter-spacing: -.025em; }
.zh__place { margin: 10px 0 0; font-size: 15px; color: var(--c-text-2); }
.zh__lead { margin: 18px 0 0; font-size: 19px; line-height: 1.5; color: var(--c-text-2); max-width: 560px; }
.zh__facts { display: grid; grid-template-columns: 1fr 1fr; margin: 28px 0 0; border-top: 1px solid var(--c-line); }
.zh__facts div { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--c-line); }
.zh__facts div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--c-line); }
.zh__facts dt { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--c-text-2); }
.zh__facts dd { margin: 4px 0 0; font: 600 22px/1.2 var(--f-display); letter-spacing: -.01em; }
.zh__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 28px; }
.zh__model { position: relative; }
.zh__note { margin: 8px 0 0; text-align: center; font-size: 12px; color: var(--c-text-2); }
.zm { position: relative; aspect-ratio: 840 / 700; }
/* Уголки-«видоискатель» цвета пандан по краям 3D-макета */
.zm::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    linear-gradient(var(--acc-fill), var(--acc-fill)) left top / 26px 2px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) left top / 2px 26px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) right top / 26px 2px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) right top / 2px 26px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) left bottom / 26px 2px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) left bottom / 2px 26px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) right bottom / 26px 2px,
    linear-gradient(var(--acc-fill), var(--acc-fill)) right bottom / 2px 26px;
  background-repeat: no-repeat; }
.zm video, .zm__turn { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .35s var(--ease); }
.zm__turn { cursor: grab; user-select: none; -webkit-user-select: none; touch-action: pan-y; }
.zm__turn:active { cursor: grabbing; }
.zm .is-off { opacity: 0; pointer-events: none; }
.zm--box { aspect-ratio: 4 / 5; max-width: 460px; margin: 0 auto; background: var(--c-bg-2); }
.zm--box video { object-fit: cover; }
.zm--soon { display: grid; place-items: center; background: var(--c-bg-2); text-align: center; }
.zm--soon p { margin: 0; padding: 24px; display: grid; gap: 6px; }
.zm--soon b { font-size: 21px; font-weight: 600; color: var(--c-text); }
.zm--soon span { font-size: 15px; color: var(--c-text-2); }
.zm__bar { position: absolute; z-index: 3; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; border: 1px solid var(--c-line); background: var(--c-nav-glass); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); }
.zm__btn { height: 36px; padding: 0 14px; white-space: nowrap; border: 0; background: none; font-size: 13px; font-weight: 500; color: var(--c-text-2); cursor: pointer; }
.zm__btn + .zm__btn { border-left: 1px solid var(--c-line); }
.zm__btn[aria-pressed="true"] { color: var(--c-text); font-weight: 600; box-shadow: inset 0 -2px 0 var(--acc-fill); }

/* Галерея по вкладкам */
.gal { padding: 56px 0; border-top: 1px solid var(--c-line); }
.gal__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 16px 24px; margin-bottom: 20px; }
.gal__tabs { flex-wrap: wrap; }
.gal__tabs button { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border: 0; background: var(--c-bg); cursor: pointer; font-size: 14px; font-weight: 500; color: var(--c-text); white-space: nowrap; }
.gal__tabs button + button { border-left: 1px solid var(--c-border); }
.gal__tabs button small { color: var(--c-text-2); font-size: 13px; margin-left: 6px; }
.gal__tabs button:hover { background: var(--acc-tint); }
.gal__tabs button[aria-pressed="true"] { font-weight: 600; box-shadow: inset 0 0 0 2px var(--acc-fill); }
.gal__set[hidden] { display: none; }
.gal__track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; background: var(--c-bg-2); }
.gal__track::-webkit-scrollbar { display: none; }
.gal__slide { margin: 0; scroll-snap-align: start; aspect-ratio: 16 / 9; }
.gal__slide img { width: 100%; height: 100%; object-fit: cover; }
.gal__slide.is-plan { background: var(--c-white); }
.gal__slide.is-plan img { object-fit: contain; padding: 16px; }
.gal__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.gal__thumbs::-webkit-scrollbar { display: none; }
.gal__th { flex: 0 0 96px; aspect-ratio: 3 / 2; padding: 0; border: 0; background: var(--c-bg-2); cursor: pointer; opacity: .55; transition: opacity .2s var(--ease), box-shadow .2s var(--ease); }
.gal__th img { width: 100%; height: 100%; object-fit: cover; }
.gal__th:hover { opacity: .85; }
.gal__th.is-on { opacity: 1; box-shadow: inset 0 0 0 2px var(--acc-fill); }
.gal__th.is-on img { padding: 2px; }
.gal__ctrl { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; }
.gal__count { font-size: 14px; color: var(--c-text-2); font-variant-numeric: tabular-nums; }

/* Квартиры и цены */
.units { padding: 56px 0; border-top: 1px solid var(--c-line); }
.units__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.units__note { margin: 12px 0 20px; font-size: 16px; line-height: 1.5; color: var(--c-text-2); max-width: 520px; }
.units__table table { font-size: 15px; }
.units__table thead th { border-bottom: 1px solid var(--c-text); }
.units__table td { padding: 12px 12px 12px 0; }
.units__table td.num { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Инфраструктура */
.amen { padding: 56px 0; border-top: 1px solid var(--c-line); }
.amen__list { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; }
.amen__list li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--c-line); font-size: 15px; }
.amen__sum { display: none; }
.amen__ic { flex: none; width: 36px; height: 36px; display: grid; place-items: center; background: var(--c-bg-2); color: var(--acc); }
.amen__ic svg { width: 20px; height: 20px; }

/* Расположение */
.locb { padding: 56px 0; border-top: 1px solid var(--c-line); }
.locb__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.locb__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.locb__list li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--c-line); font-size: 15px; }
.locb__list b { font-weight: 600; text-align: right; }
.locb__map { height: 420px; background: var(--c-bg-2); border: 1px solid var(--c-line); }
.locb__map .maplibregl-ctrl-group, .locb__map .maplibregl-ctrl-group button, .locb__map .maplibregl-ctrl-attrib, .locb__map .maplibregl-ctrl-attrib-button { border-radius: 0; }
.pin { width: 18px; height: 18px; background: var(--acc-fill); border: 3px solid var(--c-white); box-shadow: 0 2px 8px var(--c-shadow); }

/* Ход строительства / история: шкала + призыв */
.stage { padding: 56px 0; border-top: 1px solid var(--c-line); }
.stage__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 48px; align-items: start; }
.stage__meta { margin: 8px 0 0; font-size: 17px; color: var(--acc); font-weight: 600; }
.stage__list { list-style: none; margin: 28px 0 18px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stage__list li { position: relative; padding: 22px 16px 0 0; }
.stage__list li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--c-bg-2); }
.stage__list li.is-done::before { background: var(--acc-fill); }
.stage__list li.is-now::before { background: repeating-linear-gradient(-45deg, var(--acc-fill) 0 8px, var(--acc-tint) 8px 16px); background-size: 200% 100%; animation: stageRun 1.6s linear infinite; }
@keyframes stageRun { to { background-position: -22.6px 0; } }
.stage__list li::after { content: ""; position: absolute; left: 0; top: -3px; width: 12px; height: 12px; background: var(--c-bg); border: 2px solid var(--c-border); }
.stage__list li.is-done::after, .stage__list li.is-now::after { border-color: var(--acc-fill); background: var(--acc-fill); }
.stage__list b { display: block; font: 600 18px/1.3 var(--f-display); }
.stage__list small { display: block; margin-top: 4px; font-size: 14px; color: var(--c-text-2); }
.stage__list li.is-now small { color: var(--acc); font-weight: 600; }
.stage__cta { background: var(--c-bg-2); padding: 28px; border-left: 3px solid var(--acc-fill); }
.stage__cta-h { margin: 0; font: 600 22px/1.25 var(--f-display); letter-spacing: -.01em; }
.stage__cta p:not(.stage__cta-h) { margin: 10px 0 20px; font-size: 16px; line-height: 1.5; color: var(--c-text-2); }

/* Застройщик */
.devb { padding: 56px 0; border-top: 1px solid var(--c-line); }
.devb__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 48px; align-items: center; }
.devb__card { display: block; background: var(--c-bg-2); }
.devb__card img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.devb__head { display: flex; align-items: center; gap: 16px; }
.devb__logo { display: none; flex: none; width: 56px; height: 56px; padding: 8px; background: var(--c-bg-2); }
.devb__logo img { width: 100%; height: 100%; object-fit: contain; }
.mini__h { margin: 40px 0 12px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-2); }
.mini__row { display: grid; grid-auto-flow: column; grid-auto-columns: 220px; gap: 12px; overflow-x: auto; scrollbar-width: none; }
.mini__row::-webkit-scrollbar { display: none; }
.mini { display: block; background: var(--c-bg-2); }
.mini img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.mini span { display: grid; gap: 2px; padding: 10px 12px 12px; }
.mini b { font-size: 15px; font-weight: 600; }
.mini small { font-size: 12px; color: var(--c-text-2); }
.mini:hover b { color: var(--c-link); }
.seo-list { margin: 0 0 16px; padding-left: 20px; }
.seo-list li { margin: 4px 0; }
.seo-text .seo-note { font-size: 15px; color: var(--c-text-2); }

@media (max-width: 1023px) {
  .units__grid, .locb__grid, .devb__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .zh__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "top" "model" "rest"; row-gap: 16px; }
  .zh__rest > .crumbs { order: -1; margin: 0 0 4px; }
  .amen__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 833px) {
  .zh { padding: 20px 0 40px; }
  .zh__lead { font-size: 16px; }
  .zh__facts dd { font-size: 19px; }
  .gal, .units, .amen, .locb, .stage, .devb { padding: 40px 0; }
  .gal__slide { aspect-ratio: 4 / 3; }
  .gal__tabs { width: 100%; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .gal__tabs::-webkit-scrollbar { display: none; }
  .gal__tabs button { flex: none; padding: 0 12px; font-size: 13px; }
  .gal__th { flex-basis: 72px; }
  .locb__map { height: 300px; }
  .stage__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .stage__list { grid-template-columns: minmax(0, 1fr); margin-left: 4px; }
  .stage__list li { padding: 0 0 22px 24px; }
  .stage__list li::before { left: 0; right: auto; top: 0; bottom: 0; width: 6px; height: auto; }
  .stage__list li.is-now::before { background: repeating-linear-gradient(45deg, var(--acc-fill) 0 8px, var(--acc-tint) 8px 16px); }
  .stage__list li::after { left: -3px; top: 2px; }
  .units__table { overflow-x: auto; }
}
@media (max-width: 479px) { .amen__list { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 833px) {
  .devb__card { display: none; }
  .devb__logo { display: block; }
  .devb__head .sec__h { font-size: 24px; }
  .devb__head .eyebrow { margin-bottom: 4px; }
  .devb .units__note { margin-top: 14px; }
  .mini__row { grid-auto-columns: 168px; }
  .mini__h { margin-top: 24px; }
}
/* Телефон: галерея – заголовок над вкладками; «Что есть в комплексе» – компактная плашка и шторка сбоку (список остаётся в разметке) */
@media (max-width: 833px) {
  .gal__head { display: block; }
  .gal__head .sec__h { margin-bottom: 14px; }
  .gal__tabs.seg { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; border: 0; overflow: visible; }
  .gal__tabs.seg button { justify-content: center; border: 1px solid var(--c-border); }
  .gal__tabs.seg button + button { border-left: 1px solid var(--c-border); }
  .amen__sum { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin-top: 16px; padding: 12px; border: 1px solid var(--c-line); background: var(--c-bg); text-align: left; cursor: pointer; }
  .amen__peek { display: flex; gap: 4px; }
  .amen__sum .amen__ic { width: 32px; height: 32px; }
  .amen__sum-t { display: grid; justify-items: end; gap: 2px; }
  .amen__sum-t b { font-size: 16px; font-weight: 600; }
  .amen__sum-t small { font-size: 13px; color: var(--c-link); }
  .amen__drawer { position: fixed; z-index: var(--z-modal); inset: 0; background: var(--c-curtain); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility .3s; }
  .amen__drawer.is-open { opacity: 1; visibility: visible; }
  .amen__drawer .amen__list { position: absolute; top: 0; right: 0; bottom: 0; width: min(86vw, 360px); margin: 0; padding: 20px 20px 32px; overflow-y: auto; display: block; background: var(--c-bg); box-shadow: -12px 0 40px var(--c-shadow); transform: translateX(100%); transition: transform .35s var(--ease-out); }
  .amen__drawer.is-open .amen__list { transform: none; }
  .amen__drawer .amen__list::before { content: "Что есть в комплексе"; display: block; margin-bottom: 8px; font: 600 20px/1.2 var(--f-display); }
}

/* ===== Переход между страницами без моргания: шапка и переключатели стоят, меняется содержимое ===== */
@view-transition { navigation: auto; }
.gn { view-transition-name: gn; }
.flt { view-transition-name: flt; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .25s; }

/* ===== Адаптив: брейкпоинт 834 – как у apple.com ===== */
@media (max-width: 833px) {
  .gn__bar { padding: 0 16px; }
  .gn__list { display: none; }
  .gn__burger { display: grid; }
  .gn__tools { margin-left: auto; }
  .gn__icon { width: 44px; }
  .gn__icon svg { width: 17px; height: 17px; }
  .fly { display: none; }
  .mm__level { padding: 20px 28px 40px; }
  .page { padding: 0 16px; }
  .rail { grid-auto-columns: 78%; }
  .first { padding: 32px 0 48px; }
  .a-sub { font-size: 16px; margin-top: 12px; }
  .a-help { display: none; }
  .flt { margin-top: 24px; }
  .seg { flex: 1; }
  .seg a { flex: 1; min-width: 0; padding: 0 6px; justify-content: center; }
  .arrows { display: none; }
  .dist { flex-direction: column; align-items: flex-start; gap: 6px; }
  .dist__list { width: 100%; }
}
@media (min-width: 600px) and (max-width: 833px) {
  .rail { grid-auto-columns: calc((100% - 16px) / 2); }
}
@media (min-width: 834px) {
  .mm { display: none; }
  .a-top { grid-template-columns: 1fr auto; }
  .a-help { text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
  .tk__view { overflow-x: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ===== Страница застройщика (07.11.2026): мозаика ЖК, фильтр, «без прикрас», история ===== */
.dvm__grid { position: absolute; inset: 14px; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); grid-template-rows: 1fr 1fr; gap: 8px; }
.dvm__t { position: relative; display: block; overflow: hidden; background: var(--c-bg-2); color: #fff; }
.dvm__t:first-child { grid-row: span 2; }
.dvm__t img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.dvm__t:hover img { transform: scale(1.03); }
.dvm__t span { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 2px; padding: 32px 14px 12px; font-size: 15px; font-weight: 600; line-height: 1.25; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); }
.dvm__t small { font-size: 12px; font-weight: 400; opacity: .9; }
.dvm__logo { position: absolute; z-index: 3; top: 14px; left: 14px; display: grid; place-items: center; width: 76px; height: 76px; background: #fff; }
.dvm__logo img { width: 48px; height: auto; }
.dvp { padding: 56px 0; border-top: 1px solid var(--c-line); }
.dvp__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 32px; flex-wrap: wrap; }
.dvp .flt { margin: 28px 0 20px; }
.dvp__seg button { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border: 0; background: var(--c-bg); cursor: pointer; font: inherit; font-size: 14px; font-weight: 500; color: var(--c-text); white-space: nowrap; }
.dvp__seg button + button { border-left: 1px solid var(--c-border); }
.dvp__seg button small { margin-left: 6px; font-size: 13px; color: var(--c-text-2); }
.dvp__seg button:hover { background: var(--acc-tint); }
.dvp__seg button[aria-pressed="true"] { font-weight: 600; box-shadow: inset 0 0 0 2px var(--acc-fill); }
.rail .card[hidden] { display: none; }
.pc { padding: 56px 0; border-top: 1px solid var(--c-line); }
.pc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.pc__col { padding: 28px; background: var(--c-bg-2); }
.pc__col h3 { margin: 0 0 16px; font: 600 19px/1.3 var(--f-display); }
.pc__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.pc__col li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; font-size: 16px; line-height: 1.5; color: var(--c-body); }
.pc__ic svg { width: 22px; height: 22px; margin-top: 1px; }
.pc__col--plus .pc__ic { color: var(--acc); }
.pc__col--minus .pc__ic { color: var(--c-text-2); }
.pc__nums { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 32px; }
.pc__nums div:nth-child(even) { padding-left: 0; border-left: 0; }
.pc__nums div + div { padding-left: 16px; border-left: 1px solid var(--c-line); }
.hist { padding: 56px 0; border-top: 1px solid var(--c-line); }
.hist__list { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 16px; }
.hist__list li { display: grid; align-content: start; gap: 6px; padding: 18px 0 26px; border-top: 2px solid var(--c-line); }
.hist__list li:first-child, .hist__list li:last-child { border-top-color: var(--acc-fill); }
.hist__list b { font: 600 24px/1.1 var(--f-display); letter-spacing: -.01em; }
.hist__list span { font-size: 15px; line-height: 1.45; color: var(--c-body); }
@media (max-width: 833px) {
  .dvp, .pc, .hist { padding: 40px 0; }
  .dvp__head .btn { display: none; }
  .dvp .flt__row .arrows { display: none; }
  .pc__grid { grid-template-columns: minmax(0, 1fr); }
  .pc__col { padding: 22px 20px; }
  .pc__nums { grid-template-columns: 1fr 1fr; }
  .pc__nums div + div { padding-left: 0; border-left: 0; }
  .pc__nums div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--c-line); }
  .hist__list { grid-template-columns: 1fr 1fr; }
  .dvm__grid { inset: 10px; gap: 6px; }
  .dvm__logo { top: 10px; left: 10px; width: 60px; height: 60px; }
  .dvm__logo img { width: 38px; }
  .dvm__t span { padding: 24px 10px 8px; font-size: 13px; }
  .dvm__t small { display: none; }
}
@media (max-width: 379px) { .dvp__seg button { padding: 0 10px; font-size: 13px; } }

/* ===== Контентные страницы (ночь 07–08.11.2026): контакты, энциклопедия, журнал, застройщики, новостройки ===== */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ph { padding: 56px 0 44px; }  /* надпись над заголовком не прилипает к шапке (Вождь 08.11.2026) */
.ph__lead { max-width: 680px; }
.ph .crumbs { margin-top: 22px; }
.ph .zh__cta { margin-top: 24px; }
.ep { padding: 56px 0; border-top: 1px solid var(--c-line); }
.co__facts { margin-top: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.co__facts dd { overflow-wrap: anywhere; }
.co__facts dd { font-size: 18px; }
.co__facts a { color: var(--c-link, #0066cc); }
.co__facts .is-tbd { color: var(--c-text-2); font-weight: 400; }
.ep__steps { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ep__step { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 8px; padding: 24px 22px; background: var(--c-bg-2); scroll-margin-top: calc(var(--nav-h) + 16px); }
.ep__step .step__n { font-size: 17px; padding-top: 3px; }
.ep__step h3, .ep__topic h3 { margin: 0 0 6px; font: 600 19px/1.3 var(--f-display); }
.ep__step p, .ep__topic p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--c-body); }
.ep__step:target { box-shadow: inset 0 0 0 2px var(--acc-fill); }
.ep__soon { display: inline-block; margin-top: 12px; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--c-text-2); }
.ep__topics { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--c-line); }
.ep__topic { padding: 22px 22px 24px 0; border-bottom: 1px solid var(--c-line); scroll-margin-top: calc(var(--nav-h) + 16px); }
.ep__topic + .ep__topic { padding-left: 22px; border-left: 1px solid var(--c-line); }
.ep__topic:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
.ep__topic:target h3 { color: var(--acc); }
.ep__guides { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ep__guides a { display: grid; gap: 6px; padding: 22px; min-height: 130px; align-content: space-between; background: var(--c-bg-2); transition: background-color .2s var(--ease); }
.ep__guides a:hover { background: var(--acc-tint); }
.ep__guides b { font: 600 24px/1.1 var(--f-display); letter-spacing: -.01em; }
.ep__guides span { font-size: 14px; color: var(--c-text-2); }
.bl { padding: 8px 0 56px; }
.bl .flt { margin-top: 0; }
.bl__seg button[disabled] { color: var(--c-text-2); cursor: default; background: var(--c-bg); }
.bl__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.bl__grid--3 { margin-top: 28px; }
.bl__note { margin-top: 24px; }
.bl--more { padding-top: 56px; border-top: 1px solid var(--c-line); }
.bt { display: grid; grid-template-rows: auto 1fr; background: var(--c-bg-2); color: var(--c-text); transition: background-color .2s var(--ease); }
.bt:hover { background: var(--acc-tint); }
.bt__vis { position: relative; display: grid; place-items: end start; aspect-ratio: 16 / 9; padding: 20px 22px; background: linear-gradient(135deg, #eef4e6, #f5f5f7 70%); overflow: hidden; }
.bt__vis::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border: 2px solid var(--acc-fill); opacity: .35; }
.bt__vis b { font: 600 clamp(30px, 3.4vw, 44px)/1 var(--f-display); letter-spacing: -.025em; }
.bt__body { display: grid; align-content: start; gap: 8px; padding: 20px 22px 24px; }
.bt__cat { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--acc); }
.bt__h { font: 600 19px/1.3 var(--f-display); letter-spacing: -.01em; }
.bt__ex { font-size: 15px; line-height: 1.5; color: var(--c-body); }
.bt__meta { font-size: 13px; color: var(--c-text-2); }
.bt--big { grid-column: 1 / -1; grid-template-rows: none; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.bt--big .bt__body { align-content: center; padding: 32px; }
.bt--big .bt__vis { aspect-ratio: auto; min-height: 300px; }
.bt--big .bt__vis b { font-size: clamp(40px, 5vw, 64px); }
.bt--big .bt__h { font-size: 24px; }
.art__meta { display: flex; align-items: center; gap: 12px; margin: 22px 0 0; font-size: 15px; }
.art__meta small { display: block; margin-top: 2px; font-size: 13px; color: var(--c-text-2); }
.art__av { display: grid; place-items: center; width: 44px; height: 44px; flex: none; background: var(--acc-tint); color: var(--acc); font-weight: 600; }
/* Энциклопедия: подпись двух авторов, вставки Нонг, блок «Кто писал» */
.art__avs { display: flex; flex: none; gap: 4px; }  /* квадраты рядом, без наложения (Вождь 08.11.2026: портрет Кирилла был обрезан) */
.art__av--th { background: var(--c-indigo-50); color: var(--c-amber); }
.seo-text .seo-voice { margin: 8px 0 24px; padding: 18px 20px 4px; background: var(--c-bg-2); border-left: 3px solid var(--c-amber); }
.seo-text .seo-voice p { color: var(--c-text); }
.seo-text .seo-voice__who { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 15px; }
.seo-voice__who small { display: block; font-size: 13px; color: var(--c-text-2); }
.seo-voice__av { display: grid; place-items: center; width: 32px; height: 32px; flex: none; background: var(--c-white); color: var(--c-amber); font-weight: 600; }
.seo-text .art__authors { margin: 40px 0 0; padding: 20px 0 4px; border-top: 1px solid var(--c-line); }
.seo-text .art__authors p { font-size: 14px; color: var(--c-text-2); }
/* Ссылки в тексте энциклопедии видны глазом (30_MARKETING §4) */
.seo-text.art__text p a, .seo-text.art__text li a, .seo-text.art__text td a { color: var(--c-link); }
.seo-text.art__text p a:hover, .seo-text.art__text li a:hover, .seo-text.art__text td a:hover { text-decoration: underline; text-underline-offset: 3px; }
.art { border-top: 1px solid var(--c-line); }
.art__map { margin: 24px 0; }
.art__map img { width: 100%; height: auto; background: var(--c-bg-2); }
.art__map figcaption { margin-top: 8px; font-size: 13px; color: var(--c-text-2); }
.art__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin: 40px 0 0; padding: 24px; background: var(--c-bg-2); }
.art__cta p { margin: 0; display: grid; gap: 4px; }
.art__cta b { font: 600 19px/1.3 var(--f-display); }
.art__cta span { font-size: 15px; color: var(--c-text-2); }
.art-page .seo-text { max-width: none; }
.dc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.dc { display: grid; align-content: start; gap: 16px; padding: 28px; background: var(--c-bg-2); color: var(--c-text); transition: background-color .2s var(--ease); }
.dc:hover { background: var(--acc-tint); }
.dc__top { display: flex; align-items: center; gap: 16px; }
.dc__top .zh__status { display: block; margin: 0 0 4px; }
.dc__logo { display: grid; place-items: center; width: 64px; height: 64px; flex: none; background: #fff; }
.dc__name { display: block; font: 600 28px/1.1 var(--f-display); letter-spacing: -.02em; }
.dc__lead { font-size: 16px; line-height: 1.5; color: var(--c-body); }
.dc .zh__facts { margin-top: 0; }
.dc .zh__facts dd { font-size: 19px; }
.stl__reg + .stl__reg { margin-top: 56px; }
.stl__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; margin-bottom: 24px; }
.stl__head small { font: 500 17px/1 var(--f-text); color: var(--c-text-2); margin-left: 6px; letter-spacing: 0; }
.stl__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
@media (max-width: 1023px) {
  .ep__steps { grid-template-columns: 1fr 1fr; }
  .bl__grid { grid-template-columns: 1fr 1fr; }
  .dc__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 833px) {
  .ph { padding: 28px 0 32px; }
  .ep { padding: 40px 0; }
  .ep__topics { grid-template-columns: minmax(0, 1fr); }
  .ep__topic, .ep__topic + .ep__topic { padding: 18px 0 20px; border-left: 0; }
  .ep__guides { grid-template-columns: 1fr 1fr; }
  .bt--big { grid-template-columns: minmax(0, 1fr); }
  .bt--big .bt__vis { min-height: 0; aspect-ratio: 16 / 9; }
  .bl .flt__row { overflow-x: auto; scrollbar-width: none; }
  .dc { padding: 22px 20px; }
}
@media (max-width: 599px) {
  .bt--big { grid-column: auto; }
  .co__facts { grid-template-columns: minmax(0, 1fr); }
  .co__facts div:nth-child(even) { padding-left: 0; border-left: 0; }
  .ep__guides { grid-template-columns: minmax(0, 1fr); }
  .ep__guides a { min-height: 0; }
  .stl__grid { grid-template-columns: minmax(0, 1fr); }
}
.ep__step .more { display: inline-block; margin-top: 12px; }

/* ===== Энциклопедия: карточки разделов, навигация шагов (ночь 07–08.11.2026) ===== */
.ep__step:has(> a) { display: block; padding: 0; }
.ep__step > a { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 8px; height: 100%; padding: 24px 22px; color: var(--c-text); transition: background-color .2s var(--ease); }
.ep__step > a:hover { background: var(--acc-tint); }
.ep__step--topic > a { grid-template-columns: minmax(0, 1fr); }
.ep__more { display: inline-block; margin-top: 14px; font-size: 14px; font-weight: 500; color: var(--c-link); }
.enav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 48px 0 0; }
.enav__a { display: grid; gap: 4px; padding: 18px 20px; background: var(--c-bg-2); color: var(--c-text); transition: background-color .2s var(--ease); }
.enav__a:last-child { text-align: right; }
.enav__a:hover { background: var(--acc-tint); }
.enav__a small { font-size: 13px; color: var(--c-text-2); }
.enav__a b { font: 600 18px/1.3 var(--f-display); }
.eall { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; border-top: 1px solid var(--c-line); }
.eall a { display: block; padding: 14px 0; border-bottom: 1px solid var(--c-line); font-size: 16px; color: var(--c-text); }
.eall a:hover { color: var(--acc); }
.eall a[aria-current="page"] { color: var(--acc); font-weight: 600; }
@media (max-width: 599px) {
  .enav { grid-template-columns: minmax(0, 1fr); }
  .enav__a:last-child { text-align: left; }
  .eall { grid-template-columns: minmax(0, 1fr); }
}


/* ===== Контакты v2 (ночь 07–08.11.2026): панель «Кому написать», как 3D на странице ЖК ===== */
.cp { padding: 28px 28px 24px; background: var(--c-bg-2); }
.cp__h { margin: 0 0 8px; font: 600 24px/1.2 var(--f-display); letter-spacing: -.01em; }
.cp__list { list-style: none; margin: 0; padding: 0; }
.cp__row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--c-line); }
.cp__row:last-child { border-bottom: 0; }
.cp__ava { display: grid; place-items: center; width: 56px; height: 56px; background: var(--c-bg); color: var(--acc); font: 600 22px/1 var(--f-display); box-shadow: inset 0 0 0 1px var(--c-line); }
.cp__who b { display: block; font: 600 19px/1.25 var(--f-display); }
.cp__who small { display: block; margin-top: 3px; font-size: 14px; line-height: 1.4; color: var(--c-text-2); }
.cp__note { margin: 8px 0 0; font-size: 14px; color: var(--c-text-2); }
.ep__steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1023px) { .ep__steps--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) {
  .ep__steps--4 { grid-template-columns: minmax(0, 1fr); }
  .cp { padding: 20px 18px 16px; }
  .cp__row { grid-template-columns: 44px minmax(0, 1fr); gap: 4px 12px; padding: 14px 0; }
  .cp__ava { width: 44px; height: 44px; font-size: 18px; grid-row: span 2; }
  .cp__row .msgs { grid-column: 2; }
}
.contacts-page .zh__model { align-self: start; }
@media (max-width: 599px) { .contacts-page .zh__facts dd { font-size: 18px; } }

/* ===== Мобильное меню v2 (ночь 07–08.11.2026): компактные пункты, внизу команда; шторка на весь экран без пустоты ===== */
.mm__level--root { display: flex; flex-direction: column; min-height: 100%; }
.mm__team { margin-top: auto; padding-top: 28px; }
.mm__team .fly__label { margin: 0 0 4px; }
.mm .pick__row { opacity: 1; transform: none; padding: 12px 0; }
.mm .pick__row:last-child { border-bottom: 0; }
.mm__big svg { width: 14px; height: 14px; }
@media (max-width: 833px) { .mm__level { padding: 8px 16px calc(24px + env(safe-area-inset-bottom)); } body.is-locked .fab { display: none; } }
.gn.is-mobile-open, .gn.is-mobile-open .gn__bar { background: var(--c-bg); -webkit-backdrop-filter: none; backdrop-filter: none; }
.mm__top { font-size: 18px; }
.mm__sec .fly__links a { font-size: 16px; padding: 7px 0; }
.mm .pick__row { grid-template-columns: 44px minmax(0, 1fr); gap: 6px 14px; }
.mm .pick__ava { grid-row: span 2; }
.mm .pick__row .msgs { grid-column: 2; }
.gn.is-mobile-open::before { background: var(--c-bg); -webkit-backdrop-filter: none; backdrop-filter: none; }

@media (max-width: 833px) { .gal__tabs.seg { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .gal__tabs.seg button { min-width: 0; white-space: normal; text-align: center; justify-content: center; line-height: 1.2; } }
/* Возврат правила, потерянного при чистке .ct__* (ночь 07–08.11.2026), и крошки не распирают родителя на узких экранах */
@media (max-width: 599px) { .ep__steps, .bl__grid { grid-template-columns: minmax(0, 1fr); } }
.crumbs { contain: inline-size; max-width: 100%; }
/* Узкий экран: длинные крошки сжимают средние пункты с многоточием, а название страницы остаётся видимым */
@media (max-width: 599px) {
  .crumbs li { flex: 0 1 auto; min-width: 0; }
  .crumbs li a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .crumbs li:last-child { flex: 0 0 auto; max-width: 52%; }
}

/* ===== Главная 08.11.2026: застройщики компактными строками одной высоты; гиды по районам – бегущая лента, как ТикТок ===== */
.dvp--tight { padding: 44px 0; }
.dk__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 8px; margin-top: 24px; }
.dk { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; height: 72px; padding: 0 18px 0 14px; background: var(--c-bg-2); color: var(--c-text); transition: background-color .2s var(--ease); }
.dk:hover { background: var(--acc-tint); }
.dk__logo { display: grid; place-items: center; width: 44px; height: 44px; background: #fff; }
.dk__logo img { width: 34px; height: auto; }
.dk__txt { display: grid; gap: 3px; min-width: 0; }
.dk__name { font: 600 17px/1.2 var(--f-display); letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dk__place { font-size: 13px; line-height: 1.3; color: var(--c-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dk__n { font-size: 14px; color: var(--c-link); white-space: nowrap; }
.dk__n b { font-weight: 600; }

.gs__view { margin-top: 24px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, var(--c-bg) 3%, var(--c-bg) 97%, transparent); mask-image: linear-gradient(90deg, transparent, var(--c-bg) 3%, var(--c-bg) 97%, transparent); }
.gs__track { display: flex; gap: 16px; width: max-content; animation: gsRun 70s linear infinite; }
.gs__view:hover .gs__track, .gs__view:focus-within .gs__track { animation-play-state: paused; }
@keyframes gsRun { to { transform: translateX(calc(-50% - 8px)); } }
.gs { flex: 0 0 320px; display: grid; grid-template-rows: auto auto auto 1fr; gap: 6px; padding-bottom: 16px; background: var(--c-bg-2); color: var(--c-text); transition: background-color .2s var(--ease); }
.gs:hover { background: var(--acc-tint); }
.gs__vis { position: relative; display: block; aspect-ratio: 16 / 9; margin-bottom: 8px; overflow: hidden; background: linear-gradient(135deg, #eef4e6, #f5f5f7 70%); }
.gs__vis img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.gs:hover .gs__vis img { transform: scale(1.04); }
.gs__vis:has(img)::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(to top, var(--c-tile-shade), transparent); pointer-events: none; }
.gs__h { padding: 0 16px; font: 600 17px/1.3 var(--f-display); letter-spacing: -.01em; }
.gs__ex { padding: 0 16px; font-size: 14px; line-height: 1.45; color: var(--c-body); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.gs__meta { align-self: end; padding: 0 16px; font-size: 13px; color: var(--c-text-2); }
@media (max-width: 599px) {
  .dvp--tight { padding: 36px 0; }
  .dk__grid { grid-template-columns: minmax(0, 1fr); margin-top: 18px; }
  .dk { height: 64px; gap: 12px; padding: 0 14px 0 10px; }
  .dk__name { font-size: 16px; }
  .gs__view { margin-top: 18px; }
  .gs__track { gap: 10px; animation-duration: 50s; }
  @keyframes gsRun { to { transform: translateX(calc(-50% - 5px)); } }
  .gs { flex-basis: 236px; gap: 4px; padding-bottom: 12px; }
  .gs__vis { margin-bottom: 6px; }
  .gs__h { padding: 0 12px; font-size: 15px; }
  .gs__ex { padding: 0 12px; font-size: 13px; }
  .gs__meta { padding: 0 12px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .gs__view { overflow-x: auto; } }

/* ===== Главная 08.11.2026 (2): гиды тянутся мышью, число районов на фото; «Консультации на русском» выделены; тезисы команды; цена на карточке в одну строку ===== */
.gs__view.is-js { overflow-x: auto; scrollbar-width: none; cursor: grab; }
.gs__view.is-js::-webkit-scrollbar { display: none; }
.gs__view.is-js .gs__track { animation: none; }
.gs__view.is-drag { cursor: grabbing; user-select: none; }
.gs__view.is-drag .gs { pointer-events: none; }
.gs__vis img { -webkit-user-drag: none; user-select: none; }
.gs__city { position: absolute; z-index: 1; left: 16px; bottom: 12px; display: grid; gap: 4px; }
.gs__city b { position: static; font: 600 28px/1 var(--f-display); letter-spacing: -.02em; color: var(--c-text); }
.gs__vis:has(img) .gs__city b { color: var(--c-white); }
.gs__city small { justify-self: start; padding: 3px 8px; font-size: 12px; font-weight: 600; line-height: 1.3; background: var(--c-bg); color: var(--c-text); }
.guide__role { display: inline-block; margin: 0 0 8px; padding: 5px 10px; font-size: 14px; font-weight: 600; line-height: 1.3; background: var(--acc-tint); color: var(--c-text); box-shadow: inset 3px 0 0 var(--acc-fill); }
.team__perks { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.team__perks li { position: relative; padding-left: 26px; font-size: 16px; line-height: 1.45; color: var(--c-text); }
.team__perks li::before { content: ""; position: absolute; left: 2px; top: .35em; width: 12px; height: 7px; border-left: 2px solid var(--acc-fill); border-bottom: 2px solid var(--acc-fill); transform: rotate(-45deg); }
.team__perks li:last-child { font-weight: 600; }
.card__meta span:last-child { white-space: nowrap; }
@media (max-width: 599px) {
  .gs__city { left: 12px; bottom: 10px; }
  .gs__city b { font-size: 22px; }
  .gs__city small { font-size: 11px; padding: 2px 6px; }
}

/* ===== 08.11.2026 (3): строки цен на карточке – всегда в одну линию; три телефона менеджеров ===== */
.prices { min-height: 111px; }
.prices li { gap: 8px; padding: 8px 0; font-size: 13px; line-height: 20px; }
.prices li span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prices li b { flex: none; font-size: 15px; }
.card__meta { display: block; }

.gn__ph { position: relative; height: 100%; display: flex; }
/* карточка ЖК: строки фиксированной высоты – статус, название, место и цены у всех карточек на одной линии */
.card__body { display: flex; flex-direction: column; gap: 4px; }
.card__state { line-height: 18px; }
.card__name { line-height: 24px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card__place { line-height: 21px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card__meta { margin-top: auto; padding-top: 10px; }
.a-help .more { justify-self: end; }

/* всплывашка «Подобрать ЖК» и мобильное меню: номер телефона под именем менеджера */
.pick__tel { display: inline-block; margin-top: 3px; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--c-link); }
.pick__tel:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Телефоны в шапке – панелью меню, как у Apple (08.11.2026) */
#gnPhones { display: none; }  /* скрытый список номеров в шапке; не трогать класс .ph – им размечен первый экран страниц (hero) */
.tel__num { display: inline-block; font: 600 26px/1.15 var(--f-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--c-text); transition: color .2s var(--ease); }
.tel__num:hover { color: var(--c-link); }
.tel__who { margin: 6px 0 0; font-size: 13px; color: var(--c-text-2); }
.mm__tel .tel__num { font-size: 24px; }

/* ===== Раздел «ЖК» (/zhk/…, 08.11.2026): второй ряд фильтра «Все / Новостройки / Сданные», серые ссылки там, где объектов пока нет, пустая лента ===== */
.flt__segs { display: flex; flex-wrap: wrap; gap: 10px 12px; min-width: 0; }
.seg a.is-empty, .dist__list a.is-empty { color: var(--c-text-3, #a1a1a6); }
.seg a.is-empty small, .dist__list a.is-empty small { color: var(--c-text-3, #a1a1a6); }
.seg a.is-empty:hover { background: var(--c-bg); color: var(--c-text-2); }
.empty { display: grid; justify-items: start; gap: 10px; margin-top: 8px; padding: 40px 32px; background: var(--c-bg-2); }
.empty__h { margin: 0; font: 600 24px/1.2 var(--f-display); letter-spacing: -.01em; }
.empty__t { margin: 0 0 6px; max-width: 560px; font-size: 16px; line-height: 1.5; color: var(--c-body); }
@media (max-width: 833px) {
  .flt__segs { flex: 1; flex-direction: column; }
  .flt__segs .seg { width: 100%; }
}
@media (max-width: 599px) { .empty { padding: 28px 20px; } .empty__h { font-size: 21px; } }

/* ===== Застройщики 08.11.2026: логотипы без подложек; карточки /developers/ компактнее; на странице ЖК – одинаковая рамка с логотипом вместо цветных обложек ===== */
.dc__logo, .dk__logo, .devb__logo { background: none; }
.dc__grid { gap: 12px; margin-top: 24px; }
.dc { gap: 12px; padding: 22px 24px; }
.dc__top { gap: 14px; }
.dc__logo { width: 48px; height: 48px; }
.dc__logo img { width: 44px; height: auto; }
.dc__name { font-size: 23px; }
.dc__lead { font-size: 15px; line-height: 1.5; }
.dc .zh__facts div { padding-top: 10px; padding-bottom: 10px; }
.dc .zh__facts dd { font-size: 17px; }
.devb__card { display: grid; place-items: center; align-content: center; gap: 14px; aspect-ratio: 2 / 1; background: none; border: 1px solid var(--c-line); color: var(--c-text); transition: border-color .2s var(--ease); }
.devb__card:hover { border-color: var(--acc-fill); }
.devb__card img { width: 64px; height: auto; aspect-ratio: auto; object-fit: contain; }
.devb__card span { font: 600 17px/1.2 var(--f-display); letter-spacing: -.01em; }
@media (max-width: 599px) { .dc { padding: 18px 18px; } .dc__name { font-size: 21px; } }

/* ===== Страница застройщика 08.11.2026: мозаика – большое фото сверху на всю ширину, два снизу (фото 1600×900, без растяжения); логотип без белого фона; ссылки на ЖК в ценах; плавающая кнопка консультации ===== */
.dvm__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1.45fr) minmax(0, 1fr); }
.dvm__t:first-child { grid-row: auto; grid-column: 1 / -1; }
.dvm__logo { width: auto; height: auto; padding: 0; background: none; }
.dvm__logo img { width: 52px; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .35)) drop-shadow(0 0 12px rgba(0, 0, 0, .25)); }
.units__table td a { color: var(--c-link); }
.units__table td a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fab__short { display: none; }
@media (min-width: 834px) {
  .fab--dev { position: fixed; z-index: var(--z-widget); left: 24px; bottom: 24px; display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 20px; border: 1px solid var(--c-line); background: var(--c-nav-glass); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); color: var(--c-text); font-size: 15px; font-weight: 600; letter-spacing: -.01em; box-shadow: 0 8px 24px var(--c-shadow); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s; }
  .fab--dev i { width: 8px; height: 8px; background: var(--acc-fill); animation: fabDot 2.4s var(--ease) infinite; }
  .fab--dev:hover { border-color: var(--acc-fill); }
  body.fab-on .fab--dev { opacity: 1; visibility: visible; transform: none; }
}
@media (max-width: 833px) { .fab--dev .fab__long { display: none; } .fab--dev .fab__short { display: inline; } }
@media (max-width: 599px) { .dvm__logo img { width: 40px; } }
/* логотип застройщика – над статусом, на белом, без подложки (на фото мозаики не читался) */
.zh__logo { display: block; width: 56px; height: auto; margin: 0 0 14px; }
@media (max-width: 599px) { .zh__logo { width: 44px; margin-bottom: 10px; } }

/* ===== Блог 08.11.2026: рубрики-ссылки, фото на карточках гидов, соцсети в левой колонке статьи, живая карта районов ===== */
.seg > span { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; background: var(--c-bg); font-size: 14px; font-weight: 500; color: var(--c-text-3, #a1a1a6); white-space: nowrap; cursor: default; }
.seg > * + * { border-left: 1px solid var(--c-border); }
.seg > span small { margin-left: 4px; font-size: 13px; color: inherit; }
.bt__vis img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.bt:hover .bt__vis img { transform: scale(1.03); }
.bt__vis:has(img)::before { content: ""; position: absolute; inset: 45% 0 0; z-index: 1; background: linear-gradient(to top, var(--c-tile-shade), transparent); pointer-events: none; }
.bt__vis::after { z-index: 2; }
.bt__vis b { position: relative; z-index: 2; }
.bt__vis:has(img) b { color: var(--c-white); }
.art__side { position: sticky; top: calc(var(--nav-h) + 24px); display: grid; gap: 32px; align-self: start; }
.art__side .seo-toc { position: static; }
.side-soc { display: grid; gap: 8px; padding-top: 20px; border-top: 1px solid var(--c-line); }
.side-soc__h { margin: 0 0 4px; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--c-text); }
.side-soc .soc-link { width: 100%; }
.dmap__map { width: 100%; aspect-ratio: 4 / 5; max-height: 720px; background: var(--c-bg-2); }
.dmap figcaption { margin-top: 10px; }
.dmap__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--c-text-2); }
.dmap__legend li { display: inline-flex; align-items: center; gap: 6px; }
.dmap__legend i { width: 10px; height: 10px; flex: none; }
.dmap__legend small { font-size: 12px; }
.dmap__tip .maplibregl-popup-content { padding: 8px 12px; border-radius: 0; box-shadow: 0 6px 18px rgba(0, 0, 0, .14); font: 500 14px/1.3 var(--f-text); color: var(--c-text); }
.dmap__tip .maplibregl-popup-content b { display: block; font-weight: 600; }
.dmap__tip .maplibregl-popup-content small { display: block; font-size: 12px; color: var(--c-text-2); }
.dmap__tip .maplibregl-popup-tip { display: none; }
@media (min-width: 1024px) { .art-page .outro { display: none; } }
@media (max-width: 1023px) { .side-soc { display: none; } .art__side { position: static; } }
@media (max-width: 599px) { .dmap__map { aspect-ratio: 3 / 4; } }

/* ===== Карточки гидов: в зелёной рамке – тот же кадр крупнее, плитка «выпирает» над фото с тенью (08.11.2026) =====
   Рамка: left 60cqw, top 12cqh, 30cqw × 52cqh; внутри картинка ×1.14 вокруг центра рамки – совпадает с фото, но ближе. */
.bt__vis:has(.bt__pop) { container-type: size; }
.bt__vis:has(.bt__pop)::after { display: none; }
.bt__pop { --z: 1.14; --l: 60; --t: 12; --w: 30; --h: 52; position: absolute; z-index: 2; left: calc(var(--l) * 1cqw); top: calc(var(--t) * 1cqh); width: calc(var(--w) * 1cqw); height: calc(var(--h) * 1cqh); overflow: hidden; outline: 2px solid var(--acc-fill); outline-offset: 0; box-shadow: 0 2px 4px rgba(0, 0, 0, .18), 0 18px 34px -12px rgba(0, 0, 0, .55); transform: translate(-4px, -6px); transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out); }
.bt__pop .bt__pop-img { position: absolute; width: calc(100cqw * var(--z)); height: calc(100cqh * var(--z)); max-width: none; left: calc((var(--w) / 2 * (1 - var(--z)) - var(--l) * var(--z)) * 1cqw); top: calc((var(--h) / 2 * (1 - var(--z)) - var(--t) * var(--z)) * 1cqh); object-fit: cover; transform: none !important; }
.bt:hover .bt__pop { transform: translate(-7px, -10px); box-shadow: 0 3px 6px rgba(0, 0, 0, .2), 0 26px 44px -14px rgba(0, 0, 0, .6); }
.bt--big .bt__pop { --l: 62; --t: 10; --w: 28; --h: 46; }
@media (prefers-reduced-motion: reduce) { .bt__pop { transition: none; } }

/* ===== Аренда /arenda/ v2 (08.11.2026): один экран – слева заголовок и форма-калькулятор, справа фото ===== */
.rent { padding: 56px 0 48px; }
.rent__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); gap: 40px; align-items: stretch; }
.rent__main { display: grid; align-content: start; gap: 0; min-width: 0; }
.rent__h { margin: 4px 0 0; font: 600 clamp(30px, 3.4vw, 44px)/1.08 var(--f-display); letter-spacing: -.025em; }
.rent__lead { margin: 10px 0 18px; max-width: 560px; font-size: 17px; line-height: 1.45; color: var(--c-text-2); }
.rent__form { display: grid; gap: 12px; }
.rent__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rent__row--end { align-items: end; }
.rent__field { display: grid; gap: 5px; min-width: 0; }
.rent__field span, .rent__set legend { font-size: 13px; font-weight: 600; color: var(--c-text); }
.rent__field input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--c-border); border-radius: 0; background: var(--c-bg); font: 400 16px/1 var(--f-text); color: var(--c-text); transition: border-color .2s var(--ease); }
.rent__field input:focus { outline: none; border-color: var(--acc-fill); box-shadow: inset 0 0 0 1px var(--acc-fill); }
.rent__field input.is-bad, .rent__set.is-bad .rent__chip span { border-color: #c4302b; }
.rent__set { margin: 0; padding: 0; border: 0; min-width: 0; }
.rent__set legend { margin-bottom: 6px; padding: 0; }
.rent__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rent__chip { position: relative; }
.rent__chip input { position: absolute; opacity: 0; pointer-events: none; }
.rent__chip span { display: inline-flex; align-items: center; justify-content: center; height: 38px; padding: 0 14px; border: 1px solid var(--c-border); background: var(--c-bg); font-size: 14px; font-weight: 500; color: var(--c-text); cursor: pointer; white-space: nowrap; transition: border-color .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease); }
.rent__chips--n .rent__chip span { min-width: 52px; }
.rent__chip span:hover { background: var(--acc-tint); }
.rent__chip input:checked + span { border-color: var(--acc-fill); box-shadow: inset 0 0 0 1px var(--acc-fill); font-weight: 600; }
.rent__chip input:focus-visible + span { outline: 2px solid var(--acc-fill); outline-offset: 2px; }
.rent__chip input:disabled + span { color: var(--c-text-3, #b4b4b9); background: var(--c-bg-2); border-color: var(--c-line); cursor: not-allowed; }
.rent__send { height: 44px; min-height: 44px; }
.rent__trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.rent__err { margin: 0; font-size: 14px; color: #c4302b; }
.rent__note { margin: 0; font-size: 13px; color: var(--c-text-2); }
.rent__done { display: grid; gap: 6px; padding: 22px; background: var(--c-bg-2); box-shadow: inset 3px 0 0 var(--acc-fill); }
.rent__done p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--c-body); }
.rent__done .rent__done-h { font: 600 21px/1.25 var(--f-display); color: var(--c-text); }
.rent__main .crumbs { margin-top: 18px; }
.rent__form[hidden], .rent__done[hidden] { display: none; }
.rent__vis { position: relative; min-height: 100%; overflow: hidden; background: var(--c-bg-2); }
.rent__vis img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rent__vis::after { content: ""; position: absolute; inset: 14px; border: 2px solid var(--acc-fill); pointer-events: none; }
@media (max-width: 1023px) {
  .rent__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .rent__vis { order: -1; min-height: 0; aspect-ratio: 16 / 7; }
  .rent__vis::after { inset: 8px; }
}
@media (max-width: 599px) {
  .rent { padding: 16px 0 36px; }
  .rent__vis { display: none; }
  .rent__lead { font-size: 16px; margin-bottom: 14px; }
  .rent__h { font-size: 28px; }
  .rent__form { gap: 10px; }
  .rent__row { gap: 8px; }
  .rent__row--end { grid-template-columns: minmax(0, 1fr); }
  .rent__field input { height: 42px; }
  .rent__chip span { height: 36px; }
  .rent__chip span { padding: 0 12px; }
  .rent__chips--n .rent__chip span { min-width: 0; padding: 0 14px; }
  .rent__send { width: 100%; }
}
.rent__link { padding: 0; border: 0; background: none; font: inherit; color: var(--c-link); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* легенда карты районов – строки подсвечивают район на карте (08.11.2026) */
.dmap__legend li { padding: 3px 6px; margin: 0 -6px; cursor: default; transition: background-color .15s var(--ease), color .15s var(--ease); }
.dmap__legend li:hover, .dmap__legend li.is-on, .dmap__legend li:focus-visible { background: var(--acc-tint); color: var(--c-text); outline: none; }

/* ===== Окно «Карта районов» в гидах (08.11.2026): миниатюра в левой колонке, плавающая кнопка на телефоне, крупная карта ===== */
.mapw { display: grid; gap: 10px; width: 100%; padding: 12px; border: 1px solid var(--c-line); background: var(--c-bg); text-align: left; cursor: zoom-in; transition: border-color .2s var(--ease), box-shadow .2s var(--ease); }
.mapw:hover { border-color: var(--acc-fill); box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .25); }
.mapw__svg { display: block; width: 100%; height: 150px; background: var(--c-bg-2); }
.mapw__txt { display: grid; gap: 2px; }
.mapw__txt b { font-size: 14px; font-weight: 600; color: var(--c-text); }
.mapw__txt small { font-size: 12px; color: var(--c-link); }
.mapf { display: none; }
.mapm[hidden] { display: none; }
.mapm { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 32px; background: rgba(0, 0, 0, .38); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: mapmIn .22s var(--ease-out); }
@keyframes mapmIn { from { opacity: 0; } }
.mapm__panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: min(1080px, 100%); height: min(820px, 100%); background: var(--c-bg); box-shadow: 0 24px 60px rgba(0, 0, 0, .3); animation: mapmUp .28s var(--ease-out); }
@keyframes mapmUp { from { transform: translateY(14px) scale(.98); opacity: 0; } }
.mapm__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 20px; border-bottom: 1px solid var(--c-line); }
.mapm__head b { font: 600 18px/1.2 var(--f-display); }
.mapm__head button { display: grid; place-items: center; width: 40px; height: 40px; border: 0; background: none; color: var(--c-text); cursor: pointer; }
.mapm__head svg { width: 20px; height: 20px; }
.mapm__map { min-height: 0; background: var(--c-bg-2); }
.mapm .dmap__legend { margin: 0; padding: 10px 20px 14px; border-top: 1px solid var(--c-line); max-height: 96px; overflow-y: auto; }
@media (max-width: 1023px) {
  .mapw { display: none; }
  .mapm { padding: 0; }
  .mapm__panel { width: 100%; height: 100%; height: 100dvh; box-shadow: none; }
  .mapm .dmap__legend { max-height: 120px; padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
}
@media (max-width: 379px) { body.mapf-on .fab { opacity: 0; visibility: hidden; } }

/* ===== Виджеты статьи заметнее (08.11.2026): зелёная рамка; на телефоне справа внизу «≡» (содержание) и «Карта» ===== */
.mapw { border: 2px solid var(--acc-fill); }
.mapw:hover { box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .3); }
.artw, .tocf { display: none; }
.tocm[hidden] { display: none; }
.tocm { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-end; background: rgba(0, 0, 0, .38); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: mapmIn .22s var(--ease-out); }
.tocm__panel { width: 100%; max-height: 82vh; max-height: 82dvh; overflow-y: auto; background: var(--c-bg); padding-bottom: env(safe-area-inset-bottom); animation: mapmUp .28s var(--ease-out); }
.tocm__list { list-style: none; margin: 0; padding: 8px 0 16px; }
.tocm__list a { display: block; padding: 13px 20px; border-bottom: 1px solid var(--c-line); font-size: 16px; line-height: 1.35; color: var(--c-text); }
.tocm__list a:active { background: var(--acc-tint); }
@media (max-width: 1023px) {
  .fab { border: 2px solid var(--acc-fill); background: var(--c-bg); }
  .artw { position: fixed; z-index: var(--z-widget); right: 16px; bottom: 20px; display: flex; gap: 8px; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s; }
  body.mapf-on .artw { opacity: 1; visibility: visible; transform: none; }
  body.mapm-on .artw, body.is-locked .artw { opacity: 0; visibility: hidden; }
  .artw .tocf, .artw .mapf { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 16px; border: 2px solid var(--acc-fill); background: var(--c-bg); color: var(--c-text); font-size: 15px; font-weight: 600; box-shadow: 0 8px 24px var(--c-shadow); cursor: pointer; }
  .artw .tocf { width: 48px; padding: 0; }
  .artw svg { width: 18px; height: 18px; color: var(--acc); }
  .artw .tocf svg { width: 20px; height: 20px; color: var(--c-text); }
}

/* ===== Документы и 404 (08.11.2026) ===== */
.legal__text h2 { font-size: 22px; }
.rent__agree { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.4; color: var(--c-text-2); cursor: pointer; }
.rent__agree input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: #5a8a1f; }
.rent__agree a { color: var(--c-link); text-decoration: underline; text-underline-offset: 2px; }
.rent__agree.is-bad span { color: #c4302b; }
.nf { padding: 56px 0 72px; }
.nf__code { margin: 0; font: 600 clamp(72px, 12vw, 140px)/1 var(--f-display); letter-spacing: -.04em; color: var(--acc-fill); }
.nf__h { margin: 8px 0 0; font: 600 clamp(30px, 4vw, 48px)/1.1 var(--f-display); letter-spacing: -.02em; }
.nf__lead { margin: 14px 0 0; max-width: 620px; font-size: 18px; line-height: 1.5; color: var(--c-text-2); }
.nf__links { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-width: 900px; }
.nf__links a { display: flex; justify-content: space-between; align-items: center; height: 56px; padding: 0 18px; background: var(--c-bg-2); color: var(--c-text); font-size: 15px; font-weight: 500; transition: background-color .2s var(--ease); }
.nf__links a:hover { background: var(--acc-tint); }
.nf__links span { color: var(--c-text-2); }
@media (max-width: 599px) { .nf { padding: 32px 0 48px; } .nf__links { grid-template-columns: minmax(0, 1fr); } }
.rent__err.is-info { color: var(--c-text); }

/* лента TikTok: листается пальцем, мышью и колесом, едет сама (08.11.2026) */
.tk__view.is-js { overflow-x: auto; scrollbar-width: none; cursor: grab; }
.tk__view.is-js::-webkit-scrollbar { display: none; }
.tk__view.is-js .tk__track { animation: none; }
.tk__view.is-drag { cursor: grabbing; user-select: none; }
.tk__view.is-drag .tk__tile { pointer-events: none; }
.tk__tile img { -webkit-user-drag: none; user-select: none; }
@media (max-width: 599px) { .ft__bottom { flex-wrap: nowrap; gap: 0 6px; font-size: 11px; letter-spacing: -.01em; white-space: nowrap; } .ft__legal::before { margin-right: 6px; } }
@media (max-width: 439px) { .ft__bottom .ft__rights { display: none; } }

/* Кнопка «Скачать PDF» на странице ЖК (08.11.2026): видна в первом экране; на телефоне – плавающий виджет справа, пара к «Подобрать ЖК» */
.dl { display: inline-flex; width: fit-content; max-width: 100%; align-items: center; gap: 12px; margin-top: 16px; padding: 10px 16px 10px 12px; border: 1px solid var(--c-line); color: var(--c-text); transition: border-color .2s var(--ease), background .2s var(--ease); }
.dl:hover { border-color: var(--c-text); background: var(--c-bg-2); }
.dl svg { width: 22px; height: 22px; flex: none; color: var(--acc); }
.dl__t { display: grid; font-size: 15px; font-weight: 600; line-height: 1.25; }
.dl__t small { font-size: 12px; font-weight: 400; color: var(--c-text-2); }
.fab-dl { display: none; }
@media (max-width: 833px) {
  .fab-dl { position: fixed; z-index: var(--z-widget); right: 16px; bottom: 20px; display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 14px 0 12px; border: 1px solid var(--c-line); background: var(--c-nav-glass); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); color: var(--c-text); box-shadow: 0 8px 24px var(--c-shadow); opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s; }
  .fab-dl svg { width: 20px; height: 20px; flex: none; color: var(--acc); }
  .fab-dl span { display: grid; line-height: 1.15; }
  .fab-dl b { font-size: 14px; font-weight: 600; }
  .fab-dl small { font-size: 11px; color: var(--c-text-2); }
  body.fab-on .fab-dl { opacity: 1; visibility: visible; transform: none; }
  body.is-locked .fab-dl { opacity: 0; visibility: hidden; }
}

/* Страница вилл /en/villas/ (08.11.2026): карточки сразу под первым экраном */
.villas-page .vl { padding-top: 8px; }
