/* BRIK-LANDING-CSS (29.10.2026): общие стили посадочных — вынесены из страницы /flats/1-komnatnye/ (оба блока <style>, без правок),
   чтобы посадочная «Квартиры в Строителе» (/flats/stroitel/) не стала четвёртой копией. Страницы /flats/1-|2-|3-komnatnye/ пока держат
   свои встроенные копии — перевод на этот файл записан в техдолг (brik-prod/tech-debt.md). Подключение: SetAdditionalCSS. */
/* BRIK-LP (04.09.2026): оформление посадочной. Ограничено префиксом .brik-lp —
   классы каталога не задеваются. Цвета сняты с боевого сайта (основной #161A49,
   подложка #F3F7FD), радиусы из шкалы сайта (4 и 8), шрифт наследуется. */
.brik-lp{--lp:#161A49;--lp-soft:#f3f7fd;--lp-line:rgba(22,26,73,.14);--lp-mute:#6b7086}
.brik-lp__crumbs{font-size:14px;line-height:1.4;color:var(--lp-mute);margin:0 0 16px}
.brik-lp__crumbs a{color:var(--lp-mute)}
.brik-lp__crumbs a:hover{color:var(--lp)}

/* Плашки чисел. Grid, а не флекс по содержимому: ряд обязан занимать всю ширину
   контейнера, иначе справа остаётся хвост пустоты (правило владельца 01.09.2026). */
/* BRIK-LP-P1: minmax(0,1fr), иначе nowrap-число раздувает колонку и ряд вылезает за экран */
.brik-lp__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 0;padding:0;list-style:none}
.brik-lp__stat{background:var(--lp-soft);border-radius:8px;padding:14px 16px}
/* BRIK-LP-P1: кегль ужимается на узком экране — «4 508 000 ₽» не рвём, но и за край не пускаем */
.brik-lp__stat b{display:block;font-size:clamp(16px,4.4vw,22px);line-height:1.25;font-weight:700;white-space:nowrap}
.brik-lp__stat span{display:block;margin-top:2px;font-size:13px;line-height:1.3;color:var(--lp-mute)}

/* Кнопки. min-height 48 — палец попадает; nowrap — чтобы «Смотреть 29 квартир»
   не роняло кнопку на вторую строку и она не вырастала вдвое (поймано ранее). */
.brik-lp__cta{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 32px}   /* 29.10: было 20px 0 0 — абзац стоял вплотную к кнопкам; 30.10: раздел — 32, с 1025 — 40; верх 20 → 24 — шкала п. 15 */
.brik-lp__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 22px;border-radius:8px;background:var(--lp);color:#fff;
  font-weight:700;text-decoration:none;white-space:nowrap;transition:opacity .18s ease}
