/* ===== AP-R V2 · Страница дома КП — базовый каркас (.vfd-main) ===== */
.vfd-main{
  --vfd-navy:#13374f;--vfd-ink:#13374f;--vfd-teal:#17b7bf;--vfd-lime:#a3d977;
  --vfd-green-dark:#163d10;--vfd-mut:#6b7d8c;--vfd-line:#e6edf2;--vfd-bg:#f6f9fb;
  background:var(--vfd-bg);font-family:Manrope,system-ui,-apple-system,sans-serif;color:var(--vfd-navy);
}
.vfd-main *{box-sizing:border-box}
.vfd-crumbs{padding:14px 0 4px}
.vfd-crumbs .container{font-size:12.5px;color:var(--vfd-mut)}
.vfd-crumbs a{color:var(--vfd-mut);text-decoration:none}
.vfd-crumbs a:hover{color:var(--vfd-teal)}
.vfd-crumbs .sep{opacity:.5;margin:0 2px}
.vfd-crumbs .cur{color:var(--vfd-navy);font-weight:600}
/* вертикальный ритм секций */
.vfd-sec{padding:42px 0}
.vfd-sec:nth-of-type(even){background:#fff}
@media (max-width:760px){.vfd-sec{padding:28px 0}}
/* общий контейнер (как на детальной посёлка) */
.vfd-main .container{width:100%;max-width:1240px;margin:0 auto;padding-left:20px;padding-right:20px}
@media (max-width:760px){.vfd-main .container{padding-left:14px;padding-right:14px}}
/* бейдж reCAPTCHA v3 скрыт (брендинг Google указан текстом у форм — это разрешённый Google режим) */
.grecaptcha-badge{visibility:hidden !important}
/* заголовки секций */
.vfd-h2{font-size:26px;font-weight:800;color:var(--vfd-navy);margin:0 0 18px;line-height:1.2}
@media (max-width:760px){.vfd-h2{font-size:21px}}
/* ============================================================================
 * HERO — первый экран страницы дома КП (V2). Только vfd-hero-* правила.
 * Токены с .vfd-main: --vfd-navy --vfd-teal --vfd-lime --vfd-green-dark
 *                     --vfd-mut --vfd-line --vfd-bg. Шрифт Manrope унаследован.
 * ============================================================================ */

.vfd-hero{ padding-top:16px; }

/* ── сетка: галерея ~58% + карточка ── */
.vfd-hero-grid{
  display:flex; align-items:flex-start; gap:24px;
}
.vfd-hero-gal{ flex:0 1 58%; min-width:0; }
.vfd-hero-card{ flex:1 1 42%; min-width:0; }

/* ── ГАЛЕРЕЯ ── */
.vfd-hero-stage{
  position:relative;
  aspect-ratio:4/3;
  border-radius:18px;
  overflow:hidden;
  background:#eef2f5; /* светлая подложка: фото вписывается целиком (contain), поля не чернят */
  box-shadow:0 1px 2px rgba(19,55,79,.05), 0 10px 26px rgba(19,55,79,.10);
}
.vfd-hero-stage > img{
  width:100%; height:100%;
  object-fit:contain; display:block; /* рендеры домов разных пропорций — НЕ обрезаем */
}

/* плейсхолдер «нет фото» */
.vfd-hero-stage--empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
  background:linear-gradient(135deg,#e9eff4 0%, #dbe5ec 100%);
  color:#8aa0b0;
}
.vfd-hero-stage--empty svg{ width:64px; height:64px; }
.vfd-hero-stage--empty span{ font-size:14px; font-weight:600; }

/* стрелки на фото */
.vfd-hero-arr{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%; border:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.92); color:var(--vfd-navy,#13374f);
  font-size:26px; line-height:1; font-family:inherit; cursor:pointer;
  box-shadow:0 4px 14px rgba(19,55,79,.18);
  opacity:0; transition:opacity .15s ease, background .15s ease;
  z-index:2;
}
.vfd-hero-stage:hover .vfd-hero-arr{ opacity:1; }
.vfd-hero-arr:hover{ background:#fff; }
.vfd-hero-arr--prev{ left:14px; }
.vfd-hero-arr--next{ right:14px; }

/* развернуть на весь экран */
.vfd-hero-expand{
  position:absolute; top:14px; right:14px;
  width:44px; height:44px; border-radius:12px; border:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(12,32,48,.55); color:#fff; cursor:pointer;
  opacity:0; transition:opacity .15s ease, background .15s ease;
  backdrop-filter:blur(4px);
  z-index:2;
}
.vfd-hero-expand svg{ width:18px; height:18px; }
.vfd-hero-stage:hover .vfd-hero-expand{ opacity:1; }
.vfd-hero-expand:hover{ background:rgba(12,32,48,.78); }

/* счётчик фото */
.vfd-hero-count{
  position:absolute; right:14px; bottom:14px;
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; border-radius:999px;
  background:rgba(12,32,48,.72); color:#fff;
  font-size:12.5px; font-weight:600;
  backdrop-filter:blur(4px);
  z-index:2;
}
.vfd-hero-count svg{ width:14px; height:14px; }

/* лента превью под большим фото */
.vfd-hero-thumbs{
  display:flex; gap:8px;
  margin-top:10px;
  overflow-x:auto;
  padding-bottom:4px;
  scrollbar-width:thin;
}
.vfd-hero-thumb{
  flex:0 0 auto;
  width:86px; height:64px;
  padding:0; border:2px solid transparent; border-radius:10px;
  overflow:hidden; background:#dde6ec; cursor:pointer;
  opacity:.85;
  transition:opacity .15s ease, border-color .15s ease;
}
.vfd-hero-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.vfd-hero-thumb:hover{ opacity:1; }
.vfd-hero-thumb.is-active{ opacity:1; border-color:var(--vfd-teal,#17b7bf); }

/* ── КАРТОЧКА ПРЕДЛОЖЕНИЯ ── */
.vfd-hero-card{
  background:#fff;
  border-radius:18px;
  padding:24px;
  box-shadow:0 1px 2px rgba(19,55,79,.05), 0 10px 30px rgba(19,55,79,.08);
  display:flex; flex-direction:column; gap:14px;
}

/* бейджи статуса и класса */
.vfd-hero-badges{ display:flex; flex-wrap:wrap; gap:8px; }
.vfd-hero-badge{
  display:inline-flex; align-items:center;
  padding:6px 12px; border-radius:999px;
  font-size:12px; font-weight:700; letter-spacing:.02em;
}
.vfd-hero-badge--free{ background:var(--vfd-lime,#a3d977); color:var(--vfd-green-dark,#163d10); }
.vfd-hero-badge--reserved{ background:#f0c64a; color:#5c4a08; }
.vfd-hero-badge--sold{ background:#e3e9ee; color:var(--vfd-mut,#6b7d8c); }
.vfd-hero-badge--class{ background:#e3f6f7; color:#0f8d93; }

/* заголовок */
.vfd-hero-title{
  margin:0;
  font-size:27px; font-weight:800; line-height:1.22;
  color:var(--vfd-navy,#13374f);
  letter-spacing:-.01em;
}

/* локация */
.vfd-hero-loc{
  display:flex; align-items:flex-start; gap:7px;
  font-size:13.5px; line-height:1.4;
  color:var(--vfd-mut,#6b7d8c);
}
.vfd-hero-loc svg{
  flex:0 0 auto; width:15px; height:15px; margin-top:2px;
  color:var(--vfd-teal,#17b7bf);
}

/* цена */
.vfd-hero-price{
  padding:14px 16px; border-radius:14px;
  background:var(--vfd-bg,#f6f9fb);
  border:1px solid var(--vfd-line,#e6edf2);
  display:flex; flex-direction:column; gap:4px;
}
.vfd-hero-price-row{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.vfd-hero-price-val{
  font-size:30px; font-weight:800; line-height:1.1;
  color:var(--vfd-navy,#13374f);
  letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
.vfd-hero-price-old{
  font-size:15px; font-weight:600;
  color:var(--vfd-mut,#6b7d8c);
  text-decoration:line-through;
  font-variant-numeric:tabular-nums;
}
.vfd-hero-price-m{
  font-size:13.5px; font-weight:600;
  color:var(--vfd-mut,#6b7d8c);
  font-variant-numeric:tabular-nums;
}
.vfd-hero-price--req .vfd-hero-price-val{ font-size:21px; }

/* чипы-параметры */
.vfd-hero-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.vfd-hero-chip{
  display:inline-flex; align-items:center;
  padding:8px 13px; border-radius:12px;
  background:#f1f6f9; border:1px solid var(--vfd-line,#e6edf2);
  font-size:13.5px; font-weight:700; line-height:1.25;
  color:var(--vfd-navy,#13374f);
  white-space:nowrap;
}

/* блок ипотеки */
.vfd-hero-mort{
  display:flex; gap:11px;
  padding:13px 15px; border-radius:14px;
  background:linear-gradient(180deg,#f3f9ee 0%, #eef6e4 100%);
  border:1px solid #e1efce;
}
.vfd-hero-mort-ic{
  flex:0 0 auto;
  width:36px; height:36px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--vfd-lime,#a3d977); color:var(--vfd-green-dark,#163d10);
}
.vfd-hero-mort-ic svg{ width:18px; height:18px; }
.vfd-hero-mort-tx{ min-width:0; }
.vfd-hero-mort-t{ font-size:15px; font-weight:800; color:var(--vfd-navy,#13374f); font-variant-numeric:tabular-nums; }
.vfd-hero-mort-s{ margin-top:2px; font-size:12.5px; font-weight:600; color:#4d6b46; }
.vfd-hero-mort-d{ margin-top:6px; font-size:11.5px; line-height:1.45; color:var(--vfd-mut,#6b7d8c); }

/* CTA */
.vfd-hero-cta{ display:flex; flex-direction:column; gap:10px; margin-top:2px; }
.vfd-hero-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:12px 20px; border-radius:12px;
  font-family:inherit; font-size:15px; font-weight:700; line-height:1.2;
  border:1px solid transparent; cursor:pointer; text-decoration:none;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.vfd-hero-btn svg{ flex:0 0 auto; width:17px; height:17px; }
.vfd-hero-btn--primary{
  background:var(--vfd-lime,#a3d977);
  color:var(--vfd-green-dark,#163d10);
  border-color:var(--vfd-lime,#a3d977);
}
.vfd-hero-btn--primary:hover{ background:#8cc55f; border-color:#8cc55f; color:var(--vfd-green-dark,#163d10); }
.vfd-hero-btn--ghost{
  background:#fff;
  color:var(--vfd-navy,#13374f);
  border-color:#dfe6ec;
}
.vfd-hero-btn--ghost:hover{ border-color:var(--vfd-navy,#13374f); color:var(--vfd-navy,#13374f); }

/* ── ЛАЙТБОКС ── */
.vfd-hero-lb{
  position:fixed; inset:0; z-index:1000;
  display:none; align-items:center; justify-content:center;
  background:rgba(8,20,30,.93);
}
.vfd-hero-lb.is-open{ display:flex; animation:vfdHeroLbFade .2s ease; }
@keyframes vfdHeroLbFade{ from{ opacity:0; } to{ opacity:1; } }
.vfd-hero-lb-stage{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  padding:64px 90px;
}
.vfd-hero-lb-stage img{
  max-width:100%; max-height:100%;
  object-fit:contain; border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.vfd-hero-lb-x{
  position:absolute; top:14px; right:14px;
  width:44px; height:44px; border-radius:50%; border:0;
  background:rgba(255,255,255,.14); color:#fff;
  font-size:26px; line-height:1; font-family:inherit; cursor:pointer;
  transition:background .15s ease, transform .2s ease;
  z-index:2;
}
.vfd-hero-lb-x:hover{ background:rgba(255,255,255,.26); transform:rotate(90deg); }
.vfd-hero-lb-count{
  position:absolute; top:26px; left:50%; transform:translateX(-50%);
  color:#fff; font-size:14px; font-weight:600;
  font-variant-numeric:tabular-nums;
  z-index:2;
}
.vfd-hero-lb-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%; border:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.14); color:#fff;
  font-size:30px; line-height:1; font-family:inherit; cursor:pointer;
  transition:background .15s ease;
  z-index:2;
}
.vfd-hero-lb-nav:hover{ background:rgba(255,255,255,.26); }
.vfd-hero-lb-prev{ left:18px; }
.vfd-hero-lb-next{ right:18px; }

/* ── АДАПТИВ ── */
@media (max-width:1023px){
  .vfd-hero-grid{ flex-direction:column; gap:16px; }
  .vfd-hero-gal,
  .vfd-hero-card{ flex:1 1 auto; width:100%; }
  .vfd-hero-arr,
  .vfd-hero-expand{ opacity:1; } /* на тач-устройствах hover нет — кнопки видимы всегда */
}
@media (max-width:760px){
  .vfd-hero{ padding-top:10px; }
  .vfd-hero-card{ padding:18px; gap:12px; }
  .vfd-hero-title{ font-size:21px; }
  .vfd-hero-price-val{ font-size:25px; }
  .vfd-hero-price--req .vfd-hero-price-val{ font-size:18px; }
  .vfd-hero-thumb{ width:72px; height:54px; }
  .vfd-hero-chip{ padding:7px 11px; font-size:12.5px; }
  .vfd-hero-arr--prev{ left:10px; }
  .vfd-hero-arr--next{ right:10px; }
  .vfd-hero-expand{ top:10px; right:10px; }
  .vfd-hero-count{ right:10px; bottom:10px; }
  .vfd-hero-lb-stage{ padding:56px 12px; }
  .vfd-hero-lb-nav{ width:44px; height:44px; font-size:26px; }
  .vfd-hero-lb-prev{ left:6px; }
  .vfd-hero-lb-next{ right:6px; }
}
/* === AP-R V2 · дом КП / секция facts («О доме» + коммуникации посёлка) ===
   Scoped в #vfd-facts. Префикс vfd-facts-*. Токены/.container/.vfd-sec/.vfd-h2 — в каркасе vfd_base.css. */

/* ---------- ГРИД ФАКТОВ ДОМА (2-4 колонки адаптивно) ---------- */
#vfd-facts .vfd-facts-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:0 0 28px;
}
#vfd-facts .vfd-facts-cell{
  display:flex;align-items:center;gap:12px;
  background:#fff;
  border:1px solid var(--vfd-line);
  border-radius:14px;
  padding:14px 16px;
  box-shadow:0 1px 2px rgba(19,55,79,.04),0 8px 24px rgba(19,55,79,.08);
}
#vfd-facts .vfd-facts-ic{
  flex:0 0 auto;
  width:40px;height:40px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(23,183,191,.10);
  color:var(--vfd-teal);
}
#vfd-facts .vfd-facts-body{display:flex;flex-direction:column;min-width:0}
#vfd-facts .vfd-facts-lbl{
  font-size:11px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--vfd-mut);
}
#vfd-facts .vfd-facts-val{
  font-size:15px;font-weight:700;color:var(--vfd-navy);
  margin-top:3px;line-height:1.25;
  overflow-wrap:anywhere;
}

/* статус-ячейка: цветная точка вместо иконки */
#vfd-facts .vfd-facts-dot{width:10px;height:10px;border-radius:50%;background:currentColor}
#vfd-facts .vfd-facts-ic--free{background:rgba(47,191,113,.14);color:#2fbf71}
#vfd-facts .vfd-facts-ic--reserved{background:rgba(240,169,58,.16);color:#e89a25}
#vfd-facts .vfd-facts-ic--sold{background:#eef1f4;color:#9aa6b0}

/* ---------- БЛОК «КОММУНИКАЦИИ ПОСЁЛКА» ---------- */
#vfd-facts .vfd-facts-comms{
  background:#fff;
  border:1px solid var(--vfd-line);
  border-radius:18px;
  padding:26px 28px;
  box-shadow:0 1px 2px rgba(19,55,79,.04),0 8px 24px rgba(19,55,79,.08);
}
#vfd-facts .vfd-facts-comms-head{margin-bottom:20px}
#vfd-facts .vfd-facts-sub{
  font-size:19px;font-weight:800;letter-spacing:-.01em;
  color:var(--vfd-navy);margin:0 0 6px;line-height:1.25;
}
#vfd-facts .vfd-facts-lead{
  margin:0;max-width:760px;
  font-size:14.5px;line-height:1.55;color:var(--vfd-mut);
}
#vfd-facts .vfd-facts-lead strong{color:var(--vfd-navy);font-weight:700}

/* сетка плиток коммуникаций */
#vfd-facts .vfd-facts-commgrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
  margin-bottom:20px;
}
#vfd-facts .vfd-facts-comm{
  display:flex;flex-direction:column;gap:8px;
  padding:16px;
  border-radius:14px;
  border:1px solid var(--vfd-line);
  border-left-width:4px;
  background:var(--vfd-bg);
  transition:transform .12s ease,box-shadow .12s ease;
}
#vfd-facts .vfd-facts-comm:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(19,55,79,.10);
}
#vfd-facts .vfd-facts-comm-ic{
  width:38px;height:38px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
}
#vfd-facts .vfd-facts-comm-name{
  font-size:15px;font-weight:700;color:var(--vfd-navy);line-height:1.2;
}
#vfd-facts .vfd-facts-comm-val{
  font-size:13px;color:var(--vfd-navy);font-weight:600;line-height:1.35;
  overflow-wrap:anywhere;
}
#vfd-facts .vfd-facts-comm-tag{
  font-size:11px;font-weight:700;letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:6px;
  margin-top:auto;
}
#vfd-facts .vfd-facts-comm-tag::before{
  content:'';width:8px;height:8px;border-radius:50%;flex:0 0 auto;
}

/* статус: ЦЕНТРАЛЬНОЕ / подведено → teal */
#vfd-facts .vfd-facts-comm--central{
  border-left-color:var(--vfd-teal);
  background:rgba(23,183,191,.06);
}
#vfd-facts .vfd-facts-comm--central .vfd-facts-comm-ic{
  background:rgba(23,183,191,.14);color:var(--vfd-teal);
}
#vfd-facts .vfd-facts-comm--central .vfd-facts-comm-tag{color:#0e8d93}
#vfd-facts .vfd-facts-comm--central .vfd-facts-comm-tag::before{background:var(--vfd-teal)}

/* статус: ЛОКАЛЬНОЕ решение → lime */
#vfd-facts .vfd-facts-comm--local{
  border-left-color:var(--vfd-lime);
  background:rgba(163,217,119,.14);
}
#vfd-facts .vfd-facts-comm--local .vfd-facts-comm-ic{
  background:rgba(163,217,119,.30);color:var(--vfd-green-dark);
}
#vfd-facts .vfd-facts-comm--local .vfd-facts-comm-tag{color:#4f7a26}
#vfd-facts .vfd-facts-comm--local .vfd-facts-comm-tag::before{background:var(--vfd-lime)}

/* статус: нет данных / неопознано → серый «уточняется» */
#vfd-facts .vfd-facts-comm--unknown{
  border-left-color:#cdd6de;
  background:#f3f5f7;
  opacity:.88;
}
#vfd-facts .vfd-facts-comm--unknown .vfd-facts-comm-ic{
  background:#e7ebef;color:#9aa6b0;
}
#vfd-facts .vfd-facts-comm--unknown .vfd-facts-comm-name{color:#5a6b78}
#vfd-facts .vfd-facts-comm--unknown .vfd-facts-comm-val{color:var(--vfd-mut);font-weight:500}
#vfd-facts .vfd-facts-comm--unknown .vfd-facts-comm-tag{color:#9aa6b0}
#vfd-facts .vfd-facts-comm--unknown .vfd-facts-comm-tag::before{background:#bcc6cf}

/* ---------- ЛЕГЕНДА ТИПОВ ---------- */
#vfd-facts .vfd-facts-legend{
  display:flex;flex-wrap:wrap;gap:10px 22px;
  padding-top:16px;
  border-top:1px solid var(--vfd-line);
}
#vfd-facts .vfd-facts-leg{
  display:flex;align-items:flex-start;gap:8px;
  font-size:12.5px;color:var(--vfd-mut);line-height:1.4;
  flex:1 1 240px;min-width:220px;
}
#vfd-facts .vfd-facts-leg-txt strong{color:var(--vfd-navy);font-weight:700}
#vfd-facts .vfd-facts-leg-dot{
  width:12px;height:12px;border-radius:50%;flex:0 0 auto;margin-top:3px;
}
#vfd-facts .vfd-facts-leg-dot--central{background:var(--vfd-teal)}
#vfd-facts .vfd-facts-leg-dot--local{background:var(--vfd-lime)}
#vfd-facts .vfd-facts-leg-dot--unknown{background:#bcc6cf}

/* ---------- АДАПТИВ ---------- */
@media (max-width:1023px){
  #vfd-facts .vfd-facts-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
  #vfd-facts .vfd-facts-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:22px}
  #vfd-facts .vfd-facts-cell{padding:12px;gap:10px}
  #vfd-facts .vfd-facts-ic{width:36px;height:36px}
  #vfd-facts .vfd-facts-comms{padding:18px;border-radius:14px}
  #vfd-facts .vfd-facts-sub{font-size:17px}
  #vfd-facts .vfd-facts-commgrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
  #vfd-facts .vfd-facts-leg{min-width:0;flex-basis:100%}
}
/* ============================================================
   V2 дом КП — секция «Ипотека на этот дом» (#vfd-mortgage)
   Scoped под #vfd-mortgage, классы .vfd-mortgage-*.
   Токены наследуются от .vfd-main (vfd_base.css):
   --vfd-navy --vfd-teal --vfd-lime --vfd-green-dark --vfd-mut --vfd-line --vfd-bg
   .container / .vfd-sec / .vfd-h2 — в базовом каркасе, тут НЕ дублируем.
   ============================================================ */

/* ---- шапка секции ---- */
#vfd-mortgage .vfd-mortgage-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11.5px; font-weight:800;
  color:var(--vfd-teal);
  text-transform:uppercase; letter-spacing:.08em;
  margin-bottom:10px;
}
#vfd-mortgage .vfd-mortgage-eyebrow .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--vfd-lime);
  box-shadow:0 0 0 3px rgba(163,217,119,.25);
}
#vfd-mortgage .vfd-mortgage-sub{
  font-size:14.5px; color:var(--vfd-mut);
  line-height:1.55;
  margin:-8px 0 22px;
  max-width:640px;
}

/* ---- карта калькулятора ---- */
#vfd-mortgage .vfd-mortgage-card{
  background:#fff;
  border:1px solid var(--vfd-line);
  border-radius:18px;
  padding:30px;
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:30px;
  box-shadow:0 8px 28px rgba(19,55,79,.10);
}

#vfd-mortgage .vfd-mortgage-controls{
  display:flex;
  flex-direction:column;
  gap:24px;
  min-width:0;
}

/* фиксированная стоимость дома (слайдера нет — дом конкретный) */
#vfd-mortgage .vfd-mortgage-pricebox{
  display:flex; align-items:flex-start; gap:14px;
  background:var(--vfd-bg);
  border:1px solid var(--vfd-line);
  border-radius:14px;
  padding:16px 18px;
}
#vfd-mortgage .vfd-mortgage-pricebox-ic{
  flex:0 0 auto;
  width:42px; height:42px;
  border-radius:11px;
  background:#e6f7f8;
  color:var(--vfd-teal);
  display:flex; align-items:center; justify-content:center;
}
#vfd-mortgage .vfd-mortgage-pricebox-ic svg{ width:22px; height:22px; }
#vfd-mortgage .vfd-mortgage-pricebox-tx{ flex:1; min-width:0; }
#vfd-mortgage .vfd-mortgage-pricebox-num{
  font-size:24px; font-weight:800;
  color:var(--vfd-navy);
  line-height:1.15;
  margin-top:3px;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
}
#vfd-mortgage .vfd-mortgage-pricebox-note{
  font-size:12px; color:var(--vfd-mut);
  margin-top:4px; line-height:1.4;
}

