:root {
  --paper: #f4f1ea;
  --paper-light: #fbfaf7;
  --paper-deep: #e9e4da;
  --ink: #101b18;
  --forest: #123d34;
  --forest-deep: #09271f;
  --clay: #b85538;
  --clay-dark: #98452d;
  --muted: #66706c;
  --line: #d8d2c8;
  --white: #fff;
  --shadow: 0 24px 70px rgba(20, 31, 27, .12);
  --shell: 1240px;
}

/* Условия специальной цены показываются рядом с суммой во всех списках. */
p.price-qualifier { margin: 10px 0 14px; font-size: 13px; line-height: 1.5; font-weight: 500; color: #314b44; text-transform: none; letter-spacing: normal; }
.object-summary small.price-qualifier { display: block; margin-top: 8px; font-family: inherit; font-size: 13px; line-height: 1.5; font-weight: 500; color: #314b44; }
.price-panel p.price-qualifier { color: #e6f0ec; }
.comparison-picker-card p.price-qualifier { margin: 6px 0 0; font-size: 12px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Manrope", sans-serif; line-height: 1.6; }
body, button, input { font-family: "Manrope", sans-serif; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
button, a { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: "Prata", Georgia, serif; font-weight: 400; letter-spacing: -.035em; line-height: 1.08; }
h1 { font-size: clamp(54px, 6.2vw, 92px); }
h2 { font-size: clamp(38px, 4vw, 60px); }
h3 { line-height: 1.25; }
.shell { width: min(calc(100% - 48px), var(--shell)); margin-inline: auto; }
.section { padding-top: 112px; padding-bottom: 112px; }
.icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 1000; padding: 10px 14px; border: 0; color: #fff; background: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.eyebrow { display: block; margin-bottom: 18px; color: var(--clay-dark); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow-light { color: #e7b29f; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid transparent; border-radius: 7px; font-size: 13px; font-weight: 700; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-1px); }
.button:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid rgba(190, 90, 59, .4); outline-offset: 3px; }
.button-dark { color: #fff; background: var(--ink); }
.button-dark:hover { background: var(--forest); }
.button-accent { color: #fff; background: var(--clay); }
.button-accent:hover { background: var(--clay-dark); }
.button-light { color: var(--ink); background: #fff; }
.button-light:hover { background: #f1ede5; }
.button-outline { border-color: var(--line); background: transparent; }
.button-glass { color: #fff; border-color: rgba(255,255,255,.42); background: rgba(8, 22, 18, .2); backdrop-filter: blur(12px); }
.button-glass:hover { border-color: #fff; background: rgba(8, 22, 18, .38); }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--forest); font-size: 13px; font-weight: 700; }
.text-link-light { color: #fff; }
.text-link .icon { width: 18px; transition: transform .2s ease; }
.text-link:hover .icon { transform: translateX(4px); }

/* Шапка */
.site-header { position: relative; z-index: 50; border-bottom: 1px solid rgba(16,27,24,.08); background: rgba(251,250,247,.96); }
.header-inner { display: grid; min-height: 88px; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 42px; }
.brand { display: inline-flex; max-width: 240px; align-items: center; justify-self: start; gap: 13px; }
.brand-sign { display: grid; flex: 0 0 38px; width: 38px; height: 38px; grid-template-columns: repeat(3,1fr); align-items: end; gap: 3px; padding: 8px; color: #fff; background: var(--forest); }
.brand-sign i { display: block; background: currentColor; }
.brand-sign i:nth-child(1) { height: 12px; }
.brand-sign i:nth-child(2) { height: 20px; }
.brand-sign i:nth-child(3) { height: 15px; }
.brand-name { display: grid; min-width: 0; line-height: 1.1; }
.brand-name b { font-family: "Prata", Georgia, serif; font-size: 20px; font-weight: 400; }
.brand-name small { max-width: 189px; margin-top: 5px; color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .07em; line-height: 1.2; overflow-wrap: break-word; text-transform: uppercase; }
.main-nav { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 28px; }
.main-nav > a, .main-nav > span { position: relative; color: #414b47; font-size: 13px; font-weight: 600; }
.main-nav > a::after, .main-nav > span::after { position: absolute; right: 0; bottom: -10px; left: 0; height: 1px; content: ""; background: var(--clay); transform: scaleX(0); transition: transform .2s ease; }
.main-nav > a:hover::after, .main-nav > .is-section::after, .main-nav > span[aria-current="page"]::after { transform: scaleX(1); }
.city-switcher { display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; color: #414b47; background: transparent; font-size: 13px; font-weight: 600; }
.city-switcher .icon { width: 15px; color: var(--clay); }
.city-switcher:hover, .city-switcher.is-active { color: var(--forest); }
.nav-toggle { display: none; border: 0; color: var(--ink); background: transparent; }
.main-nav > .header-cta { min-height: 44px; margin-left: 8px; padding: 0 18px; color: #fff; }
.main-nav > .header-cta::after { display: none; }
.brand[aria-current="page"], .header-cta[aria-current="page"], .main-nav > span[aria-current="page"] { cursor: default; }
.header-cta[aria-current="page"]:hover { background: var(--ink); transform: none; }

.city-dialog { width: min(760px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 4px; color: var(--ink); background: var(--paper-light); box-shadow: 0 35px 90px rgba(7,27,21,.25); }
.city-dialog::backdrop { background: rgba(7,27,21,.66); backdrop-filter: blur(5px); }
.city-dialog[open] { animation: city-dialog-in .18s ease-out; }
.city-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding: 34px 38px 28px; border-bottom: 1px solid var(--line); }
.city-dialog-head .eyebrow { margin-bottom: 8px; }
.city-dialog-head strong { font-family: "Prata", Georgia, serif; font-size: 34px; font-weight: 400; }
.city-dialog-head button { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--line); color: var(--ink); background: transparent; }
.city-dialog-head button:hover { border-color: var(--clay); color: var(--clay-dark); }
.city-dialog-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 14px 38px 38px; }
.city-dialog-grid > a, .city-dialog-grid > span { position: relative; display: grid; min-width: 0; padding: 20px 38px 20px 0; border-bottom: 1px solid var(--line); }
.city-dialog-grid > :nth-child(odd) { margin-right: 24px; }
.city-dialog-grid > :nth-child(even) { padding-left: 24px; border-left: 1px solid var(--line); }
.city-dialog-grid b, .city-dialog-grid small { min-width: 0; }
.city-dialog-grid b { font-size: 15px; }
.city-dialog-grid small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.city-dialog-grid > span { color: #737b77; }
.city-dialog-grid > a .icon { position: absolute; right: 4px; top: 50%; width: 17px; color: var(--clay); transform: translateY(-50%); }
.city-dialog-grid > a:hover b { color: var(--clay-dark); }
body.has-dialog { overflow: hidden; }
@keyframes city-dialog-in { from { opacity: 0; transform: translateY(10px) scale(.985); } }

/* Главная */
.home-hero { position: relative; min-height: 760px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,20,16,.92) 0%, rgba(5,20,16,.75) 38%, rgba(5,20,16,.22) 70%, rgba(5,20,16,.08) 100%), linear-gradient(0deg, rgba(5,20,16,.55), transparent 45%); }
.hero-content { position: relative; z-index: 2; display: flex; min-height: 660px; flex-direction: column; justify-content: center; padding-top: 50px; padding-bottom: 70px; }
.hero-content h1 { max-width: 920px; margin-bottom: 26px; font-size: clamp(58px, 6.5vw, 98px); }
.hero-content > p { max-width: 660px; margin-bottom: 34px; color: rgba(255,255,255,.78); font-size: 19px; }
.search-box { display: grid; width: min(690px, 100%); grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 8px 8px 8px 18px; border: 1px solid rgba(255,255,255,.25); border-radius: 9px; background: rgba(255,255,255,.96); box-shadow: 0 22px 65px rgba(0,0,0,.25); }
.search-box .icon { color: #67716e; }
.search-box input { min-width: 0; height: 46px; border: 0; outline: 0; color: var(--ink); background: transparent; }
.search-box:focus-within { border-color: rgba(190,90,59,.7); box-shadow: 0 0 0 3px rgba(190,90,59,.22), 0 22px 65px rgba(0,0,0,.25); }
.search-box input::placeholder { color: #808783; }
.search-box .button { min-height: 46px; }
.search-result { width: min(690px,100%); margin: 12px 0 0; padding: 10px 14px; border-radius: 6px; color: #fff; background: rgba(7,28,22,.8); font-size: 13px; }
.hero-proof { position: relative; z-index: 2; display: grid; min-height: 100px; grid-template-columns: repeat(3,1fr); align-items: center; border-top: 1px solid rgba(255,255,255,.25); }
.hero-proof span { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.86); font-size: 12px; font-weight: 600; }
.hero-proof .icon { color: #e6b09d; }
.section-head { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(300px,.65fr); align-items: end; gap: 70px; margin-bottom: 50px; }
.section-head h2 { margin-bottom: 0; }
.section-head > p { margin-bottom: 8px; color: var(--muted); }
.section-head-action { grid-template-columns: 1fr auto; }
.city-directory { display: grid; grid-template-columns: minmax(320px,.72fr) minmax(0,1.28fr); border: 1px solid var(--line); background: var(--paper-light); }
.city-feature { position: relative; min-height: 390px; padding: 48px; color: #fff; background: var(--forest); overflow: hidden; }
.city-feature::after { position: absolute; right: -80px; bottom: -120px; width: 340px; height: 340px; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; content: ""; }
.city-feature > span { color: #d8b29f; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.city-feature h3 { margin: 82px 0 8px; font-family: "Prata", Georgia, serif; font-size: clamp(44px,4.6vw,62px); font-weight: 400; }
.city-feature p { color: rgba(255,255,255,.7); }
.city-feature i { position: absolute; right: 42px; bottom: 38px; display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
.city-queue { display: grid; grid-template-columns: repeat(2,1fr); }
.city-queue > span, .city-queue > a { position: relative; display: grid; align-content: center; min-height: 96px; padding: 18px 28px; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); color: inherit; text-decoration: none; }
.city-queue > :is(span, a):nth-last-child(-n+2) { border-bottom: 0; }
.city-queue > a { padding-right: 56px; transition: color .2s ease, background-color .2s ease; }
.city-queue > a:hover { color: var(--clay-dark); background: rgba(201,88,55,.035); }
.city-queue > a .icon { position: absolute; right: 24px; width: 17px; }
.city-queue b { font-size: 15px; }
.city-queue small { margin-top: 3px; color: var(--muted); }
.featured-section { padding-top: 40px; }
.project-card { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(390px,.88fr); border: 1px solid var(--line); background: var(--paper-light); box-shadow: 0 18px 60px rgba(22,34,29,.06); }
.project-photo { position: relative; min-height: 560px; overflow: hidden; }
.project-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.project-photo:hover img { transform: scale(1.025); }
.project-status, .project-location { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; color: #fff; background: rgba(7,27,21,.74); backdrop-filter: blur(10px); font-size: 11px; font-weight: 700; }
.project-status { top: 22px; left: 22px; }
.project-location { right: 22px; bottom: 22px; }
.project-location .icon { width: 15px; }
.project-card-body { display: flex; flex-direction: column; justify-content: center; padding: 48px; }
.project-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.project-heading > div > span { color: var(--clay-dark); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.project-heading h3 { margin: 8px 0 12px; font-family: "Prata", Georgia, serif; font-size: 42px; font-weight: 400; letter-spacing: -.03em; }
.project-heading p { max-width: 340px; margin-bottom: 0; color: var(--muted); font-size: 13px; }
.project-heading > b { flex: 0 0 auto; font-size: 22px; }
.project-card-facts { display: grid; grid-template-columns: repeat(3,1fr); margin: 42px 0; padding: 26px 0; border-block: 1px solid var(--line); }
.project-card-facts div + div { padding-left: 18px; border-left: 1px solid var(--line); }
.project-card-facts dt { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.project-card-facts dd { margin: 6px 0 0; font-size: 13px; font-weight: 700; }
.project-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.project-card-footer > span { color: var(--muted); font-size: 11px; }
.home-tools { padding-top: 56px; }
.home-tools-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: var(--paper-light); }
.home-tools-grid article { position: relative; display: flex; min-width: 0; min-height: 320px; flex-direction: column; padding: 36px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.home-tools-grid article::after { position: absolute; right: -70px; bottom: -90px; width: 190px; height: 190px; border: 1px solid rgba(9,42,32,.08); border-radius: 50%; content: ""; pointer-events: none; }
.home-tools-grid article:first-child { color: #fff; background: var(--forest); }
.home-tools-grid article:first-child::after { border-color: rgba(255,255,255,.14); }
.home-tools-grid > article > .icon { width: 28px; height: 28px; margin-bottom: 42px; color: var(--clay); }
.home-tools-grid article:first-child > .icon { color: #e9aa91; }
.home-tools-grid article > span { margin-bottom: 10px; color: var(--clay-dark); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.home-tools-grid article:first-child > span { color: #e9aa91; }
.home-tools-grid h3 { max-width: 310px; margin: 0 0 14px; font-family: "Prata", Georgia, serif; font-size: clamp(25px,2vw,31px); font-weight: 400; line-height: 1.25; letter-spacing: -.025em; }
.home-tools-grid p { max-width: 330px; margin: 0 0 30px; color: var(--muted); font-size: 13px; }
.home-tools-grid article:first-child p { color: rgba(255,255,255,.68); }
.home-tools-grid article > a, .home-tool-city-links a { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 9px; width: fit-content; margin-top: auto; color: var(--ink); font-size: 12px; font-weight: 700; }
.home-tools-grid article:first-child > a { color: #fff; }
.home-tools-grid article > a .icon, .home-tool-city-links .icon { width: 16px; transition: transform .2s ease; }
.home-tools-grid article > a:hover .icon, .home-tool-city-links a:hover .icon { transform: translateX(4px); }
.home-tool-city-links { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: auto; }
.home-tool-city-links a { margin-top: 0; color: var(--clay-dark); }
.check-section { color: #fff; background: var(--forest-deep); }
.check-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(420px,.85fr); gap: 100px; }
.check-layout h2 { max-width: 650px; }
.check-layout > div > p { max-width: 620px; margin-bottom: 32px; color: rgba(255,255,255,.66); }
.check-layout ol { margin: 0; padding: 0; list-style: none; }
.check-layout li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding: 24px 0; border-top: 1px solid rgba(255,255,255,.18); }
.check-layout li > span { color: #e5a991; font-family: "Prata", Georgia, serif; font-size: 21px; }
.check-layout li b { font-size: 17px; }
.check-layout li p { margin: 3px 0 0; color: rgba(255,255,255,.6); font-size: 13px; }

/* Город */
.city-hero { padding: 76px 0 92px; background: var(--paper-light); }
.city-hero-grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); align-items: center; gap: clamp(52px,5vw,80px); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 54px; color: var(--muted); font-size: 11px; }
.breadcrumbs b { color: inherit; font-weight: 600; }
.city-copy, .city-photo { min-width: 0; }
.city-copy h1 { max-width: 100%; margin-bottom: 26px; font-size: clamp(54px,4.6vw,76px); text-wrap: balance; }
.city-copy > p { max-width: 530px; margin-bottom: 34px; color: var(--muted); font-size: 17px; }
.city-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.city-photo { position: relative; height: 600px; margin: 0; overflow: hidden; }
.city-photo img { width: 100%; height: 100%; object-fit: cover; }
.city-photo figcaption { position: absolute; right: 22px; bottom: 22px; left: 22px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; color: #fff; background: rgba(7,28,22,.78); backdrop-filter: blur(12px); }
.city-photo figcaption span { font-size: 12px; }
.city-photo figcaption b { font-size: 17px; }
.catalog { scroll-margin-top: 30px; }
.catalog-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 42px; }
.catalog-head h2 { margin-bottom: 12px; }
.catalog-head > div > p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; }
.catalog-budget-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; color: var(--clay-dark); font-size: 12px; font-weight: 700; }
.catalog-budget-link .icon { width: 17px; transition: transform .2s ease; }
.catalog-budget-link:hover .icon { transform: translateX(4px); }
.catalog-freshness { display: grid; flex: 0 0 230px; gap: 3px; padding: 18px 20px; color: #fff; background: var(--forest); }
.catalog-freshness b { color: rgba(255,255,255,.56); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.catalog-freshness time { font-family: "Prata", Georgia, serif; font-size: 22px; }
.catalog-freshness small { color: rgba(255,255,255,.58); font-size: 9px; }
.catalog-filters { display: grid; grid-template-columns: minmax(230px,1.7fr) repeat(4,minmax(120px,1fr)) auto; align-items: end; gap: 10px; margin: 34px 0 16px; padding: 18px; border: 1px solid var(--line); background: var(--paper-light); }
.catalog-filters label { position: relative; display: grid; min-width: 0; gap: 7px; }
.catalog-filters label > span, .catalog-controls label > span { color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.catalog-filters input, .catalog-filters select, .catalog-controls select { width: 100%; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 0; outline: 0; color: var(--ink); background: #fff; font: inherit; font-size: 12px; }
.catalog-filters input:focus, .catalog-filters select:focus, .catalog-controls select:focus { border-color: var(--clay); box-shadow: 0 0 0 3px rgba(190,90,59,.1); }
.catalog-search .icon { position: absolute; bottom: 13px; left: 12px; width: 17px; color: var(--muted); pointer-events: none; }
.catalog-search input { padding-left: 38px; }
.catalog-reset { min-height: 44px; padding: 0 17px; border: 1px solid var(--line); color: var(--ink); background: transparent; font-size: 11px; font-weight: 700; }
.catalog-reset:hover { border-color: var(--ink); }
.catalog-controls { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 26px; }
.catalog-controls p { flex: 1 1 auto; margin: 0; color: var(--muted); font-size: 12px; }
.catalog-controls p b { color: var(--ink); font-size: 14px; }
.catalog-controls label { display: flex; align-items: center; gap: 10px; }
.catalog-controls select { width: 190px; }
.catalog-view { display: flex; border: 1px solid var(--line); }
.catalog-view button { display: grid; width: 44px; height: 44px; place-items: center; border: 0; color: var(--muted); background: #fff; }
.catalog-view button + button { border-left: 1px solid var(--line); }
.catalog-view button.is-active { color: #fff; background: var(--forest); }
.catalog-view .icon { width: 17px; }
.catalog-projects { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.catalog-project-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--line); background: var(--paper-light); transition: transform .25s ease, box-shadow .25s ease; }
.catalog-project-card:hover { transform: translateY(-3px); box-shadow: 0 18px 45px rgba(18,36,29,.09); }
.catalog-project-card.is-filtered, .catalog-project-card.is-collapsed { display: none; }
.catalog-project-image { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #d9ddd9; }
.catalog-project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.catalog-project-card:hover .catalog-project-image img { transform: scale(1.025); }
.catalog-project-class { position: absolute; right: 16px; bottom: 16px; padding: 7px 10px; color: #fff; background: rgba(8,28,22,.72); backdrop-filter: blur(9px); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.catalog-project-image .project-status { top: 16px; left: 16px; }
.catalog-project-body { display: flex; flex: 1; flex-direction: column; padding: 23px 22px 20px; }
.catalog-project-title { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 14px; }
.catalog-project-title > div { min-width: 0; flex: 1 1 150px; overflow-wrap: anywhere; }
.catalog-project-title > div > span { color: var(--clay-dark); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.catalog-project-title h3 { margin: 6px 0 0; font-family: "Prata", Georgia, serif; font-size: 25px; font-weight: 400; line-height: 1.18; letter-spacing: -.025em; }
.catalog-project-title > b { flex: 0 0 auto; max-width: 120px; padding-top: 19px; font-size: 15px; text-align: right; }
.catalog-project-address { display: flex; align-items: flex-start; gap: 7px; min-height: 31px; margin: 12px 0 0; color: var(--muted); font-size: 10px; }
.catalog-project-address .icon { flex: 0 0 auto; width: 14px; color: var(--clay); }
.catalog-project-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 20px 0; padding-block: 16px; border-block: 1px solid var(--line); }
.catalog-project-facts div + div { padding-left: 12px; border-left: 1px solid var(--line); }
.catalog-project-facts dt { color: var(--muted); font-size: 8px; line-height: 1.35; text-transform: uppercase; }
.catalog-project-facts dd { margin: 5px 0 0; font-size: 10px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.catalog-project-footer { display: flex; align-items: center; margin-top: auto; }
.catalog-project-cta { width: 100%; min-height: 48px; justify-content: space-between; padding-inline: 18px; border-radius: 4px; font-size: 11px; }
.catalog-project-cta .icon { width: 16px; transition: transform .2s ease; }
.catalog-project-cta:hover .icon { transform: translateX(4px); }
.catalog-projects.is-list { grid-template-columns: 1fr; }
.catalog-projects.is-list .catalog-project-card { display: grid; grid-template-columns: 300px minmax(0,1fr); }
.catalog-projects.is-list .catalog-project-card.is-filtered, .catalog-projects.is-list .catalog-project-card.is-collapsed { display: none; }
.catalog-projects.is-list .catalog-project-image { aspect-ratio: auto; min-height: 250px; }
.catalog-projects.is-list .catalog-project-body { align-self: center; }
.catalog-projects.is-list .catalog-project-footer { max-width: 260px; }
.catalog-empty { margin: 24px 0 0; padding: 28px; border: 1px solid var(--line); text-align: center; }
.catalog-inline-freshness { display: flex; align-items: center; gap: 7px; margin: -30px 0 24px; color: var(--muted); font-size: 10px; }
.catalog-inline-freshness time { color: var(--ink); font-weight: 700; }
.catalog-more { display: flex; min-width: 260px; justify-content: space-between; gap: 18px; margin: 28px auto 0; padding-right: 10px; padding-left: 22px; }
.catalog-more small, .budget-picker-more small { display: inline-flex; min-width: 58px; align-items: center; justify-content: center; padding: 7px 10px; border-radius: 999px; color: var(--forest); background: rgba(13,70,56,.08); font-size: 10px; font-weight: 700; }
.catalog-more[hidden] { display: none; }
.city-decision { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; padding-top: 30px; }
.city-decision > div:first-child > p { max-width: 520px; color: var(--muted); }
.decision-list p { display: grid; grid-template-columns: 160px 1fr; gap: 30px; margin: 0; padding: 22px 0; border-top: 1px solid var(--line); }
.decision-list p:last-child { border-bottom: 1px solid var(--line); }
.decision-list b { font-size: 14px; }
.decision-list span { color: var(--muted); font-size: 13px; }

/* Страница ЖК */
.object-hero { position: relative; min-height: 690px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.object-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.object-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,17,14,.86), rgba(5,17,14,.55) 45%, rgba(5,17,14,.06) 78%), linear-gradient(0deg, rgba(5,17,14,.58), transparent 54%); }
.object-hero-content { position: relative; z-index: 2; display: flex; min-height: 690px; flex-direction: column; justify-content: space-between; padding-top: 38px; padding-bottom: 86px; }
.breadcrumbs-light { margin-bottom: 0; color: rgba(255,255,255,.65); }
.breadcrumbs-light a:hover { color: #fff; }
.object-badge { display: inline-flex; margin-bottom: 18px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.3); font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.object-hero h1 { max-width: 940px; margin-bottom: 20px; font-size: clamp(54px,6vw,88px); }
.object-hero-content > div > p { margin-bottom: 28px; color: rgba(255,255,255,.75); }
.object-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.object-summary-wrap { position: relative; z-index: 5; margin-top: -52px; }
.object-summary { display: grid; grid-template-columns: repeat(4,1fr); margin: 0; padding: 0 34px; background: #fff; box-shadow: var(--shadow); }
.object-summary div { padding: 29px 22px; }
.object-summary div + div { border-left: 1px solid var(--line); }
.object-summary dt { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.object-summary dd { margin: 5px 0 0; font-size: 19px; font-weight: 700; }
.object-summary-wrap > p { margin: 13px 5px 0; color: var(--muted); font-size: 12px; text-align: right; }
.object-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; align-items: start; gap: 32px; padding-top: 72px; }
.object-main { display: grid; min-width: 0; gap: 24px; }
.object-section { min-width: 0; padding: 42px; border: 1px solid var(--line); background: var(--paper-light); }
.object-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 32px; }
.object-section-head h2 { margin: 0; font-size: clamp(32px,3vw,45px); }
.update-pill, .source-stamp { display: inline-flex; flex: 0 1 auto; align-items: center; gap: 7px; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.5; font-weight: 600; }
.source-stamp .icon { width: 16px; color: var(--clay); }
.apartment-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); }
.apartment-grid article { min-width: 0; padding: 25px 20px; }
.apartment-grid article + article { border-left: 1px solid var(--line); }
.apartment-grid span, .apartment-grid small { display: block; color: var(--muted); font-size: 10px; }
.apartment-grid b { display: block; margin: 8px 0 4px; font-family: "Prata", Georgia, serif; font-size: 36px; font-weight: 400; }
.price-band { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 18px; color: #fff; background: var(--forest); }
.price-band > span { padding: 25px; }
.price-band > span + span { border-left: 1px solid rgba(255,255,255,.2); }
.price-band small, .price-band b { display: block; }
.price-band small { color: rgba(255,255,255,.58); font-size: 10px; text-transform: uppercase; }
.price-band b { margin-top: 5px; font-size: 17px; }
.section-action { display: grid; gap: 18px; margin-top: 25px; }
.section-action p { max-width: 680px; margin: 0; color: var(--muted); font-size: 12px; }
.section-action .button { width: min(100%, 260px); min-height: 54px; justify-self: start; white-space: nowrap; }
.liter-overview { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 22px 0; border-block: 1px solid var(--line); }
.liter-overview small, .liter-overview b { display: block; }
.liter-overview small { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.liter-overview b { margin-top: 4px; font-size: 23px; }
.selected-house { display: grid; grid-template-columns: .7fr 1.3fr; gap: 36px; margin-top: 22px; padding: 30px; color: #fff; background: var(--forest-deep); }
.house-title > span { color: #dca990; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.house-title h3 { margin: 0 0 16px; font-family: "Prata", Georgia, serif; font-size: clamp(24px, 2.1vw, 30px); line-height: 1.4; font-weight: 400; }
.house-title p { margin: 0; color: #c4d2cc; font-size: 13px; line-height: 1.7; }
.selected-house dl { display: grid; grid-template-columns: repeat(2,1fr); margin: 0; border: 1px solid rgba(255,255,255,.18); }
.selected-house dl div { padding: 16px; }
.selected-house dl div:nth-child(even) { border-left: 1px solid rgba(255,255,255,.18); }
.selected-house dl div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.18); }
.selected-house dt { color: rgba(255,255,255,.5); font-size: 9px; text-transform: uppercase; }
.selected-house dd { margin: 4px 0 0; font-size: 13px; font-weight: 700; }
.date-route { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: center; }
.date-route article { min-height: 190px; padding: 26px; border: 1px solid var(--line); }
.date-route article .icon { margin-bottom: 30px; color: var(--clay); }
.date-route small, .date-route b { display: block; }
.date-route small { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.date-route b { margin-top: 7px; font-size: 18px; }
.date-route p { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.date-route > i { height: 1px; background: var(--line); }
.property-list { display: grid; grid-template-columns: repeat(2,1fr); margin: 0; border-top: 1px solid var(--line); }
.property-list div { display: grid; grid-template-columns: minmax(130px,.8fr) minmax(0,1.2fr); gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.property-list div:nth-child(odd) { padding-right: 24px; }
.property-list div:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--line); }
.property-list dt { color: var(--muted); font-size: 10px; }
.property-list dd { margin: 0; font-size: 12px; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.section-intro { max-width: 680px; color: var(--muted); font-size: 13px; }
.mortgage-section > .object-section-head > .icon { color: var(--clay); }
.mortgage-calculator { margin-top: 28px; }
.mortgage-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.mortgage-fields label { position: relative; display: grid; gap: 7px; padding: 15px 18px; border: 1px solid var(--line); background: #fff; }
.mortgage-fields label > span { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.mortgage-fields input { width: 100%; min-width: 0; min-height: 44px; padding: 0 45px 0 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 20px; font-weight: 700; }
.mortgage-fields label > small { position: absolute; right: 18px; bottom: 18px; color: var(--muted); font-size: 12px; }
.mortgage-fields label:focus-within { border-color: var(--clay); box-shadow: 0 0 0 3px rgba(190,90,59,.12); }
.mortgage-result { margin-top: 14px; padding: 28px; color: #fff; background: var(--forest); }
.mortgage-result > span { color: rgba(255,255,255,.62); font-size: 11px; text-transform: uppercase; }
.mortgage-result > output { display: block; margin: 7px 0 22px; font-family: "Prata", Georgia, serif; font-size: 38px; line-height: 1.2; }
.mortgage-result dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; border-top: 1px solid rgba(255,255,255,.2); }
.mortgage-result dl > div { padding-top: 17px; }
.mortgage-result dl > div + div { padding-left: 22px; border-left: 1px solid rgba(255,255,255,.2); }
.mortgage-result dt { color: rgba(255,255,255,.55); font-size: 10px; }
.mortgage-result dd { margin: 4px 0 0; font-size: 14px; font-weight: 700; }
.map-section .object-section-head > .icon { color: var(--clay); }
.map-address { margin-bottom: 18px; color: var(--muted); font-size: 13px; }
.map-address strong { color: var(--ink); }
.map-frame { position: relative; isolation: isolate; height: 400px; margin-bottom: 20px; border: 1px solid var(--line); background: #dfe4dc; overflow: hidden; }
.map-frame iframe { display: block; width: 100%; height: 100%; border: 0; background: #dfe4dc; }
.map-expand { position: absolute; top: 50%; left: 50%; z-index: 3; display: flex; width: min(calc(100% - 48px),430px); min-height: 78px; align-items: center; gap: 16px; padding: 16px 22px; border: 1px solid rgba(255,255,255,.24); color: #fff; background: rgba(8,40,34,.96); box-shadow: 0 18px 52px rgba(4,24,20,.3); cursor: pointer; font: inherit; text-align: left; transform: translate(-50%,-50%); transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease; -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); }
.map-expand:hover { background: rgba(190,90,59,.98); box-shadow: 0 22px 58px rgba(4,24,20,.38); transform: translate(-50%,calc(-50% - 2px)); }
.map-expand:focus-visible, .map-fullscreen-close:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.map-expand > .icon { flex: 0 0 auto; width: 28px; height: 28px; }
.map-expand-copy { display: grid; min-width: 0; gap: 4px; }
.map-expand-copy strong { font-size: 14px; line-height: 1.3; }
.map-expand-copy small { color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.4; }
.map-fullscreen-bar { min-height: 68px; align-items: center; grid-template-columns: auto minmax(0,1fr) auto; gap: 20px; padding: 10px 18px; color: #fff; background: var(--forest-deep); }
.map-fullscreen-close { display: inline-flex; min-width: 154px; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 0 18px; border: 1px solid rgba(255,255,255,.2); color: #fff; background: var(--clay); cursor: pointer; font: 700 12px/1.2 "Manrope", sans-serif; transition: background-color .2s ease; }
.map-fullscreen-close:hover { background: #a8492e; }
.map-fullscreen-close .icon { width: 18px; height: 18px; }
.map-fullscreen-bar > strong { overflow: hidden; font-size: 15px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.map-fullscreen-hint { color: rgba(255,255,255,.58); font-size: 11px; white-space: nowrap; }
html.has-fullscreen-map, body.has-fullscreen-map { overflow: hidden; overscroll-behavior: none; }
.map-frame.is-fullscreen { position: fixed; inset: 0; z-index: 5000; display: grid; width: 100vw; height: 100vh; height: 100dvh; margin: 0; border: 0; grid-template-rows: auto minmax(0,1fr); background: var(--forest-deep); }
.map-frame.is-fullscreen .map-fullscreen-bar { display: grid; padding-top: max(10px,env(safe-area-inset-top)); padding-right: max(18px,env(safe-area-inset-right)); padding-left: max(18px,env(safe-area-inset-left)); }
.map-frame.is-fullscreen .map-expand { display: none; }
.map-frame.is-fullscreen iframe { min-height: 0; grid-row: 2; }
.object-aside { position: sticky; top: 24px; display: grid; gap: 20px; }
.price-panel { padding: 34px; color: #fff; background: var(--forest-deep); }
.price-panel > span { color: #dca990; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.price-panel h2 { margin: 16px 0 8px; font-family: "Manrope", sans-serif; font-size: 34px; font-weight: 700; }
.price-panel p { color: rgba(255,255,255,.64); font-size: 12px; }
.price-panel .button { width: 100%; margin-top: 14px; }
.price-panel > small { display: block; margin-top: 12px; color: rgba(255,255,255,.45); font-size: 9px; text-align: center; }
.aside-panel { padding: 26px; border: 1px solid var(--line); background: var(--paper-light); }
.aside-panel h2 { margin-bottom: 18px; font-family: "Manrope", sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0; }
.aside-panel > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 0; border-top: 1px solid var(--line); }
.aside-panel b, .aside-panel small { display: block; }
.aside-panel b { font-size: 11px; }
.aside-panel small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.aside-panel .icon { width: 16px; color: var(--clay); }

/* Служебные пользовательские страницы */
.inner-hero { padding: 92px 0 100px; color: #fff; background: var(--forest-deep); }
.inner-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 90px; }
.inner-hero h1 { max-width: 850px; margin-bottom: 0; font-size: clamp(50px,6vw,82px); }
.inner-hero p { max-width: 480px; margin-bottom: 8px; color: rgba(255,255,255,.65); }
.method-hero { position: relative; min-height: 620px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.method-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.method-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,20,16,.92) 0%,rgba(5,20,16,.76) 43%,rgba(5,20,16,.16) 78%), linear-gradient(0deg,rgba(5,20,16,.45),transparent 55%); }
.method-hero-content { position: relative; z-index: 2; display: flex; min-height: 620px; flex-direction: column; justify-content: center; padding-block: 90px; }
.method-hero h1 { max-width: 900px; margin-bottom: 24px; font-size: clamp(50px,5.7vw,82px); }
.method-hero p { max-width: 590px; margin: 0; color: rgba(255,255,255,.72); font-size: 17px; }
.method-steps, .source-list { display: grid; gap: 0; }
.method-steps article, .source-list article { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 30px; padding: 28px 0; border-top: 1px solid var(--line); }
.method-steps article:last-child, .source-list article:last-child { border-bottom: 1px solid var(--line); }
.method-steps article > span, .source-list article > span { color: var(--clay); font-family: "Prata", Georgia, serif; font-size: 25px; }
.method-steps h2, .source-list h2 { margin: 0 0 6px; font-family: "Manrope", sans-serif; font-size: 18px; font-weight: 700; letter-spacing: 0; }
.method-steps p, .source-list p { margin: 0; color: var(--muted); font-size: 13px; }
.source-list article > a { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); }
.method-warning { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; padding-top: 30px; }
.method-warning p { color: var(--muted); }
.source-action { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-top: 30px; }
.source-action h2 { margin-bottom: 8px; font-size: 38px; }
.source-action p { margin: 0; color: var(--muted); }
.not-found { display: flex; min-height: 70vh; flex-direction: column; align-items: center; justify-content: center; padding-block: 90px; text-align: center; }
.not-found > span { color: var(--clay); font-family: "Prata", Georgia, serif; font-size: 24px; }
.not-found h1 { margin: 15px 0; }
.not-found p { color: var(--muted); }
.not-found > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* Подвал */
.site-footer { border-top: 1px solid rgba(255,255,255,.12); color: #fff; background: #081d18; }
.footer-main { display: grid; grid-template-columns: minmax(280px,.78fr) minmax(0,1.22fr); gap: 70px; padding-top: 70px; padding-bottom: 58px; }
.brand-footer .brand-sign { color: var(--forest-deep); background: #fff; }
.brand-footer .brand-name small { color: rgba(255,255,255,.5); }
.footer-brand p { max-width: 420px; margin: 28px 0 0; color: rgba(255,255,255,.58); font-size: 13px; }
.footer-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px; }
.footer-links h2 { margin-bottom: 14px; color: rgba(255,255,255,.45); font-family: "Manrope", sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.footer-link { display: block; margin-top: 9px; font-size: 13px; }
.footer-link[aria-current="page"] { color: rgba(255,255,255,.5); cursor: default; }
.footer-city-link { min-height: 44px; margin-top: 0; padding: 10px 0; border: 0; color: inherit; background: transparent; text-align: left; }
.footer-city-link:hover { color: #e7b29f; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-top: 22px; padding-bottom: 22px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.42); font-size: 9px; }

@media (max-width: 1080px) {
  .header-inner { gap: 24px; }
  .main-nav { gap: 14px; }
  .main-nav > a, .main-nav > span, .city-switcher { font-size: 12px; }
  .main-nav > .header-cta { margin-left: 2px; padding-inline: 14px; }
  .city-directory { grid-template-columns: 1fr; }
  .city-hero-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 36px; }
  .city-copy h1 { font-size: clamp(52px,5.2vw,60px); }
  .city-photo { height: 520px; }
  .project-card { grid-template-columns: 1fr 420px; }
  .project-card-body { padding: 36px; }
  .project-heading { display: block; }
  .project-heading > b { display: block; margin-top: 24px; }
  .project-card-facts { grid-template-columns: 1fr; }
  .project-card-facts div + div { margin-top: 13px; padding-top: 13px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .catalog-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .catalog-search { grid-column: span 2; }
  .catalog-projects { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .object-layout { grid-template-columns: minmax(0,1fr) 300px; }
  .selected-house { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .shell { width: min(calc(100% - 36px), var(--shell)); }
  .section { padding-top: 82px; padding-bottom: 82px; }
  .header-inner { grid-template-columns: 1fr auto; min-height: 76px; }
  .nav-toggle { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid rgba(18,61,52,.16); border-radius: 12px; background: #fff; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
  .nav-toggle:hover, .nav-toggle[aria-expanded="true"] { border-color: var(--forest); color: #fff; background: var(--forest); }
  .nav-toggle:active { transform: scale(.97); }
  .main-nav { position: absolute; top: calc(100% + 10px); right: 18px; left: 18px; display: grid; grid-template-columns: minmax(0,1fr); align-items: stretch; justify-content: stretch; gap: 5px; padding: 12px; border: 1px solid rgba(18,61,52,.14); border-radius: 18px; background: rgba(251,250,247,.985); box-shadow: 0 24px 64px rgba(9,39,31,.2), inset 0 1px 0 rgba(255,255,255,.8); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.985); transform-origin: top right; pointer-events: none; transition: opacity .2s ease, transform .2s cubic-bezier(.2,.8,.2,1), visibility 0s linear .2s; }
  .main-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); pointer-events: auto; transition-delay: 0s; }
  .main-nav > a, .main-nav > span { display: flex; min-height: 46px; align-items: center; padding: 0 14px; border-radius: 11px; color: var(--ink); font-size: 13px; }
  .main-nav > a:hover, .main-nav > .is-section, .main-nav > span[aria-current="page"] { color: var(--forest); background: #eee9df; }
  .main-nav > a::after, .main-nav > span::after { display: none; }
  .city-switcher { min-height: 46px; justify-content: flex-start; padding: 0 14px; border-radius: 11px; color: var(--ink); font-size: 13px; }
  .city-switcher:hover, .city-switcher.is-active { color: var(--forest); background: #eee9df; }
  .main-nav > .header-cta { min-height: 52px; justify-content: center; margin: 6px 0 0; padding: 0 18px; border-radius: 12px; color: #fff; background: var(--ink); }
  .main-nav > .header-cta:hover { color: #fff; background: var(--forest); }
  .home-hero { min-height: 700px; }
  .hero-content { min-height: 600px; }
  .hero-content h1 { font-size: clamp(50px,9vw,76px); }
  .hero-proof { grid-template-columns: 1fr; gap: 12px; padding-block: 25px; }
  .section-head { grid-template-columns: 1fr; gap: 18px; }
  .section-head-action { align-items: start; }
  .home-tools-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .city-directory, .check-layout, .city-hero-grid, .city-decision, .inner-hero-grid, .method-warning { grid-template-columns: 1fr; }
  .city-feature { min-height: 320px; }
  .check-layout { gap: 55px; }
  .city-copy .breadcrumbs { margin-bottom: 35px; }
  .city-photo { height: 520px; }
  .project-card { grid-template-columns: 1fr; }
  .project-photo { min-height: 480px; }
  .project-heading { display: flex; }
  .project-heading > b { margin-top: 0; }
  .project-card-facts { grid-template-columns: repeat(3,1fr); }
  .project-card-facts div + div { margin-top: 0; padding-top: 0; padding-left: 18px; border-top: 0; border-left: 1px solid var(--line); }
  .object-hero, .object-hero-content { min-height: 620px; }
  .object-summary { grid-template-columns: repeat(2,1fr); padding-inline: 20px; }
  .object-summary div:nth-child(3) { border-left: 0; }
  .object-summary div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .object-layout { grid-template-columns: minmax(0,1fr); }
  .object-aside { position: static; grid-row: 1; grid-template-columns: repeat(2,1fr); }
  .price-panel, .aside-panel { min-width: 0; }
  .footer-main { grid-template-columns: 1fr; gap: 50px; }
  .method-hero, .method-hero-content { min-height: 560px; }
  .catalog-head { align-items: stretch; flex-direction: column; }
  .catalog-freshness { flex-basis: auto; }
}

@media (max-width: 560px) {
  .shell { width: min(calc(100% - 28px), var(--shell)); }
  .section { padding-top: 62px; padding-bottom: 62px; }
  h1 { font-size: 45px; }
  h2 { font-size: 36px; }
  .brand-name small { max-width: 210px; font-size: 7px; }
  .home-hero { min-height: 680px; }
  .hero-image { object-position: 59% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(5,20,16,.88), rgba(5,20,16,.44)), linear-gradient(0deg, rgba(5,20,16,.75), transparent 60%); }
  .hero-content { min-height: 560px; padding-top: 38px; padding-bottom: 42px; }
  .hero-content h1 { font-size: clamp(43px,12vw,58px); }
  .hero-content > p { font-size: 15px; }
  .search-box { grid-template-columns: auto minmax(0,1fr); padding: 9px 12px; }
  .search-box .button { grid-column: 1 / -1; width: 100%; }
  .hero-proof { min-height: 120px; }
  .city-feature { min-height: 290px; padding: 30px; }
  .city-feature h3 { margin-top: 55px; font-size: clamp(40px,11vw,47px); }
  .city-queue { grid-template-columns: 1fr; }
  .city-queue > span, .city-queue > a { min-height: 78px; border-left: 0; }
  .city-queue > :is(span, a):nth-last-child(2) { border-bottom: 1px solid var(--line); }
  .project-photo { min-height: 330px; }
  .project-card-body { padding: 26px 22px; }
  .project-heading { display: block; }
  .project-heading h3 { font-size: 34px; }
  .project-heading > b { margin-top: 18px; font-size: 20px; }
  .project-card-facts { grid-template-columns: 1fr; margin-block: 28px; }
  .project-card-facts div + div { margin-top: 12px; padding-top: 12px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .project-card-footer { align-items: flex-start; flex-direction: column; }
  .home-tools-grid { grid-template-columns: 1fr; }
  .home-tools-grid article { min-height: 280px; padding: 30px 26px; }
  .home-tools-grid > article > .icon { margin-bottom: 34px; }
  .check-layout { grid-template-columns: minmax(0,1fr); }
  .city-hero { padding: 42px 0 60px; }
  .city-hero-grid { gap: 40px; }
  .city-copy h1 { font-size: clamp(40px,11.6vw,49px); overflow-wrap: anywhere; }
  .city-photo { height: 410px; }
  .city-photo figcaption { right: 12px; bottom: 12px; left: 12px; align-items: flex-start; flex-direction: column; gap: 5px; padding: 16px; }
  .catalog-filters { grid-template-columns: 1fr; padding: 14px; }
  .catalog-search { grid-column: auto; }
  .catalog-controls { align-items: stretch; flex-wrap: wrap; }
  .catalog-controls p { flex-basis: 100%; }
  .catalog-controls label { flex: 1 1 calc(100% - 100px); align-items: stretch; flex-direction: column; }
  .catalog-controls select { width: 100%; }
  .catalog-projects { grid-template-columns: 1fr; }
  .catalog-projects.is-list .catalog-project-card { grid-template-columns: 1fr; }
  .catalog-projects.is-list .catalog-project-image { min-height: 0; aspect-ratio: 3 / 2; }
  .catalog-project-title { display: block; }
  .catalog-project-title > b { display: block; max-width: none; padding-top: 12px; text-align: left; }
  .catalog-project-facts { grid-template-columns: 1fr; }
  .catalog-project-facts div + div { margin-top: 11px; padding-top: 11px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .section-action .button { width: 100%; }
  .city-decision { gap: 35px; }
  .decision-list p { grid-template-columns: 1fr; gap: 5px; }
  .object-hero, .object-hero-content { min-height: 590px; }
  .object-hero-image { object-position: 56% center; }
  .object-hero-shade { background: linear-gradient(90deg, rgba(5,17,14,.82), rgba(5,17,14,.35)), linear-gradient(0deg, rgba(5,17,14,.78), transparent 65%); }
  .object-hero-content { padding-bottom: 64px; }
  .object-hero h1 { max-width: 100%; font-size: clamp(34px,9.5vw,40px); line-height: 1.08; letter-spacing: -.03em; overflow-wrap: normal; word-break: normal; hyphens: none; }
  .object-actions { display: grid; }
  .object-summary-wrap { margin-top: -28px; }
  .object-summary { grid-template-columns: 1fr; padding: 0 22px; }
  .object-summary div { padding: 17px 0; }
  .object-summary div + div { border-top: 1px solid var(--line); border-left: 0; }
  .object-summary-wrap > p { text-align: left; }
  .object-layout { padding-top: 45px; }
  .object-aside { grid-template-columns: 1fr; }
  .object-section { padding: 27px 20px; }
  .object-section-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  .object-section-head h2 { font-size: 34px; }
  .apartment-grid, .price-band { grid-template-columns: repeat(2,1fr); }
  .apartment-grid article:nth-child(3), .apartment-grid article:nth-child(4) { border-top: 1px solid var(--line); }
  .apartment-grid article:nth-child(3) { border-left: 0; }
  .price-band > span:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
  .liter-overview { align-items: stretch; flex-direction: column; }
  .selected-house { padding: 24px 18px; }
  .selected-house dl { grid-template-columns: 1fr; }
  .selected-house dl div:nth-child(even) { border-left: 0; }
  .selected-house dl div + div { border-top: 1px solid rgba(255,255,255,.18); }
  .date-route { grid-template-columns: 1fr; gap: 12px; }
  .date-route > i { display: none; }
  .property-list { grid-template-columns: 1fr; }
  .property-list div:nth-child(odd), .property-list div:nth-child(even) { padding-right: 0; padding-left: 0; border-left: 0; }
  .mortgage-fields, .mortgage-result dl { grid-template-columns: 1fr; }
  .mortgage-result dl > div + div { margin-top: 14px; padding-top: 14px; padding-left: 0; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
  .property-list div { grid-template-columns: 1fr; gap: 4px; }
  .property-list dd { text-align: left; }
  .map-frame:not(.is-fullscreen) { height: 340px; }
  .map-expand { width: calc(100% - 28px); min-height: 72px; gap: 12px; padding: 14px 16px; }
  .map-expand > .icon { width: 24px; height: 24px; }
  .map-expand-copy strong { font-size: 13px; }
  .map-expand-copy small { font-size: 10px; }
  .map-fullscreen-bar { min-height: 64px; grid-template-columns: auto minmax(0,1fr); gap: 12px; padding: 9px 12px; }
  .map-frame.is-fullscreen .map-fullscreen-bar { padding-top: max(9px,env(safe-area-inset-top)); padding-right: max(12px,env(safe-area-inset-right)); padding-left: max(12px,env(safe-area-inset-left)); }
  .map-fullscreen-close { min-width: 138px; min-height: 46px; padding: 0 14px; }
  .map-fullscreen-bar > strong { overflow: visible; font-size: 12px; line-height: 1.35; text-align: right; text-overflow: clip; white-space: normal; }
  .map-fullscreen-hint { display: none; }
  .inner-hero { padding: 62px 0 70px; }
  .inner-hero-grid { gap: 28px; }
  .inner-hero h1 { font-size: 47px; }
  .method-hero, .method-hero-content { min-height: 520px; }
  .method-hero h1 { font-size: 44px; }
  .method-hero p { font-size: 15px; }
  .city-dialog-head { padding: 25px 22px 20px; }
  .city-dialog-head strong { font-size: 28px; }
  .city-dialog-grid { grid-template-columns: 1fr; padding: 8px 22px 24px; }
  .city-dialog-grid > :nth-child(odd), .city-dialog-grid > :nth-child(even) { margin-right: 0; padding-left: 0; border-left: 0; }
  .method-steps article, .source-list article { grid-template-columns: 55px 1fr; gap: 18px; }
  .source-list article > a { grid-column: 2; }
  .source-action, .footer-bottom { align-items: flex-start; flex-direction: column; }
  .footer-main { padding-top: 55px; }
  .footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px 25px; }
  .footer-links > div:last-child { grid-column: 1 / -1; }
}

.price-band-wide { grid-template-columns: 1.15fr .85fr 1fr; }
.price-band-wide > span b { line-height: 1.3; }
.apartment-type-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 18px; border: 1px solid var(--line); background: #fff; }
.apartment-type-grid article { min-width: 0; padding: 20px; }
.apartment-type-grid article + article { border-left: 1px solid var(--line); }
.apartment-type-grid span, .apartment-type-grid small { display: block; color: var(--muted); font-size: 10px; }
.apartment-type-grid b { display: block; margin: 7px 0 3px; font-family: "Prata", Georgia, serif; font-size: 30px; font-weight: 400; }
.house-apartments { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--line); }
.house-apartments h3 { margin: 0 0 8px; font: 700 18px/1.5 "Manrope", sans-serif; }
.house-apartments > p, .destination-caption { color: var(--muted); font-size: 12px; line-height: 1.65; }
.house-apartments > p { margin: 0 0 20px; }
.developer-project-links { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--line); }
.developer-project-links > b { font-size: 13px; }
.developer-project-links > div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.developer-project-links a { display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 10px 16px; border: 1px solid var(--line); font-size: 13px; }
.developer-project-links a:hover { border-color: var(--forest); }
.related-projects { padding-top: 0; }
.related-projects .catalog-projects { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.related-projects .section-heading { max-width: 820px; margin-bottom: 30px; }
.related-projects h2 { font-size: clamp(30px, 3.5vw, 48px); }
.related-projects .section-heading p { max-width: 660px; color: var(--muted); }
.related-project { display: flex; min-width: 0; flex-direction: column; }
.related-project .catalog-project-card { flex: 1; }
.related-reason { min-height: 42px; margin: 0; padding: 0 0 14px; color: var(--forest); font-size: 12px; font-weight: 600; }
.related-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.complex-houses { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--line); }
.complex-houses-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.complex-houses-head span { font-size: 14px; font-weight: 800; }
.complex-houses-head small { color: var(--muted); font-size: 10px; }
.complex-house-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.complex-house-grid article { position: relative; min-width: 0; min-height: 116px; padding: 18px; border: 1px solid var(--line); background: #fff; }
.complex-house-grid article.is-selected { color: #fff; border-color: var(--forest); background: var(--forest); }
.complex-house-grid span, .complex-house-grid small, .complex-house-grid b { display: block; }
.complex-house-grid span { color: var(--muted); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.complex-house-grid b { margin: 9px 0 3px; font-size: 15px; }
.complex-house-grid small { color: var(--muted); font-size: 10px; }
.complex-house-grid i { display: inline-block; margin-top: 10px; color: #dca990; font-size: 9px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.complex-house-grid article.is-selected span, .complex-house-grid article.is-selected small { color: rgba(255,255,255,.62); }
.section-action-stacked { align-items: flex-start; }

@media (max-width: 900px) {
  .apartment-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .apartment-type-grid article:nth-child(3) { border-left: 0; }
  .apartment-type-grid article:nth-child(n+3) { border-top: 1px solid var(--line); }
  .complex-house-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 560px) {
  .apartment-type-grid { grid-template-columns: 1fr; }
  .apartment-type-grid article + article { border-top: 1px solid var(--line); border-left: 0; }
  .complex-houses-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  .complex-house-grid { grid-template-columns: 1fr; }
}
.verification-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 28px; background: var(--line); border: 1px solid var(--line); }
.verification-grid article { min-width: 0; padding: 24px; background: var(--paper-light); }
.verification-grid b { display: block; margin-bottom: 8px; font-size: 14px; }
.verification-grid p { margin: 0; color: var(--muted); font-size: 12px; }
.buyer-brief-grid { display: grid; gap: 18px; margin-top: 28px; }
.buyer-brief-card { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 28px; padding: 28px; border: 1px solid #d7ded8; border-radius: 8px; background: #fffefa; box-shadow: 0 4px 16px #183b3205; }
.buyer-brief-card h3 { min-width: 0; margin: 0; padding-top: 14px; position: relative; color: #173b31; font-size: 18px; line-height: 1.5; font-weight: 700; }
.buyer-brief-card h3::before { content: ''; position: absolute; top: 0; left: 0; width: 32px; height: 3px; background: #b75a3c; }
.buyer-brief-copy { min-width: 0; }
.buyer-brief-copy p { margin: 0; max-width: 70ch; color: #354e45; font-size: 15px; line-height: 1.75; }
.buyer-brief-copy p + p { margin-top: 14px; }
@media (max-width: 1100px) and (min-width: 901px), (max-width: 620px) {
  .buyer-brief-card { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 22px; }
}
.method-intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.72fr); align-items: end; gap: 90px; padding-bottom: 10px; }
.method-intro h2 { margin-bottom: 0; }
.method-intro > p { margin: 0 0 8px; color: var(--muted); }
.budget-section { display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; padding-block: 70px; }
.budget-copy p { color: var(--muted); }
.budget-copy ul { display: grid; gap: 10px; margin: 30px 0 0; padding: 0; list-style: none; }
.budget-copy li { position: relative; padding-left: 22px; font-size: 12px; font-weight: 700; }
.budget-copy li::before { position: absolute; left: 0; color: var(--clay); content: "✓"; }
.budget-calculator { padding: 34px; color: #fff; background: var(--forest); }
.budget-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.budget-fields label { position: relative; display: grid; gap: 7px; }
.budget-fields label > span { color: rgba(255,255,255,.62); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.budget-fields input { width: 100%; min-width: 0; height: 52px; padding: 0 44px 0 14px; border: 1px solid rgba(255,255,255,.2); color: #fff; background: rgba(255,255,255,.07); font: inherit; }
.budget-fields small { position: absolute; right: 14px; bottom: 17px; color: rgba(255,255,255,.55); }
.budget-result { margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); }
.budget-result > span { color: rgba(255,255,255,.58); font-size: 10px; text-transform: uppercase; }
.budget-result > output { display: block; margin-top: 6px; font-family: "Prata", Georgia, serif; font-size: clamp(30px,4vw,50px); }
.budget-result dl { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; margin: 24px 0 0; }
.budget-result dt { color: rgba(255,255,255,.55); font-size: 9px; text-transform: uppercase; }
.budget-result dd { margin: 5px 0 0; font-size: 13px; font-weight: 700; }
.red-flags { padding-top: 25px; }
.sources-hero { position: relative; min-height: 620px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.sources-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sources-hero .method-hero-content { min-height: 620px; }
.sources-hero h1 { max-width: 900px; margin-bottom: 24px; font-size: clamp(50px,5.7vw,82px); }
.sources-hero p { max-width: 670px; margin: 0; color: rgba(255,255,255,.75); font-size: 17px; }
.source-matrix { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; }
.source-matrix-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.source-matrix-grid article { padding: 24px; background: var(--paper-light); }
.source-matrix-grid b { display: block; margin-bottom: 8px; }
.source-matrix-grid p { margin: 0; color: var(--muted); font-size: 12px; }
.freshness-policy { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; padding-top: 25px; }
.freshness-policy > div:last-child { border-top: 1px solid var(--line); }
.freshness-policy p { display: grid; grid-template-columns: 180px 1fr; gap: 24px; margin: 0; padding: 22px 0; border-bottom: 1px solid var(--line); }
.freshness-policy span { color: var(--muted); font-size: 12px; }

/* Доверие, контакты и документы */
.trust-hero, .legal-hero { color: #fff; background: var(--forest-deep); }
.trust-hero-shell { padding-top: 34px; padding-bottom: 90px; }
.trust-hero-shell > .breadcrumbs { margin-bottom: 76px; }
.trust-hero-grid { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(340px,.62fr); align-items: end; gap: 86px; }
.trust-hero-grid > * { min-width: 0; }
.trust-hero h1 { max-width: 900px; margin-bottom: 26px; font-size: clamp(52px,5.8vw,84px); }
.trust-hero-grid > div > p { max-width: 720px; margin: 0; color: rgba(255,255,255,.72); font-size: 17px; }
.trust-hero-card, .contact-email-card { padding: 30px; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.055); }
.trust-hero-card > span, .contact-email-card > span { display: block; margin-bottom: 22px; color: #e7b29f; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.trust-hero-card dl { margin: 0; }
.trust-hero-card dl > div { display: grid; grid-template-columns: 90px 1fr; gap: 20px; padding: 13px 0; border-top: 1px solid rgba(255,255,255,.14); }
.trust-hero-card dt { color: rgba(255,255,255,.48); font-size: 10px; }
.trust-hero-card dd { margin: 0; font-size: 12px; font-weight: 700; }
.trust-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: -38px; border: 1px solid var(--line); background: var(--paper-light); box-shadow: var(--shadow); }
.trust-stats article { display: grid; align-content: center; min-height: 150px; padding: 26px 32px; }
.trust-stats article + article { border-left: 1px solid var(--line); }
.trust-stats strong { font-family: "Prata", Georgia, serif; font-size: 32px; font-weight: 400; }
.trust-stats span { max-width: 290px; margin-top: 8px; color: var(--muted); font-size: 11px; }
.about-value { display: grid; grid-template-columns: minmax(280px,.62fr) minmax(0,1.38fr); gap: 80px; }
.about-value-copy p { color: var(--muted); }
.about-value-copy .button { margin-top: 16px; }
.about-value-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.about-value-grid article { min-width: 0; padding: 30px; background: var(--paper-light); }
.about-value-grid .icon { width: 25px; height: 25px; color: var(--clay); }
.about-value-grid h3 { margin: 52px 0 9px; font-size: 17px; }
.about-value-grid p { margin: 0; color: var(--muted); font-size: 12px; }
.about-process { color: #fff; background: var(--forest); }
.about-process-grid { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(0,1.35fr); gap: 90px; }
.about-process-grid > div > p { max-width: 460px; color: rgba(255,255,255,.62); }
.about-process-grid ol { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.about-process-grid li { display: grid; grid-template-columns: 64px 1fr; gap: 24px; padding: 23px 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.about-process-grid li > span { color: #e7b29f; font-family: "Prata", Georgia, serif; font-size: 22px; }
.about-process-grid b { font-size: 14px; }
.about-process-grid li p { margin: 5px 0 0; color: rgba(255,255,255,.58); font-size: 12px; }
.editorial-principles { display: grid; grid-template-columns: minmax(280px,.6fr) minmax(0,1.4fr); gap: 90px; }
.editorial-principles-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.editorial-principles-list article { min-width: 0; padding: 27px; background: var(--paper-light); }
.editorial-principles-list b { display: block; margin-bottom: 9px; font-size: 14px; }
.editorial-principles-list p { margin: 0; color: var(--muted); font-size: 12px; }
.trust-action { display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; padding-top: 30px; }
.trust-action h2 { margin-bottom: 12px; font-size: clamp(36px,4vw,54px); }
.trust-action p { max-width: 650px; margin: 0; color: var(--muted); }
.contact-email-card a { display: block; overflow-wrap: anywhere; color: #fff; font-family: "Prata", Georgia, serif; font-size: clamp(24px,2.4vw,34px); line-height: 1.25; }
.contact-email-card a:hover { color: #e7b29f; }
.contact-email-card p { margin: 20px 0 0; color: rgba(255,255,255,.56); font-size: 11px; }
.contact-reason-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.contact-reason-grid article { min-width: 0; padding: 32px; background: var(--paper-light); }
.contact-reason-grid .icon { color: var(--clay); }
.contact-reason-grid span { display: block; margin: 54px 0 8px; color: var(--clay-dark); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-reason-grid h3 { margin-bottom: 11px; font-size: 17px; }
.contact-reason-grid p { margin: 0; color: var(--muted); font-size: 12px; }
.contact-checklist { color: #fff; background: var(--forest); }
.contact-checklist-grid { display: grid; grid-template-columns: minmax(280px,.7fr) minmax(0,1.3fr); gap: 90px; }
.contact-checklist-grid > div > p { max-width: 450px; color: rgba(255,255,255,.6); }
.contact-checklist ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 0; padding: 1px; background: rgba(255,255,255,.16); list-style: none; }
.contact-checklist li { min-width: 0; padding: 26px; background: var(--forest); }
.contact-checklist li span { color: #e7b29f; font-family: "Prata", Georgia, serif; font-size: 20px; }
.contact-checklist li p { margin: 32px 0 0; font-size: 12px; font-weight: 700; }
.contact-boundary { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(0,1.35fr); gap: 90px; }
.contact-boundary > div:last-child { padding-top: 38px; border-top: 1px solid var(--line); }
.contact-boundary p { color: var(--muted); }

.legal-hero { padding: 34px 0 92px; }
.legal-hero-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.55fr); align-items: end; gap: 90px; }
.legal-hero-grid > * { min-width: 0; }
.legal-hero .breadcrumbs { grid-column: 1 / -1; margin-bottom: 66px; }
.legal-hero h1 { max-width: 980px; margin-bottom: 22px; font-size: clamp(50px,5.5vw,80px); }
.legal-hero-grid > div > p { max-width: 720px; margin: 0; color: rgba(255,255,255,.68); font-size: 16px; }
.legal-hero aside { padding: 25px 0 5px; border-top: 1px solid rgba(255,255,255,.22); }
.legal-hero aside span { display: block; color: rgba(255,255,255,.45); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.legal-hero aside b { display: block; margin-top: 8px; font-size: 14px; }
.legal-hero aside p { margin: 22px 0 0; color: rgba(255,255,255,.58); font-size: 11px; }
.legal-summary { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: -34px; border: 1px solid var(--line); background: var(--paper-light); box-shadow: 0 20px 60px rgba(20,31,27,.09); }
.legal-summary article { min-width: 0; padding: 26px 28px; }
.legal-summary article + article { border-left: 1px solid var(--line); }
.legal-summary b { display: block; margin-bottom: 8px; font-size: 13px; }
.legal-summary p { margin: 0; color: var(--muted); font-size: 11px; }
.legal-layout { display: grid; grid-template-columns: minmax(240px,.48fr) minmax(0,1.52fr); align-items: start; gap: 100px; }
.legal-aside { padding-top: 8px; }
.legal-aside h2 { font-size: 38px; }
.legal-aside p { color: var(--muted); font-size: 12px; }
.legal-copy { min-width: 0; max-width: 820px; }
.legal-copy h2 { margin: 0 0 16px; padding-top: 46px; border-top: 1px solid var(--line); font-family: "Manrope", sans-serif; font-size: 23px; font-weight: 700; letter-spacing: -.02em; line-height: 1.3; }
.legal-copy h2:first-child { padding-top: 0; border-top: 0; }
.legal-copy h2:not(:first-child) { margin-top: 46px; }
.legal-copy p { margin-bottom: 16px; color: #46514d; font-size: 14px; line-height: 1.8; }
.legal-copy a { color: var(--clay-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.legal-copy a:hover { color: var(--forest); }
.privacy-data-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 24px 0 52px; border: 1px solid var(--line); background: var(--line); }
.privacy-data-grid article { min-width: 0; padding: 23px; background: var(--paper-light); }
.privacy-data-grid span { display: block; margin-bottom: 9px; color: var(--ink); font-size: 13px; font-weight: 700; }
.privacy-data-grid p { margin: 0; font-size: 11px; line-height: 1.7; }
.legal-notice { margin: 24px 0 52px; padding: 25px 28px; border-left: 4px solid var(--clay); background: var(--paper-deep); }
.legal-notice b { display: block; margin-bottom: 8px; }
.legal-notice p { margin: 0; }

@media (max-width: 900px) {
  .method-intro, .budget-section, .source-matrix, .freshness-policy, .trust-hero-grid, .about-value, .about-process-grid, .editorial-principles, .contact-checklist-grid, .contact-boundary, .legal-hero-grid, .legal-layout { grid-template-columns: 1fr; gap: 42px; }
  .sources-hero, .sources-hero .method-hero-content { min-height: 560px; }
  .trust-hero-shell > .breadcrumbs { margin-bottom: 54px; }
  .trust-hero-card, .contact-email-card { max-width: 560px; }
  .trust-stats { margin-top: -24px; }
  .about-process-grid > div > p { max-width: 660px; }
  .legal-hero-grid { gap: 34px; }
  .legal-hero .breadcrumbs { margin-bottom: 40px; }
  .legal-hero aside { max-width: 520px; }
  .legal-layout { gap: 48px; }
  .legal-aside { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: 28px; }
  .legal-aside .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
  .legal-aside h2, .legal-aside p { margin-bottom: 0; }
  .legal-copy { max-width: none; }
}

@media (max-width: 560px) {
  .verification-grid, .budget-fields, .source-matrix-grid { grid-template-columns: 1fr; }
  .budget-calculator { padding: 24px 20px; }
  .budget-result dl { grid-template-columns: 1fr; }
  .freshness-policy p { grid-template-columns: 1fr; gap: 6px; }
  .sources-hero, .sources-hero .method-hero-content { min-height: 520px; }
  .sources-hero h1 { font-size: 44px; }
  .sources-hero p { font-size: 15px; }
  .trust-hero-shell { padding-top: 24px; padding-bottom: 68px; }
  .trust-hero h1 { font-size: 43px; }
  .legal-hero h1 { overflow-wrap: normal; font-size: clamp(24px,6.8vw,32px); hyphens: none; }
  .trust-hero-grid > div > p, .legal-hero-grid > div > p { font-size: 14px; }
  .trust-hero-card, .contact-email-card { padding: 23px 20px; }
  .trust-stats, .legal-summary { grid-template-columns: 1fr; }
  .trust-stats article, .legal-summary article { min-height: 0; padding: 22px; }
  .trust-stats article + article, .legal-summary article + article { border-top: 1px solid var(--line); border-left: 0; }
  .about-value-grid, .editorial-principles-list, .privacy-data-grid, .contact-checklist ol { grid-template-columns: 1fr; }
  .about-value-grid article, .contact-reason-grid article { padding: 24px; }
  .about-value-grid h3, .contact-reason-grid span { margin-top: 38px; }
  .contact-reason-grid { grid-template-columns: 1fr; }
  .trust-action { align-items: stretch; flex-direction: column; }
  .legal-hero { padding: 24px 0 70px; }
  .legal-hero .breadcrumbs { margin-bottom: 34px; }
  .legal-aside { display: block; }
  .legal-aside .eyebrow { margin-bottom: 18px; }
  .legal-aside h2 { font-size: 34px; }
  .legal-copy h2 { font-size: 21px; }
  .legal-copy p { font-size: 13px; }
  .legal-notice { padding: 22px 20px; }
}

/* Федеральный каталог */
.national-hero { position: relative; min-height: 760px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.national-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.national-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,20,16,.94) 0%,rgba(5,20,16,.83) 38%,rgba(5,20,16,.28) 72%,rgba(5,20,16,.08) 100%), linear-gradient(0deg,rgba(5,20,16,.7),transparent 58%); }
.national-hero-content { position: relative; z-index: 2; display: flex; min-height: 640px; flex-direction: column; padding-top: 34px; padding-bottom: 68px; }
.national-hero-content .breadcrumbs { margin-bottom: 0; }
.national-hero-content > div { margin-top: auto; }
.national-hero h1 { max-width: 970px; margin-bottom: 24px; font-size: clamp(58px,6.2vw,94px); }
.national-hero-content > div > p { max-width: 720px; margin-bottom: 30px; color: rgba(255,255,255,.76); font-size: 17px; }
.national-search { width: min(720px,100%); }
.national-hero-stats { position: relative; z-index: 2; display: grid; min-height: 120px; grid-template-columns: repeat(3,1fr); margin-top: 0; margin-bottom: 0; border-top: 1px solid rgba(255,255,255,.24); }
.national-hero-stats > div { display: grid; align-content: center; padding: 20px 30px; }
.national-hero-stats > div + div { border-left: 1px solid rgba(255,255,255,.2); }
.national-hero-stats dt { color: rgba(255,255,255,.56); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.national-hero-stats dd { margin: 5px 0 0; font-family: "Prata", Georgia, serif; font-size: 24px; }

.catalog-presets { display: flex; align-items: center; gap: 18px; margin-top: 28px; }
.catalog-presets > span { flex: 0 0 auto; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.catalog-presets > div { display: flex; min-width: 0; flex-wrap: wrap; gap: 8px; }
.catalog-presets button { display: inline-flex; min-height: 44px; align-items: center; gap: 9px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--paper-light); font-size: 11px; font-weight: 700; white-space: nowrap; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.catalog-presets button:hover { border-color: var(--forest); color: var(--forest); }
.catalog-presets button.is-active { border-color: var(--forest); color: #fff; background: var(--forest); }
.catalog-presets small { display: grid; min-width: 25px; height: 20px; place-items: center; border-radius: 999px; color: var(--muted); background: var(--paper-deep); font-size: 8px; }
.catalog-presets button.is-active small { color: var(--forest); background: #fff; }
.catalog-filter-toggle { display: none; }

.national-cities { padding-top: 54px; }
.national-city-layout { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); min-height: 560px; border: 1px solid var(--line); background: var(--paper-light); }
.national-city-feature { position: relative; min-width: 0; min-height: 560px; color: #fff; overflow: hidden; }
.national-city-feature > img, .national-city-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.national-city-feature > img { object-fit: cover; transition: transform .7s ease; }
.national-city-feature:hover > img { transform: scale(1.025); }
.national-city-shade { background: linear-gradient(0deg,rgba(5,22,17,.9),rgba(5,22,17,.08) 72%); }
.national-city-feature > div { position: absolute; right: 44px; bottom: 42px; left: 44px; }
.national-city-feature > div > span { color: #e2ae98; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.national-city-feature h3 { margin: 14px 0 5px; font-family: "Prata", Georgia, serif; font-size: clamp(48px,5vw,68px); font-weight: 400; }
.national-city-feature p { margin-bottom: 25px; color: rgba(255,255,255,.72); font-size: 13px; }
.national-city-feature b { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; }
.national-city-feature b .icon { width: 17px; transition: transform .2s ease; }
.national-city-feature:hover b .icon { transform: translateX(4px); }
.city-index { display: flex; min-width: 0; flex-direction: column; padding: 34px; }
.city-index-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.city-index-head .eyebrow { margin-bottom: 7px; }
.city-index-head h3 { margin: 0; font-family: "Prata", Georgia, serif; font-size: 31px; font-weight: 400; }
.city-index-head label { position: relative; width: min(210px,100%); }
.city-index-head label > .icon { position: absolute; top: 50%; left: 13px; width: 16px; color: var(--muted); transform: translateY(-50%); }
.city-index-head input { width: 100%; height: 44px; padding: 0 12px 0 39px; border: 1px solid var(--line); outline: 0; background: #fff; font-size: 11px; }
.city-index-head input:focus { border-color: var(--clay); box-shadow: 0 0 0 3px rgba(190,90,59,.1); }
.city-index-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.city-index-grid > :is(span, a) { position: relative; display: grid; min-width: 0; align-content: center; min-height: 82px; padding: 15px 18px 15px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.city-index-grid > :is(span, a)[hidden] { display: none; }
.city-index-grid > :is(span, a):nth-child(even) { padding-right: 0; padding-left: 18px; border-left: 1px solid var(--line); }
.city-index-grid > a { padding-right: 42px; transition: color .2s ease; }
.city-index-grid > a:hover { color: var(--clay-dark); }
.city-index-grid > a .icon { position: absolute; right: 16px; width: 16px; }
.city-index-grid b { min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.city-index-grid small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.city-more { width: 100%; min-height: 48px; margin-top: auto; border: 0; border-top: 1px solid var(--line); color: var(--forest); background: transparent; font-size: 11px; font-weight: 700; }
.city-more span { margin-left: 5px; color: var(--muted); }
.city-more:hover { color: var(--clay-dark); }

.national-catalog { padding-top: 82px; }
.national-catalog .catalog-filters { grid-template-columns: minmax(210px,1.65fr) repeat(5,minmax(105px,1fr)) auto; }
.national-calculator { color: #fff; background: var(--forest-deep); }
.national-calculator-grid { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); align-items: center; gap: 90px; }
.national-calculator-copy h2 { max-width: 520px; }
.national-calculator-copy > p { max-width: 520px; color: rgba(255,255,255,.66); }
.national-calculator-copy ul { display: grid; gap: 10px; margin: 30px 0 0; padding: 0; list-style: none; }
.national-calculator-copy li { position: relative; padding-left: 24px; color: rgba(255,255,255,.76); font-size: 12px; }
.national-calculator-copy li::before { position: absolute; left: 0; color: #e7ab94; content: "✓"; }
.national-calculator-copy .text-link { margin-top: 30px; }
.national-mortgage { margin: 0; padding: 34px; color: var(--ink); background: var(--paper-light); box-shadow: 0 28px 80px rgba(0,0,0,.2); }

.national-guide { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); align-items: start; gap: 100px; }
.national-guide > div > p { max-width: 560px; margin-bottom: 30px; color: var(--muted); }
.national-guide ol { margin: 0; padding: 0; list-style: none; }
.national-guide li { display: grid; grid-template-columns: 58px 1fr; gap: 20px; padding: 24px 0; border-top: 1px solid var(--line); }
.national-guide li:last-child { border-bottom: 1px solid var(--line); }
.national-guide li > span { color: var(--clay); font-family: "Prata", Georgia, serif; font-size: 21px; }
.national-guide li b { font-size: 15px; }
.national-guide li p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }

@media (max-width: 1080px) {
  .national-city-layout { grid-template-columns: minmax(0,1fr) minmax(350px,.86fr); }
  .national-catalog .catalog-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .national-catalog .catalog-search { grid-column: span 2; }
  .national-calculator-grid { gap: 50px; }
}

@media (max-width: 900px) {
  .national-hero { min-height: 720px; }
  .national-hero-content { min-height: 600px; }
  .national-hero h1 { font-size: clamp(50px,9vw,76px); }
  .national-city-layout, .national-calculator-grid, .national-guide { grid-template-columns: 1fr; }
  .national-city-feature { min-height: 500px; }
  .national-calculator-grid, .national-guide { gap: 48px; }
}

@media (max-width: 560px) {
  .national-hero { min-height: 710px; }
  .national-hero-image { object-position: 67% center; }
  .national-hero-shade { background: linear-gradient(90deg,rgba(5,20,16,.93),rgba(5,20,16,.55)),linear-gradient(0deg,rgba(5,20,16,.84),transparent 54%); }
  .national-hero-content { min-height: 600px; padding-top: 26px; padding-bottom: 34px; }
  .national-hero h1 { font-size: clamp(43px,12vw,56px); }
  .national-hero-content > div > p { font-size: 14px; }
  .national-hero-stats { min-height: 110px; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .national-hero-stats > div { min-width: 0; padding: 13px 9px; }
  .national-hero-stats > div + div { border-left: 1px solid rgba(255,255,255,.2); }
  .national-hero-stats dt { font-size: 7px; line-height: 1.35; }
  .national-hero-stats dd { font-family: "Manrope", sans-serif; font-size: 13px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
  .national-catalog { padding-top: 56px; }
  .national-catalog .catalog-head { gap: 20px; }
  .national-catalog .catalog-freshness { grid-template-columns: 1fr auto; align-items: center; gap: 2px 14px; padding: 13px 15px; }
  .national-catalog .catalog-freshness time { font-size: 18px; }
  .national-catalog .catalog-freshness small { grid-column: 1 / -1; }
  .catalog-presets { align-items: flex-start; flex-direction: column; gap: 9px; }
  .catalog-presets > span { display: none; }
  .catalog-presets > div { width: 100%; flex-wrap: nowrap; padding: 2px 2px 8px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .national-city-feature { min-height: 390px; }
  .national-city-feature > div { right: 24px; bottom: 25px; left: 24px; }
  .national-city-feature h3 { font-size: 46px; }
  .city-index { padding: 25px 20px; }
  .city-index-head { align-items: stretch; flex-direction: column; }
  .city-index-head label { width: 100%; }
  .city-index-grid { grid-template-columns: 1fr; }
  .city-index-grid > :is(span, a), .city-index-grid > :is(span, a):nth-child(even) { min-height: 70px; padding-right: 0; padding-left: 0; border-left: 0; }
  .city-index-grid > a { padding-right: 32px; }
  .city-more { margin-top: 18px; }
  .national-catalog .catalog-filters { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 24px; }
  .national-catalog .catalog-filters label { grid-column: 1 / -1; }
  .national-catalog .catalog-search { grid-column: 1 / -1; }
  .national-catalog .catalog-filters:not(.is-expanded) .catalog-secondary-filter { display: none; }
  .catalog-filter-toggle { display: flex; min-height: 44px; align-items: center; justify-content: space-between; padding: 0 14px; border: 1px solid var(--line); color: var(--forest); background: #fff; font-size: 11px; font-weight: 700; }
  .catalog-filter-toggle span { color: var(--muted); font-size: 9px; }
  .national-catalog .catalog-reset { min-width: 0; }
  .national-catalog .catalog-controls { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; }
  .national-catalog .catalog-controls p { grid-column: 1 / -1; }
  .national-catalog .catalog-controls label { min-width: 0; }
  .national-catalog .catalog-controls select { width: 100%; }
  .national-mortgage { padding: 22px 18px; }
  .national-guide { gap: 34px; }
}

/* Подбор новостроек по бюджету */
.budget-picker-hero { position: relative; min-height: 760px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.budget-picker-hero-image, .budget-picker-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.budget-picker-hero-image { object-fit: cover; object-position: 64% center; }
.budget-picker-hero-shade { background: linear-gradient(90deg,rgba(5,20,16,.97) 0%,rgba(5,20,16,.91) 43%,rgba(5,20,16,.48) 72%,rgba(5,20,16,.26) 100%), linear-gradient(0deg,rgba(5,20,16,.72),transparent 56%); }
.budget-picker-hero-grid { position: relative; z-index: 2; display: grid; min-height: 760px; grid-template-columns: minmax(0,.86fr) minmax(520px,1.14fr); align-items: center; gap: clamp(48px,5.5vw,76px); padding-top: 40px; padding-bottom: 56px; }
.budget-picker-copy { min-width: 0; }
.budget-picker-copy .breadcrumbs { margin-bottom: 52px; }
.budget-picker-copy h1 { max-width: 650px; margin-bottom: 25px; font-size: clamp(56px,5.2vw,74px); }
.budget-picker-copy > p { max-width: 600px; margin-bottom: 34px; color: rgba(255,255,255,.74); font-size: 16px; }
.budget-picker-copy > dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; border-block: 1px solid rgba(255,255,255,.2); }
.budget-picker-copy > dl div { min-width: 0; padding: 17px 14px 17px 0; }
.budget-picker-copy > dl div + div { padding-left: 17px; border-left: 1px solid rgba(255,255,255,.18); }
.budget-picker-copy > dl dt { color: rgba(255,255,255,.5); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.budget-picker-copy > dl dd { margin: 4px 0 0; font-size: 12px; font-weight: 700; line-height: 1.4; }

.budget-picker-form { min-width: 0; padding: 34px; color: var(--ink); background: var(--paper-light); box-shadow: 0 28px 85px rgba(0,0,0,.28); }
.budget-picker-form-head > span { color: var(--clay-dark); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.budget-picker-form-head h2 { margin: 8px 0 10px; font-size: 36px; }
.budget-picker-form-head p { margin-bottom: 24px; color: var(--muted); font-size: 11px; }
.budget-picker-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.budget-picker-field { display: grid; min-width: 0; align-content: start; gap: 6px; }
.budget-picker-field > label { color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.budget-picker-field > div { position: relative; display: flex; min-width: 0; align-items: center; border: 1px solid var(--line); background: #fff; }
.budget-picker-field > div:focus-within { border-color: var(--clay); box-shadow: 0 0 0 3px rgba(190,90,59,.1); }
.budget-picker-field input { width: 100%; min-width: 0; height: 54px; padding: 0 54px 0 15px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.budget-picker-field > div > span { position: absolute; right: 15px; color: var(--muted); font-size: 11px; pointer-events: none; }
.budget-picker-field.is-invalid > div { border-color: var(--clay-dark); }
.budget-picker-field input[aria-invalid="true"] { color: var(--clay-dark); }
.budget-picker-field > small { min-height: 17px; color: var(--clay-dark); font-size: 9px; line-height: 1.4; }
.budget-picker-field > small[hidden] { display: block; visibility: hidden; }
.budget-picker-result { margin-top: 14px; padding: 22px 24px; color: #fff; background: var(--forest); font-variant-numeric: tabular-nums; }
.budget-picker-result > span { color: rgba(255,255,255,.56); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.budget-picker-result > output { display: block; margin: 5px 0 17px; font-family: "Prata", Georgia, serif; font-size: clamp(31px,3vw,40px); line-height: 1.2; overflow-wrap: anywhere; }
.budget-picker-result dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.18); }
.budget-picker-result dl > div + div { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.18); }
.budget-picker-result dt { color: rgba(255,255,255,.5); font-size: 8px; text-transform: uppercase; }
.budget-picker-result dd { margin: 4px 0 0; font-size: 12px; font-weight: 700; }
.budget-picker-submit { width: 100%; margin-top: 12px; }
.budget-picker-submit:disabled { color: rgba(255,255,255,.65); background: #98766a; cursor: not-allowed; transform: none; }
.budget-picker-disclaimer { margin: 11px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }

.budget-picker-results { min-height: 720px; }
.budget-results-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 50px; margin-bottom: 30px; }
.budget-results-head h2 { margin-bottom: 12px; }
.budget-results-head > div:first-child > p { max-width: 760px; margin: 0; color: var(--muted); font-size: 13px; }
.budget-results-count { display: grid; min-width: 180px; padding: 18px 20px; color: #fff; background: var(--forest); text-align: right; }
.budget-results-count b { font-family: "Prata", Georgia, serif; font-size: 32px; font-weight: 400; line-height: 1; }
.budget-results-count span { margin-top: 6px; color: rgba(255,255,255,.58); font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.budget-results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding-block: 14px; border-block: 1px solid var(--line); }
.budget-status-filter { display: flex; min-width: 0; }
.budget-status-filter button { min-height: 44px; padding: 0 18px; border: 1px solid var(--line); color: var(--muted); background: var(--paper-light); font-size: 11px; font-weight: 700; }
.budget-status-filter button + button { border-left: 0; }
.budget-status-filter button.is-active { color: #fff; border-color: var(--forest); background: var(--forest); }
.budget-results-toolbar > label { display: flex; align-items: center; gap: 10px; }
.budget-results-toolbar > label > span { color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.budget-results-toolbar select { min-width: 225px; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 0; outline: 0; color: var(--ink); background: #fff; font: inherit; font-size: 11px; }
.budget-results-toolbar select:focus { border-color: var(--clay); box-shadow: 0 0 0 3px rgba(190,90,59,.1); }
.budget-picker-invalid, .budget-picker-empty { margin-bottom: 24px; padding: 42px; border: 1px solid var(--line); background: var(--paper-light); text-align: center; }
.budget-picker-invalid[hidden], .budget-picker-empty[hidden], .budget-nearest-note[hidden] { display: none; }
.budget-picker-invalid h3, .budget-picker-empty h3 { margin-bottom: 12px; font-family: "Prata", Georgia, serif; font-size: 34px; font-weight: 400; }
.budget-picker-invalid p, .budget-picker-empty p { max-width: 650px; margin: 0 auto; color: var(--muted); font-size: 12px; }
.budget-picker-empty > div { display: flex; justify-content: center; gap: 10px; margin-top: 24px; }
.budget-nearest-note { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 17px; padding: 15px 18px; color: #fff; background: var(--clay-dark); }
.budget-nearest-note > span { font-size: 12px; font-weight: 700; }
.budget-nearest-note > small { color: rgba(255,255,255,.68); font-size: 9px; }
.budget-projects { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.budget-project-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--line); background: var(--paper-light); transition: transform .25s ease, box-shadow .25s ease; }
.budget-project-card:hover { transform: translateY(-3px); box-shadow: 0 18px 45px rgba(18,36,29,.09); }
.budget-project-card.is-filtered, .budget-project-card.is-collapsed { display: none; }
.budget-project-card.is-nearest { border-color: rgba(152,69,45,.45); }
.budget-project-media { position: relative; min-width: 0; }
.budget-project-image { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #d9ddd9; }
.budget-project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.budget-project-image:hover img { transform: scale(1.025); }
.budget-project-class { position: absolute; right: 14px; bottom: 14px; padding: 7px 9px; color: #fff; background: rgba(7,27,21,.76); font-size: 8px; font-weight: 700; text-transform: uppercase; backdrop-filter: blur(8px); }
.budget-project-body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 22px; }
.budget-project-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.budget-project-heading > div { min-width: 0; }
.budget-project-heading > div > span { color: var(--clay-dark); font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.budget-project-heading h3 { margin: 5px 0 0; font-family: "Prata", Georgia, serif; font-size: 25px; font-weight: 400; letter-spacing: -.025em; overflow-wrap: anywhere; }
.budget-project-heading > b { flex: 0 0 auto; padding-top: 19px; font-size: 13px; white-space: nowrap; }
.budget-project-address { display: flex; align-items: flex-start; gap: 6px; min-height: 39px; margin: 12px 0 16px; color: var(--muted); font-size: 10px; }
.budget-project-address .icon { width: 14px; flex: 0 0 14px; margin-top: 1px; color: var(--clay); }
.budget-project-payment { display: grid; min-height: 112px; align-content: center; padding: 17px; border-left: 3px solid var(--clay); background: #f1ebe2; }
.budget-project-payment > span { color: var(--clay-dark); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.budget-project-payment > strong { margin: 4px 0 3px; font-family: "Prata", Georgia, serif; font-size: 20px; font-weight: 400; line-height: 1.25; overflow-wrap: anywhere; }
.budget-project-payment > small { color: var(--muted); font-size: 9px; }
.budget-project-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 18px 0 0; padding-block: 16px; border-block: 1px solid var(--line); }
.budget-project-facts > div { min-width: 0; }
.budget-project-facts > div + div { padding-left: 10px; border-left: 1px solid var(--line); }
.budget-project-facts dt { color: var(--muted); font-size: 8px; text-transform: uppercase; overflow-wrap: anywhere; }
.budget-project-facts dd { margin: 4px 0 0; font-size: 10px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.budget-project-house, .budget-project-market { margin: 14px 0 0; color: var(--muted); font-size: 10px; }
.budget-project-market { margin-top: 4px; }
.budget-project-house b, .budget-project-market b { color: var(--ink); }
.budget-project-checked { margin-top: auto; padding-top: 16px; color: var(--muted); font-size: 9px; }
.budget-project-actions { display: grid; gap: 11px; margin-top: 12px; }
.budget-project-actions .button { width: 100%; min-height: 48px; }
.budget-project-actions .text-link { min-height: 44px; justify-content: center; font-size: 11px; }
.budget-picker-more { display: flex; min-width: 260px; justify-content: space-between; gap: 18px; margin: 30px auto 0; padding-right: 10px; padding-left: 22px; }
.budget-picker-more[hidden] { display: none; }
.budget-picker-noscript { padding: 16px; border: 1px solid var(--line); background: var(--paper-light); font-size: 12px; }
.budget-picker-noscript a { color: var(--clay-dark); text-decoration: underline; }

.budget-picker-explanation { color: #fff; background: var(--forest-deep); }
.budget-picker-explanation > .shell { display: grid; grid-template-columns: minmax(0,.72fr) minmax(440px,1.28fr); gap: 90px; }
.budget-explanation-head h2 { max-width: 530px; }
.budget-explanation-head > p { max-width: 540px; color: rgba(255,255,255,.62); }
.budget-picker-explanation ol { margin: 0; padding: 0; list-style: none; }
.budget-picker-explanation li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding: 23px 0; border-top: 1px solid rgba(255,255,255,.18); }
.budget-picker-explanation li:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.budget-picker-explanation li > span { color: #e5a991; font-family: "Prata", Georgia, serif; font-size: 20px; }
.budget-picker-explanation li b { font-size: 14px; }
.budget-picker-explanation li p { margin: 4px 0 0; color: rgba(255,255,255,.58); font-size: 11px; }
.budget-explanation-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 25px; margin-top: -35px; }
.budget-picker-legal { padding-top: 48px; padding-bottom: 48px; }
.budget-picker-legal p { max-width: 950px; margin: 0; color: var(--muted); font-size: 11px; }
.budget-picker-legal b { color: var(--ink); }

@media (max-width: 1080px) {
  .budget-picker-hero-grid { grid-template-columns: minmax(0,.76fr) minmax(490px,1.24fr); gap: 38px; }
  .budget-picker-copy h1 { font-size: 56px; }
  .budget-picker-form { padding: 28px; }
  .budget-projects { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .budget-picker-hero-grid { grid-template-columns: 1fr; gap: 36px; padding-top: 32px; padding-bottom: 72px; }
  .budget-picker-copy .breadcrumbs { margin-bottom: 45px; }
  .budget-picker-copy h1 { max-width: 720px; font-size: 58px; }
  .budget-picker-copy > p { max-width: 670px; }
  .budget-picker-form { width: min(680px,100%); }
  .budget-results-head { grid-template-columns: 1fr auto; gap: 30px; }
  .budget-picker-explanation > .shell { grid-template-columns: 1fr; gap: 35px; }
  .budget-explanation-actions { grid-column: 1; margin-top: 0; }
}

@media (max-width: 560px) {
  .city-actions { display: grid; }
  .city-actions .button { width: 100%; }
  .budget-picker-hero-image { object-position: 72% center; }
  .budget-picker-hero-shade { background: linear-gradient(90deg,rgba(5,20,16,.96),rgba(5,20,16,.72)),linear-gradient(0deg,rgba(5,20,16,.82),transparent 55%); }
  .budget-picker-hero-grid { gap: 30px; padding-top: 24px; padding-bottom: 50px; }
  .budget-picker-copy .breadcrumbs { margin-bottom: 30px; }
  .budget-picker-copy h1 { font-size: 43px; }
  .budget-picker-copy > p { font-size: 14px; }
  .budget-picker-copy > dl { display: none; }
  .budget-picker-form { padding: 22px 18px; }
  .budget-picker-form-head h2 { font-size: 31px; }
  .budget-picker-fields { grid-template-columns: 1fr; }
  .budget-picker-field input { height: 52px; }
  .budget-picker-result { padding: 20px 18px; }
  .budget-picker-result > output { font-size: 34px; }
  .budget-picker-result dl { grid-template-columns: 1fr; }
  .budget-picker-result dl > div + div { margin-top: 12px; padding-top: 12px; padding-left: 0; border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }
  .budget-picker-results { padding-top: 72px; padding-bottom: 72px; }
  .budget-results-head { grid-template-columns: 1fr; gap: 18px; }
  .budget-results-count { min-width: 0; text-align: left; }
  .budget-results-toolbar { align-items: stretch; flex-direction: column; }
  .budget-status-filter { width: 100%; padding-bottom: 4px; overflow-x: auto; overscroll-behavior-inline: contain; }
  .budget-status-filter button { flex: 1 0 auto; }
  .budget-results-toolbar > label { align-items: stretch; flex-direction: column; }
  .budget-results-toolbar select { width: 100%; min-width: 0; }
  .budget-picker-invalid, .budget-picker-empty { padding: 32px 18px; }
  .budget-picker-empty > div { display: grid; }
  .budget-picker-empty .button { width: 100%; }
  .budget-nearest-note { align-items: flex-start; flex-direction: column; gap: 4px; }
  .budget-projects { grid-template-columns: 1fr; }
  .budget-project-heading { display: block; }
  .budget-project-heading > b { display: block; padding-top: 9px; }
  .budget-project-address { min-height: 0; }
  .budget-project-card .catalog-compare { min-height: 44px; padding-inline: 14px; }
  .budget-project-actions .button { min-height: 52px; }
  .budget-picker-explanation > .shell { gap: 24px; }
  .budget-explanation-actions { align-items: stretch; flex-direction: column; }
  .budget-explanation-actions .button { width: 100%; }
}

/* Сравнение жилых комплексов */
.catalog-project-media { position: relative; min-width: 0; }
.catalog-compare { position: absolute; z-index: 3; top: 14px; right: 14px; display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid rgba(16,27,24,.13); border-radius: 999px; color: var(--ink); background: rgba(251,250,247,.94); box-shadow: 0 6px 20px rgba(8,29,24,.13); font-size: 10px; font-weight: 700; backdrop-filter: blur(10px); transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.catalog-compare:hover { border-color: rgba(16,27,24,.3); transform: translateY(-1px); }
.catalog-compare .icon { width: 15px; height: 15px; }
.catalog-compare.is-selected { color: #fff; border-color: var(--clay); background: var(--clay); }
.catalog-compare.is-selected .icon { stroke-width: 2.2; }
.catalog-projects.is-list .catalog-project-media { min-height: 250px; }
.catalog-projects.is-list .catalog-project-image { height: 100%; }
.object-compare { gap: 9px; }
.object-compare .icon { width: 17px; height: 17px; }
.object-compare.is-selected { color: #fff; border-color: var(--clay); background: var(--clay); }

body.has-compare-tray { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
.compare-tray[hidden] { display: none; }
.compare-tray { position: fixed; right: 0; bottom: 0; left: 0; z-index: 90; color: #fff; border-top: 1px solid rgba(255,255,255,.15); background: rgba(9,39,31,.98); box-shadow: 0 -18px 55px rgba(4,19,15,.24); backdrop-filter: blur(14px); }
.compare-tray-inner { display: grid; min-height: 104px; grid-template-columns: auto minmax(280px,1fr) minmax(120px,.55fr) auto; align-items: center; gap: 20px; padding-top: 15px; padding-bottom: calc(15px + env(safe-area-inset-bottom)); }
.compare-tray-title { display: grid; gap: 2px; white-space: nowrap; }
.compare-tray-title > span { color: rgba(255,255,255,.58); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.compare-tray-title b { font-family: "Prata", Georgia, serif; font-size: 19px; font-weight: 400; }
.compare-tray-items { display: grid; min-width: 0; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.compare-tray-items > div { display: flex; min-width: 0; min-height: 38px; align-items: center; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.07); }
.compare-tray-items a { min-width: 0; flex: 1; padding: 9px 4px 9px 11px; font-size: 10px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.compare-tray-items button { display: grid; width: 34px; align-self: stretch; flex: 0 0 34px; place-items: center; padding: 0; border: 0; color: rgba(255,255,255,.6); background: transparent; font-size: 18px; }
.compare-tray-items button:hover { color: #fff; background: rgba(255,255,255,.09); }
.compare-tray-status { min-width: 0; margin: 0; color: rgba(255,255,255,.63); font-size: 10px; line-height: 1.45; }
.compare-tray-status:empty { display: none; }
.compare-tray.is-limit .compare-tray-status { color: #f4b49f; }
.compare-tray-actions { display: flex; align-items: center; gap: 10px; }
.compare-tray-actions .button { min-width: 160px; min-height: 46px; padding-inline: 17px; }
.compare-tray-actions .button[aria-disabled="true"] { color: rgba(255,255,255,.62); background: rgba(255,255,255,.1); pointer-events: none; }
.compare-clear, .comparison-clear { padding: 8px 2px; border: 0; color: rgba(255,255,255,.62); background: transparent; font-size: 10px; font-weight: 700; }
.compare-clear:hover { color: #fff; }

.compare-hero { position: relative; min-height: 480px; color: #fff; background: var(--forest-deep); overflow: hidden; }
.compare-hero-image, .compare-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.compare-hero-image { object-fit: cover; object-position: center 58%; }
.compare-hero-shade { background: linear-gradient(90deg,rgba(5,20,16,.94),rgba(5,20,16,.69) 50%,rgba(5,20,16,.16)), linear-gradient(0deg,rgba(5,20,16,.55),transparent 65%); }
.compare-hero-content { position: relative; z-index: 2; display: flex; min-height: 480px; flex-direction: column; justify-content: space-between; padding-top: 34px; padding-bottom: 62px; }
.compare-hero-content h1 { max-width: 920px; margin-bottom: 18px; font-size: clamp(54px,5.8vw,82px); }
.compare-hero-content > div > p { max-width: 670px; margin: 0; color: rgba(255,255,255,.74); font-size: 16px; }
.comparison-section { min-height: 510px; }
.comparison-builder { position: relative; margin-bottom: 48px; padding: 42px; border: 1px solid rgba(17,48,39,.15); background: linear-gradient(145deg,#fff 0%,#f3ede3 100%); box-shadow: 0 26px 70px rgba(18,39,33,.08); overflow: hidden; }
.comparison-builder::before { content: ""; position: absolute; top: -180px; right: -140px; width: 390px; height: 390px; border: 1px solid rgba(190,90,59,.12); border-radius: 50%; pointer-events: none; }
.comparison-builder-head { position: relative; z-index: 1; display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 30px; }
.comparison-builder-head h2 { margin: 8px 0 0; }
.comparison-selection-meter { display: grid; min-width: 112px; gap: 2px; padding: 13px 18px; color: #fff; background: var(--forest); text-align: center; }
.comparison-selection-meter span { color: rgba(255,255,255,.62); font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.comparison-selection-meter b { font-family: "Prata", Georgia, serif; font-size: 19px; font-weight: 400; }
.comparison-slots { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.comparison-slots[data-items="1"] { grid-template-columns: minmax(0,1fr); }
.comparison-slots[data-items="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
.comparison-slot { position: relative; min-width: 0; border: 1px solid rgba(12,48,38,.16); background: #fff; box-shadow: 0 16px 38px rgba(10,38,30,.09); overflow: hidden; }
.comparison-slot.is-filled { display: grid; grid-template-rows: auto 1fr auto; }
.comparison-slot-media { position: relative; aspect-ratio: 16 / 9; background: var(--paper-deep); overflow: hidden; }
.comparison-slot-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 55%,rgba(5,24,18,.5)); pointer-events: none; }
.comparison-slot-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.comparison-slot:hover .comparison-slot-media img { transform: scale(1.025); }
.comparison-slot-media span { position: absolute; z-index: 1; right: 14px; bottom: 13px; padding: 7px 10px; color: #fff; background: rgba(7,37,29,.86); font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(8px); }
.comparison-slot-copy { min-width: 0; padding: 22px 22px 20px; }
.comparison-slot-copy small { display: block; color: var(--clay-dark); font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.comparison-slot-copy h3 { margin: 8px 0 13px; font-family: "Prata", Georgia, serif; font-size: 25px; font-weight: 400; line-height: 1.16; letter-spacing: -.02em; overflow-wrap: anywhere; }
.comparison-slot-copy b { font-size: 13px; }
.comparison-slot-actions { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.comparison-slot-actions button { min-width: 0; min-height: 50px; padding: 0 16px; border: 0; color: var(--ink); background: #fff; font-size: 10px; font-weight: 700; transition: color .2s ease, background .2s ease; }
.comparison-slot-actions button + button { border-left: 1px solid var(--line); }
.comparison-slot-actions button:first-child { color: #fff; background: var(--forest); }
.comparison-slot-actions button:first-child:hover { background: var(--forest-deep); }
.comparison-slot-actions button:last-child:hover { color: var(--clay-dark); background: #f7eee8; }
.comparison-slot-add { min-height: 338px; border: 0; color: #fff; background: var(--forest); box-shadow: 0 20px 46px rgba(8,39,31,.2); }
.comparison-slot-add::before, .comparison-slot-add::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; pointer-events: none; }
.comparison-slot-add::before { top: -115px; right: -70px; width: 260px; height: 260px; }
.comparison-slot-add::after { bottom: -145px; left: -90px; width: 300px; height: 300px; }
.comparison-slot-add > button { position: relative; z-index: 1; display: grid; width: 100%; min-height: 100%; place-items: start; align-content: end; gap: 7px; padding: 34px; border: 0; color: #fff; background: transparent; text-align: left; }
.comparison-slot-add > button:hover { background: rgba(255,255,255,.055); }
.comparison-add-mark { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 36px; border: 1px solid rgba(255,255,255,.55); color: #fff; font-family: "Prata", Georgia, serif; font-size: 26px; transition: color .2s ease, background .2s ease, transform .2s ease; }
.comparison-slot-add > button:hover .comparison-add-mark { color: var(--forest); background: #fff; transform: translateY(-2px); }
.comparison-slot-add small { color: #f2a184; font-size: 8px; font-style: normal; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.comparison-slot-add b { max-width: 310px; font-family: "Prata", Georgia, serif; font-size: 28px; font-weight: 400; line-height: 1.17; }
.comparison-slot-add em { color: rgba(255,255,255,.63); font-size: 10px; font-style: normal; }
.comparison-slots[data-items="1"] .comparison-slot-add { min-height: 270px; }
.comparison-slots[data-items="1"] .comparison-slot-add > button { grid-template-columns: auto minmax(0,1fr); grid-template-rows: auto auto auto; align-content: center; column-gap: 26px; padding: 44px; }
.comparison-slots[data-items="1"] .comparison-add-mark { grid-row: 1 / -1; align-self: center; margin: 0; }
.comparison-builder-actions { position: relative; z-index: 1; display: flex; justify-content: flex-end; margin-top: 20px; }
.comparison-builder-actions .comparison-clear { min-width: 164px; min-height: 48px; padding: 0 20px; border: 1px solid rgba(12,48,38,.24); color: var(--ink); background: rgba(255,255,255,.72); font-size: 10px; }
.comparison-builder-actions .comparison-clear:hover { border-color: var(--clay); color: var(--clay-dark); background: #fff; }
.comparison-builder-actions .comparison-clear[hidden] { display: none; }
.comparison-content[hidden] { display: none; }
.comparison-toolbar { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 50px; margin-bottom: 30px; }
.comparison-toolbar h2 { margin-bottom: 12px; }
.comparison-toolbar p { max-width: 650px; margin: 0; color: var(--muted); font-size: 12px; }
.comparison-toolbar-actions { display: flex; align-items: center; gap: 12px; }
.comparison-toolbar .button { min-height: 46px; }
.comparison-difference-toggle { position: relative; display: flex; min-height: 46px; align-items: center; padding: 0 15px; border: 1px solid var(--line); background: var(--paper-light); font-size: 10px; font-weight: 700; cursor: pointer; }
.comparison-difference-toggle input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.comparison-difference-toggle span { display: flex; align-items: center; gap: 10px; }
.comparison-difference-toggle span::before { content: ""; width: 18px; height: 18px; flex: 0 0 18px; border: 1px solid rgba(12,48,38,.34); background: #fff; box-shadow: inset 0 0 0 4px #fff; transition: border-color .2s ease, background .2s ease; }
.comparison-difference-toggle input:checked + span::before { border-color: var(--forest); background: var(--forest); }
.comparison-difference-toggle input:focus-visible + span { outline: 3px solid rgba(190,90,59,.4); outline-offset: 5px; }
.comparison-scroll-hint { display: none; margin: -10px 0 14px; color: var(--muted); font-size: 10px; font-weight: 700; }
.comparison-table-wrap { max-width: 100%; border: 1px solid var(--line); background: var(--paper-light); overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: var(--clay) var(--paper-deep); }
.comparison-table-wrap.show-only-differences .comparison-row:not(.is-different):not(.comparison-actions-row) { display: none; }
.comparison-table-wrap:focus-visible { outline: 3px solid rgba(190,90,59,.4); outline-offset: 4px; }
.comparison-table { width: 100%; border-spacing: 0; border-collapse: separate; table-layout: fixed; font-variant-numeric: tabular-nums; }
.comparison-table th, .comparison-table td { min-width: 260px; padding: 19px 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.comparison-table tr > :last-child { border-right: 0; }
.comparison-table tbody tr:last-child > * { border-bottom: 0; }
.comparison-table thead th { padding: 14px; background: #fff; }
.comparison-table .comparison-corner, .comparison-table .comparison-label { position: sticky; left: 0; z-index: 2; min-width: 180px; width: 180px; color: var(--muted); background: var(--paper-light); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.comparison-table .comparison-corner { z-index: 4; padding: 22px; vertical-align: bottom; }
.comparison-table .comparison-label.is-different { color: var(--clay-dark); background: #f4e9df; }
.comparison-table .comparison-cell { color: #28332f; font-size: 12px; }
.comparison-table .comparison-cell.is-different { background: #fbf3ec; }
.comparison-project-head { position: relative; min-width: 0; }
.comparison-project-head > button { position: absolute; z-index: 2; top: 8px; right: 8px; min-width: 48px; min-height: 46px; padding: 0 12px; border: 0; color: var(--ink); background: rgba(251,250,247,.94); font-size: 9px; font-weight: 700; }
.comparison-project-image { display: block; aspect-ratio: 16 / 9; margin-bottom: 15px; background: var(--paper-deep); overflow: hidden; }
.comparison-project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.comparison-project-image:hover img { transform: scale(1.025); }
.comparison-project-head > span { display: block; color: var(--clay-dark); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.comparison-project-head h3 { margin: 5px 0 6px; font-family: "Prata", Georgia, serif; font-size: 22px; font-weight: 400; line-height: 1.2; letter-spacing: -.02em; }
.comparison-project-head > b { font-size: 13px; }
.comparison-action-label { vertical-align: middle !important; }
.comparison-action-stack { display: grid; gap: 11px; }
.comparison-actions .button { width: 100%; min-height: 48px; }
.comparison-actions .text-link { justify-content: center; }
.comparison-actions small { color: var(--muted); font-size: 9px; text-align: center; }
.comparison-status { margin: 16px 0 0; padding: 12px 15px; border-left: 3px solid var(--clay); color: var(--ink); background: #f7eee8; font-size: 11px; }
.comparison-status:empty { display: none; }
.comparison-picker { width: min(1040px,calc(100% - 32px)); max-width: none; max-height: min(860px,calc(100dvh - 32px)); padding: 0; border: 0; color: var(--ink); background: var(--paper-light); box-shadow: 0 35px 100px rgba(5,24,18,.34); overflow: hidden; }
.comparison-picker:not([open]) { display: none; }
.comparison-picker[open] { display: grid; grid-template-rows: auto auto auto minmax(0,1fr) auto; }
.comparison-picker::backdrop { background: rgba(6,25,20,.72); backdrop-filter: blur(6px); }
.comparison-picker-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding: 28px 32px 22px; border-bottom: 1px solid var(--line); }
.comparison-picker-head h2 { margin: 6px 0 0; font-size: 34px; }
.comparison-picker-head > button { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; padding: 0; border: 1px solid var(--line); color: var(--ink); background: transparent; }
.comparison-picker-head > button:hover { border-color: var(--clay); color: var(--clay-dark); }
.comparison-picker-search { padding: 22px 32px 15px; }
.comparison-picker-search label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.comparison-picker-search > div { display: grid; grid-template-columns: minmax(0,1fr) auto; border: 1px solid var(--line); background: #fff; }
.comparison-picker-search input { width: 100%; min-height: 50px; padding: 0 16px; border: 0; color: var(--ink); background: transparent; font: inherit; font-size: 13px; }
.comparison-picker-search input:focus { outline: 0; box-shadow: inset 0 0 0 2px rgba(190,90,59,.34); }
.comparison-picker-search button { min-width: 96px; border: 0; border-left: 1px solid var(--line); color: var(--clay-dark); background: transparent; font-size: 10px; font-weight: 700; }
.comparison-picker-meta { display: flex; justify-content: space-between; gap: 20px; padding: 0 32px 15px; color: var(--muted); font-size: 9px; }
.comparison-picker-list { display: grid; min-height: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 0 32px 32px; overflow-y: auto; overscroll-behavior: contain; }
.comparison-picker-card { display: grid; min-width: 0; grid-template-columns: 88px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 11px; border: 1px solid var(--line); background: #fff; }
.comparison-picker-card[hidden] { display: none; }
.comparison-picker-card.is-selected { border-color: rgba(31,100,78,.4); background: #edf5f0; }
.comparison-picker-card > img { width: 88px; height: 76px; object-fit: cover; }
.comparison-picker-card > div { min-width: 0; }
.comparison-picker-card small { display: block; color: var(--clay-dark); font-size: 7px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.comparison-picker-card h3 { margin: 5px 0 4px; font-family: "Prata", Georgia, serif; font-size: 16px; font-weight: 400; line-height: 1.2; overflow-wrap: anywhere; }
.comparison-picker-card p { margin: 0; color: var(--muted); font-size: 9px; }
.comparison-picker-card > button { min-width: 82px; min-height: 40px; padding: 0 12px; border: 1px solid var(--forest); color: #fff; background: var(--forest); font-size: 9px; font-weight: 700; }
.comparison-picker-card > button:hover { background: var(--forest-deep); }
.comparison-picker-card > button:disabled { color: var(--forest); background: transparent; cursor: default; }
.comparison-picker-empty { margin: 0; padding: 0 32px 32px; color: var(--muted); font-size: 12px; text-align: center; }
.comparison-guide { display: grid; grid-template-columns: minmax(350px,.82fr) minmax(0,1.18fr); align-items: start; gap: 70px; padding-top: 36px; }
.comparison-decision { position: sticky; top: 92px; padding: 42px; color: #fff; background: var(--forest); box-shadow: 0 25px 65px rgba(8,39,31,.18); overflow: hidden; }
.comparison-decision::after { content: ""; position: absolute; right: -115px; bottom: -150px; width: 300px; height: 300px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.comparison-decision h2 { position: relative; max-width: 430px; margin: 12px 0 18px; color: #fff; font-size: clamp(38px,4vw,56px); }
.comparison-decision > p { position: relative; max-width: 510px; margin: 0; color: rgba(255,255,255,.68); font-size: 13px; }
.comparison-decision dl { position: relative; margin: 30px 0 0; border-top: 1px solid rgba(255,255,255,.18); }
.comparison-decision dl > div { display: grid; grid-template-columns: 92px 1fr; gap: 18px; padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.comparison-decision dt { color: #f2a184; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.comparison-decision dd { margin: 0; color: rgba(255,255,255,.82); font-size: 11px; }
.comparison-faq > div:first-child { margin-bottom: 26px; }
.comparison-faq h2 { max-width: 620px; margin: 8px 0 0; }
.comparison-faq details { border-top: 1px solid var(--line); }
.comparison-faq details:last-child { border-bottom: 1px solid var(--line); }
.comparison-faq summary { position: relative; padding: 24px 50px 24px 0; font-size: 13px; font-weight: 700; cursor: pointer; list-style: none; }
.comparison-faq summary::-webkit-details-marker { display: none; }
.comparison-faq summary::after { content: "+"; position: absolute; top: 18px; right: 3px; color: var(--clay); font-family: "Prata", Georgia, serif; font-size: 24px; font-weight: 400; }
.comparison-faq details[open] summary::after { content: "−"; }
.comparison-faq details p { max-width: 720px; margin: -5px 0 24px; color: var(--muted); font-size: 12px; }

@media (max-width: 1080px) {
  body.has-compare-tray { padding-bottom: calc(154px + env(safe-area-inset-bottom)); }
  .compare-tray-inner { min-height: 144px; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px 20px; }
  .compare-tray-items { grid-column: 1 / -1; grid-row: 2; }
  .compare-tray-status { justify-self: end; }
  .comparison-builder { padding: 34px; }
  .comparison-slot-copy { padding: 18px; }
  .comparison-slot-copy h3 { font-size: 22px; }
  .comparison-guide { grid-template-columns: minmax(310px,.8fr) minmax(0,1.2fr); gap: 44px; }
  .comparison-decision { padding: 34px; }
}

@media (max-width: 900px) {
  .compare-hero, .compare-hero-content { min-height: 440px; }
  .compare-hero-content { padding-bottom: 50px; }
  .comparison-toolbar, .comparison-guide { grid-template-columns: 1fr; gap: 32px; }
  .comparison-slots, .comparison-slots[data-items="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .comparison-slots[data-items="1"] { grid-template-columns: 1fr; }
  .comparison-toolbar { align-items: start; }
  .comparison-toolbar-actions { justify-content: flex-start; }
  .comparison-decision { position: relative; top: auto; }
}

@media (max-width: 560px) {
  .catalog-projects.is-list .catalog-project-media { min-height: 0; }
  .catalog-projects.is-list .catalog-project-image { height: auto; }
  .catalog-compare { top: 12px; right: 12px; min-height: 44px; padding-inline: 11px; }
  body.has-compare-tray { padding-bottom: calc(190px + env(safe-area-inset-bottom)); }
  .compare-tray-inner { min-height: 0; grid-template-columns: 1fr; gap: 8px; padding-top: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
  .compare-tray-title { display: flex; align-items: baseline; justify-content: space-between; }
  .compare-tray-title b { font-size: 17px; }
  .compare-tray-items { grid-column: 1; grid-row: auto; gap: 5px; }
  .compare-tray-items > div { min-height: 34px; }
  .compare-tray-items a { padding-block: 7px; }
  .compare-tray-status { justify-self: stretch; font-size: 9px; }
  .compare-tray-actions { display: grid; grid-template-columns: 72px minmax(0,1fr); }
  .compare-tray-actions .button { width: 100%; min-width: 0; min-height: 42px; }
  .compare-hero, .compare-hero-content { min-height: 420px; }
  .compare-hero-image { object-position: 62% center; }
  .compare-hero-content { padding-top: 26px; padding-bottom: 38px; }
  .compare-hero-content h1 { font-size: 45px; }
  .compare-hero-content > div > p { font-size: 14px; }
  .comparison-section { min-height: 430px; }
  .comparison-builder { margin-bottom: 30px; padding: 24px 18px; }
  .comparison-builder-head { align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
  .comparison-builder-head > div:first-child { flex: 1 1 180px; min-width: 0; }
  .comparison-selection-meter { flex: 0 0 auto; min-width: 110px; padding: 11px 13px; }
  .comparison-slots, .comparison-slots[data-items="2"] { grid-template-columns: 1fr; }
  .comparison-slot-media { aspect-ratio: 16 / 8.5; }
  .comparison-slot-copy h3 { font-size: 24px; }
  .comparison-slot-add { min-height: 270px; }
  .comparison-slots[data-items="1"] .comparison-slot-add > button { display: grid; grid-template-columns: 1fr; grid-template-rows: auto; gap: 7px; padding: 30px; }
  .comparison-slots[data-items="1"] .comparison-add-mark { grid-row: auto; margin: 0 0 28px; }
  .comparison-builder-actions .comparison-clear { width: 100%; }
  .comparison-toolbar-actions { display: grid; width: 100%; grid-template-columns: 1fr; }
  .comparison-toolbar .button { width: 100%; padding-inline: 14px; }
  .comparison-difference-toggle { min-height: 48px; }
  .comparison-scroll-hint { display: block; }
  .comparison-table-wrap { overflow-x: visible; }
  .comparison-table { display: block; width: 100%; min-width: 0 !important; }
  .comparison-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .comparison-table tbody { display: block; width: 100%; }
  .comparison-table .comparison-row { display: grid; grid-template-columns: minmax(0,1fr); }
  .comparison-table th, .comparison-table td { display: block; width: 100%; min-width: 0; padding: 16px 18px; border-right: 0; }
  .comparison-table .comparison-label { position: static; width: 100%; min-width: 0; padding: 13px 18px; color: var(--forest); background: var(--paper-deep); font-size: 11px; }
  .comparison-table .comparison-cell::before { content: attr(data-project); display: block; margin-bottom: 7px; color: var(--forest); font-size: 10px; font-weight: 700; }
  .comparison-table .comparison-cell { font-size: 13px; line-height: 1.65; }
  .comparison-project-head h3 { font-size: 20px; }
  .comparison-decision { padding: 30px 24px; }
  .comparison-decision h2 { font-size: 40px; }
  .comparison-picker { width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .comparison-picker-head { padding: 22px 18px 18px; }
  .comparison-picker-head h2 { font-size: 25px; }
  .comparison-picker-search { padding: 18px 18px 12px; }
  .comparison-picker-meta { padding: 0 18px 12px; }
  .comparison-picker-meta span:last-child { display: none; }
  .comparison-picker-list { grid-template-columns: 1fr; padding: 0 18px 22px; }
  .comparison-picker-card { grid-template-columns: 72px minmax(0,1fr); gap: 11px; }
  .comparison-picker-card > img { width: 72px; height: 66px; }
  .comparison-picker-card > button { grid-column: 1 / -1; width: 100%; min-height: 44px; }
  .comparison-picker-empty { padding-inline: 18px; }
  .comparison-guide { gap: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 560px) {
  .price-band-wide { grid-template-columns: 1fr; }
  .price-band-wide > span { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding: 18px 20px; }
  .price-band-wide > span + span { border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
  .price-band-wide > span b { margin: 0; font-size: 16px; }
}
/* Catalog facets follow the existing editorial palette and typography. */
.catalog .catalog-filters-v2 { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 16px; padding: 24px; margin-bottom: 12px; }
.catalog .catalog-filters-v2 > label, .catalog .catalog-filters-v2 > button { grid-column: span 3; }
.catalog .catalog-filters-v2 .catalog-search, .catalog .catalog-filters-v2 .catalog-location { grid-column: span 3; }
.catalog .catalog-filters-v2 label:has([data-filter-rooms]), .catalog .catalog-filters-v2 label:has([data-filter-price]), .catalog .catalog-filters-v2 .catalog-area { grid-column: span 2; }
.catalog-filters-v2 .catalog-area { min-width: 0; margin: 0; padding: 0; border: 0; }
.catalog-filters-v2 .catalog-area legend { padding: 0; margin-bottom: 7px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.catalog-area > div { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 6px; }
.catalog-area > div > span { color: var(--muted); }
.catalog-filters-v2 input[aria-invalid="true"] { border-color: var(--clay-dark); }
.catalog .catalog-filters-v2 .catalog-filter-toggle { display: none; }
.catalog-filters-v2 .catalog-area-error { grid-column: 1 / -1; margin: 0; color: var(--clay-dark); font-size: 12px; }
.catalog-filter-help { max-width: 90ch; margin: 0 0 25px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.catalog-project-rooms { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin: 0 0 15px; font-size: 11px; line-height: 1.5; }
.catalog-project-rooms span { color: var(--muted); }
.catalog-project-rooms b { font-weight: 600; }
.catalog-project-location { margin: -6px 0 14px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.catalog-filters-v2 [hidden] { display: none; }
.national-catalog .catalog-filters-v2 label:has([data-filter-city]) { grid-column: span 2; }
.national-catalog .catalog-filters-v2 .catalog-area { grid-column: span 3; }
.national-catalog .catalog-filters-v2 .catalog-location { grid-column: span 4; }
.national-catalog .catalog-filters-v2 .catalog-secondary-filter, .national-catalog .catalog-filters-v2 .catalog-reset { grid-column: span 2; }
@media (max-width: 1080px) {
  .catalog .catalog-filters-v2 { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .catalog .catalog-filters-v2 > label, .catalog .catalog-filters-v2 .catalog-area, .catalog .catalog-filters-v2 > button { grid-column: span 2; }
  .catalog .catalog-filters-v2 .catalog-search, .catalog .catalog-filters-v2 .catalog-location { grid-column: span 4; }
  .catalog .catalog-filters-v2 .catalog-secondary-filter { display: grid; }
}
@media (max-width: 760px) {
  .catalog .catalog-filters-v2 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 10px; padding: 18px; }
  .catalog .catalog-filters-v2 > label, .catalog .catalog-filters-v2 > button,
  .catalog .catalog-filters-v2 label:has([data-filter-rooms]), .catalog .catalog-filters-v2 label:has([data-filter-city]),
  .catalog .catalog-filters-v2 label:has([data-filter-price]) { grid-column: span 1; }
  .catalog .catalog-filters-v2 .catalog-search, .catalog .catalog-filters-v2 .catalog-area, .catalog .catalog-filters-v2 .catalog-location,
  .national-catalog .catalog-filters-v2 label:has([data-filter-price]) { grid-column: 1 / -1; }
  .catalog .catalog-filters-v2:not(.is-expanded) .catalog-secondary-filter { display: none; }
  .catalog .catalog-filters-v2 .catalog-filter-toggle { display: flex; min-height: 44px; justify-content: center; }
  .catalog .catalog-filters-v2 input, .catalog .catalog-filters-v2 select { font-size: 13px; }
  .catalog-filters-v2 .catalog-search { order: 0; }
  .catalog-filters-v2 label:has([data-filter-city]) { order: 1; }
  .catalog-filters-v2 label:has([data-filter-rooms]) { order: 2; }
  .catalog-filters-v2 label:has([data-filter-price]) { order: 3; }
  .catalog-filters-v2 .catalog-area { order: 4; }
  .catalog-filters-v2 .catalog-location { order: 5; }
  .catalog-filters-v2 .catalog-secondary-filter { order: 6; }
  .catalog-filters-v2 .catalog-filter-toggle, .catalog-filters-v2 .catalog-reset { order: 7; }
  .catalog-filters-v2 .catalog-area-error { order: 8; }
}

.back-top { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: calc(20px + env(safe-area-inset-bottom) + var(--buyer-tray-height, 0px)); z-index: 45; display: inline-flex; gap: 8px; align-items: center; min-height: 48px; padding: 11px 17px; border: 1px solid #507167; border-radius: 8px; background: #123b31; color: white; box-shadow: 0 4px 18px #0b21192b; font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; cursor: pointer; }
.back-top[hidden], body.has-dialog .back-top, body.has-fullscreen-map .back-top { display: none; }
.back-top svg { width: 22px; height: 22px; }
.back-top:hover { background: #0b2922; }
.back-top:focus-visible, .buyer-save-menu summary:focus-visible { outline: 3px solid #c65c39; outline-offset: 4px; }
.object-section-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.object-section-nav button { padding: 11px 17px; min-height: 44px; background: transparent; border: 1px solid var(--line); border-radius: 5px; color: var(--ink); cursor: pointer; font: inherit; font-size: 14px; }
.object-section-nav button:hover { background: white; border-color: #436b60; }
.object-summary .class-source { display: block; margin-top: 7px; font-size: 11px; line-height: 1.5; font-weight: 400; color: #4a625c; }
.buyer-criteria { margin: 28px 0; padding: 26px; border: 1px solid var(--line); background: #faf9f5; }
.buyer-criteria-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.buyer-criteria-heading h3 { margin: 6px 0 0; font: 500 26px/1.2 var(--font-heading, Georgia, serif); }
.buyer-criteria-heading [data-buyer-reset] { min-height: 44px; border: 1px solid #a4b6ab; padding: 10px 14px; border-radius: 5px; background: transparent; color: #214a3a; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.buyer-criteria-heading [data-buyer-reset]:hover { background: #edf2ee; }
.buyer-criteria-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.buyer-criteria-fields label, .buyer-project-select, .buyer-note-label { display: grid; gap: 9px; font-size: 14px; line-height: 1.5; font-weight: 600; color: #183b32; min-width: 0; }
.buyer-criteria input, .buyer-criteria select, .buyer-project-select select, .buyer-note-label textarea { width: 100%; box-sizing: border-box; min-height: 46px; padding: 11px; border: 1px solid #b4c0ba; border-radius: 4px; background: white; color: #163a30; font-family: inherit; font-size: 16px; font-weight: 400; line-height: 1.4; min-width: 0; }
.buyer-criteria-note, .buyer-budget-help { font-size: 13px; line-height: 1.65; color: #4e655d; margin: 16px 0; }
.buyer-matches { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 20px; }
.buyer-matches:empty { display: none; }
.buyer-match { padding: 17px 0 0; border-top: 2px solid #375e50; min-width: 0; }
.buyer-match h4 { font-size: 17px; line-height: 1.4; margin: 0 0 12px; }
.buyer-match ul { margin: 0; padding: 0; list-style: none; }
.buyer-match li { position: relative; padding: 0 0 12px 16px; color: #354e45; font-size: 13px; line-height: 1.6; }
.buyer-match li::before { content: ''; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: #5e786e; }
.buyer-match li[data-state="outside"]::before { background: #aa442c; }
.buyer-match li[data-state="within"]::before { background: #20704c; }
.buyer-note-label { margin: 24px 0 14px; }
.buyer-note-label textarea { min-height: 90px; resize: vertical; font-weight: 400; }
.buyer-save-menu { position: relative; margin: 0; }
.buyer-save-menu > summary { list-style: none; cursor: pointer; min-height: 46px; }
.buyer-save-menu > summary::-webkit-details-marker { display: none; }
.buyer-save-menu > summary::after { content: '⌄'; margin-left: 15px; }
.buyer-save-options { position: absolute; right: 0; top: calc(100% + 8px); z-index: 35; width: 252px; max-width: min(300px, calc(100vw - 48px)); background: white; border: 1px solid #b4c0ba; border-radius: 6px; padding: 6px; box-shadow: 0 8px 26px #162f2420; }
.buyer-save-options button { display: block; width: 100%; border: 0; background: white; text-align: left; padding: 13px 12px; min-height: 46px; color: #143b30; font: inherit; font-size: 14px; border-radius: 3px; cursor: pointer; }
.buyer-save-options button:hover, .buyer-save-options button:focus-visible { background: #edf2ee; }
.buyer-export-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 20px; }
.buyer-export-bar .buyer-save-options { right: auto; left: 0; }
[data-buyer-export-status] { font-size: 13px; line-height: 1.6; color: #39574c; }
[data-buyer-criteria-error], [data-buyer-budget-error] { color: #9b3526; font-size: 14px; }
.buyer-budget { margin-top: 30px; border: 1px solid #bdcfc4; border-radius: 8px; background: #f6f8f3; }
.buyer-budget > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 18px; cursor: pointer; padding: 22px 24px; color: #173a2f; list-style: none; }
.buyer-budget > summary::-webkit-details-marker { display: none; }
.buyer-budget > summary h3 { margin: 0; font-size: 22px; line-height: 1.4; font-weight: 700; }
.buyer-budget > summary > span { grid-column: 1; display: block; font-size: 14px; line-height: 1.6; color: #405d50; margin-top: 6px; }
.buyer-budget > summary > .buyer-budget-toggle { grid-column: 2; grid-row: 1 / 3; align-self: center; margin: 0; padding: 8px 12px; border: 1px solid #a9bfb1; border-radius: 5px; color: #173a2f; font-size: 12px; font-weight: 600; }
.buyer-budget-toggle::after { content: 'Развернуть +'; }
.buyer-budget[open] .buyer-budget-toggle::after { content: 'Свернуть −'; }
.buyer-budget > summary:focus-visible { outline: 3px solid #b75a3c; outline-offset: 4px; }
.buyer-budget[open] > summary { border-bottom: 1px solid #d1ddd4; }
.buyer-budget-body { padding: 4px 24px 24px; }
.buyer-budget-standalone .buyer-budget-body { padding: 4px 0 12px; }
.buyer-budget-body > p:first-child { color: #405c50; line-height: 1.7; font-size: 14px; }
.buyer-budget-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 22px; }
.buyer-budget-fields label { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; font-size: 13px; font-weight: 600; color: #29493d; min-width: 0; }
.buyer-budget-fields label span { grid-column: 1 / -1; }
.buyer-budget-fields input { min-height: 46px; box-sizing: border-box; padding: 10px 12px; font: inherit; font-size: 16px; border: 1px solid #b4c0ba; border-radius: 4px; width: 100%; min-width: 0; color: #193e31; background: white; }
.buyer-budget-fields small { align-self: center; font-size: 12px; font-weight: 400; }
.buyer-budget-result { background: #143e31; padding: 24px; color: white; margin-top: 22px; }
.buyer-budget-result > span { font-size: 13px; color: #c5d7cd; }
.buyer-budget-result output { display: block; font-size: clamp(22px, 4vw, 34px); font-weight: 600; line-height: 1.4; margin: 7px 0 16px; }
.buyer-budget-result dl { margin: 0; }
.buyer-budget-result dl div { display: flex; justify-content: space-between; gap: 18px; font-size: 13px; line-height: 1.5; padding: 9px 0; border-top: 1px solid #46695b; }
.buyer-budget-result dd { margin: 0; text-align: right; flex-shrink: 0; }
.buyer-budget-standalone { max-width: 880px; margin: 0 auto; padding: 28px; border: 1px solid var(--line); background: #faf9f5; }
.buyer-budget-standalone > h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.2; }
.buyer-project-select { margin: 20px 0; }
.buyer-price-terms { padding-left: 14px; border-left: 2px solid #ba5634; color: #6f351e; font-size: 14px; line-height: 1.6; }
.buyer-print-dialog { width: min(980px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #a9b9af; border-radius: 6px; color: #172e24; }
.buyer-print-dialog::backdrop { background: #071b14a6; }
.buyer-print-controls { display: flex; justify-content: space-between; gap: 16px; padding: 16px 24px; background: #f0f3ef; border-bottom: 1px solid #cbd4cd; }
.buyer-print-document { padding: 34px; background: white; font: 15px/1.55 Arial, sans-serif; overflow-wrap: anywhere; }
.buyer-print-document h1 { color: black; font: bold 30px/1.2 Arial, sans-serif; margin: 0 0 14px; }
.buyer-print-document h2 { color: black; font: bold 20px/1.3 Arial, sans-serif; margin: 28px 0 14px; }
.buyer-print-document a { color: #174c6d; }
.buyer-print-document table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.buyer-print-document th, .buyer-print-document td { border: 1px solid #d9d9d9; padding: 10px; vertical-align: top; text-align: left; }
.buyer-print-document th { background: #e8edef; color: #142e37; }
.buyer-print-document tr:nth-child(even) td { background: #f7f8f8; }
.buyer-print-document tr { break-inside: avoid; }
.buyer-print-document .report-note { white-space: pre-wrap; }
.buyer-print-document td { white-space: pre-wrap; }
.buyer-print-document .report-question-help { color: #42564c; break-after: avoid; }
@media (max-width: 760px) {
  .back-top { width: 48px; height: 48px; min-height: 48px; padding: 0; gap: 0; justify-content: center; right: max(12px, env(safe-area-inset-right)); }
  .back-top > span { display: none; }
  .buyer-criteria { padding: 20px; }
  .buyer-criteria-fields, .buyer-matches { grid-template-columns: 1fr; }
  .buyer-criteria-heading { align-items: start; }
  .buyer-criteria-heading .text-link { max-width: 110px; font-size: 12px; }
  .buyer-matches { gap: 10px; }
  .object-section-nav { gap: 6px; }
  .object-section-nav button { padding: 10px 12px; font-size: 12px; }
  .buyer-budget-fields { gap: 16px; }
  .buyer-budget-standalone { padding: 22px; }
  .buyer-print-document { padding: 20px; }
}
@media (max-width: 430px) {
  .buyer-budget > summary { padding: 20px 16px; column-gap: 10px; }
  .buyer-budget > summary h3 { font-size: 20px; }
  .buyer-budget > summary > .buyer-budget-toggle { padding: 7px; font-size: 11px; }
  .buyer-budget-body { padding: 4px 16px 20px; }
  .buyer-budget-fields { grid-template-columns: 1fr; }
  .buyer-budget-result { padding: 20px 16px; }
}
@media print {
  body.buyer-print-active { background: white !important; }
  body.buyer-print-active > * { display: none !important; }
  body.buyer-print-active > .buyer-print-dialog { display: block !important; position: static !important; width: auto; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; border-radius: 0; overflow: visible; }
  .buyer-print-dialog::backdrop, .buyer-print-controls, .back-top { display: none !important; }
  .buyer-print-document { padding: 0; font-size: 10pt; }
  .buyer-print-document h1 { font-size: 22pt; }
  .buyer-print-document h2 { font-size: 14pt; break-after: avoid; }
  .buyer-print-document table { font-size: 9pt; }
  .buyer-print-document th, .buyer-print-document td { padding: 7px; }
  .buyer-print-document thead { display: table-header-group; }
  @page { size: A4; margin: 16mm; }
}

/* Открытые рабочие формы на всех страницах ЖК. */
.buyer-pilot { --pilot-ink: #173c31; }
.buyer-pilot .pilot-title h2 { font-size: clamp(27px, 2.8vw, 39px); line-height: 1.27; margin: 12px 0 16px; }
.buyer-pilot p { color: #4c615a; font-size: 14px; line-height: 1.65; }
.buyer-pilot .pilot-title > p { font-size: 15px; }
.pilot-toolbar { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 20px; }
.pilot-toolbar button, .buyer-pilot > .text-link { min-height: 44px; border: 1px solid #b8c9bd; border-radius: 5px; background: #edf2ec; padding: 10px 14px; color: #173e30; cursor: pointer; font: 600 13px/1.4 'Manrope', sans-serif; }
.pilot-toolbar button:hover, .buyer-pilot > .text-link:hover { border-color: #285741; background: #e1ebe0; }
.pilot-toolbar button:focus-visible, .buyer-pilot > .text-link:focus-visible { outline: 2px solid #b65232; outline-offset: 3px; }
.pilot-toolbar button:last-child, .buyer-pilot > .text-link { background: transparent; }
.buyer-pilot .pilot-state { min-height: 24px; margin: 4px 0 18px; font-size: 12px; }
.pilot-input-table { border-top: 1px solid #b7c7be; }
.pilot-input-row, .pilot-column-head { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid #d8dfd8; min-width: 0; }
.pilot-column-head { color: #38584c; font-size: 12px; }
.pilot-column-head b { color: var(--pilot-ink); }
.pilot-input-row > span { font-size: 13px; line-height: 1.5; color: #2a453b; }
.buyer-pilot input[type="number"], .buyer-pilot textarea { display: block; width: 100%; min-width: 0; max-width: 100%; border: 1px solid #a9bbb0; border-radius: 5px; background: #fff; color: #15392d; padding: 11px 12px; font: 500 16px/1.4 'Manrope', sans-serif; min-height: 46px; }
.buyer-pilot input:focus-visible, .buyer-pilot textarea:focus-visible { outline: 2px solid #b65232; outline-offset: 2px; }
.buyer-pilot input::placeholder, .buyer-pilot textarea::placeholder { font-size: 12px; color: #65776f; font-weight: 400; }
.pilot-shared { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 16px; margin: 20px 0 12px; }
.pilot-shared label, .pilot-notes { color: #2a453b; font-size: 13px; line-height: 1.5; }
.pilot-shared input { margin-top: 8px; }
.pilot-shared-single { max-width: 320px; grid-template-columns: 1fr; }
.buyer-pilot .pilot-help, .buyer-pilot .pilot-limits { font-size: 12px; line-height: 1.6; }
.pilot-result { padding: 22px; margin: 22px 0 18px; background: #0c3328; color: white; border-radius: 7px; }
.pilot-result-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pilot-result-pair > div + div { border-left: 1px solid #527367; padding-left: 16px; }
.pilot-result-pair span { display: block; font-size: 12px; color: #c4d6cb; }
.pilot-result output { display: block; margin-top: 8px; font-size: clamp(17px, 2vw, 24px); font-weight: 700; }
.buyer-pilot .pilot-result p { color: #eef4f0; margin: 18px 0 0; font-size: 14px; }
.buyer-pilot .pilot-result p:last-child { color: #c4d6cb; font-size: 12px; }
.pilot-offer-breakdown { margin-bottom: 20px; }
.pilot-offer-breakdown .pilot-input-row > span:not(:first-child) { font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.pilot-notes { display: block; margin-top: 18px; }
.pilot-notes textarea { margin-top: 8px; }
.pilot-question { padding: 18px 0; border-bottom: 1px solid #d1dbd3; }
.pilot-question-check { display: flex; align-items: start; gap: 12px; min-height: 44px; cursor: pointer; font-size: 15px; line-height: 1.5; font-weight: 700; color: var(--pilot-ink); }
.pilot-question-check input { appearance: auto; width: 22px; height: 22px; min-width: 22px; margin: 0; accent-color: #174e3e; }
.buyer-pilot .pilot-question p { font-size: 12px; margin: 0 0 12px 34px; }
.pilot-answer { display: block; margin-left: 34px; }
.pilot-answer textarea { font-size: 14px; }
.buyer-pilot .pilot-progress { color: #174e3e; font-weight: 700; margin: 16px 0; }
.buyer-pilot .buyer-export-bar { gap: 10px; margin-top: 16px; }
.buyer-pilot > .text-link { display: block; margin-top: 16px; }
.buyer-pilot .buyer-export-bar > p:empty { display: none; }
@media (max-width: 560px) {
  .buyer-pilot .pilot-title h2 { font-size: 27px; }
  .pilot-input-row { grid-template-columns: 1fr 1fr; gap: 7px 10px; }
  .pilot-input-row > span:first-child { grid-column: 1 / -1; }
  .pilot-column-head { grid-template-columns: 1fr 1fr; }
  .pilot-column-head > span { display: none; }
  .pilot-shared { gap: 12px; }
  .pilot-result { padding: 18px 14px; }
  .pilot-result output { font-size: 17px; }
  .pilot-answer, .buyer-pilot .pilot-question p { margin-left: 0; }
  .pilot-offer-breakdown .pilot-input-row { gap: 4px 10px; }
}
/* Короткое описание в первом экране: в общей типографике, без тесного адреса. */
.object-hero-content > div > .object-hero-lead { max-width: 740px; margin: 0 0 16px; color: rgba(255,255,255,.96); font-size: clamp(16px,1.4vw,20px); line-height: 1.6; text-wrap: pretty; }
.object-hero-content > div > .object-hero-address { max-width: 740px; margin-bottom: 26px; font-size: 14px; line-height: 1.55; }
.aside-panel a small.project-freshness { font-size: 12px; line-height: 1.6; }
.section-action p.purchase-note { font-size: 14px; line-height: 1.75; }
.object-aside .price-panel > p { font-size: 14px; line-height: 1.55; }
@media (max-width: 560px) {
  .object-hero-content > div > .object-hero-lead { margin-bottom: 14px; font-size: 16px; line-height: 1.55; }
  .object-hero-content > div > .object-hero-address { margin-bottom: 22px; font-size: 13px; }
}

/* Общий мобильный шаблон: читаемые подписи и формы без изменения desktop. */
@media screen and (max-width: 760px) {
  p.price-qualifier { font-size: 14px; }
  .object-summary small.price-qualifier { font-size: 14px; }
  .comparison-picker-card p.price-qualifier { font-size: 14px; }
  .eyebrow { font-size: 14px; }
  .button { font-size: 14px; }
  .text-link { font-size: 14px; }
  .brand-name small { font-size: 14px; }
  .main-nav > a, .main-nav > span { font-size: 14px; }
  .city-switcher { font-size: 14px; }
  .city-dialog-grid small { font-size: 14px; }
  .search-result { font-size: 14px; }
  .hero-proof span { font-size: 14px; }
  .city-feature > span { font-size: 14px; }
  .project-status, .project-location { font-size: 14px; }
  .project-heading > div > span { font-size: 14px; }
  .project-heading p { font-size: 14px; }
  .project-card-facts dt { font-size: 14px; }
  .project-card-facts dd { font-size: 14px; }
  .project-card-footer > span { font-size: 14px; }
  .home-tools-grid article > span { font-size: 14px; }
  .home-tools-grid p { font-size: 14px; }
  .home-tools-grid article > a, .home-tool-city-links a { font-size: 14px; }
  .check-layout li p { font-size: 14px; }
  .breadcrumbs { font-size: 14px; }
  .city-photo figcaption span { font-size: 14px; }
  .catalog-head > div > p { font-size: 14px; }
  .catalog-budget-link { font-size: 14px; }
  .catalog-freshness b { font-size: 14px; }
  .catalog-freshness small { font-size: 14px; }
  .catalog-filters label > span, .catalog-controls label > span { font-size: 14px; }
  .catalog-filters input, .catalog-filters select, .catalog-controls select { font-size: 14px; }
  .catalog-reset { font-size: 14px; }
  .catalog-controls p { font-size: 14px; }
  .catalog-project-class { font-size: 14px; }
  .catalog-project-title > div > span { font-size: 14px; }
  .catalog-project-address { font-size: 14px; }
  .catalog-project-facts dt { font-size: 14px; }
  .catalog-project-facts dd { font-size: 14px; }
  .catalog-project-cta { font-size: 14px; }
  .catalog-inline-freshness { font-size: 14px; }
  .catalog-more small, .budget-picker-more small { font-size: 14px; }
  .decision-list span { font-size: 14px; }
  .object-badge { font-size: 14px; }
  .object-summary dt { font-size: 14px; }
  .object-summary-wrap > p { font-size: 14px; }
  .update-pill, .source-stamp { font-size: 14px; }
  .apartment-grid span, .apartment-grid small { font-size: 14px; }
  .price-band small { font-size: 14px; }
  .section-action p { font-size: 14px; }
  .liter-overview small { font-size: 14px; }
  .house-title > span { font-size: 14px; }
  .house-title p { font-size: 14px; }
  .selected-house dt { font-size: 14px; }
  .selected-house dd { font-size: 14px; }
  .date-route small { font-size: 14px; }
  .date-route p { font-size: 14px; }
  .property-list dt { font-size: 14px; }
  .property-list dd { font-size: 14px; }
  .section-intro { font-size: 14px; }
  .mortgage-fields label > span { font-size: 14px; }
  .mortgage-fields label > small { font-size: 14px; }
  .mortgage-result > span { font-size: 14px; }
  .mortgage-result dt { font-size: 14px; }
  .map-address { font-size: 14px; }
  .map-expand-copy small { font-size: 14px; }
  .map-fullscreen-close { font-size: 14px; }
  .map-fullscreen-hint { font-size: 14px; }
  .price-panel > span { font-size: 14px; }
  .price-panel p { font-size: 14px; }
  .price-panel > small { font-size: 14px; }
  .aside-panel b { font-size: 14px; }
  .aside-panel small { font-size: 14px; }
  .method-steps p, .source-list p { font-size: 14px; }
  .footer-brand p { font-size: 14px; }
  .footer-links h2 { font-size: 14px; }
  .footer-link { font-size: 14px; }
  .footer-bottom { font-size: 14px; }
  .main-nav > a, .main-nav > span, .city-switcher { font-size: 14px; }
  .map-expand-copy strong { font-size: 14px; }
  .map-fullscreen-bar > strong { font-size: 14px; }
  .apartment-type-grid span, .apartment-type-grid small { font-size: 14px; }
  .house-apartments > p, .destination-caption { font-size: 14px; }
  .developer-project-links > b { font-size: 14px; }
  .developer-project-links a { font-size: 14px; }
  .related-reason { font-size: 14px; }
  .complex-houses-head small { font-size: 14px; }
  .complex-house-grid span { font-size: 14px; }
  .complex-house-grid small { font-size: 14px; }
  .complex-house-grid i { font-size: 14px; }
  .verification-grid p { font-size: 14px; }
  .budget-copy li { font-size: 14px; }
  .budget-fields label > span { font-size: 14px; }
  .budget-result > span { font-size: 14px; }
  .budget-result dt { font-size: 14px; }
  .budget-result dd { font-size: 14px; }
  .source-matrix-grid p { font-size: 14px; }
  .freshness-policy span { font-size: 14px; }
  .trust-hero-card > span, .contact-email-card > span { font-size: 14px; }
  .trust-hero-card dt { font-size: 14px; }
  .trust-hero-card dd { font-size: 14px; }
  .trust-stats span { font-size: 14px; }
  .about-value-grid p { font-size: 14px; }
  .about-process-grid li p { font-size: 14px; }
  .editorial-principles-list p { font-size: 14px; }
  .contact-email-card p { font-size: 14px; }
  .contact-reason-grid span { font-size: 14px; }
  .contact-reason-grid p { font-size: 14px; }
  .contact-checklist li p { font-size: 14px; }
  .legal-hero aside span { font-size: 14px; }
  .legal-hero aside p { font-size: 14px; }
  .legal-summary b { font-size: 14px; }
  .legal-summary p { font-size: 14px; }
  .legal-aside p { font-size: 14px; }
  .privacy-data-grid span { font-size: 14px; }
  .privacy-data-grid p { font-size: 14px; }
  .legal-copy p { font-size: 14px; }
  .national-hero-stats dt { font-size: 14px; }
  .catalog-presets > span { font-size: 14px; }
  .catalog-presets button { font-size: 14px; }
  .catalog-presets small { font-size: 14px; }
  .national-city-feature > div > span { font-size: 14px; }
  .national-city-feature p { font-size: 14px; }
  .national-city-feature b { font-size: 14px; }
  .city-index-head input { font-size: 14px; }
  .city-index-grid b { font-size: 14px; }
  .city-index-grid small { font-size: 14px; }
  .city-more { font-size: 14px; }
  .national-calculator-copy li { font-size: 14px; }
  .national-guide li p { font-size: 14px; }
  .national-hero-stats dd { font-size: 14px; }
  .catalog-filter-toggle { font-size: 14px; }
  .catalog-filter-toggle span { font-size: 14px; }
  .budget-picker-copy > dl dt { font-size: 14px; }
  .budget-picker-copy > dl dd { font-size: 14px; }
  .budget-picker-form-head > span { font-size: 14px; }
  .budget-picker-form-head p { font-size: 14px; }
  .budget-picker-field > label { font-size: 14px; }
  .budget-picker-field > div > span { font-size: 14px; }
  .budget-picker-field > small { font-size: 14px; }
  .budget-picker-result > span { font-size: 14px; }
  .budget-picker-result dt { font-size: 14px; }
  .budget-picker-result dd { font-size: 14px; }
  .budget-picker-disclaimer { font-size: 14px; }
  .budget-results-head > div:first-child > p { font-size: 14px; }
  .budget-results-count span { font-size: 14px; }
  .budget-status-filter button { font-size: 14px; }
  .budget-results-toolbar > label > span { font-size: 14px; }
  .budget-results-toolbar select { font-size: 14px; }
  .budget-picker-invalid p, .budget-picker-empty p { font-size: 14px; }
  .budget-nearest-note > span { font-size: 14px; }
  .budget-nearest-note > small { font-size: 14px; }
  .budget-project-class { font-size: 14px; }
  .budget-project-heading > div > span { font-size: 14px; }
  .budget-project-heading > b { font-size: 14px; }
  .budget-project-address { font-size: 14px; }
  .budget-project-payment > span { font-size: 14px; }
  .budget-project-payment > small { font-size: 14px; }
  .budget-project-facts dt { font-size: 14px; }
  .budget-project-facts dd { font-size: 14px; }
  .budget-project-house, .budget-project-market { font-size: 14px; }
  .budget-project-checked { font-size: 14px; }
  .budget-project-actions .text-link { font-size: 14px; }
  .budget-picker-noscript { font-size: 14px; }
  .budget-picker-explanation li p { font-size: 14px; }
  .budget-picker-legal p { font-size: 14px; }
  .catalog-compare { font-size: 14px; }
  .compare-tray-title > span { font-size: 14px; }
  .compare-tray-items a { font-size: 14px; }
  .compare-tray-status { font-size: 14px; }
  .compare-clear, .comparison-clear { font-size: 14px; }
  .comparison-selection-meter span { font-size: 14px; }
  .comparison-slot-media span { font-size: 14px; }
  .comparison-slot-copy small { font-size: 14px; }
  .comparison-slot-copy b { font-size: 14px; }
  .comparison-slot-actions button { font-size: 14px; }
  .comparison-slot-add small { font-size: 14px; }
  .comparison-slot-add em { font-size: 14px; }
  .comparison-builder-actions .comparison-clear { font-size: 14px; }
  .comparison-toolbar p { font-size: 14px; }
  .comparison-difference-toggle { font-size: 14px; }
  .comparison-scroll-hint { font-size: 14px; }
  .comparison-table .comparison-corner, .comparison-table .comparison-label { font-size: 14px; }
  .comparison-table .comparison-cell { font-size: 14px; }
  .comparison-project-head > button { font-size: 14px; }
  .comparison-project-head > span { font-size: 14px; }
  .comparison-project-head > b { font-size: 14px; }
  .comparison-actions small { font-size: 14px; }
  .comparison-status { font-size: 14px; }
  .comparison-picker-search label { font-size: 14px; }
  .comparison-picker-search input { font-size: 14px; }
  .comparison-picker-search button { font-size: 14px; }
  .comparison-picker-meta { font-size: 14px; }
  .comparison-picker-card small { font-size: 14px; }
  .comparison-picker-card p { font-size: 14px; }
  .comparison-picker-card > button { font-size: 14px; }
  .comparison-picker-empty { font-size: 14px; }
  .comparison-decision > p { font-size: 14px; }
  .comparison-decision dt { font-size: 14px; }
  .comparison-decision dd { font-size: 14px; }
  .comparison-faq summary { font-size: 14px; }
  .comparison-faq details p { font-size: 14px; }
  .object-summary .class-source { font-size: 14px; }
  .buyer-criteria-heading [data-buyer-reset] { font-size: 14px; }
  .buyer-criteria-note, .buyer-budget-help { font-size: 14px; }
  .buyer-match li { font-size: 14px; }
  [data-buyer-export-status] { font-size: 14px; }
  .buyer-budget > summary > .buyer-budget-toggle { font-size: 14px; }
  .buyer-budget-fields label { font-size: 14px; }
  .buyer-budget-fields small { font-size: 14px; }
  .buyer-budget-result > span { font-size: 14px; }
  .buyer-budget-result dl div { font-size: 14px; }
  .buyer-print-document table { font-size: 14px; }
  .buyer-criteria-heading .text-link { font-size: 14px; }
  .object-section-nav button { font-size: 14px; }
  .pilot-toolbar button, .buyer-pilot > .text-link { font-size: 14px; }
  .buyer-pilot .pilot-state { font-size: 14px; }
  .pilot-column-head { font-size: 14px; }
  .pilot-input-row > span { font-size: 14px; }
  .buyer-pilot input::placeholder, .buyer-pilot textarea::placeholder { font-size: 14px; }
  .pilot-shared label, .pilot-notes { font-size: 14px; }
  .buyer-pilot .pilot-help, .buyer-pilot .pilot-limits { font-size: 14px; }
  .pilot-result-pair span { font-size: 14px; }
  .buyer-pilot .pilot-result p:last-child { font-size: 14px; }
  .pilot-offer-breakdown .pilot-input-row > span:not(:first-child) { font-size: 14px; }
  .buyer-pilot .pilot-question p { font-size: 14px; }
  .aside-panel a small.project-freshness { font-size: 14px; }
  .object-hero-content > div > .object-hero-address { font-size: 14px; }
  body input:not([type=checkbox]):not([type=radio]), body select, body textarea,
  :is(.catalog-filters, .catalog-controls, .budget-results-toolbar, .comparison-picker-search) :is(input, select) { font-size: 16px; max-width: 100%; }
  .button, .catalog-compare, .catalog-filter-toggle, .catalog-reset, .comparison-difference-toggle, .budget-status-filter, .buyer-export-button { min-height: 44px; white-space: normal; }
  .buyer-budget-result dl > div { flex-wrap: wrap; gap: 6px 16px; }
  .buyer-budget-result dd { flex-shrink: 1; max-width: 100%; overflow-wrap: anywhere; }
  .method-content, .method-section, .buyer-budget, .comparison-section, .catalog-project, .budget-project { min-width: 0; }
  .method-content a, .method-section a, .source-stamp a { overflow-wrap: anywhere; }
  small { font-size: 14px; }
  .freshness-history .freshness-history-heading > span,
  .freshness-history .freshness-history-toggle,
  .freshness-history .freshness-history-note,
  .freshness-history .freshness-history-body li time { font-size: 14px; }
  .object-section-head > div { min-width: 0; max-width: 100%; }
  .object-section-head h2 { overflow-wrap: anywhere; }
  .budget-status-filter { flex-wrap: wrap; min-width: 0; }
  .catalog-filters-v2 .catalog-area legend, .catalog-filters-v2 .catalog-area-error,
  .catalog-filter-help, .catalog-project-rooms, .catalog-project-location { font-size: 14px; }
  .catalog .catalog-filters-v2 input, .catalog .catalog-filters-v2 select { font-size: 16px; }
}
/* Editorial outcome: specific evidence and a concise decision before details. */
.reader-outcome{align-self:start}
.editorial-credit{margin-top:16px;margin-bottom:32px;border-top:1px solid var(--line);padding-top:18px}
.editorial-credit p{max-width:760px;font-size:13px;line-height:1.65;color:var(--muted)}
.page-share{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding-top:24px;padding-bottom:36px;color:var(--ink,#123c32)}
.page-share>p{margin:0;font-size:14px;line-height:1.65}
.page-share>.button{min-height:44px;white-space:normal}
.page-share-status{flex-basis:100%;overflow-wrap:anywhere}
.page-share-status:empty{display:none}
@media(min-width:761px){.catalog-project-facts,.budget-project-facts{grid-template-columns:repeat(var(--fact-count,3),minmax(0,1fr))}}
@media(max-width:560px){.page-share{align-items:flex-start;gap:12px;padding-top:20px;padding-bottom:28px}.page-share>.button{width:100%}}
@media print{.page-share{display:none}}
.reader-outcome-heading h2{font-size:clamp(28px,3vw,40px);line-height:1.16;margin:12px 0 16px;overflow-wrap:anywhere}
.reader-outcome-heading>p{max-width:64ch;line-height:1.75}
.reader-decisions{margin:28px 0;display:grid;gap:0}
.reader-decision{display:grid;grid-template-columns:36px minmax(0,1fr);gap:16px;padding:20px 0;border-top:1px solid var(--line,#d8d4cb)}
.reader-index{font-family:Prata,serif;color:#b95335;font-size:20px;line-height:1.4}
.reader-decision h3{font-family:Manrope,sans-serif;font-size:16px;line-height:1.5;margin:0 0 8px}
.reader-decision p{font-size:14px;line-height:1.8;margin:0;max-width:70ch}
.reader-area{background:#e9e5dc;margin:28px 0;padding:26px}
.reader-area h3{font-family:Prata,serif;font-size:23px;line-height:1.4;margin:0 0 20px}
.reader-area-bar{display:block;width:100%;height:28px}
.reader-area dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}
.reader-area dl>div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.reader-area dt{font-size:14px;line-height:1.7}
.reader-area dt i{width:9px;height:9px;display:inline-block;margin-right:7px}
.reader-area dd{font-family:Prata,serif;font-size:22px;margin:0;padding-top:5px;margin-top:auto;white-space:nowrap}
.reader-area dd span{font-family:Manrope,sans-serif;font-size:14px}
.reader-area-tone-0{fill:#173f35;background:#173f35}.reader-area-tone-1{fill:#477469;background:#477469}.reader-area-tone-2{fill:#b95335;background:#b95335}.reader-area-tone-3{fill:#b88b5c;background:#b88b5c}
.reader-area figcaption{font-size:14px;line-height:1.85;color:#505854}
.reader-next{border-left:3px solid #b95335;padding:3px 0 3px 18px;margin-top:28px}
.reader-next>b{font-size:12px;text-transform:uppercase;letter-spacing:.1em}.reader-next p{font-size:14px;line-height:1.8;margin:10px 0 0}
.reader-evidence{font-size:14px;line-height:1.85;margin:24px 0 0;overflow-wrap:anywhere;color:var(--muted)}
@media(max-width:430px){.reader-area{padding:20px 16px}.reader-area dl{gap:16px 12px}.reader-decision{grid-template-columns:26px minmax(0,1fr);gap:12px}.reader-area h3{font-size:21px}}

