/* ============================================================
   Релиз 17, часть «Новостройки» — каталог /novostrojki-moskva/ «Кадр · Ночь» (22.10.2026). Образец — nv-cat17.css каталога поселков.
   Подключает catalog/main1/section_horizontal.php только при флаге nv_seo/r17_novostrojki_noch; все правила — под body.nv-nb17 / .nb17.
   Новая разметка — только шапка (.k-*); фильтр, сортировка, плитки, баннер, квиз, «Показать еще», текст — разметка боя, облик здесь.
   ============================================================ */
.nv-nb17{--p:#6D37E0;--p2:#5F25DB;--t:#1C1C21;--t2:#494956;--t3:#8E8E9F;--steel:#E8EBF4;--steel2:#D3D8E8;--steel-t:#4C5578;
  --nline:#E4E4EC;--soft:#F5F6F9;--night:#121830;--night-t2:rgba(255,255,255,.74);--night-t3:rgba(255,255,255,.56);--night-line:rgba(255,255,255,.14);
  --n4:4px;--n6:6px;--mul:'Mulish',sans-serif;--geo:'Geologica',sans-serif;--ease:cubic-bezier(.2,.7,.2,1);
  --pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --flt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h4M12 17h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='10' cy='17' r='2'/%3E%3C/svg%3E");
  --srt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 4v16M3 8l4-4 4 4M17 20V4M13 16l4 4 4-4'/%3E%3C/svg%3E");
  --srch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236D37E0' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E")}
.nv-nb17 .wrapper{background:#fff}

/* ---------- крошки (выводит header.php) ---------- */
.nv-nb17 main > .pagination.container{font:400 13.5px/1.3 var(--geo);color:var(--t3)}
.nv-nb17 main > .pagination.container a{color:var(--t3);transition:color .2s}
.nv-nb17 main > .pagination.container a:hover{color:var(--p)}

/* ---------- заголовок: H1, «N ЖК», мини-карта (ссылка на /novostrojki-moskva/map/) ---------- */
.nv-nb17 section.nb17{padding-top:72px;padding-bottom:0}
.nb17 .k-title{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:48px;align-items:stretch}
.nb17 .k-title-l{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}
.nb17 .k-h1{margin:0;font:900 46px/1.08 var(--mul);letter-spacing:-.025em;color:var(--t);text-wrap:balance}
.nb17 .k-count{margin:16px 0 0;font:400 16px/1.2 var(--geo);color:var(--t2)}
.nb17 .k-count b{font:800 16px/1 var(--mul);color:var(--t)}
.nb17 .k-map{position:relative;display:block;min-height:150px;border-radius:var(--n6);overflow:hidden;border:1px solid var(--nline);background:#F2EFE8}
/* карта — картинка со старой главной боя (assets/img/main-map.png, «Все новостройки на карте»; выбор Milena 22.10) */
.nb17 .k-map img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.nb17 .k-map-b{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:1px solid var(--nline);border-radius:var(--n4);background:#fff;font:700 14px/1 var(--mul);color:var(--p);transition:background-color .2s,color .2s}
.nb17 .k-map-b:before{content:'';width:16px;height:16px;background:currentColor;-webkit-mask:var(--pin) center/contain no-repeat;mask:var(--pin) center/contain no-repeat}
.nb17 .k-map:hover .k-map-b{background:var(--p);color:#fff}

/* ---------- одна панель: ЖК / Район / Застройщик | Комнат | Стоимость | Срок сдачи | Метро | Фильтры | Показать N; липкая под шапкой ----------
   Внутри — компонент фильтра боя (разметка и скрипты без изменений, поиск — его поле SEARCH); обертки фильтра раскрыты (display:contents). */
.nb17 .k-bar{position:sticky;top:72px;z-index:40;margin-top:24px;padding:8px 0 24px}
/* белая полоса во всю ширину окна под закрепленной панелью — подложкой: clip-path обрезал бы раскрытые списки фильтра */
.nb17 .k-bar:before{content:'';position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);z-index:-1;background:#fff}
.nv-nb17 .nb17 .k-panel.k-panel{position:relative;display:flex;align-items:stretch;flex-wrap:wrap;min-height:64px;padding:6px;border:1px solid var(--steel2);border-radius:var(--n6);background:#fff;
  box-shadow:0 1px 2px rgba(18,24,48,.04),0 8px 18px rgba(18,24,48,.08);transition:border-color .2s}
.nv-nb17 .nb17 .k-panel.k-panel:focus-within{border-color:var(--p)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-section,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form > .row,
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SHOW"],.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-button-box{display:contents}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SHOW"] > .smart-filter-block,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-button-box > .smart-filter-block{display:none}
/* части панели — ровно 50 px, как в макете (внутри фильтра боя есть элементы по 58 px, они распирали панель) */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box,
.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter,.nv-nb17 .nb17 .k-panel.k-panel #modef{height:50px;max-height:50px}

/* поиск боя (поле SEARCH фильтра, name="search", подсказки — его .search) — первая часть панели, шире остальных */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SEARCH"]{flex:1 1 240px;min-width:220px}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SEARCH"] > .smart-filter-parameters-box-title{display:none}
.nv-nb17 .nb17 .k-panel.k-panel [data-code="SEARCH"] > .smart-filter-block,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-input-search,
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-input-search > .d-flex{height:50px;margin:0;padding:0}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-input-search:before{display:none}   /* значок боя — вместо него фиолетовая лупа, как у каталога поселков */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-input-search .smart-filter-input-container{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:100%;margin:0;padding:0 14px;border:0;background:none}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-input-search .smart-filter-input-container:before{content:'';flex:none;width:20px;height:20px;background:var(--srch) center/contain no-repeat}
.nv-nb17 .nb17 .k-panel.k-panel #smart_filter_search{flex:1;min-width:0;width:auto;height:100%;margin:0;padding:0;border:0;border-radius:0;outline:0;background:none;box-shadow:none;font:400 16px/1 var(--geo);color:var(--t)}
.nv-nb17 .nb17 .k-panel.k-panel #smart_filter_search::placeholder{color:var(--t3);opacity:1}

/* поля фильтра — пять равных частей по 160 px (самая длинная подпись + стрелка = 154 px) */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box{position:relative;flex:0 1 160px;min-width:0;width:auto;max-width:none;margin:0;padding:0;border:0;background:none}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box > .smart-filter-block,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box-container,
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-input-group-number,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-input-group-dropdown,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-dropdown-text,
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .custom-select-container{height:100%;width:100%;margin:0;padding:0;border:0;background:none}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected{display:flex;align-items:center;justify-content:space-between;gap:10px;height:100%;min-height:0;padding:0 16px;
  border:0;border-left:1px solid var(--nline);border-radius:0;background:none;box-shadow:none;font:600 15px/1 var(--mul);color:var(--t);white-space:nowrap;overflow:hidden;transition:color .2s}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected:hover{color:var(--p)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected:after{content:'';position:static;flex:none;width:7px;height:7px;margin:0;border:0;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;
  background:none;transform:translateY(-2px) rotate(45deg);opacity:.7}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected.select-arrow-active{color:var(--p)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected.select-arrow-active:after{transform:translateY(2px) rotate(-135deg)}

/* «Фильтры» (окно всех фильтров боя) — та же часть панели, фиолетовая, по центру */
.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter{flex:0 1 160px;min-width:0;width:auto;display:flex !important;align-items:center;justify-content:center;gap:8px;height:auto;margin:0;padding:0 16px;
  border:0;border-left:1px solid var(--nline);border-radius:0;background:none;background-image:none;box-shadow:none;font:600 15px/1 var(--mul);color:var(--p);cursor:pointer;transition:color .2s}
/* у «Фильтров» на бою display задан с !important (div.expand_filter) — иначе не перебить */
.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter:hover{color:var(--p2);background:none}
.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter:before{content:'';flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:var(--flt) center/contain no-repeat;mask:var(--flt) center/contain no-repeat}
.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter > div{display:block;padding:0;margin:0;font:inherit;color:inherit;background:none}
.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter > div:before,.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter > div:after,.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter svg,.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter img{display:none}

/* «Показать N» — кнопка внутри панели справа */
.nv-nb17 .nb17 .k-panel.k-panel #modef{flex:none;display:flex;align-items:stretch;margin:0 0 0 6px;padding:0;position:static;width:auto;height:auto;border:0;background:none;box-shadow:none}
.nv-nb17 .nb17 .k-panel.k-panel #modef a{display:flex;align-items:center;justify-content:center;height:auto;min-height:0;margin:0;padding:0 26px;border:0;border-radius:var(--n4);background:var(--p);box-shadow:none;
  font:700 15.5px/1 var(--mul);color:#fff;white-space:nowrap;text-decoration:none;transition:background-color .2s}
.nv-nb17 .nb17 .k-panel.k-panel #modef a:hover{background:var(--p2);color:#fff}

/* окно «Фильтры» боя (.popup-all-filters, fixed, z 1001) лежит внутри липкой панели (свой слой z 40) — затемнение страницы (.overlay, z 1000)
   легло бы поверх окна; пока окно открыто, панель поднимается над затемнением. Содержимое окна — боя (правила панели его не задевают) */
.nv-nb17 .nb17 .k-bar:has(.popup-all-filters[style*="block"]){z-index:1001}
/* сама панель и белая полоса под ней — тоже под затемнением: свой слой того же цвета, что .overlay боя (окно выше — z 1001 против 1000);
   идея projects-ec 23.10 */
.nv-nb17 .nb17 .k-bar:has(.popup-all-filters[style*="block"]):after{content:'';position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);z-index:1000;
  background:rgba(14,19,34,.6);pointer-events:none}

/* ---------- строка вкладок: без рамок, выбранная подчеркнута «Ночью»; сортировка боя справа ---------- */
.nb17 .k-tline{display:flex;align-items:flex-end;margin-top:16px;padding-right:200px;border-bottom:1px solid var(--nline)}
.nb17 .k-tabs{display:flex;align-items:flex-end;gap:30px;min-width:0}
.nb17 .k-tabs a{display:inline-flex;align-items:baseline;gap:7px;padding:4px 0 16px;margin-bottom:-1px;border-bottom:2px solid transparent;font:600 15.5px/1 var(--mul);color:var(--t2);white-space:nowrap;text-decoration:none;transition:color .2s,border-color .2s}
.nb17 .k-tabs a:hover{color:var(--p)}
.nb17 .k-tabs a b{font:500 13px/1 var(--geo);color:var(--t3)}
.nb17 .k-tabs a.on{color:var(--t);border-bottom-color:var(--night)}
.nb17 .k-sep{align-self:center;width:1px;height:18px;margin-bottom:14px;background:var(--steel2)}

/* ссылки соседних подборок (div.tags боя, на подборках) — строкой «чипсов» под вкладками; тексты и ссылки боя */
.nv-nb17 .nb17 .k-tags{margin:0 0 24px}
.nv-nb17 .nb17 .k-tags .tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.nv-nb17 .nb17 .k-tags .tags a{display:inline-flex;align-items:center;height:36px;margin:0;padding:0 14px;border:0;border-radius:var(--n4);background:var(--steel);box-shadow:none;
  font:500 14px/1 var(--geo);color:var(--t);white-space:nowrap;text-decoration:none;transition:background-color .2s,color .2s}
.nv-nb17 .nb17 .k-tags .tags a:hover{background:var(--p);color:#fff}

/* сортировка боя (#catalog-sort, custom-select): «Сортировать:» скрыто для глаз, «По рейтингу» — в строке вкладок справа */
.nb17 .catalog_sort_section{position:relative;margin-top:24px}
.nb17 .section_sort{position:absolute;right:0;top:-60px;z-index:30;display:flex;align-items:center;height:38px;margin:0;padding:4px 0 18px}
.nb17 .section_sort .sort_by{display:flex;align-items:center;gap:0;width:auto;margin:0}
.nb17 .section_sort label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nb17 .section_sort .sort_icon{display:none}
.nb17 .section_sort .custom-select-container{position:relative;width:auto}
.nb17 .section_sort .select-selected{display:inline-flex;align-items:center;gap:8px;height:auto;padding:0;border:0;background:none;font:600 15px/1 var(--mul);color:var(--p);cursor:pointer}
.nb17 .section_sort .select-selected:before{content:'';flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:var(--srt) center/contain no-repeat;mask:var(--srt) center/contain no-repeat}
.nb17 .section_sort .select-selected:after{display:none}
.nb17 .section_sort .select-items{left:auto;right:0;top:calc(100% + 10px);min-width:240px;padding:6px;border:1px solid var(--nline);border-radius:var(--n6);background:#fff;box-shadow:0 12px 32px rgba(18,24,48,.12)}
.nb17 .catalog_section_container{margin-top:0}

/* ---------- плитки ЖК — облик плиток каталога поселков (.n-obj-w) на разметке боя (.object); id, data-entity, ссылки — как на бою ----------
   Тот же шаблон catalog.section/main рисует подборки ЖК на других страницах — там класса .nb17 нет, облик не меняется. */
/* список боя — .new-objects.container (свои поля 64 px и 1280 px) внутри контейнера страницы: на всю ширину раздела */
.nv-nb17 .nb17 .new-objects.container{width:auto;max-width:none;margin:0;padding:0}
.nv-nb17 .nb17 .objects-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.nv-nb17 .nb17 .objects-list > :not(.object){grid-column:1/-1}
.nv-nb17 .nb17 .objects-list .object{display:flex;flex-direction:column;width:auto;max-width:none;margin:0;padding:10px 10px 18px;border:1px solid var(--nline);border-radius:var(--n6);
  background:#fff;color:var(--t);overflow:hidden;box-shadow:none;transition:border-color .2s var(--ease)}
.nv-nb17 .nb17 .objects-list .object:hover{border-color:var(--steel2);box-shadow:none}
.nv-nb17 .nb17 .objects-list .object *:not(.title-h3){line-height:inherit}
.nv-nb17 .nb17 .object .object-image-block{flex:none;width:auto;max-width:none;height:auto;aspect-ratio:16/10;margin:0;border-radius:var(--n4);background:var(--steel);box-shadow:none}
.nv-nb17 .nb17 .object:hover .object-image-block{box-shadow:none}
.nv-nb17 .nb17 .object .object-image-block img{max-width:none;transition:transform .8s var(--ease)}
.nv-nb17 .nb17 .object:hover .object-image-block img{transform:scale(1.03)}
/* метки: класс — темная, «Популярно» — фиолетовая с молнией; на бою шрифт меток с !important */
.nv-nb17 .nb17 .object .object-labels-block{left:10px;top:10px;z-index:1;display:flex;flex-wrap:wrap;gap:4px;width:auto;height:auto}
.nv-nb17 .nb17 .object .object-labels-block .object-label{position:static;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:var(--n4);
  background:rgba(18,24,48,.82);color:#fff;font-family:var(--geo) !important;font-size:12.5px !important;font-weight:500 !important;line-height:1;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.nv-nb17 .nb17 .object .object-labels-block .object-label.populars{right:auto;background:var(--p)}
.nv-nb17 .nb17 .object .object-label.populars svg{width:13px;height:13px}
/* рейтинг на фото — белая плашка */
.nv-nb17 .nb17 .object .object-rating--overlay{position:absolute;left:10px;bottom:10px;top:auto;z-index:1;display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px 0 8px;
  border-radius:var(--n4);background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.nv-nb17 .nb17 .object .object-rating--overlay .star{width:12px;height:12px;margin:0 2px 0 0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F5A623'%3E%3Cpath d='M12 2l3 7 7 .6-5.3 4.7L18.3 22 12 18.3 5.7 22l1.6-7.7L2 9.6 9 9z'/%3E%3C/svg%3E") center/contain no-repeat}
.nv-nb17 .nb17 .object .object-rating--overlay .rating{display:inline-flex;align-items:center;gap:4px;font:700 13px/1 var(--mul);color:var(--t)}
.nv-nb17 .nb17 .object .object-rating--overlay .rating b{width:auto;height:auto;font:400 12px/1 var(--geo);color:var(--t3)}
.nv-nb17 .nb17 .object .object-rating--overlay .evaluations{font:400 12px/1 var(--geo);color:var(--t3)}
/* текст: название, адрес, три строки цен (таблицей — колонки ровные по всем строкам), внизу «Еще N вариантов» и «Застройщик» */
.nv-nb17 .nb17 .object .object-text-block{flex:1;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;column-gap:16px;padding:16px 8px 0}
.nv-nb17 .nb17 .object .title.title-h3{grid-column:1/-1;margin:0;font:800 19px/1.25 var(--mul);color:var(--t)}
.nv-nb17 .nb17 .object .object-location{grid-column:1/-1;margin:6px 0 0}
.nv-nb17 .nb17 .object .object-location .address{margin:0;font:400 14px/1.4 var(--geo);color:var(--t2)}
/* метро с цветом линии — как на бою (у поселков скрыто, у ЖК — главное) */
.nv-nb17 .nb17 .object .object-location .metro{display:flex;align-items:center;gap:6px;margin:8px 0 0;font:500 13.5px/1.3 var(--geo);color:var(--steel-t)}
.nv-nb17 .nb17 .object .object-location .metro svg{flex:none}
.nv-nb17 .nb17 .object.populars .object-location .metro{color:var(--night-t2)}
.nv-nb17 .nb17 .object .object-rating{display:none}   /* «5.0 · 347 оценок» зашито в шаблон одинаково у всех ЖК — на бою скрыто, не показываем */
.nv-nb17 .nb17 .object .object-info{grid-column:1/-1;display:grid;grid-template-columns:auto auto minmax(0,1fr);margin:14px 0 0}
.nv-nb17 .nb17 .object .object-info .row{display:contents}
.nv-nb17 .nb17 .object .object-info .row .col{width:auto;max-width:none;padding:9px 16px 9px 0;font:400 14px/1 var(--geo);color:var(--t);white-space:nowrap}
.nv-nb17 .nb17 .object .object-info .row:not(:first-child) .col{border-top:1px solid var(--nline)}
.nv-nb17 .nb17 .object .object-info .row .col:nth-child(1){font:700 14px/1 var(--mul)}
.nv-nb17 .nb17 .object .object-info .row .col:nth-child(2){color:var(--t2)}
.nv-nb17 .nb17 .object .object-info .row .col:nth-child(3){padding-right:0;text-align:right;font-weight:600;color:var(--t)}   /* у ЖК цена — главное в строке */
.nv-nb17 .nb17 .object .object-more-plots{grid-column:1;grid-row:5;align-self:end;margin:0;padding-top:12px;font:400 13.5px/1.4 var(--geo);color:var(--steel-t);white-space:nowrap}
.nv-nb17 .nb17 .object .object-developer{grid-column:1/-1;grid-row:5;align-self:end;margin:0;padding-top:12px;text-align:left;font:400 13.5px/1.4 var(--geo);color:var(--steel-t)}
.nv-nb17 .nb17 .object .object-developer strong{font:inherit !important;color:inherit}
.nv-nb17 .nb17 .object .object-developer a{font:inherit;color:var(--p);transition:color .2s}
.nv-nb17 .nb17 .object .object-developer a:hover{color:var(--p2)}
/* «Популярно» — вся плитка на «Ночи» (решение Milena 22.10; на бою — фиолетовая заливка) */
.nv-nb17 .nb17 .objects-list .object.good-item.populars{background:var(--night);border-color:var(--night);color:#fff}
.nv-nb17 .nb17 .object.good-item.populars:before{display:none}
.nv-nb17 .nb17 .object.populars .title.title-h3{color:#fff}
.nv-nb17 .nb17 .object.populars .object-location .address{color:var(--night-t2)}
.nv-nb17 .nb17 .object.populars .object-info .row:not(:first-child) .col{border-top-color:var(--night-line)}
.nv-nb17 .nb17 .object.populars .object-info .row .col{color:#fff}
.nv-nb17 .nb17 .object.populars .object-info .row .col:nth-child(2){color:var(--night-t2)}
.nv-nb17 .nb17 .object.populars .object-info .row .col:nth-child(3){color:#fff}
.nv-nb17 .nb17 .object.populars .object-more-plots,.nv-nb17 .nb17 .object.populars .object-developer{color:var(--night-t3)}
.nv-nb17 .nb17 .object.populars .object-developer a{color:#C9B8F5}
.nv-nb17 .nb17 .object .object-developer,.nv-nb17 .nb17 .object .object-developer a{overflow:visible;white-space:normal;text-overflow:clip}

/* ---------- обертка сайта: overflow:hidden у .wrapper ломает липкую панель — clip (как в релизе 16) ---------- */
.nv-nb17 .wrapper{overflow:clip}

/* ---------- баннер Ноко после 6-й плитки (креатив, «Реклама» и erid — как на бою) — во всю ширину сетки ---------- */
.nv-nb17 .nb17 .objects-list > .new-banners{margin:0;padding:0}
.nv-nb17 .nb17 .objects-list > .new-banners > .container{width:auto;max-width:none;margin:0;padding:0}
.nv-nb17 .nb17 .new-banners .banner-container{width:auto;max-width:none;margin:0;border-radius:var(--n6);overflow:hidden}
.nv-nb17 .nb17 .new-banners .banner{width:100%;height:auto;border-radius:var(--n6)}   /* какую версию показать (компьютер / телефон) — решают стили сайта */

/* ---------- квиз после 12-й плитки — облик квиза главной «Кадр · Ночь» (.n-qz); тексты, шаги, форма и скрипт — боя ---------- */
.nv-nb17 .nb17 .nv-quiz.nv-quiz--row{display:grid;grid-template-columns:1fr minmax(0,300px) auto 1fr;column-gap:14px;align-items:center;margin:20px 0;padding:48px 48px 44px;border:0;border-radius:var(--n6);
  background:linear-gradient(180deg,var(--soft) 0%,var(--steel) 100%);box-shadow:none;text-align:center}
.nv-nb17 .nb17 .nv-quiz > *{grid-column:1/-1}
.nv-nb17 .nb17 .nv-quiz__head{display:flex;flex-direction:column;align-items:center;max-width:720px;margin:0 auto;padding:0}
.nv-nb17 .nb17 .nv-quiz__kicker{display:inline-flex;align-items:center;height:26px;margin:0;padding:0 9px;border-radius:var(--n4);background:#fff;font:500 12.5px/1 var(--geo);color:var(--steel-t)}
.nv-nb17 .nb17 .nv-quiz__title{margin:14px 0 8px;font:800 40px/1.1 var(--mul);letter-spacing:-.02em;color:var(--t);text-wrap:balance}
.nv-nb17 .nb17 .nv-quiz__sub{margin:0;font:400 16px/1.62 var(--geo);color:var(--t2)}
/* шкала шагов — три отрезка (маска поверх полосы боя), «Шаг 1 из 3» справа */
.nv-nb17 .nb17 .nv-quiz__bar{grid-column:2;height:4px;margin:20px 0 0;border-radius:2px;background:var(--steel2);overflow:hidden;
  -webkit-mask:linear-gradient(90deg,#000 calc(33.333% - 2px),transparent 0 calc(33.333% + 2px),#000 0 calc(66.666% - 2px),transparent 0 calc(66.666% + 2px),#000 0);
  mask:linear-gradient(90deg,#000 calc(33.333% - 2px),transparent 0 calc(33.333% + 2px),#000 0 calc(66.666% - 2px),transparent 0 calc(66.666% + 2px),#000 0)}
.nv-nb17 .nb17 .nv-quiz__bar-fill{background:var(--p)}
.nv-nb17 .nb17 .nv-quiz__counter{grid-column:3;margin:20px 0 0;font:500 13px/1 var(--geo);color:var(--steel-t);text-align:left;white-space:nowrap;transform:translateY(-2px)}
.nv-nb17 .nb17 .nv-quiz__live{margin:12px 0 0;font:500 14px/1.3 var(--geo);color:var(--steel-t)}
.nv-nb17 .nb17 .nv-quiz__form{display:flex;flex-direction:column;align-items:center;margin:0}
.nv-nb17 .nb17 .nv-quiz__step{width:100%;margin:0;padding:22px 0 0;border:0}   /* отступ над вопросом — у fieldset: margin у legend работает иначе */
.nv-nb17 .nb17 .nv-quiz__q{display:block;float:left;width:100%;margin:0 0 14px;padding:0;font:800 18px/1.3 var(--mul);color:var(--t);text-align:center}
.nv-nb17 .nb17 .nv-quiz__opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;max-width:1000px;margin:0 auto}
.nv-nb17 .nb17 .nv-quiz__opts.is-hidden{display:none}
.nv-nb17 .nb17 .nv-quiz__opts[data-cols="2"],.nv-nb17 .nb17 .nv-quiz__opts[data-cols="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}
.nv-nb17 .nb17 .nv-quiz__opts:has(> :nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}
.nv-nb17 .nb17 .nv-quiz__opts:has(> :nth-child(6)){grid-template-columns:repeat(3,minmax(0,1fr))}
.nv-nb17 .nb17 .nv-quiz__opt{display:grid;grid-template-columns:minmax(0,1fr) 32px;grid-template-rows:auto auto;align-content:center;align-items:center;column-gap:14px;row-gap:3px;min-height:76px;
  margin:0;padding:14px;border:1px solid #fff;border-radius:var(--n6);background:#fff;box-shadow:none;text-align:left;transition:background-color .25s var(--ease),border-color .25s var(--ease)}
.nv-nb17 .nb17 .nv-quiz__opt-l{grid-column:1;font:800 19px/1.2 var(--mul);color:var(--t);transition:color .25s}
.nv-nb17 .nb17 .nv-quiz__opt-h{grid-column:1;font:400 13px/1.35 var(--geo);color:var(--steel-t);transition:color .25s}
.nv-nb17 .nb17 .nv-quiz__opt:after{content:'';grid-column:2;grid-row:1/3;width:32px;height:32px;border-radius:var(--n4);
  background:var(--steel) center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121830' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");transition:background-color .25s}
.nv-nb17 .nb17 .nv-quiz__opt:hover,.nv-nb17 .nb17 .nv-quiz__opt.is-active,.nv-nb17 .nb17 .nv-quiz__opt[aria-pressed="true"]{background:var(--p);border-color:var(--p)}
.nv-nb17 .nb17 .nv-quiz__opt:hover .nv-quiz__opt-l,.nv-nb17 .nb17 .nv-quiz__opt:hover .nv-quiz__opt-h{color:#fff}
.nv-nb17 .nb17 .nv-quiz__opt:hover:after{background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236D37E0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.nv-nb17 .nb17 .nv-quiz__opt:focus-visible{outline:2px solid var(--p);outline-offset:2px}
/* первый шаг — с иконками, как на главной */
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt{grid-template-columns:48px minmax(0,1fr) 32px}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt:before{content:'';grid-column:1;grid-row:1/3;width:48px;height:48px;border-radius:var(--n4);background:var(--night) center/24px no-repeat;transition:background-color .25s}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt-l,.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt-h{grid-column:2}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt:after{grid-column:3}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt:hover:before{background-color:rgba(255,255,255,.16)}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt[data-value="uchastok"]:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M3 17l5-3 8 3 5-3'/%3E%3Cpath d='M3 17v3l5-3 8 3 5-3v-3'/%3E%3Cpath d='M12 4v8'/%3E%3Cpath d='M12 4l5 2-5 2'/%3E%3C/svg%3E")}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt[data-value="novostroyka"]:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M4 21V8l7-4v17'/%3E%3Cpath d='M11 21V10l9 3v8'/%3E%3Cpath d='M2.5 21h19'/%3E%3Cpath d='M7 10v.01M7 13v.01M7 16v.01M15 15v.01M15 18v.01M17.5 15v.01'/%3E%3C/svg%3E")}
.nv-nb17 .nb17 .nv-quiz__step[data-step="1"] .nv-quiz__opt[data-value="ne_reshil"]:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3Cpath d='M10 9.2a2 2 0 1 1 2.6 1.9c-.4.2-.6.5-.6.9v.4'/%3E%3Cpath d='M12 14v.01'/%3E%3C/svg%3E")}
.nv-nb17 .nb17 .nv-quiz__back{margin:16px auto 0;padding:0;border:0;background:none;font:500 14px/1 var(--geo);color:var(--steel-t)}
.nv-nb17 .nb17 .nv-quiz__back:hover{color:var(--p)}

/* ---------- «Показать еще» (скрипт каталога боя, data-use="show-more-N") и страницы (Nv\Seo\Pagination, ?PAGEN_1=) ---------- */
.nv-nb17 .nb17 .show_more{display:flex;justify-content:center;margin:32px 0 0}
.nv-nb17 .nb17 .show_more .btn{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:420px;height:50px;margin:0;padding:0 24px;border:1px solid var(--steel2);border-radius:var(--n4);
  background:#fff;box-shadow:none;font:700 15px/1 var(--mul);color:var(--p);cursor:pointer;transition:border-color .2s}
.nv-nb17 .nb17 .show_more .btn:hover{border-color:var(--p);background:#fff;color:var(--p)}
.nv-nb17 .nb17 .nv-pager{gap:6px;margin:18px 0 0}
.nv-nb17 .nb17 .nv-pager a,.nv-nb17 .nb17 .nv-pager span{min-width:42px;height:42px;padding:0 12px;border:1px solid var(--steel2);border-radius:var(--n4);background:#fff;font:700 15px/1 var(--mul);color:var(--t);transition:border-color .2s,color .2s}
.nv-nb17 .nb17 .nv-pager a:hover{border-color:var(--p);color:var(--p)}
.nv-nb17 .nb17 .nv-pager .nv-pager__page--current{background:var(--night);border-color:var(--night);color:#fff}
.nv-nb17 .nb17 .nv-pager .nv-pager__gap{min-width:auto;border:0;background:none;color:var(--t3)}
.nv-nb17 .nb17 .nv-pager .nv-pager__step{color:var(--p)}

  background:none;font:500 15px/1 var(--geo);color:var(--t);cursor:pointer;transition:background-color .2s,color .2s}
  font:800 14px/1 var(--mul);color:#fff;break-after:avoid}
/* вкладки «Цена», «От МКАД», «Коммуникации», «Класс» — группы колонками, название над темной линией (как «Часто ищут» на главной) */
  font:800 15px/1.25 var(--mul);color:var(--t)}
/* отступы как в макете: плитки → «Показать еще» 32, страницы → «Поиск по параметрам» 72 (у списка боя снизу 60, у раздела 60) */
.nv-nb17 .nb17 .new-objects{margin-bottom:0;padding-bottom:0}

/* раскрытые «Стоимость / Площадь / От МКАД» (бой: ячейка получает .active) — белый лист под панелью, поля «от / до» рядом */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .slider_container{top:calc(100% + 14px);left:0;width:300px;margin:0;padding:12px;border:1px solid var(--nline);border-radius:var(--n6);
  background:#fff;box-shadow:0 12px 32px rgba(18,24,48,.12)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box.active .slider_container{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .slider_container .min-price1,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .slider_container .max-price1{width:100%;height:44px;margin:0;padding:0 12px;border:1px solid var(--steel2);
  border-radius:var(--n4);background-color:#fff;box-shadow:none;font:400 15px/1 var(--geo);color:var(--t);outline:0}   /* «₽» и «сот.» в поле — картинкой боя, фон не сбрасываем */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .slider_container .min-price1:focus,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .slider_container .max-price1:focus{border-color:var(--p)}
/* «Район / шоссе» (окно .filter-metro боя): скрипт боя ставит top/left от общей обертки, а здесь она — панель; окно — листом под панелью.
   Содержимое (вкладки «Район / Шоссе», буквы, флажки) — боя */
@media (min-width:721px){.nv-nb17 .nb17 .k-panel.k-panel .filter-metro{top:calc(100% + 14px) !important;left:0 !important;right:auto;width:min(920px,100%);max-height:min(562px,calc(100vh - 240px));overflow-y:auto;
  border:1px solid var(--nline);border-radius:var(--n6);background:#fff;box-shadow:0 12px 32px rgba(18,24,48,.12)}}

/* ---------- текст подборки (.section_text боя, на подборках) — колонкой для чтения, отделен линией; тексты и ссылки боя ---------- */
.nv-nb17 .nb17 .section_text{max-width:820px;margin:72px 0 0;padding:40px 0 0;border-top:1px solid var(--nline);font:400 16px/1.65 var(--geo);color:var(--t2)}
.nv-nb17 .nb17 .section_text h2{margin:40px 0 14px;font:800 30px/1.15 var(--mul);letter-spacing:-.015em;color:var(--t)}
.nv-nb17 .nb17 .section_text > :first-child{margin-top:0}
.nv-nb17 .nb17 .section_text p{margin:0 0 14px;font:inherit;color:inherit}
.nv-nb17 .nb17 .section_text ol,.nv-nb17 .nb17 .section_text ul{margin:0 0 14px;font:inherit;color:inherit}
.nv-nb17 .nb17 .section_text li{font:inherit;color:inherit}
.nv-nb17 .nb17 .section_text a{color:var(--p)}
.nv-nb17 .nb17 .section_text a:hover{color:var(--p2)}
.nv-nb17 section.nb17{padding-bottom:72px}

/* ================= планшет (721–1180): поиск и «Показать N» — первой строкой панели, четыре поля и «Фильтры» — второй; вкладки листаются, сортировка над ними ================= */
@media (max-width:1180px){
  .nb17 .k-title{grid-template-columns:minmax(0,1fr) 280px;gap:32px}
  .nb17 .k-h1{font-size:40px}
  .nv-nb17 .nb17 .k-panel.k-panel:after{content:'';order:3;flex:1 1 100%;height:0}
  .nv-nb17 .nb17 .k-panel.k-panel #modef{order:2;height:52px;max-height:52px}
  /* по 20%: с нулевой основой поля вставали в строку переноса шириной 0 px */
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box,.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter{order:4;flex:1 1 20%;height:52px;max-height:52px;margin:6px 0 -6px;border-top:1px solid var(--nline)}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SEARCH"]{order:1;flex:1 1 0;margin:0;border-top:0}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="ROOMS"]{margin-left:-6px}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="ROOMS"] .select-selected{border-left:0}
  .nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter{margin-right:-6px}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected{justify-content:center;padding:0 10px;font-size:14px}
  .nv-nb17 .nb17 .k-panel.k-panel .filter-metro{width:100%}
  .nb17 .k-tline{flex-wrap:wrap;padding:34px 0 0}
  .nb17 .k-tabs{gap:24px;overflow-x:auto;scrollbar-width:none}
  .nb17 .k-tabs::-webkit-scrollbar{display:none}
  .nb17 .section_sort{left:0;right:auto;top:-97px;height:20px;padding:0}
  .nb17 .section_sort .select-items{left:0;right:auto}
  .nv-nb17 .nb17 .nv-quiz__opts,.nv-nb17 .nb17 .nv-quiz__opts:has(> :nth-child(5)),.nv-nb17 .nb17 .nv-quiz__opts:has(> :nth-child(6)),
  .nv-nb17 .nb17 .nv-quiz__opts[data-cols="2"],.nv-nb17 .nb17 .nv-quiz__opts[data-cols="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nv-nb17 .nb17 .nv-quiz.nv-quiz--row{padding:40px 32px}
}
@media (max-width:1100px){
  .nv-nb17 .nb17 .objects-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ================= телефон (≤720): заголовок, карта полосой, поиск во всю ширину, ниже поля сеткой 2 × 2, внизу «Фильтры» и «Показать N»
   (порядок как на бою); списки фильтра — листом снизу, «Метро» — на весь экран (как у боя до 480 px). Панель на телефоне не липнет ================= */
@media (max-width:720px){
  .nv-nb17 section.nb17{padding-top:40px}
  .nb17 .k-title{grid-template-columns:1fr;gap:20px}
  .nb17 .k-h1{font-size:28px;line-height:1.12}
  .nb17 .k-count{margin-top:12px;font-size:15px}
  .nb17 .k-map{min-height:96px}
  .nb17 .k-bar{position:relative;top:auto;margin-top:12px;padding:8px 0}
  .nv-nb17 .nb17 .k-panel.k-panel{display:block;padding:0;border:0;border-radius:0;box-shadow:none;background:none}
  .nv-nb17 .nb17 .k-panel.k-panel:after{display:none}
  /* поля фильтра боя — сеткой: поиск во всю ширину, Комнат / Стоимость / Срок сдачи / Метро — 2 × 2, «Фильтры» и «Показать N» — последней строкой */
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form > .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;position:static}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box,.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter,
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SEARCH"]{order:0;flex:none;width:auto;min-width:0;height:48px;max-height:48px;margin:0;border-top:0}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="ROOMS"],.nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter{margin:0}   /* сдвиги строки планшета (−6 px) телефону не нужны */
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SEARCH"]{grid-column:1/-1;border:1px solid var(--steel2);border-radius:var(--n4);background:#fff}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="SEARCH"]:focus-within{border-color:var(--p)}
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-selected,.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box[data-code="ROOMS"] .select-selected{justify-content:space-between;padding:0 14px;
    border:1px solid var(--steel2);border-radius:var(--n4);background:#fff;font-size:14px}
  .nv-nb17 .nb17 .k-panel.k-panel .expand_filter.btn-more-filter{padding:0 14px;border:1px solid var(--steel);border-radius:var(--n4);background:var(--steel);font-size:14px}
  .nv-nb17 .nb17 .k-panel.k-panel #modef{position:static;height:48px;max-height:48px;margin:0}
  .nv-nb17 .nb17 .k-panel.k-panel #modef a{width:100%;padding:0 12px}
  /* раскрытые «Стоимость / Площадь / От МКАД» — листом снизу экрана (лента прокручивается и обрезала бы лист) */
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .slider_container{position:fixed !important;top:auto !important;left:0 !important;right:0;bottom:0;z-index:200;width:auto;
    padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:var(--n6) var(--n6) 0 0}
  /* «Район / шоссе» — на весь экран под шапкой, как у боя до 480 px (у боя 481–720 — окно на зашитой высоте) */
  .nv-nb17 .nb17 .k-panel.k-panel .filter-metro{position:fixed;top:72px !important;left:0 !important;right:0;bottom:0;z-index:200;width:auto;max-height:none;border-radius:0}
  .nb17 .k-tline{margin-top:12px;padding-top:32px}
  .nb17 .k-tabs{margin:0 -16px;padding:0 16px;gap:22px}
  .nb17 .section_sort{top:-93px}
  .nb17 .catalog_sort_section{margin-top:24px}
  .nv-nb17 .nb17 .objects-list{grid-template-columns:1fr;gap:14px}
  .nv-nb17 .nb17 .objects-list .object{padding:8px 8px 14px}
  .nv-nb17 .nb17 .object .object-text-block{padding:12px 6px 0}
  .nv-nb17 .nb17 .nv-quiz.nv-quiz--row{grid-template-columns:minmax(0,1fr) auto;padding:30px 16px 22px;text-align:left}
  .nv-nb17 .nb17 .nv-quiz__head{align-items:flex-start}
  .nv-nb17 .nb17 .nv-quiz__title{font-size:28px}
  .nv-nb17 .nb17 .nv-quiz__bar{grid-column:1}
  .nv-nb17 .nb17 .nv-quiz__counter{grid-column:2}
  .nv-nb17 .nb17 .nv-quiz__q{text-align:left}
  .nv-nb17 .nb17 .nv-quiz__opts,.nv-nb17 .nb17 .nv-quiz__opts:has(> :nth-child(5)),.nv-nb17 .nb17 .nv-quiz__opts:has(> :nth-child(6)),
  .nv-nb17 .nb17 .nv-quiz__opts[data-cols="2"],.nv-nb17 .nb17 .nv-quiz__opts[data-cols="4"]{grid-template-columns:1fr;gap:8px}
  .nv-nb17 .nb17 .nv-pager a,.nv-nb17 .nb17 .nv-pager span{min-width:38px;height:38px}
  .nv-nb17 .nb17 .section_text{margin-top:48px;padding:28px 0 0;font-size:15px}
  .nv-nb17 .nb17 .section_text h2{margin-top:28px;font-size:23px}
  .nv-nb17 section.nb17{padding-bottom:48px}
}

/* ================= окна фильтра — вариант Б (Milena 22.10, общий для всех фильтров; скрипт assets/js/nv-dd17.js projects-4d, вызов nvDDFilter(".nb17 .k-panel")
   из nv_r17n.php); правила — копия блоков nv-cat17.css под .nv-nb17 ================= */
/* вариант Б (Milena 22.10, как все списки — nv-dd17.js): в окнах фильтра низ «Сбросить · Показать N» (добавляет nvDDFilter), галочки — квадрат слева,
   выбранное — фиолетовый с белой галочкой, число ЖК — серым; сортировка — кружок слева */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .slider_container{width:320px}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .slider_container .nvdd-foot{grid-column:1/-1;margin-top:4px}
.nv-nb17 .nb17 .k-panel.k-panel .filter-metro .nvdd-foot{position:sticky;bottom:0;z-index:2;margin:8px 0 0;padding:12px 24px;background:#fff}
/* у новостроек окно «Метро» боя — колонками с прокруткой вбок (высота окна задана): низ оказался бы в дальней колонке справа.
   На компьютере низа нет, как на бою (выбор станций сразу меняет «Показать N» в панели); на телефоне — низ во всю ширину (ниже) */
@media (min-width:721px){.nv-nb17 .nb17 .k-panel.k-panel .filter-metro .nvdd-foot{display:none}}
/* окно «Фильтры» боя собирается копией фильтра панели (createDynamicCloner) — вместе с низом «Сбросить · Показать» полей «От / До»;
   в окне свой низ «Показать N», копии не нужны */
.nv-nb17 .nb17 .popup-all-filters .nvdd-foot{display:none}
/* поля «От / До» в окне «Фильтры»: у боя у всех знак «₽» картинкой (как у цены). Milena 23.10: «убрать рубли, должна быть другая мера» —
   «Общая площадь» — «м²», «Этаж» — без знака; поля, имена и скрипт — боя. У боя знак задан с !important (.bx-active input.min-price1) — здесь тоже */
.nv-nb17 .nb17 .popup-all-filters [data-code="SPACE"] input.min-price1,.nv-nb17 .nb17 .popup-all-filters [data-code="SPACE"] input.max-price1{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Ctext x='0' y='12' fill='%2323272E' font-family='Mulish,Arial,sans-serif' font-size='13' font-weight='600'%3E%D0%BC%C2%B2%3C/text%3E%3C/svg%3E") !important;
  background-repeat:no-repeat;background-position:calc(100% - 10px) 50%;background-size:auto;padding-right:34px}
.nv-nb17 .nb17 .popup-all-filters [data-code="FLOOR"] input.min-price1,.nv-nb17 .nb17 .popup-all-filters [data-code="FLOOR"] input.max-price1{background-image:none !important}
.nv-nb17 .nb17 .filter-metro .metro-item{font:500 13px/1 var(--geo);color:var(--t3)}
.nv-nb17 .nb17 .filter-metro .metro-item label.station-item{font:600 15px/1.3 var(--mul);color:var(--t);cursor:pointer}
.nv-nb17 .nb17 .filter-metro .metro-item label.station-item:before{box-sizing:border-box;width:18px;height:18px;border:1.5px solid var(--steel2);border-radius:3px;background:#fff;transition:border-color .15s}
.nv-nb17 .nb17 .filter-metro .metro-item:hover label.station-item:before{border-color:var(--p)}
.nv-nb17 .nb17 .filter-metro .metro-item input:checked + label.station-item:before{border-color:var(--p);
  background:var(--p) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/12px no-repeat}
.nv-nb17 .nb17 .filter-metro .metro-item input:checked + label.station-item:after{content:none}
.nv-nb17 .nb17 .section_sort .select-items div{display:flex;align-items:center;gap:12px;margin:0;padding:10px 12px;border-radius:var(--n4);background:none;font:600 15px/1.3 var(--mul);color:var(--t);cursor:pointer}
.nv-nb17 .nb17 .section_sort .select-items div:before{content:'';flex:none;box-sizing:border-box;width:18px;height:18px;border:1.5px solid var(--steel2);border-radius:50%;background:#fff;transition:border-color .15s}
.nv-nb17 .nb17 .section_sort .select-items div:after{content:none}
.nv-nb17 .nb17 .section_sort .select-items div:hover{background:var(--soft)}
.nv-nb17 .nb17 .section_sort .select-items div:hover:before{border-color:var(--p)}
.nv-nb17 .nb17 .section_sort .select-items div.same-as-selected{background:none;color:var(--t)}
.nv-nb17 .nb17 .section_sort .select-items div.same-as-selected:before,.nv-nb17 .nb17 .section_sort .select-items div.nvdd-on:before{border-color:var(--p);box-shadow:inset 0 0 0 4px var(--p)}
.nv-nb17 .nb17 .section_sort .select-items{min-width:290px;padding:8px}
.nv-nb17 .nb17 .section_sort .select-items div{white-space:nowrap}
/* панель лежит в закрепленной .k-bar (z-index 40) — пока окно фильтра открыто, она выше плашки cookie (999), иначе та закрывала «Сбросить» */
.nb17 .k-bar:has(.smart-filter-parameters-box.active),.nb17 .k-bar:has(.filter-metro:not(.hides)){z-index:100008}
/* телефон: окна фильтра — выше плашки cookie; «Район / шоссе» — низ с кнопками прижат к низу экрана, кнопки во всю ширину */
@media (max-width:720px){
  .nv-nb17 .nb17 .k-panel.k-panel .filter-metro .filter_btn{display:none}   /* своя «Показать N» окна у боя (телефон) — ее заменяет низ «Сбросить · Показать N» */
  .nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .slider_container{z-index:100010;width:auto;box-shadow:0 -8px 24px rgba(18,24,48,.16)}
  .nv-nb17 .nb17 .k-panel.k-panel .filter-metro{z-index:100008;padding-bottom:84px}
  .nv-nb17 .nb17 .k-panel.k-panel .filter-metro:not(.hides) .nvdd-foot{position:fixed;left:0;right:0;bottom:0;z-index:100010;margin:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top:1px solid var(--nline);background:#fff}
  .nv-nb17 .nb17 .k-panel.k-panel .nvdd-foot--flt{gap:8px}
  .nv-nb17 .nb17 .k-panel.k-panel .nvdd-foot--flt .nvdd-reset{flex:1;height:46px;background:var(--steel);color:var(--t)}
  .nv-nb17 .nb17 .k-panel.k-panel .nvdd-foot--flt .nvdd-go{flex:1;height:46px}
}
/* списки «Комнат» и «Срок сдачи» (custom-select боя: .select-items > .select-item с флажком внутри) — тот же вариант Б: белый лист под полем,
   квадрат слева, выбранное — фиолетовый с белой галочкой; флажки, имена и скрипт боя без изменений */
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-items{top:calc(100% + 14px);left:0;right:auto;min-width:240px;max-height:min(420px,calc(100vh - 240px));overflow-y:auto;
  margin:0;padding:8px;border:1px solid var(--nline);border-radius:var(--n6);background:#fff;box-shadow:0 12px 32px rgba(18,24,48,.12)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-items .select-item{display:flex;align-items:center;gap:12px;margin:0;padding:10px 12px;border:0;border-radius:var(--n4);
  background:none;font:600 15px/1.3 var(--mul);color:var(--t);cursor:pointer}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-items .select-item:hover{background:var(--soft)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-items .select-item input{flex:none;box-sizing:border-box;width:18px;height:18px;margin:0;border:1.5px solid var(--steel2);border-radius:3px;
  background:#fff;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-items .select-item:hover input{border-color:var(--p)}
.nv-nb17 .nb17 .k-panel.k-panel .smart-filter-form .smart-filter-parameters-box .select-items .select-item input:checked{border-color:var(--p);
  background:var(--p) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/12px no-repeat}

/* ================= выпадающие списки поверх <select> (assets/js/nv-dd17.js), вариант Б (Milena 22.10, макет home_redesign/filtry-dd/) —
   один облик для всех окон фильтров: белый лист, кружок слева (один выбор) / квадрат (несколько), число справа серым, внизу «Сбросить · Показать»;
   на телефоне (до 720 px) — лист снизу с затемнением. Кнопка поля — облик прежнего поля ================= */
.nv-nb17 .nvdd-btn{position:relative;display:block;width:100%;min-width:0;height:20px;margin:0;padding:0 20px 0 0;border:0;border-radius:0;background:none;box-shadow:none;outline:0;
  font:600 15px/20px var(--mul);color:var(--t);text-align:left;cursor:pointer;transition:color .2s}
.nv-nb17 .nvdd-btn .nvdd-val{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.nv-nb17 .nvdd-btn:after{content:'';position:absolute;right:2px;top:50%;width:7px;height:7px;margin-top:-6px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;
  transform:rotate(45deg);opacity:.7;transition:transform .2s var(--ease),margin .2s var(--ease)}
.nv-nb17 .nvdd-btn:hover,.nv-nb17 .nvdd-btn[aria-expanded="true"]{color:var(--p)}
.nv-nb17 .nvdd-btn[aria-expanded="true"]:after{margin-top:-2px;transform:rotate(-135deg)}
.nv-nb17 .nvdd-btn:focus-visible{outline:2px solid var(--p);outline-offset:4px;border-radius:2px}

/* лист */
.nv-nb17 .nvdd-pop{position:fixed;z-index:300;display:none;flex-direction:column;max-width:min(420px,calc(100vw - 32px));max-height:min(460px,calc(100vh - 32px));padding:8px;
  border:1px solid var(--nline);border-radius:var(--n6);background:#fff;box-shadow:0 12px 32px rgba(18,24,48,.12);font:600 15px/1.3 var(--mul);color:var(--t);text-align:left}
.nv-nb17 .nvdd-pop.is-open{display:flex;animation:nvdd-in .16s var(--ease)}
.nv-nb17 .nvdd-pop.is-up{animation-name:nvdd-up}
@keyframes nvdd-in{from{opacity:0;transform:translateY(-4px)}}
@keyframes nvdd-up{from{opacity:0;transform:translateY(4px)}}
.nv-nb17 .nvdd-grab,.nv-nb17 .nvdd-head{display:none}
.nv-nb17 .nvdd-q{flex:none;width:100%;height:40px;margin:0 0 6px;padding:0 12px 0 38px;border:1px solid var(--steel2);border-radius:var(--n4);outline:0;box-shadow:none;
  background:#fff var(--srch) 12px center/16px no-repeat;font:400 15px/1 var(--geo);color:var(--t);-webkit-appearance:none;appearance:none;transition:border-color .2s}
.nv-nb17 .nvdd-q::placeholder{color:var(--t3);opacity:1}
.nv-nb17 .nvdd-q:focus{border-color:var(--p)}
.nv-nb17 .nvdd-q::-webkit-search-cancel-button{-webkit-appearance:none}
.nv-nb17 .nvdd-list{flex:1 1 auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto;overscroll-behavior:contain;outline:0;scrollbar-width:thin;scrollbar-color:var(--steel2) transparent}
.nv-nb17 .nvdd-list::-webkit-scrollbar{width:6px}
.nv-nb17 .nvdd-list::-webkit-scrollbar-thumb{border-radius:3px;background:var(--steel2)}
/* пункт: кружок (один выбор) или квадрат (несколько) слева, название, число справа */
.nv-nb17 .nvdd-opt{display:flex;align-items:center;gap:12px;margin:0;padding:10px 12px;border-radius:var(--n4);cursor:pointer}
.nv-nb17 .nvdd-opt:before{content:'';flex:none;width:18px;height:18px;border:1.5px solid var(--steel2);border-radius:50%;background:#fff;transition:border-color .15s,box-shadow .15s}
.nv-nb17 .nvdd-list.is-multi .nvdd-opt:before{border-radius:3px}
.nv-nb17 .nvdd-opt.is-act{background:var(--soft)}
.nv-nb17 .nvdd-opt:hover:before{border-color:var(--p)}
.nv-nb17 .nvdd-opt[aria-selected="true"]:before{border-color:var(--p);box-shadow:inset 0 0 0 4px var(--p)}
.nv-nb17 .nvdd-list.is-multi .nvdd-opt[aria-selected="true"]:before{box-shadow:none;
  background:var(--p) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/12px no-repeat}
.nv-nb17 .nvdd-t{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.nv-nb17 .nvdd-n{flex:none;font:500 13px/1 var(--geo);font-style:normal;color:var(--t3)}
.nv-nb17 .nvdd-empty{margin:0;padding:10px 12px;font:400 14px/1.4 var(--geo);color:var(--t3)}
/* низ: «Сбросить · Показать» */
.nv-nb17 .nvdd-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;padding:10px 4px 2px;border-top:1px solid var(--nline)}
.nv-nb17 .nvdd-reset{height:40px;padding:0 4px;border:0;border-radius:var(--n4);background:none;font:600 14px/1 var(--mul);color:var(--t3);cursor:pointer;transition:color .2s}
.nv-nb17 .nvdd-reset:hover{color:var(--t)}
.nv-nb17 .nvdd-go{height:40px;padding:0 20px;border:0;border-radius:var(--n4);background:var(--p);font:700 14.5px/1 var(--mul);color:#fff;cursor:pointer;transition:background-color .2s}
.nv-nb17 .nvdd-go:hover{background:var(--p2)}
.nv-nb17 .nvdd-reset:focus-visible,.nv-nb17 .nvdd-go:focus-visible{outline:2px solid var(--p);outline-offset:2px}
/* телефон: лист снизу с затемнением, заголовок поля и крестик, кнопки во всю ширину */
/* выше плашки cookie и чатов сайта — иначе они закрывали «Сбросить · Показать» */
.nv-nb17 .nvdd-pop.is-sheet{z-index:100010}
.nv-nb17 .nvdd-dim{position:fixed;inset:0;z-index:100005;background:rgba(18,24,48,.36);opacity:0;pointer-events:none;transition:opacity .2s}
.nv-nb17 .nvdd-dim.is-open{opacity:1;pointer-events:auto}
html.nvdd-lock{overflow:hidden}
.nv-nb17 .nvdd-pop.is-sheet{left:0;right:0;top:auto;bottom:0;max-width:none;max-height:82vh;max-height:82dvh;padding:0 10px calc(12px + env(safe-area-inset-bottom));
  border:0;border-radius:14px 14px 0 0;box-shadow:0 -8px 24px rgba(18,24,48,.16)}
.nv-nb17 .nvdd-pop.is-sheet.is-open{animation:nvdd-sheet .22s var(--ease)}
@keyframes nvdd-sheet{from{opacity:0;transform:translateY(32px)}}
.nv-nb17 .is-sheet .nvdd-grab{display:block;flex:none;width:36px;height:4px;margin:8px auto 4px;border-radius:2px;background:var(--steel2)}
.nv-nb17 .is-sheet .nvdd-head{display:flex;flex:none;align-items:center;gap:12px;padding:4px 4px 10px}
.nv-nb17 .is-sheet .nvdd-head b{font:800 17px/1.2 var(--mul);color:var(--t)}
.nv-nb17 .is-sheet .nvdd-note{margin-left:auto;font:600 14px/1 var(--mul);color:var(--p)}
.nv-nb17 .is-sheet .nvdd-x{position:relative;flex:none;width:32px;height:32px;margin-left:auto;padding:0;border:0;border-radius:50%;background:var(--soft);cursor:pointer}
.nv-nb17 .is-sheet .nvdd-note:not(:empty) + .nvdd-x{margin-left:0}
.nv-nb17 .is-sheet .nvdd-x:before,.nv-nb17 .is-sheet .nvdd-x:after{content:'';position:absolute;left:50%;top:50%;width:14px;height:1.8px;margin:-1px 0 0 -7px;background:var(--t2);transform:rotate(45deg)}
.nv-nb17 .is-sheet .nvdd-x:after{transform:rotate(-45deg)}
.nv-nb17 .is-sheet .nvdd-opt{padding:12px}
.nv-nb17 .is-sheet .nvdd-foot{gap:8px;margin:6px -10px 0;padding:10px 12px 0}
.nv-nb17 .is-sheet .nvdd-reset{flex:1;height:46px;background:var(--steel);color:var(--t)}
.nv-nb17 .is-sheet .nvdd-go{flex:1;height:46px}
