/*!************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/etalon.css ***!
  \************************************************************************************************************************************************************************************************************************************************************/
/* A.85 §7.1 (A.85b): полный CSS эталона макета v13.51.
   Собран инструментально из инлайн-стилей всех 433 страниц архива владельца
   (data/a85-draft/extract-css.py); при конфликтах версий одного класса на
   разных страницах побеждают главные страницы (zhk-radost, index,
   kvartira-card, kvartiry-index, zastroyschiki-index, sravnenie, izbrannoe).
   Подключён ПЕРЕД globals.css/mockup.css: классы движка в приоритете каскада,
   стили макета работают для новой/сверяемой вёрстки (.zhkp-*, .apt-*, .dev-*,
   .crumbs, .brand-band и т.д.). Переменные :root эталона (--bg, --accent,
   --text-2 …) дополняют тему движка (имена не пересекаются, кроме --container
   и --radius-pill со идентичными значениями). */
:root {
  --accent: #0A6CFF;
  --accent-hover: #0057D9;
  --accent-soft: #EAF2FF;
  --amber: #B45309;
  --amber-bg: #FEF3E2;
  --bg: #FFFFFF;
  --border: #E6E4EE;
  --border-strong: #A9B4C6;
  --container: 1280px;
  --green: #16A34A;
  --navy: #0B1B33;
  --radius-l: 16px;
  --radius-m: 10px;
  --radius-pill: 999px;
  --shadow-card: 0 1px 2px rgba(11,27,51,.06),0 8px 24px rgba(11,27,51,.08);
  --shadow-float: 0 12px 40px rgba(11,27,51,.22);
  --surface: #F6F5F9;
  --text: #0B1B33;
  --text-2: #5F6B7A;
  --text-3: #8A94A6;
}

#list .kv-note,#list .kv-disclaimer,#kvShown,#kvEmpty { order:9999 }
#mapAll { height:calc(100vh - 210px);min-height:520px;border-radius:18px;border:1px solid var(--line,#E6E4EE);z-index:1 }
#mortgage input[type=range] { --p:50%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;height:24px }
#mortgage input[type=range]::-moz-range-progress { height:6px;border-radius:3px;background:var(--accent) }
#mortgage input[type=range]::-moz-range-thumb { width:16px;height:16px;border-radius:50%; background:#fff;border:2px solid var(--accent);cursor:grab }
#mortgage input[type=range]::-moz-range-track { height:6px;border-radius:3px;background:#E2E8F2 }
#mortgage input[type=range]::-webkit-slider-runnable-track { height:6px;border-radius:3px; background:linear-gradient(90deg,var(--accent) var(--p),#E2E8F2 var(--p)) }
#mortgage input[type=range]::-webkit-slider-thumb { -webkit-appearance:none;width:20px;height:20px;margin-top:-7px; border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px rgba(11,27,51,.25);cursor:-webkit-grab;cursor:grab }
#p404cards-note[style*="none"] + .p404-cards { margin-top:26px }
#showMoreGrid.smg-empty .btn-outline,#showMoreGrid.smg-empty .hint { display:none }
* { margin:0;padding:0;box-sizing:border-box }
.ac-meta { font-size:12.5px;color:var(--text-3);margin-top:auto }
.ac-tag { font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:3px 8px;align-self:flex-start }
.ad-badge-mark { position:absolute;top:12px;right:12px; font-size:10.5px;font-weight:800;letter-spacing:.06em; background:rgba(11,27,51,.72);color:#fff;padding:3px 8px;border-radius:6px; }
.ad-banner { margin:8px 0 0;border:1px dashed #B9C4D6;border-radius:var(--radius-l); background:#F1F4FA; padding:26px;display:flex;align-items:center;gap:20px; }
.ad-banner .ab-desc { font-size:13.5px;color:var(--text-2) }
.ad-banner .ab-mark { font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;white-space:nowrap }
.ad-banner .ab-title { font-size:18px;font-weight:800;color:var(--navy) }
.af-chip { display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--navy);border:none;border-radius:999px;padding:6px 8px 6px 13px;font:inherit;font-size:13px;font-weight:600 }
.af-chip button { border:none;background:none;cursor:pointer;color:var(--text-3);font-size:14px;line-height:1;padding:2px 4px;border-radius:50% }
.af-chip button:hover { color:#E5484D }
.af-save { margin-left:auto;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;font-weight:700;color:var(--navy);cursor:pointer }
.af-save.on { border-color:var(--green);color:var(--green) }
.af-save:hover { border-color:var(--accent);color:var(--accent) }
.apt-fact { padding:12px 14px }
.apt-fact .k { font-size:12px;color:var(--text-3) }
.apt-fact .v { font-size:14.5px;font-weight:700;margin-top:2px }
.apt-fact:nth-child(odd) { border-right:1px solid var(--border) }
.apt-facts { display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;border:1px solid var(--border);border-radius:var(--radius-m);overflow:hidden;margin-top:16px }
.apt-hero { display:grid;grid-template-columns:7fr 5fr;grid-gap:24px;gap:24px;align-items:start }
.apt-plan-sec { display:block;max-width:780px }
.apt-price-badge { display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#15803D;background:#E7F6EC;border:1px solid #CDEEDA;border-radius:var(--radius-pill);padding:3px 10px }
.apt-price-box { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:22px 24px }
.apt-price-main { display:flex;align-items:baseline;gap:12px;flex-wrap:wrap }
.apt-price-main .meter { font-size:14px;color:var(--text-3) }
.apt-price-main .num-big { font-size:30px;font-weight:800;letter-spacing:-.01em }
.apt-price-old { font-size:14px;color:var(--text-3);text-decoration:line-through }
.apt-sim { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px }
.apt-sim .plan { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;display:flex;flex-direction:column }
.apt-sim .plan-img { background:#fff;border-bottom:1px solid var(--border);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:10px }
.apt-sim .plan-img img { width:100%;height:100%;object-fit:contain;display:block }
.apt-table { width:100%;border-collapse:collapse;font-size:13.5px }
.apt-table .a { color:var(--text-2);white-space:nowrap }
.apt-table .f { color:var(--text-2);white-space:nowrap }
.apt-table .go { width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff; display:inline-flex;align-items:center;justify-content:center;border:0; }
.apt-table .p { font-weight:800;color:var(--navy);text-align:right;white-space:nowrap }
.apt-table .r { font-weight:700;white-space:nowrap }
.apt-table a { color:var(--accent);font-weight:600;font-size:13px;white-space:nowrap }
.apt-table tbody tr { cursor:pointer;transition:background .12s ease }
.apt-table tbody tr:hover { background:var(--accent-soft) }
.apt-table td { padding:7px 8px;border-bottom:1px solid var(--border) }
.apt-table tr:last-child td { border-bottom:0 }
.apt-zhk-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);padding:18px 20px;display:flex;gap:16px;align-items:center }
.apt-zhk-card img { width:88px;height:66px;object-fit:cover;border-radius:var(--radius-m);flex:none }
.article-card { border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;background:#fff;display:flex;flex-direction:column }
.article-card .ac-body { padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1 1 }
.article-card h3 { font-size:16px;font-weight:700;color:var(--navy);line-height:1.35;letter-spacing:-.01em }
.article-card img { width:100%;height:170px;object-fit:cover;display:block }
.article-card:hover { box-shadow:0 8px 24px rgba(11,27,51,.08) }
.article-card:hover h3 { color:var(--accent) }
.articles-grid { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px }
.av-ava { flex:none;width:96px;height:96px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:800;letter-spacing:-.02em }
.av-b { display:flex;flex-direction:column;gap:6px;min-width:0 }
.av-bio { font-size:14.5px;line-height:1.6;color:var(--text-2);margin:0 }
.av-card { display:flex;gap:22px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:22px 24px;box-shadow:var(--shadow-card);margin-bottom:26px }
.av-h1 { font-size:28px;font-weight:800;letter-spacing:-.02em;margin:0 }
.av-h2 { font-size:21px;font-weight:800;letter-spacing:-.015em;margin:34px 0 14px }
.av-note { font-size:12px;color:var(--text-3);border:1px dashed var(--border-strong);border-radius:var(--radius-m);padding:10px 14px;margin:0 0 26px;line-height:1.5 }
.av-role { font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent) }
.av-stats { display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:8px;font-size:13px;color:var(--text-3) }
.av-stats b { color:var(--text);font-weight:800 }
.av-wrap { max-width:860px;margin:0 auto;padding:26px 24px 56px }
.bank-chip { padding:10px 16px;border:1px solid var(--border);border-radius:999px;font-size:14px;font-weight:600;background:#fff }
.bank-chip.bank-more { color:var(--text-3);font-weight:500 }
.bank-chips { display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 }
.bank-note { font-size:14px;line-height:1.6;color:var(--text-2);max-width:720px }
.banks { padding:56px 0;border-top:1px solid var(--border);background:var(--surface) }
.banks h2 { font-size:24px;font-weight:700;margin:0 0 8px }
.bld-fill { height:100%;border-radius:99px;background:var(--accent) }
.bld-fill.done { background:var(--green) }
.bld-item { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:16px 18px }
.bld-list { display:flex;flex-direction:column;gap:10px }
.bld-note { font-size:12.5px;color:var(--text-3);margin-top:8px }
.bld-row { display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:8px }
.bld-row .st { font-size:12.5px;color:var(--text-3) }
.bld-row b { font-weight:700 }
.bld-track { height:8px;border-radius:99px;background:var(--surface);overflow:hidden }
.bottom-bar { display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom)) }
.bottom-bar a { flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--text-3);padding:5px 0;border-radius:10px }
.bottom-bar a.on { color:var(--accent) }
.bp-fill { position:absolute;top:0;bottom:0;border-radius:3px;background:var(--accent) }
.bp-slider { position:relative;height:28px;margin-top:10px }
/* A.93-v3: нативные range скрыты полностью (opacity 0, pointer-events none) —
   значения несут в FormData, псевдо-бегунки ничего не рисуют; бегунки — div .bp-handle */