/* ряды контролов */
#vfd-mortgage .vfd-mortgage-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  margin-bottom:12px;
}
#vfd-mortgage .vfd-mortgage-lbl{
  font-size:12px;
  color:var(--vfd-mut);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:700;
}
#vfd-mortgage .vfd-mortgage-val{
  font-size:15px; font-weight:800;
  color:var(--vfd-navy);
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* нативный range под токены V2 (заливка через --p, красит JS) */
#vfd-mortgage .vfd-mortgage-range{
  -webkit-appearance:none; appearance:none;
  display:block;
  width:100%; height:6px;
  border-radius:4px;
  background:
    linear-gradient(90deg, var(--vfd-teal) 0%, var(--vfd-lime) var(--p,30%), #e1e8ee var(--p,30%), #e1e8ee 100%);
  outline:none;
  cursor:pointer;
  margin:0;
}
#vfd-mortgage .vfd-mortgage-range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:22px; height:22px; border-radius:50%;
  background:#fff;
  border:3px solid var(--vfd-teal);
  box-shadow:0 2px 8px rgba(19,55,79,.22);
  cursor:pointer;
  transition:transform .1s ease, box-shadow .1s ease;
}
#vfd-mortgage .vfd-mortgage-range::-webkit-slider-thumb:hover{ transform:scale(1.12); }
#vfd-mortgage .vfd-mortgage-range:active::-webkit-slider-thumb{ box-shadow:0 0 0 6px rgba(23,183,191,.16); }
#vfd-mortgage .vfd-mortgage-range::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%;
  background:#fff;
  border:3px solid var(--vfd-teal);
  box-shadow:0 2px 8px rgba(19,55,79,.22);
  cursor:pointer;
}
#vfd-mortgage .vfd-mortgage-range::-moz-range-track{ height:6px; border-radius:4px; background:transparent; }
#vfd-mortgage .vfd-mortgage-range:focus-visible{ box-shadow:0 0 0 3px rgba(23,183,191,.25); border-radius:6px; }

