:root{
  --navy:#13374f;
  --navy-2:#0a2237;
  --teal:#17b7bf;
  --teal-soft:#e6f7f8;
  --green:#a3d977;
  --green-dark:#163d10;
  --green-press:#8cc55f;
  --bg:#fafafa;
  --bg-cream:#f5f1ea;
  --bg-mint:#eef7f1;
  --bg-sky:#eef5fb;
  --card:#ffffff;
  --ink:#1a2330;
  --ink-2:#3a4754;
  --muted:#6c7785;
  --line:#e6e8ec;
  --shadow: 0 1px 2px rgba(19,55,79,.04), 0 8px 24px rgba(19,55,79,.06);
  --shadow-lg: 0 8px 24px rgba(19,55,79,.08), 0 24px 48px rgba(19,55,79,.10);
  --r-sm:8px; --r-md:14px; --r-lg:20px; --r-xl:28px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:16px; line-height:1.5; color:var(--ink); background:var(--bg); -webkit-font-smoothing:antialiased}
img{max-width:100%; display:block}
a{color:var(--navy); text-decoration:none}
button{font:inherit; cursor:pointer; border:0; background:none}
.container{max-width:1320px; margin:0 auto; padding:0 32px}

/* TOP BAR + HEADER */
/* ===== TOP BAR — синий фирменный, всегда в цвете (синхронизировано с v11-glavnaya_V2) ===== */
.topbar{
  background:var(--navy);
  color:#fff; font-size:13px; padding:8px 0; position:relative; z-index:51;
}
.topbar .row{display:flex; justify-content:space-between; align-items:center; gap:24px}
.topbar a{color:#fff}
/* единый слот «Войти / ЛК» в topbar */
.topbar .auth-slot{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px; border-radius:6px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  font-weight:500; transition:background .15s, border-color .15s;
}
.topbar .auth-slot:hover{background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.28)}
.topbar .auth-slot svg{flex-shrink:0}

