/* Supplements the prototype's styles.css for the server-rendered pages
   (city landings, FAQ, guides, no-JS fallback). Kept separate so the original
   file stays replaceable. */
:root{
  color-scheme:light;
  --ck-ink:#0b2740; --ck-soft:#4d6b80; --ck-faint:#6b8596;
  --ck-line:#dde8ef; --ck-surface:#fff; --ck-bg:#f4f9fc; --ck-accent:#0a7aa8;
}
.nav-link{color:inherit;text-decoration:none;font-weight:600;font-size:.9rem;opacity:.85;padding:0 .35rem}
.nav-link:hover{opacity:1;text-decoration:underline}
.language-switch{display:inline-flex;gap:4px}
.lang-btn{display:inline-block;padding:6px 10px;border-radius:999px;font-size:.75rem;font-weight:700;
  text-decoration:none;border:1px solid rgba(255,255,255,.35);color:inherit}
.lang-btn.is-active{background:var(--ck-accent);color:#fff;border-color:transparent}
/* 24.10.2026: кнопки языков — скруглённые прямоугольники, концентричные
   подложке (у подложки 13px и отступ 4px → у кнопок 9px). Овалы 999px в
   прямоугольной подложке смотрелись чужеродно. */
.language-switch .lang-btn{border-radius:9px}

.page-hero{background:var(--ck-ink);background-size:cover;background-position:center;color:#fff;padding:clamp(56px,9vw,110px) 0 clamp(40px,6vw,72px)}
.page-hero.small{padding:clamp(40px,6vw,72px) 0 clamp(28px,4vw,44px)}
.page-hero h1{font-size:clamp(1.9rem,4vw,3rem);margin:.4rem 0;line-height:1.1}
.page-hero .lede{max-width:60ch;opacity:.92}
/* Страница города: у .hero-pills из styles.css есть отступ сверху и нет
   снизу, поэтому кнопка вставала вплотную под плашки. */
.page-hero .hero-pills{margin:22px 0 0}
.page-hero .hero-pills + .primary-btn{margin-top:24px}
.crumbs{font-size:.82rem;opacity:.8;margin-bottom:.6rem}
.crumbs a{color:inherit}
.section{padding:clamp(40px,6vw,80px) 0}
.muted{color:var(--ck-soft)}
.legal{font-size:.8rem;color:var(--ck-faint);margin-top:1.5rem}
.text-link{color:var(--ck-accent);font-weight:700;text-decoration:none}
.text-link:hover{text-decoration:underline}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:640px}
.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid var(--ck-line);text-align:left;font-size:.92rem}
.data-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ck-faint)}

.faq-section{padding:clamp(40px,6vw,72px) 0}
/* Блок вопросов на главной: слева список, справа фото. Пока картинка не
   выбрана, класса has-image нет — сетка не включается, и блок остаётся
   одной колонкой, как был. */