#vfd-mortgage .vfd-mortgage-scale{
  display:flex; justify-content:space-between;
  margin-top:7px;
  font-size:11px; color:var(--vfd-mut);
  font-variant-numeric:tabular-nums;
}

/* программы */
#vfd-mortgage .vfd-mortgage-progs{
  display:flex; flex-wrap:wrap; gap:8px;
}
#vfd-mortgage .vfd-mortgage-prog{
  appearance:none;
  border:1px solid var(--vfd-line);
  background:#fff;
  color:#3a4754;
  padding:10px 14px;
  border-radius:999px;
  font-family:inherit;
  font-size:13px; font-weight:700;
  cursor:pointer;
  transition:all .12s ease;
}
#vfd-mortgage .vfd-mortgage-prog:hover{ border-color:#c4cfd8; }
#vfd-mortgage .vfd-mortgage-prog.is-active{
  background:var(--vfd-navy);
  border-color:var(--vfd-navy);
  color:#fff;
  box-shadow:0 2px 8px rgba(19,55,79,.18);
}

/* ---- результат ---- */
#vfd-mortgage .vfd-mortgage-result{
  background:linear-gradient(135deg,#eef7f1 0%, #d8ecdb 100%);
  border-radius:16px;
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
#vfd-mortgage .vfd-mortgage-result-lbl{
  font-size:12px; font-weight:700;
  color:var(--vfd-green-dark);
  text-transform:uppercase; letter-spacing:.05em;
}
#vfd-mortgage .vfd-mortgage-result-num{
  font-size:38px; font-weight:800;
  color:var(--vfd-green-dark);
  line-height:1.05;
  letter-spacing:-.01em;
  margin-top:6px;
  font-variant-numeric:tabular-nums;
}
#vfd-mortgage .vfd-mortgage-result-num .u{
  font-size:16px; font-weight:700;
  color:#3a5a3c;
}
#vfd-mortgage .vfd-mortgage-result-sub{
  font-size:13px; color:#3a5a3c;
  margin-top:8px;
  line-height:1.5;
  font-variant-numeric:tabular-nums;
}
#vfd-mortgage .vfd-mortgage-result-sub span{ font-weight:700; }