/* соцссылки на видеоплощадки в topbar */
.topbar .tb-socials{display:inline-flex; gap:6px; margin-right:4px}
.topbar .tb-soc{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:6px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
  color:#fff; transition:background .15s, border-color .15s, transform .15s;
}
.topbar .tb-soc svg{width:14px; height:14px}
.topbar .tb-soc:hover{transform:translateY(-1px)}
.topbar .tb-soc.tb-yt:hover{background:#FF0000; border-color:#FF0000}
.topbar .tb-soc.tb-vk:hover{background:#0077FF; border-color:#0077FF}
.topbar .tb-soc.tb-dz:hover{background:#000; border-color:#000}
.topbar .tb-soc.tb-max:hover{background:#3B6BFC; border-color:#3B6BFC}

/* выделенный телефон в topbar — call-icon + bold + sub «бесплатно» */
.topbar .phone-call{
  display:inline-flex; align-items:center; gap:8px;
  color:#fff; line-height:1.15;
}
.topbar .phone-call .ph-ic{
  width:28px; height:28px; border-radius:50%;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.32);
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0; position:relative;
}
.topbar .phone-call .ph-ic svg{width:14px; height:14px; color:#fff}
.topbar .phone-call .ph-ic::before{
  content:''; position:absolute; inset:-3px; border-radius:50%;
  border:2px solid rgba(255,255,255,.55);
  animation:phone-pulse 2.6s ease-out infinite;
  pointer-events:none;
}
@keyframes phone-pulse{
  0%   {transform:scale(.85); opacity:.0}
  20%  {opacity:.85}
  100% {transform:scale(1.65); opacity:0}
}
.topbar .phone-call .ph-txt{display:flex; flex-direction:column}
.topbar .phone-call .ph-num{font-size:14px; font-weight:800; color:#fff; letter-spacing:.01em}
.topbar .phone-call .ph-sub{font-size:10.5px; font-weight:400; color:rgba(255,255,255,.7); letter-spacing:.02em; margin-top:1px}

.topbar .city-pick{display:inline-flex; align-items:center; gap:6px; cursor:pointer}
.topbar .city-pick svg{width:14px;height:14px}
.topbar .right{display:flex; gap:24px; align-items:center}
.topbar .phone{font-weight:700; color:#fff}

/* DESKTOP-only header skin — на mobile/tablet (<=1023px) шапку рисует header.php (navy gradient) */
@media (min-width:1024px){
  .header{background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50}
  .header .row{display:flex; align-items:center; gap:32px; padding-top:14px; padding-bottom:14px}
  .logo{display:flex; align-items:center; gap:10px}
  .logo img{height:30px; width:auto}
  .nav{display:flex; gap:24px; flex:1}
  .nav a{font-weight:500; color:var(--ink-2); font-size:15px}
  .nav a:hover, .nav a.active{color:var(--navy); font-weight:600}
}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 22px; border-radius:12px; font-weight:600; font-size:15px; border:1px solid transparent; transition:.15s; white-space:nowrap; cursor:pointer}
.btn-primary{background:var(--green); color:var(--green-dark); border-color:var(--green)}
.btn-primary:hover{background:var(--green-press); border-color:var(--green-press)}
.btn-ghost{background:#fff; color:var(--navy); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--navy)}
.btn-navy{background:var(--navy); color:#fff}
.btn-navy:hover{background:var(--navy-2)}
.btn-sm{padding:8px 14px; font-size:13px}
.btn-lg{padding:16px 28px; font-size:16px}

/* STICKY FILTER (line 2) */
/* .filter-bar sticky-override removed 2026-05-25 — теперь как на главной, fixed/-200 в header.php inline */
.filter-bar .row{display:grid; grid-template-columns:1fr 0.85fr 0.65fr 1.05fr 1.05fr 0.95fr auto; gap:6px; align-items:stretch}
.filter-cell{
  background:#f4f7fa; border:1px solid var(--line); border-radius:9px;
  padding:6px 11px 7px; font-size:13px; display:flex; flex-direction:column; justify-content:space-between; gap:2px; min-width:0;
  transition:.15s;
}
.filter-cell.active{background:rgba(163,217,119,.22); box-shadow:inset 0 0 0 1px var(--green); border-color:transparent}
.filter-cell.active .lbl{color:#163d10}
.filter-cell .lbl{font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; font-weight:700; line-height:1.2}
.filter-cell .val{font-weight:700; color:var(--ink); font-size:12.5px; display:flex; align-items:center; justify-content:space-between; gap:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.2}
.filter-cell .val svg{width:10px; height:10px; color:var(--muted); flex-shrink:0}
.filter-cell.range{padding:6px 11px 4px; gap:0}
.filter-cell.range .slider{position:relative; height:14px; margin-top:0}
.filter-cell.range .track{position:absolute; left:0; right:0; top:6px; height:3px; background:#dde3ea; border-radius:2px}
.filter-cell.range .track .fill{position:absolute; height:100%; background:var(--green); border-radius:2px}
.filter-cell.range .knob{position:absolute; top:1px; width:11px; height:11px; border-radius:50%; background:#fff; border:2px solid var(--green); box-shadow:0 2px 4px rgba(19,55,79,.18); cursor:grab}
.filter-cell.range .vals{display:flex; justify-content:space-between; font-size:10.5px; color:var(--ink); font-weight:700; line-height:1.1}
.filter-cell.range .vals .sep{color:var(--muted); font-weight:500; margin:0 4px}
.filter-bar .btn-find{
  display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start;
  background:var(--green); color:var(--green-dark);
  border-radius:9px; padding:6px 16px 7px;
  font-weight:800; cursor:pointer; transition:.15s;
  box-shadow:0 4px 12px rgba(163,217,119,.4);
  border:0; font-family:inherit;
}
.filter-bar .btn-find:hover{background:#8cc55f; transform:translateY(-1px)}
.filter-bar .btn-find .l1{font-size:11px; font-weight:700; opacity:.75; line-height:1.1; margin-bottom:1px; letter-spacing:.01em}
.filter-bar .btn-find .l2{font-size:14px; font-weight:800; line-height:1.1; display:flex; align-items:center; gap:5px}
.filter-bar .btn-find .l2 .arrow{transition:transform .15s}
.filter-bar .btn-find:hover .l2 .arrow{transform:translateX(2px)}
.filter-bar .search{
  flex:2; background:var(--bg); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; display:flex; align-items:center; gap:10px;
}
.filter-bar .search svg{width:16px; height:16px; color:var(--muted)}
.filter-bar .search input{background:transparent; border:0; font:inherit; font-size:14px; flex:1; outline:none; color:var(--ink)}
.filter-bar .search input::placeholder{color:var(--muted)}

/* CRUMBS — overlay внутри .hero-city (legacy-блок ниже для крошек вне hero) */
.hero-city{position:relative}
.hero-city .crumbs{
  position:absolute; top:14px; left:0; right:0; z-index:5;
  padding:0; font-size:13px; line-height:1.3;
  color:rgba(255,255,255,.78); pointer-events:none;
}
.hero-city .crumbs .container{pointer-events:none}
.hero-city .crumbs a{color:rgba(255,255,255,.92); text-decoration:none; pointer-events:auto}
.hero-city .crumbs a:hover{color:#fff}
.hero-city .crumbs .sep{margin:0 8px; color:rgba(255,255,255,.45)}
.hero-city .crumbs .here{color:rgba(255,255,255,.68)}
/* Legacy: крошки вне hero-city (compare и пр.) */
.crumbs{padding:18px 0; font-size:13px; color:var(--muted)}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--navy)}
.crumbs .sep{margin:0 8px; color:var(--line)}
.crumbs .here{color:var(--ink)}

/* HERO CITY (фон управляется из city/index_v2.php через --hero-city-bg; см. aprGetCityHeroBg) */
.hero-city{
  background: linear-gradient(110deg, rgba(19,55,79,.92) 0%, rgba(19,55,79,.78) 45%, rgba(10,34,55,.55) 100%), var(--hero-city-bg, url('forma.jpg')) center/cover no-repeat;
  color:#fff; padding:48px 0 36px;
}
.hero-city h1{font-size:54px; font-weight:800; margin:0 0 12px; letter-spacing:-.02em; line-height:1.1}
.hero-city .lead{font-size:18px; opacity:.9; max-width:760px; margin:0 0 28px}
.hero-city .lead b{color:var(--green); font-weight:700}
.hero-city-grid{display:grid; grid-template-columns:1fr 360px; gap:32px; align-items:end}
.hero-stats{display:flex; gap:36px; flex-wrap:wrap}
.hero-stats .s{padding-right:12px}
.hero-stats .s .n{font-size:32px; font-weight:800; color:#fff; letter-spacing:-.01em; line-height:1}
.hero-stats .s .l{font-size:13px; color:rgba(255,255,255,.7); margin-top:4px}

/* MGR PLATE in hero */
.mgr-plate{
  background:rgba(255,255,255,.96); backdrop-filter:blur(12px);
  border-radius:var(--r-lg); padding:18px;
  display:flex; gap:14px; align-items:center;
  box-shadow:0 12px 40px rgba(0,0,0,.2); color:var(--ink);
}
.mgr-plate .av{
  width:64px; height:64px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg, var(--teal-soft), #c8e8eb);
  display:flex; align-items:center; justify-content:center;
  color:var(--navy); font-size:22px; font-weight:700;
}
.mgr-plate .info{flex:1; min-width:0}
.mgr-plate .role{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600}
.mgr-plate .nm{font-size:16px; font-weight:700; color:var(--navy); margin:2px 0}
.mgr-plate .sub{font-size:12px; color:var(--ink-2)}
.mgr-plate .acts{display:flex; gap:6px; margin-top:8px}
.mgr-plate .acts a{
  width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  background:var(--bg); color:var(--navy);
}
.mgr-plate .acts a svg{width:14px; height:14px}
.mgr-plate .acts a.tg{background:#229ED9; color:#fff}
.mgr-plate .acts a.gn{background:var(--green); color:var(--green-dark)}

/* EXPANDED FILTER (legacy, оставлен для совместимости) */
.efilter{background:#fff; border-bottom:1px solid var(--line); padding:24px 0}
.efilter .grid{display:grid; grid-template-columns:1.1fr 1.3fr 1.1fr 1fr 1fr; gap:24px}
.efilter .group .lbl{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; font-weight:600}
.chips{display:flex; gap:6px; flex-wrap:wrap}
.chip{padding:7px 14px; border-radius:999px; font-size:13px; color:var(--ink-2); background:#fff; border:1px solid var(--line); cursor:pointer; font-weight:500; transition:.15s}
.chip:hover{border-color:var(--navy)}
.chip.active{background:var(--navy); color:#fff; border-color:var(--navy); font-weight:600}
.chip.green-active{background:var(--green); color:var(--green-dark); border-color:var(--green); font-weight:600}

/* ===== B-FILTER (light, для страницы города) ===== */
.hfb-section{background:#fff; border-bottom:1px solid var(--line); padding:28px 0}
.hfb-section .container{max-width:1280px}
.hfb-wrap{position:relative}

.hfb-presets{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.hfb-preset{
  background:#f4f7fa; border:1px solid var(--line);
  color:var(--navy); padding:8px 14px; border-radius:999px;
  font-size:13px; font-weight:600; cursor:pointer; transition:.15s;
  display:inline-flex; align-items:center; gap:8px;
  font-family:inherit;
}
.hfb-preset:hover{background:#eaf0f5; border-color:#c9d4dd}
.hfb-preset.active{background:var(--green); color:var(--green-dark); border-color:var(--green); font-weight:700}
.hfb-preset .ic{width:14px; height:14px; opacity:.7; display:inline-flex; flex-shrink:0}
.hfb-preset.active .ic{opacity:1}
.hfb-preset .ic svg{width:100%; height:100%}
.hfb-preset .ct{
  font-size:11px; font-weight:700;
  background:rgba(19,55,79,.08); color:var(--muted);
  padding:2px 7px; border-radius:6px;
}
.hfb-preset.active .ct{background:rgba(22,61,16,.18); color:var(--green-dark)}

.hfb-main{
  background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:8px;
  display:grid;
  grid-template-columns:1fr 0.85fr 0.65fr 1.05fr 1.05fr 0.95fr auto;
  gap:8px; align-items:stretch;
  box-shadow:0 1px 2px rgba(19,55,79,.04), 0 8px 24px rgba(19,55,79,.06);
}
.hfb-cell{
  padding:7px 12px 8px; background:#f4f7fa; border-radius:9px;
  display:flex; flex-direction:column; justify-content:space-between; gap:2px; min-width:0;
  transition:.15s;
}
.hfb-cell.active{background:rgba(163,217,119,.22); box-shadow:inset 0 0 0 1px var(--green)}
.hfb-cell.active .lbl{color:#163d10}
.hfb-cell .lbl{font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-weight:700; line-height:1.2}
.hfb-cell .val{
  font-weight:700; color:var(--ink); font-size:13.5px; line-height:1.2;
  display:flex; align-items:center; justify-content:space-between; gap:6px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.hfb-cell .val svg{width:11px; height:11px; color:var(--muted); flex-shrink:0}

.hfb-cell.range{padding:7px 12px 5px; gap:0}
.hfb-cell.range .slider{position:relative; height:16px; margin-top:0}
.hfb-cell.range .track{position:absolute; left:0; right:0; top:7px; height:3px; background:#dde3ea; border-radius:2px}
.hfb-cell.range .track .fill{position:absolute; height:100%; background:var(--green); border-radius:2px}
.hfb-cell.range .knob{
  position:absolute; top:2px; width:12px; height:12px; border-radius:50%;
  background:#fff; border:2px solid var(--green);
  box-shadow:0 2px 6px rgba(19,55,79,.18); cursor:grab;
}
.hfb-cell.range .vals{display:flex; justify-content:space-between; font-size:11.5px; color:var(--ink); font-weight:700; line-height:1.1}
.hfb-cell.range .vals .sep{color:var(--muted); font-weight:500; margin:0 4px}

.hfb-cta{
  display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start;
  background:var(--green); color:var(--green-dark);
  border-radius:9px; padding:7px 18px 8px;
  font-weight:800; cursor:pointer; transition:.15s;
  box-shadow:0 4px 12px rgba(163,217,119,.4);
  border:0; font-family:inherit; min-width:130px;
}
.hfb-cta:hover{background:#8cc55f; transform:translateY(-1px)}
.hfb-cta .l1{font-size:11px; font-weight:700; opacity:.75; line-height:1.2; margin-bottom:1px; letter-spacing:.01em}
/* счётчик в два ряда: «N ЖК» / «N квартир», стрелка справа по центру — ужимает ширину кнопки */
.hfb-cta .l2{
  font-size:15px; font-weight:800; line-height:1.15;
  display:grid; grid-template-columns:auto auto;
  grid-template-areas:"zhk arrow" "flats arrow";
  column-gap:8px; align-items:center;
}
.hfb-cta .l2 .cta-zhk{grid-area:zhk}
.hfb-cta .l2 .cta-flats{grid-area:flats; font-size:12px; font-weight:700; opacity:.82}
.hfb-cta .l2 .arrow{grid-area:arrow; align-self:center; transition:transform .15s}
.hfb-cta:hover .l2 .arrow{transform:translateX(3px)}

.hfb-actions{margin-top:10px}
.hfb-map-btn{
  width:100%;
  display:flex; align-items:center; gap:10px;
  background:linear-gradient(135deg, #eef4fa 0%, #f4f7fa 100%);
  border:1px solid #d6e3f2;
  color:var(--navy); padding:10px 16px; border-radius:10px;
  font-family:inherit; font-weight:700; font-size:14px;
  cursor:pointer; transition:.15s; text-align:left;
}
.hfb-map-btn:hover{background:#e4edf5; border-color:#bccbdf; transform:translateY(-1px)}
.hfb-map-btn .map-ic{
  width:34px; height:34px; border-radius:8px; flex-shrink:0;
  background:linear-gradient(135deg, var(--teal) 0%, #1a5290 100%);
  display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:0 4px 10px rgba(23,183,191,.3);
}
.hfb-map-btn .map-ic svg{width:17px; height:17px}
.hfb-map-btn .copy{display:flex; flex-direction:column; gap:1px; min-width:0}
.hfb-map-btn .copy .t{font-size:14px; font-weight:800; line-height:1.1}
.hfb-map-btn .copy .s{font-size:11.5px; color:var(--muted); font-weight:500; line-height:1.2}
.hfb-map-btn .arrow{margin-left:auto; opacity:.5; transition:.15s; color:var(--muted)}
.hfb-map-btn .arrow svg{width:14px; height:14px}
.hfb-map-btn:hover .arrow{opacity:1; transform:translateX(3px); color:var(--navy)}

.hfb-foot{
  margin-top:12px; display:flex; gap:16px; flex-wrap:wrap; align-items:center;
  color:var(--muted); font-size:12.5px;
}
.hfb-foot .live{display:inline-flex; align-items:center; gap:6px; color:#1f5826; font-weight:700}
.hfb-foot .live::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(163,217,119,.25); animation:pulse 1.8s infinite}
.hfb-foot .sep{opacity:.4}
.hfb-foot a{color:var(--navy); text-decoration:underline; text-decoration-color:rgba(19,55,79,.3); text-underline-offset:3px; font-weight:600}
.hfb-foot a:hover{text-decoration-color:var(--navy)}
@keyframes pulse{0%,100%{transform:scale(1); opacity:1} 50%{transform:scale(1.3); opacity:.6}}

@media (max-width:1199px){
  .hfb-main{grid-template-columns:repeat(6, 1fr); gap:8px}
  .hfb-cta{grid-column:1 / -1; padding:10px 18px; min-width:auto; flex-direction:row; align-items:center; justify-content:center; gap:8px}
  .hfb-cta .l1{display:inline; margin-bottom:0}
  .hfb-cta .l2{display:inline}
}
@media (max-width:1023px){
  .hfb-main{grid-template-columns:1fr 1fr 1fr; gap:8px}
}
@media (max-width:760px){
  .hfb-section{padding:20px 0}
  .hfb-preset{font-size:12px; padding:7px 12px}
  .hfb-main{grid-template-columns:1fr 1fr; padding:10px; gap:6px}
  .hfb-cell{padding:8px 10px}
  .hfb-cell .val{font-size:12.5px}
  .hfb-cell.range{grid-column:1 / -1}
  .hfb-cta{padding:12px; gap:6px}
  .hfb-cta .l1{font-size:12px}
  .hfb-cta .l2{font-size:14px}
  .hfb-map-btn{padding:10px 12px}
  .hfb-map-btn .copy .t{font-size:13px}
  .hfb-map-btn .copy .s{font-size:10.5px}
}

.dropdown{
  background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:10px 14px; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:8px;
  font-weight:500; cursor:pointer;
}
.dropdown svg{width:14px; height:14px; color:var(--muted)}

/* SHOWCASES */
.showcases{display:flex; flex-direction:column; gap:48px}
.showcase{}
.showcase-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:18px; gap:16px; flex-wrap:wrap}
.showcase-head .left{display:flex; align-items:center; gap:14px}
.sc-tag{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px; border-radius:999px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
}
.sc-tag.cheap{background:var(--bg-mint); color:var(--green-dark)}
.sc-tag.ready{background:#fff3e0; color:#a05a00}
.sc-tag.hot{background:#fde8eb; color:#a01840}
.sc-tag.discount{background:var(--bg-sky); color:#1f4e7a}
/* Подборки по комнатности — каждая со своей палитрой */
.sc-tag.studio{background:#e8f4fd; color:#1a5e8e}
.sc-tag.one-room{background:#eaf7e8; color:#2d6b1f}
.sc-tag.two-room{background:#ede5fb; color:#5a3a99}
/* Эмодзи 0️⃣ 1️⃣ 2️⃣ — keycap, на iOS/Android рендерится цветной плашкой;
   на desktop без шрифта Apple/Segoe Emoji — обычная цифра. Стилизуем под значок. */
.sc-tag.studio::first-letter,
.sc-tag.one-room::first-letter,
.sc-tag.two-room::first-letter{font-size:14px}
.showcase h3{font-size:24px; color:var(--navy); margin:0; letter-spacing:-.005em; font-weight:700}
.showcase .right{font-size:14px}
.showcase .right a{color:var(--navy); font-weight:600; border-bottom:1px dashed var(--navy)}
.showcase .right a:hover{border-bottom-style:solid}

/* ZK Card */
.zk-row{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.zk{background:#fff; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); transition:.2s; cursor:pointer; display:flex; flex-direction:column}
.zk:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.zk-img{aspect-ratio:5/4; position:relative; overflow:hidden; background:#cfd5dc}
.zk-img img{width:100%; height:100%; object-fit:cover; transition:.3s}
.zk:hover .zk-img img{transform:scale(1.05)}
.zk-img .pill{position:absolute; left:12px; top:12px}
.zk-img .heart{
  position:absolute; right:12px; top:12px; width:36px; height:36px;
  background:rgba(255,255,255,.92); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--ink-2);
  cursor:pointer; transition:.15s;
}
.zk-img .heart:hover{color:#e74c3c}
.zk-img .heart svg{width:16px; height:16px}
.zk-img .photoct{
  position:absolute; right:12px; bottom:12px; padding:4px 10px;
  background:rgba(0,0,0,.55); color:#fff; border-radius:6px;
  font-size:11px; font-weight:600; display:inline-flex; gap:4px; align-items:center;
}
.zk-img .photoct svg{width:11px; height:11px}
.pill{background:rgba(255,255,255,.96); color:var(--ink); padding:6px 12px; border-radius:999px; font-size:12px; font-weight:600; display:inline-flex; align-items:center; gap:5px; backdrop-filter:blur(6px)}
.pill.green{background:var(--green); color:var(--green-dark)}
.pill.navy{background:var(--navy); color:#fff}
.pill.amber{background:#f3a14b; color:#5b370a}
.zk-body{padding:16px 18px 18px; flex:1; display:flex; flex-direction:column}
.zk-name{font-size:18px; font-weight:700; color:var(--navy); margin:0 0 4px; letter-spacing:-.005em}
.zk-loc{font-size:13px; color:var(--muted); display:flex; align-items:center; gap:5px}
.zk-loc svg{width:12px; height:12px}
.zk-meta{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-size:13px}
.zk-meta.zk-meta-2x2{row-gap:10px}
.zk-meta .item .l{color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em}
.zk-meta .item .v{font-weight:600; color:var(--ink); margin-top:2px}
.zk-price{margin-top:14px; display:flex; justify-content:space-between; align-items:flex-end}
.zk-price .num{font-size:20px; font-weight:800; color:var(--ink); letter-spacing:-.005em}
.zk-price .num .from{font-size:11px; color:var(--muted); display:block; font-weight:500; letter-spacing:.04em; margin-bottom:-2px}
.zk-price .perm{font-size:12px; color:var(--muted)}
.zk-tags{display:flex; gap:6px; flex-wrap:wrap; margin-top:10px}
/* Двухколонный вариант — выравнивает теги под колонки .zk-meta (Цена | Сдача). */
.zk-tags.zk-tags-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px; align-items:start}
.zk-tags.zk-tags-grid .tag-cell{justify-self:stretch; text-align:center}
.tag-sm{background:var(--bg); padding:4px 10px; border-radius:999px; font-size:11px; color:var(--ink-2); font-weight:500}
.zk-cta{display:flex; gap:6px; padding:0 18px 16px; margin-top:auto}
.zk-cta .btn{flex:1; padding:9px 12px; font-size:13px}

/* MAP + LIST (main catalog) */
.catalog{padding:64px 0}
.catalog .head{margin-bottom:24px; display:flex; justify-content:space-between; align-items:flex-end; gap:18px; flex-wrap:wrap}
.catalog h2{font-size:36px; font-weight:700; color:var(--navy); margin:0; letter-spacing:-.015em; line-height:1.1}
.catalog .sub{color:var(--muted); margin-top:6px; font-size:15px}
.catalog .sort{display:flex; gap:6px; flex-wrap:wrap}
.catalog .sort .chip{padding:9px 14px; font-size:13px}

.catalog-grid{display:grid; grid-template-columns:1fr 720px; gap:24px}
.map-pane{
  position:sticky; top:160px;
  height:calc(100vh - 200px); min-height:600px;
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow);
  background:
    radial-gradient(ellipse at 25% 25%, #cfdde8 0%, transparent 55%),
    radial-gradient(ellipse at 75% 65%, #d3e4d7 0%, transparent 50%),
    linear-gradient(135deg,#e9eef0 0%,#dde7e9 100%);
}
.map-pane svg.roads{position:absolute; inset:0; width:100%; height:100%}
.map-pane .map-pin{
  position:absolute; transform:translate(-50%,-100%);
  background:#fff; color:var(--navy); padding:6px 12px; border-radius:999px;
  font-size:12px; font-weight:700; white-space:nowrap;
  box-shadow:0 6px 16px rgba(19,55,79,.18);
  border:2px solid #fff; cursor:pointer; transition:.15s;
}
.map-pane .map-pin.active{background:var(--navy); color:#fff; border-color:var(--green); transform:translate(-50%,-100%) scale(1.08)}
.map-pane .map-pin::after{content:''; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%); width:0; height:0; border:6px solid transparent; border-top-color:#fff}
.map-pane .map-pin.active::after{border-top-color:var(--navy)}
.map-toolbar{position:absolute; right:14px; top:14px; display:flex; flex-direction:column; gap:6px; z-index:5}
.map-toolbar button{
  width:36px; height:36px; background:#fff; border-radius:8px; box-shadow:var(--shadow);
  display:flex; align-items:center; justify-content:center; color:var(--ink-2); cursor:pointer;
}
.map-toolbar button svg{width:16px; height:16px}
.map-tabs{position:absolute; left:14px; top:14px; display:flex; gap:0; background:#fff; border-radius:10px; padding:4px; box-shadow:var(--shadow); z-index:5}
.map-tabs button{padding:7px 14px; border-radius:7px; font-size:13px; font-weight:600; color:var(--ink-2)}
.map-tabs button.active{background:var(--navy); color:#fff}

.list-pane{display:flex; flex-direction:column; gap:14px}
.zk-list-card{
  background:#fff; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow);
  display:grid; grid-template-columns:240px 1fr; gap:0; transition:.15s; cursor:pointer;
}
.zk-list-card:hover{box-shadow:var(--shadow-lg)}
.zk-list-card.highlighted{outline:2px solid var(--green); outline-offset:-2px}
.zk-list-img{position:relative; overflow:hidden; min-height:180px; background:#cfd5dc}
.zk-list-img img{width:100%; height:100%; object-fit:cover}
.zk-list-img .pill{position:absolute; left:12px; top:12px}
.zk-list-img .heart{position:absolute; right:12px; top:12px; width:32px; height:32px; background:rgba(255,255,255,.92); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--ink-2)}
.zk-list-img .heart svg{width:14px;height:14px}
.zk-list-body{padding:18px 22px; display:flex; flex-direction:column}
.zk-list-body .top{display:flex; justify-content:space-between; align-items:flex-start; gap:12px}
.zk-list-body .name{font-size:20px; font-weight:700; color:var(--navy); margin:0; letter-spacing:-.005em}
.zk-list-body .loc{font-size:13px; color:var(--muted); margin-top:4px; display:flex; align-items:center; gap:5px}
.zk-list-body .loc svg{width:12px;height:12px}
.zk-list-body .price-box{text-align:right; flex-shrink:0}
.zk-list-body .price-box .from{font-size:11px; color:var(--muted); letter-spacing:.04em; text-transform:uppercase}
.zk-list-body .price-box .num{font-size:22px; font-weight:800; color:var(--ink); letter-spacing:-.01em}
.zk-list-body .meta-row{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:14px; font-size:13px}
.zk-list-body .meta-row .item .l{color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em}
.zk-list-body .meta-row .item .v{font-weight:600; color:var(--ink); margin-top:3px}
.zk-list-body .tags{display:flex; gap:6px; flex-wrap:wrap; margin-top:14px}
.zk-list-body .actions{display:flex; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line)}
.zk-list-body .actions .btn{padding:9px 16px; font-size:13px}

/* Pagination */
.paging{display:flex; justify-content:center; align-items:center; gap:8px; margin-top:24px; flex-wrap:wrap}
.paging .pg{width:38px; height:38px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; font-weight:600; color:var(--ink-2); background:#fff; border:1px solid var(--line); cursor:pointer; text-decoration:none; transition:border-color .15s, color .15s, background .15s}
.paging .pg.active{background:var(--navy); color:#fff; border-color:var(--navy)}
.paging .pg:hover:not(.active):not(:disabled){border-color:var(--navy); color:var(--navy)}
.paging .pg:disabled,.paging .pg[aria-disabled="true"]{opacity:.4; cursor:not-allowed}
.paging .pg-ellipsis{color:var(--muted); padding:0 4px; user-select:none}
.paging .pg-meta{color:var(--muted); margin-left:18px; font-size:13px; font-weight:500}
@media (max-width:639px){
  .paging{gap:6px}
  .paging .pg{width:34px; height:34px; font-size:13px}
  .paging .pg-meta{width:100%; text-align:center; margin:8px 0 0; font-size:12px}
}

/* SEO TEXT */
.seo-block{padding:64px 0}
.seo-grid{display:grid; grid-template-columns:1fr 320px; gap:36px}
.seo-text{font-size:15px; color:var(--ink-2); line-height:1.75}
.seo-text > p{margin:0 0 14px}
.seo-text p.lead{font-size:17px; color:var(--ink); font-weight:500; line-height:1.6; margin-bottom:24px}
.seo-text h2{font-size:30px; color:var(--navy); margin:36px 0 14px; font-weight:700; letter-spacing:-.01em; line-height:1.15}
.seo-text h2:first-of-type{margin-top:8px}
.seo-text h3{font-size:20px; color:var(--navy); margin:24px 0 10px; font-weight:700; letter-spacing:-.005em}
.seo-text a{color:var(--navy); text-decoration:underline; text-underline-offset:2px; text-decoration-color:#cfd9e3}
.seo-text a:hover{text-decoration-color:var(--navy)}
.seo-text ul{margin:0 0 14px; padding-left:22px}
.seo-text ul li{margin-bottom:6px}
.seo-toc{
  position:sticky; top:160px; align-self:start;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:22px;
}
.seo-toc h4{font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin:0 0 12px; font-weight:700}
.seo-toc ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px}
.seo-toc a{font-size:14px; color:var(--ink-2); display:flex; align-items:center; gap:8px}
.seo-toc a:hover{color:var(--navy)}
.seo-toc a::before{content:''; width:4px; height:4px; border-radius:50%; background:var(--teal); flex-shrink:0}
.seo-mini-stats{
  margin-top:24px; padding:18px; background:var(--bg-mint); border-radius:var(--r-md);
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.seo-mini-stats .s .n{font-size:22px; font-weight:800; color:var(--green-dark)}
.seo-mini-stats .s .l{font-size:11px; color:var(--ink-2); text-transform:uppercase; letter-spacing:.04em; margin-top:2px}

/* SEO TEXT — collapsible */
.seo-text-wrap{position:relative; grid-column:1}
.seo-text-wrap.is-collapsed{max-height:560px; overflow:hidden}
.seo-text-wrap.is-collapsed::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:180px;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 92%);
  pointer-events:none;
}
.seo-text-toggle{
  grid-column:1; justify-self:center;
  margin:18px 0 0; padding:13px 32px;
  background:var(--navy); color:#fff; border:0; border-radius:999px;
  font-family:inherit; font-size:14px; font-weight:600; letter-spacing:.01em;
  cursor:pointer; transition:background .2s ease, transform .2s ease;
  display:inline-flex; align-items:center; gap:8px;
}
.seo-text-toggle:hover{background:var(--teal); transform:translateY(-1px)}
.seo-text-toggle::after{
  content:''; width:8px; height:8px; margin-left:4px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px); transition:transform .2s ease;
}
.seo-text-toggle[aria-expanded="true"]::after{transform:rotate(-135deg) translateY(2px)}
.seo-text-toggle .seo-text-toggle__less{display:none}
.seo-text-toggle[aria-expanded="true"] .seo-text-toggle__more{display:none}
.seo-text-toggle[aria-expanded="true"] .seo-text-toggle__less{display:inline}

/* FAQ */
.faq{display:flex; flex-direction:column; gap:10px; max-width:920px}
.faq-item{background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:20px 26px; transition:.15s}
.faq-item:hover{border-color:#cad3da}
.faq-item.open{border-color:var(--green); box-shadow:var(--shadow)}
.faq-q{display:flex; justify-content:space-between; align-items:flex-start; cursor:pointer; gap:18px; margin:0}
.faq-q h3{font-size:17px; font-weight:700; color:var(--navy); margin:0; line-height:1.4; letter-spacing:-.005em}
.faq-q .ico{width:28px; height:28px; border-radius:50%; background:var(--bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:20px; color:var(--ink-2); font-weight:300; margin-top:2px}
.faq-item.open .faq-q .ico{background:var(--green); color:var(--green-dark)}
.faq-a{color:var(--ink-2); font-size:14.5px; margin-top:14px; line-height:1.7; padding-right:48px}
.faq-a p{margin:0 0 12px}
.faq-a p:last-child{margin-bottom:0}
.faq-item:not(.open) .faq-a{display:none}

/* NEAR CITIES */
.nearby-cities{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.nearby-city{
  position:relative; aspect-ratio:5/4; border-radius:var(--r-lg); overflow:hidden;
  background:linear-gradient(135deg,#e8eef0,#cfd5dc);
  display:flex; align-items:flex-end; padding:18px; color:#fff;
  cursor:pointer; transition:.2s; box-shadow:var(--shadow);
}
.nearby-city::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, rgba(10,34,55,.85) 100%); z-index:1}
.nearby-city img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.nearby-city > *{position:relative; z-index:2}
.nearby-city:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.nearby-city .nc-info{flex:1}
.nearby-city h3{font-size:20px; margin:0; color:#fff; font-weight:700}
.nearby-city .meta{font-size:13px; opacity:.85; margin-top:4px}
.nearby-city .arrow{
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.95); color:var(--navy);
  display:flex; align-items:center; justify-content:center;
}
.nearby-city .arrow svg{width:16px; height:16px}

/* FINAL CTA */
.final{background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color:#fff; border-radius:var(--r-xl); padding:56px; position:relative; overflow:hidden}
.final::before{content:''; position:absolute; right:-100px; top:-100px; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle, var(--teal) 0%, transparent 70%); opacity:.2}
.final h2{color:#fff; font-size:36px; max-width:740px; line-height:1.1; margin:0 0 12px}
.final .sub{color:#bccad6; font-size:16px; max-width:600px; margin-bottom:28px}
.final-form{display:flex; gap:10px; max-width:520px; position:relative; z-index:1}
.final-form input{flex:1; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:18px 22px; font:inherit; color:#fff; font-size:16px; outline:none}
.final-form input::placeholder{color:#8da4b6}
.final-form .btn{padding:18px 32px}
.final .legal{font-size:12px; color:#8da4b6; margin-top:14px; max-width:500px}

/* FOOTER */
footer{background:var(--navy-2); color:#bccad6; padding:34px 0 22px}
footer .grid{display:grid; grid-template-columns:1.5fr 1.2fr 1fr 1fr 1.1fr; gap:26px; align-items:start}
footer h4{color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.05em; margin:0 0 14px}
footer ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px}
footer li{font-size:14px}
footer a{color:#bccad6; transition:.15s}
footer a:hover{color:#fff}
footer .legal-row{margin-top:22px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); font-size:12px; color:#6c7d8d; display:flex; justify-content:space-between}

/* FLOATING MGR */
.float-mgr{position:fixed; right:24px; bottom:24px; width:300px; z-index:60; background:#fff; border-radius:var(--r-lg); box-shadow:0 16px 40px rgba(19,55,79,.18); padding:18px; display:flex; gap:12px; align-items:center; transition:opacity .25s ease, transform .25s ease}
.float-mgr.dimmed{opacity:0; transform:translateY(20px); pointer-events:none}
.float-mgr .av{width:48px; height:48px; border-radius:50%; background:var(--teal-soft); color:var(--navy); display:flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0}
.float-mgr .nm{font-size:14px; font-weight:700; color:var(--navy)}
.float-mgr .rl{font-size:12px; color:var(--muted)}
.float-mgr .acts{display:flex; gap:6px; margin-top:8px}
.float-mgr .acts a{width:28px; height:28px; border-radius:7px; display:flex; align-items:center; justify-content:center; background:var(--bg); color:var(--navy)}
.float-mgr .acts a svg{width:14px; height:14px}
.ic-mx{width:26px; height:26px; border-radius:6px; display:block; object-fit:contain}
.acts a:has(.ic-mx), .mgr-plate .acts a:has(.ic-mx){background:transparent !important; padding:0; border:0}
.float-mgr .acts a:has(.ic-mx) .ic-mx{width:24px; height:24px}
.float-mgr .acts a.tg{background:#229ED9; color:#fff}
.float-mgr .acts a.gn{background:var(--green); color:var(--green-dark)}

section{padding:56px 0}
section.tone-cream{background:var(--bg-cream)}
section.tone-mint{background:var(--bg-mint)}
section.tone-sky{background:var(--bg-sky)}
section.tone-white{background:#fff}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; gap:24px; flex-wrap:wrap}
.section-eyebrow{display:inline-block; font-size:13px; font-weight:700; color:var(--teal); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px}
h2{font-size:36px; font-weight:700; color:var(--navy); margin:0; letter-spacing:-.015em; line-height:1.1}
.section-head .sub{color:var(--muted); margin-top:6px; font-size:15px; max-width:640px}

.ic-sm{width:14px; height:14px; flex-shrink:0}

@media (min-width:761px) and (max-width:1023px){
  .container{padding:0 24px}
  .nav{display:none}
  .header .btn{display:none}
  .header .row{gap:14px}
  .filter-bar{padding:10px 0}
  .filter-bar .row{gap:8px; flex-wrap:wrap}
  .filter-bar .filter-cell{flex:1 1 calc(33% - 8px); min-width:0}
  .filter-bar .search{flex:1 1 100%; order:5}
  .filter-bar .btn{flex:1 1 100%; order:6}
  .hero-city{padding:36px 0 28px}
  .hero-city h1{font-size:42px}
  .hero-city-grid{grid-template-columns:1fr; gap:24px}
  .hero-stats{gap:24px}
  .hero-stats .s .n{font-size:26px}
  .efilter .grid{grid-template-columns:1fr 1fr; gap:18px}
  .zk-row{grid-template-columns:1fr 1fr; gap:14px}
  .catalog-grid{grid-template-columns:1fr; gap:24px}
  .map-pane{position:relative; height:380px; min-height:0; order:-1}
  .seo-grid{grid-template-columns:1fr; gap:24px}
  .seo-toc{position:static; order:-1}
  .seo-text-wrap.is-collapsed{max-height:480px}
  .nearby-cities{grid-template-columns:1fr 1fr; gap:14px}
  .float-mgr{display:none}
  section{padding:48px 0}
  h2{font-size:30px}
  footer .grid{grid-template-columns:1fr 1fr; gap:24px}
}
@media (max-width:760px){
  .container{padding:0 16px}
  .topbar .right .lbl-hide{display:none}
  .nav, .float-mgr{display:none}  /* .filter-bar — mobile adaptation в header.php */
  .hero-city{padding:24px 0 24px}
  .hero-city h1{font-size:28px}
  .hero-city .lead{font-size:14px; margin-bottom:18px}
  .hero-city-grid{grid-template-columns:1fr; gap:18px}
  .hero-stats{gap:14px}
  .hero-stats .s .n{font-size:20px}
  .hero-stats .s .l{font-size:11px}
  .mgr-plate{padding:14px}
  .mgr-plate .av{width:48px; height:48px; font-size:18px}
  .mgr-plate .nm{font-size:14px}
  .mgr-plate .sub{font-size:11px}
  /* crumbs скрыты на mobile — JSON-LD BreadcrumbList остаётся в <head> */
  .hero-city .crumbs{display:none}
  .crumbs{font-size:12px}
  .header .btn{padding:9px 14px; font-size:13px}
  .header .row{padding:12px 0; gap:10px}
  .efilter{padding:18px 0}
  .efilter .grid{grid-template-columns:1fr; gap:14px}
  .chips{gap:5px}
  .chip{padding:6px 10px; font-size:12px}
  .showcase-head{flex-direction:column; align-items:flex-start; gap:10px}
  .showcase-head .left{flex-direction:column; align-items:flex-start; gap:6px}
  .showcase h3{font-size:18px}
  .map-pane{height:300px}
  .map-pin{font-size:11px; padding:5px 10px}
  .zk-list-card .meta-row{grid-template-columns:1fr 1fr}
  .zk-list-body{padding:14px 16px}
  .zk-list-body .top{flex-direction:column; gap:8px}
  .zk-list-body .price-box{text-align:left}
  .zk-list-body .price-box .num{font-size:22px}
  .seo-text h2{font-size:24px}
  .seo-text h3{font-size:18px}
  .paging .pg{width:34px; height:34px}
  .efilter .grid{grid-template-columns:1fr 1fr; gap:18px}
  .catalog-grid{grid-template-columns:1fr}
  .map-pane{position:relative; height:380px; min-height:0}
  .zk-list-card{grid-template-columns:1fr}
  .zk-list-img{min-height:200px}
  .zk-row{grid-template-columns:1fr 1fr}
  .nearby-cities{grid-template-columns:1fr 1fr}
  section{padding:36px 0}
  h2{font-size:24px}
  .seo-grid{grid-template-columns:1fr}
  .seo-toc{position:static; order:2}
  .seo-text-wrap.is-collapsed{max-height:380px}
  .seo-text-wrap.is-collapsed::after{height:130px}
  .seo-text-toggle{padding:11px 24px; font-size:13px; order:1}
  .final{padding:32px 22px; border-radius:var(--r-md)}
  .final h2{font-size:24px}
  .final-form{flex-direction:column}
  footer .grid{grid-template-columns:1fr 1fr; gap:24px}
}
@media (max-width:1023px){
  body{padding-bottom:72px}
  .m-stickybar{position:fixed; left:0; right:0; bottom:0; z-index:60; background:#fff; border-top:1px solid var(--line); padding:10px 12px; display:grid; grid-template-columns:repeat(3,1fr); gap:6px}
  .m-stickybar a{display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 4px; border-radius:8px; font-size:11px; font-weight:600; color:var(--ink-2)}
  .m-stickybar a.cta{background:var(--green); color:var(--green-dark)}
  .m-stickybar a svg{width:18px; height:18px}
}
@media (min-width:1024px){.m-stickybar{display:none}}

/* Photo inside avatar circles — universal rule for /_team-photos/ images */
.av img, .avatar img, .mgr-av img, .float-mgr .av img, .m-stickybar a img.av-img{
  width:100%; height:100%; object-fit:cover; object-position:center top; border-radius:50%;
}
.av, .avatar, .mgr-av, .float-mgr .av{overflow:hidden}

/* ====================== V11 LEAD MAGNETS — ГОРОД ====================== */

/* Универсальные кнопки */
.lm-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 24px; border-radius:14px; font-weight:700; font-size:14px; border:0; cursor:pointer; transition:.15s; white-space:nowrap}
.lm-btn-primary{background:#a3d977; color:#163d10}
.lm-btn-primary:hover{background:#8cc55f}
.lm-btn-tg{background:#229ED9; color:#fff}
.lm-btn-tg:hover{background:#1d8dc4}
.lm-btn-light{background:#fff; color:var(--navy); border:1px solid var(--line)}
.lm-btn-light:hover{border-color:var(--navy)}
.lm-btn-lg{padding:16px 28px; font-size:15px}
.lm-btn svg{width:16px; height:16px}

/* C3 — Квиз подбора ЖК (главный магнит mid-funnel) */
.lm-quiz-section{padding:64px 0; background:linear-gradient(180deg, #fff 0%, #f4f7ed 100%)}
.lm-quiz-wrap{
  background:#fff; border-radius:28px; padding:44px 52px;
  box-shadow:0 1px 2px rgba(19,55,79,.04), 0 12px 36px rgba(19,55,79,.07);
  display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;
  position:relative; overflow:hidden;
}
.lm-quiz-wrap::before{content:''; position:absolute; right:-80px; top:-80px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, #a3d977 0%, transparent 70%); opacity:.22}
.lm-quiz-wrap > div{position:relative; z-index:1}
.lm-quiz-eyebrow{display:inline-flex; align-items:center; gap:8px; background:#eaf4dd; color:#163d10; padding:6px 14px; border-radius:999px; font-size:13px; font-weight:600; margin-bottom:14px}
.lm-quiz-wrap h2{margin:0 0 12px; color:var(--navy); font-size:30px; line-height:1.1; letter-spacing:-.01em}
.lm-quiz-wrap .lead{color:var(--ink-2); font-size:15px; line-height:1.55; margin-bottom:20px; max-width:480px}
.lm-quiz-features{display:flex; flex-direction:column; gap:8px; margin:0 0 20px; padding:0}
.lm-quiz-features li{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:var(--ink-2); list-style:none}
.lm-quiz-features li::before{content:'✓'; color:#3a8a44; font-weight:800; flex-shrink:0; margin-top:1px}
.lm-quiz-stage{
  background:linear-gradient(135deg, #163d10 0%, #284e1c 100%);
  border-radius:20px; padding:32px 28px; color:#fff;
  min-height:340px; display:flex; flex-direction:column; justify-content:space-between;
  position:relative; z-index:1; box-shadow:0 16px 40px rgba(22,61,16,.25);
}
.lm-quiz-stage .pgrs{display:flex; gap:6px; margin-bottom:22px}
.lm-quiz-stage .pgrs .p{flex:1; height:4px; border-radius:2px; background:rgba(255,255,255,.18); transition:.2s}
.lm-quiz-stage .pgrs .p.on{background:#a3d977}
.lm-quiz-step{display:none}
.lm-quiz-step.active{display:block}
.lm-quiz-step .num{font-size:12px; color:rgba(255,255,255,.6); letter-spacing:.08em; text-transform:uppercase; font-weight:600; margin-bottom:8px}
.lm-quiz-step h3{margin:0 0 18px; font-size:20px; line-height:1.25; font-weight:700}
.lm-q-chips{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.lm-q-chip{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:12px 14px; cursor:pointer; transition:.15s; font-size:13px; color:#fff; font-weight:500; text-align:left}
.lm-q-chip:hover{background:rgba(163,217,119,.18); border-color:#a3d977}
.lm-q-chip.active{background:#a3d977; color:#163d10; border-color:#a3d977; font-weight:700}
.lm-quiz-step .meta{font-size:11px; color:rgba(255,255,255,.55); margin-top:14px}
.lm-quiz-result{display:none}
.lm-quiz-result.active{display:block}
.lm-result-form{background:rgba(255,255,255,.95); color:var(--ink); border-radius:12px; padding:10px; display:flex; gap:8px; align-items:center; margin-top:14px}
.lm-result-form input{flex:1; border:1px solid var(--line); border-radius:8px; padding:9px 12px; font:inherit; font-size:13px; color:var(--ink); background:#fff}
.lm-result-form .lm-btn{padding:9px 14px; font-size:12px}

/* C2 — Карта районов (квиз района) */
.lm-districts{
  position:relative; overflow:hidden;
  background:
    radial-gradient(circle at top right, rgba(163,217,119,.10) 0%, transparent 55%),
    linear-gradient(135deg, #ffffff 0%, #fbfdf6 100%);
  border:1px solid rgba(19,55,79,.06);
  border-radius:20px; padding:22px 26px 22px 30px;
  box-shadow:
    0 1px 2px rgba(19,55,79,.04),
    0 14px 36px rgba(19,55,79,.08),
    0 28px 60px -16px rgba(31,88,38,.10);
  margin:20px 0;
  display:grid; grid-template-columns:1fr 0.95fr; gap:24px; align-items:center;
}
.lm-districts::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg, #a3d977 0%, #6fb84a 100%);
}
.lm-districts > *{position:relative; z-index:1}
.lm-districts h3{margin:0 0 6px; color:var(--navy); font-size:20px; line-height:1.2}
.lm-districts .lead{color:var(--ink-2); font-size:13.5px; line-height:1.5; margin-bottom:12px}
.lm-districts .chips-row{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px}
.lm-districts .chips-row span{background:var(--bg); padding:5px 10px; border-radius:999px; font-size:12px; color:var(--ink-2)}
.lm-districts-map{
  background:linear-gradient(135deg, #faf7ef 0%, #f5f1e3 100%);
  border-radius:12px; position:relative; overflow:hidden;
  padding:12px;
  display:flex; flex-direction:column; gap:10px;
}
.lm-districts-map .city-map-svg{ position:relative; width:100%; max-width:520px; margin:0 auto; }
.lm-districts-map svg{ width:100%; height:auto; max-height:300px; display:block; }
.lm-districts-map .map-eb{
  position:absolute; top:16px; left:16px; right:auto;
  background:#fff; color:var(--navy); padding:4px 10px; border-radius:6px;
  font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
  box-shadow:0 1px 2px rgba(19,55,79,.08); z-index:2;
}
.lm-districts-map .city-map-legend-rows{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:6px;
}
.lm-districts-map .city-map-legend-rows li{
  display:flex; align-items:center; gap:10px;
  font-size:13px; color:var(--ink, #2a2a2a);
}
.lm-districts-map .city-map-legend-rows .num{
  width:22px; height:22px; flex:0 0 auto; border-radius:50%;
  background:#163d10; color:#a3d977; font-weight:800; font-size:11px;
  display:inline-flex; align-items:center; justify-content:center;
}
.lm-districts-map .city-map-legend-rows .nm{ font-weight:600; }
.lm-districts-map .map-legend{
  display:flex; justify-content:space-between; align-items:center;
  font-size:11px; color:var(--muted); margin-top:2px;
}
.lm-districts-map .map-legend .top3{
  display:inline-flex; align-items:center; gap:6px; font-weight:700; color:#1f5826;
}
.lm-districts-map .map-legend .top3::before{
  content:''; width:10px; height:10px; border-radius:3px;
  background:linear-gradient(180deg,#a3d977,#7caa57);
}

/* A3 — Сохранить подборку */
.lm-save-search{
  background:linear-gradient(135deg, var(--bg-sky) 0%, #d8e8f5 100%);
  border-radius:14px; padding:18px 22px; margin:20px 0;
  display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center;
}
.lm-save-search .ic{width:48px; height:48px; border-radius:12px; background:#fff; color:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0}
.lm-save-search .ic svg{width:22px; height:22px}
.lm-save-search .copy .ttl{font-size:15px; font-weight:700; color:var(--navy); margin-bottom:2px}
.lm-save-search .copy .sub{font-size:13px; color:var(--ink-2); line-height:1.45}

/* G1 — AI-аналитика района */
.lm-ai-analytics{
  background:linear-gradient(135deg, #fff 0%, #f7faff 100%);
  border:1px solid #d6e3f2; border-radius:24px; padding:40px;
  margin:32px 0;
  display:grid; grid-template-columns:1fr 1.05fr; gap:40px; align-items:center;
  position:relative; overflow:hidden;
}
.lm-ai-analytics::before{
  content:''; position:absolute; right:-60px; bottom:-60px;
  width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, var(--teal) 0%, transparent 70%); opacity:.12;
}
.lm-ai-body{position:relative; z-index:1}
.lm-ai-body .eb{display:inline-flex; align-items:center; gap:6px; background:#163d10; color:#a3d977; padding:5px 12px; border-radius:999px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px}
.lm-ai-body h3{margin:0 0 10px; color:var(--navy); font-size:24px; line-height:1.2}
.lm-ai-body .lead{margin:0 0 18px; color:var(--ink-2); font-size:14px; line-height:1.55}
.lm-ai-cta-row{display:flex; gap:10px; flex-wrap:wrap; align-items:center}

/* G1 — Mockup чата AI-бота в Telegram */
.lm-ai-chat{
  position:relative; padding:14px 0; z-index:1;
}
.lm-ai-chat-frame{
  background:#fff; border-radius:18px;
  box-shadow:
    0 1px 2px rgba(19,55,79,.08),
    0 22px 48px rgba(19,55,79,.16),
    inset 0 0 0 1px rgba(19,55,79,.05);
  overflow:hidden;
  transform:rotate(-1deg);
}
.lm-ai-chat-head{
  background:#0c2030; color:#fff; padding:12px 16px;
  display:flex; align-items:center; gap:10px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.lm-ai-chat-head .av{
  width:34px; height:34px; border-radius:50%;
  background:linear-gradient(135deg, #163d10 0%, #a3d977 100%);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  position:relative;
}
.lm-ai-chat-head .av::before{
  content:''; position:absolute; right:-1px; bottom:-1px;
  width:10px; height:10px; border-radius:50%;
  background:#a3d977; border:2px solid #0c2030;
}
.lm-ai-chat-head .av svg{width:18px; height:18px; color:#fff}
.lm-ai-chat-head .nm{font-size:13px; font-weight:700; line-height:1.1}
.lm-ai-chat-head .st{font-size:10.5px; color:#a3d977; font-weight:600}
.lm-ai-chat-head .ico{margin-left:auto; opacity:.55}
.lm-ai-chat-head .ico svg{width:18px; height:18px; color:#fff}
.lm-ai-chat-body{
  background:
    linear-gradient(180deg, #f0f4f8 0%, #e8eef3 100%);
  padding:18px 14px 14px;
  position:relative;
  min-height:280px;
}
.lm-ai-chat-body::before{
  content:''; position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(163,217,119,.08) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(26,82,144,.05) 0%, transparent 40%);
  pointer-events:none;
}
.lm-ai-msg{
  position:relative; max-width:78%; margin-bottom:10px;
  font-size:12px; line-height:1.4;
  display:flex; flex-direction:column;
}
.lm-ai-msg.user{margin-left:auto}
.lm-ai-msg.bot{margin-right:auto}
.lm-ai-msg .bub{
  padding:8px 12px; border-radius:14px;
  box-shadow:0 1px 1px rgba(19,55,79,.06);
  position:relative;
}
.lm-ai-msg.user .bub{
  background:#a3d977; color:#163d10; border-bottom-right-radius:4px;
}
.lm-ai-msg.bot .bub{
  background:#fff; color:var(--navy); border-bottom-left-radius:4px;
}
.lm-ai-msg .tm{font-size:9.5px; color:var(--muted); margin-top:3px; padding:0 4px}
.lm-ai-msg.user .tm{text-align:right}
.lm-ai-msg.bot .tm{display:flex; gap:5px; align-items:center}
.lm-ai-msg.bot .tm::before{content:'AI'; font-size:8px; background:#163d10; color:#a3d977; padding:1px 5px; border-radius:3px; font-weight:800; letter-spacing:.04em}
.lm-ai-msg.bot.typing .bub{padding:10px 14px; min-width:60px}
.lm-ai-msg.bot.typing .bub .dots{display:inline-flex; gap:4px; align-items:center; height:10px}
.lm-ai-msg.bot.typing .bub .dots i{width:6px; height:6px; border-radius:50%; background:var(--muted); animation:lm-blink 1.4s infinite}
.lm-ai-msg.bot.typing .bub .dots i:nth-child(2){animation-delay:.2s}
.lm-ai-msg.bot.typing .bub .dots i:nth-child(3){animation-delay:.4s}
@keyframes lm-blink{0%,80%,100%{opacity:.25} 40%{opacity:1}}

.lm-ai-stat{
  background:#163d10; color:#fff;
  border-radius:10px; padding:10px 12px;
  margin-top:6px;
}
.lm-ai-stat .h{font-size:9.5px; color:#a3d977; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:6px}
.lm-ai-stat .vl{font-size:20px; font-weight:800; line-height:1; margin-bottom:3px}
.lm-ai-stat .vl small{font-size:11px; color:#a3d977; font-weight:700; margin-left:6px}
.lm-ai-stat .nt{font-size:10px; opacity:.7; line-height:1.3}
.lm-ai-stat .chips{display:flex; gap:5px; margin-top:8px; flex-wrap:wrap}
.lm-ai-stat .chips span{
  background:rgba(163,217,119,.15); color:#a3d977;
  font-size:9.5px; font-weight:700; padding:3px 7px; border-radius:5px;
}

.lm-ai-chat-input{
  background:#fff; padding:8px 14px;
  display:flex; align-items:center; gap:8px;
  border-top:1px solid var(--line);
  font-size:11px; color:var(--muted);
}
.lm-ai-chat-input .field{
  flex:1; padding:7px 10px; background:#f4f7fa; border-radius:18px;
  font-size:11px; color:var(--muted);
}
.lm-ai-chat-input .send{
  width:28px; height:28px; border-radius:50%; background:#229ED9;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  cursor:pointer;
}
.lm-ai-chat-input .send svg{width:14px; height:14px; color:#fff}

/* G3 — TG-канал AI-аналитики */
.lm-tg-channel{
  background:#229ED9;
  border-radius:18px; padding:24px 28px; color:#fff;
  display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center;
  margin:20px 0;
}
.lm-tg-channel .tg-icon{
  width:54px; height:54px; border-radius:14px; background:rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.lm-tg-channel .tg-icon svg{width:28px; height:28px; color:#fff}
.lm-tg-channel .copy h4{margin:0 0 4px; font-size:17px; font-weight:700}
.lm-tg-channel .copy p{margin:0; font-size:13px; color:rgba(255,255,255,.85); line-height:1.45}
.lm-tg-channel .lm-btn{background:#fff; color:#229ED9; font-weight:800}
.lm-tg-channel .lm-btn:hover{background:#f0f9ff}

/* ============================================================ */
/* A8 — Гайд дистанционной сделки. Паттерн от главной .lm-guide-* */
/* Перевёрстано 2026-05-25. Бежевая плашка справа (::before),    */
/* буклет крупный, «вылетает» за её левый край.                  */
/* ============================================================ */
.lm-guide-section{
  padding:80px 32px; background:#fff;
  position:relative; overflow:hidden;
}
.lm-guide-section::before{
  content:''; position:absolute; right:32px; top:48px; bottom:48px;
  width:calc(58% - 32px);
  background:linear-gradient(180deg, #faf6ec 0%, #f3ecd9 100%);
  border-radius:28px;
  box-shadow:
    0 1px 2px rgba(19,55,79,.04),
    0 14px 44px rgba(19,55,79,.08);
  z-index:0;
}
.lm-guide-wrap{
  display:grid; grid-template-columns:1.45fr 1fr; gap:36px; align-items:center;
  position:relative; z-index:1;
  min-height:560px;
}
.lm-guide-photo{
  position:relative;
  margin-left:-10%;
  width:117%;
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.lm-guide-photo:hover{transform:translateY(-6px)}
.lm-guide-photo picture, .lm-guide-photo img{
  width:100%; height:auto; display:block;
}
.lm-guide-photo img{
  filter:
    drop-shadow(0 50px 70px rgba(19,55,79,.20))
    drop-shadow(0 18px 28px rgba(19,55,79,.12));
}
.lm-guide-body{position:relative; z-index:1}
.lm-guide-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  background:#fff; color:var(--navy);
  border:1px solid rgba(19,55,79,.08);
  padding:9px 18px; border-radius:999px;
  font-size:13px; font-weight:700; letter-spacing:.01em;
  margin-bottom:24px;
  box-shadow:0 4px 16px rgba(19,55,79,.05);
}
.lm-guide-eyebrow .star{color:var(--teal,#17b7bf); width:14px; height:14px; flex-shrink:0}
.lm-guide-body h2{
  margin:0 0 18px; color:var(--navy);
  font-size:32px; line-height:1.12; letter-spacing:-.02em; font-weight:800;
}
.lm-guide-body h2 em{font-style:normal; color:var(--teal,#17b7bf)}
.lm-guide-body .lead{
  color:var(--ink-2); font-size:15px; line-height:1.55;
  margin:0 0 26px; max-width:none;
}
.lm-guide-incl{
  display:grid; grid-template-columns:1fr 1fr;
  gap:10px 20px; margin:0 0 28px;
}
.lm-guide-incl span{
  display:flex; align-items:flex-start; gap:9px;
  font-size:13.5px; color:var(--ink); line-height:1.4;
}
.lm-guide-incl span::before{
  content:''; flex-shrink:0; margin-top:5px;
  width:14px; height:14px; border-radius:50%;
  background:#e8f7f8;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%2317b7bf' stroke-width='2.5'><polyline points='3.5 7.5 6 10 10.5 5'/></svg>");
  background-repeat:no-repeat; background-position:center;
}
.lm-guide-cta{display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.lm-guide-cta .meta{
  display:block; flex:1 1 100%; margin-top:14px;
  font-size:13px; color:var(--muted); line-height:1.5;
}
.lm-guide-cta .meta strong{color:var(--ink-2); font-weight:700}
.lm-guide-cta .lm-btn{padding:13px 18px; font-size:13.5px; gap:8px; white-space:nowrap}
.lm-guide-cta .lm-btn svg{width:16px; height:16px}

/* Адаптив A8 — копия паттерна A4 «8 городов» */
@media (max-width:1023px){
  /* A8: буклет «торчит» над бежевой плашкой — ~1/3 буклета над, 2/3 внутри */
  .lm-guide-section{padding:32px 0 48px}
  .lm-guide-section::before{
    top:24vw; bottom:24px; left:8px; right:8px;
    width:auto; border-radius:28px;
    background:linear-gradient(180deg, #f4ead2 0%, #e9dcb7 100%);
    box-shadow:0 2px 6px rgba(19,55,79,.05), 0 18px 50px rgba(19,55,79,.10);
  }
  .lm-guide-wrap{grid-template-columns:1fr; gap:8px; min-height:auto; padding:0 16px}
  .lm-guide-photo{
    margin:0 -24px; width:calc(100% + 48px); max-width:none;
    position:relative; z-index:2;
  }
  .lm-guide-body{padding:0 4px}
  .lm-guide-body h2{font-size:26px}
  .lm-guide-incl{grid-template-columns:1fr}
}
@media (max-width:760px){
  .lm-guide-body h2{font-size:24px}
  .lm-guide-cta .lm-btn{flex:1 1 100%; justify-content:center}
}
/* /A8 ======================================================== */

/* F1 — Прямой TG РОПа */
.lm-rop-tg{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, #13374f 0%, #1a4a6b 60%, #205b80 100%);
  border-radius:20px; padding:26px 28px;
  display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center;
  box-shadow:0 1px 2px rgba(19,55,79,.08), 0 18px 44px rgba(19,55,79,.22);
  color:#fff;
}
.lm-rop-tg::before{
  content:''; position:absolute; right:-120px; top:-120px;
  width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle, rgba(163,217,119,.22) 0%, transparent 65%);
  pointer-events:none;
}
.lm-rop-tg::after{
  content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg, #a3d977 0%, #6fb84a 100%);
}
.lm-rop-tg > *{position:relative; z-index:1}
.lm-rop-tg .av{
  position:relative;
  width:110px; height:110px; border-radius:50%;
  overflow:visible; flex-shrink:0; background:#bcd7df;
  box-shadow:0 0 0 3px #a3d977, 0 0 0 6px rgba(163,217,119,.22), 0 10px 24px rgba(0,0,0,.28);
}
.lm-rop-tg .av img,
.lm-rop-tg .av > span{border-radius:50%}
.lm-rop-tg .av::after{
  content:''; position:absolute; right:4px; bottom:4px;
  width:18px; height:18px; border-radius:50%;
  background:#3dd17a; border:3px solid #13374f;
  box-shadow:0 0 0 2px rgba(61,209,122,.45);
}
.lm-rop-tg .copy .ttl{
  font-size:20px; font-weight:800; color:#fff; line-height:1.2;
  margin-bottom:8px; letter-spacing:-.005em;
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
}
.lm-rop-tg .copy .sub{
  font-size:14px; color:rgba(255,255,255,.82); line-height:1.5;
  max-width:560px;
}
.lm-rop-tg .copy .role{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(163,217,119,.18); color:#cdee9b;
  border:1px solid rgba(163,217,119,.4);
  padding:4px 11px; border-radius:999px;
  font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  margin-right:0;
}
.lm-rop-tg .copy .role::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:#3dd17a; box-shadow:0 0 0 2px rgba(61,209,122,.3);
}
.lm-rop-tg .lm-btn-tg{
  background:#a3d977; color:#0e2a08;
  padding:16px 26px; font-size:14.5px; font-weight:800;
  border-radius:14px;
  box-shadow:0 8px 22px rgba(163,217,119,.35), inset 0 -2px 0 rgba(0,0,0,.08);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.lm-rop-tg .lm-btn-tg:hover{
  background:#b6e88a; transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(163,217,119,.45), inset 0 -2px 0 rgba(0,0,0,.08);
}
.lm-rop-tg .lm-btn-tg svg{width:18px; height:18px}

@media (max-width:1023px){
  .lm-quiz-wrap{grid-template-columns:1fr; padding:32px 28px; gap:28px}
  .lm-quiz-wrap h2{font-size:24px}
  .lm-quiz-stage{min-height:300px; padding:24px 20px}
  .lm-q-chips{grid-template-columns:1fr}
  .lm-districts{grid-template-columns:1fr; padding:28px}
  .lm-ai-analytics{grid-template-columns:1fr; padding:28px}
  .lm-ai-chat{max-width:420px; margin:0 auto; width:100%}
  .lm-ai-cta-row{justify-content:center}
  .lm-tg-channel{grid-template-columns:1fr; text-align:center; gap:14px}
  .lm-guide-distance{grid-template-columns:1fr; padding:28px; gap:24px}
  .lm-guide-distance .incl{grid-template-columns:1fr}
  .lm-save-search{grid-template-columns:1fr; text-align:center; gap:12px}
  .lm-rop-tg{grid-template-columns:1fr; text-align:center; gap:18px; padding:24px 22px}
  .lm-rop-tg .av{margin:0 auto; width:96px; height:96px}
  .lm-rop-tg .copy .ttl{justify-content:center; font-size:18px}
  .lm-rop-tg .copy .sub{max-width:none}
  .lm-rop-tg .lm-btn-tg{width:100%; max-width:320px; margin:0 auto}
}

/* ===== Карточка ЖК в правом списке: прайс по типам квартир ===== */
.zk-list-card .zk-rooms{
  display:flex; flex-direction:column; gap:4px;
  margin:10px 0 12px;
  padding:10px 12px;
  background:#f5f8fa;
  border-radius:10px;
  font:500 12.5px/1.3 Manrope,system-ui,sans-serif;
  color:#1a2b3a;
}
.zk-list-card .zk-rooms__row{
  display:flex; align-items:baseline; gap:6px;
}
.zk-list-card .zk-rooms__l{
  color:#6b7d8c; flex:none;
}
.zk-list-card .zk-rooms__dots{
  flex:1 1 auto;
  border-bottom:1px dotted #c8d4dc;
  transform:translateY(-3px);
  min-width:18px;
}
.zk-list-card .zk-rooms__p{
  flex:none; color:#13374f;
}
.zk-list-card .zk-rooms__p b{
  font-weight:800;
}
.zk-list-card .zk-rooms--empty{
  color:#6b7d8c; font-style:italic; padding:8px 12px;
}

/* ===== Карта каталога: чипы-легенда округов (overlay снизу) ===== */
.map-okrug-legend{
  position:absolute; left:12px; right:12px; bottom:12px; z-index:5;
  display:flex; align-items:center; gap:10px;
  padding:8px 10px;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(140%) blur(6px);
  border:1px solid #e2eaef;
  border-radius:12px;
  box-shadow:0 6px 18px rgba(19,55,79,.10);
  font-family:Manrope,system-ui,sans-serif;
  pointer-events:auto;
}
.map-okrug-legend .mol-label{
  flex:none;
  font-size:11px; font-weight:700;
  color:#6b7d8c; letter-spacing:.06em; text-transform:uppercase;
  padding-right:4px;
}
.map-okrug-legend .mol-chips{
  display:flex; flex-wrap:wrap; gap:6px; flex:1 1 auto; min-width:0;
}
.map-okrug-legend .mol-reset{
  flex:none; border:0; background:transparent;
  color:#6b7d8c; font-size:11px; font-weight:600;
  text-decoration:underline dotted; cursor:pointer; padding:4px 2px;
}
.map-okrug-legend .mol-reset:hover{ color:#13374f; }

.mo-chip{
  --mo-color:#13374f;
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid #e2eaef; background:#fff;
  border-radius:999px;
  padding:5px 10px 5px 8px;
  font:600 12px/1 Manrope,system-ui,sans-serif;
  color:#13374f;
  cursor:pointer;
  transition:background .15s, border-color .15s, box-shadow .15s, transform .15s;
}
.mo-chip:hover{ border-color:var(--mo-color); transform:translateY(-1px); }
.mo-chip .mo-dot{
  width:9px; height:9px; border-radius:50%;
  background:var(--mo-color); flex:none;
  box-shadow:0 0 0 2px #fff inset, 0 0 0 1px var(--mo-color);
  transition:transform .15s;
}
.mo-chip .mo-name{ white-space:nowrap; }
.mo-chip .mo-cnt{
  color:#6b7d8c; font-weight:700; font-size:11px;
  padding:2px 6px; background:#f1f5f8; border-radius:999px;
  transition:background .15s, color .15s;
}
.mo-chip.on{
  background:color-mix(in srgb, var(--mo-color) 10%, #fff);
  border-color:var(--mo-color);
  box-shadow:0 0 0 2px color-mix(in srgb, var(--mo-color) 18%, transparent);
}
.mo-chip.on .mo-dot{ box-shadow:0 0 0 2px #fff inset, 0 0 0 1px var(--mo-color), 0 0 0 4px color-mix(in srgb, var(--mo-color) 22%, transparent); }
.mo-chip.on .mo-cnt{ background:#fff; color:var(--mo-color); }

@media (max-width:1023px){
  .map-okrug-legend{ left:8px; right:8px; bottom:8px; padding:6px 8px; gap:8px; }
  .map-okrug-legend .mol-label{ display:none; }
  .mo-chip{ padding:4px 9px 4px 7px; font-size:11px; }
  .mo-chip .mo-cnt{ font-size:10px; padding:2px 5px; }
}

/* === mobile alignment fixes 2026-05-25 (Сергей) — v2 with higher specificity === */
@media (max-width:760px){
  /* #1: логотип в шапке выровнен с h1 hero (отступ как у .container 16px) */
  .header .row{ padding-left:16px; padding-right:16px }
  /* #2: пресеты hero-filter — grid 2 cols (3 чипа = 2 строки) */
  .hero-city .hfb-presets{ display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:12px }
  .hero-city .hfb-preset{ font-size:11.5px; padding:7px 10px; min-width:0; justify-content:space-between }
  .hero-city .hfb-preset .ct{ font-size:11px; padding:1px 6px }
  /* #3: статы под фильтром — 4 значения в одну строку */
  .hero-city .hero-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px }
  .hero-city .hero-stats .s{ padding-right:0; min-width:0 }
  .hero-city .hero-stats .s .n{ font-size:16px; line-height:1.1 }
  .hero-city .hero-stats .s .l{ font-size:10px; line-height:1.2; margin-top:2px }
  /* #4: сократить воздух перед quiz-magnet секцией */
  .lm-quiz-section{ padding:28px 0 48px }
}

/* ===== WhatsApp помощника/команды города (11.06.2026, wa-btn) ===== */
.mgr-plate .acts a.wa{background:#25D366; color:#fff}
.lm-rop-tg .lm-rop-btns{display:flex; flex-direction:column; gap:10px; align-items:stretch}
.lm-rop-tg .lm-btn-wa{
  background:#25D366; color:#fff;
  padding:16px 26px; font-size:14.5px; font-weight:800;
  border-radius:14px;
  box-shadow:0 8px 22px rgba(37,211,102,.3), inset 0 -2px 0 rgba(0,0,0,.08);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.lm-rop-tg .lm-btn-wa:hover{
  background:#1fc25c; transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(37,211,102,.4), inset 0 -2px 0 rgba(0,0,0,.08);
}
.lm-rop-tg .lm-btn-wa svg{width:18px; height:18px}
@media (max-width:1023px){
  .lm-rop-tg .lm-rop-btns{width:100%; max-width:320px; margin:0 auto}
  .lm-rop-tg .lm-btn-wa{width:100%}
}
