/* Общая часть сайтов АН, пересобранных с Creatium (05.11.2026): шрифт, сброс, окна, ролики, слайдер,
   просмотр картинок, кнопка «наверх». Оформление самого сайта — в его site.css (ниже в этом же файле). */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/montserrat-400-cyr.woff2) format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/montserrat-400-lat.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/montserrat-500-cyr.woff2) format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/montserrat-500-lat.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/montserrat-700-cyr.woff2) format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/montserrat-700-lat.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }

/* Inter (Дом на набережной): переменный шрифт, один файл на все начертания 100–900 */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/inter-var-cyr.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/inter-var-lat.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
button, input, textarea, select { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
a { color: inherit; }
[hidden] { display: none !important; }
html.is-locked { overflow: hidden; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Окна (вместо модальных окон Creatium) ---- */
.mdl { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto;
  padding: 50px 15px; background: rgba(0, 0, 0, .5); opacity: 0; transition: opacity .3s; -webkit-overflow-scrolling: touch; }
.mdl.is-open { opacity: 1; }
.mdl__panel { position: relative; width: 100%; margin: auto; transform: translateY(12px); transition: transform .3s; }
.mdl.is-open .mdl__panel { transform: none; }
.mdl__x { position: absolute; top: -10px; right: -10px; z-index: 2; width: 30px; height: 30px; border-radius: 50%; background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .25); }
.mdl__x::before, .mdl__x::after { content: ""; position: absolute; left: 7px; top: 14px; width: 16px; height: 2px; background: #000; transform: rotate(45deg); }
.mdl__x::after { transform: rotate(-45deg); }

/* окно-ролик */
.mdl--video .mdl__panel { max-width: 1000px; align-self: center; }
.mdl--video .mdl__frame { position: relative; padding-top: 56.25%; background: #000; }
.mdl--video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* сообщение после заявки / ошибки */
.mdl--msg .mdl__panel { max-width: 410px; align-self: center; background: #fafafa; border-radius: 10px; padding: 34px 25px 30px; text-align: center; }
.mdl--msg .msg__title { font-weight: 700; font-size: 24px; line-height: 1.2; margin-bottom: 12px; }
.mdl--msg .msg__text { font-size: 16px; line-height: 1.5; white-space: pre-line; }
.mdl--msg .msg__ok { margin-top: 22px; min-width: 160px; padding: 13px 24px; border-radius: 25px; color: #fff; background: var(--accent, #10986d); }

/* ---- Ролик YouTube: обложка у нас, плеер по нажатию ---- */
.yt { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #000; cursor: pointer; }
.yt img { width: 100%; height: 100%; object-fit: cover; }
.yt__play { position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; margin: -24px 0 0 -34px; border-radius: 12px;
  background: rgba(33, 33, 33, .8); transition: background .2s; }
.yt__play::after { content: ""; position: absolute; left: 27px; top: 15px; border-style: solid; border-width: 9px 0 9px 16px; border-color: transparent transparent transparent #fff; }
.yt:hover .yt__play { background: #f00; }
.yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---- Слайдер на прокрутке (галерея, менеджеры) ---- */
.sl { position: relative; }
.sl__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior-x: contain; }
.sl__track::-webkit-scrollbar { display: none; }
.sl__slide { flex: 0 0 100%; scroll-snap-align: center; scroll-snap-stop: always; }

/* ---- Просмотр картинок ---- */
.lb { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .88);
  opacity: 0; transition: opacity .25s; touch-action: pan-y; }
.lb.is-open { opacity: 1; }
.lb__img { max-width: calc(100vw - 120px); max-height: calc(100vh - 80px); object-fit: contain; background: #fff; }
.lb__img.is-photo { background: transparent; }
.lb__btn { position: absolute; top: 50%; width: 48px; height: 48px; margin-top: -24px; border-radius: 50%; background: rgba(255, 255, 255, .15); }
.lb__btn::before { content: ""; position: absolute; left: 19px; top: 17px; width: 12px; height: 12px; border: solid #fff; border-width: 0 0 2px 2px; transform: rotate(45deg); }
.lb__prev { left: 16px; }
.lb__next { right: 16px; }
.lb__next::before { left: 15px; transform: rotate(-135deg); }
.lb__x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; }
.lb__x::before, .lb__x::after { content: ""; position: absolute; left: 8px; top: 19px; width: 24px; height: 2px; background: #fff; transform: rotate(45deg); }
.lb__x::after { transform: rotate(-45deg); }
.lb__count { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; color: #fff; font-size: 14px; opacity: .8; }
@media (max-width: 767px) {
  .lb__img { max-width: 100vw; max-height: calc(100vh - 120px); }
  .lb__btn { top: auto; bottom: 10px; margin: 0; }
}

/* ---- Кнопка «наверх» (как на Creatium: слева внизу, полупрозрачная) ---- */
.goup { position: fixed; left: 15px; bottom: 15px; z-index: 900; width: 44px; height: 44px; border-radius: 50%; opacity: 0; visibility: hidden;
  transition: opacity .6s, visibility .6s; }
.goup.is-on { opacity: .5; visibility: visible; }
.goup:hover { opacity: .8; }
.goup svg { width: 44px; height: 44px; display: block; }

/* ---- Карта Яндекса через API (без рекламы виджета) ---- */
.ymap { position: relative; width: 100%; height: 368px; background: rgba(0, 0, 0, .04); }
.ymap__fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: inherit; font-weight: 600; }

/* ---- «Живость» (06.11.2026, как на flatroom.agency; включается Site(live=…), см. kit.js) ---- */
.js-anim .ap { opacity: 0; transform: translateY(28px); }
.js-anim .ap.ap-in { opacity: 1; transform: none; transition: opacity .7s ease, transform .8s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(var(--i, 0) * 80ms); }
.wd { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.wd > span { display: inline-block; }
.js-anim .wd-pending .wd > span { transform: translateY(110%); }
.js-anim .wd-in .wd > span { transform: none; transition: transform .8s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(var(--w, 0) * 60ms); }
.progress > span { display: block; width: 100%; height: 100%; transform-origin: 0 50%; transform: scaleX(var(--sp, 0)); }
@keyframes kitKen { from { transform: scale(1.07); } to { transform: scale(1); } }   /* медленный наезд на фото первого экрана */
@media (prefers-reduced-motion: reduce) { .js-anim .ap, .js-anim .wd-pending .wd > span { opacity: 1 !important; transform: none !important; } }

:root{--brand:#34404f;--brand-dk:#262f3b;--brand-2:#dfe3e9;--brand-soft:#f5f2ee;--accent:#ee8f5a;--accent-dk:#d4733f;--accent-soft:#fdefe5;--ink:#1f2530;--ink-2:#535a66;--ink-3:#8b919b;--bg:#fbfaf8;--line:#ebe6e0;--foot:#1f2530;--plan-bg:#f7f6f4;--plan-blend:multiply;}

/* Сайты в Шушарах (ЖК «Вариант», ЖК «Московское 262»), 08.11.2026 — общий вид; цвета сайта — переменные из build.py.
   Алексей: «угловатый, не особо добро выглядит, цвета приятнее» → мягкие скругления, светлые фоны, округлый шрифт Rubik. */
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(/fonts/rubik-var-cyr.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(/fonts/rubik-var-lat.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }

:root { --sh: 0 18px 40px rgba(28, 34, 64, .09); --sh-sm: 0 6px 18px rgba(28, 34, 64, .06); --r: 28px; --hdr: 76px; }
body { font: 400 17px/1.6 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--ink); background: #fff; -webkit-font-smoothing: antialiased; }
main { display: block; }
section[id] { scroll-margin-top: calc(var(--hdr) + 8px); }
a { text-decoration: none; }
:focus-visible { outline: 3px solid var(--brand-2); outline-offset: 2px; }
.wrap { max-width: 1320px; margin: 0 auto; padding: 0 24px; }
.ico { width: 22px; height: 22px; flex: none; }

/* ---------- кнопки, метки ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 26px; border-radius: 999px;
  font-weight: 600; font-size: 16px; line-height: 1.1; text-align: center; white-space: nowrap; transition: background .2s, color .2s, box-shadow .2s, transform .2s, opacity .2s; }
.btn:active { transform: scale(.98); }
.btn .ico { width: 20px; height: 20px; }
.btn--main { background: var(--brand); color: #fff; box-shadow: 0 8px 20px color-mix(in srgb, var(--brand) 28%, transparent); }
.btn--main:hover { background: var(--brand-dk); }
.btn--ink { background: var(--ink); color: #fff; }
.btn--ink:hover { background: color-mix(in srgb, var(--ink) 85%, #fff); }
.btn--line { background: #fff; color: var(--brand-dk); box-shadow: inset 0 0 0 2px var(--brand-2); }
.btn--line:hover { box-shadow: inset 0 0 0 2px var(--brand); }
.btn--light { background: #fff; color: var(--brand-dk); }
.btn--light:hover { background: var(--brand-soft); }
.btn--lg { height: 58px; padding: 0 32px; font-size: 17px; }
.btn--sm { height: 44px; padding: 0 20px; font-size: 15px; }
.btn.is-off { opacity: .45; }
.chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px 8px 12px; border-radius: 999px; font-weight: 600; font-size: 14px; line-height: 1.2; }
.chip--soft { background: #fff; color: var(--brand-dk); box-shadow: var(--sh-sm); }
.chip .ico { width: 17px; height: 17px; color: var(--accent-dk); }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; letter-spacing: .07em; text-transform: uppercase; color: var(--brand); }
.eyebrow::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); }
.eyebrow--light { color: rgba(255, 255, 255, .88); }
.h2 { margin-top: 14px; font-weight: 700; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -.015em; text-wrap: balance; }

/* ---------- шапка ---------- */
.hdr { position: sticky; top: 0; z-index: 60; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); transition: box-shadow .25s; }
.hdr.is-scrolled { box-shadow: 0 6px 24px rgba(28, 34, 64, .08); }
.hdr__in { max-width: 1320px; height: var(--hdr); margin: 0 auto; padding: 0 24px; display: flex; align-items: center; gap: 20px; }
.logo { display: inline-flex; align-items: center; gap: 11px; color: var(--ink); }
.logo__mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--brand); color: #fff; }
.logo__mark .ico { width: 22px; height: 22px; }
.logo__t { font-weight: 700; font-size: 21px; letter-spacing: -.01em; white-space: nowrap; }
.logo--light { color: #fff; }
.hdr__badge { padding: 6px 12px; border-radius: 999px; background: var(--accent-soft); color: color-mix(in srgb, var(--accent-dk) 70%, var(--ink)); font-weight: 600; font-size: 13px; white-space: nowrap; }
.hdr__nav { display: flex; gap: 26px; margin-left: 12px; }
.hdr__nav a { color: var(--ink-2); font-weight: 500; font-size: 15.5px; white-space: nowrap; transition: color .2s; }
.hdr__nav a:hover { color: var(--brand); }
.hdr__tel { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.25; }
.hdr__tel a { font-weight: 600; font-size: 17px; color: var(--ink); white-space: nowrap; }
.hdr__tel span { font-size: 12.5px; color: var(--ink-3); }
.hdr__call, .hdr__burger { display: none; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-dk); }
.hdr__burger { background: var(--ink); color: #fff; }
.progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; }
.progress > span { background: linear-gradient(90deg, var(--brand), var(--accent)); }
@media (max-width: 1320px) { .hdr__badge { display: none; } .hdr__nav { gap: 20px; margin-left: 4px; } }
@media (max-width: 1080px) { .hdr__nav { display: none; } .hdr__burger { display: grid; } .hdr__tel { margin-left: auto; } }
@media (max-width: 760px) {
  :root { --hdr: 64px; }
  .hdr__in { padding: 0 16px; gap: 10px; }
  .hdr__tel, .hdr__cta { display: none; }
  .hdr__call { display: grid; margin-left: auto; }
  .logo__mark { width: 36px; height: 36px; border-radius: 12px; }
  .logo__t { font-size: 18px; }
}

/* ---------- первый экран ---------- */
.hero { padding-top: 22px; }
.hero__in { max-width: 1320px; margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: 1fr 1.06fr; gap: 22px; }
.hero__text { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 22px;
  padding: 64px 56px; border-radius: 40px; background: var(--brand-soft); isolation: isolate; }
.hero__text::before, .hero__text::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; }
.hero__text::before { width: 360px; height: 360px; right: -140px; top: -150px; background: var(--brand-2); }
.hero__text::after { width: 220px; height: 220px; right: 40px; bottom: -150px; background: var(--accent-soft); }
.hero__h1 { font-weight: 700; font-size: clamp(36px, 4.3vw, 60px); line-height: 1.04; letter-spacing: -.025em; text-wrap: balance; }
.hero__lead { max-width: 33em; font-size: 19px; line-height: 1.55; color: var(--ink-2); }
.hero__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px; margin-top: 6px; }
.hero__note { display: inline-flex; align-items: center; gap: 9px; font-weight: 500; font-size: 15.5px; color: var(--ink-2); }
.hero__note .ico { color: var(--accent-dk); }
.hero__media { position: relative; overflow: hidden; border-radius: 40px; min-height: 540px; background: var(--brand-2); }
.hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: kitKen 1.8s cubic-bezier(.2, .8, .2, 1) both; }
@media (max-width: 960px) {
  .hero__in { grid-template-columns: 1fr; }
  .hero__media { order: -1; min-height: 0; aspect-ratio: 4 / 3; border-radius: 30px; }
  .hero__text { padding: 34px 26px 36px; border-radius: 30px; }
}
@media (max-width: 760px) {
  .hero { padding-top: 10px; }
  .hero__in { padding: 0 16px; gap: 12px; }
  .hero__h1 { font-size: clamp(31px, 8.6vw, 40px); }
  .hero__lead { font-size: 17px; }
  .hero__text { padding: 28px 20px 30px; gap: 18px; }
  .hero__btns .btn { width: 100%; }
}

/* ---------- акция ---------- */
.promo { padding-top: 22px; }
.promo__card { position: relative; overflow: hidden; max-width: 1272px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 22px 32px;
  padding: 26px 30px 26px 34px; border-radius: 34px; background: radial-gradient(120% 160% at 0% 0%, var(--accent-soft) 0%, color-mix(in srgb, var(--accent) 40%, #fff) 50%, color-mix(in srgb, var(--accent) 78%, #fff) 100%); color: var(--ink); }
.promo__kick { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 10px; border-radius: 999px; background: rgba(255, 255, 255, .62); font-weight: 600; font-size: 14px; }
.promo__kick .ico { width: 18px; height: 18px; color: var(--accent-dk); }
.promo__title { margin-top: 12px; font-weight: 700; font-size: clamp(24px, 2.6vw, 34px); line-height: 1.15; letter-spacing: -.01em; }
.tm { display: flex; gap: 8px; }
.tm__u { min-width: 76px; padding: 10px 6px 8px; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 6px 16px rgba(28, 34, 64, .07); }
.tm__u b { display: block; font-weight: 700; font-size: 28px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.tm__u span { font-size: 12.5px; color: var(--ink-2); }
@media (max-width: 1100px) { .promo__card { grid-template-columns: 1fr auto; } .promo__btn { grid-column: 1 / -1; justify-self: start; } }
@media (max-width: 760px) {
  .promo { padding: 12px 16px 0; }
  .promo__card { grid-template-columns: 1fr; padding: 24px 18px 20px; border-radius: 28px; }
  .tm { display: grid; grid-template-columns: repeat(4, 1fr); }
  .tm__u { min-width: 0; }
  .tm__u b { font-size: 24px; }
  .promo__btn { width: 100%; }
}

/* ---------- коротко о доме ---------- */
.stats__in { max-width: 1272px; margin: 22px auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.stat { display: grid; grid-template-columns: 50px 1fr; align-items: start; gap: 2px 14px; padding: 22px; border-radius: var(--r); background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); }
.stat__ic { grid-row: span 2; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 17px; background: var(--brand-soft); color: var(--brand); }
.stat:nth-child(even) .stat__ic { background: var(--accent-soft); color: var(--accent-dk); }
.stat__v { font-weight: 700; font-size: 20px; line-height: 1.3; }
.stat__l { font-size: 14.5px; line-height: 1.45; color: var(--ink-2); }
@media (max-width: 1100px) { .stats__in { grid-template-columns: repeat(2, 1fr); margin-left: 24px; margin-right: 24px; } }
@media (max-width: 400px) { .logo__mark { display: none; } .logo__t { font-size: 17px; } }
@media (max-width: 560px) { .stats__in { grid-template-columns: 1fr; gap: 10px; margin: 12px 16px 0; } .stat { padding: 16px 18px; } }

/* ---------- разделы ---------- */
.sec { padding: 100px 0; }
.sec--tint { margin: 0 14px; border-radius: 44px; background: var(--brand-soft); }
.head { margin-bottom: 42px; max-width: 760px; }
.head--split { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 56px; align-items: end; }
.head__text p { font-size: 18px; color: var(--ink-2); }
.head__text p + p { margin-top: 14px; }
@media (max-width: 900px) { .head--split { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .wrap { padding: 0 16px; }
  .sec { padding: 64px 0; }
  .sec--tint { margin: 0 8px; border-radius: 30px; }
  .sec--tint .wrap { padding: 0 8px; }
  .head { margin-bottom: 28px; }
  .head__text p { font-size: 16.5px; }
}

/* фото */
.ph { position: relative; display: block; overflow: hidden; border-radius: var(--r); background: var(--brand-soft); }
.ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.ph:hover img { transform: scale(1.04); }
.ph__zoom { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--brand); opacity: 0; transform: scale(.8); transition: opacity .25s, transform .25s; }
.ph:hover .ph__zoom, .ph:focus-visible .ph__zoom { opacity: 1; transform: none; }
.photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.photos .ph { aspect-ratio: 4 / 3; }
.photos figcaption { margin-top: 12px; padding: 0 6px; font-size: 15px; color: var(--ink-2); }
@media (max-width: 760px) {
  .photos { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 84%; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 -16px; padding: 0 16px 6px; scrollbar-width: none; }
  .photos::-webkit-scrollbar { display: none; }
  .photos figure { scroll-snap-align: center; }
  .ph__zoom { opacity: 1; transform: none; width: 38px; height: 38px; }
}

/* ---------- каталог: фильтр ---------- */
.flt { margin-bottom: 28px; padding: 26px 28px 22px; border-radius: 32px; background: #fff; box-shadow: var(--sh); }
.flt__row { display: flex; flex-wrap: wrap; gap: 18px 32px; }
.flt__g { display: flex; flex-direction: column; gap: 10px; }
.flt__lab { font-weight: 600; font-size: 14px; color: var(--ink-3); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-f { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 8px 0 16px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line);
  font-weight: 500; font-size: 15px; color: var(--ink); transition: background .2s, box-shadow .2s, color .2s; }
.chip-f small { display: grid; place-items: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 13px; background: var(--brand-soft); font-weight: 600; font-size: 12.5px; color: var(--brand-dk); }
.chip-f:hover:not(:disabled) { box-shadow: inset 0 0 0 1.5px var(--brand); }
.chip-f.is-on { background: var(--brand); color: #fff; box-shadow: none; }
.chip-f.is-on small { background: rgba(255, 255, 255, .22); color: #fff; }
.chip-f:disabled { opacity: .42; cursor: default; }
.flt__row--rng { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px 34px; margin-top: 22px; padding-top: 20px; border-top: 1.5px solid var(--line); }
.rng__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.rng__val { font-size: 14.5px; color: var(--ink-2); white-space: nowrap; }
.rng__val b { color: var(--ink); font-weight: 600; }
.rng { position: relative; height: 30px; }
.rng__track { position: absolute; left: 0; right: 0; top: 13px; height: 5px; border-radius: 3px; background: #e6e8f1; }
.rng__track i { position: absolute; top: 0; bottom: 0; border-radius: 3px; background: var(--brand);
  left: calc(13px + var(--a, 0) * (100% - 26px)); right: calc(13px + (1 - var(--b, 1)) * (100% - 26px)); }
.rng input { position: absolute; left: 0; top: 0; width: 100%; height: 30px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.rng input::-webkit-slider-runnable-track { background: none; border: 0; height: 30px; }
.rng input::-moz-range-track { background: none; border: 0; }
.rng input::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; appearance: none; width: 26px; height: 26px; margin-top: 2px; border-radius: 50%; background: #fff;
  border: 3px solid var(--brand); box-shadow: 0 3px 8px rgba(28, 34, 64, .18); cursor: pointer; }
.rng input::-moz-range-thumb { pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 3px solid var(--brand); box-shadow: 0 3px 8px rgba(28, 34, 64, .18); cursor: pointer; }
.is-flat .rng { opacity: .5; pointer-events: none; }
.flt__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 18px; padding-top: 16px; border-top: 1.5px solid var(--line); }
.flt__found { font-size: 15.5px; color: var(--ink-2); }
.flt__found b { color: var(--ink); font-weight: 600; }
.flt__reset { color: var(--brand); font-weight: 600; font-size: 15px; }
.flt__reset:hover { color: var(--brand-dk); text-decoration: underline; text-underline-offset: 3px; }
.flt__sort { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; }
.flt__sort span { font-size: 14px; color: var(--ink-3); }
.flt__sort select { height: 44px; padding: 0 40px 0 18px; border: 0; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line); font-weight: 500; font-size: 15px; color: var(--ink); cursor: pointer;
  -webkit-appearance: none; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23868ba6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center; }
@media (max-width: 900px) { .flt__row--rng { grid-template-columns: 1fr; gap: 14px; } }
@media (max-width: 760px) {
  .flt { padding: 18px 16px 16px; border-radius: 26px; margin-bottom: 20px; }
  .flt__row { gap: 16px; }
  .chip-f { height: 40px; padding-left: 14px; font-size: 14.5px; }
  .flt__sort { margin-left: 0; width: 100%; }
  .flt__sort select { flex: 1; min-width: 0; }   /* иначе список не сжимается уже своего текста — на 320 страница была 339 */
  .flt__sort span { flex: none; }
}

/* ---------- каталог: карточки ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(262px, 1fr)); gap: 20px; }
.cards.is-loading { min-height: 460px; border-radius: var(--r); background: linear-gradient(100deg, rgba(255, 255, 255, .4) 30%, rgba(255, 255, 255, .9) 50%, rgba(255, 255, 255, .4) 70%) 0 0 / 300% 100%;
  animation: shushShine 1.4s linear infinite; }
@keyframes shushShine { to { background-position: -150% 0; } }
.cards__fail { grid-column: 1 / -1; padding: 32px; border-radius: var(--r); background: #fff; text-align: center; color: var(--ink-2); }
.card { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 18px 18px 20px; border-radius: var(--r); background: #fff; box-shadow: var(--sh-sm); transition: transform .25s, box-shadow .25s; }
.card:hover { transform: translateY(-4px); box-shadow: var(--sh); }
.card__badge { align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--accent-soft); color: color-mix(in srgb, var(--accent-dk) 70%, var(--ink)); font-weight: 600; font-size: 12.5px; }
.card__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.card__top b { font-weight: 700; font-size: 19px; }
.card__top span { font-size: 14px; color: var(--ink-3); white-space: nowrap; }
.card__plan { position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: 20px; background: var(--plan-bg, #f6f6f9); cursor: zoom-in; overflow: hidden; }
.card__plan img { position: absolute; inset: 12px; width: calc(100% - 24px); height: calc(100% - 24px); object-fit: contain; mix-blend-mode: var(--plan-blend, multiply); transition: transform .4s; }
.card__plan:hover img { transform: scale(1.03); }
.card__noplan { font-size: 14px; color: var(--ink-3); }
.card__facts div { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--line); }
.card__facts dt { font-size: 14px; color: var(--ink-3); }
.card__facts dd { margin: 0; font-weight: 500; font-size: 14.5px; text-align: right; }
.card__price { margin-top: 2px; display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.card__sub { margin-top: -8px; font-size: 14px; color: var(--ink-3); }
.card__bonus { padding: 5px 10px; border-radius: 999px; background: var(--brand-soft); color: var(--brand-dk); font-weight: 600; font-size: 13px; white-space: nowrap; cursor: help; }
.card__price b { display: block; font-weight: 700; font-size: 24px; line-height: 1.2; letter-spacing: -.01em; }
.card__price s { font-size: 14px; color: var(--ink-3); }
.card__btn { width: 100%; margin-top: auto; }
.empty { display: grid; justify-items: center; gap: 16px; margin-bottom: 20px; padding: 40px 20px; border-radius: var(--r); background: #fff; text-align: center; color: var(--ink-2); }
.more { margin-top: 28px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 24px; }
.more__all { color: var(--brand); font-weight: 600; font-size: 15px; }
.more__all:hover { color: var(--brand-dk); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) { .cards { grid-template-columns: 1fr; gap: 14px; } }

/* ---------- двор ---------- */
.split { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: center; }
.split__media { aspect-ratio: 4 / 3; border-radius: 40px; }
.split__text p { margin-top: 18px; font-size: 18px; color: var(--ink-2); }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; gap: 26px; } .split__media { border-radius: 30px; } }

/* ---------- расположение ---------- */
.loc { display: grid; grid-template-columns: 1fr 1.15fr; gap: 44px; align-items: stretch; }
.loc__text > p { margin-top: 16px; font-size: 18px; color: var(--ink-2); }
.poi { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 10px; }
.poi__row { display: flex; align-items: center; gap: 14px; padding: 12px 16px 12px 12px; border-radius: 22px; background: #fff; }
.poi__ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 15px; background: var(--accent-soft); color: var(--accent-dk); flex: none; }
.poi__row:nth-child(odd) .poi__ic { background: var(--brand-soft); color: var(--brand); }
.poi__row b { display: block; font-weight: 600; font-size: 12.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3); }
.poi__row b + span { display: block; font-size: 16px; line-height: 1.4; }
.loc__map { position: relative; overflow: hidden; border-radius: 34px; min-height: 480px; background: #fff; }
.loc__map .ymap { position: absolute; inset: 0; height: auto; }
@media (max-width: 900px) { .loc { grid-template-columns: 1fr; gap: 26px; } .loc__map { min-height: 340px; border-radius: 26px; } }

/* ---------- оплата ---------- */
.pay { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pay__card { display: flex; flex-direction: column; gap: 10px; padding: 26px 24px 28px; border-radius: var(--r); background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); transition: box-shadow .25s, transform .25s; }
.pay__card:hover { box-shadow: var(--sh); transform: translateY(-3px); }
.pay__ic { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 8px; border-radius: 18px; background: var(--brand-soft); color: var(--brand); }
.pay__card:nth-child(even) .pay__ic { background: var(--accent-soft); color: var(--accent-dk); }
.pay__card b { font-weight: 700; font-size: 20px; line-height: 1.25; }
.pay__card span { font-size: 15.5px; line-height: 1.5; color: var(--ink-2); }
@media (max-width: 1100px) { .pay { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pay { grid-template-columns: 1fr; gap: 12px; } .pay__card { padding: 20px; } }

/* ---------- заявка ---------- */
#zayavka { padding-top: 0; }
.sec--tint + #zayavka { padding-top: 40px; }   /* в статьях перед формой бывает тонированный блок — без зазора форма к нему прилипала */
.req__box { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px 56px; align-items: center; padding: 60px 60px; border-radius: 44px;
  background: var(--brand); color: #fff; isolation: isolate; }
.req__box::before, .req__box::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; }
.req__box::before { width: 420px; height: 420px; left: -160px; bottom: -220px; background: #fff; opacity: .08; }
.req__box::after { width: 280px; height: 280px; right: -100px; top: -130px; background: #fff; opacity: .1; }
.req__text p { margin-top: 16px; font-size: 18px; color: rgba(255, 255, 255, .88); }
.frm { display: grid; gap: 12px; }
.frm--page .fld { height: 58px; padding: 0 22px; border: 0; border-radius: 20px; background: #fff; font-size: 16.5px; color: var(--ink); }
.frm--page .fld::placeholder { color: var(--ink-3); }
.frm--page .agree { color: rgba(255, 255, 255, .85); }
.frm--page .agree a { color: #fff; }
.frm--page .frm__err { color: #fff; background: rgba(0, 0, 0, .18); }
.agree { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; line-height: 1.45; cursor: pointer; }
.agree input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); flex: none; }
.agree a { text-decoration: underline; text-underline-offset: 2px; }
.frm__err { margin: 0; padding: 8px 12px; border-radius: 12px; font-size: 14px; }
@media (max-width: 900px) { .req__box { grid-template-columns: 1fr; padding: 40px 28px; } }
@media (max-width: 760px) { .req__box { padding: 32px 18px 22px; border-radius: 30px; gap: 24px; } .frm--page .btn { width: 100%; } }

/* ---------- подвал ---------- */
.ftr { margin-top: 0; padding: 64px 0 36px; border-radius: 44px 44px 0 0; background: var(--foot); color: rgba(255, 255, 255, .72); font-size: 15px; }
.ftr__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.25fr .9fr 1.1fr; gap: 32px; }
.ftr__brand p { margin-top: 16px; line-height: 1.5; }
.ftr__cap { display: block; margin-bottom: 12px; font-weight: 600; font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase; color: rgba(255, 255, 255, .45); }
.ftr__tel { display: block; font-weight: 700; font-size: 20px; color: #fff; white-space: nowrap; }
.ftr__muted { display: block; margin-top: 4px; line-height: 1.5; }
.ftr__col a { display: block; margin-bottom: 8px; color: rgba(255, 255, 255, .82); transition: color .2s; }
.ftr__col a:hover { color: #fff; }
.ftr__legal { margin-top: 44px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 13px; line-height: 1.55; color: rgba(255, 255, 255, .5); }
.ftr__legal p + p { margin-top: 8px; }
.ftr__legal a { color: rgba(255, 255, 255, .75); text-decoration: underline; text-underline-offset: 2px; }
.ftr__legal a[href^="tel:"], .ftr__tel, .menu__tel, .hdr__tel a { white-space: nowrap; }
@media (max-width: 1100px) { .ftr__grid { grid-template-columns: 1fr 1fr; } .ftr__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .ftr { padding: 44px 0 28px; border-radius: 30px 30px 0 0; } .ftr__grid { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- окна ---------- */
.mdl { background: rgba(28, 34, 64, .45); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.mdl .mdl__x { top: 14px; right: 14px; width: 42px; height: 42px; background: #f1f2f7; box-shadow: none; }
.mdl .mdl__x::before, .mdl .mdl__x::after { left: 13px; top: 20px; background: var(--ink); }
.mdl--msg .mdl__panel { border-radius: 28px; background: #fff; padding: 36px 28px 30px; }
.mdl--msg .msg__title { font-size: 24px; }
.mdl--msg .msg__text { color: var(--ink-2); }
.mdl--msg .msg__ok { background: var(--brand); font-weight: 600; }

/* заявка */
.mdl--lead .mdl__panel { max-width: 470px; align-self: center; padding: 36px 30px 30px; border-radius: 32px; background: #fff; }
.pop__t { padding-right: 40px; font-weight: 700; font-size: 26px; line-height: 1.2; }
.pop__sub { margin-top: 10px; font-size: 15.5px; color: var(--ink-2); }
.pop__flat { margin-top: 14px; padding: 10px 14px; border-radius: 14px; background: var(--brand-soft); font-size: 14px; line-height: 1.45; }
.frm--pop { margin-top: 22px; gap: 14px; }
.fld-l { display: grid; gap: 6px; }
.fld-l > span { font-weight: 600; font-size: 13.5px; color: var(--ink-2); }
.frm--pop .fld { height: 54px; padding: 0 18px; border: 0; border-radius: 16px; box-shadow: inset 0 0 0 1.5px var(--line); font-size: 16px; color: var(--ink); background: #fff; transition: box-shadow .2s; }
.frm--pop .fld:focus { outline: none; box-shadow: inset 0 0 0 2px var(--brand), 0 0 0 4px var(--brand-2); }
.frm--pop .agree { color: var(--ink-2); }
.frm--pop .agree a { color: var(--brand-dk); }
.frm--pop .frm__err { color: #b42318; background: #fdecea; }
.frm--pop .btn { width: 100%; margin-top: 4px; }

/* квартира */
.mdl--flat .mdl__panel { max-width: 1000px; align-self: center; display: grid; grid-template-columns: 1.05fr 1fr; overflow: hidden; border-radius: 34px; background: #fff; }
.fm__plan { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 34px; background: var(--plan-bg, #f6f6f9); }
.fm__img { display: block; }
.fm__img img { max-height: 540px; width: auto; max-width: 100%; mix-blend-mode: var(--plan-blend, multiply); }
a.fm__img { cursor: zoom-in; }
.fm__note { font-size: 13px; color: var(--ink-3); }
.fm__body { display: flex; flex-direction: column; gap: 16px; padding: 38px 34px 30px; }
.fm__badge { align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--accent-soft); color: color-mix(in srgb, var(--accent-dk) 70%, var(--ink)); font-weight: 600; font-size: 13px; }
.fm__t { padding-right: 40px; font-weight: 700; font-size: 28px; line-height: 1.15; }
.fm__rows { margin: 0; }
.fm__rows div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.fm__rows dt { font-size: 15px; color: var(--ink-3); }
.fm__rows dd { margin: 0; font-weight: 500; font-size: 15px; text-align: right; }
.fm__price b { display: block; font-weight: 700; font-size: 30px; line-height: 1.15; letter-spacing: -.01em; }
.fm__price span { font-size: 14.5px; color: var(--ink-3); }
.fm__btns { display: grid; gap: 10px; }
.fm__foot { font-size: 13.5px; line-height: 1.5; color: var(--ink-3); }
.fm__pick-lab { display: block; margin-bottom: 8px; font-weight: 600; font-size: 13px; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3); }
.fm__floors { display: flex; flex-wrap: wrap; gap: 6px; }
.fm__floor { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 8px 14px; border-radius: 16px; background: #fff;
  box-shadow: inset 0 0 0 1.5px var(--line); text-align: left; transition: box-shadow .2s, background .2s; }
.fm__floor b { font-weight: 600; font-size: 14.5px; }
.fm__floor span { font-size: 12.5px; color: var(--ink-3); }
.fm__floor:hover { box-shadow: inset 0 0 0 1.5px var(--brand); }
.fm__floor.is-on { background: var(--brand); box-shadow: none; color: #fff; }
.fm__floor.is-on span { color: rgba(255, 255, 255, .8); }
.fm__bonus, .pop__bonus { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 9px 12px; border-radius: 14px; background: var(--brand-soft);
  color: var(--brand-dk); font-weight: 600; font-size: 14px; line-height: 1.35; }
.fm__bonus .ico, .pop__bonus .ico { width: 18px; height: 18px; color: var(--accent-dk); }
.pop__bonus[hidden] { display: none; }
@media (max-width: 860px) {
  .mdl--flat .mdl__panel { grid-template-columns: 1fr; border-radius: 28px; }
  .fm__plan { padding: 22px 18px 16px; }
  .fm__img img { max-height: 300px; }
  .fm__body { padding: 24px 20px 22px; }
  .fm__t { font-size: 24px; }
  .mdl--lead .mdl__panel { padding: 30px 20px 22px; border-radius: 28px; }
}

/* меню (телефон) */
.mdl--menu { padding: 0; align-items: stretch; justify-content: flex-end; }
.mdl--menu .mdl__panel { transform: translateX(40px); }
.mdl--menu.is-open .mdl__panel { transform: none; }
.menu { width: min(420px, 100%); min-height: 100%; margin: 0; display: flex; flex-direction: column; padding: 18px 20px 26px; border-radius: 30px 0 0 30px; background: #fff; }
.menu__top { display: flex; justify-content: space-between; align-items: center; }
.menu__x { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #f1f2f7; font-size: 28px; line-height: 1; }
.menu__nav { margin-top: 22px; display: grid; }
.menu__nav a { display: flex; justify-content: space-between; align-items: center; padding: 16px 4px; border-bottom: 1px solid var(--line); font-weight: 600; font-size: 20px; color: var(--ink); }
.menu__nav .ico { color: var(--brand); }
.menu__foot { margin-top: auto; padding-top: 26px; display: grid; gap: 8px; }
.menu__tel { font-weight: 700; font-size: 24px; color: var(--ink); }
.menu__hours { font-size: 14px; color: var(--ink-3); margin-bottom: 8px; }

/* ---------- стрелка «наверх» справа (Jivo — слева, в кабинете Jivo) ---------- */
.goup { left: auto; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center;
  color: var(--ink); background: #fff; box-shadow: 0 8px 24px rgba(28, 34, 64, .16); }
.goup.is-on { opacity: 1; }
.goup:hover { color: var(--brand); }
.goup svg { width: 22px; height: 22px; }
@media (max-width: 760px) { .goup { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: 46px; height: 46px; } }
/* пока открыто наше окно или меню (html.is-locked), Jivo прячется целиком — как на Неве, Токсово, Волхове */
html.is-locked jdiv[class*="globalClass"], html.is-locked jdiv[class*="_orientation"], html.is-locked #jvLabelWrap { display: none !important; }

/* ---------- политика ---------- */
.doc { padding: 48px 0 90px; }
.doc__in { max-width: 860px; }
.doc__crumbs { font-size: 14px; color: var(--ink-3); margin-bottom: 22px; }
.doc__crumbs a { color: var(--brand); }
.doc h1 { font-weight: 700; font-size: clamp(28px, 4vw, 40px); line-height: 1.15; }
.doc h2 { margin-top: 34px; font-weight: 700; font-size: 22px; line-height: 1.3; }
.doc p, .doc li { margin-top: 12px; font-size: 16px; color: var(--ink-2); }
.doc ul, .doc ol { padding-left: 22px; }
.doc a { color: var(--brand-dk); text-decoration: underline; }

/* ---------- «живость» движка: без сдвига первого экрана ---------- */
@media (prefers-reduced-motion: reduce) { .hero__media img { animation: none; } .card:hover, .pay__card:hover { transform: none; } }

/* ---------- статьи (SEO-страницы, 09.11.2026): первый экран поменьше, крошки, «Сейчас в продаже», вопросы, «Читайте также» ---------- */
/* только на широких: на телефоне фото — 4:3 по ширине, и min-height тут растянул бы его вбок (было 627 точек при 390) */
@media (min-width: 961px) { .hero--art .hero__h1 { font-size: clamp(34px, 3.9vw, 54px); } .hero--art .hero__media { min-height: 470px; } }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; font-size: 14px; color: var(--ink-3); }
.crumbs a { color: var(--brand); font-weight: 500; }
.crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.crumbs { flex-wrap: nowrap; }
.crumbs__sep { flex: none; }
.crumbs__cur { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.hero__tel { display: inline-flex; align-items: center; gap: 9px; font-weight: 600; font-size: 18px; color: var(--ink); white-space: nowrap; }
.hero__tel .ico { width: 20px; height: 20px; color: var(--accent-dk); }
.split--rev { grid-template-columns: 1fr 1.15fr; }
.split--rev .split__media { order: 2; }
@media (max-width: 900px) { .split--rev { grid-template-columns: 1fr; } .split--rev .split__media { order: 0; } }

.live__rows { display: grid; gap: 10px; }
.live__row { display: grid; grid-template-columns: minmax(170px, 1.1fr) 1.5fr auto 24px; align-items: center; gap: 18px; padding: 18px 24px;
  border-radius: 22px; background: #fff; box-shadow: var(--sh-sm); transition: box-shadow .25s, transform .25s; }
.live__row:hover { box-shadow: var(--sh); transform: translateY(-2px); }
.live__t { font-weight: 700; font-size: 19px; line-height: 1.25; }
.live__m { font-size: 16px; color: var(--ink-2); }
.live__p { font-weight: 700; font-size: 18px; color: var(--brand-dk); white-space: nowrap; text-align: right; }
.live__row .ico { width: 22px; height: 22px; color: var(--accent-dk); }
.live__note { max-width: 46em; font-size: 17px; color: var(--ink-2); }
.live__btn { margin-top: 24px; }
@media (max-width: 600px) {
  .live__row { grid-template-columns: 1fr auto; gap: 4px 12px; padding: 16px 18px; border-radius: 20px; }
  .live__t { grid-area: 1 / 1; font-size: 17px; }
  .live__p { grid-area: 1 / 2; font-size: 16px; }
  .live__m { grid-area: 2 / 1 / 3 / 3; font-size: 14.5px; }
  .live__row .ico { display: none; }
  .live__btn { width: 100%; }
}

.pay.pay--3 { grid-template-columns: repeat(3, 1fr); }
.pay.pay--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px) { .pay.pay--3, .pay.pay--2 { grid-template-columns: 1fr; } }

.faq { display: grid; gap: 12px; max-width: 920px; }
.faq__i { padding: 0 24px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); }
.faq__i summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; font-weight: 600; font-size: 18px;
  line-height: 1.35; cursor: pointer; list-style: none; }
.faq__i summary::-webkit-details-marker { display: none; }
.faq__i summary::after { content: "+"; display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%;
  background: var(--brand-soft); color: var(--brand); font-weight: 400; font-size: 24px; line-height: 1; transition: transform .25s; }
.faq__i[open] summary::after { transform: rotate(45deg); }
.faq__i p { margin: 0; padding: 0 0 22px; max-width: 70ch; font-size: 16.5px; color: var(--ink-2); }
.sec--tint .faq__i { box-shadow: none; }
@media (max-width: 560px) { .faq__i { padding: 0 18px; } .faq__i summary { font-size: 16.5px; padding: 17px 0; } }

.also { max-width: 920px; margin-top: 44px; }
.also__t { display: block; margin-bottom: 14px; font-weight: 600; font-size: 13px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-3); }
.also__list { display: flex; flex-wrap: wrap; gap: 10px; }
.also__list a { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border-radius: 999px; background: #fff;
  box-shadow: inset 0 0 0 1.5px var(--line); font-weight: 500; font-size: 15px; line-height: 1.3; color: var(--brand-dk); transition: box-shadow .2s; }
.also__list a:hover { box-shadow: inset 0 0 0 1.5px var(--brand); }
.also__list .ico { width: 16px; height: 16px; flex: none; color: var(--accent-dk); }

.ftr__pages { margin-top: 36px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .12); }
.ftr__pages div { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.ftr__pages a { color: rgba(255, 255, 255, .82); transition: color .2s; }
.ftr__pages a:hover { color: #fff; }
.ftr__pages + .ftr__legal { margin-top: 24px; }

/* узкие телефоны (320–360): длинные слова в заголовках («Ленсоветовском») не помещались — чуть мельче и перенос внутри
   слова как последнее средство (только если слово не влезает в строку целиком) */
.hero__h1, .h2 { overflow-wrap: break-word; }
@media (max-width: 360px) { .hero__h1 { font-size: 28px; } .h2 { font-size: 26px; } }

/* длинный логотип («ЖК в Ленсоветовском»): плашка «сдан» не помещалась — кнопка звонка вылезала за край на 11–75 точек
   (замер 09.11 на 1081–1920); без плашки и с «бургером» до 1240 — с запасом */
.hdr--long .hdr__badge { display: none; }
@media (max-width: 1240px) { .hdr--long .hdr__nav { display: none; } .hdr--long .hdr__burger { display: grid; } }
@media (max-width: 760px) { .sec--tint + #zayavka { padding-top: 24px; } }
/* документ (политика) на узких телефонах: «конфиденциальности» в заголовке не помещалась на 320 (09.11) */
.doc h1, .doc h2 { overflow-wrap: break-word; }
@media (max-width: 360px) { .doc h1 { font-size: 24px; } }
/* шапка с пятью пунктами меню (Южная Заря): на 1081–1240 кнопка звонка вылезала на 5 точек — «бургер» до 1240 (плашка остаётся) */
@media (max-width: 1240px) { .hdr--b1240 .hdr__nav { display: none; } .hdr--b1240 .hdr__burger { display: grid; } }
/* 320–380: длинные большие кнопки («Записаться на просмотр») не помещались и обрезались краем блока (09.11) */
@media (max-width: 380px) { .btn--lg { height: auto; min-height: 54px; padding: 12px 18px; font-size: 16px; line-height: 1.25; white-space: normal; text-align: center; } }

/* 09.11 вечер — по отзыву проверяющего (ЮЗ, ПК) */
.cta-strip { display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; padding: 34px 40px; border-radius: 34px; background: #fff; box-shadow: var(--sh-sm); }
.cta-strip .h2 { margin-top: 0; font-size: clamp(24px, 2.4vw, 34px); }
.cta-strip p { margin-top: 10px; max-width: 40em; font-size: 17px; color: var(--ink-2); }
.cta-strip .btn { flex: none; }
.sec--cta { padding: 60px 0; }
@media (max-width: 900px) { .cta-strip { flex-direction: column; align-items: flex-start; padding: 26px 22px; border-radius: 28px; } .cta-strip .btn { width: 100%; } }
.hero--art .crumbs { max-width: 100%; }
@media (max-width: 340px) { .hero__h1 { font-size: 26px; } }
.doc__table { margin: 16px 0 0; border-top: 1px solid var(--line); }
.doc__table > div { display: grid; grid-template-columns: minmax(170px, 1fr) 2fr; gap: 4px 24px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.doc__table dt { font-weight: 600; font-size: 15px; color: var(--ink); }
.doc__table dd { margin: 0; font-size: 16px; color: var(--ink-2); }
@media (max-width: 600px) { .doc__table > div { grid-template-columns: 1fr; } }

/* ЖК «Южная Заря» (v3, 09.11.2026): блоки, которых нет у «Варианта» и «ЖК в Ленсоветовском» (общий вид — shushary/site.css). */
.h3 { font-weight: 700; font-size: clamp(21px, 2vw, 26px); line-height: 1.2; }
.nb { white-space: nowrap; }
.linklike { color: var(--brand); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.menu__city { margin-top: 6px; font-size: 14px; color: var(--ink-3); }

/* первый экран: две кнопки */
.hero__btns .btn--line { background: transparent; }

/* о проекте: текст + коллаж */
.about { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center; }
.about__text > p { margin-top: 16px; font-size: 17.5px; color: var(--ink-2); }
.about__text > p:first-of-type { margin-top: 20px; }
.about__nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 26px; }
.about__nums div { padding: 16px; border-radius: 22px; background: var(--brand-soft); }
.about__nums b { display: block; font-weight: 700; font-size: 34px; line-height: 1; color: var(--brand); }
.about__nums span { display: block; margin-top: 8px; font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.about__media { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.about__ph { aspect-ratio: 4 / 3; }
.about__ph--wide { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
@media (max-width: 960px) { .about { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 520px) { .about__nums { grid-template-columns: 1fr 1fr 1fr; gap: 8px; } .about__nums div { padding: 12px; } .about__nums b { font-size: 28px; } }

/* расположение: вкладки */
.tabs-box { padding: 10px; border-radius: 34px; background: #fff; box-shadow: var(--sh-sm); }
.tabs-box__tabs { display: flex; gap: 6px; padding: 6px; border-radius: 999px; background: var(--brand-soft); width: max-content; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.tabs-box__tabs::-webkit-scrollbar { display: none; }
.tabs-box__tab { padding: 10px 20px; border-radius: 999px; font-weight: 600; font-size: 15px; color: var(--ink-2); white-space: nowrap; transition: background .2s, color .2s; }
.tabs-box__tab.is-on { background: #fff; color: var(--ink); box-shadow: 0 3px 10px rgba(28, 34, 64, .08); }
.tabs-box__pane { display: grid; grid-template-columns: 1fr 1.05fr; gap: 36px; align-items: center; padding: 26px 18px 18px 22px; }
.tabs-box__pane[hidden] { display: none; }
.tabs-box__text p { margin-top: 12px; font-size: 17px; color: var(--ink-2); }
.tabs-box__ph { aspect-ratio: 4 / 3; border-radius: 26px; }
.poi--yz { margin-top: 20px; gap: 0; }
.poi--yz .poi__row { padding: 12px 0; border-radius: 0; background: none; border-bottom: 1px solid var(--line); gap: 16px; }
.poi--yz .poi__row:last-child { border-bottom: 0; }
.poi__time { flex: none; min-width: 84px; font-weight: 700; font-size: 13.5px; color: var(--accent-dk); }
.poi--yz .poi__row span + span { font-size: 15.5px; }
.yz-map { margin-top: 26px; }
.yz-map__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; margin-bottom: 14px; }
.yz-map__head p { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; color: var(--ink-2); }
.yz-map__head .ico { color: var(--accent-dk); width: 20px; height: 20px; }
.yz-map .loc__map { min-height: 440px; }
@media (max-width: 900px) { .tabs-box__pane { grid-template-columns: 1fr; gap: 20px; padding: 20px 10px 10px; } .tabs-box { border-radius: 28px; } }

/* каталог */
.cat-top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; margin-bottom: 26px; }
.cat-top .head { margin-bottom: 0; }
.seg { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); }
.seg[hidden] { display: none; }
.seg__b { padding: 10px 20px; border-radius: 999px; font-weight: 600; font-size: 15px; color: var(--ink-2); }
.seg__b.is-on { background: var(--brand); color: #fff; }
.flt--yz .flt__row { align-items: flex-end; justify-content: space-between; }
.flt--yz .flt__g--chips { flex-direction: row; align-items: center; gap: 12px; flex-wrap: wrap; }
.flt__row--in { margin-top: 16px; padding-top: 16px; border-top: 1.5px solid var(--line); justify-content: flex-start !important; align-items: center !important; gap: 14px 28px; }
.frange { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.frange input { width: 104px; height: 42px; padding: 0 14px; border: 0; border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--line); font-size: 15px; color: var(--ink); background: #fff; }
.frange input:focus { outline: none; box-shadow: inset 0 0 0 2px var(--brand); }
.frange i { font-style: normal; color: var(--ink-3); }
.chip-f:disabled { opacity: .4; }
.card--yz .card__top b { font-size: 17px; }
.card__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--ink-2); }
.card--yz .card__btn + .card__btn { margin-top: -4px; }
.card--yz .card__price s { display: block; font-size: 14px; color: var(--ink-3); }
.chessbox { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 22px; align-items: start; }
.chessbox[hidden] { display: none; }
.chessbox__main { min-width: 0; padding: 20px; border-radius: 30px; background: #fff; box-shadow: var(--sh-sm); overflow-x: auto; }
.chessbox__secs { margin-bottom: 16px; }
.chess { display: grid; gap: 5px; min-width: max-content; }
.chess__row { display: grid; grid-template-columns: 54px repeat(var(--cols, 8), 54px); gap: 5px; }
.chess__fl { display: grid; place-items: center end; padding-right: 8px; font-weight: 700; font-size: 14px; color: var(--ink-2); }
.chess__fl span { font-weight: 400; font-size: 11px; color: var(--ink-3); margin-left: 2px; }
.cell { display: grid; place-items: center; align-content: center; gap: 1px; height: 46px; border-radius: 12px; background: var(--accent-soft); color: var(--ink); transition: transform .15s, background .15s; }
.cell:hover { transform: scale(1.06); }
.cell__n { font-weight: 700; font-size: 13.5px; line-height: 1; }
.cell__a { font-size: 10.5px; color: var(--ink-2); line-height: 1; }
.cell.is-sold { background: #eceef1; color: #a5abb5; }
.cell.is-sold .cell__a { color: #b8bdc5; }
.cell.is-dim { opacity: .45; }
.cell.is-hit { box-shadow: inset 0 0 0 2px var(--accent); }
.cell.is-sel { background: var(--brand); color: #fff; opacity: 1; }
.cell.is-sel .cell__a { color: rgba(255, 255, 255, .8); }
.cell.is-empty { background: transparent; }
.legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px; font-size: 13.5px; color: var(--ink-2); }
.legend span { display: inline-flex; align-items: center; gap: 8px; }
.sw { width: 16px; height: 16px; border-radius: 5px; display: inline-block; }
.sw--free { background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.sw--sel { background: var(--brand); }
.sw--sold { background: #eceef1; }
.chessbox__flat { position: sticky; top: calc(var(--hdr) + 16px); padding: 22px; border-radius: 30px; background: #fff; box-shadow: var(--sh-sm); display: grid; gap: 12px; }
.fm__eyebrow { font-size: 13.5px; color: var(--ink-3); }
.fm__planbtn { display: grid; place-items: center; aspect-ratio: 1 / 1; padding: 10px; border-radius: 20px; background: var(--plan-bg); cursor: zoom-in; }
.fm__planbtn img { max-height: 100%; width: auto; max-width: 100%; mix-blend-mode: var(--plan-blend, multiply); }
.chessbox__flat .fm__price span, .mdl--flat .fm__price span { display: block; font-size: 13.5px; color: var(--ink-3); }
.chessbox__flat .fm__price s, .mdl--flat .fm__price s { display: block; font-size: 14px; color: var(--ink-3); }
.calc__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: -6px; }
.calc__chips .chip-f { padding: 0 18px; }
@media (max-width: 1100px) { .chessbox { grid-template-columns: 1fr; } .chessbox__flat { position: static; } }

/* отделка */
.fin { display: grid; grid-template-columns: 1fr 1.05fr; gap: 44px; align-items: center; }
.fin__text > p { margin-top: 16px; font-size: 17.5px; color: var(--ink-2); }
.fin__list { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 10px; }
.fin__list li { position: relative; padding: 12px 16px 12px 44px; border-radius: 18px; background: #fff; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.fin__list li::before { content: ""; position: absolute; left: 16px; top: 17px; width: 14px; height: 14px; border-radius: 50%; background: var(--accent-soft); box-shadow: inset 0 0 0 4px var(--accent); }
.fin__list b { color: var(--ink); }
.fin__media { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fin__media .ph { aspect-ratio: 4 / 3; }
@media (max-width: 960px) { .fin { grid-template-columns: 1fr; gap: 26px; } }

/* покупка: тёмная карточка ипотеки и баннер скидки */
.pay__card--dark { background: var(--brand); box-shadow: none; color: #fff; }
.pay__card--dark .pay__ic { background: rgba(255, 255, 255, .12); color: #fff; }
.pay__card--dark span { color: rgba(255, 255, 255, .82); }
.pay__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.pay__tags span { padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: 13px; font-weight: 600; color: #fff !important; }
.yz-sale { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 28px; margin-top: 22px; padding: 26px 30px; border-radius: 30px;
  background: radial-gradient(120% 160% at 0% 0%, var(--accent-soft) 0%, color-mix(in srgb, var(--accent) 40%, #fff) 50%, color-mix(in srgb, var(--accent) 78%, #fff) 100%); }
.yz-sale__t { font-weight: 700; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.2; }
.yz-sale__s { margin-top: 6px; font-size: 15px; color: var(--ink-2); }
@media (max-width: 760px) { .yz-sale { padding: 22px 18px; border-radius: 26px; } .yz-sale .btn { width: 100%; } }

/* заявка */
.req__office { margin-top: 22px; display: grid; gap: 4px; font-size: 15.5px; color: rgba(255, 255, 255, .85); }
.req__office a { color: #fff; font-weight: 700; font-size: 22px; text-decoration: none; }
.fld-l--light > span { color: rgba(255, 255, 255, .85); }
.req__interest { font-size: 14.5px; color: rgba(255, 255, 255, .85); }
.req__interest b { color: #fff; font-weight: 600; }
.frm__ok { margin: 0; font-size: 13px; line-height: 1.45; color: var(--ink-3); }
.frm__ok a { color: var(--brand-dk); text-decoration: underline; }
.frm__ok--light, .frm__ok--light a { color: rgba(255, 255, 255, .8); }

/* подвал: ссылки на статьи */
.ftr__grid--yz { grid-template-columns: 1.3fr .9fr 1.3fr 1fr; }
.ftr__more summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; margin-bottom: 10px; cursor: pointer; color: rgba(255, 255, 255, .9); font-weight: 600; }
.ftr__more summary::-webkit-details-marker { display: none; }
.ftr__more summary .ico { width: 16px; height: 16px; transform: rotate(90deg); transition: transform .2s; }
.ftr__more[open] summary .ico { transform: rotate(-90deg); }
.ftr__more ul { list-style: none; margin: 0 0 12px; padding: 0; }
.ftr__more li a { display: block; margin-bottom: 8px; color: rgba(255, 255, 255, .78); font-size: 14.5px; }
@media (max-width: 1100px) { .ftr__grid--yz { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ftr__grid--yz { grid-template-columns: 1fr; } }

/* ===== страницы брата (акции, политика, статьи): его разметка, наше оформление ===== */
.yz-page { padding-bottom: 20px; }
.yz-page .section { padding: 72px 0; }
.yz-page .section-surface { margin: 0 14px; border-radius: 44px; background: var(--brand-soft); }
.yz-page .wrap { max-width: 1320px; margin: 0 auto; padding: 0 24px; }
.yz-page .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }
.yz-page .two-col-middle { align-items: center; }
.yz-page .eyebrow { margin-bottom: 12px; }
.yz-page h1 { font-weight: 700; font-size: clamp(32px, 4.2vw, 54px); line-height: 1.06; letter-spacing: -.02em; margin: 6px 0 16px; text-wrap: balance; }
.yz-page h2 { font-weight: 700; font-size: clamp(26px, 3vw, 40px); line-height: 1.1; letter-spacing: -.015em; margin-bottom: 14px; text-wrap: balance; }
.yz-page h3 { font-weight: 700; font-size: 20px; line-height: 1.25; margin-bottom: 8px; }
.yz-page .lead, .yz-page p { font-size: 17px; color: var(--ink-2); }
.yz-page p + p, .yz-page .lead + .lead { margin-top: 12px; }
.yz-page .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.yz-page .btn { display: inline-flex; align-items: center; justify-content: center; height: 52px; padding: 0 26px; border-radius: 999px; font-weight: 600; font-size: 16px; text-decoration: none; }
.yz-page .btn-accent { background: var(--brand); color: #fff; }
.yz-page .btn-ghost { box-shadow: inset 0 0 0 2px var(--brand-2); color: var(--brand-dk); }
.yz-page .btn-white { background: #fff; color: var(--brand-dk); }
.yz-page .btn-outline { box-shadow: inset 0 0 0 2px var(--brand-2); color: var(--brand-dk); }
.yz-page .btn-block { width: 100%; }
.yz-page .btn-lg { height: 58px; padding: 0 32px; }
.yz-page .poi { list-style: none; margin: 18px 0 0; padding: 0; }
.yz-page .poi li { display: flex; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 15.5px; color: var(--ink-2); }
.yz-page .poi-time { min-width: 84px; font-weight: 700; font-size: 13.5px; color: var(--accent-dk); }
.yz-page .pay-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin-top: 22px; }
.yz-page .pay { display: block; padding: 24px; border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); text-decoration: none; color: inherit; }
.yz-page a.pay:hover, .yz-page .rel-card:hover { box-shadow: var(--sh); }
.yz-page .pay p { font-size: 15.5px; }
.yz-page .sale-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 24px; padding: 26px 30px; border-radius: 30px;
  background: radial-gradient(120% 160% at 0% 0%, var(--accent-soft) 0%, color-mix(in srgb, var(--accent) 40%, #fff) 50%, color-mix(in srgb, var(--accent) 78%, #fff) 100%); }
.yz-page .sale-title { font-weight: 700; font-size: 24px; color: var(--ink); }
.yz-page .sale-sub { margin-top: 6px; }
.yz-page img { border-radius: 26px; }
.yz-page .panel-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.yz-page .fin-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 22px; }
.yz-page .fin-row img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.yz-page .lead-form { display: grid; gap: 10px; padding: 28px; border-radius: 32px; background: #fff; box-shadow: var(--sh); }
.yz-page .lead-form label { font-weight: 600; font-size: 13.5px; color: var(--ink-2); }
.yz-page .lead-form input:not(.honeypot) { height: 54px; padding: 0 18px; border: 0; border-radius: 16px; box-shadow: inset 0 0 0 1.5px var(--line); font-size: 16px; color: var(--ink); }
.yz-page .honeypot, .yz-page .form-done, .yz-page .is-hidden { display: none !important; }
.yz-page .interest { font-size: 14.5px; }
.yz-page .form-note { font-size: 13px; color: var(--ink-3); }
.yz-page .form-note a { color: var(--brand-dk); }
.yz-page .frm__err { color: #b42318; background: #fdecea; }
.yz-page .office p { margin-top: 4px; font-size: 15.5px; }
.yz-page .phone-lg { font-weight: 700; font-size: 22px; color: var(--ink); text-decoration: none; }
.yz-page .crumbs { padding-top: 34px; font-size: 14px; color: var(--ink-3); }
.yz-page .crumbs a, .yz-page .back-btn { color: var(--brand); }
.yz-page .back-btn { display: inline-flex; margin-top: 18px; font-weight: 600; }
.yz-page .countdown { display: flex; align-items: center; gap: 8px; margin: 14px 0; }
.yz-page .cd-unit { min-width: 70px; padding: 10px 6px; border-radius: 18px; background: #fff; text-align: center; box-shadow: 0 6px 16px rgba(28, 34, 64, .07); }
.yz-page .cd-num { display: block; font-weight: 700; font-size: 26px; color: var(--ink); }
.yz-page .cd-label { font-size: 12px; color: var(--ink-2); }
.yz-page .cd-sep { color: var(--ink-3); }
.yz-page .sale-card { padding: 30px; border-radius: 34px; background: #fff; box-shadow: var(--sh); }
.yz-page .terms { margin-top: 16px; display: grid; gap: 0; }
.yz-page .terms > * { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.yz-page .disclaimer { margin-top: 14px; font-size: 13px; color: var(--ink-3); }
.yz-page table { width: 100%; border-collapse: collapse; }
.yz-page td, .yz-page th { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: left; font-size: 15px; }
.yz-page--doc .wrap, .yz-page--doc .page { max-width: 880px; }
.yz-page--doc h1 { margin-top: 30px; font-size: clamp(28px, 3.6vw, 40px); }
.yz-page--doc h2 { margin-top: 30px; font-size: 22px; }
.yz-page--doc p, .yz-page--doc li { font-size: 16px; color: var(--ink-2); }
@media (max-width: 900px) {
  .yz-page .two-col { grid-template-columns: 1fr; gap: 24px; }
  .yz-page .section { padding: 52px 0; }
  .yz-page .section-surface { margin: 0 8px; border-radius: 30px; }
  .yz-page .wrap { padding: 0 16px; }
}

/* ---------- «Акции» в новом оформлении (09.11.2026): тексты и метки брата, наши блоки ---------- */
.sale-top { padding: 40px 0 72px; }
.sale-top .crumbs { margin-bottom: 18px; }
.sale-top__h1 { font-weight: 700; font-size: clamp(34px, 3.9vw, 54px); line-height: 1.05; letter-spacing: -.02em; }
.sale-top__none { margin-top: 16px; max-width: 40em; font-size: 18px; color: var(--ink-2); }
.sale-top__none a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.sale { margin-top: 28px; display: grid; gap: 16px; }
.sale .sale__card { width: 100%; max-width: none; grid-template-columns: 1fr auto; }
.sale__body { display: grid; grid-template-columns: 1fr 1.1fr; gap: 24px 56px; align-items: start; padding: 30px 34px; border-radius: 34px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); }
.sale__body p { font-size: 17px; color: var(--ink-2); }
.sale__contact { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.sale__contact a { font-weight: 700; font-size: 20px; color: var(--ink); white-space: nowrap; }
.sale__terms > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.sale__terms > div:first-child { padding-top: 0; }
.sale__terms span { color: var(--ink-2); }
.sale__terms b { color: var(--ink); white-space: nowrap; }
.sale__note { margin-top: 12px; font-size: 13px; color: var(--ink-3); }
@media (max-width: 900px) { .sale .sale__card { grid-template-columns: 1fr; } .sale__body { grid-template-columns: 1fr; padding: 24px 20px; border-radius: 28px; } }
@media (max-width: 760px) { .sale-top { padding: 22px 0 48px; } }
/* 320: три плитки цифр «О проекте» в ряд были шире колонки и раздвигали раздел до 355 точек (09.11) */
@media (max-width: 960px) { .about { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 380px) { .about__nums { grid-template-columns: 1fr; } }
/* 320: «3-комнатная · 101,2 м²» и «№ …» в одну строку не помещались — карточка была шире экрана (09.11) */
.card--yz .card__top { flex-wrap: wrap; row-gap: 2px; }
.card--yz .card__top b { min-width: 0; }
@media (max-width: 600px) { .cards { grid-template-columns: minmax(0, 1fr); } }   /* колонка не шире экрана (было 339 при 320) */
.sale__terms b { margin-left: auto; }   /* сумма — справа и при переносе на вторую строку (на 320–360 строки разъезжались) */