#vfd-mortgage .vfd-mortgage-result-cta{ margin-top:auto; }
#vfd-mortgage .vfd-mortgage-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%;
  min-height:48px;
  padding:13px 18px;
  border-radius:12px;
  font-family:inherit; font-weight:800; font-size:14.5px;
  background:var(--vfd-lime);
  color:var(--vfd-green-dark);
  border:1px solid var(--vfd-lime);
  cursor:pointer;
  text-align:center; line-height:1.25;
  transition:all .15s ease;
}
#vfd-mortgage .vfd-mortgage-btn:hover{
  background:#8cc55f; border-color:#8cc55f;
  box-shadow:0 6px 16px rgba(19,55,79,.13);
}

/* обязательный дисклеймер (ПСК) */
#vfd-mortgage .vfd-mortgage-result-note{
  font-size:11.5px; color:#5a6e5c;
  line-height:1.45;
}

/* ---- адаптив ---- */
@media (max-width:1023px){
  #vfd-mortgage .vfd-mortgage-card{ grid-template-columns:1fr; padding:24px; gap:24px; }
  #vfd-mortgage .vfd-mortgage-result-num{ font-size:32px; }
}
@media (max-width:760px){
  #vfd-mortgage .vfd-mortgage-card{ padding:18px; border-radius:16px; }
  #vfd-mortgage .vfd-mortgage-controls{ gap:20px; }
  #vfd-mortgage .vfd-mortgage-pricebox{ padding:14px; }
  #vfd-mortgage .vfd-mortgage-pricebox-num{ font-size:20px; }
  #vfd-mortgage .vfd-mortgage-prog{ min-height:44px; padding:10px 15px; }
  #vfd-mortgage .vfd-mortgage-result{ padding:18px; }
  #vfd-mortgage .vfd-mortgage-result-num{ font-size:29px; }
}