.bp-slider input[type=range] { position:absolute;inset:0;width:100%;height:28px;margin:0;padding:0;opacity:0;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:default }
.bp-slider input[type=range]::-moz-range-thumb { width:0;height:0;border:0;background:none;box-shadow:none }
.bp-slider input[type=range]::-moz-range-track { height:28px;background:none;border:0 }
.bp-slider input[type=range]::-webkit-slider-runnable-track { height:28px;background:none;border:0 }
.bp-slider input[type=range]::-webkit-slider-thumb { -webkit-appearance:none;appearance:none;width:0;height:0;margin-top:0;border:0;background:none;box-shadow:none }
.bp-handle { position:absolute;top:50%;transform:translateY(-50%);width:20px;height:20px;box-sizing:border-box;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px rgba(11,27,51,.25);cursor:-webkit-grab;cursor:grab;touch-action:none;z-index:2 }
.bp-handle:active { cursor:-webkit-grabbing; cursor:grabbing }
.bp-handle:focus-visible { outline:2px solid var(--accent);outline-offset:2px }
.bp-track { position:absolute;top:11px;left:0;right:0;height:6px;border-radius:3px;background:#E2E8F2 }
.brand-band { border-radius:var(--radius-l);background:var(--navy);color:#fff; padding:28px;display:flex;align-items:center;gap:24px;position:relative;overflow:hidden; }
.brand-band .bb-cta { margin-left:auto;height:44px;padding:0 24px;border-radius:var(--radius-m); background:var(--accent);color:#fff;font-weight:700;font-size:14.5px; display:inline-flex;align-items:center;border:0;white-space:nowrap; }
.brand-band .bb-logo { font-size:22px;font-weight:800;white-space:nowrap }
.brand-band .bb-mark { position:absolute;top:14px;right:16px;font-size:10.5px;font-weight:800; letter-spacing:.06em;color:rgba(255,255,255,.55);text-transform:uppercase; }
.brand-band .bb-txt { font-size:14px;color:rgba(255,255,255,.78);max-width:520px }
.btn-outline { height:48px;padding:0 32px;border:1.5px solid var(--accent);border-radius:var(--radius-m); background:#fff;color:var(--accent);font-size:15.5px;font-weight:700; display:inline-flex;align-items:center;gap:10px; }
.btn-outline.plain { border-color:var(--border);color:var(--text) }
.btn-outline.plain:hover { border-color:var(--accent);color:var(--accent);background:#fff }
.btn-outline:hover { background:var(--accent-soft) }
.btn-primary { height:48px;padding:0 32px;border:0;border-radius:var(--radius-m); background:var(--accent);color:#fff;font-size:15.5px;font-weight:700; display:inline-flex;align-items:center;gap:10px; }
.btn-primary:hover { background:var(--accent-hover) }
.burger { display:none;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;width:40px;height:40px;border-radius:10px;align-items:center;justify-content:center }
.c-card { border:1px solid var(--border);border-radius:var(--radius-l);background:#fff;box-shadow:var(--shadow-card);padding:18px 18px 16px }
.c-card .d { font-size:13.5px;color:var(--text-2);margin-top:4px }
.c-card .t { font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px }
.c-card .v { font-size:17px;font-weight:800;color:var(--navy);text-decoration:none }
.c-card a.v:hover { color:var(--accent) }
.c-cards { display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px }
.c-col { display:flex;flex-direction:column;gap:16px }
.c-done { display:none;border:1px solid var(--green);background:#F0FBF4;color:#14532D;border-radius:var(--radius-l);padding:18px;font-size:14.5px;font-weight:600 }
.c-form { border:1px solid var(--border);border-radius:var(--radius-l);background:#fff;box-shadow:var(--shadow-card);padding:20px }
.c-form .c-agree { display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:13px;color:var(--text-2);cursor:pointer;line-height:1.4 }
.c-form .c-agree a { color:var(--accent) }
.c-form .c-agree input { width:auto;margin:2px 0 0;accent-color:var(--accent) }
.c-form .note { font-size:12.5px;color:var(--text-3);margin-top:10px }
.c-form .s { font-size:13.5px;color:var(--text-2);margin:0 0 14px }
.c-form button { margin-top:16px;width:100%;padding:12px;border:none;border-radius:var(--radius-m);background:var(--accent);color:#fff;font-size:15px;font-weight:700;cursor:pointer }
.c-form button:hover { background:var(--accent-hover) }
.c-form h2 { font-size:19px;margin:0 0 6px }
.c-form input,.c-form select,.c-form textarea { width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-m);font:inherit;font-size:14.5px;color:var(--text);background:#fff }
.c-form input:focus,.c-form select:focus,.c-form textarea:focus { outline:2px solid var(--accent-soft);border-color:var(--accent) }
.c-form label { display:block;font-size:13px;font-weight:600;color:var(--text-2);margin:12px 0 5px }
.c-form textarea { min-height:104px;resize:vertical }
.c-grid { display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-gap:28px;gap:28px;margin:18px 0 36px;align-items:start }
.c-req { border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);padding:20px }
.c-req .warn { font-size:12.5px;color:var(--text-3);margin-top:14px;border-top:1px solid var(--border);padding-top:12px }
.c-req dd { margin:0;color:var(--text);font-weight:600 }
.c-req dl { display:grid;grid-template-columns:auto 1fr;grid-gap:7px 14px;gap:7px 14px;margin:0;font-size:14px }
.c-req dt { color:var(--text-3);font-weight:600;white-space:nowrap }
.c-req h2 { font-size:17px;margin:0 0 12px }
.calc { display:grid;grid-template-columns:1.2fr 1fr;grid-gap:32px;gap:32px; background:#fff;border:1px solid var(--border);border-radius:var(--radius-l); padding:28px; }
.calc-fields { display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px }
.calc-fields .field input { width:100% }
.calc-fields .field input[type=text] { padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:15px;font-family:inherit }
.calc-fields .field label { display:block;font-size:13px;color:var(--text-2);margin-bottom:6px }
.calc-programs { margin-bottom:16px }
.calc-result { background:var(--surface);border-radius:var(--radius-m);padding:24px; display:flex;flex-direction:column;justify-content:center;gap:6px; }
.calc-result .cta { margin-top:14px }
.calc-result .lbl { font-size:13px;color:var(--text-2) }
.calc-result .month { font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--navy) }
.cat-empty { display:none;border:1px dashed var(--border,#E6E4EE);border-radius:16px;padding:36px 24px;text-align:center;margin:10px 0 26px }
.cat-head { display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px }
.cat-head .cat-sub { font-size:14.5px;color:var(--text-2) }
.cat-head .sub { color:var(--text-2);font-size:14.5px }
.cat-head h1 { font-size:30px;letter-spacing:-.5px;margin:0 0 6px }
.cat-shown { text-align:center;font-size:13px;color:var(--text-3);margin-top:-26px;margin-bottom:40px }
.cat-sort { display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-2) }
.cat-sort select { height:38px;border:1px solid var(--border);border-radius:10px;padding:0 12px;font-size:13.5px;background:#fff;color:var(--navy);font-family:inherit }
.cat-toolbar { display:flex;align-items:center;gap:16px; background:#fff;border:1px solid var(--border);border-radius:var(--radius-l); padding:10px 16px;margin-bottom:24px;flex-wrap:wrap; }
.cat-toolbar .res { font-size:15px }
.cat-toolbar .res b { font-weight:800;letter-spacing:-.01em }
.cat-toolbar select { margin-left:auto;height:40px;border:1px solid var(--border);border-radius:var(--radius-m); padding:0 12px;font:inherit;font-size:14px;background:#fff;color:var(--text); }
.chip { border:1px solid var(--border);background:#fff;color:var(--text-2);font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:var(--radius-pill);cursor:pointer }
.chip.active { background:var(--navy);border-color:var(--navy);color:#fff }
.chips-row { display:flex;gap:6px;flex-wrap:wrap }
.chips-row button { height:34px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-pill); background:#fff;font-size:13px;font-weight:600;color:var(--text-2); }
.chips-row button.active { background:var(--accent);border-color:var(--accent);color:#fff }
.chips-row button:hover { border-color:var(--accent);color:var(--accent) }
.collection { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l); padding:20px;display:flex;flex-direction:column;gap:8px; transition:border-color .15s ease,box-shadow .15s ease; }
.collection .c-count { font-size:13px;color:var(--text-3);margin-top:auto }
.collection .c-desc { font-size:13.5px;color:var(--text-2) }
.collection .c-title { font-size:16.5px;font-weight:800;color:var(--navy) }
.collection svg { color:var(--accent) }
.collection:hover { border-color:var(--accent);box-shadow:var(--shadow-card) }
.collections { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px; }
.container { max-width:var(--container);margin:0 auto;padding:0 24px }
.crumbs { background:var(--surface);border-bottom:1px solid var(--border) }
.crumbs .container { display:flex;align-items:center;gap:8px;padding-top:14px;padding-bottom:14px;font-size:13.5px;color:var(--text-2);flex-wrap:wrap }
.crumbs .cur { color:var(--navy);font-weight:600 }
.crumbs .sep { color:var(--text-3) }
.crumbs a { color:var(--text-2) }
.crumbs a:hover { color:var(--accent) }
.ctaband { display:flex;align-items:center;gap:28px;flex-wrap:wrap;background:linear-gradient(135deg,#0B1B33,#123A6E);border-radius:var(--radius-l);padding:28px 32px;color:#fff }
.ctaband h2 { color:#fff;font-size:23px;margin-bottom:6px }
.ctaband p { color:rgba(255,255,255,.78);font-size:14.5px;max-width:440px }
.ctaband-f { display:flex;gap:10px;flex-wrap:wrap;flex:1 1;min-width:280px }
.ctaband-f button { border:0;border-radius:var(--radius-m);background:#fff;color:var(--navy);font-weight:800;font-size:14.5px;padding:12px 22px;cursor:pointer;flex:none }
.ctaband-f input { border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;border-radius:var(--radius-m);padding:12px 14px;font:inherit;font-size:14.5px;flex:1 1;min-width:170px }
.ctaband-f input::placeholder { color:rgba(255,255,255,.55) }
.ctaband-f input[type="checkbox"] { flex:none;min-width:0;width:18px;height:18px;padding:0;border:1px solid rgba(255,255,255,.45);background:transparent;accent-color:#0A6CFF;margin:2px 8px 0 0 }
.dev-chip { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l); padding:16px 24px;display:flex;flex-direction:column;gap:2px;min-width:180px; transition:border-color .15s ease; }
.dev-chip .d-logo { font-size:17px;color:var(--navy);line-height:1.1 }
.dev-chip .d-logo img { max-height:38px;max-width:150px;width:auto;object-fit:contain }
.dev-chip .d-logo.a101 { font-weight:800;letter-spacing:-.02em }
.dev-chip .d-logo.donstroy { font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:14px }
.dev-chip .d-logo.fsk { font-weight:800;letter-spacing:.1em }
.dev-chip .d-logo.mr { font-weight:800;letter-spacing:.02em }
.dev-chip .d-logo.pik { font-weight:900;letter-spacing:-.03em;font-style:italic }
.dev-chip .d-logo.samolet { font-weight:500;letter-spacing:-.01em }
.dev-chip .d-meta { font-size:13px;color:var(--text-2) }
.dev-chip .d-name { font-size:16px;font-weight:800;color:var(--navy);letter-spacing:-.01em }
.dev-chip:hover { border-color:var(--accent) }
.dev-cta { margin-left:auto;display:flex;flex-direction:column;gap:8px;align-items:flex-end }
.dev-fact { padding:8px 14px;border:1px solid var(--border);border-radius:999px;font-size:13.5px;color:var(--text-2) }
.dev-fact b { color:var(--text);font-weight:700 }
.dev-facts { display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin-top:6px }
.dev-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:20px;gap:20px }
.dev-hero { display:grid;grid-template-columns:auto 1fr;grid-gap:24px;gap:24px;align-items:start;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-card);padding:28px;margin-top:14px }
.dev-hero .dev-logo { width:96px;height:96px;border-radius:50%;object-fit:contain;background:transparent }
.dev-hero h1 { font-size:28px;font-weight:800;letter-spacing:-.01em;margin:0 0 12px }
.dev-hero p { margin:0;color:var(--text-2);font-size:14.5px;line-height:1.65;max-width:720px }
.dev-logo { width:64px;height:64px;border-radius:var(--radius-m);background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;flex:none }
.dev-logo-mono { width:96px;height:96px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:26px;letter-spacing:.02em }
.dev-meta b { font-size:16px }
.dev-site { display:inline-block;margin-top:14px;font-size:14px;font-weight:600;color:var(--accent);text-decoration:none }
.dev-site:hover { text-decoration:underline }
.dev-strip { display:flex;gap:12px;flex-wrap:wrap }
.devcard { display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:20px 22px }
.devlist { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px }
.devlist-card { position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:18px;display:flex;flex-direction:column;gap:12px }
.devlist-card .stretch { position:absolute;inset:0 }
.devlist-card:hover { border-color:var(--accent);box-shadow:0 6px 20px rgba(11,27,51,.08) }
.devlist-count { font-size:13px;color:var(--text-3);margin:0 0 12px }
.devlist-facts { display:flex;gap:6px;flex-wrap:wrap }
.devlist-facts span { font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--surface);border-radius:6px;padding:3px 8px;white-space:nowrap }
.devlist-link { position:relative;z-index:1;font-size:13.5px;font-weight:600;color:var(--accent);text-decoration:none;margin-top:auto }
.devlist-logo { width:52px;height:52px;object-fit:contain;flex-shrink:0 }
.devlist-meta { font-size:13px;color:var(--text-2) }
.devlist-mono { width:52px;height:52px;border-radius:14px;background:var(--surface);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;flex-shrink:0 }
.devlist-name { font-size:17px;font-weight:700;color:var(--navy);line-height:1.25;min-width:0;overflow-wrap:break-word }
.devlist-tools { display:flex;gap:12px;align-items:center;margin:0 0 20px;flex-wrap:wrap }
.devlist-tools input { flex:1 1;min-width:200px;height:44px;border:1px solid var(--border);border-radius:10px;padding:0 14px;font-size:14.5px;color:var(--text);background:#fff }
.devlist-tools input:focus { outline:none;border-color:var(--accent) }
.devlist-tools select { height:44px;border:1px solid var(--border);border-radius:10px;padding:0 12px;font-size:14px;font-weight:600;color:var(--navy);background:#fff }
.devlist-top { display:flex;gap:14px;align-items:center;min-width:0 }
.district-grid { display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px 24px;gap:10px 24px; }
.district-grid a { display:flex;justify-content:space-between;align-items:baseline; padding:10px 4px;border-bottom:1px solid var(--border); font-size:14.5px;font-weight:600;color:var(--text); }
.district-grid a .cnt { font-size:12.5px;color:var(--text-3);font-weight:500 }
.district-grid a:hover { color:var(--accent);border-bottom-color:var(--accent) }
.docs { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px }
.docs .ok { margin-left:auto;font-size:12px;color:var(--green);font-weight:600;white-space:nowrap }
.docs a { display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-m);padding:12px 14px;font-size:14px;font-weight:600;color:var(--navy) }
.docs a:hover { border-color:var(--accent);color:var(--accent) }
.done-link { color:inherit;text-decoration:none }
.done-link:hover b { color:var(--accent) }
.done-list { display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-card) }
.done-meta { margin-left:auto;color:var(--text-3);font-size:13.5px }
.done-row { display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);font-size:14.5px;color:var(--navy) }
.done-row .zhk-badge.done { position:static }
.done-row b { font-weight:700 }
.done-row:last-child { border-bottom:0 }
.drawer { position:fixed;top:0;left:0;bottom:0;width:300px;max-width:85vw;background:#fff;z-index:60;transform:translateX(-105%);transition:transform .25s ease;display:flex;flex-direction:column }
.drawer-close { width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--text-2) }
.drawer-foot { display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-top:1px solid var(--border) }
.drawer-head { display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border) }
.drawer-head .logo { color:var(--navy);white-space:nowrap }
.drawer-nav { display:flex;flex-direction:column;padding:10px 10px;flex:1 1 }
.drawer-nav a { padding:13px 12px;font-size:16px;font-weight:600;color:var(--navy);border-radius:10px }
.drawer-nav a:hover { background:var(--surface);color:var(--accent) }
.drawer-veil { position:fixed;inset:0;background:rgba(11,27,51,.45);z-index:55;opacity:0;pointer-events:none;transition:opacity .25s }
.drawer-veil.open { opacity:1;pointer-events:auto }
.drawer.open { transform:translateX(0) }
.empty-state { border:1px dashed #C9D2E0;border-radius:var(--radius-l);background:var(--surface);padding:56px 24px;text-align:center }
.empty-state h3 { font-size:19px;font-weight:800;color:var(--navy);margin:14px 0 6px }
.empty-state p { font-size:14px;color:var(--text-2);max-width:460px;margin:0 auto 18px }
.es-actions { display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap }
.es-suggest { display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:18px }
.es-suggest span { font-size:12.5px;font-weight:600;color:var(--text-2);background:#fff;border:1px solid var(--border);border-radius:999px;padding:5px 12px;cursor:pointer }
.es-suggest span:hover { border-color:var(--accent);color:var(--accent) }
.f-tel { color:#fff;font-size:16.5px;font-weight:800;text-decoration:none;letter-spacing:.01em }
.f-tel:hover { opacity:.8 }
.faq-a { max-height:0;overflow:hidden;transition:max-height .25s ease }
.faq-a span { display:block;padding:0 18px 16px;font-size:14px;color:var(--text-2) }
.faq-item { background:#fff;border:1px solid var(--border);border-radius:var(--radius-m);margin-bottom:10px;overflow:hidden }
.faq-item.open .faq-q svg { transform:rotate(180deg) }
.faq-list { max-width:820px }
.faq-q { width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;background:none;border:0;text-align:left;padding:16px 18px;font-size:15px;font-weight:600;color:var(--navy) }
.faq-q svg { flex:none;color:var(--text-3);transition:transform .2s }
.feat-chips { display:flex;flex-wrap:wrap;gap:8px;margin-top:4px }
.feat-chips span { font-size:13px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 12px;color:var(--text) }
.field input { width:100%;height:44px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 12px;font:inherit;font-size:14.5px;color:var(--text);background:#fff;box-sizing:border-box }
.field input[readonly] { background:var(--surface);color:var(--text-2) }
.field input[type=range] { height:auto;padding:0;border:0;background:transparent;margin-top:10px }
.field label { display:block;font-size:12px;font-weight:600;color:var(--text-3); text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px; }
.field select,.field input { width:100%;height:44px;border:1px solid var(--border);border-radius:var(--radius-m); padding:0 12px;font:inherit;font-size:14.5px;color:var(--text);background:#fff; }
.field select:focus,.field input:focus { border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft) }
.field select:hover,.field input:hover { border-color:#C9D2E0 }
.field-pair { display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px }
.filter-sheet { position:fixed;inset:0;background:#fff;z-index:60;display:none;flex-direction:column }
.filter-sheet.open { display:flex }
.flc-addr { font-size:14.5px;color:var(--text-2);margin-bottom:16px }
.flc-btn { display:inline-block;padding:12px 22px;border-radius:10px;font-size:14.5px;font-weight:700;text-decoration:none }
.flc-btn.acc { background:var(--accent);color:#fff }
.flc-btn.ghost { background:#fff;color:var(--navy);border:1px solid var(--border) }
.flc-btn.ghost:hover { border-color:var(--accent);color:var(--accent) }
.flc-cap { font-size:12px;color:var(--text-3);margin-top:8px }
.flc-crumbs { font-size:13px;color:var(--text-3);padding:18px 0 0 }
.flc-crumbs a { color:var(--text-3);text-decoration:none }
.flc-crumbs a:hover { color:var(--accent) }
.flc-cta { display:flex;gap:10px;flex-wrap:wrap }
.flc-cta2 { border-radius:16px;padding:22px 26px;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap }
.flc-cta2 .flc-btn { white-space:nowrap;padding:13px 24px }
.flc-cta2 h3 { margin:0 0 4px;font-size:19px;letter-spacing:-.2px }
.flc-cta2 p { margin:0;font-size:14.5px;line-height:1.5;max-width:560px }
.flc-cta2.dark { background:var(--navy);color:#fff;margin:8px 0 40px;padding:30px 32px }
.flc-cta2.dark h3 { font-size:24px;margin-bottom:6px;color:#fff }
.flc-cta2.dark p { color:#B7C2D6 }
.flc-cta2.soft { background:var(--accent-soft);color:var(--navy);margin-top:18px }
.flc-cta2.soft p { color:var(--text-2) }
.flc-h1 { font-size:34px;line-height:1.15;margin:0 0 6px;letter-spacing:-.4px }
.flc-h2 { font-size:24px;margin-bottom:16px;letter-spacing:-.3px;max-width:1060px;margin-left:auto;margin-right:auto }
.flc-hero { display:grid;grid-template-columns:1.05fr .95fr;grid-gap:36px;gap:36px;align-items:start;margin:20px 0 40px }
.flc-lead { margin-top:16px;border:1px solid var(--border);border-radius:var(--radius-l);padding:18px 20px;background:#fff }
.flc-lead form { display:grid;grid-gap:10px;gap:10px }
.flc-lead h3 { margin:0 0 4px;font-size:17px }
.flc-lead input { font-size:14px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-m);width:100%;box-sizing:border-box }
.flc-lead p { margin:0 0 12px;font-size:13.5px;color:var(--text-2) }
.flc-lead-ok { display:none;font-size:13.5px;color:#177245;font-weight:600 }
.flc-map { border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--border);background:#E8EEF5 }
.flc-map iframe { width:100%;height:400px;border:0;display:block }
.flc-maprow { display:flex;justify-content:space-between;gap:12px;padding:12px 4px 0;font-size:13px;color:var(--text-2);flex-wrap:wrap }
.flc-maprow a { color:var(--accent);text-decoration:none;font-weight:600 }
.flc-offer { font-size:11.5px;color:var(--text-3);margin-top:10px;line-height:1.5 }
.flc-params { width:100%;border-collapse:collapse;font-size:14.5px;margin-bottom:18px }
.flc-params td { padding:11px 4px;border-bottom:1px solid var(--border) }
.flc-params td:first-child { color:var(--text-2);width:46% }
.flc-per { font-size:14px;color:var(--text-2);margin-top:2px }
.flc-photo { margin-top:16px;border-radius:var(--radius-l);overflow:hidden;aspect-ratio:16/10;background:#DCE4EE }
.flc-photo img { width:100%;height:100%;object-fit:cover;display:block }
.flc-plan { border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;background:#F4F7FB;min-height:300px;display:flex;align-items:center;justify-content:center }
.flc-plan img.flc-plan-img { display:block;width:auto;max-width:100%;max-height:560px;height:auto;margin:0 auto }
.flc-plan svg { display:block;width:100%;height:auto }
.flc-plan-ph { color:var(--text-3,#8A94A6);font-size:13.5px;padding:40px 0 }
.flc-price { font-size:28px;font-weight:800 }
.flc-pricebox { border:1px solid var(--border);border-radius:var(--radius-l);padding:18px 22px;margin-bottom:18px }
.flc-sec { margin:40px 0 }
.flc-sim { display:flex;flex-direction:column;gap:12px }
.flc-srow { display:grid;grid-template-columns:110px 1fr auto;grid-gap:16px;gap:16px;align-items:center;border:1px solid var(--border);border-radius:var(--radius-m);padding:12px 16px;text-decoration:none;color:var(--text) }
.flc-srow .p { text-align:right }
.flc-srow .p b { font-size:15.5px }
.flc-srow .p div { font-size:12.5px;color:var(--text-3) }
.flc-srow .s { font-size:13px;color:var(--text-2);margin-top:2px }
.flc-srow .t { font-weight:700;font-size:15px }
.flc-srow:hover { border-color:var(--accent) }
.flc-wrap { max-width:var(--container);margin:0 auto;padding:0 24px }
.flc-zhk { font-size:15px;margin-bottom:8px }
.flc-zhk a { color:var(--accent);text-decoration:none;font-weight:700 }
.flc-zhk a:hover { text-decoration:underline }
.footer-bottom { border-top:1px solid rgba(255,255,255,.14);padding-top:20px; font-size:13px;color:rgba(255,255,255,.45); display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;grid-gap:32px;gap:32px;margin-bottom:32px }
.fresh-line { font-size:12px;color:var(--text-3);margin:-2px 0 10px;display:flex;align-items:center;gap:5px }
.fresh-line svg { color:#16A34A }
.fs-body { flex:1 1;overflow-y:auto;padding:18px }
.fs-body .search-grid { grid-template-columns:1fr }
.fs-foot { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border) }
.fs-head { display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border) }
.fs-title { font-size:17px;font-weight:800;color:var(--navy) }
.gal { position:relative }
.gal-arrow { position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.94);border:0;display:flex;align-items:center;justify-content:center;color:var(--navy);box-shadow:var(--shadow-card);cursor:pointer }
.gal-arrow.next { right:12px }
.gal-arrow.prev { left:12px }
.gal-count { position:absolute;right:12px;bottom:12px;background:rgba(8,18,38,.62);color:#fff;font-size:12.5px;padding:4px 10px;border-radius:var(--radius-pill) }
.gal-fav { position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.94);border:0;display:flex;align-items:center;justify-content:center;color:var(--text-2);cursor:pointer }
.gal-fav.on { color:#E0245E }
.gal-main { position:relative;border-radius:var(--radius-l);overflow:hidden;aspect-ratio:16/10;background:#fff }
.gal-main img { width:100%;height:100%;object-fit:contain;display:block }
.gal-thumbs { display:flex;gap:8px;margin-top:10px;overflow-x:auto }
.gal-thumbs button { width:86px;flex:none;aspect-ratio:16/10;border-radius:var(--radius-m);overflow:hidden;border:2px solid transparent;padding:0;background:var(--surface);cursor:pointer }
.gal-thumbs button.on { border-color:var(--accent) }
.gal-thumbs img { width:100%;height:100%;object-fit:cover;display:block }
.h-phone { font-size:14.5px;font-weight:800;color:inherit;text-decoration:none;white-space:nowrap;letter-spacing:.01em }
.h-phone:hover { opacity:.75 }
.header-actions { margin-left:auto;display:flex;align-items:center;gap:8px }
.header-actions .h-sep { width:1px;height:22px;background:rgba(255,255,255,.22);margin:0 2px;flex:none }
.header-actions .link-icon { padding:8px 9px }
.header-actions .link-plain { color:rgba(255,255,255,.85);font-size:14.5px;font-weight:500; display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-m); }
.header-actions .link-plain svg { opacity:.9 }
.header-actions .link-plain:hover { color:#fff;background:rgba(255,255,255,.12) }
.hero { position:relative; background:#0B1B33 none center/cover no-repeat; padding:120px 0 64px; }
.hero .container { position:relative;z-index:2 }
.hero h1 { color:#fff;font-size:40px;font-weight:800;letter-spacing:-.02em; max-width:720px;line-height:1.15; }
.hero-stats { display:flex;gap:28px;margin-top:22px;color:rgba(255,255,255,.9); font-size:14px; }
.hero-stats b { display:block;font-size:20px;font-weight:800;color:#fff;letter-spacing:-.01em; }
.hero-stats span { color:rgba(255,255,255,.65);font-size:13px }
.hero-sub { color:rgba(255,255,255,.78);margin-top:12px;font-size:16px;max-width:640px; }
.hero::before { content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(8,18,38,.46) 0%, rgba(8,18,38,.14) 52%, rgba(8,18,38,0) 74%),linear-gradient(180deg, rgba(8,18,38,.44) 0%, rgba(8,18,38,0) 30%, rgba(8,18,38,0) 58%, rgba(8,18,38,.42) 100%); }
.hero>.container { position:relative;z-index:1 }
.hjc { position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;transition:box-shadow .18s,border-color .18s }
.hjc a.ph-link { position:absolute;inset:0;z-index:1 }
.hjc-b { display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px }
.hjc-d { font-size:13.5px;color:var(--text-2);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden }
.hjc-grid { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px }
.hjc-ph { display:block;aspect-ratio:16/10;overflow:hidden;background:var(--surface) }
.hjc-ph img { width:100%;height:100%;object-fit:cover;display:block }
.hjc-row { display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-3) }
.hjc-t { font-size:16.5px;font-weight:800;line-height:1.32;color:var(--text);letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden }
.hjc-tag { font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:11px;padding:3px 10px;border-radius:999px }
.hjc-tag.art { color:var(--accent);background:var(--accent-soft) }
.hjc-tag.news { color:var(--text-2);background:var(--surface) }
.hjc:hover { border-color:var(--accent);box-shadow:var(--shadow-card) }
.hjc:hover .hjc-t { color:var(--accent) }
.j-row { display:contents }
.kv-addr { color:var(--text-2);font-size:13px }
.kv-applied { display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px }
.kv-applied .kv-ac { display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--accent,#0A6CFF);border-radius:999px;background:#fff;color:var(--accent,#0A6CFF);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none }
.kv-applied .kv-ac-all { border-style:dashed;color:var(--text-3,#8A94A6);border-color:var(--border,#E4E9F0) }
.kv-applied .kv-ac-all:hover { border-color:#DC2626;color:#DC2626;background:#fff }
.kv-applied .kv-ac:hover { background:var(--accent,#0A6CFF);color:#fff }
.kv-applied:empty { display:none;margin:0 }
.kv-area { font-size:13px;color:var(--text-3);margin-top:3px }
.kv-chip { font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;text-decoration:none }
.kv-chip small { font-weight:500;opacity:.75 }
.kv-chip.on { background:var(--accent);border-color:var(--accent);color:#fff }
.kv-chip:hover { border-color:var(--accent) }
.kv-demo { display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;color:#8a5a00;background:#fff3d6;border:1px solid #ecc063;border-radius:4px;padding:1px 6px;margin-right:6px;vertical-align:1px;text-transform:uppercase }
.kv-disclaimer { font-size:12.5px;color:var(--text-3);margin:14px 0 40px;text-align:center }
.kv-dup { display:inline-block;margin-top:6px;font-size:12px;font-weight:700;color:var(--accent);background:none;border:1px dashed var(--accent);border-radius:8px;padding:4px 10px;cursor:pointer;font-family:inherit }
.kv-dup:hover { background:var(--accent-soft,#EAF2FF) }
.kv-filters { border:1px solid var(--border);border-radius:var(--radius-l);padding:16px 18px;margin-bottom:26px }
.kv-floor { font-size:12.5px;color:var(--text-3);margin-top:5px }
.kv-frow { display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px }
.kv-frow:last-child { margin-bottom:0 }
.kv-h1 { font-size:34px;margin:26px 0 6px;letter-spacing:-.4px }
.kv-input { font-size:13.5px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-m);width:130px }
.kv-list { display:flex;flex-direction:column;gap:12px }
.kv-main { font-size:14px;line-height:1.55 }
.kv-main .zhk { font-weight:700;color:var(--accent);text-decoration:none }
.kv-main .zhk:hover { text-decoration:underline }
.kv-note { font-size:12.5px;color:var(--text-3) }
.kv-one { display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-m);padding:7px 12px;background:#fff;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none }
.kv-one input { margin:0;width:15px;height:15px;accent-color:var(--accent);cursor:pointer }
.kv-pager { display:flex;gap:6px;justify-content:center;margin:30px 0 10px;flex-wrap:wrap }
.kv-per { font-size:12px;color:var(--text-3);margin-top:3px }
.kv-pg { font-size:13.5px;font-weight:600;padding:8px 13px;border-radius:var(--radius-m);border:1px solid var(--border);text-decoration:none;color:var(--text) }
.kv-pg.on { background:var(--accent);color:#fff;border-color:var(--accent) }
.kv-price { font-size:19px;font-weight:800;white-space:nowrap }
.kv-rooms { font-size:17px;font-weight:800 }
.kv-row { display:grid;grid-template-columns:64px 110px 1fr auto;grid-gap:18px;gap:18px;align-items:center;border:1px solid var(--border);border-radius:var(--radius-l);padding:16px 20px;text-decoration:none;color:var(--text) }
.kv-row:hover { border-color:var(--accent);box-shadow:0 4px 18px rgba(10,60,140,.08) }
.kv-rule { display:inline-block;font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-soft,#EAF2FF);border-radius:4px;padding:1px 5px;margin-left:6px;vertical-align:2px }
.kv-select { font-size:13.5px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-m);background:#fff;color:var(--text) }
.kv-side { text-align:right }
.kv-stat b { font-size:20px;display:block }
.kv-stat span { font-size:12.5px;color:var(--text-3) }
.kv-stats { display:flex;gap:26px;flex-wrap:wrap;margin-bottom:24px }
.kv-sub { color:var(--text-2);font-size:14.5px;margin-bottom:22px }
.kv-wrap { max-width:var(--container);margin:0 auto;padding:0 24px }
.lead { color:var(--text-2);margin-bottom:28px;max-width:640px }
.leaflet-control-attribution { font-size:10px !important;background:rgba(255,255,255,.75) !important }
.leaflet-control-zoom { border:0 !important;box-shadow:0 2px 10px rgba(11,27,51,.18) !important;border-radius:12px !important;overflow:hidden }
.leaflet-control-zoom a { border:0 !important;color:#0B1B33 !important }
.leaflet-div-icon { background:transparent;border:0 }
.leaflet-marker-pane .mk-pin .ph { width:46px!important;height:46px!important;max-width:none!important;max-height:none!important;border-radius:50%!important;border:3px solid #fff;box-shadow:0 2px 10px rgba(11,27,51,.35);object-fit:cover;display:block;transition:transform .12s }
.leaflet-popup-content { margin:0;width:280px !important;font-family:inherit }
.leaflet-popup-content-wrapper { border-radius:16px;padding:0;overflow:hidden;box-shadow:0 10px 34px rgba(11,27,51,.28) }
.leaflet-popup-tip { display:none }
.legal-body { border:1px solid var(--border);border-radius:var(--radius-l);background:#fff;box-shadow:var(--shadow-card);padding:32px 36px;font-size:14.5px;line-height:1.65 }
.legal-body .ld-lead { color:var(--text-3);font-size:13px;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:18px }
.legal-body h2 { font-size:17px;font-weight:800;margin:24px 0 8px;letter-spacing:-.01em }
.legal-body li { margin-bottom:5px }
.legal-body p { margin:0 0 10px }
.legal-body ul { margin:0 0 10px 20px }
.legal-doc { display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:28px;gap:28px;margin:18px 0 36px;align-items:start }
.legal-nav { position:-webkit-sticky; position:sticky;top:24px;border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);padding:18px 20px }
.legal-nav a { color:var(--text-2) }
.legal-nav a:hover { color:var(--accent) }
.legal-nav h3 { font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:0 0 10px }
.legal-nav li { margin-bottom:6px }
.legal-nav ol { margin:0 0 0 18px;font-size:13.5px }
.link-reset { font-size:14px;color:var(--text-2);border:0;background:transparent;padding:4px 0 }
.link-reset:hover { color:var(--text) }
.list-apt { padding:16px 18px }
.list-apt h5 { font-size:12px;text-transform:uppercase;letter-spacing:.05em; color:var(--text-3);margin-bottom:8px;font-weight:700; }
.list-card { display:grid;grid-template-columns:300px 1fr 1.15fr; background:#fff;border:1px solid var(--border);border-radius:var(--radius-l); overflow:hidden;margin-top:20px; }
.list-card .zhk-photo { aspect-ratio:auto;min-height:230px }
.list-info { padding:18px;display:flex;flex-direction:column;gap:8px;border-right:1px solid var(--border) }
.logo { font-size:22px;font-weight:800;letter-spacing:-.02em;color:#fff; display:flex;align-items:baseline;gap:2px; }
.logo .dot { color:var(--accent);font-weight:800 }
.lp-lead { background:var(--surface);border-top:1px solid var(--border);margin:28px 0 0;padding:30px 0 36px }
.lp-lead .ns-channel { flex:1 1;min-width:150px;height:46px }
.lp-lead .pdn-check { display:flex;gap:8px;align-items:flex-start;flex-basis:100%;margin:4px 0 0;font-size:12.5px;color:var(--text-2);cursor:pointer;line-height:1.45 }
.lp-lead .pdn-check a { color:var(--accent) }
.lp-lead .pdn-check input { width:16px;height:16px;margin-top:1px;flex-shrink:0;accent-color:var(--accent) }
.lp-lead [data-ok] { margin-top:14px;padding:14px 18px;border-radius:10px;background:#E7F6EC;color:var(--green);font-weight:600;display:none }
.lp-lead button[type="submit"] { height:46px;padding:0 24px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-size:14.5px;font-weight:700;cursor:pointer }
.lp-lead button[type="submit"]:hover { background:var(--accent-hover) }
.lp-lead form { display:flex;flex-wrap:wrap;gap:10px;align-items:center;max-width:860px }
.lp-lead h2 { font-size:20px;font-weight:800;letter-spacing:-.01em;margin:0 0 6px }
.lp-lead input[type="text"],.lp-lead input[type="tel"] { flex:1 1;min-width:200px;height:46px;padding:0 14px;border:1px solid var(--border-strong);border-radius:10px;font:inherit;font-size:14.5px;color:var(--text) }
.lp-lead p { color:var(--text-2);font-size:14.5px;margin:0 0 16px }
.m-dot { width:8px;height:8px;border-radius:50%;flex:none }
.m-line { width:9px;height:9px;border-radius:50%;display:inline-block;flex:none }
.main-nav { display:flex;gap:4px;margin-left:8px }
.main-nav a { color:rgba(255,255,255,.85);font-weight:500;font-size:14.5px; padding:8px 12px;border-radius:var(--radius-m); }
.main-nav a:hover { color:#fff;background:rgba(255,255,255,.12) }
.map-chip { cursor:pointer;font-family:inherit }
.map-chip i { width:9px;height:9px;border-radius:50%;flex:none }
.map-chip.on { border-color:var(--accent,#0A6CFF);color:var(--accent,#0A6CFF);box-shadow:0 0 0 3px rgba(10,108,255,.12) }
.map-chips { display:flex;gap:8px;flex-wrap:wrap;padding-bottom:4px }
.map-cluster { position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%; background:var(--navy);color:#fff;font-size:14px;font-weight:800;z-index:3; display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(11,27,51,.35);border:2px solid #fff; }
.map-cluster:hover { background:var(--accent) }
.map-head { display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:14px 0 14px }
.map-head h1 { margin:0 0 6px }
.map-list { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px 18px;gap:10px 18px;margin-bottom:44px }
.map-list a { display:flex;justify-content:space-between;gap:10px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--navy);font-size:14px;font-weight:600;background:#fff }
.map-list a span { color:#8A94A6;font-weight:500;white-space:nowrap }
.map-list a:hover { border-color:var(--accent);color:var(--accent) }
.map-note { font-size:13px;color:var(--text-3);margin-top:12px;text-align:center }
.map-panel { position:relative;height:540px;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;background:#E7EDF3 }
.map-panel-live { height:480px;border-radius:18px;border:1px solid var(--line,#E6E4EE);overflow:hidden;box-shadow:0 8px 30px rgba(11,27,51,.10);z-index:1 }
.map-pin { position:absolute;transform:translate(-50%,-50%);background:#fff;border:1px solid var(--border); border-radius:8px;padding:5px 9px;font-size:12.5px;font-weight:700;color:var(--navy);white-space:nowrap; box-shadow:0 2px 8px rgba(11,27,51,.18);z-index:2; }
.map-pin::after { content:"";position:absolute;left:50%;bottom:-5px;width:8px;height:8px;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:translateX(-50%) rotate(45deg) }
.map-pin:hover,.map-pin.on { border-color:var(--accent);color:var(--accent) }
.map-popup { position:absolute;width:260px;background:#fff;border-radius:14px;overflow:hidden;z-index:5; box-shadow:0 10px 32px rgba(11,27,51,.28); }
.map-popup .mp-body { padding:12px 14px 14px }
.map-popup .mp-price { font-size:15px;font-weight:800;margin:8px 0 6px }
.map-popup .mp-price span { font-size:12px;font-weight:500;color:var(--text-3) }
.map-popup .mp-title { font-size:15px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:8px;margin-bottom:4px }
.map-popup img { width:100%;height:120px;object-fit:cover;display:block }
.map-svg { position:absolute;inset:0;width:100%;height:100% }
.map-wrap { border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#EEF1F6;margin-bottom:14px }
.map-wrap iframe { display:block;width:100%;height:560px;border:0 }
.mapbox { position:relative;margin:0 0 30px }
.mcalc { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:20px 22px }
.mcalc .field { flex:1 1;min-width:120px }
.mcalc .row { display:flex;gap:12px;flex-wrap:wrap }
.mcalc input { height:42px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 12px;font-size:14.5px;width:100%;box-sizing:border-box }
.mcalc label { font-size:12.5px;color:var(--text-3);display:block;margin-bottom:4px }
.mcalc-out { margin-top:16px;background:var(--surface);border-radius:var(--radius-m);padding:14px 16px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap }
.mcalc-pay { font-size:24px;font-weight:800 }
.mcalc-presets { display:flex;gap:6px;flex-wrap:wrap;margin-top:8px }
.mcalc-presets .chip { font-size:12.5px;padding:6px 11px }
.mcalc-sub { font-size:12.5px;color:var(--text-2) }
.metro-list { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px }
.metro-list li { display:flex;align-items:center;gap:10px;font-size:14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 14px }
.mini-map { border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--border);margin-top:12px }
.mini-map svg { display:block;width:100%;height:auto }
.mk-card { padding:20px 22px 18px }
.mk-card .bd { padding:14px 16px }
.mk-card .cls { display:inline-block;margin-top:8px;background:#EAF2FF;color:#0A6CFF;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px }
.mk-card .go { display:block;margin-top:12px;background:#0A6CFF;color:#fff;text-align:center;text-decoration:none;font-weight:700;font-size:13.5px;padding:10px 0;border-radius:10px }
.mk-card .go:hover { background:#0057D9 }
.mk-card .metro { display:flex;align-items:center;gap:8px;font-size:13px;color:#37404F;margin-bottom:4px }
.mk-card .metro i { width:10px;height:10px;border-radius:50%;flex:none }
.mk-card .metro span { color:#8A94A6;font-size:12px }
.mk-card .nm { font-size:16px;font-weight:800;color:#0B1B33;margin-bottom:2px }
.mk-card .ph { display:block;width:100%;height:140px;object-fit:cover }
.mk-card .pr { font-size:15px;font-weight:800;color:#0A6CFF;margin-bottom:10px }
.mk-card .pr small { font-weight:600;color:#5F6B7A;font-size:12px }
.mk-cluster { background:#0A6CFF;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;border:3px solid #fff;box-shadow:0 2px 10px rgba(11,27,51,.3) }
.mk-pin { display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;background:transparent }
.mk-pin .lb { background:#fff;border-radius:999px;padding:3px 10px;box-shadow:0 1px 6px rgba(11,27,51,.22);border:1px solid rgba(11,27,51,.07);text-align:center;white-space:nowrap;line-height:1.15 }
.mk-pin .lb b { display:block;font-size:11.5px;font-weight:800;color:#0B1B33 }
.mk-pin .lb span { display:block;font-size:11px;font-weight:700;color:#0A6CFF }
.mk-pin .ph { width:46px;height:46px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 10px rgba(11,27,51,.35);object-fit:cover;display:block;transition:transform .12s }
.mk-pin b { display:block;font-size:12.5px;line-height:1.15;color:#0B1B33 }
.mk-pin img { width:40px;height:40px;border-radius:50%;object-fit:cover;display:block }
.mk-pin span { display:block;font-size:12px;line-height:1.2;color:#0A6CFF;font-weight:700 }
.mk-pin.mini { padding:4px 12px }
.mk-pin.mini span { font-size:11.5px }
.mk-pin:hover { transform:scale(1.06);z-index:999 }
.mk-pin:hover .ph { transform:scale(1.12) }
.mortgage-cta { display:flex;gap:10px;margin-top:20px;flex-wrap:wrap }
.mortgage-input { padding:12px 16px;border:1px solid var(--border);border-radius:10px;font-size:14px;min-width:180px;background:#fff }
.mp-close { position:absolute;top:8px;right:8px;z-index:2;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.92);border:0;display:flex;align-items:center;justify-content:center;color:var(--text-2) }
.mp-close:hover { color:var(--text) }
.mrr-chip { display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--border,#E6E4EE);border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:var(--text,#0B1B33);text-decoration:none }
.mrr-chip small { font-weight:500;color:#8A94A6 }
.mrr-chip:hover { border-color:var(--accent,#0A6CFF);color:var(--accent,#0A6CFF) }
.mrr-chips { display:flex;flex-wrap:wrap;gap:8px }
.mrr-dot { width:9px;height:9px;border-radius:50%;flex:none }
.mrr-sec { margin:26px 0 0 }
.mrr-sec h2 { font-size:19px;margin:0 0 12px }
.ms-sec { margin:20px 0 8px }
.ms-sec .ms-note { font-size:13px;color:#8A94A6;margin:10px 2px 0 }
.ms-sec h2 { font-size:19px;margin:0 0 12px }
.mt-back { display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--accent,#0A6CFF);text-decoration:none;margin-top:14px }
.mt-back:hover { text-decoration:underline }
.mt-badge { display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 7px;border-radius:999px;color:#fff;font-size:13.5px;font-weight:800;flex:none }
.mt-dot { width:9px;height:9px;border-radius:50%;flex:none }
.mt-group h2 { font-size:19px;margin:0 0 12px }
.mt-group h2 .mt-badge { min-width:28px;height:28px;font-size:13px }
.mt-groups { display:flex;flex-direction:column;gap:26px;margin:18px 0 34px }
.mt-list { display:flex;flex-wrap:wrap;gap:8px }
.mt-st { display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--border,#E6E4EE);border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:var(--text,#0B1B33);text-decoration:none }
.mt-st small { font-weight:500;color:#8A94A6 }
.mt-st:hover { border-color:var(--accent,#0A6CFF);color:var(--accent,#0A6CFF) }
.mt-station-head { display:flex;align-items:center;gap:14px;margin:18px 0 4px }
.mt-station-head .mt-badge { min-width:38px;height:38px;font-size:15px }
.news-date { margin-left:auto;font-size:12.5px;color:var(--text-3);white-space:nowrap }
.news-item { display:flex;gap:20px;align-items:baseline;padding:14px 4px;border-bottom:1px solid var(--border);text-decoration:none }
.news-item:first-child { padding-top:4px }
.news-item:hover .news-title { color:var(--accent) }
.news-list { display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-card) }
.news-row { display:flex;align-items:baseline;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border);text-decoration:none }
.news-row:hover { background:var(--surface) }
.news-row:hover .news-title { color:var(--accent) }
.news-row:last-child { border-bottom:0 }
.news-title { font-size:14.5px;font-weight:600;color:var(--navy) }
.nl-b { display:flex;flex-direction:column;gap:8px;min-width:0 }
.nl-chip { border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;font-weight:700;color:var(--text-2);cursor:pointer }
.nl-chip.on { background:var(--accent);border-color:var(--accent);color:#fff }
.nl-chip:hover { border-color:var(--accent);color:var(--accent) }
.nl-d { font-size:14px;color:var(--text-2);line-height:1.55 }
.nl-filters { display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 20px }
.nl-fl-label { font-size:13px;color:var(--text-3);margin-right:2px }
.nl-h1 { font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 10px }
.nl-item { display:grid;grid-template-columns:240px 1fr;grid-gap:20px;gap:20px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:16px;margin-bottom:14px;text-decoration:none;color:var(--text) }
.nl-item.feat { grid-template-columns:1.15fr 1fr;padding:20px }
.nl-item.feat .nl-d { font-size:15px }
.nl-item.feat .nl-t { font-size:24px }
.nl-item:hover { border-color:var(--accent);box-shadow:var(--shadow-card) }
.nl-ph { border-radius:var(--radius-m);overflow:hidden;background:var(--surface);min-height:150px }
.nl-ph img { width:100%;height:100%;object-fit:cover;display:block }
.nl-rubric { font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:11px;padding:3px 10px;border-radius:999px }
.nl-rubric.r-fact { color:#0B6BCB;background:#E8F2FD }
.nl-rubric.r-infra { color:#B45309;background:#FEF3E2 }
.nl-rubric.r-prog { color:#15803D;background:#E7F6EC }
.nl-seo { margin-top:34px;border-top:1px solid var(--border);padding-top:20px;font-size:13.5px;color:var(--text-2);line-height:1.7;max-width:820px }
.nl-sub { font-size:15.5px;color:var(--text-2);max-width:720px;margin-bottom:26px }
.nl-t { font-size:19px;font-weight:800;line-height:1.3;color:var(--text);letter-spacing:-.01em }
.nl-tag { font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-soft);padding:3px 10px;border-radius:999px;font-size:11px }
.nl-tagrow { flex-wrap:wrap }
.nl-thin { font-size:11px;font-weight:800;color:#B45309;background:#FEF3E2;border:1px dashed #E4B273;border-radius:999px;padding:2px 8px;white-space:nowrap }
.nl-wrap { max-width:var(--container);margin:0 auto;padding:26px 24px 56px }
.nl-wrap-none { max-width:1020px;margin:0 auto;padding:26px 24px 56px }
.nl-zhk { display:flex;flex-wrap:wrap;gap:6px;margin-top:2px }
.nl-zhk a { font-size:12px;font-weight:700;color:var(--text-2);background:var(--surface);border:1px solid var(--border);padding:3px 10px;border-radius:999px;text-decoration:none }
.nl-zhk a:hover { color:var(--accent);border-color:var(--accent) }
.np-body { font-size:15.5px;line-height:1.72 }
.np-body a { font-weight:600 }
.np-body h2 { font-size:23px;font-weight:800;letter-spacing:-.015em;margin:32px 0 14px }
.np-body h3 { font-size:17.5px;font-weight:800;margin:24px 0 10px }
.np-body li { margin-bottom:8px }
.np-body p { margin:0 0 16px }
.np-body ul,.np-body ol { margin:0 0 16px;padding-left:22px }
.np-box { margin:34px 0 8px;border-top:1px solid var(--border);padding-top:22px }
.np-box h2 { font-size:19px;font-weight:800;margin:0 0 14px }
.np-cap { font-size:12.5px;color:var(--text-3);margin:0 0 26px }
.np-cta { margin:30px 0;background:linear-gradient(135deg,#0B1B33,#123A6E);border-radius:var(--radius-l);padding:24px 26px;color:#fff }
.np-cta-f { display:flex;gap:10px;flex-wrap:wrap }
.np-cta-f button { border:0;border-radius:var(--radius-m);background:#fff;color:var(--navy);font-weight:800;font-size:14.5px;padding:11px 20px;cursor:pointer;flex:none }
.np-cta-f input,.np-cta-f select { border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;border-radius:var(--radius-m);padding:11px 13px;font:inherit;font-size:14px;flex:1 1;min-width:150px }
.np-cta-f input::placeholder { color:rgba(255,255,255,.55) }
.np-cta-f select option { color:var(--text) }
.np-cta-pdn { font-size:11.5px;color:rgba(255,255,255,.6);margin-top:10px;line-height:1.45 }
.np-cta-pdn a { color:rgba(255,255,255,.85) }
.np-cta-s { font-size:14px;color:rgba(255,255,255,.78);margin-bottom:14px }
.np-cta-t { font-size:19px;font-weight:800;line-height:1.3;margin-bottom:6px }
.np-disc { margin:26px 0 0;padding-top:16px;border-top:1px dashed var(--border);font-size:12.5px;color:var(--text-3);line-height:1.6 }
.np-fact { background:var(--surface);border-left:3px solid var(--accent);border-radius:0 var(--radius-m) var(--radius-m) 0;padding:14px 18px;margin:0 0 16px;font-size:14.5px }
.np-grid { display:block }
.np-h1 { font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.18;margin:0 0 12px }
.np-img { border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--border);margin:0 0 8px }
.np-img img { width:100%;display:block }
.np-imgrow { grid-template-columns:repeat(2,minmax(0,1fr)) }
.np-imgrow figcaption { font-size:12px;color:var(--text-3);margin-top:6px }
.np-imgrow figure { margin:0 }
.np-imgrow img { aspect-ratio:4/3;object-fit:cover }
.np-imgrow>* { min-width:0 }
.np-kicker { font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:10px }
.np-lead { font-size:17.5px;line-height:1.6;color:var(--text-2);margin-bottom:22px }
.np-main { max-width:820px }
.np-meta { display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--text-3);margin-bottom:18px }
.np-meta b { color:var(--text-2);font-weight:600 }
.np-share { display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-3);margin:-6px 0 18px }
.np-share a,.np-share button { display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:#fff;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700;color:var(--text-2);text-decoration:none;cursor:pointer }
.np-share a:hover,.np-share button:hover { color:var(--accent);border-color:var(--accent) }
.np-side { display:none }
.np-side button { border:0;border-radius:var(--radius-m);background:var(--accent);color:#fff;font-weight:700;font-size:14.5px;padding:11px;cursor:pointer }
.np-side button:hover { background:var(--accent-hover) }
.np-side form { display:grid;grid-gap:8px;gap:8px }
.np-side input,.np-side select { border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 12px;font:inherit;font-size:14px;width:100% }
.np-side-s { font-size:13px;color:var(--text-2);margin-bottom:12px;line-height:1.5 }
.np-side-t { font-size:17px;font-weight:800;margin-bottom:6px }
.np-thin { font-size:11px;font-weight:800;color:#B45309;background:#FEF3E2;border:1px dashed #E4B273;border-radius:999px;padding:2px 10px;white-space:nowrap }
.np-toc { margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--border) }
.np-toc a { display:block;font-size:13.5px;color:var(--text-2);text-decoration:none;padding:4px 0;line-height:1.4 }
.np-toc a:hover { color:var(--accent) }
.np-toc-t { font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:8px }
.np-wrap { max-width:var(--container) }
.npc { display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius-m);padding:12px 14px;text-decoration:none;color:var(--text) }
.npc-b { display:flex;flex-direction:column;gap:3px;min-width:0 }
.npc-b b { font-size:14.5px;font-weight:800;color:var(--text);line-height:1.25 }
.npc-dev { font-size:12px;color:var(--text-3) }
.npc-go { margin-top:4px;display:inline-block;font-size:12px;font-weight:800;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:3px 12px }
.npc-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
.npc-grid>* { min-width:0 }
.npc-m { font-size:12.5px;color:var(--text-2) }
.npc-note { font-size:12px;color:var(--text-3) }
.npc-p { font-size:13.5px;font-weight:800;color:var(--accent) }
.npc-ph { flex:none;width:108px;height:74px;border-radius:8px;overflow:hidden;background:var(--surface) }
.npc-ph img { width:100%;height:100%;object-fit:cover;display:block }
.npc:hover { border-color:var(--accent);box-shadow:var(--shadow-card) }
.npc:hover .npc-go { background:var(--accent);color:#fff }
.nrel-arr { flex:none;color:var(--text-3) }
.nrel-d { flex:none;font-size:12.5px;color:var(--text-3) }
.nrel-item { display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-m);padding:10px 16px 10px 10px;text-decoration:none;color:var(--text) }
.nrel-item:hover { border-color:var(--accent);box-shadow:var(--shadow-card) }
.nrel-item:hover .nrel-arr { color:var(--accent) }
.nrel-item:hover .nrel-t { color:var(--accent) }
.nrel-list { display:grid;grid-gap:10px;gap:10px;margin-top:14px }
.nrel-ph { flex:none;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--surface) }
.nrel-ph img { width:100%;height:100%;object-fit:cover;display:block }
.nrel-sec { max-width:var(--container);margin:0 auto 44px;padding:0 24px }
.nrel-t { flex:1 1;min-width:0;font-size:14.5px;font-weight:700;color:var(--text);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden }
.nrel-tag { flex:none;width:80px;text-align:center;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-soft);padding:4px 0;border-radius:999px }
.num { font-feature-settings:"tnum"; font-variant-numeric:tabular-nums }
.p-addr { font-size:13.5px;color:var(--text-2);margin-top:2px }
.p-anchor { scroll-margin-top:150px }
.p-cols { display:grid;grid-template-columns:7fr 5fr;grid-gap:24px;gap:24px;align-items:start }
.p-cta { display:flex;gap:10px;flex-wrap:wrap }
.p-dev { font-size:14px;color:var(--text-2) }
.p-dev a { color:var(--accent);font-weight:600 }
.p-fact { padding:16px 20px;border-right:1px solid var(--border) }
.p-fact .k { font-size:12.5px;color:var(--text-3);margin-bottom:4px }
.p-fact .v { font-size:15px;font-weight:700;color:var(--navy) }
.p-fact:nth-child(3n) { border-right:0 }
.p-fact:nth-child(4n) { border-right:0 }
.p-fact:nth-child(n+5) { border-top:1px solid var(--border) }
.p-facts { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;margin:24px 0;box-shadow:var(--shadow-card) }
.p-hero { padding:28px 0 8px }
.p-hero-grid { display:grid;grid-template-columns:7fr 5fr;grid-gap:24px;gap:24px;align-items:start }
.p-hero-grid>*,.p-mort>*,.p-cols>* { min-width:0 }
.p-info { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:22px 24px;box-shadow:var(--shadow-card) }
.p-info h1 { font-size:27px;letter-spacing:-.01em;margin:10px 0 4px }
.p-metro { display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 }
.p-metro span { display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);padding:5px 10px;border-radius:var(--radius-pill) }
.p-mini { display:grid;grid-template-columns:1fr 1fr;grid-gap:8px 16px;gap:8px 16px;font-size:13.5px;color:var(--text-2);border-top:1px solid var(--border);padding-top:12px;margin-bottom:16px }
.p-mini b { color:var(--navy);font-weight:600 }
.p-mort { display:grid;grid-template-columns:5fr 7fr;grid-gap:24px;gap:24px;align-items:start }
.p-note { margin-top:10px;font-size:12.5px;color:var(--text-3);display:flex;align-items:center;gap:6px }
.p-photos { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-top:16px }
.p-photos figcaption { position:absolute;left:8px;bottom:8px;background:rgba(8,18,38,.62);color:#fff;font-size:11.5px;padding:3px 8px;border-radius:99px }
.p-photos figure { margin:0;position:relative;border-radius:var(--radius-m);overflow:hidden;aspect-ratio:4/3;background:var(--surface) }
.p-photos img { width:100%;height:100%;object-fit:cover;display:block }
.p-price { display:flex;align-items:baseline;gap:10px;margin:6px 0 12px }
.p-price .num-big { font-size:26px;font-weight:800;letter-spacing:-.01em }
.p-price .per { font-size:13.5px;color:var(--text-2) }
.p-sec { padding:32px 0 }
.p-sec-head { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap }
.p-sec-head .fresh { font-size:12.5px;color:var(--text-3) }
.p-sec-head h2 { font-size:21px;letter-spacing:-.01em }
.p-sec.alt { background:var(--surface) }
.p-similar { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px }
.p-subnav { position:-webkit-sticky; position:sticky;top:72px;z-index:30;background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);margin-top:20px }
.p-subnav .container { display:flex;gap:2px;overflow-x:auto;padding-top:0;padding-bottom:0 }
.p-subnav a { white-space:nowrap;padding:14px 14px;font-size:14px;font-weight:600;color:var(--text-2);border-bottom:2px solid transparent }
.p-subnav a.on { color:var(--accent);border-bottom-color:var(--accent) }
.p-subnav a:hover { color:var(--navy) }
.p-text p { font-size:14.5px;color:var(--text-2);line-height:1.65;margin-bottom:12px }
.p404 { max-width:760px;margin:0 auto;text-align:center;padding:16px 0 72px }
.p404 h1 { font-size:24px;margin:0 0 10px;color:var(--navy,#0B1B33) }
.p404-back { margin:30px auto 0;display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:1px solid #C9D2E0;border-radius:10px;background:#fff;color:var(--navy,#0B1B33);font-weight:600;font-size:14.5px;text-decoration:none;transition:border-color .15s,color .15s }
.p404-back:hover { border-color:#0A6CFF;color:#0A6CFF }
.p404-card { display:flex;flex-direction:column;background:#fff;border:1px solid #E6E4EE;border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s;height:100% }
.p404-card .a2 { display:block;font-size:12px;color:#8A94A6;margin-top:2px }
.p404-card .b { display:flex;flex-direction:column;flex:1 1;padding:10px 12px 12px }
.p404-card .l { display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;color:#8A94A6;margin-top:2px }
.p404-card .n { display:block;font-weight:700;font-size:14.5px;color:var(--navy,#0B1B33) }
.p404-card .p { display:block;font-weight:700;font-size:13px;color:var(--navy,#0B1B33);margin-top:5px }
.p404-card .s { display:block;font-size:12.5px;margin-top:auto;padding-top:8px;color:#5F6B7A }
.p404-card .s .dot { display:inline-block;width:7px;height:7px;border-radius:50%;background:#F0A13A;margin-right:6px;vertical-align:1px }
.p404-card .s.done .dot { background:#16A34A }
.p404-card img { width:100%;aspect-ratio:16/9;object-fit:cover;display:block }
.p404-card:hover { border-color:#0A6CFF }
.p404-cards { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;text-align:left;grid-auto-rows:1fr }
.p404-cards-h { font-size:19px;margin:44px 0 4px;color:var(--navy,#0B1B33) }
.p404-cards-note { font-size:13.5px;color:#8A94A6;margin:0 0 18px }
.p404-code { font-size:120px;font-weight:800;line-height:1;letter-spacing:2px;color:var(--navy,#0B1B33);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0 0 4px }
.p404-code .dot { color:var(--accent,#0A6CFF) }
.p404-guess { max-width:540px;margin:0 auto 16px;padding:12px 16px;background:#F6F5F9;border:1px solid #E6E4EE;border-radius:12px;font-size:14.5px;color:#5F6B7A }
.p404-guess a { font-weight:700;color:#0A6CFF;text-decoration:none }
.p404-guess a:hover { text-decoration:underline }
.p404-search { display:flex;gap:10px;max-width:540px;margin:0 auto;text-align:left;position:relative }
.p404-search .btn-primary { height:48px;padding:0 26px;border-radius:10px;white-space:nowrap;flex:none }
.p404-search input { flex:1 1;height:48px;border:1px solid #C9D2E0;border-radius:10px;padding:0 16px;font-size:15px;font-family:inherit;background:#fff;color:var(--navy,#0B1B33) }
.p404-search input:focus { outline:2px solid rgba(10,108,255,.25);outline-offset:1px;border-color:#0A6CFF }
.p404-txt { color:#5F6B7A;max-width:460px;margin:0 auto 22px;font-size:15.5px;line-height:1.55 }
.p503 { max-width:560px;margin:0 auto;text-align:center;padding:56px 0 96px }
.p503 a.btn-primary { display:inline-block;height:48px;line-height:48px;padding:0 28px;border-radius:10px;text-decoration:none }
.p503 h1 { font-size:23px;margin:0 0 10px;color:var(--navy,#0B1B33) }
.p503-code { font-size:96px;font-weight:800;line-height:1;color:var(--navy,#0B1B33);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0 0 12px }
.p503-code .dot { color:var(--accent,#0A6CFF) }
.p503-txt { color:#5F6B7A;font-size:15.5px;line-height:1.55;margin:0 auto 26px;max-width:420px }
.page-head h1 { font-size:32px;font-weight:800;color:#fff;margin:0 0 8px }
.page-head p { color:rgba(255,255,255,.75);font-size:15px;margin:0;max-width:640px }
.page-top { background:var(--navy);color:#fff;padding:96px 0 36px;margin-bottom:32px }
.pdn-check { display:flex;gap:8px;align-items:flex-start;margin:10px 0 4px;font-size:12px;color:var(--text-2);cursor:pointer;line-height:1.4 }
.pdn-check a { color:var(--text-2) }
.pdn-check input { width:16px;height:16px;margin-top:1px;flex-shrink:0;accent-color:var(--accent,#0A6CFF) }
.pdn-check.miss { color:#DC2626;outline:1px solid #DC2626;outline-offset:4px;border-radius:6px }
.pdn-note { font-size:11.5px;color:var(--text-3);margin-top:8px;line-height:1.45 }
.pdn-note a { color:var(--text-2) }
.pf { border:1px solid var(--line,#E6E4EE);border-radius:18px;padding:18px 20px;margin-bottom:22px;background:#fff }
.pf-active { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 16px }
.pf-active:empty { display:none }
.pf-chip { font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid var(--border,#E6E4EE);background:#fff;color:var(--text,#0B1B33);cursor:pointer;font-family:inherit }
.pf-chip small { font-weight:500;opacity:.75 }
.pf-chip.on { background:var(--accent,#0A6CFF);border-color:var(--accent,#0A6CFF);color:#fff }
.pf-chip:hover { border-color:var(--accent,#0A6CFF) }
.pf-close { display:none }
.pf-go { font-size:14px;font-weight:700;padding:10px 22px;border-radius:10px;border:0;background:var(--accent,#0A6CFF);color:#fff;cursor:pointer;font-family:inherit }
.pf-go:hover { background:var(--accent-hover,#0057D9) }
.pf-in { font-size:13.5px;padding:9px 12px;border:1px solid var(--border,#E6E4EE);border-radius:10px;width:130px }
.pf-in.w { width:200px }
.pf-kv-link { font-size:13.5px;font-weight:600;color:var(--accent,#0A6CFF);text-decoration:none;margin-left:auto;align-self:center;white-space:nowrap }
.pf-kv-link:hover { text-decoration:underline }
.pf-lbl { font-size:12.5px;color:#8A94A6;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-right:2px }
.pf-reset { font-size:13px;color:#8A94A6;background:none;border:0;cursor:pointer;text-decoration:underline;font-family:inherit }
.pf-row { display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px }
.pf-row:last-child { margin-bottom:0 }
.pf-sel { font-size:13.5px;padding:9px 12px;border:1px solid var(--border,#E6E4EE);border-radius:10px;background:#fff;color:var(--text,#0B1B33);max-width:220px }
.pf-toast { position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#0B1F33;color:#fff;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 10px 30px rgba(11,27,51,.35);z-index:1400;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s }
.pf-toast.show { opacity:1;transform:translateX(-50%) translateY(-4px) }
.pf-toggle { display:none }
.pfms { position:relative;display:inline-block }
.pfms-btn { display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font:inherit;font-size:14px;color:var(--text);cursor:pointer;max-width:230px }
.pfms-btn .n { background:var(--accent);color:#fff;border-radius:999px;font-size:11.5px;font-weight:800;padding:1px 7px }
.pfms-btn .v { overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.pfms-btn svg { flex:none;color:var(--text-3) }
.pfms-btn:hover { border-color:var(--accent) }
.pfms-foot { display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);font-size:13px }
.pfms-foot .cls { margin-left:auto;color:var(--text-3) }
.pfms-foot button { border:none;background:none;color:var(--accent);font:inherit;font-weight:700;cursor:pointer;padding:0 }
.pfms-list { max-height:260px;overflow:auto;padding:6px }
.pfms-opt { display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:14px }
.pfms-opt input { accent-color:var(--accent);width:16px;height:16px;flex:none;margin:0 }
.pfms-opt:hover { background:var(--surface) }
.pfms-panel { position:absolute;top:calc(100% + 6px);left:0;z-index:90;width:300px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 48px rgba(11,27,51,.22);display:none;flex-direction:column;overflow:hidden }
.pfms-search { padding:10px 12px;border-bottom:1px solid var(--border) }
.pfms-search input { width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:13.5px }
.pfms.open .pfms-btn { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.pfms.open .pfms-panel { display:flex }
.pgn { display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:34px 0 46px }
.pgn .dis { opacity:.45;pointer-events:none }
.pgn .on { background:var(--navy);color:#fff;border-color:var(--navy) }
.pgn a,.pgn span { min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:14.5px;font-weight:600;color:var(--navy);text-decoration:none;cursor:pointer }
.pgn a:hover { border-color:var(--accent);color:var(--accent) }
.plan { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;display:flex;flex-direction:column }
.plan-area { font-size:13.5px;color:var(--text-2) }
.plan-body { padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px;flex:1 1 }
.plan-cta { display:flex;gap:8px;margin-top:10px }
.plan-cta .btn-primary { flex:1 1;text-align:center }
.plan-extra { list-style:none;padding:0;margin:10px 0 0;font-size:12px;color:var(--text-2);display:flex;flex-direction:column;gap:4px }
.plan-extra li::before { content:"— " }
.plan-fav { width:38px;height:38px;flex:none;border-radius:var(--radius-m);border:1px solid var(--border);background:#fff;color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer }
.plan-fav.on { color:#E0245E;border-color:#F1B7C6;background:#FDF2F5 }
.plan-filters { display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px }
.plan-filters select { height:38px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 12px;font-size:13.5px;background:#fff;color:var(--navy) }
.plan-floor { font-size:12.5px;color:var(--text-3) }
.plan-img { background:#fff;border-bottom:1px solid var(--border);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:10px }
.plan-img a { display:block;cursor:pointer }
.plan-img img { width:100%;height:100%;object-fit:contain;display:block }
.plan-img svg { width:100%;height:100% }
.plan-name { font-weight:700;font-size:15px }
.plan-price { margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-top:10px }
.plan-price .meter { font-size:12px;color:var(--text-3);white-space:nowrap }
.plan-price .num { font-size:17px;font-weight:800 }
.plan-top { display:flex;justify-content:space-between;align-items:baseline;gap:8px }
.plan:hover { box-shadow:var(--shadow-card) }
.plans { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px }
.price-drop { font-size:11px;font-weight:700;color:#15803D;background:#E7F6EC;border-radius:6px;padding:2px 6px;margin-left:6px;white-space:nowrap }
.prog-card { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;text-align:left }
.prog-card.on { border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) }
.prog-cards { display:flex;flex-direction:column;gap:10px }
.prog-desc { font-size:12.5px;color:var(--text-3);margin-top:2px }
.prog-name { font-weight:700;font-size:15px }
.prog-rate { font-size:20px;font-weight:800;color:var(--accent);white-space:nowrap }
.promo { display:flex;gap:16px;align-items:center;background:var(--amber-bg);border:1px solid #F3DFC0;border-radius:var(--radius-l);padding:16px 20px;margin-top:20px }
.promo .btn-outline { margin-left:auto;white-space:nowrap }
.promo .tag { font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--amber);white-space:nowrap }
.promo b { font-size:15.5px }
.promo p { font-size:13px;color:var(--text-2);margin-top:2px }
.qm-back { border:0;background:transparent;font-size:14px;font-weight:600;color:var(--text-2);padding:8px 4px }
.qm-back:hover { color:var(--text) }
.qm-body { padding:18px 24px 24px }
.qm-close { margin-left:auto;width:36px;height:36px;border:0;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--text-2) }
.qm-close:hover { background:var(--border);color:var(--navy) }
.qm-dialog { position:relative;background:#fff;border-radius:var(--radius-l);box-shadow:var(--shadow-float); width:100%;max-width:560px;max-height:calc(100vh - 40px);overflow:auto; }
.qm-done { display:none;padding:10px 24px 28px;text-align:center }
.qm-done .ok-ic { width:56px;height:56px;border-radius:50%;background:#E7F6EC;color:var(--green);display:flex;align-items:center;justify-content:center;margin:6px auto 14px }
.qm-done .summary { margin-top:14px;background:var(--surface);border-radius:var(--radius-m);padding:12px 16px;font-size:13.5px;color:var(--text-2);text-align:left }
.qm-done .summary b { color:var(--navy) }
.qm-done h3 { font-size:20px;font-weight:800;color:var(--navy);letter-spacing:-.01em }
.qm-done p { color:var(--text-2);font-size:14.5px;margin-top:8px }
.qm-field + .qm-field { margin-top:12px }
.qm-field label { display:block;font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px }
.qm-field select,.qm-field input { width:100%;height:46px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 12px;font:inherit;font-size:14.5px;color:var(--text);background:#fff }
.qm-field select:focus,.qm-field input:focus { border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft) }
.qm-field select:hover,.qm-field input:hover { border-color:#C9D2E0 }
.qm-form.js .qm-step { display:none }
.qm-form.js .qm-step.on { display:block }
.qm-head { display:flex;align-items:center;gap:12px;padding:18px 24px 0 }
.qm-head .qm-title { font-size:17px;font-weight:800;color:var(--navy);letter-spacing:-.01em }
.qm-nav { display:flex;align-items:center;gap:14px;margin-top:22px }
.qm-next { flex:1 1;max-width:280px }
.qm-pair { display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px }
.qm-step { border:0;padding:0;margin:0;min-width:0 }
.qm-step .qm-hint { font-size:13.5px;color:var(--text-3);margin-bottom:14px }
.qm-step legend { font-size:17px;font-weight:800;color:var(--navy);letter-spacing:-.01em;margin-bottom:4px;padding:0 }
.quick-links { display:flex;align-items:center;gap:8px;flex-wrap:wrap; margin-top:18px;position:relative;z-index:2; }
.quick-links .lbl { color:rgba(255,255,255,.6);font-size:13.5px;margin-right:4px }
.quick-links a.chip { color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25); padding:6px 14px;border-radius:var(--radius-pill);font-size:13.5px;font-weight:500; }
.quick-links a.chip:hover { background:rgba(255,255,255,.24);color:#fff }
.quick-links a.map-link { color:#fff;margin-left:auto;font-weight:600;font-size:14px; display:flex;align-items:center;gap:6px;border-bottom:1px dashed rgba(255,255,255,.5); }
.quick-links a.map-link:hover { border-bottom-style:solid;color:#fff }
.quiz-card { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-card);overflow:hidden }
.quiz-card.done .qz-done { display:block }
.quiz-card.done .qz-progress,.quiz-card.done .qz-body { display:none }
.quiz-card.js .qz-step { display:none }
.quiz-card.js .qz-step + .qz-step { margin-top:0;padding-top:0;border-top:0 }
.quiz-card.js .qz-step.on { display:block }
.quiz-cta { display:flex;align-items:center;gap:16px;margin-top:14px;padding:14px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);text-decoration:none }
.quiz-cta-arrow { display:none;color:var(--accent);flex:none }
.quiz-cta-btn { margin-left:auto;height:44px;padding:0 24px;border-radius:var(--radius-m);background:var(--accent);color:#fff;font-size:14px;font-weight:700;display:inline-flex;align-items:center;gap:10px;flex:none }
.quiz-cta-t { flex:1 1;min-width:0 }
.quiz-cta-t b { display:block;font-size:15.5px;color:var(--navy);letter-spacing:-.01em }
.quiz-cta-t>span { display:block;font-size:13px;color:var(--text-2);margin-top:2px }
.quiz-cta:hover .quiz-cta-btn { background:var(--accent-hover) }
.quiz-cta:hover .quiz-cta-t b { color:var(--accent) }
.qz-agree { display:flex;gap:9px;align-items:flex-start;margin-top:14px;font-size:12.5px;line-height:1.45;color:var(--text-3);cursor:pointer }
.qz-agree a { color:var(--accent) }
.qz-agree input { width:16px;height:16px;margin-top:1px;flex:none;accent-color:var(--accent);cursor:pointer }
.qz-agree.warn { color:var(--amber) }
.qz-aside { position:-webkit-sticky; position:sticky;top:96px }
.qz-back { border:0;background:transparent;font-size:14px;font-weight:600;color:var(--text-2);padding:8px 4px }
.qz-back:hover { color:var(--text) }
.qz-bar { height:4px;border-radius:var(--radius-pill);background:var(--surface);overflow:hidden }
.qz-bar i { display:block;height:100%;width:25%;background:var(--accent);border-radius:var(--radius-pill);transition:width .25s ease }
.qz-body { padding:22px 24px 24px }
.qz-chips { display:flex;gap:8px;flex-wrap:wrap }
.qz-chips button { height:46px;padding:0 18px;border:1px solid var(--border);border-radius:var(--radius-m);background:#fff;font-size:14.5px;font-weight:600;color:var(--text) }
.qz-chips button.active { background:var(--accent);border-color:var(--accent);color:#fff }
.qz-chips button.ghost { color:var(--text-2);border-style:dashed }
.qz-chips button:hover { border-color:var(--accent);color:var(--accent) }
.qz-done { display:none;padding:22px 24px 26px;text-align:center }
.qz-done .ok-ic { width:56px;height:56px;border-radius:50%;background:#E7F6EC;color:var(--green);display:flex;align-items:center;justify-content:center;margin:6px auto 14px }
.qz-done .summary { margin-top:16px;background:var(--surface);border-radius:var(--radius-m);padding:12px 16px;font-size:13.5px;color:var(--text-2);text-align:left }
.qz-done .summary b { color:var(--navy) }
.qz-done h2 { font-size:21px;font-weight:800;color:var(--navy);letter-spacing:-.01em }
.qz-done p { color:var(--text-2);font-size:14.5px;margin-top:8px }
.qz-field + .qz-field { margin-top:12px }
.qz-field label { display:block;font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px }
.qz-field select,.qz-field input { width:100%;height:46px;border:1px solid var(--border);border-radius:var(--radius-m); padding:0 12px;font:inherit;font-size:14.5px;color:var(--text);background:#fff; }
.qz-field select:focus,.qz-field input:focus { border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft) }
.qz-field select:hover,.qz-field input:hover { border-color:#C9D2E0 }
.qz-head .sub { color:var(--text-2);font-size:15.5px;margin-top:10px;max-width:560px }
.qz-head h1 { font-size:32px;font-weight:800;letter-spacing:-.02em;color:var(--navy);line-height:1.18 }
.qz-layout { display:grid;grid-template-columns:minmax(0,660px) 1fr;grid-gap:48px;gap:48px;align-items:start;margin-top:26px }
.qz-modal { position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:20px }
.qz-modal .qm-veil { position:absolute;inset:0;background:rgba(8,18,38,.55) }
.qz-modal.open { display:flex }
.qz-nav { display:flex;align-items:center;gap:14px;margin-top:26px }
.qz-next { flex:1 1;max-width:280px }
.qz-pair { display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px }
.qz-progress { padding:12px 24px 0 }
.qz-progress .qz-steps-lbl { display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--text-3);margin-bottom:8px }
.qz-step { border:0;padding:0;margin:0;min-width:0 }
.qz-step + .qz-step { margin-top:26px;padding-top:22px;border-top:1px dashed var(--border) }
.qz-step .qz-hint { font-size:13.5px;color:var(--text-3);margin-bottom:14px }
.qz-step legend { font-size:18px;font-weight:800;color:var(--navy);letter-spacing:-.01em;margin-bottom:4px;padding:0 }
.qz-tabs { display:inline-flex;background:var(--surface);border-radius:var(--radius-pill);padding:3px;margin-bottom:14px }
.qz-tabs button { border:0;background:transparent;padding:7px 16px;border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;color:var(--text-2) }
.qz-tabs button.active { background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(11,27,51,.14) }
.qz-trust { background:linear-gradient(135deg,#0B1B33,#123A6E);border-radius:var(--radius-l);padding:24px 26px;color:#fff }
.qz-trust .t-phone { margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16);font-size:13.5px;color:rgba(255,255,255,.65) }
.qz-trust .t-phone a { color:#fff;font-weight:800;font-size:17px;letter-spacing:.01em }
.qz-trust h2 { color:#fff;font-size:19px;font-weight:800;margin-bottom:14px;letter-spacing:-.01em }
.qz-trust li { display:flex;gap:12px;padding:9px 0;font-size:14px;color:rgba(255,255,255,.82);line-height:1.45 }
.qz-trust li svg { flex:none;margin-top:2px;color:#5AA2FF }
.qz-trust ul { list-style:none }
.qz-wrap { padding:26px 0 72px }
.r-card { border:1px solid var(--border);border-radius:var(--radius-l);background:#fff;box-shadow:var(--shadow-card);padding:20px }
.r-card h3 { font-size:16.5px;margin:0 0 6px;display:flex;align-items:center;gap:9px }
.r-card h3 .ic { display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--accent);flex:none }
.r-card li { margin:3px 0 }
.r-card p { font-size:14px;color:var(--text-2);margin:0 0 10px }
.r-card ul { margin:0;padding-left:18px;font-size:13.5px;color:var(--text-2) }
.r-cond { border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);padding:20px 22px }
.r-cond li { margin:7px 0 }
.r-cond ol { margin:0;padding-left:20px;font-size:14px;color:var(--text) }
.r-cta { display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border-radius:var(--radius-l);background:var(--navy);color:#fff;padding:24px 26px;margin:26px 0 36px }
.r-cta .a1 { background:var(--accent);color:#fff }
.r-cta .a1:hover { background:var(--accent-hover) }
.r-cta .a2 { border:1px solid rgba(255,255,255,.4);color:#fff }
.r-cta .a2:hover { border-color:#fff }
.r-cta .btns { display:flex;gap:12px;flex-wrap:wrap }
.r-cta a { display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:var(--radius-m);font-size:14.5px;font-weight:700;text-decoration:none }
.r-cta b { font-size:19px;display:block;margin-bottom:4px }
.r-cta span { font-size:14px;color:rgba(255,255,255,.75) }
.r-fmt { display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:10px }
.r-sec { margin:26px 0 8px }
.r-sec .sub { font-size:14px;color:var(--text-2);margin:0 0 14px }
.r-sec h2 { font-size:21px;margin:0 0 4px }
.r-stat { border:1px solid var(--border);border-radius:var(--radius-l);background:#fff;box-shadow:var(--shadow-card);padding:16px 18px }
.r-stat b { display:block;font-size:24px;letter-spacing:-.5px;color:var(--navy) }
.r-stat span { font-size:13px;color:var(--text-2) }
.r-stats { display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin:18px 0 26px }
.reg-note { background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:26px 28px;max-width:640px }
.reg-note a { display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:10px 18px;border-radius:10px }
.reg-note h3 { margin:0 0 8px;font-size:18px;color:var(--navy) }
.reg-note p { margin:0 0 14px;font-size:14.5px;color:var(--text-2) }
.reg-tabs { display:inline-flex;background:#fff;border:1px solid var(--border);border-radius:12px;padding:4px;gap:4px;margin:0 0 20px }
.reg-tabs button { border:none;background:transparent;border-radius:9px;padding:9px 18px;font:inherit;font-size:14.5px;font-weight:700;color:var(--text-2);cursor:pointer }
.reg-tabs button small { font-weight:600;opacity:.72;margin-left:5px }
.reg-tabs button.on { background:var(--navy);color:#fff }
.rj-card { display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--navy) }
.rj-card.rj-on .rj-n { color:var(--accent) }
.rj-card.rj-on,.rj-card:focus-visible { border-color:var(--accent);box-shadow:var(--shadow-card) }
.rj-count { font-size:13px;color:var(--text-3);white-space:nowrap }
.rj-flat-h { display:none;font-size:17px;font-weight:800;color:var(--navy);margin:0 0 10px }
.rj-flat-h small { font-size:12px;font-weight:700;color:var(--text-3);background:var(--surface);border-radius:999px;padding:2px 9px;margin-left:8px }
.rj-grid { display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px }
.rj-group { margin:0 0 26px }
.rj-h2 { font-size:22px;font-weight:800;letter-spacing:-.015em;color:var(--navy);margin:0 0 14px }
.rj-h3 { font-size:17px;font-weight:800;color:var(--navy);margin:0 0 10px;display:flex;align-items:baseline;gap:8px }
.rj-h3c { font-size:12px;font-weight:700;color:var(--text-3);background:var(--surface);border-radius:999px;padding:2px 9px }
.rj-m { font-size:12.5px;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums }
.rj-mo { font-size:13.5px;color:var(--text-3);margin:6px 0 0 }
.rj-n { font-weight:700;font-size:14.5px }
.rj-none { margin:14px 0 0;font-size:14px;color:var(--text-2) }
.rj-pop { display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden;text-decoration:none;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease }
.rj-pop-b { display:flex;flex-direction:column;gap:3px;padding:10px 12px 12px }
.rj-pop-b b { font-size:14px;font-weight:800;color:var(--navy);line-height:1.25 }
.rj-pop-b i { font-style:normal;font-size:12px;color:var(--text-2) }
.rj-pop-ph { display:block;aspect-ratio:16/10;background:var(--surface);overflow:hidden }
.rj-pop-ph img { width:100%;height:100%;object-fit:cover;display:block }
.rj-pop.rj-on .rj-pop-b b { color:var(--accent) }
.rj-pop.rj-on,.rj-pop:focus-visible { border-color:var(--accent);box-shadow:var(--shadow-card) }
.rj-popgrid { display:grid;grid-template-columns:repeat(6,1fr);grid-gap:12px;gap:12px }
.rj-popwrap { margin:0 0 34px }
.rj-search { display:flex;align-items:center;gap:14px;margin:0 0 26px;flex-wrap:wrap }
.rj-search input { flex:1 1;min-width:220px;height:46px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 14px;font:inherit;font-size:14.5px;color:var(--text);background:#fff }
.rj-search input:focus { border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft) }
.rj-sug { position:relative;flex:1 1;min-width:240px }
.rj-sugit { display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 10px;font-size:14px;text-decoration:none;color:var(--navy);border-radius:8px }
.rj-sugit b { font-weight:800 }
.rj-sugit small { color:var(--text-3);font-size:12px;white-space:nowrap }
.rj-sugit.on { background:var(--accent-soft) }
.rj-suglist { position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-float);z-index:60;max-height:330px;overflow:auto;padding:6px }
.rj-tools { display:flex;gap:10px;align-items:center;margin:0 0 26px;flex-wrap:wrap }
.rj-tools select { height:44px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 12px;font:inherit;font-size:14px;background:#fff;color:var(--navy) }
.room-prices { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;margin:16px 0 8px;box-shadow:var(--shadow-card) }
.room-prices-note { font-size:12px;color:var(--text-3);margin:0 0 16px }
.rooms-chips { display:flex;gap:6px;flex-wrap:wrap }
.rooms-chips button { height:44px;min-width:40px;padding:0 11px;border:1px solid var(--border); border-radius:var(--radius-m);background:#fff;font-size:14px;font-weight:600; color:var(--text); }
.rooms-chips button.active { background:var(--accent);border-color:var(--accent);color:#fff; }
.rooms-chips button:hover { border-color:var(--accent);color:var(--accent) }
.rp { padding:14px 16px;border-right:1px solid var(--border) }
.rp-a { font-size:12px;color:var(--text-3);margin-top:2px }
.rp-p { font-size:17px;font-weight:700;margin-top:4px }
.rp-r { font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2) }
.rp:last-child { border-right:0 }
.rrow-d { flex:1 1;min-width:8px;margin:0 6px;border-bottom:1px dotted var(--border-strong);transform:translateY(-3px) }
.rrow-l { min-width:0 }
.rrow-more { display:inline-flex;align-items:center;min-height:28px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;margin-top:2px }
.rrow-none { display:flex;align-items:center;min-height:32px;font-size:13.5px;color:var(--text-3) }
.rrow-p { color:var(--navy);font-weight:600;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums }
.ry-addr { display:block;font-size:13px;color:#55606E;margin:0 0 10px }
.ry-body { display:block;padding:14px 16px 16px }
.ry-card { display:block;border:1px solid var(--border,#E3E8EF);border-radius:var(--radius-l,14px);overflow:hidden;background:#fff;text-decoration:none;color:inherit;transition:box-shadow .15s }
.ry-card:hover { box-shadow:0 6px 24px rgba(16,42,67,.10) }
.ry-chip { font-size:12px;padding:4px 10px;border-radius:999px;background:#F0F4F9;color:#3D4856;border:1px solid #E3E8EF }
.ry-chips { display:flex;gap:6px;flex-wrap:wrap }
.ry-cta { display:inline-block;margin:0 0 40px;font-weight:600 }
.ry-grid { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;margin:0 0 30px }
.ry-h1 { font-size:32px;font-weight:800;margin:0 0 10px;letter-spacing:-.02em }
.ry-name { display:block;font-weight:700;font-size:17px;margin:0 0 6px }
.ry-ph { display:block;aspect-ratio:16/10;background:#EEF2F7;overflow:hidden }
.ry-ph img { width:100%;height:100%;object-fit:cover;display:block }
.ry-price { display:block;font-weight:800;font-size:16px;margin:0 0 10px }
.ry-stat b { display:block;font-size:22px;font-weight:800 }
.ry-stat span { font-size:13px;color:#55606E }
.ry-stats { display:flex;gap:28px;flex-wrap:wrap;margin:0 0 28px;padding:18px 22px;border:1px solid var(--border,#E3E8EF);border-radius:var(--radius-l,14px);background:#F8FAFD }
.ry-sub { color:#55606E;font-size:15px;margin:0 0 24px;max-width:760px }
.ry-wrap { padding:28px 0 8px }
.search-actions { display:flex;align-items:center;gap:16px;margin-top:16px; }
.search-card { background:#fff;border-radius:var(--radius-l); box-shadow:var(--shadow-float); margin-top:28px;padding:22px 24px 18px; }
.search-compact { display:none;gap:8px }
.search-compact .btn-outline { height:48px;padding:0 18px;font-size:14.5px;flex:none }
.search-compact .btn-primary { height:48px;padding:0 20px;font-size:14.5px;flex:none }
.search-compact input { flex:1 1;height:48px;border:1px solid var(--border);border-radius:var(--radius-m);padding:0 14px;font:inherit;font-size:14.5px;color:var(--text) }
.search-grid { display:grid; grid-template-columns:1.18fr 1fr 1fr 1fr; grid-gap:20px; gap:20px; }
.search-grid>*,.p-hero-grid>*,.p-mort>*,.p-cols>*,.apt-hero>*,.hjc-grid>*,.room-prices>*,.dev-grid>*,.zhkp-hero>*,.calc>*,.nl-item>*,.zhk-grid>*,.collections>*,.district-grid>*,.footer-grid>*,.plans>*,.apt-sim>* { min-width:0 }
.search-tabs { display:inline-flex;background:var(--surface);border-radius:var(--radius-pill); padding:3px;margin-bottom:16px; }
.search-tabs button { border:0;background:transparent;padding:7px 16px;border-radius:var(--radius-pill); font-size:14px;font-weight:600;color:var(--text-2); }
.search-tabs button.active { background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(11,27,51,.14) }
.section { padding:64px 0 }
.section h2 { font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--navy);line-height:1.2; }
.section-head { display:flex;align-items:flex-end;justify-content:space-between; margin-bottom:32px;gap:24px; }
.section-head .more { font-size:14.5px;font-weight:600;white-space:nowrap; display:flex;align-items:center;gap:6px; }
.section-kicker { display:flex;align-items:baseline;gap:10px;margin-bottom:10px; }
.section-kicker .idx { font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.06em; }
.section-kicker .overline { font-size:13px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em; }
.section.alt { background:var(--surface) }
.seo-text { color:var(--text-2);font-size:14px;max-width:860px;column-gap:48px }
.seo-text h3 { color:var(--navy);font-size:16px;margin:18px 0 8px }
.seo-text p { margin-bottom:12px }
.show-more { display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:28px; }
.show-more .hint { font-size:13px;color:var(--text-3) }
.site-footer { background:var(--navy);color:rgba(255,255,255,.72);padding:48px 0 32px;margin-top:0 }
.site-footer .f-desc { font-size:13.5px;max-width:280px;color:rgba(255,255,255,.55) }
.site-footer .logo { font-size:20px;margin-bottom:10px }
.site-footer .logo .dot { color:#5AA2FF }
.site-footer h2 { color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;font-weight:700 }
.site-footer li { margin-bottom:8px }
.site-footer li a { color:rgba(255,255,255,.72);font-size:14px }
.site-footer li a:hover { color:#fff }
.site-footer ul { list-style:none }
.site-header { position:absolute;top:0;left:0;right:0;z-index:20; color:#fff; background:linear-gradient(180deg, rgba(8,18,38,.62) 0%, rgba(8,18,38,.18) 78%, rgba(8,18,38,0) 100%); border-bottom:1px solid rgba(255,255,255,.08); }
.site-header .container { display:flex;align-items:center;gap:32px;height:72px; }
.sm-count { font-size:12.5px;font-weight:700;color:var(--text-3);background:var(--surface);padding:2px 10px;border-radius:999px }
.sm-group { border:1px solid var(--border);border-radius:12px;margin-bottom:12px;background:#fff }
.sm-group summary { cursor:pointer;list-style:none;padding:16px 20px;font-weight:800;font-size:16px;display:flex;align-items:center;gap:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none }
.sm-group summary::-webkit-details-marker { display:none }
.sm-group summary::after { content:"▾";margin-left:auto;color:var(--text-3);transition:transform .15s }
.sm-group:not([open]) summary::after { transform:rotate(-90deg) }
.sm-list { list-style:none;padding:0 20px 16px;columns:3;column-gap:32px }
.sm-list li { page-break-inside:avoid; break-inside:avoid;margin-bottom:6px;font-size:14px }
.sm-list li a { color:var(--text-2) }
.sm-list li a:hover { color:var(--accent) }
.table-scroll { overflow-x:auto;-webkit-overflow-scrolling:touch }
.topbar { position:fixed;top:0;left:0;right:0;z-index:50;background:var(--navy);color:#fff }
.topbar .container { display:flex;align-items:center;gap:16px;height:56px }
.topbar a.back { color:rgba(255,255,255,.75);font-size:13.5px }
.topbar a.back:hover { color:#fff }
.topbar a.logo { color:#fff;font-size:19px;font-weight:800 }
.view-switch { display:flex;background:var(--surface);border-radius:var(--radius-pill);padding:3px }
.view-switch button { border:0;background:transparent;height:36px;padding:0 14px;border-radius:var(--radius-pill); font-size:13.5px;font-weight:600;color:var(--text-2); display:flex;align-items:center;gap:6px; }
.view-switch button.active { background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(11,27,51,.14) }
.vlist { display:flex;flex-direction:column;gap:14px }
.vrow { display:flex;gap:18px;background:#fff;border:1px solid var(--border,#E6E4EE);border-radius:18px;padding:14px;align-items:center }
.vrow-cta { font-size:13.5px;font-weight:700;color:var(--accent,#0A6CFF);text-decoration:none }
.vrow-cta:hover { text-decoration:underline }
.vrow-main { flex:1 1;min-width:0 }
.vrow-ph { flex:none;width:190px;height:128px;border-radius:12px;overflow:hidden;display:block }
.vrow-ph img { width:100%;height:100%;object-fit:cover;display:block }
.vrow-price { font-size:18px;font-weight:800;color:var(--text,#0B1B33) }
.vrow-rooms { font-size:13px;color:#37404F;line-height:1.55 }
.vrow-side { flex:none;text-align:right;display:flex;flex-direction:column;gap:8px;align-items:flex-end }
.vrow-sub { font-size:13px;color:#5F6B7A;margin:3px 0 8px }
.vrow-title { font-size:17px;font-weight:800;color:var(--text,#0B1B33);text-decoration:none }
.vrow-title:hover { color:var(--accent,#0A6CFF) }
.wrap { max-width:var(--container);margin:0 auto;padding:0 24px }
.zhk-badge { font-size:12px;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill); display:inline-flex;align-items:center;white-space:nowrap; }
.zhk-badge.done { background:#E7F6EC;color:var(--green) }
.zhk-badge.escrow { background:var(--green);color:#fff }
.zhk-badge.escrow svg { vertical-align:-2px;margin-right:4px }
.zhk-badge.new { background:var(--accent-soft);color:var(--accent) }
.zhk-badge.sale { background:var(--amber-bg);color:var(--amber) }
.zhk-badge.sold { background:var(--surface);color:var(--text-3);border:1px solid var(--border) }
.zhk-badges { position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;filter:drop-shadow(0 1px 2px rgba(11,27,51,.28)) }
.zhk-body { padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;flex:1 1 }
.zhk-card { background:#fff;border:1px solid var(--border);border-radius:var(--radius-l); overflow:hidden;display:flex;flex-direction:column; transition:box-shadow .15s ease,border-color .15s ease; }
.zhk-card a.ph-link { position:absolute;inset:0;z-index:1 }
.zhk-card a:not(.ph-link) { position:relative;z-index:2 }
.zhk-card.ad { border:1px solid var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.zhk-card.ad .zhk-cta { border-top:0;background:#fff;border:1.5px solid var(--accent);border-radius:10px; margin:12px 16px 16px;padding:10px 14px;justify-content:center;gap:8px;color:var(--accent); }
.zhk-card.ad .zhk-cta:hover { background:var(--accent-soft) }
.zhk-card:hover { box-shadow:var(--shadow-card);border-color:#D4D9E4; }
.zhk-cmp { position:absolute;top:52px;right:10px;width:36px;height:36px;border:0; border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center; }
.zhk-cmp.on { background:var(--accent) }
.zhk-cmp.on svg { stroke:#fff }
.zhk-cmp:hover { background:#fff }
.zhk-count { position:absolute;bottom:6px;right:8px; font-size:11.5px;font-weight:600;color:#fff; background:rgba(11,27,51,.55);padding:2px 8px;border-radius:var(--radius-pill); }
.zhk-cta { margin-top:auto;border-top:1px solid var(--border);padding:12px 16px; font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:space-between; }
.zhk-cta .arr { color:var(--text-3) }
.zhk-cta:hover { background:var(--accent-soft) }
.zhk-cta:hover,.zhk-cta:hover .arr { color:var(--accent) }
.zhk-dev { font-size:13px;color:var(--text-2);margin-top:-6px }
.zhk-dev a { color:inherit;text-decoration:none;position:relative;z-index:1 }
.zhk-dev a:hover { color:var(--accent) }
.zhk-fav { position:absolute;top:10px;right:10px;width:36px;height:36px;border:0; border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center; }
.zhk-fav,.zhk-cmp { z-index:2 }
.zhk-fav.on { background:#FDF2F5 }
.zhk-fav.on svg { stroke:#E0245E }
.zhk-fav:hover { background:#fff }
.zhk-grid { display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px; }
.zhk-loc { display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--text-2); }
.zhk-loc a { color:inherit;text-decoration:none;position:relative;z-index:1 }
.zhk-loc a:hover { color:var(--accent) }
.zhk-loc svg { flex:none }
.zhk-meta { font-size:12.5px;color:var(--text-2);margin-top:10px }
.zhk-more { display:block;margin:26px auto 0;padding:12px 30px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:14.5px;font-weight:700;color:var(--navy);cursor:pointer;font-family:inherit }
.zhk-more:hover { border-color:var(--accent);color:var(--accent) }
.zhk-params { display:flex;flex-wrap:wrap;gap:6px;margin-top:auto; }
.zhk-params span { font-size:12.5px;font-weight:600;color:var(--text-2); background:var(--surface);border-radius:6px;padding:3px 8px; }
.zhk-photo { position:relative;aspect-ratio:4/3;background:#E9EDF3 }
.zhk-photo img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block }
.zhk-price { display:flex;align-items:baseline;gap:8px;margin-top:2px; }
.zhk-price .from { font-size:19px;font-weight:800;color:var(--navy);letter-spacing:-.01em }
.zhk-price .meter { font-size:12.5px;color:var(--text-3) }
.zhk-rooms { display:flex;flex-direction:column;margin-top:10px;min-height:158px }
.zhk-rooms .rrow-d { flex:1 1;min-width:8px;margin:0 6px;border-bottom:1px dotted var(--border-strong);transform:translateY(-3px) }
.zhk-rooms .rrow-l { min-width:0 }
.zhk-rooms .rrow-more { display:inline-flex;align-items:center;min-height:28px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;margin-top:2px }
.zhk-rooms .rrow-none { display:flex;align-items:center;min-height:32px;font-size:13.5px;color:var(--text-3) }
.zhk-rooms .rrow-p { color:var(--navy);font-weight:600;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums }
.zhk-rooms a.rrow { display:flex;align-items:baseline;min-height:32px;text-decoration:none;color:var(--text-2);font-size:13.5px;border-radius:4px }
.zhk-rooms a.rrow:focus-visible { outline:2px solid var(--accent);outline-offset:2px }
.zhk-rooms a.rrow:hover .rrow-l,.zhk-rooms a.rrow:hover .rrow-p { color:var(--accent) }
.zhk-title { font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--navy) }
.zhk-title-row { display:flex;align-items:baseline;justify-content:space-between;gap:8px }
.zhkp-act { display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center }
.zhkp-act .zhkp-ghost { height:38px;padding:0 14px;border:1px solid var(--border,#E6E4EE);border-radius:9px;background:#fff;font-size:13px;font-weight:600;color:var(--text-2,#5F6B7A);cursor:pointer }
.zhkp-act .zhkp-ghost:hover { border-color:var(--accent,#0A6CFF);color:var(--accent,#0A6CFF) }
.zhkp-act .zhkp-tg { font-size:13px;font-weight:600;color:var(--accent,#0A6CFF);text-decoration:none;margin-left:auto }
.zhkp-act .zhkp-tg:hover { text-decoration:underline }
.zhkp-addr { font-size:15px;color:var(--text-2);margin-bottom:8px }
.zhkp-adv { font-size:13px;padding:6px 13px;border-radius:999px;background:#EEF3FA;color:#33507A }
.zhkp-advs { display:flex;flex-wrap:wrap;gap:8px;margin-top:14px }
.zhkp-badge { font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;background:#EEF3FA;color:#33507A }
.zhkp-badge.blue { background:#E7F0FF;color:#0A6CFF }
.zhkp-badges { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px }
.zhkp-btn { display:inline-block;padding:11px 20px;border-radius:10px;font-size:14.5px;font-weight:700;text-decoration:none;cursor:pointer;border:0 }
.zhkp-btn.acc { background:var(--accent);color:#fff }
.zhkp-btn.acc:hover { filter:brightness(.95) }
.zhkp-btn.ghost { background:#fff;color:var(--navy);border:1px solid var(--border) }
.zhkp-btn.ghost:hover { border-color:var(--accent);color:var(--accent) }
.zhkp-cta { margin-top:18px;border-radius:16px;padding:22px 26px;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap }
.zhkp-cta .zhkp-btn { white-space:nowrap;padding:13px 24px }
.zhkp-cta h3 { margin:0 0 4px;font-size:19px;letter-spacing:-.2px }
.zhkp-cta p { margin:0;font-size:14.5px;line-height:1.5;max-width:560px }
.zhkp-cta-row { display:flex;gap:10px;margin:14px 0 4px;flex-wrap:wrap }
.zhkp-cta.dark { background:var(--navy);color:#fff;margin:8px 0 40px;padding:30px 32px }
.zhkp-cta.dark h3 { font-size:24px;margin-bottom:6px;color:#fff }
.zhkp-cta.dark p { color:#B7C2D6 }
.zhkp-cta.soft { background:var(--accent-soft);color:var(--navy) }
.zhkp-cta.soft p { color:var(--text-2) }
.zhkp-desc { display:block;font-size:15px;line-height:1.75;color:var(--text);overflow:visible }
.zhkp-desc-more { margin-top:10px;border:0;background:none;padding:0;font:inherit;font-size:14px;font-weight:700;color:var(--accent);cursor:pointer }
.zhkp-desc-more:hover { text-decoration:underline }
.zhkp-desc-rest { display:none }
.zhkp-desc.open .zhkp-desc-rest { display:inline }
.zhkp-dev { font-size:14px;color:var(--text-2);margin-bottom:14px }
.zhkp-dev a { color:var(--accent);text-decoration:none;font-weight:600 }
.zhkp-dev a:hover { text-decoration:underline }
.zhkp-empty { padding:28px 24px;background:#f6f7f9;border:1px solid #e4e8ee;border-radius:12px;color:#5b6470;font-size:15px;line-height:1.6 }
.zhkp-h1 { font-size:38px;line-height:1.15;margin:10px 0 8px;letter-spacing:-.5px }
.zhkp-h2 { font-size:24px;margin-bottom:16px;letter-spacing:-.3px }
.zhkp-hero { display:grid;grid-template-columns:1.05fr .95fr;grid-gap:36px;gap:36px;align-items:start;margin:22px 0 40px }
.zhkp-lead { position:-webkit-sticky; position:sticky;top:88px;margin-top:18px;border:1px solid var(--border);border-radius:var(--radius-l);padding:20px 22px;background:#F8FAFD }
.zhkp-lead h2 { margin:0 0 4px;font-size:17px }
.zhkp-lead input { width:100%;box-sizing:border-box;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font-size:14px;margin-bottom:10px;font-family:inherit }
.zhkp-lead input:focus { outline:2px solid var(--accent);outline-offset:-1px }
.zhkp-lead p { margin:0 0 12px;font-size:13px;color:var(--text-2) }
.zhkp-lead-ok { display:none;font-size:13.5px;color:#177245;font-weight:600;margin-top:8px }
.zhkp-lotlink { color:var(--accent);text-decoration:none;font-size:12.5px }
.zhkp-lotlink:hover { text-decoration:underline }
.zhkp-map { position:relative }
.zhkp-map iframe { position:relative;z-index:2;opacity:0;transition:opacity .35s;background:#E8EEF5 }
.zhkp-map iframe.ok { opacity:1 }
.zhkp-map-fallback { display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 4px 0;font-size:13px;color:var(--text-2);flex-wrap:wrap }
.zhkp-map-fallback a { color:var(--accent);text-decoration:none;font-weight:600 }
.zhkp-map-fb { position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-3);font-size:13.5px;text-align:center;padding:0 20px }
.zhkp-map-skel { position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,#E8EEF5 40%,#F3F7FB 50%,#E8EEF5 60%);background-size:200% 100%;animation:zhkpskel 1.4s linear 3,zhkpskelout .6s ease 4.4s forwards }
.zhkp-more { display:inline-block;margin-top:14px;padding:11px 22px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:14px;font-weight:700;color:var(--navy);cursor:pointer;font-family:inherit;text-decoration:none }
.zhkp-more:hover { border-color:var(--accent);color:var(--accent) }
.zhkp-note { font-size:12.5px;color:var(--text-3);margin-top:10px }
.zhkp-num { font-feature-settings:"tnum"; font-variant-numeric:tabular-nums;white-space:nowrap }
.zhkp-offer-note { font-size:11.5px;color:var(--text-3);margin-top:10px;line-height:1.5 }
.zhkp-pane { overflow-x:auto;-webkit-overflow-scrolling:touch }
.zhkp-pane.on { display:block }
.zhkp-photo { border-radius:var(--radius-l);overflow:hidden;aspect-ratio:16/10;background:#DCE4EE }
.zhkp-photo img { width:100%;height:100%;object-fit:cover;display:block }
.zhkp-photo-cap { font-size:12px;color:var(--text-3);margin-top:8px }
.zhkp-photo.miss { background:linear-gradient(135deg,#E7EDF3,#D9E2EC) }
.zhkp-photo.miss::after { content:"Фото появится позже";display:flex;align-items:center;justify-content:center;height:100%;min-height:220px;color:#7A8699;font-size:14px }
.zhkp-price { font-size:26px;font-weight:800 }
.zhkp-price-sub { font-size:13px;color:var(--text-3);margin-top:2px }
.zhkp-pricebox { border:1px solid var(--border);border-radius:var(--radius-l);padding:18px 22px;margin-bottom:18px }
.zhkp-r { text-align:right !important }
.zhkp-rooms { display:flex;flex-direction:column;gap:8px;margin-top:14px }
.zhkp-rrow { display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--text);font-size:14.5px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius-m) }
.zhkp-rrow .dots { flex:1 1;border-bottom:1px dashed var(--border) }
.zhkp-rrow:hover { border-color:var(--accent);color:var(--accent) }
.zhkp-sec { margin:44px 0 }
.zhkp-tab { padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;font-family:inherit }
.zhkp-tab.on { background:var(--navy);color:#fff;border-color:var(--navy) }
.zhkp-table { width:100%;border-collapse:collapse;font-size:14.5px }
.zhkp-table td { padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle }
.zhkp-table th { font-size:12.5px;color:var(--text-3);font-weight:600;padding:10px 12px;border-bottom:2px solid var(--border);text-align:left }
.zhkp-table tr[data-href] { cursor:pointer }
.zhkp-table tr[data-href]:hover td { background:#F6F9FD }
.zhkp-table.zhkp-lots { table-layout:fixed }
.zhkp-tabs { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px }
.zhkp-thumb { display:block;position:relative;width:88px;height:60px;border-radius:6px;overflow:hidden;background:#eef1f4;flex:none }
.zhkp-thumb img { position:absolute;inset:0;width:100%;height:100%;object-fit:contain }
.zhkp-thumb svg { position:absolute;inset:0;width:100%;height:100% }
.zhkp-wrap { max-width:var(--container);margin:0 auto;padding:0 24px }
:focus-visible { outline:2px solid var(--accent);outline-offset:2px;border-radius:4px }
a { color:var(--accent);text-decoration:none }
a.dev-fact { text-decoration:none }
a.dev-fact:hover { border-color:var(--accent);color:var(--text) }
a.ph-link { position:absolute;inset:0;z-index:1;border-radius:inherit }
a.rrow { display:flex;align-items:baseline;min-height:32px;text-decoration:none;color:var(--text-2);font-size:13.5px;border-radius:4px }
a.rrow:hover .rrow-l,a.rrow:hover .rrow-p { color:var(--accent) }
a.zhk-title { text-decoration:none }
a.zhk-title:hover { text-decoration:underline }
a.zhkp-badge { text-decoration:none }
a.zhkp-badge:hover { background:#DFE9F6 }
a:hover { color:var(--accent-hover) }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; color:var(--text); background:var(--bg); font-size:15px; line-height:1.5; }
body.ads-on .slot-b { display:none }
body.inner { background:var(--bg) }
body.inner .burger { background:var(--surface);border-color:var(--border);color:var(--navy) }
body.inner .header-actions { gap:4px }
body.inner .header-actions .h-sep { background:var(--border) }
body.inner .header-actions .link-plain { color:var(--text-2) }
body.inner .header-actions .link-plain:hover { color:var(--navy);background:var(--surface) }
body.inner .header-actions > a:last-child { color:var(--navy)!important;border-color:var(--border)!important }
body.inner .main-nav a { color:var(--text-2) }
body.inner .main-nav a:hover { color:var(--navy);background:var(--surface) }
body.inner .site-footer { margin-top:auto }
body.inner .site-header { position:-webkit-sticky; position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);border-bottom:1px solid var(--border);color:var(--navy) }
body.inner .site-header .container { gap:10px }
body.inner .site-header .logo { color:var(--navy) }
body:not(.ads-on) .ad-item { display:none }
body:not(.inner) .site-header .logo .dot, .site-footer .logo .dot { color:#5AA2FF }
body>* { min-width:0 }
button { font:inherit;cursor:pointer }
details { border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:8px }
details p { margin:8px 0 0;color:var(--text-2) }
h1 { font-size:28px;font-weight:800;margin:36px 0 8px;letter-spacing:-.02em }
html { -webkit-text-size-adjust:100% }
input[type=range] { width:100%;accent-color:var(--accent);height:22px;cursor:pointer }
summary { font-weight:700;cursor:pointer }
@media (max-width:1024px) {
  .apt-hero { grid-template-columns:1fr }
  .apt-sim { grid-template-columns:1fr 1fr }
  .p-fact { padding:12px 10px }
  .p-fact .k { font-size:11px }
  .p-fact .v { font-size:13.5px }
  .p-facts { grid-template-columns:repeat(3,1fr) }
  .p-hero-grid,.p-mort,.p-cols { grid-template-columns:1fr }
  .p-hero-grid,.p-mort,.p-cols,.apt-hero { grid-template-columns:minmax(0,1fr) }
  .p-similar { grid-template-columns:1fr 1fr }
}

@media (max-width:1080px) {
  .collections { grid-template-columns:repeat(2,1fr) }
  .district-grid { grid-template-columns:repeat(2,1fr) }
  .footer-grid { grid-template-columns:1fr 1fr }
  .search-grid { grid-template-columns:repeat(2,1fr) }
  .zhk-grid { grid-template-columns:repeat(2,1fr) }
}

@media (max-width:1280px) {
  .burger { display:flex }
  .main-nav { display:none }
}

@media (max-width:1440px) {
  .site-header .h-phone { display:none }
  .site-header .h-sep { display:none }
}

@media (max-width:400px) {
  .bb-cta { white-space:normal;text-align:center;height:auto;padding:10px 14px!important;font-size:13.5px!important;line-height:1.3 }
  .burger { width:36px;height:36px }
  .header-actions .city-link { display:none }
  .header-actions .link-plain:not(.h-phone) { display:none!important }
  .header-actions > a:last-child { padding:6px 10px!important;font-size:12.5px!important }
  .logo { font-size:16px }
  .section-head { flex-direction:column;align-items:flex-start }
  .section-head .more { font-size:13.5px }
  .site-header .container { gap:6px }
}

@media (max-width:480px) {
  .burger { width:36px;height:36px }
  .header-actions { gap:2px }
  .header-actions .link-plain { padding:8px 4px;font-size:13px }
  .header-actions > a:last-child { padding:8px 8px!important;font-size:12.5px!important }
  .logo { font-size:17px }
  .site-header .container { gap:6px }
}

@media (max-width:560px) {
  .apt-facts { grid-template-columns:1fr 1fr }
  .apt-price-main .num-big { font-size:24px }
  .apt-sim { grid-template-columns:1fr }
  .bb-desc { font-size:14px }
  .bb-logo { font-size:24px }
  .brand-band { gap:16px;padding:22px }
  .brand-band>* { min-width:0 }
  .devlist { grid-template-columns:1fr;gap:12px }
  .devlist-card { padding:12px }
  .devlist-logo { width:40px;height:40px }
  .devlist-mono { width:40px;height:40px;font-size:14px;border-radius:10px }
  .devlist-name { font-size:14.5px }
  .hero-stats { display:grid;grid-template-columns:1fr 1fr;grid-gap:16px 20px;gap:16px 20px }
  .p-facts { grid-template-columns:1fr 1fr }
  .p-photos { grid-template-columns:1fr 1fr }
  .p-similar { grid-template-columns:1fr }
  .page-head h1 { font-size:26px }
  .plans { grid-template-columns:1fr }
  .plans,.apt-sim { grid-template-columns:minmax(0,1fr) }
  .search-compact { flex-wrap:nowrap;gap:6px }
  .search-compact .btn-outline { height:44px;padding:0 12px;font-size:13px }
  .search-compact .btn-primary { height:44px;padding:0 14px;font-size:13px }
  .search-compact input { flex:1 1 auto;min-width:0;height:44px;padding:0 10px;font-size:13.5px }
  .zhk-params a.rp-mhide { display:none }
}

@media (max-width:600px) {
  .sm-list { columns:1 }
}

@media (max-width:640px) {
  .news-date { width:auto }
  .news-item { flex-direction:column;gap:4px }
  .npc-grid { grid-template-columns:minmax(0,1fr) }
  .section h2 { font-size:24px }
  .zhk-grid,.collections,.district-grid,.footer-grid { grid-template-columns:1fr }
}

@media (max-width:760px) {
  .calc,.nl-item.feat,.nl-item { grid-template-columns:minmax(0,1fr) }
}

@media (max-width:768px) {
  #searchForm .search-tabs,#searchForm .search-grid,#searchForm .search-actions { display:none }
  #searchForm>.search-tabs,#searchForm>.search-grid,#searchForm>.search-actions { display:none }
  .ad-banner { flex-wrap:wrap }
  .articles-grid { grid-template-columns:1fr }
  .bb-cta { white-space:normal }
  .bottom-bar { display:flex }
  .brand-band { flex-wrap:wrap }
  .burger { display:flex }
  .calc { grid-template-columns:1fr }
  .dev-cta { margin-left:0;align-items:flex-start;flex-direction:row;flex-wrap:wrap }
  .devcard { flex-wrap:wrap }
  .filter-sheet { display:none }
  .filter-sheet.open { display:flex }
  .fs-body .search-actions { display:flex }
  .fs-body .search-grid { display:grid }
  .fs-body .search-tabs { display:inline-flex }
  .header-actions { gap:4px }
  .header-actions .link-plain { padding:8px 6px }
  .header-actions > a:last-child { padding:8px 10px!important;font-size:13px!important }
  .hero { padding:104px 0 48px }
  .hero h1 { font-size:27px }
  .hero-stats { flex-wrap:wrap;gap:18px }
  .hide-m { display:none !important }
  .list-card { grid-template-columns:1fr }
  .logo { font-size:18px }
  .main-nav { display:none }
  .map-panel { height:70vh;min-height:420px }
  .map-popup { width:220px }
  .p-info h1 { font-size:22px }
  .p-photos { grid-template-columns:1fr 1fr }
  .p-price .num-big { font-size:22px }
  .p-sec { padding:24px 0 }
  .p-subnav { top:0 }
  .pf { position:relative }
  .pf-close { display:none }
  .pf-toggle { display:flex;align-items:center;gap:8px;width:100%;min-height:46px;justify-content:center;border:1px solid var(--border-strong);border-radius:12px;background:#fff;font:inherit;font-size:15px;font-weight:700;color:var(--navy);cursor:pointer;margin:0 0 2px }
  .pf.open { position:fixed;inset:auto 0 0 0;top:8vh;z-index:1250;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -12px 48px rgba(11,27,51,.28);padding:14px 14px 18px;overflow:auto }
  .pf.open .pf-close { display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;border:none;border-radius:12px;background:var(--navy);color:#fff;font:inherit;font-size:15px;font-weight:700;cursor:pointer;margin-top:10px }
  .pf.open .pf-toggle { display:none }
  .pf.open::before { content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--border-strong);margin:0 auto 10px }
  .pf:not(.open) .pf-row { display:none }
  .pfms-panel { position:fixed;top:auto;left:12px;right:12px;width:auto;z-index:1200 }
  .plans { grid-template-columns:1fr 1fr }
  .promo { flex-wrap:wrap }
  .promo .btn-outline { margin-left:0 }
  .quick-links { flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none; gap:8px;padding-bottom:6px }
  .quick-links .lbl { flex:none;align-self:center }
  .quick-links a.chip { flex:none;display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;font-size:14px }
  .quick-links a.map-link { flex:none;align-self:center;margin-left:0;order:-1 }
  .quick-links::-webkit-scrollbar { display:none }
  .search-compact { display:flex }
  .search-compact input { min-width:88px }
  .section { padding:44px 0 }
  .section-head { flex-wrap:wrap }
  .section-head > div[style] { flex-wrap:wrap!important }
  .site-header .container { gap:8px }
  .table-scroll { background: linear-gradient(90deg,#fff 0,rgba(255,255,255,0)) left/28px 100% no-repeat local, linear-gradient(270deg,#fff 0,rgba(255,255,255,0)) right/28px 100% no-repeat local, linear-gradient(90deg,rgba(11,27,51,.10),rgba(11,27,51,0)) left/14px 100% no-repeat scroll, linear-gradient(270deg,rgba(11,27,51,.10),rgba(11,27,51,0)) right/14px 100% no-repeat scroll; }
  .view-switch { overflow-x:auto;max-width:100% }
  body { padding-bottom:64px }
  body.inner .header-actions { gap:4px }
  body.inner .header-actions .link-plain { padding:8px 6px }
  body.inner .header-actions > a:last-child { padding:8px 10px!important;font-size:13px!important }
  body.inner .site-header .container { gap:10px }
  body.inner .site-header .logo { font-size:18px }
}

@media (max-width:900px) {
  .dev-grid,.zhkp-hero { grid-template-columns:minmax(0,1fr) }
  .room-prices { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .sm-list { columns:2 }
  main.np-wrap { width:100%;margin-left:0;margin-right:0 }
}

@media (max-width:960px) {
  .hjc-grid { grid-template-columns:minmax(0,1fr) }
}

@media (min-width:769px) {
  #openFilters { display:none }
}

@media(max-width:1000px) {
  .legal-doc { grid-template-columns:1fr }
  .legal-nav { display:none }
}

@media(max-width:1024px) {
  .map-list { grid-template-columns:repeat(2,1fr) }
  .zhk-grid { grid-template-columns:repeat(2,1fr) }
}

@media(max-width:1080px) {
  .rj-grid { grid-template-columns:repeat(3,1fr) }
  .rj-popgrid { grid-template-columns:repeat(3,1fr) }
}

@media(max-width:1320px) {
  .main-nav { gap:0 }
  .main-nav a { padding-left:9px;padding-right:9px }
  .site-header .container { gap:16px }
}

@media(max-width:400px) {
  .ry-card .ry-ph { width:96px;height:80px }
}

@media(max-width:520px) {
  .zhkp-act .zhkp-tg { margin-left:0;width:100% }
}

@media(max-width:560px) {
  .c-cards { grid-template-columns:1fr }
  .mrr-chip { padding:7px 11px;font-size:13px }
  .mrr-chips { gap:6px }
  .p404 { padding:36px 0 52px }
  .p404-code { font-size:84px }
  .p404-search { flex-direction:column }
  .p404-search .btn-primary { width:100% }
  .p404-search input { flex:none;width:100%;height:48px }
  .p503 { padding:36px 0 64px }
  .p503-code { font-size:72px }
  .rj-grid { grid-template-columns:1fr }
  .rj-popgrid { grid-template-columns:repeat(2,1fr) }
}

@media(max-width:640px) {
  #mapAll { height:calc(100vh - 180px);min-height:420px;border-radius:14px }
  .av-card { flex-direction:column;align-items:flex-start }
  .av-h1 { font-size:24px }
  .cat-head h1 { font-size:24px }
  .flc-cta2 .flc-btn { width:100%;text-align:center }
  .flc-cta2.dark { padding:24px 20px }
  .flc-cta2.dark h3 { font-size:21px }
  .footer-grid { grid-template-columns:1fr 1fr }
  .hide-m { display:none!important }
  .leaflet-popup-content { width:250px !important }
  .legal-body { padding:22px 18px }
  .lp-lead input[type="text"],.lp-lead input[type="tel"],.lp-lead .ns-channel,.lp-lead button[type="submit"] { flex-basis:100% }
  .map-list { grid-template-columns:1fr }
  .map-panel-live { height:380px }
  .map-wrap iframe { height:420px }
  .mapbox { border-radius:14px;margin:0 -8px 24px }
  .mk-card .ph { height:120px }
  .mk-pin .lb { padding:2px 8px }
  .mk-pin .lb b { font-size:10.5px }
  .mk-pin .lb span { font-size:10px }
  .mk-pin .ph { width:38px;height:38px;border-width:2px }
  .mk-pin b { font-size:11.5px }
  .mk-pin img { width:32px;height:32px }
  .mk-pin span { font-size:11px }
  .mt-station-head .mt-badge { min-width:32px;height:32px;font-size:13px }
  .nrel-d { margin-left:auto }
  .nrel-item { flex-wrap:wrap;gap:8px;padding:10px }
  .nrel-t { flex-basis:100%;order:5 }
  .pf-in { width:calc(50% - 6px) }
  .pf-in.w { width:100% }
  .pf-sel { max-width:100%;flex:1 1 }
  .qm-nav { flex-wrap:wrap }
  .qm-next { max-width:none }
  .qm-pair { grid-template-columns:1fr }
  .qz-head h1 { font-size:26px }
  .qz-nav { flex-wrap:wrap }
  .qz-next { max-width:none }
  .qz-pair { grid-template-columns:1fr }
  .zhk-grid { grid-template-columns:1fr }
  .zhkp-cta .zhkp-btn { width:100%;text-align:center }
  .zhkp-cta.dark { padding:24px 20px }
  .zhkp-cta.dark h3 { font-size:21px }
  .zhkp-thumb { width:64px;height:44px }
}

@media(max-width:720px) {
  .vrow { flex-wrap:wrap }
  .vrow-ph { width:100%;height:170px }
  .vrow-side { width:100%;flex-direction:row;justify-content:space-between;align-items:center }
}

@media(max-width:760px) {
  .calc { grid-template-columns:1fr }
  .calc-fields { grid-template-columns:1fr }
  .kv-row { grid-template-columns:1fr;gap:8px }
  .kv-side { text-align:left }
  .nl-h1 { font-size:25px }
  .nl-item { grid-template-columns:1fr }
  .nl-item.feat { grid-template-columns:1fr }
  .nl-item.feat .nl-t { font-size:20px }
  .nl-ph { min-height:180px }
  .np-h1 { font-size:26px }
  .np-imgrow { grid-template-columns:1fr }
  .npc-grid { grid-template-columns:1fr }
}

@media(max-width:768px) {
  .cat-head h1 { font-size:25px }
  .quiz-cta { margin-top:12px;padding:13px 16px;gap:12px }
  .quiz-cta-arrow { display:block }
  .quiz-cta-btn { display:none }
  .quiz-cta-t b { font-size:14px }
  .quiz-cta-t>span { font-size:12.5px;margin-top:1px }
  .rj-grid { grid-template-columns:repeat(2,1fr) }
  .rj-popgrid { grid-template-columns:repeat(2,1fr) }
  .ry-card { display:flex;align-items:center }
  .ry-card .ry-addr { font-size:12.5px;margin:0 0 8px }
  .ry-card .ry-body { padding:12px 14px 12px 6px;flex:1 1;min-width:0 }
  .ry-card .ry-name { font-size:15.5px }
  .ry-card .ry-ph { width:120px;height:96px;flex:none;aspect-ratio:auto;align-self:center;margin-left:8px;border-radius:8px }
  .ry-card .ry-price { font-size:15px;margin:0 0 8px }
  .ry-grid { grid-template-columns:1fr;gap:12px }
  .zhkp-pane { overflow-x:auto;-webkit-overflow-scrolling:touch }
  .zhkp-pane .zhkp-table { min-width:600px }
  .zhkp-sec { overflow-x:auto }
  html,body { overflow-x:clip }
}

@media(max-width:860px) {
  .p404-cards { grid-template-columns:repeat(2,1fr) }
}

@media(max-width:900px) {
  .c-grid { grid-template-columns:1fr }
  .calc { grid-template-columns:1fr }
  .dev-grid { grid-template-columns:1fr }
  .dev-hero { grid-template-columns:1fr }
  .flc-h1 { font-size:27px }
  .flc-hero { grid-template-columns:1fr }
  .p-fact { padding:12px 10px }
  .p-fact .k { font-size:11px }
  .p-fact .v { font-size:13.5px }
  .p-facts { grid-template-columns:repeat(3,1fr) }
  .r-fmt { grid-template-columns:1fr }
  .r-stats { grid-template-columns:1fr 1fr }
  .room-prices { grid-template-columns:repeat(2,1fr) }
  .rp:nth-child(-n+2) { border-bottom:1px solid var(--border) }
  .rp:nth-child(2n) { border-right:0 }
  .zhkp-h1 { font-size:30px }
  .zhkp-hero { grid-template-columns:1fr }
}

@media(max-width:960px) {
  .hjc-grid { grid-template-columns:1fr }
}

@media(max-width:980px) {
  .main-nav { display:none }
  .qz-aside { position:static }
  .qz-layout { grid-template-columns:1fr;gap:28px }
}

@media(min-width:1200px) {
  .np-grid { display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:44px;gap:44px;align-items:start }
  .np-side { display:block;position:-webkit-sticky;position:sticky;top:92px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-l);padding:20px;box-shadow:var(--shadow-card) }
}

/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
/* ==========================================================================
   Дизайн-система v2 (A.15, docs/12-DESIGN-ROADMAP-v1.0)
   Грамматика M2 (лавандово-серые поверхности, пилюли, мягкие тени, скруглённые
   карточки) + акцент Циана. Единственное место цветов/радиусов/теней —
   компоненты используют только CSS-переменные и классы ниже.
   ========================================================================== */

:root {
  /* Фоны и поверхности */
  --color-page: #ffffff;
  --color-surface: #f6f5f9; /* нейтральный лавандовый (M2) */
  --color-border: #e6e4ee;

  /* Текст */
  --color-text: #0b1b33;
  --color-text-secondary: #5f6b7a;
  --color-on-dark: #c4ccda; /* вторичный текст на тёмном фоне */

  /* Акцент (primary) и производные */
  --color-primary: #0a6cff;
  --color-primary-hover: #0856d9;
  --color-primary-active: #0647b3;
  --color-primary-tint: #e6f0ff; /* заливка ~10% от primary */

  /* Статусы: насыщенный текст/бордер + тонированная заливка 10% */
  --color-success: #16a34a;
  --color-success-tint: #e8f6ed;
  --color-warning: #f59e0b;
  --color-warning-tint: #fef5e7;
  --color-warning-text: #92400e; /* контрастный текст на warning-tint */
  --color-danger: #dc2626;
  --color-danger-tint: #fce9e9;
  --color-neutral-tint: #efedf5;

  /* Радиусы (больше 16px запрещены) */
  --radius-card: 16px;
  --radius-control: 10px;
  --radius-pill: 999px;

  /* Тени (мягкие, без текстовых) */
  --shadow-rest: 0 1px 3px rgba(11, 27, 51, 0.07);
  --shadow-card-hover: 0 8px 20px rgba(11, 27, 51, 0.1);

  /* Сетка */
  --container: 1280px;
  --space-gutter: 16px;

  /* Типографика */
  --font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

@media (min-width: 768px) {
  :root {
    --space-gutter: 24px;
  }
}

/* --- База --------------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family);
  font-size: 14px;
  line-height: 20px;
  color: var(--color-text);
  background: var(--color-page);
}

h1 {
  font-size: 32px;
  line-height: 40px;
  font-weight: 700;
  margin: 0 0 16px;
}

h2 {
  font-size: 24px;
  line-height: 32px;
  font-weight: 700;
  margin: 0 0 12px;
}

h3 {
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
  margin: 0 0 8px;
}

p {
  margin: 0 0 12px;
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

a:hover {
  color: var(--color-primary-hover);
}

:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

/* --- Сетка -------------------------------------------------------------- */

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--space-gutter);
}

.site-main {
  padding: 24px 0 48px;
}

/* --- Карточки ------------------------------------------------------------ */

.card {
  background: var(--color-page);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-rest);
}

.card--hover:hover {
  box-shadow: var(--shadow-card-hover);
}

/* --- Кнопки -------------------------------------------------------------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: var(--color-primary);
  color: var(--color-page);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.btn:hover {
  background: var(--color-primary-hover);
  color: var(--color-page);
}

.btn:active {
  background: var(--color-primary-active);
}

.btn--secondary {
  background: var(--color-page);
  color: var(--color-text);
  border-color: var(--color-border);
}

.btn--secondary:hover {
  background: var(--color-surface);
  color: var(--color-text);
  border-color: var(--color-primary);
}

.btn--danger {
  background: var(--color-page);
  color: var(--color-danger);
  border-color: var(--color-border);
}

.btn--danger:hover {
  background: var(--color-danger-tint);
  color: var(--color-danger);
  border-color: var(--color-danger);
}

/* --- Чипы (переключатели фильтров) --------------------------------------- */

.chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-page);
  color: var(--color-text);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.chip:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.chip--active,
.chip--active:hover {
  background: var(--color-primary-tint);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* Чипы активных фильтров (A.14): компактные, со снятием */
.chip-removable {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 6px 0 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-neutral-tint);
  color: var(--color-text);
  font-size: 13px;
}

.chip-removable button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: none;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--color-text-secondary);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

.chip-removable button:hover {
  background: var(--color-page);
  color: var(--color-danger);
}

/* A.102 П.3: hero-галерея ЖК — большое фото, ПОД ним горизонтальный ряд миниатюр
   (≤4, активная подсвечена). Стрелки ВНУТРИ области фото (не перекрывают миниатюры),
   счётчик внизу справа, сердце вверху справа. */
.zhkp-gallery { display:block }
.zhkp-thumbs { display:flex;gap:8px;margin-top:10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin }
.zhkp-thumb-btn { flex:0 0 auto;width:64px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#DCE4EE;cursor:pointer;line-height:0;aspect-ratio:1/1 }
.zhkp-thumb-btn img { width:100%;height:100%;object-fit:cover;display:block }
.zhkp-thumb-btn.on { border-color:var(--accent,#0A6CFF) }
.zhkp-stage { position:relative;border-radius:var(--radius-l);overflow:hidden;aspect-ratio:16/10;background:#DCE4EE }
.zhkp-stage-img { width:100%;height:100%;object-fit:cover;display:block }
.zhkp-stage-empty { display:flex;align-items:center;justify-content:center;height:100%;min-height:220px;color:#7A8699;font-size:14px }
/* сердце избранного справа вверху */
.zhkp-fav { position:absolute;top:12px;right:12px;z-index:3;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--border,#E6E4EE);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2,#5F6B7A) }
.zhkp-fav:hover { border-color:var(--accent,#0A6CFF);color:var(--accent,#0A6CFF) }
.zhkp-fav.on { color:#e53935;border-color:#e53935 }
/* стрелки ПОЛНОСТЬЮ внутри области фото (по эталону; ленту не перекрывают) */
.zhkp-arrow { position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--border,#E6E4EE);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text,#0B1B33) }
.zhkp-arrow:hover { border-color:var(--accent,#0A6CFF);color:var(--accent,#0A6CFF) }
.zhkp-arrow.prev { left:12px }
.zhkp-arrow.next { right:12px }
.zhkp-counter { position:absolute;bottom:12px;right:12px;z-index:2;font-size:12.5px;font-weight:600;color:#fff;background:rgba(11,27,51,.66);border-radius:999px;padding:4px 10px }

/* A.102 П.1: разделители в строке метро hero ЖК */
.zhkp-metro { display:flex;flex-wrap:wrap;align-items:center;gap:6px }
.zhkp-metro-sep { color:var(--text-3,#8A94A6) }

/* A.102 П.2 (досылка): активная вкладка комнатности — БЕЛЫЙ текст на тёмном.
   Перебиваем .zhkp-tab.on из etalon.css (color:#fff) и button.zhkp-tab.on из
   mockup.css (color:var(--color-text) — тёмный на тёмном, текст невидим, скрин 103).
   Высокая специфичность + !important, чтобы победить каскад. */
.zhkp-tabs .zhkp-tab.on,
.zhkp-tab.on,
button.zhkp-tab.on,
.zhkp-tabs button.zhkp-tab.on {
  background: var(--navy, #0B1B33) !important;
  border-color: var(--navy, #0B1B33) !important;
  color: #FFFFFF !important;
}

/* A.102 П.6: якорный/плавный скролл к блоку «Квартиры в продаже» с учётом шапки */
#flats { scroll-margin-top:80px }

/* A.102 П.7: «нет в продаже» в таблице цен при 0 активных лотов */
.zhkp-na { color:var(--text-3,#8A94A6);font-weight:500 }

/* A.102 П.5: модалка подборки — чуть шире cbm-panel под полную LeadForm */
.zhkp-podbor-panel { max-width:440px }

/* A.101 П.1: крестик снятия внутри чипа активного фильтра (.kv-ac из эталона —
   там это была ссылка; у нас кнопка, нужен сброс дефолтных стилей) */
.kv-applied .kv-ac button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

/* --- Бейджи-пилюли --------------------------------------------------------- */

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  line-height: 16px;
  font-weight: 600;
  background: var(--color-neutral-tint);
  color: var(--color-text-secondary);
}

.badge--primary {
  background: var(--color-primary-tint);
  color: var(--color-primary);
}

.badge--success {
  background: var(--color-success-tint);
  color: var(--color-success);
}

.badge--warning {
  background: var(--color-warning-tint);
  color: var(--color-warning-text);
}

.badge--danger {
  background: var(--color-danger-tint);
  color: var(--color-danger);
}

/* Бейджи поверх фото: под ними затемнение (читаемость), без градиентов */
.badge--on-photo {
  background: rgba(11, 27, 51, 0.55);
  color: var(--color-page);
}

/* --- Поля форм ------------------------------------------------------------ */

.input,
.select {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font: inherit;
}

.input::placeholder {
  color: var(--color-text-secondary);
}

.input:hover,
.select:hover {
  border-color: var(--color-text-secondary);
}

.input:focus,
.select:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px var(--color-primary-tint);
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  line-height: 16px;
  color: var(--color-text-secondary);
}

/* --- Панели фильтров ------------------------------------------------------- */

.panel {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: 16px;
}

/* --- Хлебные крошки --------------------------------------------------------- */

.breadcrumbs {
  font-size: 12px;
  line-height: 16px;
  color: var(--color-text-secondary);
  margin-bottom: 16px;
}

.breadcrumbs a {
  color: var(--color-text-secondary);
}

.breadcrumbs a:hover {
  color: var(--color-primary);
}

/* --- Пагинация -------------------------------------------------------------- */

.pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.pagination a,
.pagination span[aria-current="page"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font-weight: 600;
}

.pagination a:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.pagination span[aria-current="page"] {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-page);
}

.pagination-note {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--color-text-secondary);
}

/* --- Таблицы (корпуса, характеристики) -------------------------------------- */

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.table th {
  text-align: left;
  font-size: 12px;
  line-height: 16px;
  font-weight: 600;
  color: var(--color-text-secondary);
  background: var(--color-surface);
}

.table th,
.table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
}

/* --- Заглушки и пустые состояния -------------------------------------------- */

.photo-placeholder {
  background: var(--color-surface);
  color: var(--color-text-secondary);
}

.empty-state {
  padding: 32px 24px;
  text-align: center;
  color: var(--color-text-secondary);
  background: var(--color-surface);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-card);
  font-size: 14px;
}

/* --- Уведомления ------------------------------------------------------------ */

.notice {
  padding: 12px 16px;
  border-radius: var(--radius-control);
  margin-bottom: 16px;
}

.notice--warning {
  background: var(--color-warning-tint);
  color: var(--color-warning-text);
}

/* A.26 M2: успешный результат операции (импорт/откат) */
.notice--success {
  background: var(--color-success-tint);
  color: var(--color-success);
}

/* --- Сетки каталогов (1/2/3/4 колонки) -------------------------------------- */

.grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  grid-gap: 16px;
  gap: 16px;
}

.grid-cards--wide {
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

/* A.89d: сетка каталога ЖК — ровно 3 колонки в контейнере 1280 (макет
   novostroyki-index.html); адаптив макета: 2 колонки ≤1080px, 1 ≤640px */
.grid-cards--zhk {
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 1080px) {
  .grid-cards--zhk {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .grid-cards--zhk {
    grid-template-columns: 1fr;
  }
}

/* --- Плашки линий метро (A.18 §3) -------------------------------------------
   Официальная палитра линий Москвы; маппинг «линия → цвет» зафиксирован в
   docs/API.md §7. Базовый класс .m-line — круглый маркер; цвет линии — модификатор. */

.m-line {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-text-secondary);
  flex: none;
}

.m-line--1 { background: #EF161E; }   /* Сокольническая */
.m-line--2 { background: #2DBE2C; }   /* Замоскворецкая */
.m-line--3 { background: #0078BE; }   /* Арбатско-Покровская */
.m-line--4 { background: #00BFFF; }   /* Филёвская */
.m-line--5 { background: #8D5B2D; }   /* Кольцевая */
.m-line--6 { background: #ED9121; }   /* Калужско-Рижская */
.m-line--7 { background: #800080; }   /* Таганско-Краснопресненская */
.m-line--8 { background: #FFD702; }   /* Калининская / Солнцевская */
.m-line--9 { background: #999999; }   /* Серпуховско-Тимирязевская */
.m-line--10 { background: #99CC00; }  /* Люблинско-Дмитровская */
.m-line--11 { background: #82C0C0; }  /* Большая кольцевая */
.m-line--12 { background: #A1B3D4; }  /* Бутовская */
.m-line--13 { background: #B9C8E7; }  /* Московский монорельс */
.m-line--14 { background: #FFFFFF; border: 1px solid var(--color-border); } /* МЦК */
.m-line--15 { background: #DE64A1; }  /* Некрасовская */
.m-line--16 { background: #03795F; }  /* Троицкая */

/* --- Лид-формы (A.19 §1) ----------------------------------------------------- */

.lead-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
}

.lead-form--sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 16px;
}

.lead-form-title {
  font-weight: 600;
  font-size: 15px;
}

.lead-form-note {
  font-size: 13px;
  color: var(--color-text-secondary);
}

.lead-form-label {
  font-size: 13px;
  color: var(--color-text-secondary);
}

.lead-form input[type="tel"] {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font: inherit;
}

.lead-form input[type="tel"]:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: -1px;
}

.lead-form input[type="tel"][aria-invalid="true"] {
  border-color: var(--color-danger);
}

.lead-form-consent {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 12px;
  color: var(--color-text-secondary);
  cursor: pointer;
}

.lead-form-consent input {
  margin-top: 2px;
  flex: none;
}

.lead-form-consent a {
  /* server-hotfix 2026-10-13 №4: перенос как в макете (nowrap рвал подпись согласия) */
  white-space: normal;
}

.lead-form-error {
  font-size: 13px;
  color: var(--color-danger);
}

/* --- Вкладки комнатности на странице ЖК (A.16a) ------------------------------ */

.flats-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 0 0 16px;
}

.flats-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}

.flats-tab .cnt {
  font-size: 12px;
  color: var(--color-text-secondary);
}

.flats-tab:hover {
  border-color: var(--color-primary);
}

.flats-tab.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-page);
}

.flats-tab.active .cnt {
  color: var(--color-page);
  opacity: 0.85;
}

/* --- Карта ЖК (A.20 §1, Leaflet 1.9.4 с CDN) -------------------------------- */

.complex-map {
  height: 320px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  z-index: 0;
}

.complex-map-fallback a {
  color: var(--color-text-secondary);
}

/* Маркер ЖК — divIcon (без внешних картинок) */
.nvk-map-pin {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--color-primary);
  border: 3px solid var(--color-page);
  box-shadow: 0 1px 4px rgba(11, 27, 51, 0.4);
}

/* --- Мобильная нижняя панель CTA (A.20 §3, ≤640px) --------------------------- */

.mobile-cta-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  display: flex;
  gap: 8px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: var(--color-page);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -4px 16px rgba(11, 27, 51, 0.08);
}

.mobile-cta-bar .btn {
  flex: 1 1;
  text-decoration: none;
}

/* A.102 П.5: кнопка подборки в мобильной панели — теперь <button> (открывает модалку) */
.mobile-cta-bar .mobile-cta-bar__form {
  width: 100%;
}

.mobile-cta-bar__call {
  background: var(--color-page);
  color: var(--color-text);
  border: 1px solid var(--color-border);
}

.mobile-cta-bar__call:hover {
  background: var(--color-surface);
  color: var(--color-text);
  border-color: var(--color-primary);
}

/* на десктопе панель скрыта; на мобильных — отступ контента под панелью */
@media (min-width: 641px) {
  .mobile-cta-bar {
    display: none;
  }
}

@media (max-width: 640px) {
  .page-with-mobile-cta {
    padding-bottom: 84px;
  }
}

#lead-form {
  scroll-margin-top: 16px;
}

/* --- Форма подбора каталога ЖК (A.20 §2) -------------------------------------- */

.catalog-filter {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 1rem;
}

.catalog-filter__row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

/* Чип-переключатель с checkbox внутри (работает без JS, GET-форма) */
.chip--check {
  position: relative;
  min-height: 40px;
  padding: 0 14px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.chip--check input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.chip--check:has(input:checked) {
  background: var(--color-primary-tint);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.chip-cnt {
  margin-left: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-secondary);
}

.chip--check:has(input:checked) .chip-cnt {
  color: var(--color-primary);
  opacity: 0.85;
}

/* --- Полная карта новостроек (A.21 §2) -------------------------------------- */

.complexes-map {
  height: 560px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
  z-index: 0;
}

/* Пин ЖК: круглое фото с белой обводкой + пилюля под ним (макет v12.7) */
.nvk-pin-wrap {
  background: transparent;
  border: none;
}

.nvk-pin {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}

.nvk-pin__photo {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 3px solid var(--color-page);
  box-shadow: 0 1px 5px rgba(11, 27, 51, 0.35);
  overflow: hidden;
  background: var(--color-surface);
  flex: none;
}

.nvk-pin__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nvk-pin__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-page);
  border: 1px solid var(--color-border);
  box-shadow: 0 1px 3px rgba(11, 27, 51, 0.15);
  font-size: 11px;
  line-height: 14px;
  white-space: nowrap;
}

.nvk-pin__name {
  font-weight: 700;
  color: var(--color-text);
}

.nvk-pin__price {
  color: var(--color-text-secondary);
}

/* Кластер: синий круг с числом */
.nvk-cluster-wrap {
  background: transparent;
  border: none;
}

.nvk-cluster {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 8px;
  border-radius: 50%;
  background: var(--color-primary);
  border: 3px solid var(--color-page);
  box-shadow: 0 1px 5px rgba(11, 27, 51, 0.35);
  color: var(--color-page);
  font-weight: 700;
  font-size: 14px;
}

/* Попап ЖК на карте */
.nvk-map-popup-wrap .leaflet-popup-content-wrapper {
  border-radius: var(--radius-card);
  padding: 0;
  overflow: hidden;
}

.nvk-map-popup-wrap .leaflet-popup-content {
  margin: 0;
  width: 240px !important;
  line-height: 1.35;
}

.nvk-map-popup {
  display: flex;
  flex-direction: column;
}

.nvk-map-popup__photo {
  width: 100%;
  height: 120px;
  background: var(--color-surface);
}

.nvk-map-popup__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nvk-map-popup__body {
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.nvk-map-popup__title {
  font-weight: 700;
  font-size: 14px;
  color: var(--color-text);
}

.nvk-map-popup__price {
  font-size: 14px;
  font-weight: 600;
}

.nvk-map-popup__facts {
  font-size: 12px;
  color: var(--color-text-secondary);
}

.nvk-map-popup__metro {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--color-text-secondary);
}

.nvk-map-popup__close {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 50%;
  background: rgba(11, 27, 51, 0.55);
  color: var(--color-page);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

/* Цветная точка линии (цвет — только из БД) */
.nvk-line-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid rgba(11, 27, 51, 0.15);
  flex: none;
}

/* --- Индекс раздела «Метро» (A.21 §3) ---------------------------------------- */

.metro-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  grid-gap: 8px;
  gap: 8px;
}

.metro-index-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font-weight: 600;
}

.metro-index-item:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.metro-index-item__cnt {
  margin-left: auto;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-secondary);
}

/* --- Схема метро (A.22 §2, samoy-love/metro-map MIT) -------------------------- */

.metro-scheme-wrap {
  display: flex;
  gap: 12px;
  align-items: stretch;
}

.metro-scheme {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-page);
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.metro-scheme__zoom {
  position: absolute;
  right: 12px;
  top: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.metro-scheme__zoom button {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--shadow-rest);
}

.metro-scheme__zoom button:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.metro-scheme__marker a {
  cursor: pointer;
}

/* пульс текущей станции */
.metro-scheme__pulse {
  animation: nvk-metro-pulse 1.8s ease-out infinite;
  transform-origin: center;
  transform-box: fill-box;
}

@keyframes nvk-metro-pulse {
  0% {
    opacity: 0.9;
    transform: scale(0.7);
  }
  70% {
    opacity: 0;
    transform: scale(1.6);
  }
  100% {
    opacity: 0;
    transform: scale(1.6);
  }
}

/* выноски-рамки МЦД (станции без геометрии на схеме) */
.metro-scheme-mcd {
  flex: 0 0 240px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.metro-scheme-mcd__frame {
  border: 1.5px dashed var(--color-primary);
  border-radius: var(--radius-card);
  padding: 10px 12px;
  background: var(--color-primary-tint);
}

.metro-scheme-mcd__title {
  font-weight: 700;
  font-size: 13px;
  color: var(--color-primary);
  margin-bottom: 6px;
}

.metro-scheme-mcd__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
}

@media (max-width: 640px) {
  .metro-scheme-wrap {
    flex-direction: column;
  }

  .metro-scheme {
    height: 440px !important;
  }

  .metro-scheme-mcd {
    flex: none;
  }
}

/* --- Админка (A.24 M0/M1, ajax-интерфейс) ----------------------------------- */

.admin-wrap {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
}

.admin-top {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 16px;
  background: var(--color-text);
  color: var(--color-page);
}

.admin-logo {
  font-weight: 700;
  margin-right: auto;
}

.admin-user {
  color: var(--color-on-dark);
  font-size: 13px;
}

.admin-burger {
  display: none;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: var(--color-page);
  border-radius: var(--radius-control);
  width: 40px;
  height: 40px;
  font-size: 18px;
  cursor: pointer;
}

.admin-body {
  flex: 1 1;
  display: flex;
  gap: 0;
  align-items: stretch;
}

.admin-side {
  flex: 0 0 220px;
  background: var(--color-page);
  border-right: 1px solid var(--color-border);
  padding: 16px 10px;
}

.admin-side nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.admin-side a {
  display: block;
  padding: 10px 12px;
  border-radius: var(--radius-control);
  color: var(--color-text);
  font-weight: 600;
}

.admin-side a:hover {
  background: var(--color-surface);
  color: var(--color-primary);
}

.admin-side a.on {
  background: var(--color-primary-tint);
  color: var(--color-primary);
}

.admin-main {
  flex: 1 1;
  min-width: 0;
  padding: 20px 24px;
}

.admin-login,
.admin-boot {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface);
  padding: 16px;
}

.admin-cards {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.admin-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 180px;
  padding: 16px 20px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-page);
  box-shadow: var(--shadow-rest);
  color: var(--color-text);
}

.admin-card:hover {
  box-shadow: var(--shadow-card-hover);
  text-decoration: none;
}

.admin-card__num {
  font-size: 28px;
  font-weight: 700;
}

.admin-card__label {
  font-size: 13px;
  color: var(--color-text-secondary);
}

.admin-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 16px;
}

.admin-leads-table th {
  white-space: nowrap;
}

/* A.39: журнал — серверные страницы админки (форма/чек-лист/FAQ) */
.journal-form {
  display: grid;
  grid-gap: 12px;
  gap: 12px;
  max-width: 860px;
  margin-top: 8px;
}

.journal-form label {
  display: grid;
  grid-gap: 4px;
  gap: 4px;
  font-size: 13px;
  color: var(--color-text-secondary);
}

.journal-form textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-page);
  color: var(--color-text);
  font: inherit;
  resize: vertical;
}

.journal-checklist {
  list-style: none;
  margin: 0 0 16px;
  padding: 12px 16px;
  max-width: 860px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  display: grid;
  grid-gap: 6px;
  gap: 6px;
}

.journal-checklist li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 13px;
}

.journal-faq {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: 12px;
  margin: 0;
  display: grid;
  grid-gap: 12px;
  gap: 12px;
}

.journal-faq legend {
  font-size: 13px;
  color: var(--color-text-secondary);
  padding: 0 4px;
}

.journal-faq__pair {
  display: grid;
  grid-gap: 6px;
  gap: 6px;
}

/* A.26 M2: цветная точка линии метро в справочнике админки */
.admin-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}

/* honeypot-поле (A.24 M1) — невидимо для людей */
.lead-form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (max-width: 900px) {
  .admin-burger {
    display: block;
  }

  .admin-body {
    flex-direction: column;
  }

  .admin-side {
    display: none;
    flex: none;
    border-right: none;
    border-bottom: 1px solid var(--color-border);
  }

  .admin-body.drawer-open .admin-side {
    display: block;
  }
}

/* A.26-hotfix: прогресс-бар загрузки фида (XHR upload.onprogress) */
.admin-progress {
  height: 8px;
  border-radius: 4px;
  background: var(--color-bg-secondary, #eef1f5);
  overflow: hidden;
}

.admin-progress__bar {
  height: 100%;
  border-radius: 4px;
  background: var(--color-primary, #5aa2ff);
  transition: width 0.2s ease;
}

/* A.38: легенда diff — цвета строк по типу изменения (админка /admin/import) */
.diff-row--new td:first-child {
  border-left: 3px solid var(--color-success);
}

.diff-row--changed td:first-child {
  border-left: 3px solid var(--color-warning);
}

.diff-row--removed td:first-child {
  border-left: 3px solid var(--color-danger);
}

.diff-row--returned td:first-child {
  border-left: 3px solid var(--color-primary);
}

span.diff-row--new,
span.diff-row--changed,
span.diff-row--removed,
span.diff-row--returned {
  border-left: 3px solid transparent;
  padding-left: 6px;
}

span.diff-row--new {
  border-left-color: var(--color-success);
}

span.diff-row--changed {
  border-left-color: var(--color-warning);
}

span.diff-row--removed {
  border-left-color: var(--color-danger);
}

span.diff-row--returned {
  border-left-color: var(--color-primary);
}

/* A.38: drawer предпросмотра черновика (модуль «Каталог») */
.admin-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(11, 27, 51, 0.45);
  z-index: 90;
}

.admin-drawer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(480px, 100vw);
  background: var(--color-page, #fff);
  box-shadow: -4px 0 24px rgba(11, 27, 51, 0.18);
  padding: 20px;
  overflow-y: auto;
}

/*!************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/mockup.css ***!
  \************************************************************************************************************************************************************************************************************************************************************/
/* ==========================================================================
   Стилей утверждённого макета главной v7.2 (A.15c, docs/mockup/index.html).
   Глобально — только сквозная навигация (шапка/подвал/drawer/bottom-bar/sheet);
   всё остальное — под скоупом .v72 (корень главной региона), чтобы не конфликтовать
   с дизайн-системой A.15 на остальных страницах.
   ========================================================================== */

/* --- Глобальные мелочи ----------------------------------------------------- */

.num {
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* --- Шапка (макет: поверх hero, прозрачная; .solid — тёмная статичная) ------ */

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  color: #fff;
  background: linear-gradient(180deg, rgba(8, 18, 38, 0.62) 0%, rgba(8, 18, 38, 0.18) 78%, rgba(8, 18, 38, 0) 100%);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-header.solid {
  position: static;
  background: var(--color-text);
}

.site-header .container {
  display: flex;
  align-items: center;
  gap: 32px;
  height: 72px;
}

.logo {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  display: flex;
  align-items: baseline;
  gap: 2px;
}

.logo .dot {
  color: var(--color-primary);
  font-weight: 800;
}

.main-nav {
  display: flex;
  gap: 4px;
  margin-left: 8px;
}

.main-nav a {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
  font-size: 14.5px;
  padding: 8px 12px;
  border-radius: var(--radius-control);
}

.main-nav a:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}

.header-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-actions .link-plain {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14.5px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: var(--radius-control);
}

.header-actions .link-plain:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}

/* --- A.49: переключатель регионов (шапка + drawer) ---------------------------- */
.region-switcher {
  position: relative;
}
.region-switcher > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}
.region-switcher > summary::-webkit-details-marker {
  display: none;
}
.header-actions .region-switcher--header > summary {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14.5px;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: var(--radius-control);
}
.header-actions .region-switcher--header > summary:hover,
.header-actions .region-switcher--header[open] > summary {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}
/* выпадающий список регионов — светлая панель поверх тёмной/прозрачной шапки */
.region-switcher__list {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 210px;
  z-index: 70;
  background: #fff;
  color: var(--color-text);
  border-radius: 12px;
  padding: 6px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
  display: flex;
  flex-direction: column;
}
.region-switcher__list a,
.region-switcher__list span {
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 14px;
  text-decoration: none;
  color: inherit;
  white-space: nowrap;
}
.region-switcher__list a:hover {
  background: var(--color-surface, #f4f5f7);
}
.region-switcher__list span[aria-current="true"] {
  font-weight: 600;
  color: var(--color-primary, #2f6bff);
}
/* drawer: белая шторка — список статичный (шторка сама скроллится) */
.drawer .region-switcher--drawer > summary {
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}
.drawer .region-switcher__list {
  position: static;
  box-shadow: none;
  border: 1px solid var(--color-border);
  margin-top: 10px;
}

/* --- Мобильное меню (drawer) ------------------------------------------------ */

.burger {
  display: none;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
}

.drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 300px;
  max-width: 85vw;
  background: #fff;
  z-index: 60;
  transform: translateX(-105%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
}

.drawer.open {
  transform: translateX(0);
}

.drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid var(--color-border);
}

.drawer-head .logo {
  color: var(--color-text);
  white-space: nowrap;
  font-size: 20px;
}

.drawer-close {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--color-border);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
}

.drawer-nav {
  display: flex;
  flex-direction: column;
  padding: 10px 10px;
  flex: 1 1;
}

.drawer-nav a {
  padding: 13px 12px;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-text);
  border-radius: 10px;
}

.drawer-nav a:hover {
  background: var(--color-surface);
  color: var(--color-primary);
}

.drawer-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-top: 1px solid var(--color-border);
}

.drawer-veil {
  position: fixed;
  inset: 0;
  background: rgba(11, 27, 51, 0.45);
  z-index: 55;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s;
}

.drawer-veil.open {
  opacity: 1;
  pointer-events: auto;
}

/* --- Нижняя панель (мобильная) ---------------------------------------------- */

.bottom-bar {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  background: #fff;
  border-top: 1px solid var(--color-border);
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
}

.bottom-bar a {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--color-text-secondary);
  padding: 5px 0;
  border-radius: 10px;
}

.bottom-bar a.on {
  color: var(--color-primary);
}

/* --- Мобильная шторка фильтров (содержимое — из .v72) ----------------------- */

.filter-sheet {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 60;
  display: none;
  flex-direction: column;
}

.filter-sheet.open {
  display: flex;
}

.fs-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-border);
}

.fs-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--color-text);
}

.fs-body {
  flex: 1 1;
  overflow-y: auto;
  padding: 18px;
}

.fs-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px calc(14px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--color-border);
}

/* ==========================================================================
   Сквозное: конец. Далее — стили главной (скоуп .v72, перенос из макета).
   ========================================================================== */

/* ---------- Hero ---------- */
.v72 .hero {
  position: relative;
  /* A.93: фон пережат в WebP 1920w (~296 КБ против 4,4 МБ PNG); тёмный
     fallback-цвет — подложка до загрузки картинки */
  background: #0b1b33 url("/assets/hero-day.webp") center/cover no-repeat;
  padding: 120px 0 64px;
}

.v72 .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8, 18, 38, 0.46) 0%, rgba(8, 18, 38, 0.14) 52%, rgba(8, 18, 38, 0) 74%),
    linear-gradient(180deg, rgba(8, 18, 38, 0.44) 0%, rgba(8, 18, 38, 0) 30%, rgba(8, 18, 38, 0) 58%, rgba(8, 18, 38, 0.42) 100%);
}

.v72 .hero .container {
  position: relative;
  z-index: 2;
}

.v72 .hero h1 {
  color: #fff;
  font-size: 40px;
  font-weight: 800;
  letter-spacing: -0.02em;
  max-width: 720px;
  line-height: 1.15;
}

.v72 .hero-sub {
  color: rgba(255, 255, 255, 0.78);
  margin-top: 12px;
  font-size: 16px;
  max-width: 640px;
}

.v72 .hero-stats {
  display: flex;
  gap: 28px;
  margin-top: 22px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  flex-wrap: wrap;
}

.v72 .hero-stats b {
  display: block;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.01em;
}

.v72 .hero-stats span {
  color: rgba(255, 255, 255, 0.65);
  font-size: 13px;
}

/* ---------- Поисковая карточка ---------- */
.v72 .search-card {
  background: #fff;
  border-radius: var(--radius-card);
  box-shadow: 0 12px 40px rgba(11, 27, 51, 0.22);
  margin-top: 28px;
  padding: 22px 24px 18px;
}

.v72 .search-grid {
  display: grid;
  grid-template-columns: 1.18fr 1fr 1fr 1fr;
  grid-gap: 20px;
  gap: 20px;
}

.v72 .field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.v72 .field select,
.v72 .field input[type="text"] {
  width: 100%;
  height: 44px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  padding: 0 12px;
  font: inherit;
  font-size: 14.5px;
  color: var(--color-text);
  background: #fff;
}

.v72 .field select:hover,
.v72 .field input[type="text"]:hover {
  border-color: #c9d2e0;
}

.v72 .field select:focus,
.v72 .field input[type="text"]:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px var(--color-primary-tint);
}

.v72 .field-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 8px;
  gap: 8px;
}

.v72 .rooms-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

/* чипы комнат — checkbox + label (деградация без JS, §5.2) */
.v72 .rooms-chips input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.v72 .rooms-chips label {
  height: 44px;
  min-width: 40px;
  padding: 0 11px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
}

.v72 .rooms-chips label:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.v72 .rooms-chips input:checked + label {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.v72 .rooms-chips input:focus-visible + label {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.v72 .search-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

.v72 .btn-primary {
  height: 48px;
  padding: 0 32px;
  border: 0;
  border-radius: var(--radius-control);
  background: var(--color-primary);
  color: #fff;
  font-size: 15.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.v72 .btn-primary:hover {
  background: var(--color-primary-hover);
  color: #fff;
}

.v72 .btn-outline {
  height: 48px;
  padding: 0 36px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: #fff;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.v72 .btn-outline:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.v72 .link-reset {
  font-size: 14px;
  color: var(--color-text-secondary);
  border: 0;
  background: transparent;
  padding: 4px 0;
}

.v72 .link-reset:hover {
  color: var(--color-text);
}

.v72 .search-compact {
  display: none;
  gap: 8px;
}

.v72 .search-compact input {
  flex: 1 1;
  height: 48px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  padding: 0 14px;
  font: inherit;
  font-size: 14.5px;
  color: var(--color-text);
}

.v72 .quick-links {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 18px;
  position: relative;
  z-index: 2;
}

.v72 .quick-links .lbl {
  color: rgba(255, 255, 255, 0.6);
  font-size: 13.5px;
  margin-right: 4px;
}

.v72 .quick-links a.chip {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.25);
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-size: 13.5px;
  font-weight: 500;
}

.v72 .quick-links a.chip:hover {
  background: rgba(255, 255, 255, 0.24);
  color: #fff;
}

.v72 .quick-links a.map-link {
  color: #fff;
  margin-left: auto;
  font-weight: 600;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.5);
}

.v72 .quick-links a.map-link:hover {
  border-bottom-style: solid;
  color: #fff;
}

/* ---------- Секции ---------- */
.v72 .section {
  padding: 64px 0;
}

.v72 .section.alt {
  background: var(--color-surface);
}

.v72 .section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 32px;
  gap: 24px;
}

.v72 .section-kicker {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 10px;
}

.v72 .section-kicker .overline {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.v72 .section h2 {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-text);
  line-height: 1.2;
  margin: 0;
}

.v72 .section-head .more {
  font-size: 14.5px;
  font-weight: 600;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ---------- Карточка ЖК ---------- */
.v72 .zhk-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
  gap: 20px;
}

.v72 .zhk-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.v72 .zhk-card:hover {
  box-shadow: 0 1px 2px rgba(11, 27, 51, 0.06), 0 8px 24px rgba(11, 27, 51, 0.08);
  border-color: #d4d9e4;
}

.v72 .zhk-photo {
  position: relative;
  aspect-ratio: 4/3;
  background: #e9edf3;
}

.v72 .zhk-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.v72 .zhk-badge {
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.v72 .zhk-badge.sale {
  background: #fef3e2;
  color: #b45309;
}

.v72 .zhk-badge.done {
  background: #e7f6ec;
  color: #16a34a;
}

.v72 .zhk-badge.new {
  background: var(--color-primary-tint);
  color: var(--color-primary);
}

.v72 .zhk-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
  filter: drop-shadow(0 1px 2px rgba(11, 27, 51, 0.28));
}

.v72 .zhk-count {
  position: absolute;
  bottom: 6px;
  right: 8px;
  font-size: 11.5px;
  font-weight: 600;
  color: #fff;
  background: rgba(11, 27, 51, 0.55);
  padding: 2px 8px;
  border-radius: var(--radius-pill);
}

.v72 .zhk-body {
  padding: 16px 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1 1;
}

.v72 .zhk-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.v72 .zhk-title {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.v72 .zhk-class {
  font-size: 12px;
  color: var(--color-text-secondary);
  white-space: nowrap;
}

.v72 .zhk-dev {
  font-size: 13px;
  color: var(--color-text-secondary);
  margin-top: -6px;
}

.v72 .zhk-loc {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  color: var(--color-text-secondary);
}

.v72 .zhk-price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 2px;
}

.v72 .zhk-price .from {
  font-size: 19px;
  font-weight: 800;
  color: var(--color-text);
  letter-spacing: -0.01em;
}

.v72 .zhk-price .meter {
  font-size: 12.5px;
  color: var(--color-text-secondary);
}

.v72 .zhk-params {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}

.v72 .zhk-params span {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--color-text-secondary);
  background: var(--color-surface);
  border-radius: 6px;
  padding: 3px 8px;
}

.v72 .zhk-cta {
  border-top: 1px solid var(--color-border);
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--color-text);
}

.v72 .zhk-cta:hover {
  background: var(--color-primary-tint);
  color: var(--color-primary);
}

.v72 .zhk-cta .arr {
  color: var(--color-text-secondary);
}

/* ---------- Каталог: тулбар и режимы ---------- */
.v72 .view-switch {
  display: flex;
  background: var(--color-surface);
  border-radius: var(--radius-pill);
  padding: 3px;
}

.v72 .view-switch button {
  border: 0;
  background: transparent;
  height: 36px;
  padding: 0 14px;
  border-radius: var(--radius-pill);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-text-secondary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.v72 .view-switch button.active {
  background: #fff;
  color: var(--color-text);
  box-shadow: 0 1px 3px rgba(11, 27, 51, 0.14);
}

.v72 .list-card {
  display: grid;
  grid-template-columns: 300px 1fr 1.15fr;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  margin-top: 20px;
}

.v72 .list-card .zhk-photo {
  aspect-ratio: auto;
  min-height: 230px;
}

.v72 .list-info {
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-right: 1px solid var(--color-border);
}

.v72 .list-apt {
  padding: 16px 18px;
  min-width: 0;
}

.v72 .list-apt h5 {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-secondary);
  margin-bottom: 8px;
  font-weight: 700;
}

.v72 .apt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  min-width: 560px;
}

.v72 .apt-table td {
  padding: 7px 8px;
  border-bottom: 1px solid var(--color-border);
}

.v72 .apt-table tr:last-child td {
  border-bottom: 0;
}

.v72 .apt-table .r {
  font-weight: 700;
  white-space: nowrap;
}

.v72 .apt-table .a,
.v72 .apt-table .f {
  color: var(--color-text-secondary);
  white-space: nowrap;
}

.v72 .apt-table .p {
  font-weight: 800;
  color: var(--color-text);
  text-align: right;
  white-space: nowrap;
}

.v72 .apt-table a {
  color: var(--color-primary);
  font-weight: 600;
  font-size: 13px;
  white-space: nowrap;
}

.v72 .table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.v72 .fresh-line {
  font-size: 12px;
  color: var(--color-text-secondary);
  margin: -2px 0 10px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.v72 .price-drop {
  font-size: 11px;
  font-weight: 700;
  color: #15803d;
  background: #e7f6ec;
  border-radius: 6px;
  padding: 2px 6px;
  margin-left: 6px;
  white-space: nowrap;
}

/* ---------- Показать ещё ---------- */
.v72 .show-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
}

.v72 .show-more .hint {
  font-size: 13px;
  color: var(--color-text-secondary);
}

/* ---------- Ипотечный калькулятор ---------- */
.v72 .calc {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-gap: 32px;
  gap: 32px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: 28px;
}

.v72 .calc-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 16px;
  gap: 16px;
}

.v72 .calc-result {
  background: var(--color-surface);
  border-radius: var(--radius-control);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}

.v72 .calc-result .month {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-text);
}

.v72 .calc-result .lbl {
  font-size: 13px;
  color: var(--color-text-secondary);
}

.v72 input[type="range"] {
  width: 100%;
  accent-color: var(--color-primary);
  height: 22px;
  cursor: pointer;
}

.v72 .chips-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.v72 .chips-row button {
  height: 34px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-secondary);
}

.v72 .chips-row button:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.v72 .chips-row button.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.v72 .calc-programs {
  margin-bottom: 16px;
}

/* ---------- Рекламный слой (паттерн макета; контент не выводится до erid) ---------- */
body:not(.ads-on) .ad-item {
  display: none;
}

body.ads-on .slot-b {
  display: none;
}

.v72 .ad-badge-mark {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  background: rgba(11, 27, 51, 0.72);
  color: #fff;
  padding: 3px 8px;
  border-radius: 6px;
}

.v72 .zhk-card.ad {
  border: 1px solid var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-tint);
}

.v72 .zhk-card.ad .zhk-cta {
  border-top: 0;
  background: #fff;
  border: 1.5px solid var(--color-primary);
  border-radius: 10px;
  margin: 12px 16px 16px;
  padding: 10px 14px;
  justify-content: center;
  gap: 8px;
  color: var(--color-primary);
}

.v72 .zhk-card.ad .zhk-cta:hover {
  background: var(--color-primary-tint);
}

/* ---------- Подборки ---------- */
.v72 .collections {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 16px;
  gap: 16px;
}

.v72 .collection {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.v72 .collection:hover {
  border-color: var(--color-primary);
  box-shadow: 0 1px 2px rgba(11, 27, 51, 0.06), 0 8px 24px rgba(11, 27, 51, 0.08);
}

.v72 .collection .c-title {
  font-size: 16.5px;
  font-weight: 800;
  color: var(--color-text);
}

.v72 .collection .c-desc {
  font-size: 13.5px;
  color: var(--color-text-secondary);
}

.v72 .collection .c-count {
  font-size: 13px;
  color: var(--color-text-secondary);
  margin-top: auto;
}

.v72 .collection svg {
  color: var(--color-primary);
}

/* ---------- Застройщики ---------- */
.v72 .dev-strip {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.v72 .dev-chip {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 180px;
  transition: border-color 0.15s ease;
}

.v72 .dev-chip:hover {
  border-color: var(--color-primary);
}

.v72 .dev-chip .d-name {
  font-size: 16px;
  font-weight: 800;
  color: var(--color-text);
  letter-spacing: -0.01em;
}

.v72 .dev-chip .d-meta {
  font-size: 13px;
  color: var(--color-text-secondary);
}

/* ---------- Районы ---------- */
.v72 .district-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 10px 24px;
  gap: 10px 24px;
}

.v72 .district-grid a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 4px;
  border-bottom: 1px solid var(--color-border);
  font-size: 14.5px;
  font-weight: 600;
  color: var(--color-text);
}

.v72 .district-grid a:hover {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

.v72 .district-grid a .cnt {
  font-size: 12.5px;
  color: var(--color-text-secondary);
  font-weight: 500;
}

/* ---------- SEO ---------- */
.v72 .seo-text {
  color: var(--color-text-secondary);
  font-size: 14px;
  max-width: 860px;
  column-gap: 48px;
}

.v72 .seo-text p {
  margin-bottom: 12px;
}

.v72 .seo-text h3 {
  color: var(--color-text);
  font-size: 16px;
  margin: 18px 0 8px;
}

/* ---------- Подвал ---------- */
.site-footer {
  background: var(--color-text);
  color: rgba(255, 255, 255, 0.72);
  padding: 48px 0 32px;
}

.site-footer .footer-grid {
  display: grid;
  /* A.84: 5 колонок — добавлена колонка «Сервис» (Сравнение ЖК / Избранное) */
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  grid-gap: 32px;
  gap: 32px;
  margin-bottom: 32px;
}

.site-footer .logo {
  font-size: 20px;
  margin-bottom: 10px;
}

.site-footer .f-desc {
  font-size: 13.5px;
  max-width: 280px;
  color: rgba(255, 255, 255, 0.55);
}

.site-footer h4 {
  color: #fff;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 12px;
  font-weight: 700;
}

.site-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer li {
  margin-bottom: 8px;
}

.site-footer li a {
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
}

.site-footer li a:hover {
  color: #fff;
}

/* A.49: блок регионов подвала — строка ссылок под колонками */
.site-footer .footer-regions {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 20px;
  margin-bottom: 24px;
}
.site-footer .footer-regions ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
}
.site-footer .footer-regions li {
  margin-bottom: 0;
}
.site-footer .footer-regions li a {
  font-size: 13.5px;
}
.site-footer .footer-regions li span[aria-current="true"] {
  color: #fff;
  font-weight: 600;
  font-size: 13.5px;
}

.site-footer .footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  padding-top: 20px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

/* ---------- Карта (режим «На карте») ---------- */
.v72 .map-panel {
  position: relative;
  height: 540px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: #e7edf3;
}

.v72 .map-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.v72 .map-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 5px 9px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--color-text);
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(11, 27, 51, 0.18);
  z-index: 2;
}

.v72 .map-pin:hover,
.v72 .map-pin.on {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.v72 .map-pin::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  width: 8px;
  height: 8px;
  background: #fff;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  transform: translateX(-50%) rotate(45deg);
}

.v72 .map-cluster {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--color-text);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 10px rgba(11, 27, 51, 0.35);
  border: 2px solid #fff;
}

.v72 .map-cluster:hover {
  background: var(--color-primary);
}

.v72 .map-popup {
  position: absolute;
  width: 260px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  z-index: 5;
  box-shadow: 0 10px 32px rgba(11, 27, 51, 0.28);
}

.v72 .map-popup img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

.v72 .map-popup .mp-body {
  padding: 12px 14px 14px;
}

.v72 .map-popup .mp-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.v72 .map-popup .mp-price {
  font-size: 15px;
  font-weight: 800;
  margin: 8px 0 6px;
}

.v72 .map-popup .mp-price span {
  font-size: 12px;
  font-weight: 500;
  color: var(--color-text-secondary);
}

.v72 .mp-close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
}

.v72 .map-note {
  font-size: 13px;
  color: var(--color-text-secondary);
  margin-top: 12px;
  text-align: center;
}

/* ---------- Пустое состояние ---------- */
.v72 .empty-state {
  border: 1px dashed #c9d2e0;
  border-radius: var(--radius-card);
  background: var(--color-surface);
  padding: 56px 24px;
  text-align: center;
}

.v72 .empty-state h3 {
  font-size: 19px;
  font-weight: 800;
  color: var(--color-text);
  margin: 14px 0 6px;
}

.v72 .empty-state p {
  font-size: 14px;
  color: var(--color-text-secondary);
  max-width: 460px;
  margin: 0 auto 18px;
}

.v72 .es-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
}

/* ---------- Журнал и FAQ ---------- */
.v72 .articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
  gap: 20px;
}

.v72 .article-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
}

.v72 .article-card:hover {
  box-shadow: 0 8px 24px rgba(11, 27, 51, 0.08);
}

.v72 .article-card img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
}

.v72 .article-card .ac-body {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1;
}

.v72 .ac-tag {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-primary);
  background: var(--color-primary-tint);
  border-radius: 6px;
  padding: 3px 8px;
  align-self: flex-start;
}

.v72 .article-card h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.35;
  letter-spacing: -0.01em;
  margin: 0;
}

.v72 .article-card:hover h3 {
  color: var(--color-primary);
}

.v72 .ac-meta {
  font-size: 12.5px;
  color: var(--color-text-secondary);
  margin-top: auto;
}

.v72 .faq-list {
  max-width: 820px;
}

.v72 .faq-item {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  margin-bottom: 10px;
  overflow: hidden;
}

.v72 .faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: none;
  border: 0;
  text-align: left;
  padding: 16px 18px;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text);
}

.v72 .faq-q svg {
  flex: none;
  color: var(--color-text-secondary);
  transition: transform 0.2s;
}

.v72 .faq-item.open .faq-q svg {
  transform: rotate(180deg);
}

.v72 .faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease;
}

.v72 .faq-a span {
  display: block;
  padding: 0 18px 16px;
  font-size: 14px;
  color: var(--color-text-secondary);
}

/* ---------- Адаптив ---------- */
@media (max-width: 1080px) {
  .v72 .search-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .v72 .zhk-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .v72 .collections {
    grid-template-columns: repeat(2, 1fr);
  }
  .v72 .district-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .site-footer .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 768px) {
  body {
    padding-bottom: 64px;
  }
  .main-nav {
    display: none;
  }
  .burger {
    display: flex;
  }
  .hide-m {
    display: none !important;
  }
  .bottom-bar {
    display: flex;
  }
  .v72 .section {
    padding: 44px 0;
  }
  .v72 .hero {
    padding: 104px 0 48px;
  }
  .v72 .hero h1 {
    font-size: 27px;
  }
  /* Форма на мобильном: одно поле + «Фильтры» (полный набор — в шторке) */
  .v72 #searchForm .search-tabs,
  .v72 #searchForm .search-grid,
  .v72 #searchForm .search-actions {
    display: none;
  }
  .v72 .search-compact {
    display: flex;
  }
  .v72 .fs-body .search-tabs {
    display: inline-flex;
  }
  .v72 .fs-body .search-grid {
    display: grid;
  }
  .v72 .fs-body .search-actions {
    display: flex;
  }
  .v72 .fs-body .search-grid {
    grid-template-columns: 1fr;
  }
  .v72 .view-switch {
    overflow-x: auto;
    max-width: 100%;
  }
  .v72 .section-head {
    flex-wrap: wrap;
  }
  .v72 .list-card {
    grid-template-columns: 1fr;
  }
  .v72 .list-info {
    border-right: 0;
  }
  .v72 .articles-grid {
    grid-template-columns: 1fr;
  }
  /* Намёк на горизонтальный скролл таблицы: затенённые края при переполнении */
  .v72 .table-scroll {
    background:
      linear-gradient(90deg, #fff 0, rgba(255, 255, 255, 0)) left/28px 100% no-repeat local,
      linear-gradient(270deg, #fff 0, rgba(255, 255, 255, 0)) right/28px 100% no-repeat local,
      linear-gradient(90deg, rgba(11, 27, 51, 0.1), rgba(11, 27, 51, 0)) left/14px 100% no-repeat scroll,
      linear-gradient(270deg, rgba(11, 27, 51, 0.1), rgba(11, 27, 51, 0)) right/14px 100% no-repeat scroll;
  }
  .v72 .map-panel {
    height: 70vh;
    min-height: 420px;
  }
  .v72 .map-popup {
    width: 220px;
  }
  .v72 .calc {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .v72 .zhk-grid,
  .v72 .collections,
  .v72 .district-grid,
  .site-footer .footer-grid {
    grid-template-columns: 1fr;
  }
  .v72 .section h2 {
    font-size: 24px;
  }
  .v72 .calc-fields {
    grid-template-columns: 1fr;
  }
}
/* A.84 (app/mockup.css — в конец файла, только токены движка).
   Порт CSS favcmp.js v13.25 с заменой хардкода на токены:
   #0A6CFF → var(--color-primary), #E5484D → var(--color-danger),
   #0B1F33/#5F6B7A/#9AA7B8 → var(--color-text)/secondary, радиусы → --radius-*. */

/* server-hotfix 2026-10-13 №1: десктопные стили табов поиска (потеряны при сборке) */
.search-tabs { display:inline-flex;background:var(--surface);border-radius:var(--radius-pill);
  padding:3px;margin-bottom:16px; }
.search-tabs button { border:0;background:transparent;padding:7px 16px;border-radius:var(--radius-pill);
  font-size:14px;font-weight:600;color:var(--text-2); }
.search-tabs button.active { background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(11,27,51,.14) }

body:not(.ads-on) .ad-item{display:none}
body.ads-on .slot-b{display:none}
.ad-badge-mark{position:absolute;top:8px;left:8px;z-index:2;background:rgba(11,27,51,.72);color:#fff;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:var(--radius-pill);letter-spacing:.4px}
.brand-band{display:flex;align-items:center;gap:18px;background:linear-gradient(96deg,#0B1B33,#1E3A5F);border-radius:var(--radius-card);padding:22px 26px;text-decoration:none;color:#fff}
.brand-band .bb-tag{background:var(--color-primary);color:#fff;font-size:11px;font-weight:800;padding:3px 10px;border-radius:var(--radius-pill);letter-spacing:.5px}
.brand-band .bb-txt{font-size:15px;font-weight:600}
.brand-band .bb-cta{margin-left:auto;height:40px;padding:0 20px;border-radius:var(--radius-control);background:var(--color-primary);color:#fff;font-weight:700;font-size:14px;display:inline-flex;align-items:center;white-space:nowrap}

.nv-header-icons{display:flex;align-items:center;gap:10px}
.nv-hicon{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-pill);color:var(--color-text);text-decoration:none}
.nv-hicon:hover{background:var(--neutral-tint,var(--color-neutral-tint))}
.h-badge{position:absolute;top:0;right:0;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:800;line-height:15px;text-align:center;pointer-events:none}
.zhk-cmp.on svg,.kv-cmp.on svg{stroke:var(--color-primary)!important;fill:var(--color-primary-tint)}
/* server-hotfix 2026-10-14: лайк активен — красным (эталон: макет) */
.zhk-fav.on svg{stroke:#e53935!important;fill:#e53935}
.zhk-fav,.zhk-cmp,.kv-cmp{width:32px;height:32px;border-radius:50%;border:none;background:rgba(255,255,255,.94);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-rest);color:var(--color-text)}
.zhk-fav:hover,.zhk-cmp:hover,.kv-cmp:hover{background:#fff}
.zhk-fav{position:absolute;top:8px;right:8px;z-index:3}
.zhk-cmp{position:absolute;top:8px;left:8px;z-index:3}
.kv-cmp{position:absolute;top:8px;right:8px;z-index:3;flex:none}
.nv-cmpbar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:1200;display:flex;align-items:center;gap:12px;background:var(--color-text);color:#fff;padding:10px 16px;border-radius:var(--radius-control);box-shadow:0 8px 30px rgba(11,27,51,.4);font-size:14px}
.nv-cmpbar a{color:#fff;font-weight:700;text-decoration:none;background:var(--color-primary);padding:7px 14px;border-radius:var(--radius-control);white-space:nowrap}
.nv-cmpbar button{background:none;border:none;color:var(--color-on-dark);font-size:18px;cursor:pointer;line-height:1}
.nv-cmpbar[hidden]{display:none}
.nv-empty{padding:60px 20px;text-align:center;color:var(--color-text-secondary);font-size:15px}
.nv-favgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:18px;gap:18px}
.nv-favcard{background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}
.nv-favcard img{width:100%;height:160px;object-fit:cover;display:block}
.nv-favcard .b{padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.nv-favcard .b a{font-weight:700;color:var(--color-text);text-decoration:none;font-size:15px}
.nv-favcard .rm{align-self:flex-start;background:none;border:none;color:var(--color-danger);font-size:13px;cursor:pointer;padding:0}
.nv-cmptable{width:100%;border-collapse:collapse;background:var(--color-page);border-radius:var(--radius-card);overflow:hidden}
.nv-cmptable th,.nv-cmptable td{padding:11px 14px;border-bottom:1px solid var(--color-border);text-align:left;font-size:14px;vertical-align:top}
.nv-cmptable th{background:var(--color-surface);font-weight:600;color:var(--color-text-secondary);width:170px;white-space:nowrap}
.nv-cmptable td.nv-diff{background:var(--color-primary-tint)}
.nv-cmptable img{width:100%;height:130px;object-fit:cover;border-radius:var(--radius-control);display:block}
.nv-cmptable a{color:var(--color-text);font-weight:700;text-decoration:none}
.nv-cmptable .rm{background:none;border:none;color:var(--color-danger);font-size:13px;cursor:pointer}
.nv-diffbar{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;font-size:14px;color:var(--color-text);cursor:pointer}
.nv-tabs{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid var(--color-border)}
.nv-tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 14px;font-size:15px;font-weight:600;color:var(--color-text-secondary);cursor:pointer}
.nv-tab.on{color:var(--color-text);border-bottom-color:var(--color-primary)}

/* A.85 §6.2: табы «Квартиры в продаже» — эталонный вид; класс .flats-tab
   сохранён как контракт e2e a21 (data-flats-table / .flats-tab.active) */
button.zhkp-tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-size:15px;font-weight:600;color:var(--color-text-secondary);cursor:pointer}
button.zhkp-tab.on{color:var(--color-text);border-bottom-color:var(--color-primary)}

/* A.85 §5.2: строки цен по типам на карточках ЖК */
.zhk-flatsfrom{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.zhk-flatsfrom-row{font-size:13px;color:var(--color-text-secondary)}

/* A.85 §2: лайк квартиры — позиция и активный красный */
.kv-fav{position:absolute;top:8px;right:46px;z-index:3;flex:none}
.kv-fav.on svg{stroke:#e53935!important;fill:#e53935}

/* A.85 §3: сетка застройщиков по эталону */
.dev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px;gap:14px;margin-top:12px}

/* A.88: заглушка фото в карточке 404 (у ЖК без фото — как в .photo-placeholder) */
.p404-card .p404-card-ph{display:block;width:100%;aspect-ratio:16/9;background:var(--color-surface-alt,var(--color-surface,#eef1f6))}

/* A.88e: «Ипотека от банков» — аккордеон (эталон: примечание admin/ipoteka.html,
   строка банка → программы со столбцами Программа·Ставка·Нач.взнос·Срок·Платёж/мес) */
.zhkp-banks{display:flex;flex-direction:column;gap:8px}
.zhkp-bank{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-page);overflow:hidden}
.zhkp-bank.open{border-color:var(--color-primary)}
.zhkp-bank-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;background:none;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:15.5px;color:var(--color-text);text-align:left}
.zhkp-bank-chevron{flex:none;font-size:18px;color:var(--color-primary);line-height:1}
.zhkp-bank-body{border-top:1px solid var(--color-border);padding:10px 16px 14px}
.zhkp-programs-head,.zhkp-program{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;grid-gap:8px;gap:8px;align-items:baseline;font-size:13.5px}
.zhkp-programs-head{color:var(--color-text-secondary);font-size:12px;padding:4px 0 8px;border-bottom:1px solid var(--color-border)}
.zhkp-program{padding:8px 0;border-bottom:1px solid var(--color-border)}
.zhkp-program:last-child{border-bottom:0}
.zhkp-program-rate b{font-weight:700;color:var(--color-primary)}
.zhkp-program-pay{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}
@media (max-width:760px){
  .zhkp-programs-head{display:none}
  .zhkp-program{grid-template-columns:1fr 1fr;row-gap:4px}
  .zhkp-program-name{grid-column:1/-1;font-weight:600}
}

/* A.88: навигационные ссылки каталогов на 404 (контракт a25-26 прежней страницы) */
.p404-links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin:18px 0 0;font-size:14px;font-weight:600}
.p404-links a{color:var(--color-primary);text-decoration:none}
.p404-links a:hover{text-decoration:underline}

/* A.89 G-4: чекбоксы/радио в формах не наследуют ширину полей (раздувание формы) */
.lead-form input[type="checkbox"],.lead-form input[type="radio"]{width:16px;height:16px;min-height:0;flex-shrink:0;accent-color:var(--color-primary)}

/* A.89 G-1: переключатель региона в светлой липкой шапке (body.inner) — тёмный текст */
body.inner .header-actions .region-switcher--header > summary{color:var(--text-2,#5F6B7A)}
body.inner .header-actions .region-switcher--header > summary:hover,
body.inner .header-actions .region-switcher--header[open] > summary{color:var(--navy,#0B1B33);background:var(--surface)}

/* A.89 P-4: кнопки nv в строке каталога квартир — под превью (цена не перекрывается) */
.kv-thumbcol{display:flex;flex-direction:column;gap:4px;flex-shrink:0;align-items:flex-start}
.kv-thumbbtns{display:flex;gap:4px}
.kv-thumbbtns .kv-cmp,.kv-thumbbtns .kv-fav{position:static;width:22px;height:22px;box-shadow:none;background:var(--color-surface,#F6F5F9)}
.kv-thumbbtns .kv-cmp:hover,.kv-thumbbtns .kv-fav:hover{background:var(--color-border,#E6E4EE)}

/*!*********************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/a93.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************/
/* A.93: UI-батч по макету v13.51 — живой поиск (.ns-*), обратный звонок (.cb-*),
   точечные правки поверх эталона. Стили поиска — по пакету m47.js макета
   (.ns-srch-ovl/.ns-srch-panel/.ns-hint/.ns-srch-it), адаптированы под движок. */

/* ---------- A.93 А.4: лупа в шапке ---------- */
.h-srch-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: var(--radius-control, 8px);
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.h-srch-ic:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}
body.inner .h-srch-ic {
  color: var(--text-2);
}
body.inner .h-srch-ic:hover {
  color: var(--navy);
  background: var(--surface);
}
.header-actions {
  gap: 8px;
}

/* A.93 А.4: рамки на переключателе региона в макете нет — сброс явный */
.header-actions .region-switcher--header {
  border: 0;
}

/* ---------- A.93 А.4/В.6: «Заказать звонок» (.cb-btn) ---------- */
.cb-btn {
  height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: var(--radius-m, 10px);
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.cb-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.8);
}
body.inner .cb-btn {
  border-color: var(--border);
  color: var(--navy);
}
body.inner .cb-btn:hover {
  background: var(--surface);
  border-color: var(--accent);
}
.cb-btn--footer {
  margin-top: 10px;
  border-color: rgba(255, 255, 255, 0.5);
  color: #fff;
}
/* A.98 П.2: на inner-страницах тёмный футер — body.inner .cb-btn (0,2,1) перебивал
   .cb-btn--footer (0,1,0) и делал текст navy-невидимым. Специфичность (0,3,1):
   белый текст всегда + светлый hover. Кнопка в шапке inner (без модификатора)
   и футер главной (body без .inner) не затрагиваются. */
body.inner .cb-btn.cb-btn--footer,
body.inner .cb-btn.cb-btn--footer:hover {
  color: #fff;
}
body.inner .cb-btn.cb-btn--footer:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.8);
}
/* A.93 v4-v2: кнопка «Заказать звонок» в ШАПКЕ — сплошная синяя заливка по шаблону
   владельца (фото 91): без обводки, белый текст, hover темнее. Селекторы с body(.inner)
   — чтобы перебить переопределения базового .cb-btn для inner-страниц; футер
   (.cb-btn--footer) и прочие варианты не затрагиваются. */
.cb-btn.cb-btn--header,
body.inner .cb-btn.cb-btn--header {
  background: var(--accent, #0a6cff);
  border: none;
  color: #fff;
}
.cb-btn.cb-btn--header:hover,
body.inner .cb-btn.cb-btn--header:hover {
  background: var(--accent-hover, #0057d9);
  border: none;
  color: #fff;
}

/* ---------- A.93 А.2: оверлей поиска (по m47.js макета) ---------- */
.ns-srch-ovl {
  position: fixed;
  inset: 0;
  z-index: 1300;
  background: rgba(8, 18, 38, 0.55);
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
  padding: 10vh 16px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.ns-srch-panel {
  width: 640px;
  max-width: 100%;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(8, 18, 38, 0.35);
  overflow: hidden;
}
.ns-srch-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text-3);
}
.ns-srch-head input {
  flex: 1 1;
  border: 0;
  outline: none;
  font: inherit;
  font-size: 16.5px;
  color: var(--text);
  background: transparent;
}
.ns-srch-x {
  border: 0;
  background: transparent;
  font-size: 16px;
  line-height: 1;
  color: var(--text-3);
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
}
.ns-srch-x:hover {
  color: var(--navy);
  background: var(--surface);
}
.ns-res {
  max-height: 56vh;
  overflow: auto;
  padding: 6px;
}
.ns-srch-gr {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-3);
  padding: 10px 10px 4px;
}
.ns-srch-it {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  text-decoration: none;
  color: var(--navy);
  font-size: 14.5px;
}
.ns-srch-it svg {
  color: var(--text-3);
  flex: none;
}
.ns-srch-it:hover,
.ns-srch-it.on {
  background: var(--accent-soft);
}
.ns-srch-it b {
  font-weight: 800;
}
.ns-srch-it .t {
  margin-left: auto;
  font-size: 12px;
  color: var(--text-3);
  white-space: nowrap;
}
.ns-srch-empty {
  padding: 22px 12px;
  text-align: center;
  font-size: 14px;
  color: var(--text-2);
}

/* ---------- A.93 А.2: выпадашка под hero-полем (.ns-hint по m47.js) ---------- */
.search-compact {
  position: relative;
}
.ns-hint {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 80;
  display: none;
  background: #fff;
  color: var(--navy);
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(8, 18, 38, 0.22);
  border: 1px solid var(--border);
  overflow: hidden;
}
.ns-hint.open {
  display: block;
}

/* ---------- A.93 А.4/В.6: модалка обратного звонка (.cbm-*) ---------- */
.cbm-ovl {
  position: fixed;
  inset: 0;
  z-index: 1300;
  background: rgba(8, 18, 38, 0.55);
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 12vh 16px;
}
.cbm-panel {
  position: relative;
  width: 420px;
  max-width: 100%;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(8, 18, 38, 0.35);
  padding: 22px 24px 24px;
}
.cbm-panel .ns-srch-x {
  position: absolute;
  top: 10px;
  right: 10px;
}
.cbm-panel h3 {
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 800;
  color: var(--navy);
}
.cbm-sub {
  margin: 0 0 14px;
  font-size: 13.5px;
  color: var(--text-2);
}
.cbm-panel form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cbm-panel input[type="text"],
.cbm-panel input[type="tel"] {
  height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius-m, 10px);
  padding: 0 12px;
  font: inherit;
  font-size: 14.5px;
  color: var(--text);
  background: #fff;
}
.cbm-panel input:focus {
  border-color: var(--accent);
  outline: none;
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.cbm-panel .pdn-check {
  font-size: 12px;
  color: var(--text-2);
}
.cbm-panel .btn-primary {
  height: 46px;
  justify-content: center;
}
.cbm-done h3 {
  margin: 0 0 6px;
}
.cbm-done p {
  margin: 0;
  font-size: 14px;
  color: var(--text-2);
}

/* ---------- A.93 Б.2: hover на синих кнопках — текст остаётся белым ---------- */
a.btn-primary:hover,
a.btn:hover,
button.btn-primary:hover,
.search-actions .btn-primary:hover,
.search-compact .btn-primary:hover,
.zhkp-btn:hover,
.zhkp-btn.acc:hover,
.flc-btn:hover,
.flc-btn.soft:hover,
.brand-band .bb-cta:hover {
  color: #fff;
}

/* ---------- A.93 Б.1: иконка сравнения — стрелки обмена (цвет currentColor) ---------- */
.link-plain.link-icon svg,
.nv-zbuttons svg {
  color: inherit;
}

/* ---------- A.93 В.3/В.5: заголовки тёмных CTA-блоков — белым (.v72 .section
   h2 макета тёмнее по специфичности — перебиваем оба скоупа) ---------- */
.v72 .ctaband h2,
.ctaband h2 {
  color: #fff;
}

/* ---------- A.93 А.1: ширина текста статей (.np-wrap по эталону статей) ---------- */
.np-wrap {
  max-width: 860px;
  margin: 0 auto;
}

/* ---------- A.93 Б.5: «Показать все N квартир в каталоге →» — синяя ссылка (макет) ---------- */
.zhkp-more {
  display: inline-block;
  margin-top: 14px;
  padding: 0;
  border: 0;
  background: none;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent);
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
}
.zhkp-more:hover {
  border: 0;
  color: var(--accent);
  text-decoration: underline;
}

/* ---------- A.93 Б.6: карточки «Похожие ЖК» / «Вы смотрели» ---------- */
.nv-sim-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.nv-sim-card:hover {
  border-color: var(--accent);
  box-shadow: var(--shadow-card);
}
.nv-sim-ph {
  display: block;
  aspect-ratio: 16 / 10;
  background: var(--surface);
  overflow: hidden;
}
.nv-sim-ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.nv-sim-b {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 12px 12px;
}
.nv-sim-b b {
  font-size: 14px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.25;
}
.nv-sim-card:hover .nv-sim-b b {
  color: var(--accent);
}
.nv-sim-b i {
  font-style: normal;
  font-size: 12px;
  color: var(--text-2);
}
.nv-sim-b u {
  text-decoration: none;
  font-size: 12.5px;
  color: var(--text-3);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* ---------- A.93 Б.4: цветная метка линии метро (.mt-dot — в эталоне) ---------- */
.zhkp-addr .mt-dot {
  margin-right: 6px;
  vertical-align: 1px;
}
.mt-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
}

/* ---------- A.93 В.4: обложки журнала на главной (.miss — градиент-заглушка макета) ---------- */
.hjc-ph.miss {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #dfe7f3 0%, #c9d6ea 100%);
}
.hjc-miss-txt {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-3);
}

/* ---------- A.93 А.1: статья — одна колонка по центру (классы прежние) ---------- */
.np-wrap .legal-doc {
  grid-template-columns: minmax(0, 1fr);
}
.np-wrap .legal-body {
  padding: 28px 24px;
}


/*!*********************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/a96.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************/
/* A.96: страница квартиры — ширина блоков 1060, ценовой блок и таблица 1:1
   по эталону kvartira-card.html, описание-генератор, логотипы банков.
   Подключается последним — приоритет каскада поверх эталона. */

/* П.3: единая колонка блоков под hero — 1060px по центру (заголовки .flc-h2
   уже 1060 в эталоне — ось заголовков совпадает) */
.flc-col {
  max-width: 1060px;
  margin: 0 auto;
}

/* П.5: ценовой блок — отступы 1:1 по эталону (kvartira-card.html:1119-1130):
   .flc-price→.flc-per 2px и .flc-per→.flc-offer 10px — в эталоне CSS движка
   совпадают; кнопки .flc-cta от дисклеймера — 14px (в эталоне инлайн) */
.flc-pricebox .flc-cta {
  margin-top: 14px;
}
.flc-pricebox {
  padding: 18px 22px;
  margin-bottom: 18px;
}

/* П.6: таблица параметров — подписи у левого края, колонка как у ценового
   блока (эталон: td padding 11px 4px, первая колонка 46%, text-align left) */
.flc-params {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
  margin-bottom: 18px;
}
.flc-params td {
  padding: 11px 4px;
  border-bottom: 1px solid var(--border);
  text-align: left;
}
.flc-params td:first-child {
  color: var(--text-2);
  width: 46%;
  padding-left: 0;
}

/* П.7: описание квартиры — сгенерированный текст + хвост оффера */
.flc-desc-text {
  font-size: 14.5px;
  color: var(--text-2);
  line-height: 1.65;
  margin: 0 0 12px;
  white-space: pre-wrap;
}

/* П.8: «Ипотека от банков» — логотип 28-32px (эталон: max-height 30px,
   max-width 130px, contain) или монограмма (первая буква в круге) */
.zhkp-bank-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}
.zhkp-bank-logo img {
  max-height: 30px;
  max-width: 130px;
  object-fit: contain;
  display: block;
}
.zhkp-bank-logo-mono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 14px;
  font-weight: 800;
  flex: none;
}

/* П.9: якорь #lead-form — отступ от липкой шапки ≈80px (было 16px) */
#lead-form {
  scroll-margin-top: 80px;
}

/*!*********************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/a99.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************/
/* A.99: раздел «Новостройки» (/zhk/) — форма и карточки 1:1 по эталону
   novostroyki-index.html. Основные стили .pf-* и .zhk-* уже в etalon.css (A.85b);
   здесь — то, чего в инструментальной выгрузке не было (m47.js макета), и
   точечные стыковки с классами движка. */

/* --- Карточка ЖК -----------------------------------------------------------
   Корень несёт .zhk-card (эталон) И .card (контракт e2e a21-6: .grid-cards .card);
   globals .card задаёт постоянную тень — убираем, тень только по hover (эталон). */
.zhk-card.card { box-shadow: none; }
.zhk-card.card:hover { box-shadow: var(--shadow-card); border-color: #d4d9e4; }

/* Строка срока сдачи под локацией — стили из m47.js макета (в etalon.css не попали) */
.zhk-srok { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-2); margin-top: -2px; }
.zhk-srok .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); flex: none; }
.zhk-srok.done .dot { background: var(--green); }
.zhk-srok b { color: var(--navy); font-weight: 600; }

/* Бейдж класса ЖК поверх фото: базовый .zhk-badge эталона фона не задаёт —
   для читаемости на фото белая плашка (.pro — тёмно-синий, готов под данные). */
.zhk-badge.plain { background: rgba(255, 255, 255, 0.92); color: var(--navy); }
.zhk-badge.pro { background: var(--navy); color: #fff; }

/* Заглушка фото (A.7.1) растягивается на весь блок .zhk-photo (aspect-ratio 4:3) */
.zhk-photo .photo-placeholder { position: absolute; inset: 0; height: 100%; }

/* --- Форма фильтра --------------------------------------------------------- */
/* Чип с реальным checkbox внутри (a21-6 чекает input[name=rooms][value=studio]) */
.pf-check { position: relative; display: inline-flex; align-items: center; gap: 6px; -webkit-user-select: none; -moz-user-select: none; user-select: none; }
.pf-check input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; }
.pf-check:has(input:checked) { background: var(--accent); border-color: var(--accent); color: #fff; }
.pf-check:has(input:checked) small { opacity: 0.92; }

/* Строка полей: лейблы НАД контролами (.field эталона), кнопки на одной оси;
   расстояния — как в .pf-row эталона (gap 8px) */
.pf-row--fields { align-items: flex-end; gap: 8px; }
.pf-row--fields .field { gap: 6px; }
.pf-btns { display: flex; align-items: center; gap: 12px; padding-bottom: 1px; }
a.pf-reset { text-decoration: underline; }

/* Ширины полей — по макету (.pf-sel max 220, .pf-in 130/.w 200, сортировка ~170);
   район/метро — по контенту до 160, чтобы ряд полей помещался в одну строку
   контейнера 1232px (как в novostroyki-index) */
.cf-w-district { width: auto; max-width: 160px; }
.cf-w-metro { width: auto; max-width: 160px; }
.cf-w-from { width: 130px; }
.cf-w-to { width: 130px; }
.cf-w-q { flex: 0 1 170px; min-width: 150px; }
.cf-w-sort { width: 160px; }

/* Адаптив эталона: ≤768px цены по двое, поиск на всю строку, селекты гнутся;
   ≤1080px промежуточный перенос полей (сетка карточек уже 2 колонки) */
@media (max-width: 1080px) {
  .cf-w-district, .cf-w-metro, .cf-w-from, .cf-w-to, .cf-w-sort { flex: 1 1 30%; width: auto; }
  .cf-w-q { flex: 1 1 100%; }
}
@media (max-width: 768px) {
  .cf-w-district, .cf-w-metro, .cf-w-from, .cf-w-to, .cf-w-sort { flex-grow: 1; flex-shrink: 1; flex-basis: calc(50% - 6px); }
  .cf-w-q { flex: 1 1 100%; min-width: 0; }
  .pf-btns { width: 100%; }
  .pf-btns .pf-go { flex: 1 1; }
}

