:root {
  --ink: #1d222d; --blue: #172E4D; --blue-soft: #f0f2f4; --red: #E6321F;
  --paper: #f7f7f5; --white: #fff; --muted: #767a86; --line: #dcdee4;
  font-family: Arial, Helvetica, sans-serif; color: var(--ink); background: var(--paper); font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
.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; }

.topbar { height: 82px; padding: 0 clamp(20px,4vw,64px); display: flex; align-items: center; border-bottom: 1px solid rgba(23,46,77,.12); background: rgba(247,247,245,.92); backdrop-filter: blur(16px); position: sticky; top: 0; z-index: 20; }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; color: var(--blue); }
.brand img { display: block; width: 146px; height: auto; }
.nav { display: flex; align-self: stretch; align-items: center; gap: 34px; margin-left: auto; }
.nav a, .nav button { border: 0; background: none; text-decoration: none; color: var(--muted); padding: 0; font-size: 12px; position: relative; }
.nav .active { color: var(--blue); }
.nav .active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -32px; height: 2px; background: var(--red); }
.nav sup { min-width: 16px; height: 16px; padding: 0 4px; display: inline-grid; place-items: center; border-radius: 10px; background: var(--blue); color: white; font-size: 8px; top: -.3em; }
main { overflow: clip; }
.hero { min-height: 630px; padding: clamp(66px,8vw,116px) max(6vw,24px) 58px; display: flex; flex-direction: column; align-items: center; text-align: center; background: var(--paper); position: relative; }
.hero::after { content: ""; position: absolute; width: 46vw; height: 46vw; max-width: 700px; max-height: 700px; min-width: 360px; min-height: 360px; border: 1px solid rgba(23,46,77,.07); border-radius: 50%; left: 50%; top: -25vw; transform: translateX(-50%); box-shadow: 0 0 0 100px rgba(23,46,77,.018), 0 0 0 220px rgba(23,46,77,.012); pointer-events: none; }
.hero-kicker { display: flex; align-items: center; gap: 12px; color: var(--blue); text-transform: uppercase; font-size: 10px; letter-spacing: .16em; }
.hero-kicker i { width: 28px; height: 1px; background: var(--red); }
h1 { max-width: 1040px; margin: 25px 0 24px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px,7vw,96px); line-height: .93; letter-spacing: -.055em; font-weight: 400; color: var(--blue); position: relative; z-index: 1; }
h1 em { color: var(--red); font-weight: 400; }
.hero-copy { max-width: 560px; margin: 0 0 43px; color: var(--muted); line-height: 1.65; font-size: 14px; }
.smart-search { position: relative; z-index: 2; width: min(1040px,100%); min-height: 78px; padding: 12px 12px 12px 20px; display: flex; align-items: center; gap: 16px; background: var(--white); border: 1px solid rgba(23,46,77,.18); box-shadow: 0 18px 60px rgba(23,46,77,.08); text-align: left; }
.ai-mark { flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: white; font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.smart-search textarea { flex: 1; min-width: 0; resize: none; overflow: hidden; border: 0; outline: 0; background: transparent; padding: 14px 0; font-size: clamp(15px,1.6vw,20px); line-height: 1.35; }
.smart-search textarea::placeholder { color: #9a9ca4; }
.search-submit { width: 52px; height: 52px; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--red); color: white; font-size: 24px; transition: transform .2s, background .2s; }
.search-submit:hover { transform: translateX(2px); background: #a9162a; }
.search-meta { width: min(1040px,100%); position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 20px; align-items: start; padding-top: 15px; }
.examples { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; color: var(--muted); font-size: 10px; }
.examples button { border: 0; background: none; color: var(--blue); padding: 0 0 2px; border-bottom: 1px solid rgba(20,44,103,.3); font-size: 10px; }
.filters-toggle { border: 0; background: none; padding: 0; display: flex; align-items: center; gap: 8px; white-space: nowrap; color: var(--blue); font-size: 11px; }
.filters-toggle svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.filters-toggle > span { min-width: 17px; height: 17px; padding: 0 4px; border-radius: 10px; background: var(--red); color: white; place-items: center; font-size: 9px; }
.filters-toggle > span:not([hidden]) { display: inline-grid; }
.parsed-filters { width: min(1040px,100%); margin-top: 18px; padding: 14px 16px; position: relative; z-index: 2; align-items: center; gap: 12px; border-left: 2px solid var(--red); background: var(--blue-soft); font-size: 11px; text-align: left; }
.parsed-filters:not([hidden]) { display: flex; }
.parsed-filters > span { color: var(--muted); white-space: nowrap; }
#parsed-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.parsed-chip { padding: 6px 9px; background: var(--white); color: var(--blue); }
#clear-smart { margin-left: auto; border: 0; background: none; color: var(--muted); font-size: 10px; }

.manual-panel { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.manual-panel:not([hidden]) { display: block; }
.manual-panel-inner { width: min(1380px,92vw); margin: 0 auto; padding: 42px 0; display: grid; grid-template-columns: 1.05fr repeat(5,minmax(120px,1fr)) auto; gap: 20px; align-items: end; }
.section-label { margin: 0 0 8px; color: var(--red); text-transform: uppercase; font-size: 9px; letter-spacing: .16em; }
.panel-title h2, .results-head h2, .drawer-header h2 { margin: 0; font-family: Georgia, serif; font-weight: 400; color: var(--blue); }
.panel-title h2 { font-size: 34px; }
.field { display: grid; gap: 9px; }.field > span { color: var(--muted); text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.field input, .field select, .sort-control select { width: 100%; height: 43px; padding: 0 12px; border: 0; border-bottom: 1px solid var(--line); outline: 0; background: transparent; }
.field input:focus, .field select:focus, .sort-control select:focus { border-color: var(--blue); }
.range { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.completion-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.filter-actions { display: flex; align-items: center; gap: 12px; }.text-button { border: 0; background: none; padding: 10px 0; color: var(--muted); font-size: 10px; }.apply-button { height: 44px; padding: 0 18px; border: 0; background: var(--blue); color: white; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }

.results { width: min(1320px,88vw); margin: 0 auto; padding: 80px 0 120px; }
.results-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 32px; }
.results-head h2 { font-size: clamp(34px,4vw,55px); letter-spacing: -.035em; }.results-head h2 sup { color: var(--red); font-family: Arial, sans-serif; font-size: 12px; vertical-align: top; margin-left: 5px; }
.sort-control { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 10px; }.sort-control select { width: auto; padding-right: 26px; color: var(--blue); }
.selection-suggestion { margin: -10px 0 28px; padding: 17px 20px; align-items: center; justify-content: space-between; gap: 20px; background: var(--blue); color: white; }
.selection-suggestion:not([hidden]) { display: flex; }.selection-suggestion p { margin: 0; display: grid; gap: 3px; }.selection-suggestion strong { font-family: Georgia, serif; font-weight: 400; font-size: 18px; }.selection-suggestion span { color: #bfc8dc; font-size: 10px; }.selection-suggestion button { height: 38px; padding: 0 16px; border: 1px solid rgba(255,255,255,.4); background: transparent; color: white; text-transform: uppercase; letter-spacing: .08em; font-size: 9px; }
.property-grid { display: grid; grid-template-columns: repeat(4,minmax(190px,1fr)); gap: 28px 16px; }
.property-card { min-width: 0; }.card-visual { height: clamp(180px,20vw,280px); position: relative; display: grid; place-items: center; overflow: hidden; background: var(--card-bg); }.visual-link { position: absolute; inset: 0; display: grid; place-items: center; color: inherit; text-decoration: none; }
.card-visual::before { content: ""; position: absolute; width: 130%; height: 42%; top: 5%; right: -50%; transform: rotate(28deg); background: rgba(255,255,255,.32); }
.building { width: 42%; height: 65%; position: relative; background: var(--building); box-shadow: 35px 20px 0 var(--building-2), -27px 38px 0 var(--building-2); opacity: .88; }
.building::after { content: ""; position: absolute; inset: 12%; background: repeating-linear-gradient(90deg, rgba(255,255,255,.78) 0 8px, transparent 8px 20px), repeating-linear-gradient(0deg, transparent 0 17px, rgba(255,255,255,.46) 17px 23px); }
.lot-tag { position: absolute; z-index: 2; left: 12px; top: 12px; padding: 6px 8px; background: rgba(255,255,255,.9); color: var(--blue); text-transform: uppercase; letter-spacing: .08em; font-size: 8px; }
.favorite { position: absolute; z-index: 3; top: 12px; right: 12px; width: 29px; height: 29px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--blue); font-size: 17px; transition: .2s; }.property-card.selected .favorite { background: var(--red); color: white; transform: rotate(45deg); }
.card-body { padding: 15px 2px 0; }.card-title { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }.card-title h3 { margin: 0; color: var(--blue); font-family: Georgia, serif; font-weight: 400; font-size: 20px; line-height: 1.15; }.card-title h3 a { color: inherit; text-decoration: none; }.card-title h3 a:hover { color: var(--red); }.card-id { color: #a3a6ae; font-size: 8px; white-space: nowrap; }
.facts { margin-top: 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }.fact { display: grid; gap: 3px; }.fact span { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-size: 8px; }.fact strong { font-size: 11px; font-weight: 500; }.fact.price strong { color: var(--red); font-size: 13px; }
.empty-state { padding: 90px 20px; text-align: center; border-top: 1px solid var(--line); }.empty-state span { color: var(--blue); font-family: Georgia, serif; font-size: 32px; }.empty-state p { color: var(--muted); font-size: 12px; }.empty-state button { border: 0; border-bottom: 1px solid var(--blue); background: none; color: var(--blue); padding: 7px 0; font-size: 10px; text-transform: uppercase; }
footer { min-height: 100px; padding: 35px max(6vw,24px); display: flex; justify-content: space-between; color: #c9cfdf; background: var(--blue); text-transform: uppercase; letter-spacing: .12em; font-size: 8px; }

.selection-fab { position: fixed; z-index: 25; right: 28px; bottom: 24px; min-width: 210px; padding: 13px 14px; border: 0; display: grid; grid-template-columns: 1fr auto; gap: 3px 16px; background: var(--red); color: white; text-align: left; box-shadow: 0 16px 45px rgba(90,14,28,.24); }.selection-fab span { text-transform: uppercase; letter-spacing: .08em; font-size: 9px; }.selection-fab small { color: #f3c8ce; font-size: 9px; }.selection-fab b { grid-row: 1 / 3; grid-column: 2; align-self: center; min-width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: white; color: var(--red); font-size: 10px; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 30; background: rgba(17,22,45,.4); backdrop-filter: blur(3px); }.collection-drawer { position: fixed; z-index: 31; right: 0; top: 0; bottom: 0; width: min(460px,100vw); padding: 34px; display: flex; flex-direction: column; gap: 25px; background: white; transform: translateX(105%); transition: transform .28s ease; box-shadow: -20px 0 70px rgba(17,22,45,.18); }.collection-drawer.open { transform: translateX(0); }
.drawer-header { display: flex; justify-content: space-between; align-items: start; }.drawer-header h2 { font-size: 38px; }.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; background: none; font-size: 22px; }.collection-name { margin-bottom: 4px; }.collection-list { overflow: auto; display: grid; gap: 0; }.collection-item { padding: 15px 0; display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; border-bottom: 1px solid var(--line); }.collection-item strong { color: var(--blue); font-family: Georgia, serif; font-size: 17px; font-weight: 400; }.collection-item strong a { color: inherit; text-decoration: none; }.collection-item strong a:hover { color: var(--red); }.collection-item span { color: var(--muted); font-size: 9px; }.remove-button { grid-row: 1/3; grid-column: 2; border: 0; background: none; color: var(--muted); font-size: 20px; }.collection-empty { padding: 50px 20px; text-align: center; color: var(--muted); }.collection-empty span { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; font-size: 20px; }.collection-empty p { font-size: 11px; }.drawer-footer { margin-top: auto; padding-top: 20px; display: grid; gap: 12px; border-top: 1px solid var(--line); }.primary-button { height: 50px; border: 0; background: var(--blue); color: white; text-transform: uppercase; letter-spacing: .1em; font-size: 9px; }.primary-button:disabled { opacity: .3; cursor: not-allowed; }.secondary-button { height: 46px; border: 1px solid var(--blue); background: transparent; color: var(--blue); text-transform: uppercase; letter-spacing: .1em; font-size: 9px; }.secondary-button:disabled { opacity: .3; cursor: not-allowed; }
.toast { position: fixed; z-index: 50; left: 50%; bottom: 26px; padding: 12px 18px; background: var(--ink); color: white; transform: translate(-50%,18px); opacity: 0; pointer-events: none; font-size: 11px; transition: .25s; }.toast.show { opacity: 1; transform: translate(-50%,0); }

@media (max-width: 1080px) { .manual-panel-inner { grid-template-columns: repeat(2,1fr); }.panel-title { grid-column: 1/-1; }.property-grid { grid-template-columns: repeat(3,minmax(190px,1fr)); } }
@media (max-width: 760px) { .topbar { height: 68px; padding: 0 18px; }.nav { display: none; }.brand img { width: 122px; }.hero { min-height: auto; padding: 60px 20px 45px; }.hero::after { opacity: .5; }.hero-copy { margin-bottom: 30px; }.smart-search { padding: 8px 8px 8px 13px; gap: 10px; min-height: 68px; }.ai-mark { width: 30px; height: 30px; }.search-submit { width: 45px; height: 45px; }.examples { display: none; }.search-meta { justify-content: flex-end; }.parsed-filters:not([hidden]) { align-items: start; flex-wrap: wrap; }.parsed-filters #clear-smart { margin-left: 0; }.manual-panel-inner { width: calc(100% - 40px); grid-template-columns: 1fr; }.property-grid { grid-template-columns: repeat(2,minmax(140px,1fr)); }.results { width: calc(100% - 40px); padding-top: 60px; }.results-head { align-items: start; gap: 20px; }.sort-control span { display: none; }.sort-control select { max-width: 150px; }.selection-suggestion { align-items: start; }.selection-fab { right: 16px; bottom: 16px; }.card-visual { height: 190px; }.facts { grid-template-columns: 1fr; }.fact:nth-child(2) { display: none; } }
@media (max-width: 600px) { h1 { font-size: 40px; line-height: .98; } h1 em { font-size: 37px; }.smart-search textarea { font-size: 14px; }.property-grid { grid-template-columns: 1fr; }.card-visual { height: 260px; }.results-head { display: grid; }.results-head h2 { font-size: 34px; }.sort-control { justify-self: start; }.selection-suggestion:not([hidden]) { display: grid !important; }.selection-suggestion button { justify-self: start; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

/* Более строгая типографика и брокерская карточка */
h1 { max-width: 900px; font-family: Arial, Helvetica, sans-serif; font-size: clamp(42px,5.4vw,76px); line-height: 1.02; letter-spacing: -.045em; font-weight: 500; }
h1 em { font-style: normal; font-weight: 500; }
.panel-title h2, .results-head h2, .drawer-header h2, .card-title h3, .collection-item strong, .selection-suggestion strong, .empty-state span { font-family: Arial, Helvetica, sans-serif; }
.card-photo { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.property-card:hover .card-photo { transform: scale(1.025); }
.card-visual::before { display: none; }
.broker-facts { margin-top: 14px; padding: 10px 11px; display: grid; grid-template-columns: 1fr auto; gap: 12px; border-left: 2px solid var(--red); background: #eef1f4; }
.broker-facts div { min-width: 0; display: grid; gap: 4px; }
.broker-facts div:last-child { text-align: right; }
.broker-facts span { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-size: 7px; }
.broker-facts strong { overflow: hidden; color: var(--blue); font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 600px) { h1, h1 em { font-size: 39px; } .broker-facts { grid-template-columns: 1fr auto; } }

/* Расширенная панель фильтров каталога */
.manual-panel-inner { display:block; padding:34px 0; }
.panel-title { margin-bottom:24px; display:flex; justify-content:space-between; align-items:end; }
.filter-fields { display:grid; grid-template-columns:repeat(4,minmax(180px,1fr)); gap:20px 24px; }
.filter-fields .field { min-width:0; }
.filter-actions { margin-top:24px; justify-content:flex-end; }
@media(max-width:1100px){.filter-fields{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:620px){.manual-panel-inner{width:calc(100% - 36px);padding:28px 0}.filter-fields{grid-template-columns:1fr;gap:18px}.panel-title{margin-bottom:20px}.filter-actions{justify-content:space-between}}

/* Компактный каталог с предпросмотром */
.property-grid { grid-template-columns: repeat(5,minmax(180px,1fr)); gap: 18px 14px; }
.property-card { min-width: 0; position: relative; isolation: isolate; }
.property-card:hover, .property-card:focus-within { z-index: 6; }
.card-media { height: clamp(150px,14vw,188px); position: relative; overflow: hidden; background: var(--card-bg); }
.card-caption { min-height: 48px; padding: 11px 1px 6px; display: flex; align-items: start; justify-content: space-between; gap: 8px; transition: opacity .2s ease; }
.card-caption h3 { min-width: 0; margin: 0; overflow: hidden; color: var(--blue); font-size: 15px; line-height: 1.2; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.card-caption span { padding-top: 2px; color: #9b9ea8; font-size: 7px; white-space: nowrap; }
.card-preview { width: calc(100% + 12px); min-height: 178px; padding: 12px; position: absolute; z-index: 4; left: -6px; right: -6px; bottom: -6px; display: grid; gap: 8px; background: rgba(255,255,255,.97); border-top: 2px solid var(--red); box-shadow: 0 18px 44px rgba(23,46,77,.2); opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity .2s ease,transform .24s ease; }
.property-card:hover .card-preview, .property-card:focus-within .card-preview { opacity: 1; transform: translateY(0); pointer-events: auto; }
.property-card:hover .card-caption, .property-card:focus-within .card-caption { opacity: 0; }
.preview-heading { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.preview-heading > div { min-width: 0; }
.preview-heading span { display: block; margin-bottom: 3px; color: var(--red); text-transform: uppercase; letter-spacing: .1em; font-size: 6px; }
.preview-heading h3 { margin: 0; overflow: hidden; color: var(--blue); font-size: 14px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.preview-heading small { padding-top: 2px; color: #9b9ea8; font-size: 7px; white-space: nowrap; }
.preview-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 10px; }
.preview-facts div { min-width: 0; display: grid; gap: 2px; }
.preview-facts span { color: var(--muted); text-transform: uppercase; letter-spacing: .07em; font-size: 6px; }
.preview-facts strong { overflow: hidden; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.preview-facts .preview-price strong { color: var(--red); }
.preview-broker { padding-top: 7px; display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--line); color: var(--blue); font-size: 8px; }
.preview-broker span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.preview-broker strong { flex: 0 0 auto; font-size: inherit; }
.preview-button { min-height: 32px; padding: 0 10px; display: flex; align-items: center; justify-content: space-between; background: var(--blue); color: white; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; font-size: 7px; }
.preview-button span { color: #f36f60; font-size: 13px; }

@media(max-width:1180px){.property-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}}
@media(max-width:920px){.property-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}}
@media(max-width:700px){
  .topbar{height:62px;padding:0 15px}.brand img{width:116px}.hero{padding:44px 15px 34px}.hero-copy{max-width:520px;margin-bottom:24px;font-size:12px;line-height:1.55}.smart-search{width:100%;min-height:62px}.search-meta{width:100%;margin-top:12px}.filters-toggle{font-size:9px}.results{width:calc(100% - 28px);padding:45px 0 90px}.results-head{margin-bottom:22px}.results-head h2{font-size:31px}.property-grid{grid-template-columns:repeat(2,minmax(150px,1fr));gap:16px 12px}.card-media{height:170px}.selection-fab{min-width:185px;padding:11px 12px}.collection-drawer{padding:24px 20px}.drawer-header h2{font-size:31px}
}
@media(max-width:560px){
  html,body{max-width:100%;overflow-x:hidden}.hero,.hero>*{min-width:0;max-width:100%}.hero h1,.hero h1 em{width:100%;font-size:clamp(29px,8.1vw,34px);line-height:1.04;letter-spacing:-.04em}.hero-kicker{font-size:8px}.smart-search{padding-left:10px}.smart-search textarea{min-width:0;font-size:13px;line-height:1.4}.search-submit{flex:0 0 43px;width:43px;height:43px}.ai-mark{flex:0 0 28px;width:28px;height:28px;font-size:7px}.results-head{display:grid;gap:12px}.sort-control{justify-self:start}.property-grid{grid-template-columns:1fr;gap:12px}.property-card{min-height:184px;display:grid;grid-template-columns:minmax(118px,39%) 1fr;background:white;border:1px solid var(--line)}.card-media{height:100%;min-height:184px}.card-caption{display:none}.card-preview{width:auto;min-height:0;padding:13px;position:static;display:flex;flex-direction:column;gap:9px;border:0;box-shadow:none;opacity:1;transform:none;pointer-events:auto}.preview-heading h3{font-size:15px}.preview-facts{gap:8px}.preview-facts strong{font-size:10px}.preview-broker{font-size:7px}.preview-button{margin-top:auto}.lot-tag{left:8px;top:8px;max-width:calc(100% - 16px);padding:5px 6px;font-size:6px}.favorite{top:8px;right:8px;width:27px;height:27px}.selection-fab{right:10px;bottom:10px;min-width:170px}.manual-panel-inner{width:calc(100% - 28px)}
}
@media(max-width:380px){.property-card{grid-template-columns:112px 1fr}.preview-broker{display:grid;gap:3px}.preview-heading small{display:none}.selection-fab{left:10px;right:10px;width:auto}}
@media(hover:none){.property-card:hover .card-photo{transform:none}}

/* Каталог проектов */
.catalog-controls { display:flex; align-items:center; gap:20px; }
.view-switch { padding:4px; display:flex; gap:2px; border-radius:999px; background:#e9ebed; }
.view-switch button { min-height:34px; padding:0 15px; border:0; border-radius:999px; background:transparent; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:8px; }
.view-switch button.active { background:var(--blue); color:white; box-shadow:0 5px 14px rgba(23,46,77,.14); }
.property-grid.project-view { grid-template-columns:repeat(3,minmax(260px,1fr)); gap:24px 16px; }
.project-card { min-width:0; overflow:hidden; background:white; border:1px solid var(--line); }
.project-media { height:250px; position:relative; display:block; overflow:hidden; background:var(--card-bg); color:inherit; text-decoration:none; }
.project-card:hover .card-photo { transform:scale(1.025); }
.project-status,.project-lot-count { position:absolute; top:13px; padding:7px 9px; background:rgba(255,255,255,.94); color:var(--blue); text-transform:uppercase; letter-spacing:.08em; font-size:7px; }
.project-status { left:13px; }.project-lot-count { right:13px; }
.project-card-body { padding:18px; display:grid; gap:16px; }
.project-card-heading { display:flex; justify-content:space-between; gap:16px; align-items:start; }
.project-card-heading > div { min-width:0; }.project-card-heading p { margin:0 0 6px; overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.project-card-heading h3 { margin:0; color:var(--blue); font-size:22px; line-height:1.05; font-weight:600; letter-spacing:-.025em; }.project-card-heading h3 a { color:inherit; text-decoration:none; }.project-card-heading h3 a:hover { color:var(--red); }
.project-select { flex:0 0 32px; width:32px; height:32px; border:1px solid var(--line); border-radius:50%; background:white; color:var(--blue); font-size:17px; }.project-card.selected .project-select { border-color:var(--red); background:var(--red); color:white; }
.project-summary { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.project-summary div { min-width:0; padding:12px 9px; display:grid; gap:4px; border-right:1px solid var(--line); }.project-summary div:first-child { padding-left:0; }.project-summary div:last-child { padding-right:0; border:0; }
.project-summary span,.project-internal span { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:7px; }.project-summary strong { overflow:hidden; font-size:10px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.project-broker { display:flex; justify-content:space-between; gap:12px; color:var(--blue); font-size:9px; }.project-broker strong { color:var(--red); font-size:inherit; }.project-broker span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.project-open { min-height:38px; padding:0 12px; display:flex; align-items:center; justify-content:space-between; background:var(--blue); color:white; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; font-size:8px; }.project-open span { color:#f36f60; font-size:15px; }
.preview-broker a { color:inherit; text-decoration:none; }.preview-broker a:hover { color:var(--red); }

/* Отдельная страница проекта */
.project-page { width:min(1420px,94vw); margin:0 auto; padding:40px 0 90px; }
.project-nav a:first-child { color:var(--blue); }
.project-hero { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr); gap:40px; align-items:stretch; }
.project-hero-media { min-height:530px; overflow:hidden; background:var(--blue-soft); }.project-hero-media img { width:100%; height:100%; display:block; object-fit:cover; }
.project-hero-copy { padding:30px 4px 4px; display:flex; flex-direction:column; align-items:start; }
.project-hero-copy h1 { margin:10px 0 15px; font-family:Arial,Helvetica,sans-serif; font-size:clamp(48px,5vw,72px); line-height:.96; font-weight:500; letter-spacing:-.05em; }
.project-address { margin:0 0 24px; color:var(--blue); font-size:14px; }.project-description { margin:0; color:var(--muted); font-size:13px; line-height:1.65; }
.project-actions { width:100%; margin-top:auto; padding-top:28px; display:grid; gap:9px; }.project-actions .primary-button.selected { background:var(--red); }.project-back { display:flex; align-items:center; justify-content:center; text-decoration:none; }
.project-internal { width:100%; margin-top:22px; padding:14px 0; display:grid; grid-template-columns:1fr 1fr; gap:18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.project-internal div { display:grid; gap:5px; }.project-internal strong { color:var(--blue); font-size:11px; }
.project-metrics { margin:54px 0 76px; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.project-metrics div { min-height:105px; padding:20px 16px; display:grid; align-content:start; gap:8px; border-right:1px solid var(--line); }.project-metrics div:last-child { border:0; }.project-metrics span { color:var(--muted); text-transform:uppercase; letter-spacing:.09em; font-size:8px; }.project-metrics strong { color:var(--blue); font-size:17px; font-weight:600; }
.project-details { padding-bottom:76px; display:grid; grid-template-columns:1fr 1fr; gap:70px; }.project-details h2,.project-units-head h2 { margin:0 0 24px; color:var(--blue); font-size:clamp(30px,3.4vw,46px); line-height:1; font-weight:500; letter-spacing:-.04em; }.project-feature-list { margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 24px; list-style:none; }.project-feature-list li { padding:12px 0 12px 20px; position:relative; border-bottom:1px solid var(--line); font-size:12px; }.project-feature-list li::before { content:""; width:6px; height:6px; position:absolute; left:0; top:17px; border-radius:50%; background:var(--red); }
.project-detail-table p { margin:0; padding:14px 0; display:flex; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); font-size:12px; }.project-detail-table span { color:var(--muted); }.project-detail-table strong { color:var(--blue); text-align:right; }
.project-units { padding-top:58px; border-top:1px solid var(--line); }.project-units-head { margin-bottom:24px; display:flex; justify-content:space-between; gap:30px; align-items:end; }.project-units-head h2 { margin:0; }.project-units-head h2 sup { color:var(--red); font-size:11px; vertical-align:top; }.project-units-head > p { margin:0; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.project-lot-grid { display:grid; grid-template-columns:repeat(4,minmax(220px,1fr)); gap:16px; }.project-lot-card { min-width:0; background:white; border:1px solid var(--line); }.project-lot-media { height:180px; position:relative; display:block; overflow:hidden; }.project-lot-media img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .3s; }.project-lot-card:hover .project-lot-media img { transform:scale(1.025); }.project-lot-media span { position:absolute; left:10px; top:10px; padding:6px 8px; background:rgba(255,255,255,.94); color:var(--blue); font-size:7px; }
.project-lot-body { padding:14px; display:grid; grid-template-columns:1fr auto; gap:12px; }.project-lot-body p { margin:0 0 5px; color:var(--muted); font-size:8px; }.project-lot-body h3 { margin:0; color:var(--blue); font-size:16px; }.project-lot-body button { grid-column:2; grid-row:1; width:30px; height:30px; border:1px solid var(--line); border-radius:50%; background:white; color:var(--blue); font-size:16px; }.project-lot-body button.selected { border-color:var(--red); background:var(--red); color:white; }
.project-lot-body dl { grid-column:1/-1; margin:0; padding:11px 0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.project-lot-body dl div { min-width:0; padding:0 7px; border-right:1px solid var(--line); }.project-lot-body dl div:first-child { padding-left:0; }.project-lot-body dl div:last-child { padding-right:0; border:0; }.project-lot-body dt { color:var(--muted); text-transform:uppercase; letter-spacing:.07em; font-size:6px; }.project-lot-body dd { margin:4px 0 0; overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.project-lot-open { grid-column:1/-1; display:flex; justify-content:space-between; color:var(--blue); text-decoration:none; text-transform:uppercase; letter-spacing:.08em; font-size:7px; }.project-lot-open span { color:var(--red); font-size:13px; }
.project-not-found { min-height:65vh; display:grid; place-items:center; align-content:center; text-align:center; }.project-not-found h1 { max-width:760px; font-family:Arial,Helvetica,sans-serif; font-size:clamp(38px,5vw,64px); font-weight:500; }.project-not-found a { color:var(--blue); }

@media(max-width:1100px){.property-grid.project-view{grid-template-columns:repeat(2,minmax(260px,1fr))}.project-hero{grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr)}.project-hero-media{min-height:460px}.project-metrics{grid-template-columns:repeat(3,1fr)}.project-metrics div:nth-child(3){border-right:0}.project-metrics div:nth-child(-n+3){border-bottom:1px solid var(--line)}.project-lot-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}}
@media(max-width:780px){.catalog-controls{align-items:flex-end;flex-direction:column;gap:10px}.project-hero{grid-template-columns:1fr;gap:18px}.project-hero-media{min-height:0;height:58vw}.project-hero-copy{padding-top:14px}.project-actions{margin-top:8px}.project-metrics{margin:38px 0 54px}.project-details{grid-template-columns:1fr;gap:42px}.project-lot-grid{grid-template-columns:repeat(2,minmax(190px,1fr))}.project-units-head{align-items:start;flex-direction:column}}
@media(max-width:560px){.results-head{gap:16px}.catalog-controls{width:100%;align-items:stretch}.view-switch{align-self:start}.sort-control{align-self:start}.property-grid.project-view{grid-template-columns:1fr;gap:14px}.project-card{display:grid;grid-template-columns:42% 1fr}.project-media{height:auto;min-height:240px}.project-card-body{padding:14px;gap:12px}.project-summary{grid-template-columns:1fr}.project-summary div,.project-summary div:first-child,.project-summary div:last-child{padding:7px 0;border-right:0;border-bottom:1px solid var(--line)}.project-summary div:last-child{border-bottom:0}.project-page{width:calc(100% - 28px);padding-top:18px}.project-nav{display:flex;gap:14px}.project-nav a{font-size:9px}.project-hero-media{height:68vw}.project-hero-copy h1{font-size:42px}.project-metrics{grid-template-columns:repeat(2,1fr)}.project-metrics div,.project-metrics div:nth-child(3){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.project-metrics div:nth-child(2n){border-right:0}.project-metrics div:last-child{border-bottom:0}.project-feature-list{grid-template-columns:1fr}.project-lot-grid{grid-template-columns:1fr}.project-lot-card{display:grid;grid-template-columns:38% 1fr}.project-lot-media{height:auto}.project-lot-body dl{grid-template-columns:1fr}.project-lot-body dl div,.project-lot-body dl div:first-child,.project-lot-body dl div:last-child{padding:6px 0;border-right:0;border-bottom:1px solid var(--line)}.project-lot-body dl div:last-child{border:0}}