/* подсказка комбо-ипотеки (кредит выше лимита льготной программы) */
.vfd-mortgage-combo-hint{margin-top:10px;font-size:12.5px;line-height:1.5;color:var(--vfd-mut);background:#f0f7f8;border:1px solid #d8ecee;border-radius:10px;padding:9px 12px}
/* =====================================================================
   V2 страница дома КП — секция «Посёлок» (#vfd-village)
   Только свои vfd-village-* правила; .container / .vfd-sec / .vfd-h2 —
   в базовом каркасе vfd_base.css, токены объявлены на .vfd-main.
   ===================================================================== */

#vfd-village .vfd-village-grid{
  display:grid;
  grid-template-columns:minmax(320px,440px) minmax(0,1fr);
  gap:24px;
  align-items:stretch;
}

/* ── Левая карточка посёлка ── */
#vfd-village .vfd-village-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--vfd-line,#e6edf2);
  border-radius:18px;
  box-shadow:0 8px 24px rgba(19,55,79,.08);
  overflow:hidden;
}
#vfd-village .vfd-village-photolink{ display:block; }
#vfd-village .vfd-village-photo{
  display:block;
  width:100%;
  height:200px;
  object-fit:cover;
}
#vfd-village .vfd-village-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  padding:20px;
}
#vfd-village .vfd-village-name{
  font-size:19px;
  font-weight:800;
  line-height:1.25;
  color:var(--vfd-navy,#13374f);
  text-decoration:none;
  transition:color .15s ease;
}
#vfd-village .vfd-village-name:hover{ color:var(--vfd-teal,#17b7bf); }
#vfd-village .vfd-village-geo{
  margin-top:6px;
  font-size:13.5px;
  line-height:1.5;
  color:var(--vfd-mut,#6b7d8c);
}