.brik-lp__btn:hover{opacity:.86;color:#fff}
.brik-lp__btn--ghost{background:transparent;color:var(--lp);box-shadow:inset 0 0 0 1px var(--lp-line)}
.brik-lp__btn--ghost:hover{color:var(--lp);box-shadow:inset 0 0 0 1px var(--lp)}
.brik-lp__btn:focus-visible{outline:2px solid var(--lp);outline-offset:2px}

/* Карточки ЖК вместо строк списка: адрес и срок сдачи видны сразу. Линия — одна,
   внутренней тенью: рамка внутри рамки запрещена (design.md). */
.brik-lp__projects{display:grid;grid-template-columns:1fr;gap:12px;margin:0 0 24px;padding:0;list-style:none}
/* BRIK-LP-P1: высота во всю ячейку — иначе соседние карточки стоят разной высоты */
.brik-lp__project{display:block;height:100%;box-sizing:border-box;padding:14px 16px;border-radius:8px;background:#fff;
  box-shadow:inset 0 0 0 1px var(--lp-line);text-decoration:none;color:inherit;
  transition:box-shadow .18s ease}
.brik-lp__project:hover{box-shadow:inset 0 0 0 1px var(--lp)}
.brik-lp__project:focus-visible{outline:2px solid var(--lp);outline-offset:2px}
.brik-lp__project b{display:block;font-size:17px;line-height:1.3}
.brik-lp__project span{display:block;margin-top:4px;font-size:14px;line-height:1.4;color:var(--lp-mute)}

/* Вопросы: подложка вместо сплошного потока — глаз находит нужный за секунду. */
.brik-lp__faq{display:grid;gap:8px;margin:0}
.brik-lp__q{background:var(--lp-soft);border-radius:8px}
/* BRIK-LANDING-FAQ-ACC (30.10.2026): вопрос — <summary> во всю строку, каретка справа (NN/g «Accordion Icons»); высота строки ≈ 50 px — цель
   нажатия ≥ 44 (п. 7). У раскрытого низ заголовка 8 px: вопрос → ответ 8 (замер; 6 давали 7), одна группа (п. 15); верх не меняется — текст вопроса не прыгает. */
.brik-lp__q > summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;font-weight:700;line-height:1.35;cursor:pointer;list-style:none;border-radius:8px}
.brik-lp__q > summary::-webkit-details-marker{display:none}
.brik-lp__q > summary::after{content:"";flex:none;width:8px;height:8px;margin:0 4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.brik-lp__q[open] > summary{padding-bottom:8px}
.brik-lp__q[open] > summary::after{transform:translateY(2px) rotate(-135deg)}
@media (hover:hover){.brik-lp__q > summary:hover{text-decoration:underline;text-underline-offset:3px}}
.brik-lp__q > summary:focus-visible{outline:2px solid var(--lp);outline-offset:2px}
.brik-lp__q > p,.brik-lp__q > .brik-lp__a{margin:0;padding:0 16px 16px;line-height:1.5}
/* BRIK-MORT-2026: ответ про ипотеку — список программ; условия льготных — строкой под названием (BRIK-LANDING-FAQ-ACC 30.10: раскрывашка в раскрывашке снята, GOV.UK Accordion); ширина условий 34em — кегль 14 px даёт ≤ 76 знаков в строке (без неё 89, FINDINGS §1.541) */
.brik-lp__a{line-height:1.5}
.brik-lp__progs{margin:8px 0;padding:0;list-style:none;display:grid;gap:8px}
.brik-lp__progs p{margin:2px 0 0;max-width:34em;font-size:14px;line-height:1.45;color:var(--lp-mute)}

/* Как купить и куда звонить — на самой странице: покупатель, пришедший из поиска,
   не должен искать телефон в шапке, а ассистенту нужен адрес для цитаты. */
.brik-lp__buy{margin:32px 0 0;padding:16px;border-radius:8px;background:var(--lp);color:#fff}
.brik-lp__buy a{color:#fff;text-decoration:underline}
/* BRIK-LP-P3: маркеры возвращаем явно — на сайте list-style сброшен глобально */
.brik-lp__buy ol{margin:8px 0 0 20px;padding:0;line-height:1.5;list-style:decimal outside}
.brik-lp__buy ol li{margin:0 0 4px;list-style:decimal outside}
.brik-lp__buy .brik-lp__contacts{margin-top:12px;font-size:15px;line-height:1.5}
.brik-lp__note{margin:16px 0 0;font-size:13px;line-height:1.4;color:var(--lp-mute)}

@media (min-width:768px){
  .brik-lp__stats{grid-template-columns:repeat(4,minmax(0,1fr))}   /* BRIK-LP-P1 */
  .brik-lp__projects{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* BRIK-LP-P1: на смартфоне кнопки во всю ширину — ряд из трёх рвался на ступеньки,
   а палец по кнопке 187 px попадает хуже, чем по кнопке во всю строку. */
@media (max-width:520px){
  .brik-lp__btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  .brik-lp__btn,.brik-lp__project,.brik-lp__q > summary::after{transition:none}
}

/* Сетка подборки занимала 915 px из доступных 1265 — 350 px пустоты справа.
   Причина: раскладка каталога держит место под колонку фильтра, которой здесь нет.
   Расширяем КОНТЕЙНЕР, а не переводим карточки в grid (см. заметку ниже по файлу:
   такая попытка ломала внутреннюю вёрстку карточки). Замер после правки:
   карточка 368 → 543 px, максимальная высота 395 → 367 px. */
@media (min-width:1025px){
  .brik-landing .flats__body-wrapper{display:block}
  .brik-landing .flats__main-content{width:100%}
}

/* BRIK-LANDING-CARDS (26.08.2026): вёрстка карточек подборки НА ЭТОЙ странице.
   Ограничено классом .brik-landing — каталог использует те же классы карточек,
   и правка без ограничения задела бы его. */

/* Сведение о ЖК в карточке квартиры — шум: покупатель смотрит квартиру, а число
   свободных во всём комплексе ещё и спорит со счётом однокомнатных в тексте выше. */
.brik-landing .flat-item__avail { display: none; }

@media (max-width: 767px) {
  /* Карточка в один столбец: картинка сверху крупно, под ней — сведения.
     До правки планировка была размером с ноготь, а строки наезжали друг на друга. */
  .brik-landing .flat-item__link { display: flex; flex-direction: column; gap: 8px; padding: 14px;
    height: auto !important; min-height: 0 !important; }
  /* Замер на лабе (Chrome 375px/DPR3): обёртка плана — 85px шириной, картинка внутри
     55x150 при натуральных 520x328. Ширину обёртки задаёт каталожное правило той же
     специфичности, поэтому без !important она не расширяется, а max-width:100% зажимает
     план в узкую полоску. Поэтому: ширина обёртки принудительно, высота — от картинки. */
  .brik-landing .flat-item__image { width: 100% !important; max-width: none !important;
    height: auto !important; min-height: 0 !important; display: block; margin: 0 auto;
    text-align: center; }
  .brik-landing .flat-item__image img { width: 100% !important; height: auto !important;
    max-height: 210px; object-fit: contain; display: block; margin: 0 auto; }
  /* цена и платёж — слева, в общем потоке, а не прижатые к правому краю */
  .brik-landing .flat-item__right-part { text-align: left; margin-top: 4px; }
  .brik-landing .flat-item__description { width: 100%; }
  .brik-landing .flat-item__additional-info { display: flex; flex-direction: column;
    align-items: flex-start; gap: 6px; }
  .brik-landing .flat-item__left-part,
  .brik-landing .flat-item__right-part { width: 100%; }
  /* «≈ 51 361 ₽/мес» переносилось как «₽/ мес» — запрещаем разрыв внутри суммы */
  .brik-landing .flat-item__mortgage,
  .brik-landing .flat-item__price { white-space: nowrap; }
  /* «1 дом, 4 этаж, № 15» рвалось перед номером */
  .brik-landing .flat-item__add-description { display: block; line-height: 1.35; }
}

/* BRIK-LANDING-GRID-TILES (13.10.2026, выбор владельца «1. А» — сетка «плитки»).
   Сменяет пометку «ДЕСКТОП НЕ ТРОГАЕМ» (26.08): та запрещала сетку, пока карточка остаётся
   флекс-строкой (в ячейке её текстовая колонка сжималась до ~120px), и разрешала её только
   вместе с внутренней вёрсткой карточки. Здесь это и сделано: карточка — столбец (план на
   плитке сверху, под ним сведения, цена внизу), и только на посадочных (.brik-landing).
   ≥768: колонки от 260px (2 / 3 / 4 / 5 на 768 / 1025 / 1440 / 1920).
   Метки квартиры стоят в начале плитки (шаблон flats-landing, BRIK-LANDING-STICKERS-TILE):
   их у квартир от 0 до 3, и в сведениях они делали карточку выше соседей — сетка выравнивает
   ряд по самой высокой, и у соседей перед ценой копилась пустота до 76px.
   Плитка «резиновая»: плану всегда не меньше 196px поля (планы вертикальные — плитка
   фиксированной высоты ужимала план квартиры с тремя метками до 83×108), метки добавляют
   плитке высоту, а разницу в ряду забирают плитки соседей (их план крупнее) — сведения и
   цена во всём ряду на одной линии. Сведениям высота задаётся явно: бандл при ≥1400 даёт
   им height:100%, и без этого цена уезжает за низ карточки. */
.brik-landing .flat-item__image .flat-item__stickers { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 4px 6px; width: auto; }
.brik-landing .flat-item__image .flat-item__sticker { margin: 0 !important; }
@media (max-width: 767px) {
  .brik-landing .flat-item__image .flat-item__stickers { margin: 0 0 8px; text-align: left; }
}
@media (min-width: 768px) {
  .brik-landing .flats__list[data-view="cards"] { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
  .brik-landing .flats__list[data-view="cards"] > .flats__item { margin: 0 !important; padding: 0 !important; width: auto !important;
    max-width: none !important; flex: none !important; display: flex; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__link { display: flex !important; flex-direction: column !important;
    align-items: stretch !important; width: 100%; padding: 16px 16px 20px !important; }
  /* плитка: метки (если есть) сверху, под ними план — поле не меньше 196px; свободную высоту ряда забирает плитка */
  .brik-landing .flats__list[data-view="cards"] .flat-item__image { width: 100% !important; max-width: none !important; height: auto !important;
    padding: 12px !important; margin: 0 0 16px !important; background: #f3f7fd; display: flex; flex-direction: column; gap: 8px;
    align-items: stretch !important; align-self: stretch !important; flex: 1 0 auto !important; }
  /* план — прямой потомок плитки: значки меток тоже <img>, но лежат глубже */
  .brik-landing .flats__list[data-view="cards"] .flat-item__image > img { flex: 1 0 196px; height: 196px !important; min-height: 196px;
    width: 100% !important; max-width: none !important; max-height: none !important; object-fit: contain; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__description { display: flex !important; flex-direction: column !important;
    flex: 0 0 auto !important; width: 100% !important; height: auto !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__main-info { display: block !important; margin: 0 0 8px !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__list-info { display: none !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__additional-info { display: flex !important; flex-direction: column !important;
    flex: 0 0 auto !important; height: auto !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__left-part { margin: 0 0 16px !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__right-part { margin: 0 !important; align-items: flex-start !important;
    text-align: left !important; }
  /* бандл держит над ценой 28px: при ≥1400 туда absolute-ом ставится метка «Повышение цен». В сетке отступ снят (у карточек без
     метки он — пустота), а метка — в потоке над ценой на всех ширинах. BRIK-LANDING-GRID-INCREASE (13.10.2026, FINDINGS §1.467):
     первая редакция сняла отступ и не вернула метку в поток — она легла поверх цены у 10 карточек при ≥1400. */
  .brik-landing .flats__list[data-view="cards"] .flat-item__price-holder { padding-top: 0 !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__price-holder .flat-item__sticker { position: static !important; margin: 0 0 4px !important; }
  .brik-landing .flats__list[data-view="cards"] .flat-item__full-price { font-size: 1.25rem !important; }
  /* «180 000 за м²»: бандл прячет строку до 1024px, в плитке ей место есть — показываем на всех ширинах сетки.
     Цвет — серый самого бандла для ≥1025 (rgb 178,180,203, замер 13.10): на 768–1024 бандл красит её тёмным, и она спорит с ценой */
  .brik-landing .flats__list[data-view="cards"] .flat-item__add-price { display: block !important; font-size: 0.9375rem; color: #b2b4cb; }
}
/* 768–1024: список идёт от края до края экрана — плиткам нужно боковое поле */
@media (min-width: 768px) and (max-width: 1024.98px) {
  .brik-landing .flats__list[data-view="cards"] { padding: 0 16px !important; }
}
/* BRIK-LANDING-POLISH (13.10.2026, полировка после сетки; основания — docs/UI_PRINCIPLES.md п. 1, 7, 8, WCAG 2.4.7 и 2.5.8).
   «Найдено N» стояло вплотную к сетке; на телефоне — у края экрана: выравниваем по краю содержимого карточки. */
.brik-landing .flats__count { margin: 0 0 16px; }
@media (max-width: 767px) { .brik-landing .flats__count { padding: 0 14px; } }
@media (min-width: 768px) and (max-width: 1024.98px) { .brik-landing .flats__count { padding: 0 16px; } }
/* до 1024 бандл даёт описанию padding-left 5px (с 1025 сам снимает) — текст карточки стоял правее края плана */
@media (max-width: 1024.98px) { .brik-landing .flat-item__description { padding-left: 0 !important; } }
/* фокус с клавиатуры: бандл гасит обводку всем (*{outline:none}) — не видно, где фокус (WCAG 2.4.7). Цвет — тёмно-синий сайта */
.brik-landing .flat-item__link:focus-visible { outline: 3px solid #161a49 !important; outline-offset: -3px; }
.brik-landing .flat-item__fav:focus-visible { outline: 2px solid #161a49 !important; outline-offset: -6px; }
/* сердечко 22×19 — меньше нормы 24×24 (WCAG 2.5.8, UI_PRINCIPLES п. 7): зона нажатия +10px с каждой стороны, значок на прежнем месте */
.brik-landing .flat-item__fav { box-sizing: content-box !important; padding: 10px !important; margin: -10px !important; }
/* подсказка «В избранном у N» с 1025 стоит от верха кнопки (бандл: top -0.9375rem) — кнопка выросла вверх на 10px, возвращаем на место */
@media (min-width: 1025px) { .brik-landing .flat-item__fav-popup { top: calc(-0.9375rem + 10px); } }
@media (max-width: 767px) {
  /* цена — слева, как задумано 26.08 (text-align не двигает флекс-элементы, бандл ставит им flex-end), и из-под сердечка;
     крупнее (было 14px при 16px у площади) — главное на виду, UI_PRINCIPLES п. 1 */
  .brik-landing .flat-item__right-part, .brik-landing .flat-item__price-holder { align-items: flex-start !important; }
  .brik-landing .flat-item__full-price { font-size: 1.125rem !important; }
}

/* BRIK-LANDING-RHYTHM (30.10.2026): ритм вводного блока и ширина строки. Владелец 30.10: «текст слипся… оформи аккуратно согласно
   правилам оформления сайтов»; основания — docs/UI_PRINCIPLES.md п. 15 (GOV.UK Layout и Spacing, WCAG 1.4.8, закон близости).
   Шкала (значения выше в файле приведены к ней той же правкой): 8 — внутри группы (подпись → её карточки, вопрос → ответ);
   16 — между абзацами, под заголовком, крошки → H1; 24 — между группами, H1 → плашки; 32, с 1025 — 40 — между разделами
   (сводка → текст → вопросы → «Как купить» → подборка). Замер до правки: 12–13 px между разными группами, сноска вплотную к подборке.
   Строка текста — не шире 38em ≈ 75 знаков (было 56em = 111 знаков). Панели (вопросы, «Как купить», карточки ЖК) — во всю ширину,
   вровень с плашками (design.md «занимать доступное место»), поэтому вопросы — одной колонкой раскрывашек во всю ширину (BRIK-LANDING-FAQ-ACC), а шаги «Как купить» с 1025 — в ряд
   (иначе правая половина тёмной панели пустая). Две колонки вопросов первой редакции 30.10 сняты: раскрытый ответ растягивал соседа
   до своей высоты, а последний вопрос стоял один. Встроенные style="" со страниц сняты той же правкой
   (BRIK-LANDING-RHYTHM в index.php). */
.flats__header.brik-lp .flats__title{padding:0;line-height:1.2}   /* бандл: 30/22 px, с 1400 — 70/88 под картинку шапки; 1.0 на телефоне склеивал строки H1 */
.flats__header.brik-lp::after{content:none}   /* картинка шапки каталога (бандл, с 1400) лежала под четвёртой плашкой — 31 616 px² (замер) */
.flats__lead.brik-lp{line-height:1.5;margin:24px 0 32px}   /* верх 24 — когда сводки нет (0 квартир), текст не прилипает к H1 */
.flats__lead.brik-lp > p:not([class]){max-width:38em;margin:0 0 16px}   /* только простые абзацы: у подписи и сноски свои отступы */
.brik-lp__label{margin:24px 0 8px;font-weight:700}
.brik-lp__h2{margin:32px 0 16px}
.brik-lp__q > p,.brik-lp__a,.brik-lp__buy ol,.brik-lp__note{max-width:38em}
@media (min-width:1025px){
  .brik-lp__cta,.flats__lead.brik-lp{margin-bottom:40px}
  .brik-lp__h2,.brik-lp__buy{margin-top:40px}
  .brik-lp__buy{padding:20px 24px}
  .brik-lp__buy ol{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);column-gap:40px;max-width:none}   /* шагов сколько есть — столько колонок; 40 — номер шага в зазоре */
  .brik-lp__buy ol li{margin:0}
}

/* BRIK-LANDING-LINKS (30.10.2026): ссылки в тексте и ответах были цвета текста и без подчёркивания — 10 из 10 не видны (замер стенда и боевого).
   NN/g «Guidelines for Visualizing Links», WCAG 2.2 1.4.1 (F73): ссылку в тексте выделять не только цветом. Цвет — бренда, отличие — линией. */
.flats__lead.brik-lp a:not([class]){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@media (hover:hover){.flats__lead.brik-lp a:not([class]):hover{text-decoration-thickness:2px}}
.flats__lead.brik-lp a:not([class]):focus-visible{outline:2px solid var(--lp);outline-offset:2px;border-radius:2px}
.brik-lp__buy a:not([class]):focus-visible{outline-color:#fff}   /* на тёмной панели обводка белая */