.faq-grid{display:block}
.faq-section.has-image .faq-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);
  gap:clamp(28px,4vw,56px);align-items:start;
}
.faq-copy h2{margin-top:0}
.faq-lede{margin:0 0 20px;color:var(--ck-soft,#5b6b74);max-width:60ch}
.faq-figure img{
  width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  border-radius:22px;box-shadow:0 18px 50px rgba(16,42,55,.16);display:block;
}
@media (max-width:900px){
  /* На телефоне фото уходит вниз и становится широким и низким: высокий
     кадр здесь выталкивал бы вопросы за первый экран. */
  .faq-section.has-image .faq-grid{grid-template-columns:1fr}
  .faq-figure{order:2}
  .faq-figure img{aspect-ratio:16/10;border-radius:16px}
}
/* FAQ — один вид для всех мест: главная, страница /faq, вопросы в
   путеводителях городов. Цвета литеральные, как у путеводителя: страница
   светлая и в тёмной теме. Акцент берётся из темы (--fb-accent-ink), чтобы
   следовать палитре сайта. Открытие/закрытие анимирует public/faq.js;
   без скрипта <details> работает как обычно. */
.faq-list{--faq-tone:var(--fb-accent-ink,#0a7aa8);
  --faq-tone-bg:#eef4f8;--faq-tone-line:#b9ccd9;
  --faq-ease:cubic-bezier(.22,.61,.36,1);
  display:flex;flex-direction:column;gap:12px;max-width:820px}
@supports (color:color-mix(in srgb,red 50%,#fff)){
  .faq-list{--faq-tone-bg:color-mix(in srgb,var(--faq-tone) 10%,#fff);
    --faq-tone-line:color-mix(in srgb,var(--faq-tone) 38%,#dde8ef)}
}
.faq-item{background:#fff;border:1px solid #dde8ef;border-radius:16px;color:#0b2740;
  box-shadow:0 1px 2px rgba(11,39,64,.04);
  transition:border-color .5s var(--faq-ease),box-shadow .5s var(--faq-ease),transform .5s var(--faq-ease)}
.faq-item>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:18px 20px 18px 22px;cursor:pointer;list-style:none;font-weight:700;line-height:1.4;
  border-radius:16px;-webkit-tap-highlight-color:transparent}
.faq-item>summary::-webkit-details-marker{display:none}
.faq-item>summary::marker{content:""}
.faq-item>summary:focus{outline:none}
.faq-item>summary:focus-visible{outline:3px solid var(--faq-tone-line);outline-offset:2px}
.faq-q{flex:1 1 auto;min-width:0;transition:color .5s var(--faq-ease)}
/* Иконка «+» в конце каждого вопроса: круг и две линии. Открыто —
   вертикальная линия ложится, остаётся «−». Класс is-closing ставит
   скрипт, чтобы иконка менялась в момент щелчка, а не после анимации. */
.faq-icon{position:relative;flex:0 0 auto;width:34px;height:34px;border-radius:50%;
  background:var(--faq-tone-bg);color:var(--faq-tone);
  transition:background-color .5s var(--faq-ease),color .5s var(--faq-ease),transform .6s var(--faq-ease),box-shadow .5s var(--faq-ease)}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;
  margin:-1px 0 0 -7px;border-radius:2px;background:currentColor;
  transition:transform .6s var(--faq-ease),opacity .4s var(--faq-ease)}
.faq-icon::after{transform:rotate(90deg)}
.faq-item:hover{border-color:var(--faq-tone-line);transform:translateY(-2px);
  box-shadow:0 18px 38px -22px rgba(11,39,64,.32),0 2px 6px rgba(11,39,64,.04)}
.faq-item:hover .faq-q{color:var(--faq-tone)}
.faq-item:hover .faq-icon{background:var(--faq-tone);color:#fff;transform:rotate(90deg);
  box-shadow:0 6px 16px -6px var(--faq-tone)}
.faq-item[open]:not(.is-closing){border-color:var(--faq-tone-line);
  box-shadow:0 18px 38px -24px rgba(11,39,64,.28),0 2px 6px rgba(11,39,64,.04)}
.faq-item[open]:not(.is-closing) .faq-icon{background:var(--faq-tone);color:#fff;transform:rotate(180deg)}
.faq-item[open]:not(.is-closing) .faq-icon::after{transform:rotate(0deg);opacity:0}
.faq-answer-inner{padding:0 22px 20px;color:#2c4a5e;line-height:1.65}
.faq-answer-inner p{margin:0 0 .8em}
.faq-answer-inner>:last-child{margin-bottom:0}
@media (hover:none){
  .faq-item:hover{transform:none}
  .faq-item:not([open]):hover,.faq-item.is-closing:hover{border-color:#dde8ef;box-shadow:0 1px 2px rgba(11,39,64,.04)}
  .faq-item:not([open]):hover .faq-icon,.faq-item.is-closing:hover .faq-icon{background:var(--faq-tone-bg);color:var(--faq-tone);transform:none;box-shadow:none}
  .faq-item:hover .faq-q{color:inherit}
}
@media (prefers-reduced-motion:reduce){
  .faq-item,.faq-q,.faq-icon,.faq-icon::before,.faq-icon::after{transition:none}
  .faq-item:hover{transform:none}
}

.card-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.post-card{border:1px solid var(--ck-line);border-radius:16px;background:var(--ck-surface);padding:18px;display:flex;flex-direction:column;gap:8px}
.post-card img{width:100%;border-radius:10px;aspect-ratio:16/9;object-fit:cover}
.post-card h2{font-size:1.1rem;margin:0}
.post-card h2 a{color:inherit;text-decoration:none}
.post-card time{font-size:.78rem;color:var(--ck-faint)}

.prose-page{max-width:760px}
.prose{line-height:1.75;color:var(--ck-soft)}
.prose h2,.prose h3{color:var(--ck-ink);margin-top:1.6em}
.prose img{max-width:100%;border-radius:12px}
.prose-page .cover{width:100%;border-radius:16px;margin:1rem 0 2rem}


.ns-note{padding:22px;border:1px solid var(--ck-line);border-radius:16px;background:var(--ck-surface)}
.ns-table{width:100%;border-collapse:collapse;margin-top:12px}
.ns-table th,.ns-table td{padding:10px;border-bottom:1px solid var(--ck-line);text-align:left;font-size:.9rem}

.footer-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.footer-links a{color:inherit;opacity:.8;font-size:.85rem}

/* 01.11.2026: у сайта одна светлая тема. Прежний «тёмный режим» менял
   только часть цветов (--ck-*): на Mac/телефоне с тёмной темой шапка FAQ
   и страниц становилась светлой с белым текстом, тексты блога — почти
   белыми на белом. Тёмную подмену убрали, браузеру сказано: тема светлая. */

/* --- funnel additions (honeypot, validation, consent) ------------------ */
.ck-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;
  overflow:hidden!important;opacity:0!important;pointer-events:none}
/* Иврит (справа налево): left:-9999px уезжал в прокручиваемую сторону, и
   на шаге с формой страницу можно было прокрутить вбок на 10 000 px
   (найдено test:plan, 24.10.2026). В RTL прячем за правый край — он не
   прокручивается. */
html[dir=rtl] .ck-hp{left:auto!important;right:-9999px!important}
.field-error{display:block;color:#c02c2c;font-weight:600;font-size:.78rem;margin-top:4px}
input[aria-invalid="true"]{border-color:#c02c2c!important;outline-color:#c02c2c}
.market-note.error{border-color:#e8b4b4;background:#fdf1f1;color:#8f2020}
.toggle.consent{display:flex;align-items:flex-start;gap:10px;margin:14px 0 4px;font-size:.88rem;line-height:1.4}
.toggle.consent input{margin-top:3px;flex:0 0 auto}
.rate-benchmark{font-size:.72rem;color:var(--ck-faint);margin-top:10px;text-align:center}
.primary-btn[disabled]{opacity:.6;cursor:progress}
.step-tab[aria-disabled="true"]{opacity:.55;cursor:not-allowed}


/* --- market position ---------------------------------------------------- */
.mp-note{margin:18px 0 0;padding:14px 16px;border:1px solid var(--ck-line);border-left:4px solid var(--ck-accent);
  border-radius:10px;background:var(--ck-surface);font-size:.92rem;line-height:1.55}
.city-mp{display:block;font-size:.72rem;color:var(--ck-faint);margin-top:2px}
/* Столбцов стало три — прежние 520px заставляли телефон прокручивать
   таблицу вбок там, где она и так помещается. */
.compare-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:320px}
.compare-table th,.compare-table td{padding:10px 12px;border-bottom:1px solid var(--ck-line);text-align:left;font-size:.9rem}
.compare-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ck-faint)}
.compare-table .num{text-align:right}
.compare-table tr.is-current{background:color-mix(in srgb,var(--ck-accent) 10%,transparent);font-weight:700}
/* Столбца со стрелками больше нет — выбирается сама строка. Курсор и
   подсветка при наведении нужны как раз вместо той стрелки: без них
   строка выглядит как обычный текст и никто её не нажмёт. */
.compare-table tr.pickable{cursor:pointer}
.compare-table tr.pickable:hover td{background:color-mix(in srgb,var(--ck-accent) 7%,transparent)}
.compare-table tr.pickable:focus-visible{outline:2px solid var(--ck-accent);outline-offset:-2px}
.linkish{background:none;border:0;color:var(--ck-accent);font-weight:700;cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:6px}
.linkish:hover{background:color-mix(in srgb,var(--ck-accent) 14%,transparent)}
.linkish:focus-visible{outline:2px solid var(--ck-accent);outline-offset:2px}

/* --- topbar: the prototype's mobile rules assumed no text nav ------------ */
.topbar .nav-link{white-space:nowrap}
a.primary-btn,a.secondary-btn{text-decoration:none}
@media (max-width:900px){
  /* "Your guided path" is the longest label and the only one duplicated by the
     hero CTA, so it goes first; FAQ and Guides stay reachable. */
  .topbar .nav-link-wide{display:none}
  .top-actions{gap:8px}
  .topbar .nav-link{font-size:.82rem;padding:0 .2rem}
}
@media (max-width:520px){
  /* Ссылки прячутся из строки шапки, но НЕ из выпадающего меню: раньше здесь
     стояло просто `.nav-link{display:none}`, и на телефоне до FAQ и гайдов
     нельзя было добраться вообще — оправдание «они есть в подвале» на деле
     означало «их нет». */
  .topbar .nav-menu:not([open]) .nav-link{display:none}
}


/* --- RTL ------------------------------------------------------------------
   styles.css carries `.rtl .push{...}` but nothing ever gets class="rtl" —
   the direction lives on <html dir>. The primary button therefore stayed
   pinned to the left on Hebrew pages. */
html[dir="rtl"] .actions .push{margin-left:0;margin-right:auto}
html[dir="rtl"] .compare-table th,
html[dir="rtl"] .compare-table td,
html[dir="rtl"] .data-table th,
html[dir="rtl"] .data-table td{text-align:right}
html[dir="rtl"] .compare-table .num,
html[dir="rtl"] .data-table .num{text-align:left}
html[dir="rtl"] .mp-note{border-left:0;border-right:4px solid var(--ck-accent)}

/* --- бренд ---------------------------------------------------------------
   Логотип задаётся в Настройках; высота фиксирована, ширина по пропорциям,
   поэтому замена файла другого формата не ломает шапку. */
/* Новый логотип заметно шире прежнего (пропорции 5:1 против 4:1), поэтому
   при той же высоте он занимал в шапке больше места. Высота уменьшена, чтобы
   шапка не перевешивала первый экран. */
/* Логотип 24.09.2026: надпись с пальмой, без подписи под ней. Пальма
   занимает всю высоту картинки, поэтому высота чуть больше прежних 34px —
   иначе буквы выходили мельче, чем в старом логотипе. */
/* 31.10.2026 (владелец): логотип чуть крупнее; прозрачные поля убирает public/logo-fit.js. */
.brand-logo{height:53px;width:auto;display:block}
@media (max-width:720px){ .brand-logo{height:39px} }
.footer-logo{height:40px;width:auto;display:block;margin-bottom:12px}
@media (max-width:720px){ .footer-logo{height:34px} }
/* Подвал: логотип отдельной строкой, под ним в одну строку описание сайта
   (слева) и оговорка (справа) — их первые строки на одной высоте. Раньше
   оговорка стояла вровень с логотипом и оказывалась выше описания. */
.footer .footer-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:"brand ." "main legal";column-gap:40px;row-gap:2px;align-items:start}
.footer-brand{grid-area:brand}
.footer-main{grid-area:main}
.footer-legal{grid-area:legal;justify-self:end}
.footer-main>p:first-child,.footer-legal>p:first-child{margin-top:0}
@media (max-width:720px){
  .footer .footer-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "main" "legal"}
  .footer-legal{justify-self:stretch}
  .footer-legal>p:first-child{margin-top:20px}
}

/* --- home: city cards --------------------------------------------------
   Заменяют прежнюю полоску .city-mini (маленькое фото + строка цены).
   Цена и медиана из карточек убраны намеренно: они перегружали первый
   экран. Числа остались в таблице ниже и на страницах городов, поэтому
   поисковики и AI-клиенты ничего не потеряли.
   Правила живут здесь, а не в styles.css: этот файл подключается вторым,
   так что переопределяет прототип, и его можно заменить целиком. */
.city-strip{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  margin-top:-56px;
  position:relative;
  z-index:4;
  /* Полоса уже контейнера: пять карточек 3:4 во всю ширину получались
     слишком высокими и отжимали воронку вниз. */
  max-width:960px;
  margin-inline:auto;
}
.city-card{margin:0}
.city-card-link{
  position:relative;display:block;overflow:hidden;
  border-radius:18px;background:#0d3443;color:#fff;text-decoration:none;
  box-shadow:0 14px 36px rgba(9,43,57,.22);
  transition:transform .25s ease,box-shadow .25s ease;
}
.city-card-link:hover,.city-card-link:focus-visible{
  transform:translateY(-3px);box-shadow:0 22px 52px rgba(9,43,57,.30);
}
.city-card-link:focus-visible{outline:3px solid #86efff;outline-offset:3px}
.city-card-media{display:block;aspect-ratio:3/4;background:#0d3443}
.city-card-media img{
  display:block;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.city-card-link:hover .city-card-media img{transform:scale(1.05)}
/* Подпись лежит на фото, как в присланном примере, а не под ним. */
.city-card-body{
  position:absolute;inset:auto 0 0 0;
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  padding:16px 14px 15px;
  /* Вуаль лёгкая и низкая: она нужна только под двумя строками текста.
     Плотная закрывала половину фотографии — ради читаемости подписи мы
     прятали то, ради чего карточка и существует. */
  background:linear-gradient(0deg,rgba(4,26,36,.90) 0%,rgba(4,26,36,.58) 52%,rgba(4,26,36,0) 100%);
}
.city-card-name{
  font-size:17px;line-height:1.15;letter-spacing:-.02em;font-weight:800;
  display:inline-flex;align-items:center;gap:7px;
}
/* Стрелка вместо кнопки на каждой карточке.
   Пять одинаковых кнопок стояли прямо под «Explore my buying power» и
   спорили с ней — на первом экране должно быть одно действие. Ссылка теперь
   вся карточка целиком, а стрелка лишь подсказывает это при наведении. */
.city-card-name::after{
  content:"→";font-weight:600;opacity:0;transform:translateX(-5px);
  transition:opacity .2s ease,transform .2s ease;
}
.city-card-link:hover .city-card-name::after,
.city-card-link:focus-visible .city-card-name::after{opacity:1;transform:none}
/* На тач-экранах наведения нет — там стрелка видна всегда, приглушённо. */
@media (hover:none){
  .city-card-name::after{opacity:.65;transform:none}
}
.city-card-tag{
  font-size:11.5px;font-weight:500;letter-spacing:0;line-height:1.3;
  color:rgba(255,255,255,.80);
}

/* Пять колонок помещаются только на широком экране. Свои media-запросы
   обязательны: правила прототипа для .city-strip стоят в файле выше и
   больше не выигрывают.

   Ниже 1100px это не сетка, а горизонтальная лента. Причина простая: городов
   пять — нечётное число, и любая сетка (3+2 или 2+2+1) оставляет дырку в
   последнем ряду. А если сложить карточки в столбик, пять больших фотографий
   отодвигают кнопку «Explore my buying power» на два экрана вниз — ровно то,
   от чего мы уходим. Лента держит блок высотой в одну карточку. */
@media(max-width:1100px){
  .city-strip{
    display:flex;
    gap:14px;
    margin-top:-52px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x proximity;
    /* Тень карточек не должна срезаться краем прокрутки. */
    padding:8px 4px 16px;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .city-card{flex:0 0 232px;scroll-snap-align:start}
}
@media(max-width:560px){
  .city-strip{margin-top:-34px;gap:12px}
  .city-card{flex:0 0 74vw;max-width:290px}
  .city-card-name{font-size:19px}
  .city-card-tag{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  .city-card-link,.city-card-media img,.city-card-name::after{transition:none}
  .city-card-link:hover{transform:none}
  .city-card-link:hover .city-card-media img{transform:none}
}

/* --- home: варианты фона первого экрана ---------------------------------
   Выбирается в админке (Настройки → Brand & images → Hero style) и попадает
   в атрибут data-bg на <section class="hero">. Смысл всех вариантов, кроме
   classic, один: убрать из фона детали, которые перетягивают взгляд с
   заголовка и кнопки. Фото при этом остаётся тем же — меняется только его
   обработка, поэтому переключение не требует новых файлов. */

/* 1. classic — как в прототипе: цветной диагональный градиент. Оставлен,
      чтобы можно было вернуться одним кликом. Правил не требует. */

/* 2. calm — фото приглушено, вуаль ровная: контраст текста везде одинаковый. */
.hero[data-bg="calm"] .hero-media{filter:saturate(.55) brightness(.82) contrast(.95)}
.hero[data-bg="calm"] .hero-overlay{
  background:linear-gradient(90deg,rgba(6,32,44,.88) 0%,rgba(6,32,44,.74) 55%,rgba(6,32,44,.62) 100%);
}

/* 3. mist — фото размыто: остаются только большие пятна света и цвета. */
/* blur размывает и кромку элемента, поэтому фото увеличено — иначе по
   периметру видна светлая рамка. Обрезка секции задана ниже, для всех
   вариантов сразу. */
.hero[data-bg="mist"] .hero-media{
  filter:blur(9px) saturate(.6) brightness(.86);
  transform:scale(1.08);
}
.hero[data-bg="mist"] .hero-overlay{
  background:linear-gradient(90deg,rgba(7,34,47,.86) 0%,rgba(7,34,47,.70) 60%,rgba(7,34,47,.58) 100%);
}

/* ------------------------------------------------------------------------
   ВАРИАНТЫ БЕЗ ФОТОГРАФИИ

   Фон рисуется средствами CSS: ни одного лишнего файла, ничего не грузится,
   картинка не «шумит» деталями. Фотография при этом остаётся в настройках —
   переключение обратно на classic возвращает её без правки полей.
   ------------------------------------------------------------------------ */
.hero[data-bg="ink"] .hero-media,
.hero[data-bg="aurora"] .hero-media,
.hero[data-bg="blueprint"] .hero-media,
.hero[data-bg="horizon"] .hero-media,
.hero[data-bg="silk"] .hero-media{display:none}

/* Крупные тёмные градиенты на 8-битном экране идут полосами. Едва заметное
   зерно поверх их разбивает — приём из полиграфии, на глаз не читается, но
   переход становится гладким. Картинка встроена как data:, отдельного запроса
   нет; CSP разрешает data: в img-src. */
.hero[data-bg="ink"] .hero-overlay::before,
.hero[data-bg="aurora"] .hero-overlay::before,
.hero[data-bg="blueprint"] .hero-overlay::before,
.hero[data-bg="horizon"] .hero-overlay::before,
.hero[data-bg="silk"] .hero-overlay::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  opacity:.30;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

/* 4. ink — ровная глубина, ничего кроме света в углу. Самый тихий вариант. */
.hero[data-bg="ink"] .hero-overlay{
  background:radial-gradient(90% 80% at 8% 18%,rgba(19,120,150,.55) 0%,rgba(19,120,150,0) 62%),
             linear-gradient(135deg,#0d3b4f 0%,#092b39 55%,#071f2a 100%);
}

/* 6. aurora — четыре мягких свечения бирюзой поверх глубокого синего.
      Ближайший аналог — «mesh gradient»: цвет есть, деталей нет, поэтому
      взгляду не за что зацепиться, кроме заголовка и кнопки. */
.hero[data-bg="aurora"] .hero-overlay{
  background:
    radial-gradient(46% 62% at 17% 20%,rgba(19,185,181,.32) 0%,rgba(19,185,181,0) 70%),
    radial-gradient(42% 56% at 70% 10%,rgba(0,141,181,.36) 0%,rgba(0,141,181,0) 72%),
    radial-gradient(58% 66% at 90% 76%,rgba(12,125,159,.28) 0%,rgba(12,125,159,0) 70%),
    radial-gradient(52% 60% at 32% 96%,rgba(4,60,84,.55) 0%,rgba(4,60,84,0) 72%),
    linear-gradient(160deg,#0a3245 0%,#07293a 46%,#051c29 100%);
}

/* 7. blueprint — тонкая архитектурная сетка. Отсылка к чертежу дома, но
      линии почти не видны: сетка гаснет к краям, чтобы не превращаться
      в таблицу. */
.hero[data-bg="blueprint"] .hero-overlay{
  background:
    radial-gradient(64% 72% at 10% 16%,rgba(19,185,181,.26) 0%,rgba(19,185,181,0) 68%),
    linear-gradient(140deg,#0c3546 0%,#092838 52%,#071e2a 100%);
}
.hero[data-bg="blueprint"] .hero-overlay::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px) 0 0/100% 68px,
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px) 0 0/68px 100%;
  /* Маска гасит сетку по краям: в центре она читается, к периметру уходит. */
  -webkit-mask-image:radial-gradient(78% 82% at 30% 42%,#000 0%,transparent 78%);
  mask-image:radial-gradient(78% 82% at 30% 42%,#000 0%,transparent 78%);
}

/* 8. horizon — абстрактный рассвет над водой: тёплая полоса внизу берёт
      золото из логотипа, верх остаётся тёмным, текст лежит на самом ровном
      участке. Никакого пейзажа — только свет. */
.hero[data-bg="horizon"] .hero-overlay{
  background:
    radial-gradient(58% 34% at 50% 90%,rgba(255,180,59,.26) 0%,rgba(255,180,59,0) 64%),
    radial-gradient(92% 52% at 50% 98%,rgba(19,185,181,.36) 0%,rgba(19,185,181,0) 64%),
    linear-gradient(180deg,#05161f 0%,#072536 46%,#0b3d52 100%);
}

/* 9. silk — одна широкая диагональная «складка» света. Спокойнее всех
      цветных вариантов и при этом не выглядит пустым. */
.hero[data-bg="silk"] .hero-overlay{
  background:
    linear-gradient(104deg,rgba(255,255,255,0) 34%,rgba(255,255,255,.055) 47%,rgba(255,255,255,0) 60%),
    radial-gradient(70% 80% at 78% 8%,rgba(0,141,181,.30) 0%,rgba(0,141,181,0) 66%),
    linear-gradient(118deg,#0b3346 0%,#082a3b 42%,#05202e 100%);
}

/* 5. sand — тёплая нейтральная вуаль, фото едва читается фактурой. */
.hero[data-bg="sand"] .hero-media{filter:saturate(.35) brightness(.78) sepia(.18)}
.hero[data-bg="sand"] .hero-overlay{
  background:linear-gradient(90deg,rgba(28,32,30,.90) 0%,rgba(24,32,34,.76) 55%,rgba(20,30,34,.64) 100%);
}

/* Спокойные варианты не нуждаются в 760px высоты: чем короче первый экран,
   тем раньше видна кнопка. classic оставлен как был. */
.hero:not([data-bg="classic"]){min-height:660px}
@media(max-width:980px){
  .hero:not([data-bg="classic"]){min-height:760px}
}

/* --- варианты стыка полосы городов с фотографией -------------------------
   Карточки городов стоят на границе первого экрана и светлой части страницы.
   Сама граница — прямая линия среза фотографии, и именно она выглядит
   случайной: полоса будто легла поверх шва, а не задумана вместе с ним.
   Ниже шесть разных ответов на этот вопрос. Выбирается в админке
   (Настройки → Home page — where the city strip meets the photo) и попадает
   в атрибут data-strip на первом экране и на самой полосе. ------------- */

/* 1. flush — перекрытия нет вовсе. Фотография заканчивается, полоса стоит
      ниже, на светлом. Самый спокойный вариант: шва нет, потому что нечему
      его образовывать. */
.city-strip[data-strip="flush"]{margin-top:34px}

/* 2. fade — фотография растворяется в цвете страницы. Прямой линии нет,
      карточки плывут в градиенте. */
.hero[data-strip="fade"]::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:210px;
  background:linear-gradient(180deg,rgba(248,251,252,0) 0%,rgba(248,251,252,.55) 55%,#f8fbfc 100%);
  pointer-events:none;z-index:1;
}

/* 3. slab — полоса лежит на собственной белой плите со скруглённым верхом.
      Шов превращается в край предмета: видно, что так и задумано. */
.city-strip[data-strip="slab"]{
  /* Цвет литералом, а не через --ck-surface. Эта переменная в тёмной теме
     браузера становится тёмно-синей, а первый экран и секция под ним заданы
     в styles.css светлыми и на тему не реагируют: плита оказалась бы тёмным
     пятном на светлой странице. */
  background:#fff;
  padding:14px;border-radius:24px;
  margin-top:-84px;
  /* Плита шире обычного: её собственные поля съедали ширину карточек, и
     названия из двух слов переносились на вторую строку — ряд переставал
     читаться как ряд. */
  max-width:1020px;
  box-shadow:0 -8px 44px rgba(9,43,57,.20),0 24px 56px rgba(9,43,57,.16);
}

/* 4. wave — низ фотографии выгнут дугой. Отсылка к береговой линии, и
      прямой линии на экране не остаётся. */
.hero[data-strip="wave"]{overflow:hidden}
.hero[data-strip="wave"]::after{
  content:"";position:absolute;z-index:1;pointer-events:none;
  left:-8%;right:-8%;bottom:-96px;height:190px;
  background:#f8fbfc;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
}

/* 5. notch — фотография «расступается»: снизу вырезано окно ровно под
      полосу, карточки стоят в нём. */
.hero[data-strip="notch"]::after{
  content:"";position:absolute;z-index:1;pointer-events:none;
  left:50%;transform:translateX(-50%);
  bottom:0;width:min(1000px,calc(100% - 24px));height:104px;
  background:#f8fbfc;border-radius:26px 26px 0 0;
}

/* 6. stagger — линию ломают сами карточки: чётные опущены. Срез фотографии
      остаётся прямым, но глаз читает ритм, а не шов. */
.hero[data-strip="stagger"]::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:210px;
  background:linear-gradient(180deg,rgba(248,251,252,0) 0%,rgba(248,251,252,.55) 55%,#f8fbfc 100%);
  pointer-events:none;z-index:1;
}
.city-strip[data-strip="stagger"]{margin-top:-74px;align-items:start}
.city-strip[data-strip="stagger"] .city-card:nth-child(even){transform:translateY(30px)}

/* Карточки всегда выше любой из этих подложек. */
.city-strip{z-index:4}

@media(max-width:1100px){
  /* Ниже 1100px полоса перестаёт быть рядом из пяти карточек и становится
     горизонтальной лентой. Приёмы, придуманные для ряда, здесь ломаются:
     вырез оказывается не по месту, а белая плита вокруг прокрутки читается
     не как рамка, а как обрезка — последняя карточка упирается в её край.
     Поэтому оба варианта переходят в мягкий низ: шва нет, ленте ничего не
     мешает. */
  .hero[data-strip="notch"]::after{display:none}
  .city-strip[data-strip="slab"]{
    background:none;padding:0;border-radius:0;box-shadow:none;
    max-width:none;margin-top:-52px;
  }
  .hero[data-strip="slab"]::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:190px;
    background:linear-gradient(180deg,rgba(248,251,252,0) 0%,rgba(248,251,252,.55) 55%,#f8fbfc 100%);
    pointer-events:none;z-index:1;
  }
  .city-strip[data-strip="stagger"] .city-card:nth-child(even){transform:none}
  .hero[data-strip="wave"]::after{bottom:-70px;height:140px}
}
@media(prefers-reduced-motion:reduce){
  .city-strip[data-strip="stagger"] .city-card:nth-child(even){transform:translateY(30px)}
}


/* Первый экран обрезается по своим границам.
 *
 * Не косметика: .hero-media увеличен на 1% (transform:scale(1.01) в
 * styles.css — так прячут кромку фотографии), и эти лишние ~4px вылезали
 * ПОД низ первого экрана, уже на светлую часть страницы. Вуаль туда не
 * достаёт, поэтому под фотографией шла тонкая тёмная черта во всю ширину —
 * она и делала стык похожим на случайный шов. Тень карточки с ценой
 * укладывается внутрь, ничего нужного не срезается.
 */
.hero{overflow:hidden}

/* Подзаголовок первого экрана — «Body HTML» карточки home.
   pre-line намеренно: владелец пишет туда обычный текст с переносами строк,
   и без этого правила две строки слиплись бы в одну. Разметка, если она там
   есть, работает как обычно. */
.hero-lede{
  margin-top:18px;max-width:46ch;
  font-size:clamp(16px,1.4vw,20px);line-height:1.45;
  color:rgba(255,255,255,.90);white-space:pre-line;
}
.hero-lede p{margin:0 0 .6em}
.hero-lede p:last-child{margin-bottom:0}
@media(max-width:720px){ .hero-lede{margin-top:14px} }

/* ========================================================================
   ПЕРВЫЙ ЭКРАН И РАЙОНЫ — оформление по присланному макету.
   Правила ниже переопределяют прототип: этот файл подключается вторым.
   Всё, что здесь задано размерами и цветом, читается из переменных темы
   (см. блок «тема» в partials/head.ejs) — их владелец меняет в админке.
   ======================================================================== */

/* Фотография показывается почти без затемнения: в макете это светлый,
   воздушный экран, а не тёмная подложка под белый текст. Читаемость держат
   тень на тексте и белая карточка справа. */
.hero[data-bg="classic"] .hero-overlay{ background:var(--fb-veil); }
.hero{min-height:720px}
.hero-content{align-items:center}
.hero-copy{text-shadow:0 2px 18px rgba(4,24,34,.35)}

/* Надзаголовок-пилюля */
.hero-eyebrow{
  display:inline-block;margin-bottom:22px;
  padding:9px 18px;border-radius:999px;
  background:var(--fb-eyebrow-bg,rgba(11,86,120,.72));
  backdrop-filter:blur(8px);
  color:#fff;font-family:var(--fb-body);
  font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  text-shadow:none;
}

.hero h1{
  font-family:var(--fb-heading);
  font-size:var(--fb-h1);
  font-style:var(--fb-h1-style,normal);
  font-weight:var(--fb-heading-weight,600);
  /* Межстрочный 1.22 (было 1.1): строки заголовка почти касались друг
     друга выносными элементами — «p», «g», «y» над «h», «b», «l». */
  line-height:1.22;letter-spacing:-.015em;
  /* Ширина 28 знаков: при 17 заголовок из двух фраз ложился в 5–6 строк узкой
     колонкой, хотя место под ним — 720px. 28 знаков — 3 строки на компьютере. */
  margin:0 0 18px;max-width:28ch;text-wrap:balance;
}
/* Слово в квадратных скобках из текста заголовка. */
.hero h1 .accent{color:var(--fb-accent)}

.hero-lede{
  margin-top:0;margin-bottom:30px;max-width:52ch;
  font-family:var(--fb-body);
  font-size:var(--fb-lede,clamp(16px,1.3vw,19px));
  font-style:var(--fb-lede-style,italic);
  font-weight:var(--fb-lede-weight,400);
  line-height:1.5;letter-spacing:.005em;
  color:rgba(255,255,255,.94);white-space:pre-line;
}

.hero-trust{display:flex;flex-wrap:wrap;gap:32px}
.trust-item{display:flex;align-items:flex-start;gap:12px;max-width:30ch}
.trust-icon{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;color:#fff;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.34);
  backdrop-filter:blur(6px);
}
.trust-item strong{display:block;font-family:var(--fb-body);font-size:14px;font-weight:700;line-height:1.25}
.trust-item small{display:block;font-size:13px;color:rgba(255,255,255,.86);margin-top:3px;line-height:1.35}

/* --- карточка первого экрана: «сколько платите в месяц» ------------------ */
.hero-card{border-radius:22px;padding:30px 32px 26px;box-shadow:0 26px 70px rgba(6,30,42,.26)}
.hero-card .card-question{
  margin:0 0 14px;font-family:var(--fb-body);
  font-size:15px;font-weight:700;color:var(--ink,#102a37);
}
.card-amount-row{display:flex;align-items:baseline;gap:2px}
.card-currency{
  font-family:var(--fb-heading);font-size:clamp(30px,2.6vw,40px);
  font-weight:var(--fb-heading-weight,600);color:var(--ink,#102a37);
}
/* Поле выглядит как текст, а не как форма: рамка и фон появляются только при
   наведении и вводе. В макете это крупное число, но менять его должно быть
   очевидно — отсюда подчёркивание при фокусе. */
.card-amount{
  width:auto;flex:0 1 auto;min-width:0;field-sizing:content;
  border:0;background:transparent;padding:0;border-radius:0;
  font-family:var(--fb-heading);font-size:clamp(34px,3vw,46px);
  font-weight:var(--fb-heading-weight,600);letter-spacing:-.02em;
  color:var(--ink,#102a37);
}
.card-amount:focus{outline:none;box-shadow:none;background:transparent}
.card-amount:focus-visible{outline:2px solid var(--fb-cta,#ef5b34);outline-offset:4px;border-radius:6px}
.card-permonth{font-size:15px;color:var(--muted,#6a7e88);white-space:nowrap;margin-left:8px;margin-right:auto}

/* ───────────────────────────────────────────────────────────────────────
   Подсказка «сумму можно менять».

   В макете это просто крупное число, и на нём посетитель останавливается:
   выглядит как готовый ответ, а не как поле. Ниже четыре варианта одного
   и того же — какой включён, решает атрибут data-amount у карточки.
   Общее правило: элементы чужого варианта скрыты, а не удалены, поэтому
   переключение в админке не трогает шаблон.
   ─────────────────────────────────────────────────────────────────────── */
.card-amount-field{display:inline-flex;align-items:baseline;gap:2px;position:relative}
.card-step,
.card-range,
.card-scale,
.card-chips,
.card-pencil,
.card-edit-hint{display:none}

/* «field» — число лежит в поле с пунктирной рамкой и карандашом.
   Самый прямой намёк: это форма, сюда пишут. */
.hero-card[data-amount="field"] .card-amount-field{
  border:1.5px dashed #cdd8de;border-radius:12px;
  padding:2px 10px 4px;transition:border-color .15s ease,background .15s ease;
}
.hero-card[data-amount="field"] .card-amount-field:hover{border-color:var(--fb-cta,#ef5b34);background:#fbfdfe}
.hero-card[data-amount="field"] .card-amount-field:focus-within{
  border-style:solid;border-color:var(--fb-cta,#ef5b34);background:#fff;
}
.hero-card[data-amount="field"] .card-pencil{
  display:inline;font-size:15px;color:var(--muted,#6a7e88);margin-left:6px;line-height:1;
}
.hero-card[data-amount="field"] .card-edit-hint{display:block}

/* «well» (16.10.2026, выбор владельца из четырёх эскизов) — число лежит в
   мягком поле с кнопкой-карандашом справа, под ним ползунок. Самый понятный
   из вариантов: такое поле все знают по формам, и видно, что сюда пишут.
   Поле — это сама строка суммы: обёртка числа «растворяется»
   (display:contents), чтобы карандаш встал последним, после «/mo». */
.hero-card[data-amount="well"] .card-amount-row{
  align-items:center;gap:4px;padding:8px 8px 8px 16px;
  background:#f3f7f9;border:1.5px solid #dbe5ea;border-radius:16px;cursor:text;
  transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease;
}
.hero-card[data-amount="well"] .card-amount-row:hover{
  border-color:color-mix(in srgb,var(--fb-cta,#ef5b34) 50%,#dbe5ea);background:#fff;
}
.hero-card[data-amount="well"] .card-amount-row:focus-within{
  border-color:var(--fb-cta,#ef5b34);background:#fff;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--fb-cta,#ef5b34) 13%,transparent);
}
.hero-card[data-amount="well"] .card-amount-field{display:contents}
.hero-card[data-amount="well"] .card-currency{order:1}
.hero-card[data-amount="well"] .card-amount{order:2;caret-color:var(--fb-cta,#ef5b34)}
/* Рамку фокуса рисует всё поле — у самого числа своей не нужно. */
.hero-card[data-amount="well"] .card-amount:focus-visible{outline:none}
.hero-card[data-amount="well"] .card-permonth{order:3;margin-left:6px;margin-right:auto}
.hero-card[data-amount="well"] .card-pencil{
  /* margin-left:auto — карандаш у правого края поля (раньше его туда
     отталкивал «/mo», который 25.10.2026 ушёл в строку вопроса). */
  order:4;margin-inline-start:auto;display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;
  color:var(--fb-cta,#ef5b34);background:color-mix(in srgb,var(--fb-cta,#ef5b34) 13%,transparent);
  cursor:pointer;transition:background-color .2s ease,color .2s ease;
}
.hero-card[data-amount="well"] .card-pencil .ck-ico{width:18px;height:18px;vertical-align:0}
.hero-card[data-amount="well"] .card-pencil:hover,
.hero-card[data-amount="well"] .card-amount-row:focus-within .card-pencil{
  background:var(--fb-cta,#ef5b34);color:#fff;
}
.hero-card[data-amount="well"] .card-bar{display:none}
.hero-card[data-amount="well"] .card-edit-hint{display:block}
@media (prefers-reduced-motion:reduce){.hero-card[data-amount="well"] .card-amount-row,.hero-card[data-amount="well"] .card-pencil{transition:none}}

/* «slider» — та же полоса, что и раньше, но настоящая: с ручкой, которую
   видно и хочется потянуть. Полоса под числом уже была в макете, поэтому
   вид карточки почти не меняется, а смысл появляется. */
.hero-card[data-amount="slider"] .card-bar{display:none}
.hero-card[data-amount="slider"] .card-range,
.hero-card[data-amount="well"] .card-range{
  /* Общий стиль полей ввода в styles.css рисует рамку, фон и отступы —
     на ползунке это выглядело как число в рамке поверх дорожки. */
  display:block;width:100%;margin:14px 0 4px;
  -webkit-appearance:none;appearance:none;
  background:transparent;border:0;border-radius:0;padding:0;box-shadow:none;
}
.card-range::-webkit-slider-runnable-track{
  height:6px;border-radius:3px;
  background:linear-gradient(to right,var(--fb-cta,#ef5b34) var(--fill,40%),#e6ecf0 var(--fill,40%));
}
.card-range::-moz-range-track{height:6px;border-radius:3px;background:#e6ecf0}
.card-range::-moz-range-progress{height:6px;border-radius:3px;background:var(--fb-cta,#ef5b34)}
.card-range::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-8px;
  border-radius:50%;background:#fff;border:2px solid var(--fb-cta,#ef5b34);
  box-shadow:0 2px 6px rgba(20,40,55,.22);cursor:grab;
}
.card-range::-moz-range-thumb{
  width:22px;height:22px;border-radius:50%;background:#fff;
  border:2px solid var(--fb-cta,#ef5b34);box-shadow:0 2px 6px rgba(20,40,55,.22);cursor:grab;
}
.card-range:active::-webkit-slider-thumb{cursor:grabbing}
.card-range:focus-visible{outline:2px solid var(--fb-cta,#ef5b34);outline-offset:6px;border-radius:6px}
.hero-card[data-amount="slider"] .card-scale,
.hero-card[data-amount="well"] .card-scale{
  display:flex;justify-content:space-between;
  font-size:12px;color:var(--muted,#6a7e88);margin-bottom:14px;
}
.hero-card[data-amount="slider"] .card-edit-hint{display:block}

/* «stepper» — кнопки −/+ по бокам. Понятно без подписи и работает пальцем
   на телефоне, где попасть в тонкий ползунок труднее. */
.hero-card[data-amount="stepper"] .card-step{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;flex:0 0 38px;border-radius:50%;
  border:1.5px solid #dde5ea;background:#fff;color:var(--ink,#102a37);
  font-size:22px;line-height:1;cursor:pointer;align-self:center;
  transition:border-color .15s ease,color .15s ease,transform .08s ease;
}
.hero-card[data-amount="stepper"] .card-step:hover{border-color:var(--fb-cta,#ef5b34);color:var(--fb-cta,#ef5b34)}
.hero-card[data-amount="stepper"] .card-step:active{transform:scale(.94)}
.hero-card[data-amount="stepper"] .card-permonth{margin-right:0}
.hero-card[data-amount="stepper"] .card-amount-row{gap:10px}
.hero-card[data-amount="stepper"] .card-amount-field{margin:0 auto}

/* «chips» — три готовые суммы. Ничего не надо придумывать: видно и что
   значения бывают разные, и что их меняют одним касанием. */
.hero-card[data-amount="chips"] .card-chips{
  display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px;
}
.card-chips button{
  border:1.5px solid #dde5ea;background:#fff;color:var(--ink,#102a37);
  border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;
  cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;
}
.card-chips button:hover{border-color:var(--fb-cta,#ef5b34);color:var(--fb-cta,#ef5b34)}
.card-chips button[aria-pressed="true"]{
  border-color:var(--fb-cta,#ef5b34);background:var(--fb-cta,#ef5b34);color:#fff;
}
.hero-card[data-amount="chips"] .card-edit-hint{display:block}

/* Селектор с .hero-card не для красоты: в styles.css есть `.hero p`, который
   красит любой абзац первого экрана в белый — подсказка на белой карточке
   становилась невидимой. */
.hero-card .card-edit-hint{margin:0 0 14px;font-size:13px;color:var(--muted,#6a7e88)}

.card-bar{height:3px;border-radius:2px;background:#e6ecf0;margin:14px 0 16px;overflow:hidden}
.card-bar span{display:block;height:100%;width:40%;background:var(--fb-cta,#ef5b34);border-radius:2px;transition:width .2s ease}
.hero-card .card-help{margin:0 0 20px;font-size:14px;line-height:1.5;color:var(--muted,#6a7e88)}
.hero-card small{margin-top:12px;line-height:1.45}

/* Кнопки действия: сплошной цвет темы вместо градиента прототипа.
   Цвет наведения — отдельная настройка, а не осветление фильтром: фильтр
   даёт предсказуемый, но не подобранный оттенок, а кнопка тут главный
   акцент страницы. Тень мягкая и нейтральная, без цветного свечения —
   свечение под кнопкой быстро скатывает вид в рекламный баннер. */
.hero-card .primary-btn,
.nav-cta{
  background:var(--fb-cta,#ff7a59);
  box-shadow:0 6px 16px rgba(20,40,55,.14);
}
.hero-card .primary-btn{border-radius:15px;padding:16px 18px;font-size:15px;justify-content:space-between}
.nav-cta{border-radius:14px}
.hero-card .primary-btn:hover,
.nav-cta:hover{
  background:var(--fb-cta-hover,#e76546);
  transform:translateY(-1px);
  box-shadow:0 9px 20px rgba(20,40,55,.18);
}
.hero-card .primary-btn:active,
.nav-cta:active{transform:translateY(0);box-shadow:0 4px 12px rgba(20,40,55,.16)}

/* --- секция районов ----------------------------------------------------- */
/* Отступы намеренно небольшие. Первый экран заканчивается резкой линией
   среза фотографии, и 76px пустоты над надписью читались не как воздух, а
   как провал: смотреть в них нечего. 40px хватает, чтобы секции не слиплись.
   Нижний отступ сжат по той же причине — карточки и полоса доверия
   относятся к одному блоку, а не к разным. */
.areas-section{background:var(--fb-areas-bg,#f2f5f8);padding:40px 0 34px}
/* Секция шире остальных: пять карточек и колонка текста в общий контейнер
   1220px не помещаются — карточки получались по 164px, и названия из двух
   слов переносились. */
.areas-grid{
  width:min(1360px,calc(100% - 40px));
  display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:center;
}
.areas-copy .eyebrow{color:var(--fb-accent-ink,#0b6d90)}
.areas-copy h2{
  font-family:var(--fb-heading);
  /* На четверть мельче заголовка первого экрана: в колонке 300px размер
     из --fb-h2 разбивал строку на три части. */
  font-size:calc(var(--fb-h2) * .86);font-weight:var(--fb-heading-weight,600);
  line-height:1.12;letter-spacing:-.015em;margin:10px 0 12px;text-wrap:balance;
}
.areas-copy p{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 22px;max-width:34ch}
.areas-cta{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-size:14px}

/* Карточки внутри секции: плита им больше не нужна — у блока есть заголовок
   и собственный фон, и на срезе фотографии они уже не висят. */
.areas-section .city-strip,
.areas-section .city-strip[data-strip]{
  margin:0;max-width:none;background:none;padding:0;border-radius:0;box-shadow:none;
  grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;
}
.areas-section .city-card-body{
  padding:14px 13px 13px;
  background:linear-gradient(0deg,rgba(4,26,36,.92) 0%,rgba(4,26,36,.55) 55%,rgba(4,26,36,0) 100%);
}
.areas-section .city-card-name{font-size:14.5px;gap:6px;line-height:1.2}
.areas-section .city-card-name .pin{flex:0 0 auto;opacity:.9}
.areas-section .city-card-name::after{content:none}
.areas-section .city-card-tag{font-size:11px;line-height:1.3}
.city-card-from{
  display:block;margin-top:5px;font-size:12.5px;font-weight:700;
  color:rgba(255,255,255,.92);
}

@media(max-width:1100px){
  .areas-grid{grid-template-columns:1fr;gap:26px}
  .areas-copy p{max-width:60ch}
  .areas-section .city-strip,
  .areas-section .city-strip[data-strip]{
    display:flex;overflow-x:auto;scroll-snap-type:x proximity;
    padding:6px 2px 14px;overscroll-behavior-x:contain;
  }
  .areas-section .city-card{flex:0 0 224px;scroll-snap-align:start}
  .hero{min-height:auto;padding-bottom:56px}
}
@media(max-width:720px){
  .hero-eyebrow{font-size:11px;padding:8px 14px;margin-bottom:16px}
  .hero-trust{gap:18px}
  .trust-item{max-width:none;flex:1 1 100%}
  .hero-card{padding:22px}
  .areas-section{padding:30px 0 26px}
  .areas-section .city-card{flex:0 0 72vw;max-width:280px}
}

/* Шапка: пункт «О нас», кнопка «Get Started». */
.nav-cta{
  display:inline-flex;align-items:center;
  margin-left:14px;padding:11px 20px;border-radius:12px;
  background:var(--ink,#102a37);color:#fff;text-decoration:none;
  font-family:var(--fb-body);font-size:14px;font-weight:700;
  transition:transform .18s ease,box-shadow .18s ease;
}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(16,42,55,.22)}
.topbar .nav-link{font-family:var(--fb-body)}
@media(max-width:1100px){ .nav-link-wide{display:none} }
@media(max-width:720px){ .nav-cta{display:none} }

/* --- меню в шапке -------------------------------------------------------
   Два набора ссылок: строка для широкого экрана и выпадающий список для
   узкого. Всегда виден ровно один. */
.nav-inline{display:flex;align-items:center;gap:4px}
.nav-menu{display:none;position:relative}
.nav-menu > summary{
  display:grid;place-items:center;cursor:pointer;list-style:none;
  width:42px;height:42px;border-radius:12px;
  border:1px solid var(--ck-line,#dde8ef);background:#fff;color:var(--ink,#102a37);
}
.nav-menu > summary::-webkit-details-marker{display:none}
.nav-menu > summary:focus-visible{outline:3px solid var(--fb-cta,#ef5b34);outline-offset:2px}

@media(max-width:900px){
  .nav-inline,.nav-cta-inline{display:none}
  .nav-menu{display:flex;align-items:center}
  .nav-menu-panel{
    display:flex;flex-direction:column;align-items:stretch;gap:2px;
    position:absolute;right:0;top:calc(100% + 10px);z-index:60;
    min-width:220px;padding:10px;
    background:#fff;border:1px solid var(--ck-line,#dde8ef);border-radius:16px;
    box-shadow:0 18px 44px rgba(16,42,55,.18);
  }
  .nav-menu .nav-link{display:block;padding:11px 12px;border-radius:10px;font-size:15px;opacity:1;white-space:nowrap}
  .nav-menu .nav-link:hover{background:#f1f6f9;text-decoration:none}
  .nav-menu .nav-cta{display:inline-flex;justify-content:center;margin:6px 0 0}
}


/* --- полоса доверия под районами ---------------------------------------- */
.trust-strip-section{background:var(--fb-areas-bg,#f2f5f8);padding:0 0 72px}
.trust-strip{
  display:grid;grid-template-columns:repeat(3,1fr);
  background:#fff;border-radius:20px;padding:26px 10px;
  box-shadow:0 14px 40px rgba(16,42,55,.08);
}
.trust-strip .trust-item{
  display:flex;align-items:center;gap:14px;
  padding:4px 26px;max-width:none;
  border-left:1px solid #e8eef2;
}
.trust-strip .trust-item:first-child{border-left:0}
.trust-strip .trust-icon{
  flex:0 0 auto;width:auto;height:auto;border:0;background:none;backdrop-filter:none;
  color:var(--fb-cta,#ef5b34);
}
.trust-strip .trust-item strong{font-size:15px;color:var(--ink,#102a37);font-weight:700}
.trust-strip .trust-item small{font-size:13.5px;color:var(--muted,#6a7e88);margin-top:2px}

@media(max-width:900px){
  .trust-strip{grid-template-columns:1fr;gap:18px;padding:20px}
  .trust-strip .trust-item{border-left:0;padding:0}
}

/* Ширина поля с суммой. `field-sizing:content` поддерживают не все браузеры,
   поэтому есть и запасной вариант: поле не тянется, а занимает столько,
   сколько задано в атрибуте size. */
@supports not (field-sizing: content){
  .card-amount{width:5.2ch}
}

/* --- путеводитель по городу (страница города) ---------------------------
   Цвета литералом, как у плиты на главной: страница под первым экраном
   светлая и на тёмную тему браузера не реагирует, а переменные --ck-* в
   тёмной теме становятся светлыми — текст пропал бы на светлом фоне. */
.city-guide{background:#f4f9fc;border-top:1px solid #dde8ef;padding:clamp(40px,6vw,80px) 0;color:#0b2740}
.guide-head{max-width:860px}
.guide-head h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .4rem;line-height:1.15;color:#0b2740}
.guide-lede{color:#4d6b80;margin:0;max-width:70ch;line-height:1.6}
.guide-toc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}
.guide-toc-label{font-size:.8rem;font-weight:700;color:#4d6b80;margin-right:4px}
.guide-toc a{font-size:.85rem;padding:6px 12px;border-radius:999px;background:#fff;border:1px solid #dde8ef;color:#0b2740;text-decoration:none;line-height:1.3;display:inline-flex;align-items:center;gap:6px}
.guide-toc-ico{width:15px;height:15px;flex:0 0 auto;color:#0a7aa8}
.guide-toc a:hover,.guide-toc a:focus-visible{border-color:var(--ck-accent);color:var(--ck-accent)}
.guide-section{margin-top:clamp(32px,4vw,52px);scroll-margin-top:96px}
/* Оформление разделов (21.09.2026, 22.09 — спокойнее): значок у заголовка
   в цвете сайта, фото рядом с текстом или баннер над карточками, тонкая
   линия между разделами. Цвета литеральные, как и во всём блоке: страница
   светлая и в тёмной теме. Классы tone-1…4 остаются в разметке, но цвет
   у всех один — так блок не пестрит. */
.guide-section{--g-tone:#0a7aa8;--g-tone-bg:#e6f2f8}
.guide-section+.guide-section{border-top:1px solid #dde8ef;padding-top:clamp(28px,3.4vw,44px)}
.guide-sec-head{display:flex;align-items:center;gap:14px;margin:0 0 16px}
.guide-sec-head h2,.guide-section>h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin:0;line-height:1.2;color:#0b2740}
.guide-section>h2{margin-bottom:14px}
.guide-badge{flex:0 0 auto;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
  background:var(--g-tone-bg);color:var(--g-tone);box-shadow:inset 0 0 0 1px rgba(11,39,64,.05)}
.guide-badge .guide-ico{width:24px;height:24px}
.guide-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:clamp(24px,4vw,52px);align-items:start}
.guide-split .guide-text,.guide-split .guide-faq{max-width:none}
.guide-figure,.guide-banner{margin:0;border-radius:20px;overflow:hidden;background:var(--g-tone-bg);
  box-shadow:0 18px 40px -26px rgba(11,39,64,.45),0 0 0 1px rgba(11,39,64,.05)}
.guide-figure{aspect-ratio:4/3;position:sticky;top:96px}
.guide-banner{aspect-ratio:3/1;margin-bottom:18px}
.guide-figure img,.guide-banner img{display:block;width:100%;height:100%;object-fit:cover}
.guide-text ul,.guide-answer ul{list-style:none;padding-inline-start:0}
.guide-text li,.guide-answer li{position:relative;padding-inline-start:1.5em}
.guide-text li::before,.guide-answer li::before{content:"";position:absolute;inset-inline-start:.25em;top:.62em;width:.48em;height:.48em;border-radius:50%;
  background:var(--g-tone);box-shadow:0 0 0 3px var(--g-tone-bg)}
.guide-text h3{padding-inline-start:12px;border-inline-start:3px solid var(--g-tone)}
.city-guide a{color:var(--ck-accent)}
.guide-text{max-width:78ch;line-height:1.7;color:#2c4a5e}
.guide-text p{margin:0 0 1em}
.guide-text h3{font-size:1.08rem;margin:1.4em 0 .5em;color:#0b2740}
.guide-text ul,.guide-place ul,.guide-answer ul{margin:0 0 1em;padding-inline-start:1.2em}
.guide-text li,.guide-place li,.guide-answer li{margin:.35em 0}
.guide-text strong,.guide-place strong,.guide-answer strong{color:#0b2740}
.guide-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0}
.guide-facts>div{background:#fff;border:1px solid #dde8ef;border-radius:14px;padding:14px 16px;min-width:0;box-shadow:inset 3px 0 0 var(--g-tone)}
.guide-facts>div.wide{grid-column:1/-1}
.guide-facts dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:#5f7d90;font-weight:700;margin-bottom:4px}
.guide-facts dd{margin:0;font-weight:600;line-height:1.45;color:#0b2740;overflow-wrap:anywhere}
.guide-places{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.guide-place{background:#fff;border:1px solid #dde8ef;border-radius:16px;padding:18px 20px;min-width:0;box-shadow:inset 0 3px 0 var(--g-tone)}
.guide-place h3::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--g-tone);margin-inline-end:8px;vertical-align:.15em}
.guide-place h3{font-size:1.02rem;margin:0 0 8px;color:#0b2740;line-height:1.3}
.guide-place p{margin:0 0 .6em;color:#2c4a5e;line-height:1.6;font-size:.95rem}
.guide-place p:last-child{margin-bottom:0}
.guide-faq{max-width:860px}
/* Сами вопросы оформлены общими правилами .faq-list / .faq-item выше. */
@media (max-width:900px){.guide-split{grid-template-columns:1fr}.guide-figure{order:-1;position:static;max-width:560px}}
@media (max-width:720px){.guide-places{grid-template-columns:1fr}.guide-facts{grid-template-columns:1fr 1fr}
  .guide-banner{aspect-ratio:16/7}.guide-badge{width:40px;height:40px;border-radius:12px}.guide-badge .guide-ico{width:21px;height:21px}}
@media (max-width:440px){.guide-facts{grid-template-columns:1fr}}

/* --- Значки вместо эмодзи ------------------------------------------------
   Один линейный стиль на весь сайт (services/icons.js, как у путеводителя).
   Цвет — currentColor; там, где значок выделяет выбор, — акцент темы. */
.ck-ico{display:inline-block;width:1.15em;height:1.15em;flex:0 0 auto;vertical-align:-.22em}
/* Плашки в шапке города: белые на фото */
.hero-pills span{display:inline-flex;align-items:center;gap:8px}
.hero-pills .ck-ico{width:17px;height:17px}
/* «Без обязательств» и т. п. в левой колонке воронки */
.trust-stack div{align-items:flex-start}
.trust-stack .ck-ico{width:16px;height:16px;margin-top:1px;color:#8cebf0}
/* Карточки выбора: «Первый дом» / «Уже владею» */
.choice-card strong{display:flex;align-items:center;gap:10px}
.choice-card strong .ck-ico{width:22px;height:22px;color:var(--fb-accent-ink,#007a9f)}
/* Типы жилья: карточки шага 3 и кнопки шага 4 */
.type-card .type-icon,.property-chip .type-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:13px;
  background:#f1f6f9;color:var(--fb-accent-ink,#007a9f);font-size:0;transition:background-color .25s,color .25s}
.property-chip .type-icon{width:40px;height:40px;border-radius:12px}
.type-card .type-icon .ck-ico,.property-chip .type-icon .ck-ico{width:24px;height:24px;vertical-align:0}
.type-card.selected .type-icon,.property-chip.selected .type-icon{background:var(--fb-accent-ink,#007a9f);color:#fff}
/* Пояснения и ошибки */
.market-note{align-items:flex-start}
.market-note>.ck-ico{width:20px;height:20px;margin-top:-1px}
.privacy-note{display:flex;align-items:flex-start;gap:10px}
.privacy-note>.ck-ico{width:18px;height:18px}
/* Экран «спасибо» */
.success-icon .ck-ico{width:38px;height:38px;vertical-align:0}
/* Поле с $ слева: значок вместо символа, текст отодвинут под него */
.input-wrap .prefix{display:flex;align-items:center;left:14px;color:#78909a}
.input-wrap .prefix .ck-ico{width:18px;height:18px;vertical-align:0}
.input-wrap input.with-prefix{padding-left:42px}
/* Стрелки в кнопках и ссылках: значки вместо символов → ← */
.primary-btn .ck-ico,.secondary-btn .ck-ico{width:18px;height:18px;vertical-align:0}
.secondary-btn{display:inline-flex;align-items:center;gap:8px}
.primary-btn .ck-ico{transition:transform .25s ease}
.primary-btn:hover .ck-ico{transform:translateX(3px)}
.secondary-btn:hover .ck-ico{transform:translateX(-3px)}
.secondary-btn .ck-ico{transition:transform .25s ease}
.text-link,.areas-cta{display:inline-flex;align-items:center;gap:8px}
.text-link .ck-ico,.areas-cta .ck-ico{width:18px;height:18px;vertical-align:0;transition:transform .25s ease}
.text-link:hover .ck-ico,.areas-cta:hover .ck-ico{transform:translateX(3px)}
/* Карточка суммы: −/+ и карандаш */
.card-step .ck-ico{width:18px;height:18px;vertical-align:0}
.card-pencil .ck-ico{width:16px;height:16px;vertical-align:-.1em}
/* Стрелка на карточке города — тот же значок, что и в кнопках */
.city-card-name::after{content:"";width:18px;height:18px;flex:0 0 auto;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}

/* --- Выпадающие списки: своя стрелка, отодвинутая от края ----------------
   Системная стрелка стоит вплотную к рамке и в каждом браузере своя.
   Эта — тот же значок, что и остальные (chevron, контур 1.8). Правило с
   :focus нужно потому, что styles.css на фокусе задаёт background целиком
   и иначе стирал бы стрелку. */
select:not([multiple]):not([size]),
select:not([multiple]):not([size]):focus,
select:not([multiple]):not([size]):hover{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a7e88' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;
  background-position:right 16px center;background-size:18px 18px;
  padding-right:48px;
}
select::-ms-expand{display:none}

/* --- Числовые поля без стрелок прокрутки ---------------------------------
   Число вводится с клавиатуры (на телефоне открывается цифровая), рядом
   есть ползунки; мелкие стрелки только мешали и сдвигали текст. */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}

/* --- Заголовки блоков главной: одна шкала -------------------------------
   Было 52 / 34 / 24px, у двух блоков — другой шрифт и насыщенность.
   Теперь все h2 — шрифт заголовков, размер и начертание из Настроек →
   Text style. Настройка отдельного блока (Content → Home blocks) по-прежнему
   сильнее: её правило стоит в <style> после этого файла. */
.section-heading h2,.why-copy h2,.faq-copy h2{
  font-family:var(--fb-heading);font-size:var(--fb-h2);
  font-style:var(--fb-h2-style,normal);font-weight:var(--fb-heading-weight,600);
  line-height:1.2;letter-spacing:-.015em;text-wrap:balance;
}
.areas-copy h2{font-style:var(--fb-h2-style,normal)}
.faq-copy h2{margin-bottom:12px}
/* Заголовок шага воронки — ступенью ниже заголовка блока над ним
   (был 30px на телефоне при 26px у h2). */
.panel-head h3{font-size:calc(var(--fb-h2) * .8);line-height:1.15}
/* Ниже 1100px первый экран растёт по содержимому, и заголовок вставал
   вплотную под шапку. Отступ сверху — как снизу у подписи. */
@media(max-width:1100px){ .hero-content{padding-top:clamp(28px,6vw,48px)} }

/* --- Меню выпадающих списков (public/ck-select.js) -----------------------
   Вместо системного окна: белая карточка, мягкая тень, скругление как у
   полей; выбранный пункт — цвет акцента и галочка. Цвета литеральные: поля
   на сайте светлые и в тёмной теме. */
.ck-menu{position:fixed;z-index:1000;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;
  padding:6px;background:#fff;color:#0b2740;border:1px solid #dde8ef;border-radius:14px;
  box-shadow:0 22px 44px -14px rgba(11,39,64,.30),0 2px 6px rgba(11,39,64,.06);
  opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}
.ck-menu.is-up{transform:translateY(4px)}
.ck-menu.is-open{opacity:1;transform:none}
.ck-opt{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 12px;border-radius:10px;cursor:pointer;line-height:1.3;white-space:nowrap}
.ck-opt-text{overflow:hidden;text-overflow:ellipsis}
.ck-opt.is-active{background:#f1f6f9}
.ck-opt.is-selected{color:var(--fb-accent-ink,#0a7aa8);font-weight:600}
.ck-opt-check{flex:0 0 auto;opacity:0}
.ck-opt.is-selected .ck-opt-check{opacity:1}
.ck-opt.is-disabled{opacity:.45;cursor:default}
.ck-group{padding:8px 12px 4px;font-size:.72em;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#8aa3b4}
select.ck-open{border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.12)}
@media (prefers-reduced-motion:reduce){.ck-menu{transition:none}}

/* === Наведение: указатель и мягкий отклик у всего кликабельного ========
   (24.09.2026) Всё, по чему можно щёлкнуть, показывает руку; всё, что
   недоступно, — «запрещено». Эффекты мягкие и короткие (~0.2s): рамка
   полей светлеет к акценту, флажок получает кольцо, карточки выбора
   приподнимаются, ссылки чуть бледнеют. Проверяется test/hover.js. */
a[href],button:not(:disabled):not([aria-disabled="true"]),select:not(:disabled),summary,
[role="button"]:not([aria-disabled="true"]),[onclick],
label:has(> input[type=checkbox]),label:has(> input[type=radio]),
input[type=checkbox],input[type=radio],input[type=range],input[type=color],input[type=file],
input[type=submit],input[type=button]{cursor:pointer}
:disabled,[aria-disabled="true"]{cursor:not-allowed}

/* поля ввода и списки: рамка к акценту (на фокусе остаётся своя) */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not(.card-amount):not(:focus):hover,
textarea:not(:focus):hover,select:not(:focus):not(.ck-open):hover{border-color:#9fcddd}
textarea{transition:border-color .2s ease,box-shadow .2s ease}
/* сумма на карточке первого экрана: тонкая линия под числом */
.card-amount{transition:box-shadow .2s ease}
.card-amount:not(:focus):hover{box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--fb-cta,#ef5b34) 45%,transparent)}
/* флажки и переключатели: кольцо вокруг */
input[type=checkbox],input[type=radio]{transition:box-shadow .2s ease}
input[type=checkbox]:hover,label:hover > input[type=checkbox]{box-shadow:0 0 0 4px rgba(65,175,202,.2);border-radius:4px}
input[type=radio]:hover,label:hover > input[type=radio]{box-shadow:0 0 0 4px rgba(65,175,202,.2);border-radius:50%}
.toggle{transition:border-color .2s ease,background-color .2s ease}
.toggle:hover{border-color:#9fcddd;background-color:#fbfdfe}
/* ползунки: чуть ярче, ручка крупнее */
input[type=range]{transition:filter .2s ease}
input[type=range]:hover{filter:brightness(1.08) saturate(1.1)}
.card-range::-webkit-slider-thumb{transition:transform .2s ease}
.card-range:hover::-webkit-slider-thumb{transform:scale(1.12)}
/* воронка: вкладки шагов, карточки выбора, типы жилья */
.step-tab{transition:color .2s ease}
.step-tab:not([aria-disabled="true"]):hover{color:var(--fb-accent-ink,#007a9f);text-decoration:underline;text-underline-offset:5px}
.choice-card.selected:hover{box-shadow:0 12px 28px rgba(0,122,159,.18)}
.type-card,.property-chip{transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.type-card:hover,.property-chip:hover{border-color:#8fcadb;box-shadow:0 10px 24px rgba(0,122,159,.12);transform:translateY(-1px)}
.type-card.selected:hover,.property-chip.selected:hover{box-shadow:0 12px 28px rgba(0,122,159,.18)}
.property-chip:hover .type-icon,.type-card:hover .type-icon{background:#e3eff5}
.type-card.selected:hover .type-icon,.property-chip.selected:hover .type-icon{background:var(--fb-accent-ink,#007a9f)}
/* шапка и подвал */
.brand,.footer-links a,.lang-btn,.nav-burger{transition:opacity .2s ease,background-color .2s ease,filter .2s ease}
.brand:hover{opacity:.8}
.footer-links a:hover{opacity:1}
.lang-btn:not(.is-active):not(.active):hover{background-color:rgba(10,122,168,.1)}
.lang-btn.is-active:hover,.lang-btn.active:hover{filter:brightness(1.1)}
.nav-burger:hover{background-color:#f1f6f9}
/* ссылки в тексте (без своего оформления): чуть бледнее */
a[href]:not([class]){transition:opacity .2s ease}
a[href]:not([class]):hover{opacity:.72}
@media (hover:none){
  .type-card:hover,.property-chip:hover{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .type-card,.property-chip,.toggle,.step-tab,.card-amount{transition:none}
  .type-card:hover,.property-chip:hover{transform:none}
}

/* ---------- Шаг 3: выбранный дом, сумма кредита, взнос в % или $, срок ----------
   Карточка сверху — то, что выбрано на шаге 2 (тип, город, цена). Цена на
   этом шаге не меняется: кредит + взнос = цена. Всё включается и
   выключается в админке, Calculator → Step 3. */
.s3-pick{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;gap:14px 16px;align-items:center;
  background:linear-gradient(135deg,#f2fbfd,#e9f7fb);border:1px solid #cbeaf0;border-radius:18px;padding:14px 16px;margin:-6px 0 24px}
.s3-pick-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--fb-accent-ink,#007a9f);color:#fff}
.s3-pick-ic .ck-ico{width:24px;height:24px;vertical-align:0}
.s3-pick small{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#5f7480)}
.s3-pick-txt strong{display:block;font-size:16px;margin-top:3px;overflow-wrap:anywhere}
.s3-pick-price{text-align:end}
.s3-pick-price strong{display:block;font-size:26px;font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-top:2px;font-variant-numeric:tabular-nums}
.s3-pick-edit{border:1px solid #bfe0e9;background:#fff;color:var(--fb-accent-ink,#007a9f);border-radius:12px;padding:9px 14px;font-size:13px;font-weight:800;
  cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.s3-pick-edit:hover{background:var(--fb-accent-ink,#007a9f);border-color:var(--fb-accent-ink,#007a9f);color:#fff}
.s3-pick-edit:focus-visible{outline:3px solid rgba(0,122,159,.35);outline-offset:2px}

.s3-lab{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px}
.s3-seg{display:inline-flex;background:#eef5f7;padding:3px;border-radius:11px;gap:2px}
.s3-seg button{display:inline-grid;place-items:center;width:44px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted,#5f7480);
  cursor:pointer;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}
.s3-seg button .ck-ico{width:17px;height:17px;vertical-align:0}
.s3-seg button:hover{color:var(--fb-accent-ink,#007a9f);background:rgba(255,255,255,.6)}
.s3-seg button.on{background:#fff;color:var(--fb-accent-ink,#007a9f);box-shadow:0 2px 8px rgba(16,42,55,.12)}
.s3-seg button.on:hover{box-shadow:0 3px 12px rgba(16,42,55,.22)}
.s3-seg button:focus-visible{outline:2px solid var(--fb-accent-ink,#007a9f);outline-offset:1px}

.s3-terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.s3-term{border:1px solid var(--line,#dfeaee);background:#fff;color:var(--ink,#102a37);border-radius:14px;padding:12px 14px;font-size:14px;font-weight:700;
  cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,color .2s ease}
.s3-term b{font-size:19px;font-weight:900;margin-inline-end:2px}
.s3-term:hover{border-color:#8fcadb;box-shadow:0 8px 20px rgba(0,122,159,.10)}
.s3-term.on{border-color:var(--fb-accent-ink,#007a9f);background:#f1fbfd;color:var(--fb-accent-ink,#007a9f);box-shadow:inset 0 0 0 1px var(--fb-accent-ink,#007a9f)}
.s3-term.on:hover{box-shadow:inset 0 0 0 1px var(--fb-accent-ink,#007a9f),0 8px 20px rgba(0,122,159,.16)}
.s3-term:focus-visible{outline:3px solid rgba(0,122,159,.35);outline-offset:2px}
.range-row input[type=number][aria-invalid=true]{border-color:#e7a23b;box-shadow:0 0 0 4px rgba(231,162,59,.14)}

@media(max-width:720px){
  .s3-pick{grid-template-columns:44px minmax(0,1fr) auto;padding:12px 14px;margin-top:0}
  .s3-pick-ic{width:44px;height:44px}
  .s3-pick-txt{grid-column:2 / 4}
  .s3-pick-price{grid-column:2 / 3;grid-row:2;text-align:start}
  .s3-pick-price strong{font-size:24px}
  .s3-pick-edit{grid-column:3;grid-row:2;align-self:end}
}

/* ---------- Шаг 3: credit score range (вариант B, 16.10.2026) ----------
   Одна полоса из цветных частей; часть вместе с подписью — кнопка-радио.
   Цвета, границы и надбавки — Calculator → Credit score range. */
.cs-block{margin:0 0 26px}
.cs-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.cs-head b{font-size:13px;font-weight:800}
.cs-impact{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;padding:6px 11px;border-radius:999px;background:#f1f6f8;color:var(--ink,#102a37);white-space:nowrap;font-variant-numeric:tabular-nums}
.cs-impact i{width:8px;height:8px;border-radius:50%;display:inline-block}
.cs-impact.is-empty{background:transparent;color:var(--muted,#6a7e88);font-weight:700;border:1px dashed #cfdde3}
.cs-bar{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:4px;padding-top:30px}
.cs-tier{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:12px;border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;border-radius:10px}
.cs-seg{position:relative;display:block;height:14px;border-radius:4px;background:var(--c);opacity:.42;transition:height .25s ease,transform .25s ease,box-shadow .25s ease,opacity .2s ease}
.cs-tier:first-child .cs-seg{border-radius:999px 4px 4px 999px}
.cs-tier:last-of-type .cs-seg{border-radius:4px 999px 999px 4px}
.cs-block.is-empty .cs-seg{opacity:.78}
.cs-lbl{display:block;text-align:center;font-size:12px;line-height:1.3;color:var(--muted,#6a7e88);font-variant-numeric:tabular-nums;transition:color .2s ease}
.cs-lbl b{display:block;font-size:13px;color:var(--ink,#102a37);transition:color .2s ease}
.cs-tier:hover .cs-seg{opacity:.85;transform:translateY(-1px)}
.cs-tier:hover .cs-lbl b{color:var(--c)}
.cs-tier.on .cs-seg{opacity:1;height:22px;margin-top:-8px;transform:translateY(0);box-shadow:0 0 0 3px #fff,0 8px 18px rgba(16,42,55,.18)}
.cs-tier.on .cs-lbl,.cs-tier.on .cs-lbl b{color:var(--c)}
.cs-tier.on:hover .cs-seg{box-shadow:0 0 0 3px #fff,0 12px 24px rgba(16,42,55,.26)}
.cs-tier:focus-visible{outline:none}
.cs-tier:focus-visible .cs-seg{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--fb-accent-ink,#007a9f)}
@media(max-width:720px){
  .cs-head{flex-wrap:wrap}
  .cs-lbl{font-size:10px}
  .cs-lbl b{font-size:11px}
}
@media (prefers-reduced-motion:reduce){.cs-seg,.cs-lbl,.cs-lbl b{transition:none}}

/* ---------- Шаг 3 — вариант C (17.10.2026): три группы, итог справа ----------
   1 · Your loan (взнос, кредит, срок) · 2 · Your rate (рейтинг, ставка) ·
   3 · Monthly costs (налог, страховка, HOA в ряд). Итог — тёмная карточка
   справа, на телефоне — полоса сверху, которая остаётся на виду при
   прокрутке, с кнопкой «дальше». */
/* overflow:clip вместо hidden — чтобы итог шага 3 мог прилипать при
   прокрутке (hidden делает блок «прокручиваемым», и sticky внутри него не
   работает). Нижняя полоса кнопок на телефоне в styles.css тоже sticky, но
   из-за того же hidden никогда не прилипала — оставляем как было. */
@supports (overflow:clip){
  .app-shell,.workspace{overflow:clip}
  @media(max-width:720px){.workspace .actions{position:relative}}
}
.s3-pick{grid-template-columns:40px minmax(0,1fr) auto auto;gap:6px 14px;padding:9px 12px 9px 10px;margin:-8px 0 18px;border-radius:15px}
.s3-pick-ic{width:40px;height:40px;border-radius:12px}
.s3-pick-ic .ck-ico{width:21px;height:21px}
.s3-pick small{font-size:10px}
.s3-pick-txt strong{font-size:15px;margin-top:1px}
.s3-pick-price small{display:none}
.s3-pick-price strong{font-size:21px;margin-top:0}
.s3-pick-edit{border-color:transparent;background:transparent;padding:8px 10px}
.s3-pick-edit:hover{background:#fff;border-color:#bfe0e9;color:var(--fb-accent-ink,#007a9f)}
.s3-layout{grid-template-columns:minmax(0,1fr) 290px;gap:22px;align-items:start}
.s3-layout .calc-controls{display:block}
.s3-grp{border:1px solid var(--line,#dfe9ee);border-radius:18px;padding:14px 16px 16px;margin:0 0 12px;background:#fff}
.s3-grp:last-child{margin-bottom:0}
.s3-grp-h{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#6a7e88)}
.s3-grp-h i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:7px;background:var(--sky,#e9f8ff);color:var(--brand,#007a9f);font-size:11px;letter-spacing:0}
.s3f{display:grid;grid-template-columns:minmax(0,1fr) 136px;grid-template-areas:"lab num" "rng num" "cap cap";gap:4px 14px;align-items:center;margin:0 0 12px}
.s3f-lab{grid-area:lab;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}
.s3f-lab label{font-size:13px;font-weight:800}
.s3f-lab .s3f-cap{font-size:11.5px;font-weight:700;color:var(--muted,#6a7e88);text-align:end}
.s3f-num{grid-area:num;position:relative;display:flex;align-items:center;gap:4px;height:42px;border:1px solid #d7e4e8;background:#fbfdfe;border-radius:12px;padding:0 11px;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.s3f-num:hover{border-color:#a9cfdc}
.s3f-num:focus-within{border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.14);background:#fff}
.s3f-num input{flex:1;min-width:0;width:auto;height:100%;border:0;background:transparent;box-shadow:none;padding:0;font-size:15px;font-weight:700;line-height:1;text-align:end;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.s3f-num input:focus{box-shadow:none;background:transparent}
.s3f-num input::-webkit-inner-spin-button,.s3f-num input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.s3f-num input[aria-invalid=true]{color:#b7791f}
.s3f-num:has(input[aria-invalid=true]){border-color:#e7a23b;box-shadow:0 0 0 4px rgba(231,162,59,.14)}
.s3f-pre,.s3f-suf{color:var(--muted,#6a7e88);font-size:13px;font-weight:700;line-height:1;white-space:nowrap}
.s3f-pre .ck-ico{width:15px;height:15px;vertical-align:-2px}
.s3f input[type=range]{grid-area:rng;-webkit-appearance:none;appearance:none;width:100%;height:22px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;cursor:pointer}
.s3f input[type=range]:focus{box-shadow:none;outline:none}
.s3f input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--brand,#007a9f) 0 var(--p,50%),#e3ecf0 var(--p,50%) 100%)}
.s3f input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;background:#fff;border:4px solid var(--brand,#007a9f);box-shadow:0 2px 6px rgba(16,42,55,.2);transition:transform .15s ease}
.s3f input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.12)}
.s3f input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(0,122,159,.25)}
.s3f input[type=range]::-moz-range-track{height:6px;border-radius:99px;background:#e3ecf0}
.s3f input[type=range]::-moz-range-progress{height:6px;border-radius:99px;background:var(--brand,#007a9f)}
.s3f input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:4px solid var(--brand,#007a9f)}
.s3f>.s3f-cap{grid-area:cap;font-size:11.5px;color:var(--muted,#6a7e88);font-variant-numeric:tabular-nums}
.s3f>.s3f-cap:empty{display:none}
.s3f--stack{grid-template-columns:minmax(0,1fr);grid-template-areas:"lab" "num" "rng";margin:0}
.s3f--stack .s3f-lab{min-height:0}
.s3f-term{margin:2px 0 0}
.s3f-term .s3f-lab{display:none}
.s3f-term .s3-term{padding:9px 14px}
.s3-costs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.s3-grp .cs-block{margin:0 0 10px}
/* Кольца над выбранной частью больше нет (17.10.2026): выбор видно по
   приподнятой яркой части с белой обводкой и цветной подписи. */
.s3-grp .cs-head{margin-bottom:12px}
.s3-grp .cs-bar{padding-top:4px}
.s3-sum{position:sticky;top:96px;padding:20px}
.s3-sum h4{margin:0;font-size:13px;font-weight:700;color:#bed0d6}
.s3-total{margin:4px 0 12px;font-variant-numeric:tabular-nums}
.s3-total strong{font-size:36px;font-weight:900;letter-spacing:-.03em}
.s3-total small{font-size:14px;font-weight:600;color:#bed0d6}
.s3-stack{display:flex;gap:2px;height:10px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.12);margin:0 0 14px}
.s3-stack i{display:block;height:100%;transition:width .3s ease}
.s3-stack [data-w=pi],.s3-dot--pi{background:#19b9b3}
.s3-stack [data-w=tax],.s3-dot--tax{background:#ffd166}
.s3-stack [data-w=insurance],.s3-dot--insurance{background:#67b7dc}
.s3-stack [data-w=hoa],.s3-dot--hoa{background:#a4c3cf}
.s3-sum .breakdown{font-size:13px;gap:8px}
.s3-sum .breakdown div{align-items:center;justify-content:flex-start;gap:8px}
.s3-sum .breakdown span{flex:1}
.s3-sum .breakdown b{font-variant-numeric:tabular-nums}
.s3-dot{width:8px;height:8px;border-radius:3px;flex:0 0 auto}
.s3-sum .rate-benchmark{color:#8fb0bb;margin:10px 0 0}
@media(max-width:980px){
  .s3-layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px}
}
@media(max-width:720px){
  .s3-pick{grid-template-columns:36px minmax(0,1fr) auto;gap:2px 10px;margin-top:0}
  .s3-pick-ic{width:36px;height:36px;grid-row:1 / 3}
  .s3-pick-txt{grid-column:2 / 4}
  .s3-pick-price{grid-column:2;grid-row:2;text-align:start}
  .s3-pick-price strong{font-size:18px}
  .s3-pick-edit{grid-column:3;grid-row:2;align-self:center}
  .s3-layout{grid-template-columns:1fr}
  .s3-sum{order:-1;top:76px;z-index:5;padding:12px 14px;border-radius:16px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"h" "tot" "bar";gap:2px 12px;align-items:center}
  .s3-sum h4{grid-area:h;font-size:11px}
  .s3-sum h4{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .s3-total{grid-area:tot;margin:0;white-space:nowrap}
  .s3-total strong{font-size:24px}
  .s3-total small{font-size:12px}
  .s3-stack{grid-area:bar;margin:8px 0 0;height:8px}
  .s3-sum .breakdown,.s3-sum .rate-benchmark{display:none}
  .s3-grp{padding:12px 12px 14px}
  .s3f,.s3f--stack{grid-template-columns:minmax(0,1fr) 120px;grid-template-areas:"lab num" "rng num" "cap cap";margin:0 0 10px}
  .s3-costs{grid-template-columns:1fr;gap:0}
  /* Поле, в которое перешли (Tab, «следующее» на клавиатуре телефона),
     не должно оказаться под прилипшей полосой итога. */
  .s3-layout .calc-controls input,.s3-layout .calc-controls button{scroll-margin-top:190px;scroll-margin-bottom:24px}
  .s3f-lab{flex-wrap:wrap;gap:0 8px}
  .s3f-lab .s3f-cap{flex-basis:100%;text-align:start}
}
@media (prefers-reduced-motion:reduce){.s3-stack i{transition:none}}

/* ---------- Шаг 3 — чистовая шлифовка (17.10.2026) ----------
   Меньше рамок в рамках: группы — мягкие подложки без обводки, поля и
   кнопки на них белые. Одна сетка отступов: 8 / 12 / 16 / 20. */
.s3-grp{border:0;background:#f5f9fb;padding:16px 18px 18px;border-radius:20px}
.s3-grp-h{margin-bottom:14px}
.s3-grp-h i{background:#fff;box-shadow:0 1px 2px rgba(16,42,55,.08)}
.s3f-num{background:#fff;border-color:#dbe6eb}
.s3f-num:focus-within{background:#fff}
.s3f{margin-bottom:14px}
.s3f-term{margin-top:4px}
.s3-term{background:#fff;border-color:#dbe6eb}
.s3-grp .s3-seg{background:#e8f0f3}
.s3-grp .cs-impact{background:#fff;box-shadow:0 1px 2px rgba(16,42,55,.06)}
.s3-grp .cs-impact.is-empty{background:transparent;box-shadow:none}
.s3-grp .cs-seg{height:10px}
.s3-grp .cs-tier.on .cs-seg{height:16px;margin:-3px 0;box-shadow:0 0 0 3px #fff,0 6px 14px rgba(16,42,55,.16)}
.s3-grp .cs-tier.on:hover .cs-seg{box-shadow:0 0 0 3px #fff,0 9px 20px rgba(16,42,55,.24)}
/* Выбранное — цветом и приподнятой частью, а не жирностью: жирное слово
   шире и могло переносить строку (17.10.2026). */
.s3-grp .cs-lbl b,.s3-grp .cs-tier.on .cs-lbl b{font-weight:800}
.s3-grp .cs-tier{gap:10px}
.s3-costs{gap:14px}
.s3-pick{background:#fff;border-color:#e2edf1;box-shadow:0 1px 2px rgba(16,42,55,.04)}
.s3-sum{border-radius:22px;box-shadow:0 18px 40px rgba(13,52,67,.18)}
@media(max-width:720px){
  .s3-grp{padding:14px 14px 16px;border-radius:18px}
  .s3-grp .cs-seg{height:8px}
  .s3-grp .cs-tier.on .cs-seg{height:12px;margin:-2px 0}
}
.s3-grp>:last-child,.s3-grp .s3f:last-child{margin-bottom:0}
/* Название может уйти на две строки («Impuesto inmobiliario / año») — поля
   и ползунки всё равно на одной линии: ряд выравнивается по низу. */
.s3-costs{align-items:end}
.s3-costs .s3f--stack{margin:0;align-content:start}
/* Полоса «Back / Use this scenario» — обычная, как на других шагах (17.10.2026). */
@media(max-width:720px){
  .s3-grp .cs-lbl b{white-space:nowrap;letter-spacing:-.01em}
  .s3-grp .cs-tier.on .cs-lbl b{font-weight:800}
  .s3-costs{gap:0}
  .s3-costs .s3f--stack{margin-bottom:14px}
  .s3-costs .s3f--stack:last-child{margin-bottom:0}
}

/* ---------- Шаг 3: ничего не сдвигается при выборе рейтинга (17.10.2026) ----------
   Значок справа одной высоты в обоих видах (рамка есть всегда, у полного —
   прозрачная), подпись под ставкой занимает место всегда. */
.cs-impact{border:1px solid transparent;min-height:30px;box-sizing:border-box}
.s3f[data-credit-cap]>.s3f-cap{min-height:1.45em;line-height:1.45}
@media(max-width:720px){.s3f[data-credit-cap]>.s3f-cap{min-height:2.9em}}
@media(max-width:720px){
  /* На телефоне значок «Rate …» всегда своей строкой под названием: иначе
     длинный («Rate 6.50% · Best rate», русский, испанский) переносился
     только у части диапазонов, и всё ниже прыгало. */
  .s3-grp .cs-head{flex-wrap:wrap;gap:6px 12px}
  .s3-grp .cs-head>b{flex-basis:100%}
}

/* ---------- Шаг 3: программа кредита — Conventional / FHA (вариант B, 17.10.2026) ----------
   Две компактные карточки над полями: название, сумма в месяц, разница с
   выбранной и три условия меткой в строку. Цифры, которые меняет FHA, —
   с меткой FHA; при переключении на секунду подсвечиваются. */
.lp-cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:-6px 0 16px}
.lp-card{display:grid;gap:9px;text-align:start;border:1px solid #dbe6eb;background:#fff;border-radius:16px;padding:12px 14px;font:inherit;color:var(--ink,#102a37);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.lp-card:hover{border-color:#8fcadb;box-shadow:0 8px 20px rgba(0,122,159,.10)}
.lp-card.on{border-color:var(--fb-accent-ink,#ef5b34);box-shadow:inset 0 0 0 1px var(--fb-accent-ink,#ef5b34);background:#fffaf8}
.lp-card.on:hover{box-shadow:inset 0 0 0 1px var(--fb-accent-ink,#ef5b34),0 10px 24px rgba(239,91,52,.12)}
.lp-card:focus-visible{outline:3px solid rgba(0,122,159,.35);outline-offset:2px}
.lp-top{display:flex;align-items:center;gap:10px;min-width:0}
.lp-rad{width:18px;height:18px;border-radius:50%;border:2px solid #b9cdd5;display:grid;place-items:center;flex:0 0 auto;transition:border-color .2s ease}
.lp-card.on .lp-rad{border-color:var(--fb-accent-ink,#ef5b34)}
.lp-card.on .lp-rad::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--fb-accent-ink,#ef5b34)}
.lp-nm{display:grid;min-width:0;flex:1}
.lp-nm b{font-size:15px;font-weight:900;line-height:1.2}
.lp-nm small{font-size:11.5px;color:var(--muted,#6a7e88);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-pay{display:flex;align-items:baseline;gap:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.lp-pay strong{font-size:20px;font-weight:900;letter-spacing:-.02em}
.lp-pay small{font-size:12px;color:var(--muted,#6a7e88)}
.lp-bot{display:flex;align-items:center;gap:8px;padding-inline-start:28px;min-width:0}
.lp-facts{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted,#6a7e88);flex:1;min-width:0}
.lp-facts b{color:var(--ink,#102a37);font-variant-numeric:tabular-nums}
.lp-dl{font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px;background:#eef5f7;color:#5f7480;white-space:nowrap;font-variant-numeric:tabular-nums}
.lp-dl.is-sel{background:#fde8df;color:#b4441e}
.lp-dl.is-up{background:#fde8df;color:#b4441e}
.lp-dl.is-down{background:#e3f5ec;color:#1b7a52}
.lp-tag{display:inline-flex;align-items:center;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#b4441e;background:#fde8df;border-radius:6px;padding:2px 6px;line-height:1.3;vertical-align:1px}
.s3-sum .lp-tag{background:rgba(242,158,124,.22);color:#ffc4ab}
.lp-extra{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:12px;color:#7a4a35;background:#fff4ee;border:1px dashed #f4c3ae;border-radius:10px;padding:7px 10px;margin:0 0 12px;font-variant-numeric:tabular-nums}
.lp-extra[hidden]{display:none}
.s3-dot--mip,.s3-stack [data-w=mip]{background:#f29e7c}
.s3-sum .lp-flash{animation:lpFlashD 1.4s ease;border-radius:8px}
@keyframes lpFlashD{0%,35%{background-color:rgba(255,255,255,.12);box-shadow:0 0 0 6px rgba(255,255,255,.12)}100%{box-shadow:0 0 0 6px transparent}}
@media (prefers-reduced-motion:reduce){.lp-flash,.s3-sum .lp-flash{animation:none}}

/* Взнос и кредит — рядом, в две колонки */
.s3-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 12px}
.s3-pair .s3f--stack{grid-template-areas:"lab" "num" "rng" "cap";margin:0;align-content:start}
.s3-pair .s3f-lab{min-height:34px}
.s3-pair .s3f>.s3f-cap{min-height:1.4em}
/* «Назад» на компьютере — в итоге, под главной кнопкой */
@media(max-width:980px){
  .s3-pair{grid-template-columns:1fr;gap:12px}
}
@media(max-width:720px){
  .lp-cmp{gap:8px;margin-top:0}
  .lp-card{padding:10px 11px;gap:6px}
  .lp-top{flex-wrap:wrap;gap:4px 8px}
  .lp-nm small{display:none}
  .lp-nm b{font-size:14px}
  .lp-pay{flex-basis:100%;padding-inline-start:26px}
  .lp-pay strong{font-size:18px}
  .lp-bot{flex-direction:column;align-items:flex-start;padding-inline-start:26px;gap:6px}
  .lp-facts{flex-direction:column;gap:2px;font-size:11px}
}
@media(max-width:720px){
  /* На телефоне взнос и кредит — друг под другом, в привычной строке
     «название и ползунок слева, число справа». */
  .s3-pair{gap:10px}
  .s3-pair .s3f--stack{grid-template-columns:minmax(0,1fr) 120px;grid-template-areas:"lab num" "rng num" "cap cap"}
  .s3-pair .s3f-lab{min-height:0}
}

/* ---------- Шаг 3 — ничего не прыгает (17.10.2026) ----------
   Высота строк не зависит от чисел: всё, где есть меняющееся число, стоит
   в неразрывных частях с постоянным числом строк. Постоянный текст
   (названия) может переноситься — он не меняется при движении ползунка.
   Узкие места переходят на раскладку «в столбик» по ширине самого блока
   (container queries), а не экрана: так одинаково на всех языках. */
/* Взнос и кредит: подпись — под ползунком, одной строкой (полный текст —
   во всплывающей подсказке); название на компьютере — одной строкой, чтобы
   поля двух колонок стояли ровно. */
.s3-pair .s3f-lab{flex-wrap:nowrap;min-height:34px}
.s3-pair .s3f-lab label{min-width:0}
.s3-pair .s3f>.s3f-cap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.45em}
.s3-pair .s3-seg{flex:0 0 auto}
/* Две колонки выровнены по строкам (subgrid): если длинное название
   («Первоначальный взнос») займёт две строки, поле рядом опустится вместе
   с ним — поля и ползунки всегда на одном уровне. */
@container (min-width:401px){
  .s3-pair{grid-template-rows:repeat(4,auto);row-gap:4px}
  .s3-pair>.s3f--stack{grid-row:span 4;grid-template-rows:subgrid}
}
@media(max-width:720px){
  .s3-pair .s3f-lab{flex-wrap:wrap;min-height:0}
  .s3-pair .s3f-lab label{white-space:normal}
  /* Расходы на телефоне: поле шире — «$ 1,700 / год» целиком. */
  .s3-costs .s3f--stack{grid-template-columns:minmax(0,1fr) 150px}
}
/* Строка итога «Кредит … · Взнос …» убрана (22.10.2026). */
.rc{white-space:nowrap}
/* Строки итога: у суммы постоянная ширина, поэтому перенос названия
   («Страховка ипотеки FHA») не зависит от того, сколько в ней цифр. */
.s3-sum .breakdown>div{min-width:0}
.s3-sum .breakdown>div>span:not(.s3-dot){min-width:0}
.s3-sum .breakdown>div>b{flex:0 0 auto;min-width:4.8em;text-align:end}
/* Строка FHA под кредитом: две части, в узком блоке — друг под другом. */
.lp-extra{container-type:inline-size}
.lp-ex{min-width:0;flex:1}
@container (max-width:380px){
  .lp-ex .rc{display:block}
  .lp-ex .rc-sp{display:none}
}
/* Карточки программ: условия — в две строки на широкой карточке, в столбик
   на узкой; на совсем узкой число стоит под названием. */
.lp-card{container-type:inline-size}
.lp-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:3px 12px}
.lp-facts>span{white-space:nowrap}
.lp-facts>span:nth-child(3){grid-column:1/-1}
.lf-v{white-space:nowrap}
/* Сумма и разница — столбиком справа вверху. */
.lp-top{align-items:flex-start}
.lp-rad{margin-top:2px}
.lp-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:0 0 auto}
@media(max-width:720px){
  .lp-right{flex-basis:100%;align-items:flex-start;padding-inline-start:26px;gap:4px}
  .lp-pay{padding-inline-start:0;flex-basis:auto}
}
@container (max-width:150px){
  .lp-top{gap:6px}
  .lp-nm b{font-size:12.5px;letter-spacing:-.015em}
  .lp-pay strong{font-size:16px}
  .lp-pay small{font-size:11px}
}
@container (max-width:340px){
  .lp-bot{flex-direction:column;align-items:flex-start;gap:6px}
  .lp-facts{grid-template-columns:minmax(0,1fr);gap:2px}
  .lp-facts>span:nth-child(3){grid-column:auto}
}
@container (max-width:260px){
  .lp-facts{gap:4px}
  .lp-facts>span{white-space:normal}
  .lp-facts .lf-k,.lp-facts .lf-v{display:block}
}
/* Группы шага: в узкой группе расходы — строками, как на телефоне;
   подписи шкалы рейтинга — мельче, название может занять две строки (место
   под них есть всегда), выбранное — того же веса, чтобы не перестраивалось. */
.s3-grp{container-type:inline-size}
@container (max-width:400px){
  .s3f[data-credit-cap]>.s3f-cap{min-height:2.9em}
}
/* Взнос и кредит рядом — только если обоим хватает места. */
@container (max-width:400px){
  .s3-pair{grid-template-columns:1fr;gap:12px}
}
@container (max-width:420px){
  .s3-costs{grid-template-columns:1fr;gap:0}
  .s3-costs .s3f--stack{grid-template-columns:minmax(0,1fr) 150px;grid-template-areas:"lab num" "rng num";margin:0 0 12px}
  .s3-costs .s3f--stack:last-child{margin-bottom:0}
  .s3-grp .cs-head{flex-wrap:wrap;gap:6px 12px}
  .s3-grp .cs-head>b{flex-basis:100%}
  .s3-grp .cs-tier{gap:8px}
  .cs-lbl{font-size:10px;letter-spacing:-.01em}
  .cs-lbl b,.s3-grp .cs-lbl b,.s3-grp .cs-tier.on .cs-lbl b{font-size:10.5px;font-weight:800;white-space:normal;line-height:1.2;min-height:2.4em;display:flex;align-items:flex-end;justify-content:center;letter-spacing:-.02em;overflow-wrap:normal}
}
@container (max-width:330px){
  .cs-lbl b,.s3-grp .cs-lbl b,.s3-grp .cs-tier.on .cs-lbl b{font-size:10px;letter-spacing:-.03em}
}

/* Узкое окно компьютера (981–1180): слева остаётся колонка «Simulator»,
   и полям шага 3 с итогом сбоку оставалось ~280 px — подписи шкалы
   налезали, названия обрезались. Здесь итог — полоса сверху, как на
   планшете и телефоне, а поля получают всю ширину (~560 px). */
@media(min-width:981px) and (max-width:1180px){
  .s3-layout{grid-template-columns:1fr}
  .s3-sum{order:-1;top:96px;z-index:5;padding:12px 16px;border-radius:18px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"h" "tot" "bar";gap:2px 16px;align-items:center}
  .s3-sum h4{grid-area:h;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .s3-total{grid-area:tot;margin:0;white-space:nowrap}
  .s3-total strong{font-size:28px}
  .s3-stack{grid-area:bar;margin:10px 0 0;height:8px}
  .s3-sum .breakdown,.s3-sum .rate-benchmark{display:none}
  .s3-layout .calc-controls input,.s3-layout .calc-controls button{scroll-margin-top:230px;scroll-margin-bottom:24px}
}
/* Если одно название шкалы в две строки («Очень хороший»), диапазоны под
   всеми частями всё равно стоят в одну линию. */
.s3-grp .cs-tier{align-self:stretch}
.s3-grp .cs-lbl{flex:1;display:flex;flex-direction:column;justify-content:flex-end}

/* ---------- Шкала рейтинга — сплошная линия с кружком (вариант A, 17.10.2026) ----------
   Разделы встык, одна тонкая линия со скруглёнными концами. Выбранный —
   под кружком-пикером; при выборе другого кружок переезжает к нему. */
.s3-grp .cs-bar{gap:0;position:relative}
.s3-grp .cs-tier .cs-seg,.s3-grp .cs-tier.on .cs-seg,.s3-grp .cs-tier:hover .cs-seg,.s3-grp .cs-tier.on:hover .cs-seg,
.s3-grp .cs-block.is-empty .cs-seg{height:8px;margin:0;border-radius:0;opacity:1;transform:none;box-shadow:none}
.s3-grp .cs-tier:first-child .cs-seg{border-radius:999px 0 0 999px}
.s3-grp .cs-tier:last-of-type .cs-seg{border-radius:0 999px 999px 0}
.s3-grp .cs-tier:hover .cs-seg{filter:brightness(1.06)}
.s3-grp .cs-tier:focus-visible .cs-seg{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--fb-accent-ink,#007a9f)}
.s3-grp .cs-tier.on:focus-visible .cs-seg{box-shadow:none}
/* Подсказка при наведении на другой раздел — маленький полупрозрачный кружок. */
.s3-grp .cs-seg::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;box-sizing:border-box;border-radius:50%;
  background:#fff;border:2px solid var(--c);transform:translate(-50%,-50%) scale(.4);opacity:0;transition:transform .2s ease,opacity .2s ease;pointer-events:none}
@media (hover:hover){.s3-grp .cs-tier:not(.on):hover .cs-seg::after{transform:translate(-50%,-50%) scale(1);opacity:.75}}
/* Кружок-пикер. Центр — на середине выбранного раздела и на оси линии
   (у .cs-bar внутри группы отступ сверху 4px, линия 8px). */
.cs-knob{position:absolute;top:8px;left:calc((var(--i,0) + .5) / var(--n,5) * 100%);width:18px;height:18px;box-sizing:border-box;
  border-radius:50%;background:#fff;border:3px solid var(--c,#007a9f);pointer-events:none;
  box-shadow:0 1px 2px rgba(16,42,55,.18),0 3px 8px rgba(16,42,55,.16);transform:translate(-50%,-50%);
  transition:left .38s cubic-bezier(.4,0,.2,1),border-color .38s ease}
.s3-grp .cs-tier.on:focus-visible~.cs-knob{box-shadow:0 0 0 3px rgba(0,122,159,.28),0 3px 8px rgba(16,42,55,.16)}
.cs-knob--pop{animation:csKnobPop .32s cubic-bezier(.3,1.4,.5,1)}
@keyframes csKnobPop{from{transform:translate(-50%,-50%) scale(0);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.cs-knob{transition:none}.cs-knob--pop{animation:none}.s3-grp .cs-seg::after{transition:none}}

/* ---------- Ползунки — тот же элегантный кружок (17.10.2026) ----------
   18px, белый, обводка 3px цвета ползунка, мягкая тень — как пикер шкалы
   рейтинга. Карточка суммы на главной — оранжевый, шаг 3 — фирменный синий. */
.card-range::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6px;box-sizing:border-box;border:3px solid var(--fb-cta,#ef5b34);
  box-shadow:0 1px 2px rgba(16,42,55,.18),0 3px 8px rgba(16,42,55,.16)}
.card-range::-moz-range-thumb{width:18px;height:18px;box-sizing:border-box;border:3px solid var(--fb-cta,#ef5b34);
  box-shadow:0 1px 2px rgba(16,42,55,.18),0 3px 8px rgba(16,42,55,.16)}
.card-range:hover::-webkit-slider-thumb{transform:scale(1.1)}
.s3f input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6px;box-sizing:border-box;border:3px solid var(--brand,#007a9f);
  box-shadow:0 1px 2px rgba(16,42,55,.18),0 3px 8px rgba(16,42,55,.16);cursor:grab}
.s3f input[type=range]::-moz-range-thumb{width:18px;height:18px;box-sizing:border-box;border:3px solid var(--brand,#007a9f);
  box-shadow:0 1px 2px rgba(16,42,55,.18),0 3px 8px rgba(16,42,55,.16);cursor:grab}
.s3f input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.1)}
.s3f input[type=range]:active::-webkit-slider-thumb{cursor:grabbing}
.s3f input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(0,122,159,.25),0 3px 8px rgba(16,42,55,.16)}
.card-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(239,91,52,.22),0 3px 8px rgba(16,42,55,.16)}

/* ---------- Карточка суммы: шкала $3,000 — $25,000 (17.10.2026) ----------
   Ползунок по высоте равен кружку (18px): раньше поле было ниже кружка, и
   кружок вылезал вниз прямо на подписи. Подписи — темнее и плотнее. */
.hero-card[data-amount="slider"] .card-range,
.hero-card[data-amount="well"] .card-range{height:18px;margin:14px 0 10px}
.hero-card[data-amount="slider"] .card-scale,
.hero-card[data-amount="well"] .card-scale{
  font-size:13px;font-weight:700;color:#4f6470;letter-spacing:.01em;font-variant-numeric:tabular-nums;line-height:1.2;margin-bottom:14px}

/* ---------- Отметки-карточки — единый вид (18.10.2026) ----------
   «55+» на шаге 4 и согласие на шаге 5 выглядят одинаково: карточка во всю
   ширину, галочка слева, текст сразу за ней (в несколько строк — ровно по
   первой). Наведение — рамка, отмеченная — голубая карточка, фокус с
   клавиатуры — кольцо вокруг карточки. У самой галочки нет кольца-фона. */
.toggle.check-card{display:flex;align-items:flex-start;justify-content:flex-start;gap:12px;margin:0;padding:16px 18px;
  border:1px solid var(--line,#dbe6eb);border-radius:14px;background:#fff;cursor:pointer;
  font-size:15px;font-weight:600;line-height:1.45;color:var(--ink,#102a37);text-align:start}
.toggle.check-card>span{flex:1;min-width:0}
.toggle.check-card input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;padding:0;
  accent-color:var(--brand,#007a9f);cursor:pointer;box-shadow:none;background:transparent}
.toggle.check-card:hover>input[type=checkbox],.toggle.check-card input[type=checkbox]:hover{box-shadow:none}
.toggle.check-card:hover{border-color:#9fcddd;background-color:#fbfdfe}
.toggle.check-card:has(input:checked){border-color:#35aac6;background:#f1fcff}
.toggle.check-card:has(input:focus-visible){box-shadow:0 0 0 4px rgba(0,122,159,.18)}
.toggle.consent.check-card{margin:18px 0 4px}

/* --- step 4: several cities / types, max HOA (19.10.2026) --------------- */
.label-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:20px}
.field .field-label{font-size:13px;font-weight:800}
.pick-hint{font-size:12px;font-weight:500;color:#78909a}
/* Отметки шага 4 (19.10.2026, вариант 2): круглая галочка, выбранное —
   светло-бирюзовый фон и двойная бирюзовая рамка (inset — без сдвига). */
.city-grid{display:flex;flex-wrap:wrap;gap:10px}
.city-chip{display:inline-flex;align-items:center;gap:10px;min-height:46px;border:1px solid var(--line);background:#fff;color:var(--ink);
  border-radius:999px;padding:0 20px 0 12px;font:inherit;font-weight:650;font-size:15px;letter-spacing:-.005em;cursor:pointer;
  transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,color .2s ease}
.city-chip:hover{border-color:#9fcddd;background:#fbfdfe}
.city-chip.selected,.pref-types .property-chip.selected{border-color:#1597b5;background:#effafd;box-shadow:inset 0 0 0 1px #1597b5}
.city-chip.selected{color:#0b4f63}
.city-chip.selected:hover{background:#e2f4f9;box-shadow:inset 0 0 0 1px #1597b5,0 6px 16px rgba(0,122,159,.10)}
.city-chip:focus-visible,.pref-types .property-chip:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.city-chip.selected:focus-visible,.pref-types .property-chip.selected:focus-visible{box-shadow:inset 0 0 0 1px #1597b5,0 0 0 4px rgba(0,122,159,.22)}
.pick-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;
  border-radius:50%;border:1.5px solid #c3d5dc;background:#fff;color:#fff;
  transition:background-color .18s ease,border-color .18s ease}
.pick-check .ck-ico{width:13px;height:13px;vertical-align:0;stroke-width:3;opacity:0;transform:scale(.4);transition:opacity .18s ease,transform .18s ease}
.selected>.pick-check{background:#0e8fb0;border-color:#0e8fb0}
.selected>.pick-check .ck-ico{opacity:1;transform:none}
.city-chip:hover:not(.selected)>.pick-check,.pref-types .property-chip:hover:not(.selected)>.pick-check{border-color:#8fc3d3}
/* Типы — плитка: значок сверху, название под ним, отметка в углу */
.pref-types{gap:12px}
.pref-types .property-chip{position:relative;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:12px;
  min-height:112px;padding:16px 18px;border-radius:18px;transform:none}
.pref-types .property-chip:hover{transform:none;box-shadow:0 8px 22px rgba(0,122,159,.08);border-color:#9fcddd}
.pref-types .property-chip.selected:hover{box-shadow:inset 0 0 0 1px #1597b5,0 8px 22px rgba(0,122,159,.10)}
.pref-types .property-chip .type-icon{width:42px;height:42px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center}
.pref-types .property-chip strong{margin:0;font-size:15.5px;line-height:1.25;font-weight:700;padding-inline-end:26px}
.pref-types .property-chip>.pick-check{position:absolute;top:14px;inset-inline-end:14px}
@media (max-width:720px){
  .pref-types{grid-template-columns:1fr}
  .pref-types .property-chip{flex-direction:row;align-items:center;min-height:64px;padding:10px 14px}
  .pref-types .property-chip>.pick-check{top:50%;margin-top:-11px}
}
html[dir=rtl] .input-wrap .suffix{right:auto;left:14px}
html[dir=rtl] .input-wrap input.with-suffix{padding-right:42px;padding-left:48px}
.hoa-max-field input::placeholder{color:#9aaab2;font-weight:500}
/* info «i» + подсказка */
.info-tip{position:static;display:inline-flex}
.hoa-max-field{position:relative}
.info-tip-btn{width:18px;height:18px;padding:0;border-radius:50%;border:1.5px solid #8aa3ad;background:#fff;color:#55707b;
  font:700 11px/1 Georgia,'Times New Roman',serif;font-style:italic;display:inline-flex;align-items:center;justify-content:center;cursor:help}
.info-tip-btn:hover,.info-tip.open .info-tip-btn{border-color:var(--fb-accent-ink,#007a9f);color:var(--fb-accent-ink,#007a9f)}
.info-tip-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,159,.25)}
.info-tip-bubble{position:absolute;z-index:20;bottom:calc(100% + 8px);inset-inline-start:0;width:min(340px,100%);
  background:#102a37;color:#fff;font-size:13px;font-weight:500;line-height:1.45;padding:10px 12px;border-radius:10px;
  box-shadow:0 12px 30px rgba(16,42,55,.25);opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .15s ease,transform .15s ease,visibility 0s linear .15s;pointer-events:none}
.info-tip:hover .info-tip-bubble,.info-tip-btn:focus-visible+.info-tip-bubble,.info-tip.open .info-tip-bubble{
  opacity:1;visibility:visible;transform:none;transition:opacity .15s ease,transform .15s ease}
.info-tip.closed .info-tip-bubble{opacity:0;visibility:hidden;transform:translateY(4px)}
@media (max-width:720px){ .hoa-max-spacer{display:none} }
@media (prefers-reduced-motion:reduce){ .city-chip,.pick-check,.pick-check .ck-ico,.info-tip-bubble{transition:none} }

/* --- step 5: «Your home profile», v3 (19.10.2026) ----------------------
   Без фото и цены расчёта: сверху диапазон цены, затем строки «города / типы»,
   внизу полоса характеристик. */
.summary-banner.profile-card{display:block;position:relative;overflow:hidden;padding:22px 24px 20px;margin:0 0 30px;border:1px solid #dcebf0;border-radius:22px;
  background:radial-gradient(120% 140% at 100% 0%,#eaf7fb 0%,rgba(234,247,251,0) 55%),#fff;box-shadow:0 16px 36px rgba(16,42,55,.06)}
.summary-banner.profile-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,#0b6f92,#0f9cad 60%,#14b8b1)}
.pc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 18px;flex-wrap:wrap}
.pc-range{display:flex;flex-direction:column;gap:4px;min-width:0}
.pc-k{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#0e8fb0}
.summary-banner .pc-range-v{display:block;font-size:30px;line-height:1.1;font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.pc-top-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pc-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px 5px 9px;border-radius:999px;
  background:#e9f7f1;border:1px solid #cdeadc;color:#0d6b52;font-size:13px;font-weight:700}
.pc-badge .ck-ico{width:15px;height:15px;stroke-width:2.6}
.pc-edit{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);
  border-radius:999px;padding:7px 14px 7px 11px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;
  transition:border-color .2s ease,color .2s ease,background-color .2s ease}
.pc-edit .ck-ico{width:15px;height:15px}
.pc-edit:hover{border-color:#9fcddd;color:#007a9f;background:#f7fcfd}
.pc-edit:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.pc-rows{margin:20px 0 0;padding:0}
.pc-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center;padding:14px 0;border-top:1px solid #e8f0f3}
.pc-row dt{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7d929b}
.pc-row dd{margin:0}
.pc-tags{display:flex;flex-wrap:wrap;gap:7px}
.pc-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#eaf6fa;border:1px solid #d3ebf2;
  color:#0b4f63;font-size:14px;font-weight:650;line-height:1.2}
.pc-tag-type{background:#fff;border-color:#e2ecf0;color:var(--ink)}
.pc-tag-ic{display:inline-flex;color:#e8603c}
.pc-tag-ic .ck-ico{width:16px;height:16px}
.pc-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:6px 0 0;padding:0;border-radius:16px;background:#f5fafb;border:1px solid #e6f0f3}
.pc-cell{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:3px;padding:14px 16px;min-width:0}
.pc-cell+.pc-cell{border-inline-start:1px solid #e3edf1}
.pc-cell dd{margin:0;font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-cell dt{font-size:11.5px;font-weight:600;color:#7d929b}
.pc-unit{font-size:.72em;font-weight:600;color:#82979f;letter-spacing:0}
@media (max-width:720px){
  .summary-banner.profile-card{padding:18px 16px 16px;border-radius:18px}
  .summary-banner .pc-range-v{font-size:24px}
  .pc-top{align-items:center;padding-inline-end:44px}
  .pc-edit{position:absolute;top:18px;inset-inline-end:14px;padding:8px}
  .pc-edit span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .pc-row{grid-template-columns:1fr;gap:8px;padding:12px 0}
  .pc-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pc-cell{padding:12px 14px}
  .pc-cell+.pc-cell{border-inline-start:0}
  .pc-cell:nth-child(even){border-inline-start:1px solid #e3edf1}
  .pc-cell:nth-child(n+3){border-top:1px solid #e3edf1}
}
@media (prefers-reduced-motion:reduce){ .pc-edit{transition:none} }

/* --- step 4, variant C (19.10.2026): price on top, cards, steppers ------- */
.price-hero{border-radius:22px;padding:16px 22px 12px;margin:0 0 14px;color:#fff;
  background:linear-gradient(120deg,#0b6f92 0%,#0f9cad 60%,#14b8b1 100%);box-shadow:0 14px 32px rgba(0,122,159,.18)}
.ph-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px 16px;flex-wrap:wrap}
.ph-label{font-size:13px;font-weight:700;letter-spacing:.02em;opacity:.92}
.ph-hint{font-size:12.5px;opacity:.82}
.ph-dual{position:relative;height:26px;margin-top:6px;--a:0%;--b:100%}
.ph-track{position:absolute;left:0;right:0;top:10px;height:6px;border-radius:99px;background:rgba(255,255,255,.28)}
.ph-track::after{content:"";position:absolute;top:0;bottom:0;left:var(--a);right:calc(100% - var(--b));background:#fff;border-radius:99px}
.ph-dual{touch-action:pan-y}
.ph-knob{position:absolute;top:2px;width:22px;height:22px;margin-inline-start:-11px;border-radius:50%;background:#0e8fb0;border:3px solid #fff;
  box-shadow:0 2px 8px rgba(4,40,55,.35);cursor:grab;z-index:2;touch-action:none;box-sizing:border-box;
  transition:transform .15s ease,box-shadow .15s ease}
.ph-knob:hover{transform:scale(1.12);box-shadow:0 0 0 5px rgba(255,255,255,.22),0 2px 8px rgba(4,40,55,.35)}
.ph-knob:focus-visible{outline:none;box-shadow:0 0 0 5px rgba(255,255,255,.45),0 2px 8px rgba(4,40,55,.35)}
.ph-knob.dragging{cursor:grabbing;transform:scale(1.15)}
.ph-scale{display:flex;justify-content:space-between;font-size:11px;opacity:.72;margin-top:1px}
.s4-card{border:1px solid #e3eef2;border-radius:20px;padding:16px 18px 18px;margin:0 0 14px;background:#fff}
.s4-card .label-row{margin-bottom:12px}
.s4-card .field-label{font-size:14px;font-weight:800;color:var(--ink)}
.s4-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
.v-step{border:1px solid #e3eef2;border-radius:18px;padding:13px 12px 12px;background:#fbfdfe;display:flex;flex-direction:column;gap:8px;min-width:0}
.v-step-l{font-size:11.5px;font-weight:700;color:#5d7480;text-transform:uppercase;letter-spacing:.06em}
.v-step-c{display:flex;align-items:center;justify-content:space-between;gap:4px}
.v-step-b{flex:0 0 32px;width:32px;height:32px;border-radius:50%;border:1px solid #d3e3e9;background:#fff;color:#0b6f8c;font:600 18px/1 inherit;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.v-step-b .ck-ico{width:16px;height:16px;stroke-width:2.2}
.v-step-b:hover:not(:disabled){border-color:#8fc3d3;background:#f1fbfd}
.v-step-b:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,159,.25)}
.v-step-b:disabled{opacity:.35;cursor:not-allowed}
.v-step small{color:#8aa0aa;font-size:11.5px;margin-top:-4px}
.s4-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.s4-two>.s4-card{margin:0}
@media (max-width:720px){
  .price-hero{padding:14px 16px 10px}
        .s4-steps{grid-template-columns:1fr 1fr}
  .s4-two{grid-template-columns:1fr}
  .s4-card{padding:14px 14px 16px}
}
@media (prefers-reduced-motion:reduce){ .ph-box,.v-step-b,.ph-knob{transition:none} }

/* наведение на новые поля шага 4 */
.ph-dual{cursor:pointer}

/* --- thank-you screen (19.10.2026): «you're in» + mortgage breakdown ------ */
.success-box.sx{text-align:left;padding:6px 0 0}
.sx-hero{text-align:center;padding:4px 0 26px}
.success-icon.sx-icon{width:68px;height:68px;margin:0 auto 16px;position:relative;box-shadow:0 0 0 10px rgba(22,185,153,.10),0 0 0 22px rgba(22,185,153,.05),0 12px 28px rgba(22,185,153,.25);
  animation:sxPop .6s cubic-bezier(.2,.9,.3,1.3) both}
@keyframes sxPop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.sx-kicker{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#11a383;margin-bottom:8px}
.success-box.sx h3{font-size:32px;line-height:1.15;letter-spacing:-.025em;margin:0 auto;max-width:620px}
.success-box.sx .sx-lead{font-size:16.5px;line-height:1.6;color:#4f6873;max-width:600px;margin:14px auto 0}
.sx-mail{display:inline-block;padding:0 8px;border-radius:8px;background:#eaf6fa;color:#0b4f63;font-weight:700;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.sx-search{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;margin-top:18px}
.sx-search-l{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8aa0aa;margin-inline-end:4px}
.sx-chip{padding:5px 12px;border-radius:999px;background:#fff;border:1px solid #dcebf0;font-size:13.5px;font-weight:650;color:var(--ink)}
.sx-next{border-top:1px solid #e8f0f3;padding:24px 0 6px}
.sx-next h4{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7d929b;text-align:center}
.sx-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;position:relative}
.sx-steps::before{content:"";position:absolute;top:17px;left:16.6%;right:16.6%;height:2px;background:linear-gradient(90deg,#bfe3ec,#bfe8da);z-index:0}
.sx-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:0 6px}
.sx-step-n{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;
  background:linear-gradient(135deg,#0b6f92,#14b8b1);box-shadow:0 0 0 5px #fff,0 6px 14px rgba(0,122,159,.25)}
.sx-step b{display:block;font-size:15px;color:var(--ink);letter-spacing:-.005em}
.success-box.sx .sx-step p{margin:5px 0 0;font-size:13.5px;line-height:1.5;color:#5d7480;max-width:none}
#mgSlot{margin-top:24px}
.mg-card{border-radius:22px;position:relative;overflow:hidden}
.mg-offer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 28px;align-items:center;padding:26px 28px;color:#fff;
  background:radial-gradient(90% 140% at 100% 0%,rgba(20,184,177,.55) 0%,rgba(20,184,177,0) 60%),linear-gradient(120deg,#0d3346 0%,#0b5f7c 100%);
  box-shadow:0 18px 40px rgba(13,51,70,.25)}
.mg-offer::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-70px;bottom:-110px;border:1px solid rgba(255,255,255,.12)}
.mg-kicker{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#7fe3d6;margin-bottom:6px}
.mg-card h4{margin:0;font-size:22px;line-height:1.25;letter-spacing:-.015em}
.success-box.sx .mg-offer p{color:rgba(255,255,255,.82);margin:8px 0 0;max-width:520px;font-size:14.5px;line-height:1.55}
.mg-offer-cta{display:flex;flex-direction:column;align-items:stretch;gap:8px;position:relative;z-index:1}
.mg-yes{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:14px;padding:14px 20px;background:#fff;color:#0b5f7c;
  font:inherit;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.18);transition:transform .2s ease,box-shadow .2s ease}
.mg-yes .ck-ico{width:18px;height:18px}
.mg-yes:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(0,0,0,.24)}
.mg-yes:focus-visible,.mg-no:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(127,227,214,.55)}
.mg-no{border:0;background:transparent;color:rgba(255,255,255,.78);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;padding:6px;border-radius:10px;transition:color .2s ease}
.mg-no:hover{color:#fff;text-decoration:underline}
.mg-form{border:1px solid #cfe7ee;background:linear-gradient(180deg,#f3fafc 0,#fff 140px);padding:24px 26px 22px;box-shadow:0 14px 32px rgba(16,42,55,.06)}
.mg-form .mg-kicker{color:#0e8fb0}
.mg-form h4{color:var(--ink)}
.success-box.sx .mg-form .mg-head p{margin:6px 0 0;font-size:14px;color:#5d7480;max-width:none}
.mg-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-top:22px}
.mg-lock{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#7d929b}
.mg-lock .ck-ico{width:15px;height:15px}
.mg-done{display:flex;gap:16px;align-items:flex-start;padding:22px 24px;border:1px solid #bfe6d3;background:linear-gradient(180deg,#effaf5,#fff)}
.mg-done-ic{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#16b999,#38cf81)}
.mg-done-ic .ck-ico{width:22px;height:22px}
.mg-done h4{font-size:19px;color:var(--ink)}
.success-box.sx .mg-done p{margin:6px 0 0;color:#4f6873;font-size:14.5px;max-width:none}
.mg-later{text-align:center}
.mg-link{display:inline-flex;align-items:center;gap:8px;border:1px dashed #b9d6df;background:#fbfdfe;color:#0b5f7c;border-radius:999px;padding:10px 16px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.mg-link .ck-ico{width:16px;height:16px}
.mg-link:hover{border-color:#0e8fb0;background:#eef8fb}
.mg-link:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.sx-foot{text-align:center;margin-top:22px}
.sx-restart{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:#5d7480;font:inherit;font-size:14px;font-weight:650;cursor:pointer;padding:8px 12px;border-radius:10px;transition:color .2s ease,background-color .2s ease}
.sx-restart .ck-ico{width:16px;height:16px}
.sx-restart:hover{color:#0b5f7c;background:#f1f8fa}
.sx-restart:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,159,.22)}
@media (max-width:720px){
  .success-box.sx h3{font-size:25px}
  .success-box.sx .sx-lead{font-size:15px}
  .sx-steps{grid-template-columns:1fr;gap:16px}
  .sx-steps::before{top:18px;bottom:18px;left:17px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,#bfe3ec,#bfe8da)}
  .sx-step{flex-direction:row;align-items:flex-start;text-align:start;gap:14px;padding:0}
  .sx-step-n{flex:0 0 36px}
  .mg-offer{grid-template-columns:1fr;padding:22px 20px}
  .mg-card h4{font-size:19px}
  .mg-form{padding:20px 16px}
  .mg-fields{grid-template-columns:1fr}
  .mg-actions .primary-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){ .success-icon.sx-icon{animation:none} .mg-yes,.mg-no,.mg-chip,.mg-link,.sx-restart{transition:none} }

/* --- step 4: one rhythm for every card (19.10.2026, fix) -----------------
   Все подписи — одним стилем, у всех карточек одна рамка и отступы; число в
   счётчике — поле во всю ширину между кнопками (без замеров по шрифту). */
.s4-card,.v-step{border:1px solid #e3eef2;border-radius:18px;background:#fff;padding:16px 18px 18px}
.s4-card{margin:0 0 14px}
.s4-card .label-row{margin:0 0 12px;min-height:18px}
.s4-card .field-label,.v-step-l,.s4-hoa .label-row label{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873;line-height:18px}
.s4-card .pick-hint{font-size:12.5px;font-weight:500;color:#8aa0aa;letter-spacing:0;text-transform:none}
.s4-steps{gap:14px}
.v-step{display:flex;flex-direction:column;gap:10px;padding:14px 14px 14px}
.v-step-l{display:block;margin:0}
.v-step-c{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:6px}
.v-step-b{width:34px;height:34px;flex:none}
input.v-step-v{width:100%;min-width:0;height:40px;border:0;border-radius:10px;background:transparent;padding:0 2px;text-align:center;
  font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;box-shadow:none;transition:background-color .15s ease}
input.v-step-v:hover{background:#f3f9fb}
input.v-step-v:focus{outline:none;background:#eaf6fa;box-shadow:0 0 0 2px rgba(0,122,159,.25)}
.v-step small{display:block;margin:-4px 0 0;text-align:center;color:#8aa0aa;font-size:11.5px}
.s4-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.s4-two>.s4-card{margin:0}
.s4-hoa .field{gap:0}
.s4-hoa .label-row{margin:0 0 12px}
.s4-hoa .input-wrap input{height:52px}
@media (max-width:720px){ .s4-two{grid-template-columns:1fr} .s4-steps{gap:12px} }
@media (prefers-reduced-motion:reduce){ input.v-step-v{transition:none} }

/* ипотечная форма: три поля в ряд, подписи / поля / подсказки — общими
   строками сетки (subgrid), поэтому поля стоят ровно (19.10.2026, fix) */
.mg-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto;gap:8px 16px;margin-top:20px}
.mg-fields .field.mg-f{display:grid;grid-row:span 3;grid-template-rows:subgrid;gap:8px;align-content:start}
.mg-fields .field.mg-f>label{align-self:end;font-size:13px;font-weight:800;line-height:1.3}
.mg-fields .input-wrap input,.mg-fields #mgCredit{height:52px}
.mg-fields #mgCredit{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.mg-hint{min-height:18px}
.mg-hint small{display:block;font-size:12px;color:#7d929b;line-height:1.4}
.mg-tier{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#3d5763}
.mg-tier-dot{width:8px;height:8px;border-radius:50%}
@media (max-width:900px){ .mg-fields{grid-template-columns:1fr 1fr} }
@media (max-width:720px){ .mg-fields{grid-template-columns:1fr} }
/* счётчики: подпись и −/+ — общими строками сетки, кнопки всегда на одной
   высоте, даже если подпись переносится; на телефоне компактнее, чтобы
   «2.5+» и «1,800» помещались целиком (19.10.2026, fix) */
.s4-steps{grid-auto-rows:auto;row-gap:14px}
.v-step{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:10px;align-content:start}
.v-step-l{align-self:end}
@media (max-width:720px){
  .s4-steps{row-gap:12px}
  .v-step{padding:12px 10px 12px;row-gap:8px}
  .v-step-l{font-size:11px;letter-spacing:.05em}
  .v-step-c{grid-template-columns:30px minmax(0,1fr) 30px;gap:2px}
  .v-step-b{width:30px;height:30px}
  .v-step-b .ck-ico{width:14px;height:14px}
  input.v-step-v{font-size:20px;height:36px;padding:0}
  .mg-fields{row-gap:6px}
  .mg-f .mg-hint{margin-bottom:12px}
  .mg-actions .primary-btn{white-space:nowrap;font-size:15px;padding-left:18px;padding-right:18px}
}
@media (max-width:400px){ input.v-step-v{font-size:18px} }
@media (max-width:400px){
  .v-step{padding:12px 8px}
  .v-step-c{grid-template-columns:28px minmax(0,1fr) 28px;gap:2px}
  .v-step-b{width:28px;height:28px}
}
.mg-hint small.field-error{color:#c02c2c;font-weight:600;margin:0}

/* --- price range, variant B (20.10.2026): white fields with labels -------- */
.price-hero{padding:16px 22px 12px}
.ph-vals{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px;max-width:600px;margin:10px 0 0}
.ph-f{display:flex;flex-direction:column;gap:6px;min-width:0;cursor:text}
.ph-fl{font-size:12px;font-weight:700;color:rgba(255,255,255,.92)}
.ph-box{display:flex;align-items:center;gap:6px;height:50px;padding:0 14px;border-radius:14px;background:#fff;color:var(--ink);
  border:2px solid transparent;box-shadow:0 6px 16px rgba(4,40,55,.18);transition:border-color .2s ease,box-shadow .2s ease}
.ph-box:hover{border-color:#bfeee8}
.ph-box:focus-within{border-color:#7fe3d6;box-shadow:0 0 0 4px rgba(127,227,214,.35),0 6px 16px rgba(4,40,55,.18)}
.ph-cur{color:#7d929b;font-weight:700;font-size:18px}
.price-hero .ph-box input{flex:1;min-width:0;width:100%;height:auto;border:0;background:transparent;padding:0;border-radius:0;box-shadow:none;
  font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.price-hero .ph-box input:focus{outline:none;box-shadow:none}
.price-hero .ph-box input:hover{color:#0b4f63}
.price-hero .ph-box input::placeholder{color:#9aaab2;font-weight:600;font-size:16px}
.ph-pen{display:inline-flex;color:#0e8fb0;flex:0 0 16px}
.ph-pen .ck-ico{width:16px;height:16px}
.ph-sep{padding-bottom:15px;font-weight:600;font-size:14px;color:rgba(255,255,255,.8)}
@media (max-width:720px){
  .price-hero{padding:14px 16px 10px}
  .ph-vals{grid-template-columns:1fr 1fr;gap:10px}
  .ph-sep{display:none}
  .ph-box{padding:0 10px;gap:3px;height:48px}
  .ph-cur{font-size:15px}
  .price-hero .ph-box input{font-size:17px}
  .ph-pen{display:none}
}
.price-hero .ph-dual{margin-top:14px}
@media (max-width:400px){ .price-hero .ph-box input{font-size:15.5px} .ph-box{padding:0 8px} }

/* --- price range: calm card like the other step-4 cards (20.10.2026, v1) ---
   Белая карточка с той же рамкой и подписью, что «Preferred cities»; поля —
   как остальные поля сайта; ползунок бирюзовый на светлой дорожке. */
.price-hero{color:var(--ink);background:#fff;border:1px solid #e3eef2;border-radius:20px;box-shadow:none;padding:16px 18px 12px}
.price-hero .ph-label{color:#4f6873;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:1}
.price-hero .ph-hint{color:#7d929b;opacity:1;font-size:12.5px}
.price-hero .ph-fl{color:#3d5763}
.price-hero .ph-box{background:#fbfdfe;border:1px solid #d7e4e8;box-shadow:none;height:48px}
.price-hero .ph-box:hover{border-color:#9fcddd}
.price-hero .ph-box:focus-within{border-color:#0e8fb0;box-shadow:0 0 0 4px rgba(0,122,159,.15)}
.price-hero .ph-sep{color:#8aa0aa}
.price-hero .ph-track{background:#e3ecf0}
.price-hero .ph-track::after{background:#0e8fb0}
.price-hero .ph-knob{background:#fff;border:3px solid #0e8fb0;box-shadow:0 2px 6px rgba(16,42,55,.18)}
.price-hero .ph-knob:hover{box-shadow:0 0 0 5px rgba(14,143,176,.15),0 2px 6px rgba(16,42,55,.18)}
.price-hero .ph-knob:focus,.price-hero .ph-knob:focus-visible{outline:none;box-shadow:0 0 0 5px rgba(14,143,176,.3),0 2px 6px rgba(16,42,55,.18)}
.price-hero .ph-scale{color:#8aa0aa;opacity:1}
@media (max-width:720px){ .price-hero{padding:14px 14px 10px;border-radius:18px} }

/* --- step 4 layout, 21.10.2026: no floors, 55+ Yes / No ------------------
   Три счётчика в ряд. Нижний ряд — две карточки одной структуры (подпись /
   пояснение / поле / ошибка) на общих строках сетки: поле HOA и кнопки
   Yes / No всегда на одной линии. */
.s4-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
.s4-two{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto auto;column-gap:14px;row-gap:0;align-items:stretch}
.s4-two>.s4-card{display:grid;grid-row:span 4;grid-template-rows:subgrid;margin:0;padding:16px 18px 16px}
.s4-two>.s4-card>.field{display:contents}
.s4-two .label-row{margin:0 0 6px;align-self:start}
.s4-desc{margin:0 0 12px;font-size:13px;line-height:1.45;color:#7d929b;align-self:start}
.s4-hoa .input-wrap{align-self:end}
.s4-hoa .input-wrap input{height:52px}
.s4-err{min-height:0;font-size:12.5px;font-weight:600;color:#c02c2c;display:flex;align-items:center;gap:6px}
.s4-err:not(:empty){margin-top:10px}
.s4-err .ck-ico{width:15px;height:15px;flex:0 0 15px}
.s4-req{font-size:11px;font-weight:700;color:#7d929b;background:#f1f6f8;border-radius:999px;padding:2px 8px;letter-spacing:.02em}
.s4-yns{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-self:end}
.s4-yn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;border:1px solid var(--line);border-radius:14px;background:#fbfdfe;
  color:var(--ink);font:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.s4-yn .ck-ico{width:17px;height:17px;stroke-width:2.6;color:#0e8fb0}
.s4-yn:hover{border-color:#9fcddd;background:#f6fbfc}
.s4-yn.selected{border-color:#1597b5;background:#effafd;box-shadow:inset 0 0 0 1px #1597b5;color:#0b4f63}
.s4-yn:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.s4-yn.selected:focus-visible{box-shadow:inset 0 0 0 1px #1597b5,0 0 0 4px rgba(0,122,159,.22)}
.s4-age.invalid{border-color:#e7a9a9;background:#fffafa}
.s4-age.invalid .s4-yn{border-color:#e6b4b4}
@media (max-width:720px){
  .s4-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s4-steps .v-step[data-stepper=sqft]{grid-column:1/-1}
  .s4-two{grid-template-columns:1fr;grid-template-rows:none;row-gap:14px}
  .s4-two>.s4-card{display:block;grid-row:auto}
  .s4-two>.s4-card>.field{display:block}
  .s4-two .label-row{margin-bottom:6px}
}
@media (prefers-reduced-motion:reduce){ .s4-yn{transition:none} }

/* счётчики: размер цифр — от ширины самого счётчика (container query), а не
   от измерения текста; «12,000» и «7.5+» целиком на любой ширине (21.10.2026) */
.v-step-c{container-type:inline-size}
input.v-step-v{font-size:clamp(15px,calc((100cqi - 84px) / 3.8),22px)}
@media (max-width:720px){ input.v-step-v{font-size:clamp(15px,calc((100cqi - 72px) / 3.8),20px)} }
@media (max-width:400px){ input.v-step-v{font-size:clamp(14px,calc((100cqi - 68px) / 3.8),18px)} }

/* ═══════════════ Блог (21.10.2026): «Журнал» и «Погружение» ═══════════════ */
:root{--bl-hd:76px;--bl-ink:var(--ck-ink,#102a37);--bl-soft:#5b6b74;--bl-faint:#66808b;--bl-line:#e3eef2;--bl-teal:#0b7a99}
@media (max-width:720px){:root{--bl-hd:68px}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bp-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 8px;color:var(--bl-faint);font-size:13px}
.bp-meta .ck-ico{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
.bp-meta .dot{opacity:.6}
/* главная статья */
.bl-hero{position:relative;min-height:clamp(480px,62vh,620px);display:flex;align-items:flex-end;color:#fff;background:#0b2b38;padding-top:var(--bl-hd);overflow:hidden}
.bl-hero.no-img{background:linear-gradient(135deg,#0b3a4e,#0a6f93 60%,#16b3ad)}
.bl-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bl-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,24,33,.15) 15%,rgba(6,24,33,.85));pointer-events:none}
.bl-hero-in{position:relative;z-index:1;padding-bottom:clamp(36px,5vw,56px)}
.bl-kicker{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.bl-kicker .ck-ico{width:14px;height:14px}
.bl-hero-title{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(32px,4.6vw,58px);line-height:1.06;max-width:860px;margin:16px 0 14px;letter-spacing:-.02em;color:#fff}
.bl-hero-title a{color:inherit;text-decoration:none}
.bl-hero-title a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.bl-hero-ex{font-size:clamp(16px,1.5vw,19px);max-width:660px;opacity:.92;margin:0 0 22px}
.bl-hero-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.bl-hero .bp-meta{color:rgba(255,255,255,.85)}
.bl-read{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#102a37;border-radius:14px;padding:13px 20px;font-weight:800;text-decoration:none;transition:transform .2s,box-shadow .2s}
.bl-read:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.25)}
.bl-read .ck-ico{width:18px;height:18px}
/* заголовок страницы и рубрики */
.bl-intro{padding:28px 0 6px;background:#fff}
.bl-intro.plain{padding-top:calc(var(--bl-hd) + 34px)}
.bl-intro .crumbs{color:var(--bl-faint);opacity:1}
.bl-intro .crumbs a{color:var(--bl-teal);text-decoration:none;font-weight:600}
.bl-intro-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 18px}
.bl-intro h1{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(28px,3.2vw,40px);line-height:1.1;margin:0;color:var(--bl-ink);letter-spacing:-.015em}
.bl-intro .lede{margin:8px 0 0;color:var(--bl-soft);font-size:17px;max-width:640px}
.bl-count{flex:none;color:var(--bl-faint);font-size:14px;font-weight:600;padding-bottom:4px}
.bl-chips{display:flex;flex-wrap:wrap;gap:8px}
.bl-chip{border:1px solid #dbe7ec;background:#fff;border-radius:999px;padding:8px 15px;font-size:14px;font-weight:600;color:#3d5763;text-decoration:none;transition:border-color .15s,background .15s,color .15s}
.bl-chip:hover{border-color:#9fcddd;background:#f3fafc;color:#0b4f63}
.bl-chip.on{background:#102a37;border-color:#102a37;color:#fff}
.bl-chip.on:hover{background:#1d4254;border-color:#1d4254;color:#fff}
/* сетка карточек */
.bl-list{padding:26px 0 8px}
.bl-empty{padding:30px 0;font-size:17px}
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 28px}
.bp-card{position:relative;display:flex;flex-direction:column;min-width:0}
.bp-img{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:18px;background:linear-gradient(135deg,#d9edf3,#eef7f9)}
.bp-img.none{background:linear-gradient(135deg,#0a6f93,#16b3ad)}
.bp-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bp-card:hover .bp-img img{transform:scale(1.04)}
.bp-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:16px}
.bp-cat{position:relative;z-index:2;font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--bl-teal);text-decoration:none}
.bp-cat:hover{text-decoration:underline}
.bp-title{margin:0;font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:22px;line-height:1.22;letter-spacing:-.01em;color:var(--bl-ink)}
.bp-title a{color:inherit;text-decoration:none}
.bp-title a::after{content:"";position:absolute;inset:0;z-index:1}
.bp-card:hover .bp-title a{color:var(--bl-teal)}
.bp-title a:focus-visible{outline:none}
.bp-card:focus-within{outline:2px solid var(--bl-teal);outline-offset:6px;border-radius:18px}
.bp-ex{margin:0;color:var(--bl-soft);line-height:1.55;font-size:15px}
/* страницы */
.bl-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:40px 0 0}
.bl-pg{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe7ec;border-radius:14px;padding:11px 16px;font-weight:700;color:#102a37;text-decoration:none}
.bl-pg:last-child{justify-self:end}
.bl-pg:hover{border-color:#9fcddd;background:#f3fafc}
.bl-pg .ck-ico{width:18px;height:18px}
.bl-pg-n{color:var(--bl-faint);font-size:14px}
/* полоса с карточкой бюджета */
.bl-band{position:relative;margin-top:64px;background:linear-gradient(120deg,#0a6f93,#0e8fb0 55%,#16b3ad);color:#fff;overflow:hidden}
.bl-band::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 400px at 10% 120%,rgba(255,255,255,.14),transparent 60%)}
.bl-band-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:56px;align-items:center;padding-top:60px;padding-bottom:60px}
.bl-band h2{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(32px,3.6vw,46px);line-height:1.08;margin:0 0 16px;color:#fff}
.bl-band p{font-size:18px;opacity:.94;margin:0 0 22px;max-width:520px}
.bl-band ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.bl-band li{display:flex;gap:10px;align-items:center;font-weight:600}
.bl-band li .ck-ico{flex:none;width:24px;height:24px;padding:4px;border-radius:50%;background:rgba(255,255,255,.2)}
.blog-budget{background:#fff;color:var(--bl-ink);border:1px solid rgba(255,255,255,.6)}
.blog-budget .card-help{color:var(--bl-soft)}
/* подписка */
.bl-news-wrap{margin-top:64px;margin-bottom:72px}
.bl-news{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:center;padding:32px 36px;border-radius:26px;background:#f2f8fa;border:1px solid #e1edf1}
.bl-news h2{margin:0 0 6px;font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:26px;color:var(--bl-ink)}
.bl-news p{margin:0;color:var(--bl-soft)}
.bl-news-form{display:flex;flex-wrap:wrap;gap:10px}
.bl-news-form input[type=email]{flex:1 1 220px;min-width:0;height:52px;border:1px solid #d3e2e8;border-radius:14px;padding:0 16px;font:inherit;background:#fff}
.bl-news-form button{height:52px;border:0;border-radius:14px;padding:0 22px;background:#102a37;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.bl-news-form button:hover{background:#0b4f63}
.bl-news-form button:disabled{opacity:.6}
.bl-news-msg{flex:1 0 100%;margin:0;min-height:1.2em;font-size:14px;font-weight:600}
.bl-news-msg.ok{color:#0f7a4f}.bl-news-msg.err{color:#c02c2c}
.bl-hp{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:960px){
  .bl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bl-band-in{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:620px){
  .bl-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .bl-intro-row{flex-direction:column;align-items:flex-start}
  .bl-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -12px;padding:0 12px 4px;scrollbar-width:none}
  .bl-chips::-webkit-scrollbar{display:none}
  .bl-chip{flex:none}
  .bl-news{grid-template-columns:1fr;padding:24px}
  .bl-pager{grid-template-columns:1fr 1fr}.bl-pg-n{display:none}
  .bl-band-in{padding-top:44px;padding-bottom:44px}
}

/* статья */
.ar-progress{position:fixed;top:0;left:0;right:0;height:4px;z-index:60;pointer-events:none}
.ar-progress span{display:block;height:100%;background:linear-gradient(90deg,#0e8fb0,#16b3ad);transform:scaleX(0);transform-origin:0 50%}
[dir=rtl] .ar-progress span{transform-origin:100% 50%}
.ar-hero{position:relative;min-height:max(560px,100svh);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:#0b2b38;padding:calc(var(--bl-hd) + 40px) 0 60px;overflow:hidden}
.ar-hero.no-img{background:radial-gradient(1100px 500px at 80% -10%,#5fd3c6 0,transparent 60%),linear-gradient(135deg,#0b3a4e,#0a6f93);min-height:auto;padding-bottom:90px}
.ar-hero>img.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;margin:0;border-radius:0}
.ar-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(6,24,33,.4),rgba(6,24,33,.78));pointer-events:none}
.ar-hero.no-img::after{display:none}
.ar-hero-in{position:relative;z-index:1;max-width:940px}
.ar-hero .crumbs{color:rgba(255,255,255,.85);opacity:1;margin-bottom:14px}
.ar-hero .crumbs a{color:#fff;text-decoration:none;font-weight:600}
.ar-eyebrow{display:block;font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#8ff0e3}
.ar-hero h1{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(34px,5.4vw,70px);line-height:1.04;margin:14px auto 16px;color:#fff;letter-spacing:-.025em}
.ar-lede{font-size:clamp(17px,1.7vw,21px);opacity:.92;margin:0 auto 22px;max-width:700px;line-height:1.5}
.ar-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0;color:rgba(255,255,255,.85);font-size:14px}
.ar-meta .ck-ico{width:15px;height:15px;vertical-align:-3px;margin-right:4px}
.ar-meta .dot{opacity:.6}
.ar-col{max-width:760px;margin:0 auto;padding:0 20px}
.ar-by{display:flex;align-items:center;gap:14px;padding:30px 0 24px;margin-bottom:28px;border-bottom:1px solid #e6eef1}
.ar-av{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#0a6f93,#16b3ad);color:#fff}
.ar-av .ck-ico{width:24px;height:24px}
.ar-by-t b{display:block;color:var(--bl-ink)}
.ar-by-t span{display:block;color:var(--bl-faint);font-size:14px}
.ar-by-t .ck-ico{width:15px;height:15px;vertical-align:-3px;margin-right:4px;color:#0f7a4f}
.tldr{background:#f2f8fa;border:1px solid #dcebf0;border-radius:20px;padding:22px 26px;margin:0 0 34px}
.tldr-h{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--bl-teal)}
.tldr ul{margin:0;padding-inline-start:20px;font-size:17px;line-height:1.6;color:#24404c}
.tldr li+li{margin-top:6px}
.ar-body{font-size:19px;line-height:1.75;color:#24404c}
.ar-body>:first-child{margin-top:0}
.ar-body h2{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(25px,2.4vw,31px);line-height:1.2;margin:44px 0 14px;color:var(--bl-ink);letter-spacing:-.01em;scroll-margin-top:96px}
.ar-body h3{font-size:21px;margin:30px 0 10px;color:var(--bl-ink);scroll-margin-top:96px}
.ar-body p{margin:0 0 18px}
.ar-body ul,.ar-body ol{padding-inline-start:22px;margin:0 0 20px}.ar-body li{margin:6px 0}
.ar-body a{color:var(--bl-teal);text-underline-offset:3px}
.ar-body blockquote{margin:30px 0;padding:6px 0 6px 24px;border-left:4px solid #0e8fb0;font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:24px;line-height:1.4;color:var(--bl-ink)}
[dir=rtl] .ar-body blockquote{border-left:0;border-right:4px solid #0e8fb0;padding:6px 24px 6px 0}
.ar-body img{max-width:100%;height:auto;border-radius:16px}
.ar-body table{width:100%;border-collapse:collapse;margin:10px 0 24px;font-size:16px;display:block;overflow-x:auto}
.ar-body th{background:#f2f8fa;text-align:start;padding:12px 14px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#4f6873}
.ar-body td{padding:12px 14px;border-top:1px solid #edf3f5}
/* карточка бюджета посередине статьи */
.ar-cta{position:relative;margin:56px 0;padding:80px 0;color:#fff;text-align:center;background:#0b2b38;overflow:hidden}
.ar-cta.no-img{background:linear-gradient(120deg,#0a6f93,#16b3ad)}
.ar-cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ar-cta::after{content:"";position:absolute;inset:0;background:rgba(6,30,42,.62)}
.ar-cta.no-img::after{display:none}
.ar-cta-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:26px}
.ar-cta h2{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(28px,3.6vw,44px);line-height:1.08;margin:0;color:#fff;max-width:720px}
.ar-cta .hero-card{width:min(430px,100%);text-align:start}
.ar-faq{margin:40px 0 0}
.ar-faq h2{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(25px,2.4vw,31px);margin:0 0 16px;color:var(--bl-ink)}
.ar-faq details{border:1px solid var(--bl-line);border-radius:16px;padding:0 20px;margin:0 0 10px;background:#fff}
.ar-faq summary{cursor:pointer;padding:18px 0;font-weight:700;font-size:18px;color:var(--bl-ink);list-style:none;display:flex;justify-content:space-between;gap:16px}
.ar-faq summary::-webkit-details-marker{display:none}
.ar-faq summary{transition:color .15s}
.ar-faq summary:hover{color:#0b6f8a}
.ar-faq details{transition:border-color .15s}
.ar-faq details:hover{border-color:#9fcddd}
.ar-faq summary::after{content:"+";color:#0e8fb0;font-size:24px;line-height:1;flex:none}
.ar-faq details[open] summary::after{content:"–"}
.ar-faq-a{color:var(--bl-soft);font-size:17px;line-height:1.65}
.ar-faq-a p{margin:0 0 16px}
.ar-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:34px;padding-top:24px;border-top:1px solid #e6eef1}
.ar-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.ar-tags li{background:#f2f8fa;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:#3d5763}
.ar-share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--bl-faint);font-size:13px;font-weight:700}
.ar-share a,.ar-share button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:999px;border:1px solid #dbe7ec;background:#fff;color:#3d5763;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer}
.ar-share a:hover,.ar-share button:hover{border-color:#9fcddd;color:#0b4f63}
.ar-share .ck-ico{width:16px;height:16px}
.ar-share button.ok{border-color:#9fdcbc;color:#0f7a4f}
.ar-rel{margin-top:72px}
.ar-rel-h{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 22px}
.ar-rel-h h2{margin:0;font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:30px;color:var(--bl-ink)}
.ar-rel-h a{display:inline-flex;align-items:center;gap:6px;color:var(--bl-teal);font-weight:700;text-decoration:none}
.ar-rel-h .ck-ico{width:16px;height:16px}
/* панель бюджета внизу */
.ar-dock{position:fixed;left:50%;bottom:20px;z-index:55;display:flex;align-items:center;gap:16px;background:#0d2530;color:#fff;border-radius:20px;padding:10px 10px 10px 22px;box-shadow:0 20px 50px rgba(6,24,33,.35);white-space:nowrap;
  transform:translate(-50%,140%);opacity:0;transition:transform .35s ease,opacity .35s ease}
.ar-dock.on{transform:translate(-50%,0);opacity:1}
.ar-dock-q{opacity:.75;font-size:14px}
.ar-dock-v{font-size:22px;font-variant-numeric:tabular-nums}
.ar-dock-v small{font-size:13px;opacity:.7;font-weight:600;margin-inline-start:2px}
.ar-dock-go{display:inline-flex;gap:8px;align-items:center;background:var(--fb-cta,#ef5b34);color:#fff;border-radius:14px;padding:12px 18px;font-weight:800;text-decoration:none}
.ar-dock-go .ck-ico{width:18px;height:18px}
.ar-dock-go:hover{filter:brightness(1.05)}
@media (max-width:700px){
  .ar-dock{left:12px;right:12px;bottom:12px;transform:translateY(140%);justify-content:space-between;padding-inline-start:16px}
  .ar-dock.on{transform:none}
  .ar-dock-q{display:none}
  .ar-body{font-size:17.5px}
  .ar-cta{padding:56px 0}
  .ar-hero{min-height:max(520px,88svh)}
}
@media (prefers-reduced-motion:reduce){.bp-img img,.ar-dock,.bl-read{transition:none}}
@media print{.ar-dock,.ar-progress,.ar-cta,.bl-news-wrap,.ar-share{display:none!important}}

/* шаг 3 (21.10.2026): пустая подпись под ставкой не держит строку */
.s3f-cap:empty{display:none}

/* ── Статья: карточка бюджета наверху (21.10.2026, вечер) ────────────────
   Обложка на весь экран: слева — крошки, рубрика, заголовок, строка под ним,
   справа — заголовок над карточкой и сама карточка. На ≤1000px — одна
   колонка, карточка сразу под текстом. «Короткий ответ» и «Источники». */
.ar-hero{text-align:start;justify-content:flex-start;min-height:max(620px,92svh);align-items:center}
.ar-hero::after{background:linear-gradient(90deg,rgba(6,24,33,.86) 0%,rgba(6,24,33,.62) 50%,rgba(6,24,33,.35) 100%)}
.ar-hero-in{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(28px,4vw,64px);align-items:center}
.ar-hero-txt{max-width:720px}
.ar-hero h1{margin:14px 0 16px;font-size:clamp(32px,4.4vw,60px)}
.ar-lede{margin:0 0 20px;max-width:640px}
.ar-meta{justify-content:flex-start}
.ar-hero-cta{display:grid;gap:12px}
.ar-cta-h{margin:0;font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:clamp(20px,1.8vw,24px);line-height:1.2;color:#fff;font-weight:700}
.ar-hero-cta .hero-card{margin:0;width:100%;box-shadow:0 26px 70px rgba(0,0,0,.35)}
@media (max-width:1000px){
  .ar-hero{min-height:auto;padding-bottom:36px}
  .ar-hero-in{grid-template-columns:minmax(0,1fr);gap:26px}
  .ar-hero-cta{max-width:520px}
}
@media (max-width:620px){
  .ar-hero h1{font-size:clamp(28px,8vw,36px)}
  .ar-lede{font-size:16.5px}
}
.ar-answer{margin:0 0 26px;padding:20px 24px;border-radius:20px;background:#0d2530;color:#e9f3f6}
.ar-answer-h{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#8ff0e3}
.ar-answer p:last-child{margin:0;font-size:18px;line-height:1.6;color:#fff}
.ar-answer a{color:#8ff0e3}
.ar-src{margin:38px 0 0}
.ar-src h2{font-family:var(--fb-heading,"Source Serif 4",Georgia,serif);font-size:22px;margin:0 0 10px;color:var(--bl-ink)}
.ar-src ol{margin:0;padding-inline-start:20px;color:var(--bl-soft);font-size:15px;line-height:1.6}
.ar-src a{color:var(--bl-teal);text-decoration:none}
.ar-src a:hover{text-decoration:underline}
.ar-by-t a{color:inherit;text-decoration:underline;text-decoration-color:rgba(16,42,55,.25);text-underline-offset:3px}
/* фото внутри статьи */
.ar-body .ar-fig{margin:30px 0 32px}
.ar-body .ar-fig img{display:block;width:100%;height:auto;border-radius:18px}
.ar-body .ar-fig figcaption{margin-top:10px;font-size:14px;color:var(--bl-faint);line-height:1.5}

/* ── Список блога: карточка бюджета наверху (21.10.2026, вечер) ─────────── */
.bl-hero{min-height:clamp(540px,72vh,700px);align-items:center}
.bl-hero-in{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:clamp(28px,4vw,64px);align-items:end;padding-top:28px}
.bl-hero::after{background:linear-gradient(90deg,rgba(6,24,33,.82) 0%,rgba(6,24,33,.55) 55%,rgba(6,24,33,.3) 100%),linear-gradient(180deg,transparent 40%,rgba(6,24,33,.55))}
.bl-hero-cta .hero-card{margin:0;width:100%;box-shadow:0 26px 70px rgba(0,0,0,.35)}
.bl-intro-cta{flex:none;width:min(410px,100%)}
.bl-intro-cta .hero-card{margin:0;box-shadow:0 18px 44px rgba(16,42,55,.12);border:1px solid #e3eef2}
@media (max-width:1000px){
  .bl-hero{min-height:auto}
  .bl-hero-in{grid-template-columns:minmax(0,1fr);gap:26px;padding-top:36px}
  .bl-hero-cta{max-width:520px}
}
@media (max-width:760px){ .bl-intro-row{flex-direction:column;align-items:stretch} }

/* Шаг 2 — своя цена (21.10.2026). Поле с карандашом, как сумма в карточке
   наверху и цены на шаге 4, только «стеклянное» — под цвет плашки. */
.result-hero .rh-main{min-width:0}
.result-hero .rp-well{
  display:inline-flex;align-items:center;gap:2px;max-width:100%;margin:10px 0 10px;
  padding:6px 8px 6px 16px;border-radius:18px;cursor:text;
  background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.3);
  transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.result-hero .rp-well:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.55)}
.result-hero .rp-well:focus-within{background:rgba(255,255,255,.2);border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.2)}
.result-hero .rp-cur{font-size:44px;font-weight:900;letter-spacing:-.045em;line-height:1.1;color:#fff}
.result-hero .rp-input{
  appearance:none;border:0;outline:0;background:transparent;padding:0;margin:0;min-width:0;
  font:inherit;font-size:44px;font-weight:900;letter-spacing:-.045em;line-height:1.1;color:#fff;
  font-variant-numeric:tabular-nums;caret-color:#fff;
}
.result-hero .rp-input:focus{outline:0;box-shadow:none}
/* Без анимации: общий стиль полей плавно меняет ширину, и после каждой
   перерисовки шага (смена города или типа) поле «ехало» от ширины по
   умолчанию к ширине числа — карандаш прыгал вправо и возвращался. */
.result-hero .rp-input{transition:none}
/* Поле по ширине числа: поле и невидимая копия числа — в одной клетке
   сетки; клетка берёт ширину копии, поле растягивается на всю клетку.
   Шрифт, размер, межбуквенное и цифры одной ширины — одни и те же. */
.result-hero .rp-fit{display:inline-grid;min-width:0;max-width:100%}
.result-hero .rp-fit>*{grid-area:1/1}
.result-hero .rp-mirror{
  visibility:hidden;white-space:pre;overflow:hidden;
  font:inherit;font-size:44px;font-weight:900;letter-spacing:-.045em;line-height:1.1;
  font-variant-numeric:tabular-nums;padding:0 2px 0 0;
}
/* width:0 — у поля нет своей «естественной» ширины, клетку задаёт только
   копия числа; min-width:100% — поле занимает клетку целиком. */
.result-hero .rp-fit .rp-input{width:0;min-width:100%}
.result-hero .rp-pen{
  display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;margin-left:10px;border-radius:12px;
  color:#fff;background:rgba(255,255,255,.18);transition:background-color .2s ease,color .2s ease;
}
.result-hero .rp-pen .ck-ico{width:18px;height:18px}
.result-hero .rp-well:hover .rp-pen,.result-hero .rp-well:focus-within .rp-pen{background:#fff;color:#0c7d9f}
.compare-table .ct-range{white-space:nowrap;font-variant-numeric:tabular-nums}
.compare-table .ct-dash{color:var(--ck-faint)}
@media (max-width:720px){
  .result-hero .rp-cur,.result-hero .rp-input,.result-hero .rp-mirror{font-size:36px}
  .result-hero .rp-pen{flex-basis:36px;width:36px;height:36px}
}
@media (max-width:420px){
  .compare-table .ct-range{white-space:normal}
}
@media (prefers-reduced-motion:reduce){.result-hero .rp-well,.result-hero .rp-pen{transition:none}}
html[dir="rtl"] .result-hero .rp-well{padding:6px 16px 6px 8px}
html[dir="rtl"] .result-hero .rp-pen{margin-left:0;margin-right:10px}

/* Шаг 2 — плашка цены, вариант 21.10.2026 (вечер): слева цена-поле и
   диапазон, справа «стеклянная» плитка платежа в месяц — ровно по центру
   плашки по высоте. */
.result-hero.rh2{grid-template-columns:minmax(0,1fr) minmax(230px,290px);align-items:end;gap:22px 32px;padding:28px 30px}
.rh2 .rh-cap{display:block;font-size:14px;color:#bdeff5}
.rh2 .rp-well{margin:12px 0}
.rh2 .result-range{font-size:14px;color:#d8f6f8}
.rh2 .rh-pay{align-self:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);border-radius:18px;padding:18px 20px 16px;color:#fff}
.rh2 .rh-pay-l{display:block;font-size:13px;color:#bdeff5;margin:0 0 6px}
.rh2 .rh-pay-v{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.rh2 .rh-pay-v strong{font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}
.rh2 .rh-pay-v span{font-size:14px;color:#d8f6f8}
@media (max-width:720px){
  .result-hero.rh2{grid-template-columns:1fr;padding:22px 20px;gap:16px}
  .rh2 .rh-pay-v strong{font-size:28px}
}

/* Шаг 3 — первый взнос (21.10.2026, владелец): доллары (2/3) и проценты
   (1/3) — два отдельных поля в одну строку, с промежутком и своей рамкой у
   каждого: сразу видно, что это два числа. Вписать можно любое — второе
   пересчитывается. */
.s3f-num.s3d,.s3f-num.s3d:hover,.s3f-num.s3d:focus-within,.s3f-num.s3d:has(input[aria-invalid=true]){
  display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:10px;
  padding:0;border:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible;
}
.s3d-usd,.s3d-pct{
  display:flex;align-items:center;gap:4px;height:100%;min-width:0;padding:0 11px;
  border:1px solid #dbe6eb;background:#fff;border-radius:12px;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.s3d-pct{background:#eef6f9;border-color:#d3e3ea}
/* Цвет чисел — обычный: цветной текст в поле читается как ошибка. */
.s3d-pct .s3f-suf{font-size:14px}
/* Треть поля бывает узкой (колонка рядом с итогом на 1280–1440 px):
   отступы меньше, чтобы «38.3» помещалось целиком. */
.s3d-pct{padding:0 7px 0 6px;gap:2px}
.s3d-usd:hover,.s3d-pct:hover{border-color:#a9cfdc}
.s3d-usd:focus-within,.s3d-pct:focus-within{border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.14);background:#fff}
.s3d-usd:has(input[aria-invalid=true]),.s3d-pct:has(input[aria-invalid=true]){border-color:#e7a23b;box-shadow:0 0 0 4px rgba(231,162,59,.14)}
/* Узко (телефон, одна колонка): поле на всю ширину под названием, а не
   столбиком 120 px справа — две части в 120 px не помещаются. */
@media(max-width:720px){
  .s3-pair .s3f--dual,.s3f--dual{grid-template-columns:minmax(0,1fr);grid-template-areas:"lab" "num" "rng"}
}
@media (prefers-reduced-motion:reduce){.s3d-usd,.s3d-pct{transition:none}}
/* Шаг 3 — карандаш в полях с числом (22.10.2026, вариант A владельца): как в
   полях цены шага 4 — голубой, сразу после числа; при наведении и вводе ярче.
   Взнос — 3/5 доллары + 2/5 проценты, чтобы «38.3 %» с карандашом помещалось.
   Не помещается число вместе с карандашом — карандаш прячется (.s3-nopen). */
.s3-pen{display:inline-flex;flex:0 0 16px;color:#0e8fb0;margin-inline-start:6px;opacity:.8;transition:opacity .2s ease}
.s3-pen .ck-ico{width:16px;height:16px}
.s3d-pct .s3-pen{flex-basis:15px;margin-inline-start:3px}
.s3d-pct .s3-pen .ck-ico{width:15px;height:15px}
.s3f-num:not(.s3d):hover .s3-pen,.s3f-num:not(.s3d):focus-within .s3-pen,.s3d-usd:hover .s3-pen,.s3d-usd:focus-within .s3-pen,.s3d-pct:hover .s3-pen,.s3d-pct:focus-within .s3-pen{opacity:1}
.s3-nopen .s3-pen{display:none}
/* Налог, страховка, HOA: «/ yr», «/ mo» — в конце названия поля
   (22.10.2026, владелец), тем же размером, но спокойнее. */
.s3f-unit{margin-inline-start:4px;font-weight:600;color:var(--muted,#6a7e88);white-space:nowrap}
.s3d-usd{padding:0 9px}
@media (prefers-reduced-motion:reduce){.s3-pen{transition:none}}

/* Шаг 3 — Building (ниже 620) недоступен у Conventional при взносе меньше
   20 % (21.10.2026): часть шкалы бледнее, не нажимается, подсказка — в title. */
.cs-tier.is-off{cursor:not-allowed}
.cs-tier.is-off .cs-seg{opacity:.28;transform:none}
.cs-tier.is-off .cs-lbl,.cs-tier.is-off .cs-lbl b{color:#a3b3bb}
.cs-tier.is-off:hover .cs-seg{opacity:.28;transform:none}
.cs-tier.is-off:hover .cs-lbl b{color:#a3b3bb}
.s3-grp .cs-tier.is-off .cs-seg,.s3-grp .cs-tier.is-off:hover .cs-seg{opacity:.28;filter:none}
.s3-grp .cs-tier.is-off:hover .cs-seg::after{opacity:0}

/* Building недоступен (22.10.2026, вариант A владельца): часть шкалы —
   серая штриховка с замком; под ней красная печать «Not available». Где
   колонка шкалы узкая и печать не помещается (телефон) — название и что
   нужно: «20%+ down». Высота подписи та же, что у доступной части, —
   при смене взноса шкала не прыгает. */
.s3-grp .cs-tier.is-off .cs-seg,.s3-grp .cs-tier.is-off:hover .cs-seg{opacity:1;background:repeating-linear-gradient(135deg,#e3eaee 0 5px,#f5f8f9 5px 10px);box-shadow:inset 0 0 0 1px #dbe4e8}
.cs-tier.is-off .cs-seg .ck-ico{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;padding:2px;box-sizing:border-box;
  border-radius:50%;background:#fff;box-shadow:0 0 0 1px #d3dee3;color:#7f939c;stroke-width:2.4}
.cs-tier.is-off .cs-lbl{position:relative}
.cs-tier.is-off .cs-lbl b,.cs-tier.is-off .cs-rng{visibility:hidden}
.cs-tier.is-off .cs-need{display:none}
.cs-stamp{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-6deg);box-sizing:border-box;white-space:nowrap;
  padding:3px 5px 2px;border:2px solid #d4553a;border-radius:6px;background:rgba(250,252,253,.92);box-shadow:inset 0 0 0 1px rgba(212,85,58,.18);
  color:#d4553a;font-size:9px;font-weight:900;letter-spacing:.02em;line-height:1.15;text-transform:uppercase;text-align:center;pointer-events:none}
/* Решает ширина самой шкалы: печать (~90 px) — если колонка от ~90 px. */
.cs-bar{container-type:inline-size}
@container (max-width:449px){
  .cs-stamp{display:none}
  .cs-tier.is-off .cs-lbl b{visibility:visible;color:#8fa1aa}
  /* «Что нужно» — поверх строки диапазона (она невидима, но держит высоту). */
  .cs-tier.is-off .cs-need{display:block;position:absolute;left:-6px;right:-6px;bottom:0;font-size:.9em;line-height:calc(1.3em / .9);letter-spacing:-.02em;
    white-space:nowrap;text-align:center;color:#c0582f;font-weight:700}
}

/* Шаг 3 — карточка «что выбрано» с полями (22.10.2026, вариант A владельца):
   тип жилья и город — выпадающие списки, цена — поле с карандашом. Обычные
   поля формы с подписями — понятно без подсказок, что их можно менять.
   Раскладка — по ширине самой карточки (container query), а не экрана:
   широкая — в одну строку, подписи над полями, значок на уровне полей;
   узкая — три строки «подпись — поле», подписи в одну колонку. Так длинные
   значения («Condos | Apartamentos», «Boynton Beach») не обрезаются. */
.s3-pick.s3-home{display:block;container-type:inline-size;padding:10px 12px 12px 10px}
.s3h-in{display:grid;grid-template-columns:42px minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.05fr);gap:0 12px;align-items:end}
.s3-home .s3-pick-ic{width:42px;height:42px;border-radius:11px;align-self:end}
.s3-home .s3-pick-ic .ck-ico{width:22px;height:22px}
.s3h-f{display:flex;flex-direction:column;min-width:0;margin:0;cursor:pointer}
.s3h-cap{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#5f7480);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s3h-box{position:relative;display:flex;align-items:center;gap:6px;height:42px;min-width:0;padding:0 10px 0 12px;border:1px solid #cfdfe6;border-radius:11px;background:#f7fbfc;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.s3h-box:hover{border-color:#41afca;background:#fff}
.s3h-box:focus-within{border-color:#41afca;background:#fff;box-shadow:0 0 0 4px rgba(65,175,202,.14)}
.s3h-box select,.s3h-box input{appearance:none;-webkit-appearance:none;flex:1;min-width:0;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:0;
  font:inherit;font-weight:800;color:var(--ink,#102a37);transition:none;cursor:pointer}
.s3h-box select:focus,.s3h-box input:focus{box-shadow:none;outline:0;background:transparent}
.s3h-sel{padding:0}
/* Стрелка — та же, что у всех списков сайта (site.css, «Выпадающие
   списки»), на тех же 12 px от края, но с меньшим отступом текста: в
   узком поле общий отступ 48 px съедал название города. Селектор длиннее
   общего, чтобы перебить его. */
.s3h-box select:not([multiple]):not([size]),.s3h-box select:not([multiple]):not([size]):hover,.s3h-box select:not([multiple]):not([size]):focus{
  font-size:15px;padding:0 36px 0 12px;background-color:transparent;background-position:right 12px center;background-size:16px 16px;
  text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.s3h-num{gap:1px}
.s3h-num input{font-size:20px;font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums;cursor:text}
.s3h-cur{font-size:20px;font-weight:900;letter-spacing:-.02em;color:var(--ink,#102a37)}
.s3h-pen{flex:0 0 28px;display:grid;place-items:center;width:28px;height:28px;margin-inline-start:5px;border-radius:8px;background:rgba(239,91,52,.13);color:#ef5b34;transition:background-color .2s ease,color .2s ease}
.s3h-pen .ck-ico{width:15px;height:15px}
.s3h-num:hover .s3h-pen,.s3h-num:focus-within .s3h-pen{background:#ef5b34;color:#fff}
html[dir="rtl"] .s3h-box select:not([multiple]):not([size]){padding:0 12px 0 36px;background-position:left 12px center}
/* Узкая карточка: три строки «подпись — поле», подписи — одной колонкой. */
@container (max-width:659px){
  .s3h-in{grid-template-columns:auto minmax(0,1fr);gap:6px 8px;align-items:center}
  .s3-home .s3-pick-ic{display:none}
  .s3h-f{display:contents}
  .s3h-cap{margin:0;align-self:center}
  .s3h-box{height:40px}
  .s3h-box select:not([multiple]):not([size]),.s3h-box select:not([multiple]):not([size]):hover,.s3h-box select:not([multiple]):not([size]):focus{font-size:14px;padding-left:10px}
}
@media (prefers-reduced-motion:reduce){.s3h-box,.s3h-pen{transition:none}}

/* ---------- Шаг 4, вариант B (22.10.2026): карточка на каждый тип ----------
   Отмеченный тип раскрывается: слева — диапазон цены (тот же блок с полями и
   ползунком), справа — спальни, ванные, площадь. Снятый — строка «+ Add».
   В заголовке — итог одной строкой, видно и в свёрнутом виде. */
.s4-types{margin:0 0 14px}
.s4t-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:4px 4px 10px}
.s4t-label .field-label{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873;line-height:18px}
.s4t-label .ph-hint{margin-inline-start:auto;font-size:12.5px;color:var(--muted,#5f7480);opacity:1}
.s4t-list{display:flex;flex-direction:column;gap:10px}
.s4t{border:1px solid #e3eef2;border-radius:18px;background:#fff;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.s4t.on{border-color:#9fd3e2;box-shadow:0 6px 18px rgba(0,122,159,.07)}
.s4t-head{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;margin:0;padding:10px 16px;border:0;border-radius:0;background:transparent;
  font:inherit;color:inherit;text-align:start;cursor:pointer;transition:background-color .2s ease}
.s4t-head:hover{background:#f7fbfc}
.s4t-head:focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(0,122,159,.28)}
.s4t-box{flex:0 0 22px;width:22px;height:22px;border-radius:7px;border:1.5px solid #c3d5dc;background:#fff;color:transparent;display:grid;place-items:center;
  transition:background-color .2s ease,border-color .2s ease}
.s4t-box .ck-ico{width:14px;height:14px;stroke-width:2.8}
.s4t.on .s4t-box{background:#0e8fb0;border-color:#0e8fb0;color:#fff}
.s4t-head .s4t-ic{flex:0 0 40px;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#f1f6f9;color:var(--fb-accent-ink,#007a9f)}
.s4t-head .s4t-ic .ck-ico{width:22px;height:22px}
.s4t.on .s4t-head .s4t-ic{background:var(--fb-accent-ink,#007a9f);color:#fff}
.s4t-name{font-size:16px;font-weight:800;min-width:0}
.s4t-sum{margin-inline-start:auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:end;min-width:0}
.s4t-sum-p{font-size:14.5px;font-weight:800;color:var(--ink,#102a37);font-variant-numeric:tabular-nums;white-space:nowrap}
.s4t-sum-s{font-size:12.5px;color:var(--muted,#5f7480);font-variant-numeric:tabular-nums;white-space:nowrap}
.s4t-add{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:800;color:#007a9f}
.s4t-add .ck-ico{width:15px;height:15px;stroke-width:2.4}
.s4t-head:hover .s4t-add{text-decoration:underline;text-underline-offset:3px}
.s4t-body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px 24px;align-items:start;padding:14px 16px 16px;border-top:1px solid #e8f0f3;background:linear-gradient(#fbfdfe,#fff)}
.s4t .price-hero{border:0;border-radius:0;padding:0;margin:0;background:transparent;box-shadow:none}
.s4t .ph-vals{margin:0;max-width:none}
.s4t-steps{display:flex;flex-direction:column;gap:8px}
.s4t-steps .v-step{display:flex;grid-row:auto;grid-template-rows:none;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:0;border:0;border-radius:0;background:transparent}
.s4t-steps .v-step-l{flex:1 1 auto;min-width:0;align-self:center}
.s4t-steps .v-step-c{flex:0 0 172px;padding:3px;border:1px solid #e3eef2;border-radius:14px;background:#fff}
/* Два столбца (цена | счётчики) — только когда карточке хватает ширины;
   решает ширина самой карточки, а не экрана (на 1024–1100 рядом панель). */
.s4t{container-type:inline-size}
@container (max-width:779px){ .s4t-body{grid-template-columns:minmax(0,1fr)} }
@media (max-width:560px){
  .s4t-head{gap:10px;padding:10px 12px}
  .s4t-head .s4t-ic{flex-basis:36px;width:36px;height:36px}
  .s4t-name{font-size:15px}
  .s4t-sum-p{font-size:13.5px}
  .s4t-sum-s{font-size:11.5px}
  .s4t.on .s4t-head{flex-wrap:wrap;row-gap:2px}
  .s4t.on .s4t-sum-s{white-space:normal}
  .s4t.on .s4t-sum{flex:1 0 100%;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px;text-align:start;margin:0;padding-inline-start:78px}
  .s4t-body{padding:12px}
  .s4t-steps .v-step-c{flex-basis:150px}
}
@media (prefers-reduced-motion:reduce){ .s4t,.s4t-head,.s4t-box{transition:none} }

/* Шаг 5 — карточка профиля: строка на каждый тип (22.10.2026). */
.profile-card .pc-top{align-items:center}
.pc-types{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.pc-type{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:#f5fafb;border:1px solid #e6f0f3}
.pc-type .pc-tag-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#fff;color:#e8603c}
.pc-type .pc-tag-ic .ck-ico{width:19px;height:19px}
.pc-type-n{font-weight:800;color:var(--ink,#102a37);min-width:0}
.pc-type-v{display:flex;flex-direction:column;align-items:flex-end;text-align:end;min-width:0}
.pc-type-p{font-size:18px;font-weight:800;color:var(--ink,#102a37);font-variant-numeric:tabular-nums;white-space:nowrap}
.pc-type-s{font-size:12.5px;color:#6a7e88;font-variant-numeric:tabular-nums}
.pc-hoa{font-weight:800;color:var(--ink,#102a37)}
.profile-card .pc-rows{margin-top:10px}
@media (max-width:560px){
  .pc-type{grid-template-columns:36px minmax(0,1fr);row-gap:4px}
  .pc-type-v{grid-column:2;align-items:flex-start;text-align:start}
}

/* ---------- Экран «спасибо» — ипотечная анкета (22.10.2026, макет владельца) ----------
   Сразу: доход, долги, рейтинг (диапазоном), назначение жилья, свои
   средства, статус в США — сеткой 3 × 2; ниже — тип дохода. Под ним по
   выбору открываются панели: W-2, 1099, Self-Employed, виза. Зелёная
   плашка — можно продолжать; красная «We're sorry» и оранжевая про визу —
   онлайн не рассчитать: телефон и «Request a Call», кнопка расчёта
   недоступна. */
.mg-q2{container-type:inline-size}
.mg-q2 .mg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto auto auto);gap:8px 16px;margin-top:20px}
.mg-q2 .mg-grid>.mg-f{display:grid;grid-row:span 3;grid-template-rows:subgrid;gap:8px;align-content:start;margin:0}
.mg-q2 .mg-grid>.mg-f>:first-child{align-self:end}
.mg-lab{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:800;line-height:1.3;color:var(--ink,#102a37)}
.mg-lab-ic,.mg-panel-ic{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#e8f5f9;color:#0e8fb0}
.mg-lab-ic .ck-ico,.mg-panel-ic .ck-ico{width:18px;height:18px}
.mg-q2 .input-wrap input,.mg-q2 select,.mg-q2 input[type=date]{height:52px}
.mg-q2 select,.mg-q2 input[type=date]{font-size:15px}
.mg-q2 input[type=date]{width:100%;font:inherit;color:var(--ink,#102a37)}
.mg-q2 .mg-hint{min-height:18px}
.mg-opts{display:grid;gap:10px}
.mg-opts--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mg-opts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mg-opt{position:relative;display:flex;align-items:center;gap:9px;min-height:52px;margin:0;padding:8px 10px;border:1px solid #d7e4e8;border-radius:14px;background:#fff;
  cursor:pointer;font-size:13.5px;font-weight:700;line-height:1.25;color:#33505c;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.mg-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.mg-opt-ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#f1f6f9;color:#0e8fb0;transition:background-color .2s ease,color .2s ease}
.mg-opt-ic .ck-ico{width:18px;height:18px}
.mg-opt-t{min-width:0}
.mg-opt:hover{border-color:#9fd3e2}
.mg-opt.on{border-color:#35aac6;background:#f1fbfd;color:#0b5f7c;box-shadow:0 6px 16px rgba(0,122,159,.10)}
.mg-opt.on .mg-opt-ic{background:#0e8fb0;color:#fff}
.mg-opt:has(input:focus-visible){box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.mg-f:has(.field-error) .mg-opt{border-color:#e9b0b0}
.mg-emp{margin:10px 0 0}
.mg-emp>span:first-child{display:block;margin-bottom:8px}
.mg-panels{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:6px;align-items:start}
.mg-panels--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mg-panel{--acc:#0e8fb0;border:1px solid #d5e7ee;border-top:3px solid var(--acc);border-radius:18px;background:#fbfdfe;padding:16px 18px 18px;min-width:0}
.mg-panel--1099{--acc:#16a37f}
.mg-panel--self{--acc:#7c5cd6}
.mg-panel--npr{--acc:#d98a14}
.mg-panel-h{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:15.5px;font-weight:800;color:var(--ink,#102a37)}
.mg-panel .mg-panel-ic{color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,#fff)}
.mg-q{display:block;margin:12px 0 8px;font-size:14px;font-weight:600;line-height:1.45;color:#3d5763}
.mg-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mg-yn{display:flex;gap:10px}
.mg-radio{flex:1;display:flex;align-items:center;gap:10px;min-height:46px;margin:0;padding:0 14px;border:1px solid #d7e4e8;border-radius:12px;background:#fff;
  cursor:pointer;font-size:14.5px;font-weight:700;color:#33505c;transition:border-color .2s ease,background-color .2s ease}
.mg-q2 .mg-radio input{flex:none;width:18px;height:18px;margin:0;padding:0;border:0;box-shadow:none;accent-color:#0e8fb0}
.mg-radio:hover{border-color:#9fd3e2}
.mg-radio:has(input:checked){border-color:#35aac6;background:#f1fbfd;color:#0b5f7c}
.mg-radio:has(input:focus-visible){box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.mg-sub{margin-top:14px;padding:4px 14px 14px;border:1px solid #f1d29b;border-radius:14px;background:#fffaf0}
.mg-sub-t{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:14.5px;color:#a8620b}
.mg-sub-t .ck-ico{width:18px;height:18px}
.mg-box{display:flex;gap:12px;margin-top:14px;padding:14px 16px;border:1px solid;border-radius:14px}
.mg-box-ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff}
.mg-box-ic .ck-ico{width:17px;height:17px}
.mg-box--ok{border-color:#bfe6d3;background:#f2fbf6}
.mg-box--ok .mg-box-ic{background:linear-gradient(135deg,#16b999,#38cf81)}
.mg-box--sorry{border-color:#f1c2b6;background:#fff6f3}
.mg-box--sorry .mg-box-ic{background:#d4553a}
.mg-box--sorry .mg-box-t{color:#b8432b}
.mg-box--notice{border-color:#f3d3a3;background:#fff8ec}
.mg-box--notice .mg-box-ic{background:#e08a1b}
.mg-box--notice .mg-box-t{color:#a8620b}
.mg-box-t{display:block;font-size:15px;color:var(--ink,#102a37)}
.success-box.sx .mg-box p{margin:4px 0 0;max-width:none;font-size:13.5px;line-height:1.5;color:#4f6873}
.mg-box-call{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px}
.mg-call{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:800;color:#0b4f63;text-decoration:none}
.mg-call .ck-ico{width:17px;height:17px;color:#0e8fb0}
.mg-call:hover{text-decoration:underline;text-underline-offset:3px}
.mg-req{border:1px solid #d4553a;border-radius:10px;padding:8px 12px;background:#fff;color:#b8432b;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;transition:background-color .2s ease,color .2s ease}
.mg-box--notice .mg-req{border-color:#d98a14;color:#a8620b}
.mg-req:hover:not(:disabled){background:#d4553a;color:#fff}
.mg-box--notice .mg-req:hover:not(:disabled){background:#d98a14}
.mg-req:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(212,85,58,.22)}
.success-box.sx .mg-called{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:13.5px;font-weight:600;color:#0f7a4f}
.mg-called .ck-ico{flex:none;width:18px;height:18px}
.mg-blocked{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#b8432b}
.mg-blocked .ck-ico{flex:none;width:15px;height:15px}
.mg-q2 #mgSubmit:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
/* Раскладка — по ширине самой карточки: от 980 px — три колонки, как на
   макете; уже — две; на телефоне — одна. Списки («U.S. Citizen /
   Permanent Resident») так помещаются целиком. */
@container (min-width:980px){
  .mg-q2 .mg-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,auto auto auto)}
}
@container (max-width:700px){
  .mg-panels--2{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:560px){
  .mg-q2 .mg-grid{display:flex;flex-direction:column;gap:0}
  .mg-q2 .mg-grid>.mg-f{display:flex;flex-direction:column;gap:8px;margin:0 0 6px}
  .mg-q2 .mg-grid>.mg-f>:first-child{align-self:stretch}
  .mg-opts--3{grid-template-columns:minmax(0,1fr)}
  .mg-panel{padding:14px 14px 16px}
}
.mg-panel{container-type:inline-size}
@container (max-width:340px){
  .mg-opts--2{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:299px){
  .mg-two{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){.mg-opt,.mg-opt-ic,.mg-radio,.mg-req{transition:none}}

/* ---------- Шаг 4 — пожелания к типу жилья (23.10.2026, вариант 2 владельца) ----------
   Внизу раскрытой карточки: кнопка «Add other wishes» → поле для текста и
   быстрые кнопки; «Hide» сворачивает (написанное видно на кнопке). */
.s4w{grid-column:1/-1;min-width:0;padding-top:12px;border-top:1px dashed #e3eef2}
.s4w-add{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-height:40px;padding:8px 14px;border:1px dashed #9fd3e2;border-radius:12px;background:#f5fbfd;
  color:#007a9f;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.s4w-add .ck-ico{flex:none;width:17px;height:17px}
.s4w-add:hover{border-color:#0e8fb0;background:#eaf6fa}
.s4w-add:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,122,159,.22)}
.s4w-add.has{border-style:solid;border-color:#cfe6ee;background:#fff;color:#33505c;font-weight:600}
.s4w-add.has .ck-ico{color:#0e8fb0}
.s4w-prev{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.s4w-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px}
.s4w-lab{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873}
.s4w-hide{border:0;background:none;padding:2px 4px;border-radius:6px;font:inherit;font-size:13px;font-weight:600;color:#6a7e88;cursor:pointer}
.s4w-hide:hover{color:#0b4f63;text-decoration:underline;text-underline-offset:3px}
.s4w-hide:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,159,.25)}
.s4w-ta{display:block;width:100%;box-sizing:border-box;min-height:64px;resize:vertical;padding:12px 14px;border:1px solid #dbe6eb;border-radius:14px;background:#fff;
  font:inherit;font-size:15px;line-height:1.45;color:var(--ink,#102a37)}
.s4w-ta::placeholder{color:#9aaab2}
.s4w-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.s4w-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:6px 11px;border:1px solid #d3e3ea;border-radius:999px;background:#fff;
  font:inherit;font-size:13px;font-weight:600;color:#33505c;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .2s ease}
.s4w-chip .ck-ico{flex:none;width:12px;height:12px;stroke-width:2.4;color:#0e8fb0}
.s4w-chip:hover{border-color:#9fd3e2}
.s4w-chip.on{background:#e8f6fa;border-color:#7cc7da;color:#0b6f8c}
.s4w-chip:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,159,.25)}
/* Шаг 5: пожелания под строкой типа. */
.pc-type-w{grid-column:2/-1;font-size:13px;line-height:1.45;color:#4f6873;overflow-wrap:anywhere}
.pc-type-w b{font-weight:700;color:#33505c}
@media (prefers-reduced-motion:reduce){.s4w-add,.s4w-chip{transition:none}}

/* --- Степпер «сворачивающиеся главы» (24.10.2026, вариант C) --------------
   Пройденная глава — зелёный чип с галочкой (клик — вернуться в неё),
   текущая — раскрыта с подшагами, будущие — пунктиром. Полоса под ними —
   позиция из 7 подшагов. Кнопки сохраняют класс .step-tab (data-step),
   поэтому правила ниже перебивают старые стили вкладок. */
.plan-wrap{margin:28px 0 34px}
.plan-steps{display:flex;align-items:stretch;gap:12px;padding:12px;background:#fff;border:1px solid #e3eef2;border-radius:22px;box-shadow:0 10px 30px rgba(16,42,55,.05)}
.plan-wrap .progress-line{margin:14px 14px 0}
.plan-ch{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 16px;border-radius:16px;font-family:var(--fb-body,inherit);text-align:start;box-sizing:border-box}
.plan-ch-head{display:flex;flex-direction:column;gap:2px;min-width:0}
.plan-ch-k{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#4f6873;white-space:nowrap}
.plan-ch-t{font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink,#102a37);white-space:nowrap}
.plan-ch.is-active{flex:1 1 auto;flex-direction:column;align-items:stretch;gap:10px;background:#effafd;box-shadow:inset 0 0 0 2px #0e8fb0}
.plan-ch.is-active .plan-ch-head{flex-direction:row;align-items:baseline;flex-wrap:wrap;column-gap:10px}
.plan-ch.is-active .plan-ch-k{color:#0b6f8c}
.plan-steps .plan-ch.is-done{flex:0 0 auto;min-width:0;border:0;background:#eef7f4;padding:12px 16px;cursor:pointer;opacity:1;
  transition:background-color .18s ease,transform .18s ease,box-shadow .18s ease}
.plan-ch.is-done .plan-ch-k{color:#11735e}
.plan-steps .plan-ch.is-done:not([aria-disabled="true"]):hover{background:#dff0ea;transform:translateY(-1px);box-shadow:0 6px 16px rgba(17,115,94,.14);text-decoration:none}
.plan-steps .plan-ch.is-done[aria-disabled="true"]{cursor:not-allowed}
.plan-ch-ic{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:#11735e;color:#fff}
.plan-ch-ic svg{width:16px;height:16px}
.plan-steps .plan-ch.is-next{flex:0 1 auto;min-width:0;border:1px dashed #b5c9d0;background:#fff;padding:12px 16px;cursor:pointer;opacity:1;
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease}
.plan-steps .plan-ch.is-next:not([aria-disabled="true"]):hover{border-color:#0e8fb0;border-style:solid;background:#f3fbfd;transform:translateY(-1px);text-decoration:none}
.plan-steps .plan-ch.is-next[aria-disabled="true"]{cursor:not-allowed}
/* 4.2 после клика по главе 05 до заявки: пояснение над формой. */
.mg-unlock{margin:0 0 16px}
.plan-ch.is-next .plan-ch-t{color:#33505c}
.plan-ch-num{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;border:2px solid #b5c9d0;color:#4f6873;font-size:12px;font-weight:800;box-sizing:border-box}
.plan-subs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.plan-sub-line{flex:0 1 28px;min-width:10px;height:2px;background:#b9d7e0}
.plan-steps .plan-sub{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:6px 14px;padding-inline-start:6px;border-radius:999px;
  border:1px solid #b9d7e0;background:#fff;color:#4f6873;font-family:var(--fb-body,inherit);font-size:13px;font-weight:650;
  letter-spacing:0;text-transform:none;white-space:nowrap;opacity:1;cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease}
.plan-sub-n{display:grid;place-items:center;min-width:24px;height:24px;padding:0 4px;box-sizing:border-box;border-radius:999px;background:#eef4f6;color:#33505c;font-size:11px;font-weight:800}
.plan-steps .plan-sub.active{background:#0b6f8c;border-color:#0b6f8c;color:#fff}
.plan-steps .plan-sub.active .plan-sub-n{background:rgba(255,255,255,.2);color:#fff}
.plan-steps .plan-sub.is-done{color:#11735e;border-color:#bfe3d7;background:#f3faf7}
.plan-steps .plan-sub.is-done .plan-sub-n{background:#dff0ea;color:#11735e}
.plan-steps .plan-sub[aria-disabled="true"]{cursor:not-allowed;border-style:dashed}
.plan-steps .plan-sub:not([aria-disabled="true"]):not(.active):hover{border-color:#0e8fb0;background:#e8f6fa;color:#0b5f7c;text-decoration:none}
.plan-steps .step-tab:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,159,.3)}
@media (max-width:900px){
  .plan-steps{flex-direction:column;gap:8px;padding:10px}
  .plan-steps .plan-ch.is-done,.plan-steps .plan-ch.is-next{flex:none}
  .plan-ch-t{white-space:normal}
}
@media (max-width:520px){
  .plan-sub-line{display:none}
  .plan-steps .plan-sub{font-size:12.5px;padding-inline-end:12px}
  .plan-wrap .progress-line{margin:12px 6px 0}
}
@media (prefers-reduced-motion:reduce){.plan-steps .plan-ch.is-done,.plan-steps .plan-ch.is-next,.plan-steps .plan-sub{transition:none}.plan-steps .plan-ch.is-done:hover,.plan-steps .plan-ch.is-next:hover{transform:none}}

/* --- Меню «My plan» в шапке --------------------------------------------- */
.plan-menu{position:relative}
.plan-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #cfe7ee;border-radius:999px;background:#fff;
  color:var(--ink,#102a37);font-family:var(--fb-body,inherit);font-size:14px;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap;
  transition:background-color .18s ease,border-color .18s ease}
.plan-btn::-webkit-details-marker{display:none}
.plan-btn::marker{content:""}
.plan-btn:hover{border-color:#0e8fb0;background:#f1fafc}
.plan-btn:focus-visible{outline:3px solid var(--fb-cta,#ef5b34);outline-offset:2px}
.plan-menu[open] > .plan-btn{border-color:#0e8fb0;background:#effafd}
.plan-chev{transition:transform .18s ease}
.plan-menu[open] .plan-chev{transform:rotate(180deg)}
.plan-panel{position:absolute;top:calc(100% + 10px);inset-inline-start:0;z-index:60;min-width:240px;width:max-content;max-width:calc(100vw - 24px);box-sizing:border-box;padding:8px;
  background:#fff;border:1px solid var(--ck-line,#dde8ef);border-radius:16px;box-shadow:0 18px 44px rgba(16,42,55,.18);text-align:start}
.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
/* Пункт — как обычный пункт меню: строка текста, подсветка при наведении.
   Текущая глава — акцентным цветом с лёгким фоном. */
.plan-node{display:block;padding:11px 14px;border-radius:10px;color:var(--ink,#102a37);text-decoration:none;
  font-family:var(--fb-body,inherit);font-size:15px;font-weight:600;line-height:1.3;white-space:nowrap;
  transition:background-color .15s ease,color .15s ease}
.plan-node:hover{background:#f1f6f9;color:var(--ink,#102a37);text-decoration:none}
.plan-node.is-current,.plan-node[aria-current]{background:#effafd;color:#0b6f8c;font-weight:700}
.plan-node.is-current:hover,.plan-node[aria-current]:hover{background:#dff2f8;color:#0b6f8c}
.plan-node[aria-disabled="true"]{color:#8aa0a9;cursor:not-allowed}
.plan-node[aria-disabled="true"]:hover{background:transparent;color:#8aa0a9}
.plan-node:focus-visible{outline:3px solid var(--fb-cta,#ef5b34);outline-offset:2px}
/* В меню-бургере (телефон): те же три пункта — как остальные ссылки меню. */
.plan-mini{padding:0 0 6px;margin:0 0 6px;border-bottom:1px solid #e8eef2;text-align:start}
.plan-mini .plan-node{padding:11px 12px}
@media(max-width:900px){ .nav-menu-panel{min-width:240px} }
@media (prefers-reduced-motion:reduce){.plan-btn,.plan-chev,.plan-node{transition:none}}

/* --- Шаг 5.2 «Your breakdown» -------------------------------------------- */
.bd-box{display:flex;flex-direction:column;gap:18px}
.bd-box .mg-done p{margin:6px 0 0;color:#4f6873;font-size:14.5px;max-width:none}
.bd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.bd-card{border:1px solid #e3eef2;border-radius:18px;padding:20px 22px;background:#fff}
.bd-card h4{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#4f6873}
.bd-total{font-size:34px;line-height:1.1;font-weight:800;color:var(--ink,#102a37);font-variant-numeric:tabular-nums;margin-bottom:10px}
.bd-total small{font-size:15px;font-weight:600;color:#4f6873;margin-inline-start:6px}
.bd-rows{display:flex;flex-direction:column}
.bd-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid #eef3f5;font-size:14px;color:#33505c}
.bd-row b{font-variant-numeric:tabular-nums;color:var(--ink,#102a37);white-space:nowrap}
.bd-dti b{color:#0b6f8c;font-size:17px}
.bd-note{margin:12px 0 0;font-size:13px;color:#4f6873;line-height:1.5}
.bd-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.bd-open{margin-top:12px}
@media (max-width:720px){ .bd-grid{grid-template-columns:1fr} .bd-total{font-size:30px} }

/* --- Ипотечная анкета в две части (24.10.2026) ---------------------------
   5.1 «Your finances» — четыре плитки 2 × 2 (доход, долги, рейтинг, свои
   средства); название, поле и подсказка соседних плиток стоят на одних
   линиях (subgrid). 5.2 — строки «название слева — варианты справа»:
   назначение жилья, статус в США, тип дохода, под ними панели по ответам. */
.mg-steptag{float:right;margin:0 0 6px 14px;display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;
  background:#e8f5f9;color:#0b6f8c;font-size:12px;font-weight:800;letter-spacing:.02em;white-space:nowrap}
html[dir=rtl] .mg-steptag{float:left;margin:0 14px 6px 0}
.mg-det .mg-head h4{margin:0}
.mg-det .mg-head p{margin:6px 0 0;font-size:14px;line-height:1.55;color:#5d7480;max-width:none}

.mg-fin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:16px;margin-top:22px}
.mg-q2 .mg-fin>.mg-tile{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:10px;align-content:start;margin:0;
  padding:16px 16px 12px;background:#fff;border:1px solid #e3eef2;border-radius:18px;cursor:text;
  transition:border-color .18s ease,box-shadow .18s ease}
.mg-q2 .mg-fin>.mg-tile:hover{border-color:#b9dbe5}
.mg-q2 .mg-fin>.mg-tile:focus-within{border-color:#35aac6;box-shadow:0 0 0 4px rgba(14,143,176,.10)}
.mg-tile .mg-lab{align-self:end;cursor:text;font-size:14px}
.mg-tile .mg-lab-ic{width:36px;height:36px;border-radius:11px}
.mg-lab-t{flex:1 1 auto;min-width:0}
.mg-lab-unit{flex:none;margin-inline-start:auto;padding:3px 10px;border-radius:999px;background:#f1f6f9;color:#4f6873;font-size:12px;font-weight:800;white-space:nowrap}
.mg-q2 .mg-tile .input-wrap input,.mg-q2 .mg-tile select{height:56px;background-color:#f7fbfc;border-color:#dce9ee;border-radius:13px;
  font-size:19px;font-weight:700;color:var(--ink,#102a37);font-variant-numeric:tabular-nums}
.mg-q2 .mg-tile select{font-size:17px}
.mg-q2 .mg-tile .input-wrap input:focus,.mg-q2 .mg-tile select:focus{background-color:#fff}
.mg-q2 .mg-tile input::placeholder{font-weight:600;color:#9fb1b9}
.mg-q2 .mg-fin>.mg-tile:has(.field-error){border-color:#efc4c4}
.mg-tile .input-wrap .prefix{left:16px}
html[dir=rtl] .mg-tile .input-wrap .prefix{left:auto;right:16px}
.mg-q2 .mg-tile .input-wrap input.with-prefix{padding-left:42px}
html[dir=rtl] .mg-q2 .mg-tile .input-wrap input.with-prefix{padding-left:14px;padding-right:42px}
.mg-tile .mg-hint{min-height:18px}
.mg-tile .mg-hint small{font-size:12.5px;color:#5d7480}

.mg-rows{display:flex;flex-direction:column;margin-top:20px;background:#fff;border:1px solid #e3eef2;border-radius:18px}
.mg-q2 .mg-rows>.mg-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:18px 20px}
.mg-rows>.mg-row+.mg-row{border-top:1px solid #eef3f5}
.mg-row-h{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;min-width:0}
.mg-row-hint{display:block;margin-inline-start:auto;font-size:12.5px;line-height:1.4;color:#5d7480}
.mg-row-c{min-width:0}
.mg-row-c .mg-hint{min-height:0}
.mg-row-c .mg-hint small.field-error{margin-top:6px}
.mg-det .mg-panels{margin-top:16px}
.mg-actions--2 .secondary-btn{display:inline-flex;align-items:center;gap:8px}
@container (max-width:560px){
  .mg-fin{grid-template-columns:minmax(0,1fr);row-gap:12px}
  .mg-q2 .mg-tile select{font-size:15px}
  .mg-q2 .mg-rows>.mg-row{padding:16px 14px}
  .mg-row-hint{margin-inline-start:0;padding-inline-start:42px;flex-basis:100%}
  .mg-actions--2{flex-direction:column;align-items:stretch}
  .mg-actions--2 .secondary-btn,.mg-actions--2 .primary-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.mg-q2 .mg-fin>.mg-tile{transition:none}}

/* --- Щелчок по рамке поля ставит курсор (24.10.2026, public/field-focus.js) ---
   Над рамкой — текстовый курсор, как над самим полем. Кнопки внутри
   (−/+ счётчиков, карандаш) остаются кнопками. */
.s3f-num,.s3d-usd,.s3d-pct,.v-step-c,.s3h-num,.ph-box,.rp-well,.mg-tile{cursor:text}
.s3f-num :not(button):not(button *):not(a):not(select),
.s3h-num :not(button):not(button *),.ph-box :not(button):not(button *),.rp-well :not(button):not(button *),
.v-step-c :not(button):not(button *){cursor:text}

/* --- Единицы — в строке названия поля (25.10.2026) ------------------------
   «/ mo», «/ yr», «%» стоят чипом в конце названия, а не внутри поля. Один
   вид для всех: карточка суммы, симулятор (шаг 3), HOA (шаг 4), анкета. */
.f-unit{display:inline-flex;align-items:center;flex:none;padding:2px 9px;border-radius:999px;background:#f1f6f9;color:#4f6873;
  font-family:var(--fb-body,inherit);font-size:11.5px;font-weight:800;line-height:1.5;letter-spacing:0;text-transform:none;white-space:nowrap;font-style:normal}
/* В узких колонках симулятора (шаг 3) единица — простым текстом, как была:
   чип не помещается («Impuesto inmobiliario / año» переносился, test:nojump). */
.s3f-lab label .s3f-unit.f-unit{display:inline;margin-inline-start:4px;padding:0;background:none;border-radius:0;
  font-size:inherit;font-weight:600;color:var(--muted,#6a7e88);line-height:inherit;vertical-align:baseline}
.label-row .f-unit{margin-inline-start:auto}
.card-q-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}
.hero-card .card-q-row .card-question{margin:0}
.hero-card .card-q-row .card-permonth,.hero-card[data-amount] .card-q-row .card-permonth{order:0;margin:0;font-size:12px}

/* --- Подсказка-заполнитель исчезает, как только поле в фокусе (25.10.2026) --
   Серый пример («150,000», «No limit», «Your email») уходит сразу, когда
   посетитель встал в поле, — не путается с введённым значением. */
input:focus::placeholder,textarea:focus::placeholder{color:transparent;opacity:0}

/* --- Экран «спасибо»: ипотечный расчёт — главный следующий шаг (25.10.2026) --
   Сразу под «You're in!» — ярлык «Your next step» и крупная карточка с
   тремя выгодами; «What happens next» — ниже, спокойнее. */
.sx-hero{padding-bottom:20px}
.sx-nextstep{display:flex;align-items:center;gap:12px;margin:6px 0 14px}
.sx-ns-line{flex:1 1 0;height:1px;background:linear-gradient(90deg,rgba(14,143,176,0),rgba(14,143,176,.35))}
.sx-ns-line:last-child{background:linear-gradient(90deg,rgba(14,143,176,.35),rgba(14,143,176,0))}
.sx-ns-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:#e8f5f9;color:#0b6f8c;
  font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.sx-ns-pill .ck-ico{width:14px;height:14px;transform:rotate(90deg)}
html[dir=rtl] .sx-ns-pill .ck-ico{transform:rotate(90deg)}
.sx .sx-nextstep + #mgSlot{margin-top:0}
.mg-offer{padding:30px 32px;gap:22px 32px;box-shadow:0 24px 50px rgba(13,51,70,.28)}
.mg-card.mg-offer h4{font-size:26px}
.mg-ben{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px;position:relative;z-index:1}
.mg-ben li{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 7px;border-radius:999px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);color:#fff;font-size:13px;font-weight:650;line-height:1.2}
html[dir=rtl] .mg-ben li{padding:7px 7px 7px 12px}
.mg-ben-ic{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(127,227,214,.22);color:#9ff0e5}
.mg-ben-ic .ck-ico{width:14px;height:14px}
.mg-yes{padding:16px 24px;font-size:16px}
.sx #mgSlot + .sx-next{margin-top:28px}
.sx-next{padding-top:22px}
@media (max-width:720px){
  .mg-offer{padding:24px 20px}
  .mg-card.mg-offer h4{font-size:21px}
  .mg-ben{flex-direction:column;align-items:flex-start}
}

/* --- Глава 05 в четыре подшага (25.10.2026) -------------------------------
   Кнопки внизу экрана — как на шагах 1–4 (слева «назад», справа «дальше»);
   ползунок стажа; вопрос об EAD; «Request a Call» с кодом из SMS; расчёт
   без заявки. */
.mg-actbar{align-items:center}
.mg-act-r{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 16px;margin-inline-start:auto;min-width:0}
.mg-act-r .mg-blocked{max-width:340px;text-align:end;line-height:1.35}
.mg-act-r .primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.mg-step .mg-card,.sx #mgSlot .mg-card{margin:0}
.mg-lock-note{margin:16px 0 0}
/* Стаж ползунком: крупно «1 year 3 months», под ним 1 mo · 1 yr · 2+ yrs. */
.mg-ten{margin-top:6px}
.mg-ten-val{font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--ink,#102a37);margin:2px 0 8px;font-variant-numeric:tabular-nums}
.mg-ten.is-unset .mg-ten-val{color:#8aa0a9;font-size:16px;font-weight:700}
.mg-q2 .mg-ten input[type=range]{width:100%;height:28px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;accent-color:#0e8fb0;cursor:pointer}
.mg-ten.is-unset input[type=range]{opacity:.55}
.mg-ten input[type=range][aria-invalid="true"]{outline:2px solid #e9b0b0;outline-offset:4px;border-radius:8px}
.mg-ten-scale{position:relative;height:18px;margin:2px 9px 0;font-size:12px;font-weight:700;color:#5d7480}
.mg-ten-scale span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.mg-ten-scale span:first-child{transform:none;left:-9px !important}
.mg-ten-scale span:last-child{transform:translateX(-100%);left:calc(100% + 9px) !important}
html[dir=rtl] .mg-ten-scale{direction:ltr}
/* Не постоянный житель: вопрос об EAD — под выбором статуса. */
.mg-npr{margin-top:14px;padding:4px 16px 16px;border:1px solid #cfe3ea;border-radius:14px;background:#f8fcfd}
.mg-npr input[type=date]{max-width:280px}
/* Просьба позвонить (нет EAD, мало стажа и т. п.) — спокойная, не «ошибка». */
.mg-box--call{border-color:#bcdde8;background:linear-gradient(180deg,#f2f9fc,#fff)}
.mg-box--call .mg-box-ic{background:#0e8fb0}
.mg-box--call .mg-box-t{color:#0b4f63}
.mg-box--call .mg-req{border-color:#0e8fb0;color:#0b5f7c}
.mg-box--call .mg-req:hover:not(:disabled){background:#0e8fb0;color:#fff}
/* Номер и код из SMS. */
.mg-otp{flex:1 1 100%;margin-top:4px}
.mg-otp-l{display:block;margin:6px 0 6px;font-size:13px;font-weight:700;color:#3d5763}
.mg-otp-row{display:flex;flex-wrap:wrap;gap:8px}
.mg-q2 .mg-otp-row input{flex:1 1 180px;max-width:260px;height:44px;padding:0 12px;background:#fff}
.mg-q2 .mg-otp-row input.mg-otp-code{max-width:170px;font-size:20px;font-weight:800;letter-spacing:.32em;text-align:center;font-variant-numeric:tabular-nums}
.mg-otp-row .mg-req{height:44px;padding:0 16px}
.mg-otp-sent{margin:6px 0 0;font-size:13.5px;color:#3d5763}
.mg-otp-test{margin:8px 0 0;display:inline-block;padding:5px 10px;border-radius:8px;background:#fff8e6;border:1px dashed #e8c77e;color:#7a5a12;font-size:12.5px}
.mg-otp-links{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}
.mg-otp-a{border:0;background:none;padding:2px 0;font:inherit;font-size:13px;font-weight:700;color:#0b5f7c;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.mg-otp-a:hover{color:#0e8fb0}
.mg-otp .field-error{display:block;margin-top:6px}
/* Расчёт без заявки: цена и комфортный платёж крупно. */
.db-box{gap:16px}
.db-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;padding:22px 24px;border-radius:20px;color:#fff;
  background:radial-gradient(90% 140% at 100% 0%,rgba(20,184,177,.5) 0%,rgba(20,184,177,0) 60%),linear-gradient(120deg,#0d3346 0%,#0b5f7c 100%);
  box-shadow:0 18px 40px rgba(13,51,70,.22)}
.db-hero-main,.db-hero-side{display:flex;flex-direction:column;gap:4px;min-width:0}
.db-hero-side{padding-inline-start:18px;border-inline-start:1px solid rgba(255,255,255,.18)}
.db-k{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#9ff0e5}
.db-price{font-size:38px;line-height:1.1;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.db-budget{font-size:28px;line-height:1.15;font-weight:800;font-variant-numeric:tabular-nums}
.db-budget small{font-size:14px;font-weight:600;color:rgba(255,255,255,.8);margin-inline-start:6px}
.db-sub{font-size:13px;line-height:1.45;color:rgba(255,255,255,.85)}
.db-sub b{color:#fff}
.db-disc{margin:0}
@media (max-width:720px){
  .db-hero{grid-template-columns:minmax(0,1fr);padding:20px}
  .db-hero-side{padding-inline-start:0;border-inline-start:0;padding-top:12px;border-top:1px solid rgba(255,255,255,.18)}
  .db-price{font-size:32px}
  .mg-actbar{flex-wrap:wrap}
  .mg-act-r{width:100%}
  .mg-act-r .mg-blocked{max-width:none;text-align:start}
}

/* 25.10 (QA): текст в плашках одинаковый на «спасибо» и в прямом входе;
   на телефоне вложенные рамки ужимаются, текст плашки занимает всю ширину. */
.mg-q2 .mg-box p{margin:4px 0 0;max-width:none;font-size:13.5px;line-height:1.5;color:#4f6873}
@media (max-width:560px){
  .mg-npr{padding:2px 12px 12px}
  .mg-box{gap:10px;padding:12px}
  .mg-box-ic{width:26px;height:26px}
  .mg-box-ic .ck-ico{width:15px;height:15px}
  .mg-q2 .mg-otp-row input,.mg-q2 .mg-otp-row input.mg-otp-code,.mg-otp-row .mg-req{flex:1 1 100%;min-width:0;max-width:none}
}
/* RTL: ползунок стажа идёт слева направо, как и шкала под ним (иначе
   «1 месяц» под ползунком оказывался на стороне «2+ года»). */
html[dir=rtl] .mg-ten input[type=range]{direction:ltr}
/* 26.10.2026: номеров в подшагах нет — отступы пилюли одинаковые с обеих сторон. */
.plan-steps .plan-sub{padding:7px 16px}
@media (max-width:520px){.plan-steps .plan-sub{padding:6px 12px}}
/* 27.10.2026: 5.2 «Is this your first home purchase?» — варианты с подписью. */
.mg-opt--sub{align-items:flex-start;padding:12px 14px;min-height:64px}
.mg-opt--sub .mg-opt-t{display:flex;flex-direction:column;gap:2px;padding-top:4px}
.mg-opt-s{font-size:13px;font-weight:500;line-height:1.35;color:#5d7480;white-space:normal}
.mg-opt.on .mg-opt-s{color:#3f6b7a}

/* 27.10.2026 (владелец): варианты анкеты — как карточки шага 1: цветная
   иконка без плашки, жирное название; выбранная — голубая рамка и фон. */
.mg-opt{gap:12px;padding:10px 16px;font-weight:700;color:var(--ink,#102a37)}
.mg-opt-ic,.mg-opt.on .mg-opt-ic{width:24px;height:24px;border-radius:0;background:none;color:var(--fb-accent-ink,#007a9f)}
.mg-opt-ic .ck-ico{width:22px;height:22px}
.mg-opt.on{color:var(--ink,#102a37)}
.mg-opt--sub{padding:14px 16px}
.mg-opt--sub .mg-opt-t{padding-top:1px}
/* «Request a Call» — имя и телефон. */
.mg-box-call:has(.mg-cb){display:block}
.mg-cb{margin-top:4px}
.mg-cb-ask{margin:0 0 8px;font-size:13.5px;font-weight:600;color:#3d5763}
.mg-cb-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mg-cb-f{display:flex;flex-direction:column;gap:5px;min-width:0}
.mg-cb-f label{font-size:13px;font-weight:700;color:#3d5763}
.mg-q2 .mg-cb-f input{height:44px;padding:0 12px;background:#fff;width:100%;box-sizing:border-box}
.mg-cb-act{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:12px}
.mg-cb-act .mg-req{height:44px;padding:0 18px}
.mg-cb > .field-error{display:block;margin-top:8px}
@media (max-width:560px){.mg-cb-row{grid-template-columns:1fr}.mg-cb-act .mg-req{flex:1 1 100%}}
/* Дата визы — MM/DD/YYYY. */
.mg-q2 input.mg-date{max-width:200px;font-variant-numeric:tabular-nums;letter-spacing:.02em}
/* Вопрос «2+ года» над вариантами. */
.mg-job2 .mg-q{margin-top:0}
/* 27.10.2026 (владелец): иконки у названий полей и блоков анкеты — тоже
   цветные, без плашки (как на карточках шага 1 и вариантах анкеты). */
.mg-lab-ic,.mg-panel-ic,.mg-tile .mg-lab-ic,.mg-panel .mg-panel-ic{width:24px;height:24px;border-radius:0;background:none;color:var(--fb-accent-ink,#007a9f)}
.mg-lab-ic .ck-ico,.mg-panel-ic .ck-ico{width:22px;height:22px}
/* Дата визы — три поля MM / DD / YYYY в одной рамке (27.10.2026). */
.mg-q2 .mg-date{display:inline-flex;align-items:center;gap:2px;height:52px;padding:0 14px;border:1px solid #d7e4e8;border-radius:14px;background:#fff;
  font-size:18px;color:var(--ink,#102a37);cursor:text;transition:border-color .2s,box-shadow .2s}
.mg-q2 .mg-date:focus-within{border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.12)}
.mg-q2 .mg-date:has([aria-invalid="true"]){border-color:#e08b8b}
.mg-q2 .mg-date > span{color:#8aa0a9}
.mg-q2 .mg-date input.mg-ds{width:2.4ch;height:40px;padding:0 2px;border:0;border-radius:6px;background:transparent;box-shadow:none;outline:none;
  font:inherit;font-variant-numeric:tabular-nums;text-align:center;color:inherit}
.mg-q2 .mg-date input.mg-ds-y{width:4.6ch}
.mg-q2 .mg-date input.mg-ds:focus{background:#e8f5f9;box-shadow:none}
.mg-q2 .mg-date input.mg-ds::placeholder{color:#a8b8bf}
.mg-q2 .mg-date input.mg-ds:focus::placeholder{color:transparent}
/* 27.10.2026 (владелец): подсказки в полях — спокойнее, чтобы не путались
   с введённым значением; и место под «MM» / «DD» / «YYYY». */
input::placeholder,textarea::placeholder{color:#b4c1c7;font-weight:400;opacity:1}
.mg-q2 .mg-tile input::placeholder,.hoa-max-field input::placeholder,.price-hero .ph-box input::placeholder,.s4w-ta::placeholder,
.mg-q2 .mg-date input.mg-ds::placeholder{color:#b4c1c7;font-weight:400}
input:focus::placeholder,textarea:focus::placeholder,.mg-q2 .mg-date input.mg-ds:focus::placeholder{color:transparent}
.mg-q2 .mg-date input.mg-ds{width:2.3em}
.mg-q2 .mg-date input.mg-ds-y{width:3.1em}
/* 5.4 — максимальный платёж по видам ссуд и цены по городам (27.10.2026). */
.ln-box{margin-top:18px}
.bd-box .ln-box:first-child{margin-top:0}
.ln-title{margin:0 0 12px;font-size:18px;font-weight:800;color:var(--ink,#102a37)}
.ln-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ln-grid--1{grid-template-columns:minmax(0,1fr)}
.ln-card{display:flex;flex-direction:column;min-width:0;padding:18px 18px 16px;border:1px solid #cfe3ea;border-radius:18px;background:#f6fbfd}
.ln-card--fha{border-color:#bfe6d3;background:#f3fbf7}
.ln-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ln-top h4{margin:0;font-size:20px;font-weight:800;color:var(--ink,#102a37)}
.ln-dti{padding:4px 10px;border-radius:999px;background:#0e8fb0;color:#fff;font-size:12.5px;font-weight:800;white-space:nowrap}
.ln-card--fha .ln-dti{background:#16a07a}
.ln-k{margin-top:12px;font-size:13px;font-weight:700;color:#3d5763}
.ln-m{margin-top:2px;font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--ink,#102a37);font-variant-numeric:tabular-nums}
.ln-m small{margin-inline-start:4px;font-size:15px;font-weight:700;color:#5d7480}
.ln-incl{font-size:12.5px;color:#5d7480}
.ln-th{margin:16px 0 8px;font-size:14px;font-weight:800;color:var(--ink,#102a37)}
.ln-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #dde9ee;border-radius:12px;background:#fff}
.ln-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.ln-table th,.ln-table td{padding:8px 10px;border-bottom:1px solid #edf3f5;text-align:start;vertical-align:top}
.ln-table thead th{font-size:12px;font-weight:800;color:#3d5763;background:#f7fbfc}
.ln-table tbody th{font-weight:700;color:var(--ink,#102a37);white-space:nowrap}
.ln-table td{font-weight:700;color:var(--ink,#102a37)}
.ln-table td span{white-space:nowrap}
.ln-table tr:last-child th,.ln-table tr:last-child td{border-bottom:0}
.ln-note{margin:8px 0 0;font-size:12.5px;color:#5d7480}
.ln-key{margin-top:12px}
@media (max-width:900px){.ln-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:420px){.ln-table th,.ln-table td{padding:7px 7px;font-size:12px}.ln-m{font-size:28px}}
/* Карточки ссуд — одна под другой: таблице городов нужна вся ширина. */
.ln-grid,.ln-grid--2{grid-template-columns:minmax(0,1fr)}
.ln-card{padding:20px 22px 18px}
.ln-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
/* Телефон: таблица — карточками по городам (тип слева, цена справа). */
@media (max-width:560px){
  .ln-card{padding:16px 14px 14px}
  .ln-scroll{overflow:visible;border:0;background:none}
  .ln-table,.ln-table tbody,.ln-table tr,.ln-table th,.ln-table td{display:block}
  .ln-table thead{display:none}
  .ln-table tr{margin-bottom:8px;border:1px solid #dde9ee;border-radius:12px;background:#fff;overflow:hidden}
  .ln-table tbody th{padding:9px 12px;background:#f7fbfc;border-bottom:1px solid #edf3f5;font-size:13.5px}
  .ln-table td{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;font-size:13px}
  .ln-table td::before{content:attr(data-label);font-weight:600;color:#5d7480}
  .ln-table tr:last-child td{border-bottom:1px solid #edf3f5}
  .ln-table tr td:last-child{border-bottom:0}
}

/* ======================================================================
   27.10.2026 (владелец): анкета «Free mortgage breakdown» в стиле шагов
   1–4 («What monthly payment feels right?» … «Get ready for a more precise
   match»): те же размеры шрифтов, поля, карточки выбора, кнопки «да / нет»,
   блоки и наведение. Блок — в конце файла и с той же или большей
   специфичностью, чтобы перекрыть прежние правила анкеты.
   ====================================================================== */
/* Обёртка формы — без своей «карточки»: поля стоят прямо в шаге, как на 1–4. */
.mg-q2.mg-form,.success-box.sx .mg-q2.mg-form{border:0;background:none;box-shadow:none;padding:0;border-radius:0;overflow:visible}
.mg-q2 .mg-head{margin:0 0 18px}
.mg-q2 .mg-kicker,.success-box.sx .mg-q2 .mg-kicker{display:block;margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fb-accent-ink,#007a9f)}
.mg-q2 .mg-head h4,.success-box.sx .mg-q2 .mg-head h4{margin:0;font-size:18px;font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--ink,#102a37)}
.mg-q2 .mg-head p,.success-box.sx .mg-q2.mg-form .mg-head p{margin:6px 0 0;max-width:none;font-size:14px;line-height:1.5;color:var(--muted,#6a7e88)}

/* Блоки полей — как карточки шага 4 (.s4-card). */
.mg-q2 .mg-fin{margin-top:0;gap:14px}
.mg-q2 .mg-fin>.mg-tile{padding:16px 18px 18px;border:1px solid #e3eef2;border-radius:20px;background:#fff;row-gap:8px}
.mg-q2 .mg-fin>.mg-tile:hover{border-color:#cfe3ea}
.mg-q2 .mg-fin>.mg-tile:focus-within{border-color:#e3eef2;box-shadow:none}
.mg-q2 .mg-rows{margin-top:0;gap:14px;border:0;background:none;border-radius:0}
.mg-q2 .mg-rows>.mg-row{padding:16px 18px 18px;border:1px solid #e3eef2;border-radius:20px;background:#fff}
.mg-q2 .mg-rows>.mg-row+.mg-row{border-top:1px solid #e3eef2}

/* Название поля — как на шаге 4: маленькие заглавные; иконка — цветная. */
.mg-q2 .mg-lab,.mg-q2 .mg-tile .mg-lab,.mg-q2 .mg-lab-t{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873;line-height:18px}
.mg-q2 .mg-lab{gap:8px}
.mg-q2 .mg-lab-ic,.mg-q2 .mg-tile .mg-lab-ic{width:18px;height:18px}
.mg-q2 .mg-lab-ic .ck-ico{width:18px;height:18px}
.mg-q2 .mg-lab-unit{padding:2px 8px;font-size:11px;letter-spacing:0;text-transform:none}
.mg-q2 .mg-row-hint{font-size:12.5px;font-weight:500;color:#8aa0aa}
.mg-q2 .mg-hint small,.mg-q2 .mg-tile .mg-hint small{font-size:12px;color:var(--muted,#6a7e88)}
.mg-q2 .mg-hint small.field-error,.mg-q2 .field-error{font-size:12.5px;font-weight:600;color:#c02c2c}

/* Поля ввода и списки — как на шагах 1–4. */
.mg-q2 .input-wrap input,.mg-q2 .mg-tile .input-wrap input,.mg-q2 select,.mg-q2 .mg-tile select,.mg-q2 .mg-cb-f input{
  height:53px;padding:14px;border:1px solid #d7e4e8;border-radius:14px;background-color:#fbfdfe;
  font-size:16px;font-weight:400;color:var(--ink,#102a37);font-variant-numeric:normal}
.mg-q2 select,.mg-q2 .mg-tile select{padding-right:48px}
.mg-q2 .mg-tile .input-wrap input.with-prefix,.mg-q2 .input-wrap input.with-prefix{padding-left:42px}
html[dir=rtl] .mg-q2 .input-wrap input.with-prefix{padding-left:14px;padding-right:42px}
.mg-q2 .mg-tile .input-wrap .prefix,.mg-q2 .input-wrap .prefix{left:14px;font-size:16px;font-weight:800;color:#78909a}
.mg-q2 .input-wrap input:hover,.mg-q2 select:hover,.mg-q2 .mg-cb-f input:hover{border-color:#bfdbe4}
.mg-q2 .input-wrap input:focus,.mg-q2 select:focus,.mg-q2 .mg-cb-f input:focus,.mg-q2 .mg-tile .input-wrap input:focus,.mg-q2 .mg-tile select:focus{
  border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.12);background-color:#fff}
.mg-q2 .mg-fin>.mg-tile:has(.field-error) input,.mg-q2 .mg-fin>.mg-tile:has(.field-error) select,.mg-q2 [aria-invalid="true"]{border-color:#e6b4b4}
.mg-q2 .mg-fin>.mg-tile:has(.field-error){border-color:#e3eef2}

/* Варианты — как карточки выбора шага 1 (.choice-card). */
.mg-q2 .mg-opts{gap:14px}
.mg-q2 .mg-opt,.mg-q2 .mg-opt--sub{min-height:0;padding:17px;gap:10px;border:1px solid var(--line,#dce8ec);border-radius:17px;background:#fff;
  font-size:16px;font-weight:700;color:var(--ink,#102a37);align-items:center;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background-color .2s ease}
.mg-q2 .mg-opt--sub{align-items:flex-start}
.mg-q2 .mg-opt:hover{border-color:#35aac6;box-shadow:0 8px 22px rgba(0,122,159,.1);transform:translateY(-1px)}
.mg-q2 .mg-opt.on{border-color:#35aac6;background:#f1fcff;color:var(--ink,#102a37);box-shadow:0 8px 22px rgba(0,122,159,.1);transform:translateY(-1px)}
.mg-q2 .mg-opt.on:hover{box-shadow:0 12px 28px rgba(0,122,159,.18)}
.mg-q2 .mg-opt-ic,.mg-q2 .mg-opt.on .mg-opt-ic{width:22px;height:22px}
.mg-q2 .mg-opt-ic .ck-ico{width:22px;height:22px}
.mg-q2 .mg-opt--sub .mg-opt-t{padding-top:0;gap:4px}
.mg-q2 .mg-opt-s{font-size:12px;font-weight:400;line-height:1.45;color:var(--muted,#6a7e88)}
.mg-q2 .mg-f:has(.field-error) .mg-opt{border-color:#e6b4b4}

/* «Да / нет» — как кнопки 55+ на шаге 4 (.s4-yn). */
.mg-q2 .mg-yn{gap:10px}
.mg-q2 .mg-radio{position:relative;justify-content:center;min-height:52px;padding:0 14px;border:1px solid var(--line,#dce8ec);border-radius:14px;background:#fbfdfe;
  font-size:15px;font-weight:700;color:var(--ink,#102a37);transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.mg-q2 .mg-radio input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.mg-q2 .mg-radio:hover{border-color:#9fcddd;background:#f6fbfc}
.mg-q2 .mg-radio:has(input:checked){border-color:#1597b5;background:#effafd;box-shadow:inset 0 0 0 1px #1597b5;color:#0b4f63}
.mg-q2 .mg-radio:has(input:focus-visible){box-shadow:0 0 0 4px rgba(0,122,159,.22)}

/* Вопросы и вложенные блоки. */
.mg-q2 .mg-q{margin:14px 0 8px;font-size:13px;font-weight:800;line-height:1.45;color:var(--ink,#102a37)}
.mg-q2 .mg-panels{margin-top:14px}
.mg-q2 .mg-panel{padding:16px 18px 18px;border:1px solid #e3eef2;border-top:1px solid #e3eef2;border-radius:20px;background:#fff}
.mg-q2 .mg-panel-h{margin:0 0 2px;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873}
.mg-q2 .mg-panel-ic,.mg-q2 .mg-panel .mg-panel-ic{width:18px;height:18px}
.mg-q2 .mg-panel-ic .ck-ico{width:18px;height:18px}
.mg-q2 .mg-job2 .mg-q{margin-top:10px}
.mg-q2 .mg-npr{margin-top:14px;padding:2px 16px 16px;border:1px solid #e3eef2;border-radius:16px;background:#f7fbfc}
.mg-q2 .mg-sub{margin-top:14px;padding:4px 16px 16px;border-radius:16px}
.mg-q2 .mg-sub-t{margin-top:12px;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.mg-q2 .mg-sub .mg-q{margin-top:8px}

/* Дата — как поле ввода. */
.mg-q2 .mg-date{height:53px;padding:0 14px;border:1px solid #d7e4e8;border-radius:14px;background:#fbfdfe;font-size:16px}
.mg-q2 .mg-date:hover{border-color:#bfdbe4}
.mg-q2 .mg-date:focus-within{border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.12);background:#fff}
.mg-q2 .mg-date input.mg-ds{height:36px;font-size:16px}

/* Плашки «We're sorry» / уведомления / звонок. */
.mg-q2 .mg-box{margin-top:14px;padding:16px 18px;border-radius:16px;gap:12px}
.mg-q2 .mg-box-t{font-size:15px;font-weight:800}
.mg-q2 .mg-box p,.success-box.sx .mg-q2 .mg-box p{font-size:14px;line-height:1.5;color:#4f6873}
.mg-q2 .mg-cb-ask{margin:2px 0 10px;font-size:14px;font-weight:600;color:#3d5763}
.mg-q2 .mg-cb-f label{font-size:13px;font-weight:800;color:var(--ink,#102a37)}
.mg-q2 .mg-cb-row{gap:12px}

/* «Request a Call» — как вторичная кнопка шагов. */
.mg-q2 .mg-req,.mg-q2 .mg-cb-act .mg-req{height:auto;min-height:48px;padding:12px 18px;border-radius:15px;font-size:15px;font-weight:800}
.mg-q2 .mg-call{font-size:15px;font-weight:700}

/* 27.10.2026 (владелец): у всех блоков на шагах одна рамка — 1px #e3eef2,
   скругление 18px, белый фон (как карточки шага 4). Выбранный тип жилья
   на шаге 4 отмечен галочкой и цветной иконкой, рамка — та же. */
.s3-grp,.s3-layout .s3-grp{border:1px solid #e3eef2;border-radius:18px;background:#fff}
.s4t.on{border-color:#e3eef2;box-shadow:none}
.mg-q2 .mg-fin>.mg-tile,.mg-q2 .mg-rows>.mg-row,.mg-q2 .mg-panel,.mg-q2 .mg-npr,.ln-card,.ln-card--fha{border:1px solid #e3eef2;border-radius:18px}
.mg-q2 .mg-npr{background:#fff}
.ln-card,.ln-card--fha{background:#fff}
.mg-q2 .mg-fin>.mg-tile:hover{border-color:#e3eef2}
/* 5.2: карточки «первая покупка» и «статус» — одной высоты (среднее между
   прежними 77 и 58 px); текст по центру. */
.mg-q2 .mg-opt,.mg-q2 .mg-opt--sub{min-height:68px;padding:12px 17px;align-items:center}
/* «Request a Call» (27.10.2026): воздух между строками; кнопка активна
   только когда заполнены имя и телефон — до этого серая, с подсказкой. */
.mg-q2 .mg-cb{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(16,42,55,.14)}
.mg-q2 .mg-cb-ask{margin:0 0 14px;font-size:14px;font-weight:700;color:var(--ink,#102a37)}
.mg-q2 .mg-cb-row{gap:14px 16px}
.mg-q2 .mg-cb-f{gap:7px}
.mg-q2 .mg-cb-f .field-error{margin-top:2px}
.mg-q2 .mg-cb-act{margin-top:18px;gap:10px 16px}
.mg-q2 .mg-cb .mg-cb-send,.mg-q2 .mg-box--notice .mg-cb .mg-cb-send,.mg-q2 .mg-box--sorry .mg-cb .mg-cb-send,.mg-q2 .mg-box--call .mg-cb .mg-cb-send{
  display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 22px;border:0;border-radius:15px;
  background:linear-gradient(135deg,#008db5,#13b9b5);color:#fff;font-size:16px;font-weight:800;
  box-shadow:0 10px 24px rgba(0,141,181,.24);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}
.mg-q2 .mg-cb .mg-cb-send .ck-ico{width:18px;height:18px}
.mg-q2 .mg-cb .mg-cb-send:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 30px rgba(0,141,181,.3);background:linear-gradient(135deg,#008db5,#13b9b5);color:#fff}
.mg-q2 .mg-cb .mg-cb-send:disabled{background:#eef3f5;color:#9aabb3;box-shadow:none;cursor:not-allowed;transform:none;border:1px solid #dfe8ec}
.mg-q2 .mg-cb-need{font-size:12.5px;color:var(--muted,#6a7e88)}
.mg-q2 .mg-cb-need[hidden]{display:none}
.mg-q2 .mg-box p.mg-cb-ask,.success-box.sx .mg-q2 .mg-box p.mg-cb-ask{margin:0 0 16px;font-size:14px;font-weight:700;line-height:1.4;color:var(--ink,#102a37)}
.mg-q2 .mg-cb-f label{line-height:1.3}
.mg-q2 .mg-cb .mg-cb-send{white-space:nowrap;justify-content:center}
/* Телефон: текст плашки — во всю ширину, значок — рядом с заголовком. */
@media (max-width:560px){
  .mg-q2 .mg-box{position:relative;display:block;padding:14px}
  .mg-q2 .mg-box-ic{position:absolute;top:14px;inset-inline-start:14px}
  .mg-q2 .mg-box-t{display:flex;align-items:center;min-height:26px;padding-inline-start:36px}
  .mg-q2 .mg-cb .mg-cb-send{width:100%}
}

/* 28.10.2026 (владелец): «We're sorry» и уведомление о визе — как блок
   «U.S. Work History»: тёплый фон #fffaf0, рамка #f1d29b, значок у
   заголовка без кружка, заголовок 12px капслоком, текст — как вопрос. */
.mg-q2 .mg-box--warn,.mg-q2 .mg-box--warn.mg-box--sorry,.mg-q2 .mg-box--warn.mg-box--notice,.mg-q2 .mg-box--warn.mg-box--call{
  display:block;position:static;margin-top:14px;padding:4px 16px 16px;border:1px solid #f1d29b;border-radius:16px;background:#fffaf0}
.mg-q2 .mg-box--warn .mg-box-t.mg-sub-t{display:flex;align-items:center;gap:8px;min-height:0;margin-top:12px;padding:0;
  font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;line-height:18px;color:#a8620b}
.mg-q2 .mg-box--warn .mg-sub-t .ck-ico{width:18px;height:18px;flex:none}
.mg-q2 .mg-box--warn p.mg-box-q,.success-box.sx .mg-q2 .mg-box--warn p.mg-box-q{
  margin:8px 0 0;max-width:none;font-size:13px;font-weight:800;line-height:1.45;color:var(--ink,#102a37)}
.mg-q2 .mg-box--warn .mg-box-call{margin-top:4px}
.mg-q2 .mg-box--warn .mg-cb{border-top-color:#f1d29b}
@media (max-width:560px){
  .mg-q2 .mg-box--warn .mg-box-t.mg-sub-t{padding:0;min-height:0}
}
/* «U.S. Work History» с ответом «Yes» — как карточка «Employment / income
   type»: белый фон, рамка #e3eef2, скругление 18px, подпись #4f6873. */
.mg-q2 .mg-sub.mg-sub--ok{padding:16px 18px 18px;border:1px solid #e3eef2;border-radius:18px;background:#fff}
.mg-q2 .mg-sub--ok .mg-lab.mg-sub-t{display:flex;align-items:center;gap:8px;margin:0;color:#4f6873}
.mg-q2 .mg-sub--ok .mg-q{margin-top:12px}
@media (max-width:560px){ .mg-q2 .mg-sub.mg-sub--ok{padding:16px 14px} }
/* 28.10.2026: кнопка перехода, пока не всё выбрано, — серая, без тени. */
.primary-btn.is-incomplete:disabled,.mg-act-r .primary-btn:disabled{opacity:1;background:#e9f0f3;color:#93a6ae;border-color:#dfe8ec;
  box-shadow:none;transform:none;cursor:not-allowed}
.primary-btn.is-incomplete:disabled .ck-ico,.mg-act-r .primary-btn:disabled .ck-ico{color:#93a6ae}
/* Узкий телефон: «Solicitar una llamada» помещается в кнопку целиком. */
@media (max-width:400px){
  .mg-q2 .mg-cb .mg-cb-send,.mg-q2 .mg-box--notice .mg-cb .mg-cb-send,.mg-q2 .mg-box--sorry .mg-cb .mg-cb-send,.mg-q2 .mg-box--call .mg-cb .mg-cb-send{padding:0 14px;gap:8px;font-size:15px}
}

/* 28.10.2026: «Let's talk it through» — как «Visa Expiration Notice». */
.mg-q2 .mg-box--warn.mg-box--call{background:#fffaf0;border-color:#f1d29b}
.mg-q2 .mg-box--warn.mg-box--call .mg-box-t{color:#a8620b}

/* 5.4 (28.10.2026, по макету владельца): расходы на сделку в таблице,
   «Key Information», «Your Down Payment & Closing Costs». */
.ln-table tfoot th,.ln-table tfoot td{border-top:1px solid #e3eef2;background:#fbfaf5}
.ln-table tfoot .ln-close-t{display:inline-flex;align-items:center;gap:6px;font-weight:800}
.ln-c{font-weight:700;color:#3d5763;white-space:nowrap}
.ln-tip{display:inline-grid;place-items:center;width:18px;height:18px;color:var(--fb-accent-ink,#007a9f);cursor:help;border-radius:50%}
.ln-tip .ck-ico{width:16px;height:16px}
.ln-tip:focus-visible{outline:2px solid #41afca;outline-offset:2px}
.ln-info{display:grid;grid-template-columns:auto auto 1fr;align-items:start;gap:4px 14px;margin-top:18px;padding:16px 18px;border:1px solid #e3eef2;border-radius:18px;background:#fff}
.ln-info-ic{display:grid;place-items:center;width:22px;height:22px;color:var(--fb-accent-ink,#007a9f)}
.ln-info-ic .ck-ico{width:22px;height:22px}
.ln-info-t{font-size:15px;font-weight:800;color:var(--ink,#102a37);white-space:nowrap;line-height:22px}
.ln-info p{margin:0;font-size:14px;line-height:1.55;color:#4f6873}
.ln-dp{margin-top:16px;padding:20px 20px 18px;border:1px solid #f1d29b;border-radius:18px;background:#fffaf0}
.ln-dp-h{display:flex;gap:12px;align-items:flex-start}
.ln-dp-ic{flex:none;display:grid;place-items:center;width:26px;height:26px;color:#d98a14}
.ln-dp-ic .ck-ico{width:24px;height:24px}
.ln-dp h5{margin:0 0 6px;font-size:17px;font-weight:800;color:var(--ink,#102a37)}
.ln-dp-h p{margin:0;font-size:14px;line-height:1.55;color:#4f6873}
.ln-dp-vals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.ln-dp-v{display:flex;flex-direction:column;gap:6px}
.ln-dp-l{display:block;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873;line-height:1.35}
.ln-dp-l small{display:block;margin-top:2px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:#7a8f98}
.ln-dp-n{display:flex;align-items:center;min-height:50px;padding:0 14px;border:1px solid #ecdcb8;border-radius:14px;background:#fff;font-size:17px;font-weight:800;color:var(--ink,#102a37);white-space:nowrap}
.ln-dp-v[data-dp="close"] .ln-dp-n{background:#fbf6ea}
.ln-dp-act{margin-top:16px;padding-top:16px;border-top:1px dashed #f1d29b}
.ln-dp-warn{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;padding:12px 14px;border:1px solid #f1c2b6;border-radius:14px;background:#fff6f3;color:#b8432b;font-size:14px;font-weight:700;line-height:1.45}
.ln-dp-wic{flex:none;display:grid;place-items:center;width:20px;height:20px;color:#d4553a}
.ln-dp-wic .ck-ico{width:20px;height:20px}
.ln-dp-adj{display:grid;grid-template-columns:auto minmax(150px,220px) auto;align-items:center;gap:10px 14px}
.ln-dp-adj .ln-dp-l{margin:0}
.ln-dp-in input{height:50px;font-size:17px;font-weight:700;background:#fff}
.ln-dp-go{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 20px;white-space:nowrap}
.ln-dp-go .ck-ico{width:18px;height:18px}
.ln-dp-err{margin-top:8px}
.ln-dp-err[hidden]{display:none}
@media (max-width:760px){
  .ln-dp-vals{grid-template-columns:minmax(0,1fr)}
  .ln-dp-adj{grid-template-columns:minmax(0,1fr)}
  .ln-dp-go{width:100%}
  .ln-info{grid-template-columns:auto 1fr}
  .ln-info p{grid-column:1 / -1}
}
@media (max-width:560px){
  .ln-dp{padding:16px 14px}
  .ln-info{padding:14px}
}
@media (max-width:560px){
  .ln-table tfoot{display:block}
  .ln-table tfoot th{padding:9px 12px;font-size:13.5px;border-bottom:1px solid #edf3f5}
  .ln-table tfoot tr{background:#fbfaf5;border-color:#ecdcb8}
}
/* Три значения — подписи сверху, поля на одной линии. */
.ln-dp-v .ln-dp-l{flex:1}

/* ==== 5.4 «What you can qualify for» — новый вид (28.10.2026, владелец:
   «элегантно и понятно, важное выделено, в стиле системы»). Белые
   карточки, рамка #e3eef2 / 18px; главное — платёж M и общий диапазон цен
   в цветной «витрине»; лучший город в каждой колонке отмечен. ==== */
.ln-box{margin-top:6px}
.ln-title{margin:0 0 14px;font-size:20px;font-weight:800;letter-spacing:-.01em}
.ln-grid,.ln-grid--1,.ln-grid--2{grid-template-columns:minmax(0,1fr);gap:16px}
.ln-card,.ln-card--fha{padding:22px 24px 20px;border:1px solid #e3eef2;border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(16,42,55,.05)}
.ln-card{--ln-a:#0e8fb0;--ln-ink:#0b4f63;--ln-bg1:#effafd;--ln-bg2:#f8fdfe;--ln-bd:#cfe8ef}
.ln-card--fha{--ln-a:#16a07a;--ln-ink:#0f5e47;--ln-bg1:#eefaf4;--ln-bg2:#f8fdfa;--ln-bd:#c6ead8}
.ln-top{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
.ln-ic{flex:none;display:grid;place-items:center;width:28px;height:28px;color:var(--ln-a)}
.ln-ic .ck-ico{width:26px;height:26px}
.ln-top h4{flex:1;min-width:0;margin:0;font-size:21px;font-weight:800;letter-spacing:-.01em}
.ln-dti{flex:none;padding:6px 12px;border-radius:999px;background:var(--ln-a);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.01em}
.ln-card--fha .ln-dti{background:var(--ln-a)}
/* Витрина: M слева, общий диапазон цен справа. */
.ln-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px 24px;margin-top:16px;padding:18px 20px;
  border:1px solid var(--ln-bd);border-radius:16px;background:linear-gradient(135deg,var(--ln-bg1),var(--ln-bg2))}
.ln-hero-m,.ln-hero-p{display:flex;flex-direction:column;min-width:0}
.ln-hero-p{justify-content:center;padding-inline-start:24px;border-inline-start:1px dashed var(--ln-bd)}
.ln-hero .ln-k{margin:0;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873;line-height:1.4}
.ln-hero .ln-m{display:flex;align-items:baseline;margin:6px 0 4px;font-size:44px;line-height:1.05;font-weight:800;letter-spacing:-.03em;color:var(--ln-ink)}
.ln-hero .ln-m small{margin-inline-start:6px;font-size:16px;font-weight:700;letter-spacing:0;color:#5d7480}
.ln-hero .ln-incl{font-size:13px;line-height:1.45;color:#5d7480}
.ln-all{margin-top:6px;font-size:26px;line-height:1.15;font-weight:800;letter-spacing:-.02em;color:var(--ink,#102a37);font-variant-numeric:tabular-nums;white-space:nowrap}
/* Таблица. */
.ln-th{margin:20px 0 10px;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873}
.ln-scroll{border:1px solid #e3eef2;border-radius:14px}
.ln-table{font-size:14px}
.ln-table th,.ln-table td{padding:12px 14px;vertical-align:middle;border-bottom:1px solid #eef4f6}
.ln-table thead th{padding:11px 14px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#4f6873;background:#f7fbfc}
.ln-th-t{display:inline-flex;align-items:center;gap:7px}
.ln-th-ic{display:inline-grid;place-items:center;width:18px;height:18px;color:var(--ln-a)}
.ln-th-ic .ck-ico{width:17px;height:17px}
.ln-table tbody th{font-size:14px;font-weight:700}
.ln-table tbody tr{transition:background-color .15s ease}
.ln-table tbody tr:hover{background:#f8fbfc}
.ln-table td{font-weight:800}
.ln-table td.ln-best{position:relative;background:var(--ln-bg1);color:var(--ln-ink)}
.ln-table td.ln-best .ln-r::before{content:"";display:inline-block;width:7px;height:7px;margin-inline-end:7px;border-radius:50%;background:var(--ln-a);vertical-align:2px}
.ln-legend{display:flex;align-items:center;gap:8px;margin:10px 2px 0;font-size:12.5px;color:#5d7480}
.ln-legend-dot{width:7px;height:7px;border-radius:50%;background:var(--ln-a)}
/* Расходы на сделку — тёплая строка, как блоки-предупреждения. */
.ln-table tfoot th,.ln-table tfoot td{border-top:1px solid #f1d29b;border-bottom:0;background:#fffaf0}
.ln-table tfoot .ln-close-t{gap:7px;font-size:13px;color:#8a5a10}
.ln-close-ic{display:inline-grid;place-items:center;width:18px;height:18px;color:#d98a14}
.ln-close-ic .ck-ico{width:17px;height:17px}
.ln-c{font-size:13.5px;font-weight:800;color:#8a5a10}
.ln-tip{color:#b5761a}
/* Условия расчёта — плашками. */
.ln-note{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.ln-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #e3eef2;border-radius:999px;background:#f8fbfc;font-size:13px;font-weight:700;color:#3d5763}
.ln-chip-ic{display:inline-grid;place-items:center;width:16px;height:16px;color:var(--ln-a)}
.ln-chip-ic .ck-ico{width:16px;height:16px}
/* «Key Information» и блок взноса — в том же ритме. */
.ln-info{margin-top:16px;border-radius:20px}
.ln-dp{border-radius:20px;padding:22px 24px 20px}
.ln-dp-adj .ln-dp-in input:focus{border-color:#41afca}
@media (max-width:760px){
  .ln-hero{grid-template-columns:minmax(0,1fr)}
  .ln-hero-p{padding-inline-start:0;padding-top:14px;border-inline-start:0;border-top:1px dashed var(--ln-bd)}
}
@media (max-width:560px){
  .ln-card,.ln-card--fha{padding:18px 14px 16px}
  .ln-top h4{font-size:18px}
  .ln-dti{padding:5px 10px;font-size:12px}
  .ln-hero{padding:16px}
  .ln-hero .ln-m{font-size:36px}
  .ln-all{font-size:22px}
  .ln-scroll{border:0}
  .ln-table tr{border-color:#e3eef2;border-radius:14px}
  .ln-table td{padding:10px 12px;font-size:13.5px}
  .ln-table td.ln-best{background:var(--ln-bg1)}
  .ln-table tfoot tr{border-color:#f1d29b;background:#fffaf0}
  .ln-dp{padding:16px 14px}
}
.ln-table tfoot th{white-space:nowrap}
.ln-table tfoot .ln-close-t{font-size:12.5px}
/* Блок взноса — все значения можно править (28.10.2026). */
.ln-dp-v{min-width:0}
.ln-dp-in input{height:50px;padding-inline-start:38px;border:1px solid #ecdcb8;border-radius:14px;background:#fff;font-size:17px;font-weight:800;color:var(--ink,#102a37)}
.ln-dp-in input:hover{border-color:#e2c98f}
.ln-dp-in input:focus{border-color:#41afca;box-shadow:0 0 0 4px rgba(65,175,202,.14);outline:0}
.ln-dp-in input[aria-invalid]{border-color:#c02c2c}
.ln-dp-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}
.ln-dp-dash{font-weight:800;color:#8a5a10}
.ln-dp-v[data-dp="close"] .ln-dp-in input{background:#fffdf7;font-size:15.5px;padding-inline-start:34px}
.ln-dp-auto{align-self:flex-start;margin-top:2px;padding:0;border:0;background:none;color:var(--fb-accent-ink,#007a9f);font-size:13px;font-weight:700;text-decoration:underline;cursor:pointer}
.ln-dp-auto:hover{color:#0b4f63}
.ln-dp-auto[hidden],.ln-dp-warn[hidden],.ln-dp-ok[hidden]{display:none}
.ln-dp-ok{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;padding:12px 14px;border:1px solid #bfe6d3;border-radius:14px;background:#f2fbf6;color:#0f6b4f;font-size:14px;font-weight:700;line-height:1.45}
.ln-dp-ok .ln-dp-wic{color:#16a07a}
@media (max-width:760px){ .ln-dp-l small.is-blank{display:none} }

/* ==== Экран «спасибо»: подбор риелтора (30.10.2026) ====
   Анимация 3–5 с: «радар» с типами жилья по орбите, три строки-этапа и
   полоса прогресса; потом карточка риелтора. Длительность — --rt-d,
   уже прошедшее время — --rt-e (отрицательная задержка: перерисовка
   экрана продолжает анимацию с того же места). */
.rt-slot{margin:26px auto 0;max-width:760px}
.rt-load{display:flex;align-items:center;gap:28px;padding:26px 30px;border:1px solid #d7ecf2;border-radius:24px;
  background:radial-gradient(120% 140% at 0% 0%,#effafd 0%,#fff 55%),#fff;box-shadow:0 18px 40px rgba(16,42,55,.07);text-align:start}
.rt-radar{position:relative;flex:none;width:132px;height:132px;border-radius:50%;background:radial-gradient(circle,#e6f6fa 0%,#f5fbfd 60%,transparent 70%)}
.rt-ring{position:absolute;inset:0;border:1.5px solid rgba(14,143,176,.35);border-radius:50%;animation:rtPulse 2.4s ease-out infinite;opacity:0}
.rt-ring--2{animation-delay:.8s}.rt-ring--3{animation-delay:1.6s}
@keyframes rtPulse{0%{transform:scale(.35);opacity:.9}100%{transform:scale(1.05);opacity:0}}
.rt-sweep{position:absolute;inset:6px;border-radius:50%;background:conic-gradient(from 0deg,rgba(19,185,181,.0) 0deg,rgba(19,185,181,.0) 250deg,rgba(19,185,181,.35) 350deg,rgba(19,185,181,.0) 360deg);
  animation:rtSpin 1.6s linear infinite}
@keyframes rtSpin{to{transform:rotate(360deg)}}
.rt-core{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;
  background:linear-gradient(135deg,#008db5,#13b9b5);color:#fff;box-shadow:0 8px 20px rgba(0,141,181,.35);animation:rtBeat 1.2s ease-in-out infinite}
.rt-core .ck-ico{width:22px;height:22px}
@keyframes rtBeat{50%{transform:scale(1.08)}}
.rt-dot{position:absolute;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:#e4572e;
  box-shadow:0 4px 12px rgba(16,42,55,.12);animation:rtFloat 2.6s ease-in-out infinite}
.rt-dot .ck-ico{width:16px;height:16px}
.rt-dot--1{left:4px;top:18px}.rt-dot--2{right:2px;top:30px;animation-delay:.5s;color:#0e8fb0}
.rt-dot--3{left:16px;bottom:4px;animation-delay:1s;color:#16a07a}.rt-dot--4{right:14px;bottom:6px;animation-delay:1.5s;color:#d98a14}
@keyframes rtFloat{0%,100%{transform:translateY(0) scale(.92);opacity:.75}50%{transform:translateY(-5px) scale(1);opacity:1}}
.rt-load-c{flex:1;min-width:0}
.rt-load-t{margin:0 0 14px;font-size:17px;font-weight:800;line-height:1.4;color:var(--ink,#102a37)}
.rt-steps{display:grid;gap:8px;margin:0 0 16px;padding:0;list-style:none}
.rt-step{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#9aabb3;transition:color .3s ease}
.rt-step-ic{display:grid;place-items:center;width:20px;height:20px;border:1.5px solid #d7e4e8;border-radius:50%;color:transparent;transition:all .3s ease}
.rt-step-ic .ck-ico{width:12px;height:12px}
.rt-step.is-on{color:var(--ink,#102a37)}
.rt-step.is-on .rt-step-ic{border-color:#13b9b5;border-top-color:transparent;animation:rtSpin .8s linear infinite}
.rt-step.is-done{color:#3d5763}
.rt-step.is-done .rt-step-ic{border-color:#16a07a;background:#16a07a;color:#fff}
.rt-bar{height:6px;border-radius:999px;background:#e6f0f3;overflow:hidden}
.rt-bar span{display:block;height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#008db5,#13b9b5);transform-origin:left center;
  animation:rtFill var(--rt-d,4s) linear var(--rt-e,0s) both}
html[dir=rtl] .rt-bar span{transform-origin:right center}
@keyframes rtFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* Карточка риелтора. */
.rt-card{padding:22px 26px 20px;border:1px solid #e3eef2;border-radius:24px;background:#fff;box-shadow:0 18px 40px rgba(16,42,55,.07);text-align:start}
.rt-in{animation:rtReveal .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes rtReveal{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.rt-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.rt-kicker{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#4f6873}
.rt-found{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#eafaf2;color:#0f6b4f;font-size:12.5px;font-weight:800}
.rt-found .ck-ico{width:14px;height:14px}
.rt-body{display:flex;align-items:center;gap:20px}
.rt-photo{flex:none;width:104px;height:138px;border-radius:16px;object-fit:cover;background:#eef5f7;box-shadow:0 10px 24px rgba(16,42,55,.14)}
.rt-photo--ini{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,#008db5,#13b9b5);color:#fff;font-size:30px;font-weight:800}
.rt-in .rt-photo{animation:rtPhoto .7s .15s cubic-bezier(.2,.8,.2,1) both}
@keyframes rtPhoto{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
.rt-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.rt-name{font-size:22px;font-weight:800;line-height:1.25;letter-spacing:-.01em;color:var(--ink,#102a37)}
.rt-co{margin-bottom:4px;font-size:16px;font-weight:600;color:#3d5763}
.rt-line{font-size:15px;color:#5d7480}
.rt-line-l{color:#8a9da6}
.rt-line a{color:var(--fb-accent-ink,#007a9f);font-weight:700;text-decoration:none}
.rt-line a:hover{text-decoration:underline}
.rt-note{display:flex;align-items:flex-start;gap:10px;margin:18px 0 0;padding:12px 14px;border-radius:14px;background:#f2f9fc;color:#0b4f63;font-size:14px;font-weight:600;line-height:1.5}
.rt-note .ck-ico{flex:none;width:18px;height:18px;margin-top:1px;color:#0e8fb0}
@media (max-width:620px){
  .rt-slot{margin-top:20px}
  .rt-load{flex-direction:column;gap:18px;padding:22px 18px;text-align:center}
  .rt-steps{justify-items:start;text-align:start}
  .rt-card{padding:18px 16px}
  .rt-body{gap:14px}
  .rt-photo{width:86px;height:114px}
  .rt-name{font-size:19px}
}
@media (prefers-reduced-motion:reduce){
  .rt-ring,.rt-sweep,.rt-core,.rt-dot,.rt-step.is-on .rt-step-ic{animation:none}
  .rt-ring{opacity:.4}
  .rt-in,.rt-in .rt-photo{animation:none}
}
/* Абзацы «спасибо» центрируются и сужаются — у риелтора свои. */
.success-box.sx .rt-load-t{margin:0 0 14px;max-width:none;font-size:17px;font-weight:800;line-height:1.4;color:var(--ink,#102a37);text-align:start}
.success-box.sx .rt-note{display:flex;margin:18px 0 0;max-width:none;font-size:14px;font-weight:600;line-height:1.5;color:#0b4f63;text-align:start}
@media (max-width:620px){ .success-box.sx .rt-load-t{text-align:center} }
/* 4.2: почему кнопка серая (30.10.2026). */
.lead-need{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-size:13.5px;font-weight:600;color:#5d7480}
.lead-need .ck-ico{flex:none;width:16px;height:16px;color:var(--fb-accent-ink,#007a9f)}
.lead-need[hidden]{display:none}

/* Шаг 3 — FHA: кредит больше лимита (30.10.2026). Поле «Loan amount» и
   ползунок — красные, подпись под полем — о превышении; пояснение с двумя
   выходами — карточкой ПОВЕРХ содержимого под полем (шаг не сдвигается —
   правило «ничего не прыгает»), закрывается ×. */
.s3f[data-field="loan"]{position:relative}
.s3f.is-over .s3f-num,.s3f.is-over .s3f-num:hover{border-color:#e4572e;background:#fff8f5;box-shadow:0 0 0 4px rgba(228,87,46,.12)}
.s3f.is-over .s3f-num input{color:#b8432b}
.s3f.is-over .s3f-cap{color:#c4462a;font-weight:700}
.fha-lim{position:absolute;z-index:30;top:calc(100% + 10px);inset-inline-end:0;width:min(440px,calc(100vw - 32px));display:flex;gap:12px;align-items:flex-start;
  padding:16px 16px 14px;border:1px solid #f4c7b6;border-radius:16px;background:#fff;
  box-shadow:0 22px 48px rgba(16,42,55,.18),0 2px 6px rgba(16,42,55,.06);animation:fhaIn .3s cubic-bezier(.2,.8,.2,1) both;text-align:start}
.fha-lim::before{content:"";position:absolute;top:-7px;inset-inline-end:34px;width:12px;height:12px;background:#fff;border-left:1px solid #f4c7b6;border-top:1px solid #f4c7b6;transform:rotate(45deg)}
html[dir=rtl] .fha-lim::before{transform:rotate(-45deg)}
.fha-lim[hidden]{display:none}
@keyframes fhaIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.fha-lim-ic{flex:none;display:grid;place-items:center;width:22px;height:22px;margin-top:1px;color:#e4572e}
.fha-lim-ic .ck-ico{width:20px;height:20px}
.fha-lim-b{min-width:0;flex:1;padding-inline-end:18px}
.fha-lim-t{display:block;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#b8432b;line-height:20px}
.fha-lim-p{margin:4px 0 0;font-size:14px;line-height:1.5;color:#4f3a33}
.fha-lim-act{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:12px}
.fha-lim-btn{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:1px solid #e4572e;border-radius:12px;background:#e4572e;color:#fff;
  font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease}
.fha-lim-btn .ck-ico{width:15px;height:15px}
.fha-lim-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(228,87,46,.25)}
.fha-lim-btn--alt{background:#fff;color:#b8432b;border-color:#f0b7a3}
.fha-lim-btn--alt:hover{background:#fff1ec;box-shadow:none}
.fha-lim-btn[hidden]{display:none}
.fha-lim-x{position:absolute;top:10px;inset-inline-end:10px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:8px;background:transparent;color:#9a7f76;cursor:pointer}
.fha-lim-x .ck-ico{width:16px;height:16px;transform:rotate(45deg)}
.fha-lim-x:hover{background:#fff1ec;color:#b8432b}
@media (max-width:560px){ .fha-lim{width:100%;padding:14px 12px 12px} .fha-lim-btn{flex:1 1 100%;justify-content:center} }
@media (prefers-reduced-motion:reduce){ .fha-lim{animation:none} }
.s3f.is-over input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,#e4572e 0 var(--p,50%),#f6dcd3 var(--p,50%) 100%)}
.s3f.is-over input[type=range]::-moz-range-progress{background:#e4572e}
.s3f.is-over input[type=range]::-webkit-slider-thumb{border-color:#e4572e}
.s3f.is-over input[type=range]::-moz-range-thumb{border-color:#e4572e}
.ln-chip--cap{border-color:#f4c7b6;background:#fff7f3;color:#b8432b}
.ln-chip--cap .ln-chip-ic{color:#e4572e}
/* 31.10.2026: условия расчёта — в «витрине» карточки, во всю ширину под платежом. */
.ln-hero .ln-note{grid-column:1 / -1;margin:2px 0 0;padding-top:14px;border-top:1px dashed var(--ln-bd)}
.ln-hero .ln-chip{background:rgba(255,255,255,.75);border-color:var(--ln-bd)}

/* 5.4: «продавец может оплатить closing costs» (31.10.2026) — вместо блока взноса. */
.ln-sc .ln-dp-h p{font-size:14.5px;line-height:1.6;color:#3f5863}
.ln-sc-steps{list-style:none;counter-reset:sc;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 0;padding:16px 0 0;border-top:1px dashed #f1d29b}
.ln-sc-steps li{counter-increment:sc;display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #ecdcb8;border-radius:14px;background:#fff;font-size:14px;font-weight:700;line-height:1.4;color:var(--ink,#102a37)}
.ln-sc-steps li::before{content:counter(sc);flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fdebc8;color:#8a5a10;font-size:13px;font-weight:800}
.ln-sc-lim{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;font-size:13px;line-height:1.5;color:#5d7480}
.ln-sc-lim .ln-dp-wic{width:18px;height:18px;color:#c98a1c}
.ln-sc-lim .ln-dp-wic .ck-ico{width:18px;height:18px}
@media (max-width:720px){.ln-sc-steps{grid-template-columns:minmax(0,1fr)}}

/* 5.4: срок кредита — плашка с переключателем «Term 30-year | 15-year» (31.10.2026, вариант C). */
.ln-hero .ln-note{align-items:center}
.ln-chip.ln-term{gap:8px;padding:4px 4px 4px 12px}
.ln-term-k{font-weight:700;color:#3d5763}
.ln-term-opts{display:inline-flex;gap:2px;padding:2px;border-radius:999px;background:#eef5f7}
.ln-card--fha .ln-term-opts{background:#edf7f2}
.ln-term-o{min-height:30px;padding:0 13px;border:0;border-radius:999px;background:transparent;color:#5d7480;font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.ln-term-o:hover{color:var(--ln-ink);background:rgba(255,255,255,.8)}
.ln-term-o.on{background:var(--ln-a);color:#fff;box-shadow:0 2px 6px color-mix(in srgb,var(--ln-a) 30%,transparent)}
.ln-term-o:focus-visible{outline:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--ln-a) 30%,transparent)}
/* Таблица 5.4: средние цены, без выделения строк; «Approximate closing costs» — по центру строки. */
.ln-table tfoot th,.ln-table tfoot td{vertical-align:middle}
.ln-table tfoot .ln-close-t{vertical-align:middle}


/* Шаг 2 — сумму в месяц можно поменять (31.10.2026): поле с карандашом, как цена слева, только меньше. */
.rh2 .rh-pay-v{align-items:center}
.rh2 .rh-pay .rp-well{margin:0;padding:4px 6px 4px 12px;border-radius:14px;gap:1px}
.rh2 .rh-pay .rp-cur,.rh2 .rh-pay .rp-input,.rh2 .rh-pay .rp-mirror{font-size:32px;font-weight:800;letter-spacing:-.03em}
.rh2 .rh-pay .rp-pen{flex-basis:32px;width:32px;height:32px;margin-left:8px;border-radius:10px}
.rh2 .rh-pay .rp-pen .ck-ico{width:15px;height:15px}
.rh2 .rh-pay-n{display:block;margin-top:8px;font-size:12px;color:#bdeff5;transition:color .15s}
.rh2 .rh-pay-n.is-warn{color:#ffe08a;font-weight:700}
@media (max-width:720px){.rh2 .rh-pay .rp-cur,.rh2 .rh-pay .rp-input,.rh2 .rh-pay .rp-mirror{font-size:28px}}
html[dir="rtl"] .rh2 .rh-pay .rp-pen{margin-left:0;margin-right:8px}

/* 5.4 (после заявки): платёж и финансы — одним блоком (31.10.2026). */
.bd-grid.bd-sum{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0;border:1px solid #e3eef2;border-radius:20px;background:#fff;overflow:hidden}
.bd-sum h4{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#4f6873}
.bd-sum-pay{padding:22px 24px}
.bd-sum-fin{padding:22px 24px;background:linear-gradient(180deg,#f7fbfc,#fbfdfe);border-inline-start:1px solid #e3eef2;display:flex;flex-direction:column}
.bd-sum .bd-total{margin-bottom:2px;font-size:40px;letter-spacing:-.03em}
.bd-sum .bd-scen{margin:0 0 14px;font-size:13px;color:#6c8590}
.bd-bar{display:flex;gap:3px;height:10px;margin:0 0 6px;border-radius:999px;overflow:hidden;background:#eef4f6}
.bd-bar i{display:block;min-width:4px;height:100%}
.bd-c-pi{background:#0e8fb0}.bd-c-mip{background:#f29e7c}.bd-c-tax{background:#5fb7a0}.bd-c-insurance{background:#f2c14e}.bd-c-hoa{background:#a9bcc5}
.bd-sum .bd-row{padding:10px 0;border-top:1px solid #f0f5f7;align-items:center}
.bd-sum .bd-row:first-child{border-top:0}
.bd-sum .bd-row>span{display:inline-flex;align-items:center;gap:9px}
.bd-dot{flex:none;display:inline-block;width:10px;height:10px;border-radius:3px}
.bd-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}
.bd-kpi{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #e3eef2;border-radius:14px;background:#fff}
.bd-kpi span{font-size:12.5px;color:#5d7480}
.bd-kpi b{font-size:19px;font-weight:800;color:var(--ink,#102a37);font-variant-numeric:tabular-nums;white-space:nowrap}
.bd-kpi small{font-size:12.5px;font-weight:600;color:#6c8590}
.bd-sum .bd-dti{margin-top:14px;padding:14px;border:1px solid #e3eef2;border-radius:14px;background:#fff}
.bd-dti-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px;color:#33505c}
.bd-sum .bd-dti-h b{font-size:26px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:#0b6f8c}
.bd-meter{position:relative;height:8px;margin-top:10px;border-radius:999px;background:linear-gradient(90deg,#d9f1e7 0 60%,#fdf0d4 60% 71.6%,#fde2da 71.6% 100%)}
.bd-meter i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:#16a07a}
.bd-dti--mid .bd-meter i{background:#e0a325}.bd-dti--high .bd-meter i{background:#e4572e}
.bd-dti--mid .bd-dti-h b{color:#b7791f}.bd-dti--high .bd-dti-h b{color:#c2410c}
.bd-meter s{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:2px;background:#fff;text-decoration:none}
.bd-meter-k{display:flex;justify-content:space-between;margin-top:6px;font-size:11.5px;color:#7a8f98}
.bd-zone{font-weight:800;color:#0f7a5c}.bd-dti--mid .bd-zone{color:#b7791f}.bd-dti--high .bd-zone{color:#c2410c}
.bd-sum-fin .bd-note{margin-top:auto;padding-top:12px;font-size:12.5px}
@media (max-width:760px){
  .bd-grid.bd-sum{grid-template-columns:1fr}
  .bd-sum-fin{border-inline-start:0;border-top:1px solid #e3eef2}
  .bd-sum .bd-total{font-size:34px}
}
/* 5.4: пределы цены — строка под плашками (31.10.2026). */
.ln-cap{flex-basis:100%;display:flex;gap:8px;align-items:flex-start;margin:2px 0 0;font-size:13px;line-height:1.45;font-weight:700;color:#b8432b}
.ln-cap-ic{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;margin-top:1px;color:#e4572e}
.ln-cap-ic .ck-ico{width:16px;height:16px}
.ln-cap-same{font-weight:600;color:#7a5244}
.ln-cap[title]{cursor:help}

/* Главная: три главы из меню Tools на первом экране (31.10.2026, вариант C). */
.hero-tools{display:flex;flex-direction:column;gap:4px;max-width:420px;margin-top:30px;padding:8px;border-radius:20px;background:rgba(8,28,38,.28);border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-shadow:none}
.hero-tool{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:14px;color:#fff;text-decoration:none;transition:background-color .25s ease,padding .25s ease}
.hero-tool-ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.4);transition:background-color .25s ease,border-color .25s ease}
.hero-tool-ic svg{width:18px;height:18px}
.hero-tool-tx{display:flex;flex-direction:column;flex:1;min-width:0}
.hero-tool-tx b{font-size:15px;font-weight:800;line-height:1.3}
.hero-tool-tx small{font-size:12.5px;line-height:1.35;color:rgba(255,255,255,.78)}
.hero-tool-ar{flex:none;width:18px;height:18px;color:#ffb199;opacity:0;transform:translateX(-6px);transition:opacity .25s ease,transform .25s ease}
.hero-tool-ar svg{width:18px;height:18px}
.hero-tool:hover,.hero-tool:focus-visible{background:rgba(255,255,255,.14);padding-inline-start:16px;color:#fff;text-decoration:none}
.hero-tool:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}
.hero-tool:hover .hero-tool-ic,.hero-tool:focus-visible .hero-tool-ic{background:#f2643c;border-color:#f2643c}
.hero-tool:hover .hero-tool-ar,.hero-tool:focus-visible .hero-tool-ar{opacity:1;transform:none}
.hero-tool[aria-disabled="true"]{opacity:.55}
html[dir="rtl"] .hero-tool-ar{transform:scaleX(-1) translateX(-6px)}
html[dir="rtl"] .hero-tool:hover .hero-tool-ar{transform:scaleX(-1)}
@media (max-width:720px){.hero-tools{max-width:none;margin-top:22px}}
@media (prefers-reduced-motion:reduce){.hero-tool,.hero-tool-ic,.hero-tool-ar{transition:none}}
.hero-tools--m{display:none}
@media (max-width:980px){
  .hero-copy .hero-tools{display:none}
  .hero-tools--m{display:flex;max-width:520px;margin-top:0}
}

/* Главная (31.10.2026): нижняя кромка панели Tools — на одной линии с нижней кромкой карточки суммы. */
@media (min-width:981px){
  .hero-content>.hero-copy{align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end}
  .hero-copy .hero-tools{margin-bottom:0}
}
/* Шаг 4 (31.10.2026): «Other» — свой город. */
.city-chip--other>span:last-child{font-style:normal}
.pref-other{margin-top:12px;max-width:360px}
.pref-other[hidden]{display:none}
.pref-other input{height:48px}
/* Шаг 3 (31.10.2026): цена выше лимита FHA при минимальном взносе — плашка на нижней кромке карточки FHA
   (absolute: высота карточек не меняется, страница не «прыгает»). */
.lp-card{position:relative}
.lp-lim{position:absolute;left:50%;bottom:-12px;transform:translateX(-50%);z-index:2;display:inline-flex;gap:6px;align-items:center;max-width:calc(100% - 24px);padding:3px 11px;border-radius:999px;background:#f2fafc;border:1px solid #cfe5ec;box-shadow:0 4px 12px rgba(16,42,55,.08);color:#2f5664;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap;cursor:help;transition:background-color .2s,border-color .2s,color .2s}
.lp-lim.is-over{background:#fff4ee;border-color:#f4b9a2;box-shadow:0 4px 12px rgba(228,87,46,.15);color:#a8431f}
.lp-lim .lp-lim-ic{color:#0e8fb0}.lp-lim.is-over .lp-lim-ic{color:#e4572e}
.lp-lim>span:last-child{overflow:hidden;text-overflow:ellipsis}
.lp-lim[hidden]{display:none}
.lp-lim-ic{flex:none;display:inline-grid;place-items:center;width:14px;height:14px}
.lp-lim-ic .ck-ico{width:14px;height:14px}
.lp-card{align-content:start}
/* 01.11.2026: под суммой на карточке программы — «Loan payment» (кредит + страховка ипотеки). */
.lp-pay-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#6a7e88);line-height:1.25;overflow-wrap:anywhere;max-width:100%}
@media (max-width:520px){.lp-pay-k{font-size:10px;letter-spacing:0;text-transform:none}}

/* 4.2 (01.11.2026): контакты — по желанию, выделенным блоком «Get matching homes by email». */
.lead-opt{margin-top:20px;padding:20px 22px 18px;border:1px solid #bfe3ec;border-radius:20px;background:linear-gradient(180deg,#f2fbfd,#fbfeff);box-shadow:0 10px 26px rgba(0,122,159,.07)}
.lead-opt-h{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.lead-opt-ic{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#0e8fb0;color:#fff;box-shadow:0 6px 14px rgba(14,143,176,.25)}
.lead-opt-ic .ck-ico{width:20px;height:20px}
.lead-opt h4{margin:0 0 4px;font-size:18px;font-weight:800;color:var(--ink,#102a37);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lead-opt-badge{display:inline-flex;padding:3px 10px;border-radius:999px;background:#fff;border:1px solid #cfe5ec;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#4f6873}
.lead-opt-h p{margin:0;font-size:14px;line-height:1.55;color:#4f6873}
.lead-opt .field input{background:#fff}
.lead-opt .consent{background:#fff}
.lead-opt .privacy-note{margin-top:12px}
.lead-opt .lead-need{margin:12px 0 0}
@media (max-width:720px){.lead-opt{padding:16px 14px}.lead-opt-ic{width:36px;height:36px;border-radius:12px}}

/* 01.11.2026 (владелец, H3 + E3): глава из Tools — в шапке только она,
   в конце главы — строка «… — done» и две другие опции. */
.plan-steps.is-solo{display:block}
.solo-bar{display:flex;align-items:center;gap:18px;padding:14px 18px;border-radius:16px;background:linear-gradient(90deg,#0b6f8c,#0e8fb0);color:#fff;box-sizing:border-box;min-width:0}
.solo-bar-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.16);flex:none}
.solo-bar-h{display:flex;flex-direction:column;gap:2px;min-width:0}
.solo-bar-t{font-weight:800;font-size:17px;line-height:1.25}
.solo-bar-k{font-size:12px;opacity:.85}
.solo-subs{display:flex;align-items:center;gap:6px;margin-inline-start:auto;flex-wrap:wrap;justify-content:flex-end}
.plan-steps .solo-sub{padding:7px 14px;border-radius:999px;border:0;font:700 13px/1.2 var(--fb-body,inherit);text-transform:none;letter-spacing:0;background:rgba(255,255,255,.12);color:#e6f5fa;cursor:pointer;
  transition:background .2s,color .2s}
.plan-steps .solo-sub.is-done{background:rgba(255,255,255,.24);color:#fff}
.plan-steps .solo-sub.active{background:#fff;color:#0b6f8c;cursor:default}
.plan-steps .solo-sub[aria-disabled="true"]{cursor:not-allowed;opacity:.75}
.plan-steps .solo-sub:not(.active):not([aria-disabled="true"]):hover{background:rgba(255,255,255,.32);color:#fff}
.plan-steps .solo-sub:focus-visible{outline:2px solid #fff;outline-offset:2px}
.solo-sub-ln{width:14px;height:2px;background:rgba(255,255,255,.35);flex:none}
@media (max-width:760px){
  .solo-bar{flex-wrap:wrap;gap:12px;padding:12px 14px}
  .solo-bar-ic{width:38px;height:38px}
  .solo-subs{margin-inline-start:0;width:100%;justify-content:flex-start}
  .solo-sub-ln{display:none}
  .plan-steps .solo-sub{padding:6px 11px;font-size:12px}
}
.solo-next{display:flex;align-items:center;gap:18px;margin:24px 0 4px;padding:20px 22px;border-radius:20px;background:#effafd;box-shadow:inset 0 0 0 1px #cfe8ef}
.solo-next-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#11735e;color:#fff;flex:none}
.solo-next-ic svg{width:18px;height:18px}
.solo-next-l{flex:1 1 auto;min-width:0}
.solo-next-l b{display:block;font-size:17px;color:#102a37}
.solo-next-l span{color:#4f6873;font-size:14px}
.solo-next-b{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.solo-go{display:inline-flex;align-items:center;gap:10px;padding:13px 18px;border-radius:14px;border:0;font:700 15px/1.2 var(--fb-body,inherit);white-space:nowrap;cursor:pointer;
  background:#fff;color:#0b5f7c;box-shadow:inset 0 0 0 1.5px #0e8fb0;transition:transform .2s,box-shadow .2s,background .2s}
.solo-go svg{width:18px;height:18px;flex:none}
.solo-go:hover{transform:translateY(-2px);background:#f3fbfd}
.solo-go.is-pri{background:#f0643a;color:#fff;box-shadow:0 10px 22px rgba(240,100,58,.28)}
.solo-go.is-pri:hover{background:#e3552b}
.solo-go:focus-visible{outline:3px solid rgba(14,143,176,.45);outline-offset:2px}
@media (max-width:860px){
  .solo-next{flex-wrap:wrap}
  .solo-next-l{flex:1 1 calc(100% - 60px)}
  .solo-next-b{width:100%;justify-content:stretch}
  .solo-go{flex:1 1 auto;justify-content:center;white-space:normal}
}
@media (prefers-reduced-motion:reduce){.solo-go,.plan-steps .solo-sub{transition:none}.solo-go:hover{transform:none}}

/* 01.11.2026 (владелец): «Min. down» — в строке названия программы
   («Conventional loan   Min. down 3%»), описание — строкой ниже, как было.
   Узкая карточка — «Min. down» переносится под название целиком; на
   телефоне описание скрыто, «Min. down» остаётся. Внизу карточки — сбор
   и страховка, в столбик. */
.lp-nl{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:1px;min-width:0}
.lp-nm .lp-min{font-size:12.5px;font-weight:600;color:var(--muted,#6a7e88);white-space:nowrap;line-height:1.3}
.lp-nm .lp-min b{font-size:inherit;font-weight:800;line-height:inherit;color:var(--ink,#102a37);font-variant-numeric:tabular-nums}
.lp-facts{grid-template-columns:minmax(0,1fr)}
.lp-facts>span:nth-child(3){grid-column:auto}
@media(max-width:720px){
  .lp-nm .lp-min{white-space:normal;font-size:12px}
  .lp-nm .lp-min b{white-space:nowrap}
}

/* 01.11.2026: шапка страниц (FAQ, Privacy, Terms): верхний отступ учитывает
   закреплённое меню (76 / 68 px) — «Home / FAQ» больше не прилипает к нему;
   фон — фирменный тёмный градиент (у города картинка задаётся в style и
   перекрывает его). Подписи мелким серым — темнее, читаются на белом. */
.page-hero{background-color:#0b2740;background-image:radial-gradient(circle at 88% -10%,rgba(19,185,181,.28),transparent 46%),linear-gradient(135deg,#0b2740 0%,#0d3443 55%,#0b4a5e 100%)}
.page-hero.small{padding:calc(76px + clamp(28px,4vw,52px)) 0 clamp(30px,4vw,48px)}
.page-hero .crumbs{opacity:.85}
.page-hero .prose-head{max-width:760px}
.page-hero .crumbs a{color:#bfe9f2}
.hero-card small{color:#6b7f88}
@media(max-width:720px){.page-hero.small{padding-top:calc(68px + 26px)}}

/* 01.11.2026 (владелец, вариант B): «… at a glance» — плитки со значком.
   Значок — слева в бирюзовом квадрате, подпись капсом, значение ниже;
   при наведении плитка чуть приподнимается. */
.guide-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.guide-facts>div.gf-tile{position:relative;background:#fff;border:1px solid #e3edf1;border-radius:18px;padding:18px 18px 18px 74px;box-shadow:none;
  min-height:78px;transition:transform .2s,box-shadow .2s,border-color .2s}
.guide-facts>div.gf-tile:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(11,39,64,.08);border-color:#d3e4ea}
.gf-ic{position:absolute;left:18px;top:18px;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(135deg,#e6f6fa,#d6eef5);color:#0a7aa8}
.guide-facts>div.gf-tile dt{font-size:11px;letter-spacing:.1em;color:#5f7d90;font-weight:700;margin:2px 0 4px;line-height:1.4}
.guide-facts>div.gf-tile dd{font-size:15px;line-height:1.45;color:#0b2740;font-weight:550}
.guide-facts>div.gf-tile dd a{color:#0a7aa8;font-weight:650;text-decoration:none;border-bottom:1.5px solid rgba(10,122,168,.3)}
.guide-facts>div.gf-tile dd a:hover{border-bottom-color:currentColor}
html[dir=rtl] .guide-facts>div.gf-tile{padding:18px 74px 18px 18px}
html[dir=rtl] .gf-ic{left:auto;right:18px}
@media(max-width:980px){.guide-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.guide-facts{grid-template-columns:1fr;gap:10px}
  .guide-facts>div.gf-tile{padding:16px 16px 16px 68px}.gf-ic{left:14px;top:16px;width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.guide-facts>div.gf-tile{transition:none}.guide-facts>div.gf-tile:hover{transform:none}}

/* 01.11.2026 (владелец, вариант 2): места в гиде города — карточки со
   значком и меткой категории (как плитки «… at a glance»). Прежняя
   полоса сверху и точка у названия убраны. */
.guide-places{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.guide-place.gp-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #e3edf1;border-radius:20px;padding:22px;box-shadow:none;
  transition:transform .2s,box-shadow .2s,border-color .2s}
.guide-place.gp-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(11,39,64,.09);border-color:#d3e4ea}
.gp-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gp-ic{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#e6f6fa,#d6eef5);color:#0a7aa8}
.gp-chip{font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#0b6f8c;background:#eef8fb;border-radius:999px;padding:6px 10px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.guide-place.gp-card h3{font-size:17.5px;margin:4px 0 0;line-height:1.3;color:#0b2740}
.guide-place.gp-card h3::before{content:none}
.guide-place.gp-card p{margin:0 0 .6em;color:#4d6574;font-size:14.5px;line-height:1.6}
.guide-place.gp-card p:last-child{margin-bottom:0}
.guide-place.gp-card a{color:#0a7aa8;font-weight:650;text-decoration:none;border-bottom:1.5px solid rgba(10,122,168,.3)}
.guide-place.gp-card a:hover{border-bottom-color:currentColor}
.guide-place.gp-card[data-cat="nbhd"] .gp-ic,.guide-place.gp-card[data-cat="c55"] .gp-ic,.guide-place.gp-card[data-cat="area"] .gp-ic{background:linear-gradient(135deg,#fff3ec,#ffe6da);color:#e2602f}
.guide-place.gp-card[data-cat="nbhd"] .gp-chip,.guide-place.gp-card[data-cat="c55"] .gp-chip,.guide-place.gp-card[data-cat="area"] .gp-chip{background:#fff3ec;color:#b84a1f}
@media(max-width:980px){.guide-places{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.guide-places{grid-template-columns:1fr;gap:12px}.guide-place.gp-card{padding:18px}}
@media(prefers-reduced-motion:reduce){.guide-place.gp-card{transition:none}.guide-place.gp-card:hover{transform:none}}

/* «How we calculate» (01.11.2026, вариант C) + строка-оговорка у результата (вариант 1) */
.hc-page{max-width:820px}
.hc-ex{background:radial-gradient(circle at 92% -20%,rgba(19,185,181,.28),transparent 50%),linear-gradient(135deg,#0b2740,#0d3443 60%,#0b4a5e);color:#fff;border-radius:24px;padding:30px 32px;margin:0 0 30px;box-shadow:0 24px 50px rgba(11,39,64,.22)}
.hc-ex h2{color:#fff;margin:0 0 4px;font-size:22px}
.hc-sub{color:#9fdde0;font-size:14px;margin-bottom:18px}
.hc-row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid rgba(255,255,255,.12)}
.hc-row .n{width:28px;height:28px;border-radius:50%;background:rgba(127,224,228,.18);color:#7fe0e4;display:grid;place-items:center;font-weight:800;font-size:13px}
.hc-row .t{color:#dbeef3;font-size:15px;line-height:1.45}
.hc-row .t small{display:block;color:#9cc3cf;font-size:12.5px;margin-top:2px}
.hc-row .v{font-weight:800;font-size:17px;white-space:nowrap;color:#fff}
.hc-row.total .v{font-size:26px;color:#ffb38f}
.hc-tbl{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #e1ebf0;border-radius:18px;overflow:hidden;margin:0 0 26px}
.hc-tbl th,.hc-tbl td{text-align:left;padding:13px 16px;border-bottom:1px solid #edf3f6;font-size:14.5px;line-height:1.6;vertical-align:top}
.hc-tbl tr:last-child td{border-bottom:0}
.hc-tbl th{background:#f5fafb;color:#5d7889;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.hc-tbl td:first-child{font-weight:700;color:#0b2740;width:30%}
.hc-tbl td{color:#45606f}
.hc-note{background:#fff6f1;border:1px solid #ffd9c7;border-radius:14px;padding:14px 18px;color:#7a3b1d;font-size:14.5px;line-height:1.6}
.est-note{display:flex;gap:8px;align-items:flex-start;margin-top:12px;color:#d6f2f3;font-size:13.5px;line-height:1.45;max-width:46ch}
.est-note svg{flex:none;width:16px;height:16px;margin-top:1px;opacity:.9}
.est-note a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.s3-sum .est-note{color:#a9c6d2;max-width:none;margin-top:14px;font-size:12.5px}
@media(max-width:720px){.hc-ex{padding:22px 18px}.hc-row{grid-template-columns:28px 1fr auto;gap:10px}.hc-row .v{font-size:15px}.hc-row.total .v{font-size:21px}
  .hc-tbl td,.hc-tbl th{padding:11px 12px;font-size:13.5px}.hc-tbl td:first-child{width:36%}}
@media(max-width:720px){.s3-sum .est-note{display:none}}

/* 02.11.2026: сумма кредита — только для чтения; кредит меньше порога; Jumbo */
.s3f--ro .s3f-num input{cursor:default;pointer-events:none}
.s3f--ro .s3f-num:focus-within{box-shadow:none}
.s3f--ro .s3f-cap{margin-top:10px}
.loan-warn{display:flex;gap:14px;align-items:flex-start;margin:16px 0;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,#fff6ef,#fff1e8);border:1px solid #ffcdb3;color:#7a3b1d}
.loan-warn[hidden],.jumbo-info[hidden]{display:none}
.loan-warn-ic{flex:none;width:36px;height:36px;border-radius:11px;background:#ff8a5c;color:#fff;display:grid;place-items:center}
.loan-warn-ic svg{width:20px;height:20px}
.loan-warn b{display:block;color:#5e2a10;font-size:15px;margin-bottom:3px}
.loan-warn p{margin:0;font-size:14px;line-height:1.55}
.jumbo-info{display:flex;gap:14px;align-items:flex-start;margin:0 0 22px;padding:16px 20px;border-radius:18px;background:radial-gradient(circle at 92% -20%,rgba(19,185,181,.25),transparent 50%),linear-gradient(135deg,#0b2740,#0d3443 60%,#0b4a5e);color:#dbeef3}
.jumbo-ic{flex:none;width:38px;height:38px;border-radius:12px;background:rgba(127,224,228,.16);color:#7fe0e4;display:grid;place-items:center}
.jumbo-ic svg{width:20px;height:20px}
.jumbo-info b{display:block;color:#fff;font-size:15.5px;margin-bottom:4px}
.jumbo-info p{margin:0;font-size:14px;line-height:1.6}
@media(max-width:720px){.jumbo-info{padding:14px 16px}.loan-warn{padding:14px}}

/* 02.11.2026: пояснение Jumbo — плавно, с увеличением (zoom) */
.jumbo-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.8,.2,1),margin .5s cubic-bezier(.2,.8,.2,1);margin:0}
.jumbo-wrap.on{grid-template-rows:1fr;margin:0 0 22px}
.jumbo-clip{min-height:0;overflow:hidden;padding:0 2px}
.jumbo-wrap .jumbo-info{margin:0;transform:scale(.92);transform-origin:50% 0;opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s ease}
.jumbo-wrap.on .jumbo-info{transform:scale(1);opacity:1}
@media (prefers-reduced-motion:reduce){.jumbo-wrap,.jumbo-wrap .jumbo-info{transition:none}}

/* 03.11.2026: страница воронки по адресу главы (/affordability/…) */
.funnel-page .funnel-section{padding-top:calc(76px + clamp(24px,4vw,44px))}
.funnel-page .funnel-h1{font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.1;margin:.3rem 0 .4rem}

/* 04.11.2026: FHA для купивших раньше — видна, но неактивна */
.lp-card.is-off{cursor:not-allowed;background:#f5f8f9;border-color:#e3eaee;box-shadow:none}
.lp-card.is-off:hover{box-shadow:none;border-color:#e3eaee}
.lp-card.is-off .lp-nl b,.lp-card.is-off .lp-pay strong{color:#8aa0ad}
.lp-card.is-off .lp-rad{border-color:#cfdbe1;background:#eef3f5}
.lp-card.is-off .lp-facts,.lp-card.is-off .lp-pay small,.lp-card.is-off .lp-pay-k{opacity:.6}
.lp-card.is-off [data-lp-desc]{color:#a0522d;font-weight:600}