/* факты-строки */
#vfd-village .vfd-village-facts{
  list-style:none;
  margin:16px 0 18px;
  padding:0;
}
#vfd-village .vfd-village-facts li{
  display:flex;
  align-items:center;
  gap:11px;
  padding:9px 0;
  border-top:1px solid var(--vfd-line,#e6edf2);
  font-size:14px;
}
#vfd-village .vfd-village-facts li:first-child{ border-top:0; }
#vfd-village .vfd-village-fact-ic{
  width:32px; height:32px;
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:9px;
  background:#e6f7f8;
  color:var(--vfd-teal,#17b7bf);
}
#vfd-village .vfd-village-fact-ic svg{ width:17px; height:17px; }
#vfd-village .vfd-village-fact-lbl{ color:var(--vfd-mut,#6b7d8c); }
#vfd-village .vfd-village-fact-val{
  margin-left:auto;
  padding-left:10px;
  font-weight:700;
  color:var(--vfd-navy,#13374f);
  text-align:right;
}

/* CTA-ссылка на посёлок (обычная ссылка, не лид-форма) */
#vfd-village .vfd-village-cta{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  padding:12px 20px;
  border-radius:12px;
  background:var(--vfd-teal,#17b7bf);
  color:#fff;
  font-size:14.5px;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(23,183,191,.28);
  transition:background .15s ease, transform .15s ease;
}
#vfd-village .vfd-village-cta:hover{
  background:#129ba2;
  transform:translateY(-1px);
}
#vfd-village .vfd-village-cta-arr{ transition:transform .15s ease; }
#vfd-village .vfd-village-cta:hover .vfd-village-cta-arr{ transform:translateX(3px); }

/* ── Правая колонка: карта / фолбэки ── */
#vfd-village .vfd-village-mapwrap{
  position:relative;
  min-height:380px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--vfd-line,#e6edf2);
  box-shadow:0 8px 24px rgba(19,55,79,.08);
  background:#e8eef0;
}
#vfd-village .vfd-village-map{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
/* подложка-лоадер, пока ymaps грузится */
#vfd-village .vfd-village-maploader{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:13px;
  color:var(--vfd-mut,#6b7d8c);
  background:#e8eef0;
  pointer-events:none;
}
#vfd-village .vfd-village-mapspin{
  width:30px; height:30px;
  border-radius:50%;
  border:3px solid rgba(19,55,79,.15);
  border-top-color:var(--vfd-teal,#17b7bf);
  animation:vfdVillageSpin .8s linear infinite;
}
@keyframes vfdVillageSpin{ to{ transform:rotate(360deg); } }

/* фолбэк: фото посёлка вместо карты (+ адрес-плашка) */
#vfd-village .vfd-village-fallbackimg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
#vfd-village .vfd-village-fallbackaddr{
  position:absolute;
  left:14px; right:14px; bottom:14px;
  display:flex;
  align-items:center;
  gap:9px;
  width:fit-content;
  max-width:calc(100% - 28px);
  padding:9px 14px;
  border-radius:12px;
  background:rgba(255,255,255,.92);
  box-shadow:0 6px 18px rgba(19,55,79,.13);
  font-size:13px;
  font-weight:600;
  color:var(--vfd-navy,#13374f);
}
#vfd-village .vfd-village-fallbackpin{
  width:20px; height:20px;
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--vfd-teal,#17b7bf);
}
#vfd-village .vfd-village-fallbackpin svg{ width:18px; height:18px; }

/* фолбэк: ни карты, ни фото — серый блок с адресом */
#vfd-village .vfd-village-fallbackempty{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:24px;
  text-align:center;
  font-size:14px;
  line-height:1.5;
  color:var(--vfd-mut,#6b7d8c);
}
#vfd-village .vfd-village-fallbackpin--big{
  width:46px; height:46px;
  border-radius:12px;
  background:#e6f7f8;
}
#vfd-village .vfd-village-fallbackpin--big svg{ width:24px; height:24px; }

/* ── Адаптив ── */
@media (max-width:1023px){
  #vfd-village .vfd-village-grid{ grid-template-columns:1fr; }
  #vfd-village .vfd-village-mapwrap{
    min-height:0;
    height:auto;
    aspect-ratio:16/10;
  }
  /* на узких экранах фолбэк без aspect-ratio не схлопывается */
  @supports not (aspect-ratio:16/10){
    #vfd-village .vfd-village-mapwrap{ min-height:320px; }
  }
}
@media (max-width:760px){
  #vfd-village .vfd-village-photo{ height:170px; }
  #vfd-village .vfd-village-body{ padding:16px; }
  #vfd-village .vfd-village-name{ font-size:17px; }
  #vfd-village .vfd-village-cta{ width:100%; }
  #vfd-village .vfd-village-mapwrap{ aspect-ratio:16/11; }
}
/* ============================================================================
 * V2 villages-flat — секция «Другие дома в посёлке» (key=siblings)
 * Только vfd-siblings-* правила, scoped под #vfd-siblings. Карточки — стиль
 * лотов детальной посёлка (vdp-lot): белые, радиус 16, мягкая тень, бейдж
 * статуса. Токены наследуются с .vfd-main (vfd_base.css), их НЕ переопределяем.
 * ========================================================================== */

/* — грид карточек: 3 / 2 / горизонтальная лента — */
#vfd-siblings .vfd-siblings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

/* — карточка-ссылка лота — */
#vfd-siblings .vfd-siblings-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--vfd-line);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .18s, transform .18s;
}
#vfd-siblings .vfd-siblings-card:hover {
  box-shadow: 0 10px 30px rgba(19, 55, 79, .13);
  transform: translateY(-2px);
}
#vfd-siblings .vfd-siblings-card--sold { opacity: .6; }
#vfd-siblings .vfd-siblings-card--sold:hover { transform: none; box-shadow: none; }

/* — фото (cover 16/10) + фолбэк — */
#vfd-siblings .vfd-siblings-ph {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #e8eef2 center / cover no-repeat;
}
#vfd-siblings .vfd-siblings-ph--empty {
  display: flex;
  align-items: center;
  justify-content: center;
}
#vfd-siblings .vfd-siblings-ph-ic {
  display: inline-flex;
  width: 46px;
  height: 46px;
  color: #b8c7d2;
}
#vfd-siblings .vfd-siblings-ph-ic svg { width: 100%; height: 100%; }

/* — бейдж статуса — */
#vfd-siblings .vfd-siblings-badge {
  position: absolute;
  left: 10px;
  top: 10px;
  font: 700 11px/1 Manrope, system-ui, sans-serif;
  padding: 4px 10px;
  border-radius: 8px;
  color: #fff;
}
#vfd-siblings .vfd-siblings-badge--free     { background: rgba(124, 179, 66, .95); }
#vfd-siblings .vfd-siblings-badge--reserved { background: rgba(232, 161, 58, .96); }
#vfd-siblings .vfd-siblings-badge--sold     { background: rgba(107, 125, 140, .92); }

/* — тело карточки — */
#vfd-siblings .vfd-siblings-body {
  padding: 13px 15px 15px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
#vfd-siblings .vfd-siblings-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--vfd-navy);
  line-height: 1.2;
}
#vfd-siblings .vfd-siblings-sub {
  font-size: 12.5px;
  color: var(--vfd-mut);
  margin-top: 3px;
}
#vfd-siblings .vfd-siblings-foot {
  margin-top: auto;
  padding-top: 11px;
  border-top: 1px solid var(--vfd-line);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
#vfd-siblings .vfd-siblings-price {
  font-size: 16px;
  font-weight: 800;
  color: var(--vfd-navy);
  white-space: nowrap;
}
#vfd-siblings .vfd-siblings-price--req {
  font-size: 14px;
  font-weight: 700;
  color: var(--vfd-teal);
  white-space: normal;
}
#vfd-siblings .vfd-siblings-pm {
  font-size: 12.5px;
  color: var(--vfd-mut);
  white-space: nowrap;
}

/* — кнопка «Все дома посёлка (N)» — */
#vfd-siblings .vfd-siblings-more {
  margin-top: 26px;
  text-align: center;
}
#vfd-siblings .vfd-siblings-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 26px;
  border-radius: 999px;
  background: #fff;
  border: 1.5px solid var(--vfd-navy);
  color: var(--vfd-navy);
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(19, 55, 79, .08);
  transition: background .18s, color .18s, box-shadow .18s;
}
#vfd-siblings .vfd-siblings-all-ic {
  display: inline-flex;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transition: transform .18s;
}
#vfd-siblings .vfd-siblings-all-ic svg { width: 100%; height: 100%; }
#vfd-siblings .vfd-siblings-all:hover {
  background: var(--vfd-navy);
  color: #fff;
  box-shadow: 0 10px 26px rgba(19, 55, 79, .18);
}
#vfd-siblings .vfd-siblings-all:hover .vfd-siblings-all-ic { transform: translateX(3px); }

/* ── адаптив ── */
@media (max-width: 1023px) {
  #vfd-siblings .vfd-siblings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}
@media (max-width: 760px) {
  /* горизонтальная лента ~1.2 карточки в кадре, со снэпом */
  #vfd-siblings .vfd-siblings-grid {
    display: flex;
    gap: 12px;
    margin: 0 -14px;
    padding: 2px 14px 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  #vfd-siblings .vfd-siblings-grid::-webkit-scrollbar { display: none; }
  #vfd-siblings .vfd-siblings-card {
    flex: 0 0 82%;
    max-width: 320px;
    scroll-snap-align: start;
  }
  #vfd-siblings .vfd-siblings-more { margin-top: 18px; }
  #vfd-siblings .vfd-siblings-all { width: 100%; }
}
/* villages-v2 FLAT — секция lead (финальный лид-блок + мобильный sticky-CTA).
   Scoped: #vfd-lead / .vfd-lead-* / #vfd-lead-mobbar.
   Токены объявлены на .vfd-main (vfd_base.css): --vfd-navy --vfd-teal --vfd-lime
   --vfd-green-dark --vfd-mut --vfd-line --vfd-bg. .container и .vfd-sec НЕ дублируем. */

/* ── Карточка-обёртка: navy-градиент, агент слева + белая форма справа ── */
.vfd-lead-card{
  border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg,#13374f,#0f2e43);
  box-shadow:0 16px 40px rgba(19,55,79,.2);
}
.vfd-lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}

/* ── (а) Колонка агента ── */
.vfd-lead-mgr-col{padding:30px 30px 26px;color:#fff}
.vfd-lead-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#7fe3e9;margin-bottom:14px;
}
.vfd-lead-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:#7fe3e9;box-shadow:0 0 0 3px rgba(127,227,233,.22)}

.vfd-lead-mgr{display:flex;align-items:center;gap:14px}
.vfd-lead-mgr-ph{
  position:relative;flex:none;width:64px;height:64px;border-radius:50%;
  overflow:hidden;background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 3px rgba(163,217,121,.35);
}
.vfd-lead-mgr-ph img{width:100%;height:100%;object-fit:cover;display:block}
.vfd-lead-mgr-ini{font-size:20px;font-weight:800;color:#fff;letter-spacing:.02em}
.vfd-lead-mgr-on{
  position:absolute;right:2px;bottom:2px;width:13px;height:13px;border-radius:50%;
  background:var(--vfd-lime);border:2.5px solid #13374f;
}
.vfd-lead-mgr-info{min-width:0}
.vfd-lead-mgr-name{font-size:18px;font-weight:800;line-height:1.15;color:#fff}
.vfd-lead-mgr-role{font-size:13px;color:#7fe3e9;font-weight:600;margin-top:3px}

.vfd-lead-mgr-note{
  margin:16px 0 0;font-size:14px;line-height:1.55;color:rgba(255,255,255,.85);
  border-left:3px solid var(--vfd-lime);padding-left:13px;
}

.vfd-lead-acts{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.vfd-lead-act{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:44px;padding:10px 16px;border-radius:12px;
  font-size:14px;font-weight:700;text-decoration:none;
  transition:filter .15s, transform .1s, background .15s;
}
.vfd-lead-act svg{width:17px;height:17px;flex:none}
.vfd-lead-act:active{transform:translateY(1px)}
.vfd-lead-act--call{background:#fff;color:var(--vfd-navy)}
.vfd-lead-act--call:hover{background:#eef6f7}
.vfd-lead-act--call svg{stroke:var(--vfd-teal)}
.vfd-lead-act--tg{background:#28a8e8;color:#fff}
.vfd-lead-act--tg:hover{filter:brightness(1.06)}
.vfd-lead-act--max{background:linear-gradient(135deg,#4cf,#53e 55%,#93d);color:#fff}
.vfd-lead-act--max:hover{filter:brightness(1.06)}

.vfd-lead-sla{
  display:flex;align-items:center;gap:8px;margin-top:15px;
  font-size:12.5px;color:rgba(255,255,255,.7);
}
.vfd-lead-sla-dot{
  width:8px;height:8px;border-radius:50%;background:var(--vfd-lime);
  box-shadow:0 0 0 0 rgba(163,217,121,.6);animation:vfdLeadPulse 1.6s ease-in-out infinite;
}
@keyframes vfdLeadPulse{
  0%{box-shadow:0 0 0 0 rgba(163,217,121,.55)}
  70%{box-shadow:0 0 0 7px rgba(163,217,121,0)}
  100%{box-shadow:0 0 0 0 rgba(163,217,121,0)}
}

/* ── (б) Колонка формы ── */
.vfd-lead-form-col{
  padding:30px 30px 26px;background:#fff;
  display:flex;flex-direction:column;justify-content:center;
}
.vfd-lead-form-title{margin:0 0 7px;font-size:21px;font-weight:800;color:var(--vfd-navy);line-height:1.2}
.vfd-lead-form-sub{margin:0 0 18px;font-size:14px;line-height:1.5;color:var(--vfd-mut)}
#vfd-lead-form{display:flex;flex-direction:column;gap:13px}
.vfd-lead-field{display:flex;flex-direction:column;gap:6px}
.vfd-lead-lbl{font-size:12px;font-weight:700;color:var(--vfd-navy);letter-spacing:.01em}
.vfd-lead-input{
  width:100%;height:48px;padding:0 15px;border-radius:12px;
  border:1.5px solid var(--vfd-line);background:var(--vfd-bg);
  font:600 16px/1 Manrope,system-ui,sans-serif;color:var(--vfd-navy);
  transition:border-color .15s, box-shadow .15s;
}
.vfd-lead-input::placeholder{color:#9fb1bd;font-weight:500}
.vfd-lead-input:focus{outline:none;border-color:var(--vfd-teal);box-shadow:0 0 0 3px rgba(23,183,191,.16);background:#fff}
.vfd-lead-input.err{border-color:#d23f3f;box-shadow:0 0 0 3px rgba(210,63,63,.12)}

.vfd-lead-submit{
  appearance:none;cursor:pointer;width:100%;height:52px;border:0;border-radius:13px;
  background:var(--vfd-lime);color:var(--vfd-green-dark);
  font:800 16px/1 Manrope,system-ui,sans-serif;letter-spacing:.01em;
  box-shadow:0 8px 20px rgba(163,217,121,.32);
  transition:background .15s, transform .1s, box-shadow .15s;
}
.vfd-lead-submit:hover{background:#92c95a;box-shadow:0 10px 26px rgba(163,217,121,.42)}
.vfd-lead-submit:active{transform:translateY(1px)}
.vfd-lead-submit:disabled{opacity:.7;cursor:default;transform:none}

.vfd-lead-err{font-size:12.5px;line-height:1.4;color:#d23f3f}
.vfd-lead-consent{margin:2px 0 0;font-size:11.5px;line-height:1.45;color:var(--vfd-mut)}
.vfd-lead-consent a{color:var(--vfd-teal);text-decoration:underline}

/* успех (markup внедряется JS после отправки) */
.vfd-lead-ok{text-align:center;padding:22px 8px}
.vfd-lead-ok .ic{font-size:44px;line-height:1;color:var(--vfd-lime)}
.vfd-lead-ok h3{margin:10px 0 6px;color:var(--vfd-navy);font-size:20px;font-weight:800}
.vfd-lead-ok p{margin:0;color:var(--vfd-mut);font-size:14px;line-height:1.5}

/* ── (в) Мобильный sticky-CTA ── */
.vfd-lead-mobbar{
  position:fixed;left:0;right:0;bottom:0;z-index:120; /* как у sticky-панели эталона; ниже модалки (200) и лайтбокса (1000) */
  display:none;grid-template-columns:1fr 1fr;gap:8px;
  padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px));
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-top:1px solid var(--vfd-line);
  box-shadow:0 -6px 22px rgba(19,55,79,.13);
  font-family:Manrope,system-ui,sans-serif;
}
.vfd-lead-mobbar-btn{
  appearance:none;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:50px;border-radius:12px;text-decoration:none;
  font:700 14px/1 Manrope,system-ui,sans-serif;
  transition:transform .1s;
}
.vfd-lead-mobbar-btn svg{width:20px;height:20px;flex:none}
.vfd-lead-mobbar-btn:active{transform:translateY(1px)}
.vfd-lead-mobbar-btn--call{background:var(--vfd-bg);color:var(--vfd-navy);border:1px solid var(--vfd-line)}
.vfd-lead-mobbar-btn--call svg{stroke:var(--vfd-teal)}
.vfd-lead-mobbar-btn--view{background:var(--vfd-lime);color:var(--vfd-green-dark);box-shadow:0 6px 16px rgba(163,217,121,.3)}
.vfd-lead-mobbar-btn--view svg{stroke:var(--vfd-green-dark)}

/* ── Адаптив ── */
@media (max-width:1023px){
  .vfd-lead-grid{grid-template-columns:1fr}
  .vfd-lead-mgr-col{padding:24px 20px 20px}
  .vfd-lead-form-col{padding:24px 20px 22px}
  .vfd-lead-mobbar{display:grid}
  /* отступ под фикс-бар, чтобы не перекрывал подвал (класс вешает JS секции) */
  body.vfd-lead-mob-pad{padding-bottom:76px}
}
@media (max-width:760px){
  .vfd-lead-card{border-radius:14px}
  .vfd-lead-form-title{font-size:19px}
  .vfd-lead-act{flex:1 1 auto}
}

/* доступность: reduce-motion */
@media (prefers-reduced-motion:reduce){
  .vfd-lead-act,.vfd-lead-submit,.vfd-lead-mobbar-btn{transition:none}
  .vfd-lead-sla-dot{animation:none}
}

/* ===== WhatsApp агента (11.06.2026, wa-btn) ===== */
.vfd-lead-act--wa{background:#25d366;color:#fff}
.vfd-lead-act--wa:hover{filter:brightness(1.06)}
