:root{--bg:#F9F4ED;--surface:#fff;--ink:#131B2D;--muted:#5b6672;--line:#e3d9c6;--soft:#f1ece3;--gold:#F2D489;--blue:#f0e7d4;--shadow:0 18px 48px #12253d10;--radius:20px;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px;overflow-x:clip;scrollbar-gutter:stable}html.ke-locked{overflow:hidden;padding-right:var(--ke-sbw,0px)}body{margin:0;color:var(--ink);background:var(--bg);font:16.5px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button{border:0}input,select,textarea{color:var(--ink);min-width:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #59a8d0;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:-.7px}h1{font-size:44px}h2{font-size:34px;margin-bottom:0}h3{font-size:21px;font-weight:600}button svg,a svg{flex-shrink:0}.icon{width:22px;height:22px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.container{width:min(100%,1512px);padding-inline:clamp(22px,5vw,76px);margin-inline:auto}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:15px;top:-80px;padding:12px;background:var(--surface);z-index:2000}.skip-link:focus{top:10px}.eyebrow{font-size:13px;letter-spacing:4px;color:var(--muted);font-weight:500}.muted{color:var(--muted)}.text-button{background:none;display:inline-flex;align-items:center;gap:9px;padding:8px 0}.primary,.outline-button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:48px;padding:13px 23px;border-radius:28px;font-weight:600;transition:background .18s,transform .18s}.primary{background:var(--gold);color:#131B2D}.primary:hover{background:#f5c35b;transform:translateY(-1px)}.outline-button{background:var(--surface);border:1px solid var(--line)}.outline-button:hover{background:var(--blue)}.round-button,.icon-button{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:transparent;position:relative}.round-button{border:1px solid var(--ink);background:var(--surface)}.round-button .icon{width:19px}.icon-button:hover{background:#ffffff70}.count{position:absolute;top:0;right:-3px;min-width:17px;height:17px;padding:0 4px;background:var(--gold);font-size:12px;line-height:17px;border-radius:20px;color:#172435}
.header{height:90px;padding-inline:clamp(22px,4.7vw,72px);display:flex;align-items:center;gap:28px;position:relative;z-index:40;background:var(--surface);border-bottom:1px solid var(--line)}.home-view .header{margin-bottom:-90px;background:transparent;border:0}.brand{display:flex;align-items:center;gap:9px;flex-shrink:0}.brand img{width:calc(91px*var(--ke-logo,1));height:calc(65px*var(--ke-logo,1));object-fit:contain;mix-blend-mode:multiply}.brand strong{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:.6px;line-height:1}.brand small{display:block;font-size:11px;letter-spacing:4px;line-height:2}.desktop-nav{display:flex;align-items:center;justify-content:center;flex:1;gap:26px;font-size:15px;white-space:nowrap}.nav-link{display:block;padding:15px 0 12px;border-bottom:2px solid transparent}.nav-link.active{border-color:var(--gold);color:#173755;font-weight:600}.nav-group{position:relative}.mega{display:none;position:absolute;top:45px;left:-18px;width:250px;padding:12px;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:14px}.mega a,.mega button{display:block;text-align:left;background:none;padding:10px;border-radius:8px;width:100%;font-size:15px}.mega a:hover,.mega button:hover{background:var(--soft)}.nav-group:hover .mega,.nav-group:focus-within .mega{display:block}.header-actions{display:flex;align-items:center;gap:12px}.language{font-size:15px;padding:10px 14px;background:#ffffffcf;border-radius:30px;color:#131B2D}.favorite-link{background:#ffffff8f}.ai-header{display:flex;align-items:center;gap:9px;background:#161b1d;color:white;border-radius:40px;padding:11px 19px;white-space:nowrap;font-size:15px;font-weight:600}.ai-header .icon{width:18px}.menu-toggle .icon{width:29px;height:29px}.menu-overlay{position:fixed;inset:0;background:#131B2D60;backdrop-filter:blur(4px);z-index:80}.menu-panel{position:fixed;right:0;top:0;bottom:0;width:min(390px,100%);background:var(--surface);z-index:90;padding:24px 30px;overflow:auto;box-shadow:var(--shadow)}.menu-top{display:flex;align-items:center;justify-content:space-between;font:18px var(--serif);margin-bottom:26px}.menu-panel nav{display:grid}.menu-panel nav a{font-size:22px;padding:10px 0;border-bottom:1px solid var(--line)}.menu-panel nav a:hover{color:#2885b5}.menu-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:30px;font-size:15px}
.hero{position:relative;height:calc(610px*var(--ke-hero-h,1));isolation:isolate;overflow:hidden;background:#d5efff}.hero-art{position:absolute;inset:0;background:url('assets/batumi-hero.webp') center bottom/cover no-repeat;z-index:-3}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#fff0 75%,var(--bg) 100%)}/* дымка — только для читаемости текста слева; правее 56 % ролик в полную силу (решение владельца 12.10.2026) */
.hero-shade:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#ffffff59 0%,#ffffff40 32%,#fff0 52%);mask-image:linear-gradient(#000 5%,#000 60%,#0000 85%)}.hero-copy{padding-top:137px;position:relative}.hero-copy .eyebrow{margin-bottom:15px}.hero h1{font-size:calc(clamp(40px,3.7vw,59px)*var(--ke-hero-t,1)*var(--ke-hero-k,1));max-width:960px;line-height:1.04;letter-spacing:-1.3px;margin-bottom:17px}.hero-sub{font-size:20px;line-height:1.4;max-width:550px}.batumi-mark{position:absolute;top:150px;right:6%;font:italic 70px/1.1 'Snell Roundhand','Brush Script MT',var(--serif);transform:rotate(-10deg);font-weight:300}.batumi-mark span{display:block;font:9px/3 Arial,sans-serif;text-align:right;transform:rotate(10deg)}.search-wrap{position:relative;z-index:5;margin-top:-147px;max-width:1230px}.search-panel{background:var(--surface);border-radius:25px;box-shadow:0 18px 42px #162c4220;padding:14px 20px 18px}.search-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:13px}.segments,.mode{display:flex;align-items:center;gap:8px}.segments button{padding:10px 26px;border-radius:30px;background:none;font-size:16px;font-weight:500;min-width:115px}.segments button.active{background:#171b1c;color:white}.mode{background:#fbf0da;border-radius:30px;gap:0;font-size:15px}.mode button{border-radius:30px;padding:9px 21px;background:none;display:flex;align-items:center;gap:9px;font-weight:600}.mode button.active{background:var(--surface);box-shadow:0 1px 4px #0002}.mode .icon{width:16px;height:16px}.search-fields{display:grid;grid-template-columns:1.7fr .95fr .95fr 1.02fr 1.25fr;gap:8px}.search-fields label{border-radius:13px;background:var(--soft);padding:10px 16px 8px;font-size:12px;color:var(--muted);display:block}.search-fields select,.search-fields input{background:transparent;border:0;width:100%;display:block;height:30px;padding:3px 0;font-size:16px;outline-offset:1px}.search-fields .location-field{display:flex;gap:15px;align-items:center}.location-field>.icon{width:23px;color:var(--ink)}.location-field span{min-width:0;flex:1}.search-submit{margin:5px 0;min-height:58px;white-space:nowrap;padding-inline:22px}.ai-panel{padding:3px 4px 6px}.ai-intro{display:flex;align-items:center;gap:12px}.ai-intro p{font-size:15px;color:var(--muted);margin:3px 0 12px}.ai-symbol{background:var(--gold);width:42px;height:42px;display:grid;place-items:center;border-radius:12px;margin-bottom:10px;color:#131B2D}.ai-input-row{display:flex;gap:10px}.ai-input-row input{flex:1;border:1px solid var(--line);border-radius:14px;background:var(--soft);padding:12px 15px}.ai-panel>small{color:var(--muted);font-size:12px;display:block;margin-top:8px}
.benefits{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:32px 33px}.benefits>a,.benefits>button{background:none;display:flex;align-items:center;gap:18px;padding:0;text-align:left;font-size:14px;line-height:1.35}.benefits .icon{width:34px;height:34px;stroke-width:1.45}.benefits>a:hover,.benefits>button:hover{color:#2989b9}.benefit-more{border-left:1px solid #aeb6bf;padding-left:25px!important}.benefit-more .icon{width:22px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}.section-actions{display:flex;gap:12px;align-items:center;font-size:14px}.section-actions>a{margin-right:18px}.section-actions>a span{color:var(--muted)}.property-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.property{position:relative;background:var(--surface);border-radius:15px;box-shadow:0 9px 28px #19354909;overflow:hidden;border:1px solid #e8eaee70;transition:box-shadow .2s,transform .2s}.property:hover{transform:translateY(-3px);box-shadow:0 15px 35px #173b531b}.property-link{display:block}.photo{background-image:url('assets/interiors.webp');background-size:200% 200%;background-repeat:no-repeat;aspect-ratio:1.72;position:relative;background-color:#e4eef4;overflow:hidden}.photo-0{background-position:left top}.photo-1{background-position:right top}.photo-2{background-position:left bottom}.photo-3{background-position:right bottom}.photo-label{position:absolute;bottom:8px;left:12px;border-radius:25px;background:#fffffff2;padding:3px 11px;font-size:12px;color:#182333;line-height:1.5}.photo-label.sale{background:var(--gold)}.heart{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:34px;height:34px;background:#131B2D12;border-radius:50%;color:white;filter:drop-shadow(0 1px 2px #0005)}.heart .icon{width:26px;height:26px;stroke-width:1.5}.heart.on .icon{fill:#f8d27d;stroke:#f8d27d}.prop-info{padding:9px 15px 13px;position:relative}.prop-price{display:block;font-size:23px;font-weight:700;letter-spacing:-.5px;line-height:1.4}.prop-price small{font-size:14px;font-weight:400;letter-spacing:0}.prop-specs{font-size:13px;color:var(--muted);margin:2px 0 3px}.prop-address{font-size:14px;margin:0;padding-right:22px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#294561}.prop-info>.icon{position:absolute;bottom:16px;right:13px;width:20px}.prop-extra{font-size:13px;color:var(--muted);margin:6px 0 0}.quick-row{display:flex;align-items:center;gap:8px;margin-top:25px;flex-wrap:wrap;font-size:14px}.quick-row>span{margin-right:12px;color:var(--muted)}.quick-row button,.quick-row a,.catalog-chips button{background:var(--surface);border:1px solid var(--line);padding:7px 14px;border-radius:25px;font-size:14px}.quick-row button:hover,.quick-row a:hover,.catalog-chips button:hover{background:var(--blue)}.sample-note{font-size:13px;color:var(--muted);margin:16px 0 0}.telegram-banner{display:flex;align-items:center;gap:24px;padding:25px 32px;margin:50px 0 60px;border-radius:18px;background:linear-gradient(110deg,#e4f3fb,#f0f7fb)}.telegram-banner>.icon{width:34px;height:34px;color:#277fa7}.telegram-banner>div{flex:1}.telegram-banner h3{font-size:22px;margin:0 0 4px}.telegram-banner p{font-size:15px;color:#5e7687;margin:0}.telegram-banner .outline-button{font-size:14px;background:#ffffffb0;border-color:#ffffffb0}.district-heading{align-items:end}.district-heading .eyebrow{font-size:11px;letter-spacing:2px;margin-bottom:10px}.district-heading>span{font-size:15px}.district-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.district{position:relative;min-height:176px;isolation:isolate;border-radius:16px;overflow:hidden;color:white;display:flex;flex-direction:column;align-items:start;justify-content:end;text-align:left;padding:21px;background:#1a4864}.district:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/batumi-hero.webp') center/cover;transition:transform .5s}.district:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent,#0d2937ca)}.district:nth-child(4n+2):before{background-position:right center}.district:nth-child(4n+3):before{background-image:url('assets/batumi-photo.webp')}.district:nth-child(4n+4):before{background-image:url('assets/interiors.webp');background-size:200% 200%;background-position:right top}.district:hover:before{transform:scale(1.05)}.district strong{font-size:22px;font-weight:500}.district small{font-size:13px;color:#ffffffce}.district>.icon{position:absolute;right:18px;bottom:26px;width:20px}.all-districts{display:flex;margin:15px auto 0;font-size:14px}.owner-banner{margin-top:60px;border-radius:22px;padding:45px 55px;background:#f5efe3;display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden}.owner-banner h2{font-size:40px}.owner-banner .eyebrow{font-size:11px;letter-spacing:2px;color:#89764e}.owner-banner p:not(.eyebrow){font-size:16px;color:#766f62;margin:17px 0 22px}.owner-banner img{width:42%;max-height:285px;object-fit:contain;mix-blend-mode:multiply}.owner-banner .primary{font-size:15px}
.page-top{padding-top:34px;min-height:55vh}.breadcrumb{display:inline-block;color:var(--muted);font-size:14px;margin-bottom:25px}.page-top .eyebrow{font-size:12px;letter-spacing:2.5px;margin-bottom:10px}.page-top h1{margin-bottom:10px}.page-top .section-title{align-items:end}.page-top .section-title p{margin-bottom:0}.view-toggle{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:30px;background:var(--surface)}.view-toggle button{display:flex;align-items:center;gap:8px;padding:9px 17px;border-radius:30px;background:none;font-size:15px}.view-toggle button.active{background:var(--ink);color:var(--surface)}.view-toggle .icon{width:17px;height:17px}.catalog-toolbar{display:flex;align-items:center;gap:12px;border-block:1px solid var(--line);padding:16px 0;margin:25px 0 15px}.catalog-toolbar .outline-button{font-size:14px;min-height:40px;padding:8px 17px}.catalog-toolbar .icon{width:17px}.catalog-chips{display:flex;gap:8px;flex-wrap:wrap}.sort-label{margin-left:auto}.sort-label select{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:11px;font-size:16px}.active-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.active-filters button{font-size:13px;background:#e6f3fc;border-radius:6px;padding:6px 10px;color:#234a63}.active-filters button:last-child{background:none;color:var(--muted)}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.catalog-grid .photo{aspect-ratio:1.6}.catalog-grid .prop-info{padding:14px 18px}.catalog-grid .prop-price{font-size:24px}.catalog-grid .prop-address{font-size:15px}.catalog-grid .prop-specs{font-size:14px}.catalog-grid .prop-extra{font-size:13px}.catalog-layout.with-map{display:grid;grid-template-columns:1fr 1.05fr;gap:24px;align-items:start}.with-map .catalog-grid{grid-template-columns:1fr;gap:12px}.with-map .property-link{display:grid;grid-template-columns:42% 58%;min-height:165px}.with-map .photo{height:100%;aspect-ratio:auto;min-height:165px}.with-map .prop-info{padding:18px 14px}.with-map .prop-price{font-size:24px}.with-map .heart{top:10px;right:auto;left:calc(42% - 43px)}.map-wrap{border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden;position:sticky;top:20px}.map-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:15px}.map-heading .text-button{font-size:13px}.property-map{height:clamp(480px,calc(100vh - 150px),760px);background:var(--soft);z-index:1}.map-caption{font-size:12px;color:var(--muted);padding:10px 15px;margin:0}.map-selection strong{display:block;margin-bottom:4px}.map-fallback button{position:absolute}.ai-summary{border:1px solid #f2dba6;border-radius:12px;background:#fff7e7;padding:15px;margin-bottom:20px;font-size:15px;color:#514425}.load-more{display:flex;margin:30px auto 0}.empty-state{grid-column:1/-1;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:60px 20px}.empty-state>.icon{width:45px;height:45px;color:#829fb3}.empty-state h2{font-size:27px;margin:20px 0 12px}.empty-state p{font-size:16px;color:var(--muted);margin-bottom:25px}
.detail-top{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:24px}.detail-top h1{font-size:38px;margin-bottom:8px}.detail-top p{margin:0;color:var(--muted);font-size:15px}.detail-actions{display:flex;gap:10px}.detail-actions .outline-button{font-size:14px;padding:10px 15px;min-height:42px}.gallery{display:grid;grid-template-columns:2fr 1fr;gap:12px;height:450px}.gallery-main{border-radius:18px;overflow:hidden;position:relative}.gallery-main .photo{height:100%;aspect-ratio:auto;cursor:zoom-in}.gallery-side{display:grid;grid-template-rows:1fr 1fr;gap:12px}.gallery-side button{padding:0;border-radius:14px;overflow:hidden}.gallery-side .photo{height:100%;aspect-ratio:auto}.gallery-controls{position:absolute;bottom:15px;left:15px;right:15px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.gallery-controls button{pointer-events:auto;background:#ffffffdf;border:0;color:#131B2D}.gallery-counter{background:#131B2D9c;color:white;border-radius:30px;padding:7px 14px;font-size:14px}.illustration-note{color:var(--muted);font-size:12px;margin-top:9px}.detail-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:36px;margin-top:25px;align-items:start}.detail-section{padding:24px 0;border-bottom:1px solid var(--line)}.detail-section:first-child{padding-top:0}.detail-section h2{font-size:27px;margin-bottom:20px}.detail-price{font-size:38px;font-weight:700;letter-spacing:-1px}.detail-price small{font-size:16px;font-weight:400}.detail-spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:15px;margin:22px 0}.detail-spec-grid div{border-right:1px solid var(--line)}.detail-spec-grid div:last-child{border:0}.detail-spec-grid strong{display:block;font-size:24px;font-weight:500}.detail-spec-grid small{font-size:13px;color:var(--muted)}.tags,.features{display:flex;gap:9px;flex-wrap:wrap}.tags span{background:#eaf4f6;color:#345b69;padding:6px 12px;font-size:13px;border-radius:20px}.features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;font-size:16px}.features span{display:flex;align-items:center;gap:10px}.features .icon{width:18px;color:#7e9d8a}.detail-description{color:var(--muted);font-size:16px;line-height:1.8}.detail-side{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:27px;position:sticky;top:20px;box-shadow:var(--shadow)}.detail-side h3{font-size:22px;margin-bottom:14px}.cost-row{display:flex;justify-content:space-between;gap:15px;font-size:15px;padding:12px 0;color:var(--muted)}.cost-row strong{color:var(--ink);font-weight:500}.cost-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:20px;font-size:20px}.detail-side .primary{display:flex;width:100%;margin:22px 0 12px;font-size:15px}.contact-options{display:flex;gap:8px;margin-top:10px}.contact-options a{padding:11px 8px;border:1px solid var(--line);border-radius:11px;flex:1;text-align:center;font-size:14px}.detail-side>small{display:block;font-size:12px;color:var(--muted);margin-top:18px}.detail-location{border-radius:14px;background:linear-gradient(120deg,#ddecf5,#edf3ed);padding:25px}.detail-location p{color:#487088;font-size:15px;margin:8px 0 20px}.similar-heading{margin:45px 0 20px}.detail-bottom-cta{display:none}.detail-section .property-grid{grid-template-columns:repeat(2,1fr)}
.info-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;margin-top:25px;align-items:start}.info-copy p{font-size:18px;color:var(--muted);line-height:1.8}.info-copy h2{margin:35px 0 15px;font-size:29px}.info-copy ul{padding-left:20px;color:var(--muted);line-height:2}.info-visual{border-radius:20px;overflow:hidden;position:sticky;top:20px}.info-visual .photo{height:430px;aspect-ratio:auto}.info-callout{background:var(--blue);padding:24px;border-radius:16px;margin-top:25px}.info-callout h3{margin-bottom:8px}.info-callout p{font-size:16px}.info-form{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.field{display:block;font-size:14px;color:var(--muted);margin-bottom:17px}.field input,.field select,.field textarea{display:block;width:100%;border:1px solid var(--line);padding:12px;margin-top:7px;border-radius:10px;background:var(--soft);font-size:16px;resize:vertical}.field textarea{min-height:90px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkbox{display:flex;align-items:start;gap:9px;font-size:13px;color:var(--muted);margin:15px 0 20px}.checkbox input{margin-top:3px;accent-color:#2d6b8e}.checkbox a{text-decoration:underline}.info-form .primary{width:100%;font-size:15px}.form-note{font-size:12px;color:var(--muted);margin:12px 0 0}.faq{border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:16px 20px;margin:13px 0}.faq summary{cursor:pointer;font-size:18px;font-weight:500}.faq p{margin:14px 0 0;font-size:16px}.price-table{width:100%;border-collapse:collapse;font-size:15px;margin:25px 0}.price-table th,.price-table td{padding:14px;text-align:left;border-bottom:1px solid var(--line)}.price-table th{font-weight:500;color:var(--muted)}
.footer{margin-top:75px;background:#131B2D;color:#edf4f7;padding:45px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}.footer-brand{font:30px/1 var(--serif);letter-spacing:1px}.footer-brand span{display:block;font:9px/3 Arial,sans-serif;letter-spacing:4px}.footer p{font-size:15px;color:#a7bccb;margin-top:13px;line-height:1.7}.footer h3{font-size:15px;font-weight:500;margin:0 0 16px}.footer-grid>div>a:not(.footer-brand),.footer-grid>div>button{display:block;background:none;padding:4px 0;font-size:14px;color:#a7bccb;text-align:left}.footer-grid a:hover,.footer-grid button:hover{color:white}.footer-social{display:flex;gap:18px;font-size:14px;color:#d2e5ef}.footer-bottom{display:flex;gap:26px;align-items:center;border-top:1px solid #ffffff17;padding-top:21px;margin-top:35px;font-size:12px;color:#8da6b7}.footer-bottom>span:last-child{margin-left:auto}.bottom-nav{display:none}.modal{border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink);padding:35px;width:min(540px,calc(100% - 30px));max-height:90dvh;overflow:auto;box-shadow:0 30px 100px #0a263650}.modal::backdrop{background:#152c3c90;backdrop-filter:blur(5px)}.modal{overscroll-behavior:contain}.modal.modal-fallback{position:fixed;inset:0;margin:auto;height:fit-content;z-index:1999}.modal-shade{position:fixed;inset:0;z-index:1998;background:#152c3c90;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal h2{font-size:30px;margin:10px 35px 15px 0}.modal p{font-size:15px;color:var(--muted)}.modal-close{position:absolute;right:15px;top:14px}.modal .info-form{padding:0;border:0;box-shadow:none}.modal .field-row{gap:12px}.modal .contact-options{margin-top:20px}.lightbox-modal{width:min(1100px,calc(100% - 20px));padding:20px}.lightbox-modal .photo{height:min(65vh,650px);aspect-ratio:auto;border-radius:12px}.lightbox-modal .lightbox-bar{display:flex;align-items:center;justify-content:space-between;margin-top:15px}.lightbox-modal .modal-close{color:white;background:#131B2D75;z-index:2;top:30px;right:30px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:2000;background:#173b50;color:white;padding:13px 22px;border-radius:12px;box-shadow:var(--shadow);font-size:15px;max-width:90vw;text-align:center}.success-panel{text-align:center;padding:20px 0}.success-panel>.icon{width:50px;height:50px;color:#518e74}
body.dark{--bg:#111e28;--surface:#1d2d39;--ink:#eef3f5;--muted:#a6b6c1;--line:#334652;--soft:#263b48;--blue:#254352;--shadow:0 18px 48px #0003}.dark .hero-shade{background:linear-gradient(#111e2840,#111e2800 65%,var(--bg))}.dark .hero-shade:before{background:linear-gradient(90deg,#111e28ed,#111e289e 38%,transparent 58%)}.dark .brand img{mix-blend-mode:normal;border-radius:8px}.dark .batumi-mark{color:#131B2D}.dark .nav-link.active{color:var(--gold)}.dark .telegram-banner{background:linear-gradient(110deg,#204555,#243c4d)}.dark .telegram-banner p{color:#adc8d6}.dark .telegram-banner .outline-button{background:var(--surface);border-color:var(--line)}.dark .owner-banner{background:#34362f}.dark .owner-banner p:not(.eyebrow),.dark .owner-banner .eyebrow{color:#cfbf9d}.dark .owner-banner img{mix-blend-mode:normal;border-radius:20px}.dark .mode{background:#4b4030}.dark .prop-address{color:#b3d2e6}.dark .ai-summary{background:#3a3426;color:#e3cc9f;border-color:#5d4c2b}.dark .active-filters button{background:#294759;color:#b4d6ec}.dark .detail-location{background:#254453}.dark .detail-location p{color:#c3dcea}
@media(min-width:1550px){.hero{height:calc(660px*var(--ke-hero-h,1))}.search-wrap{margin-top:-155px}.hero-copy{padding-top:160px}.batumi-mark{top:175px}}
@media(max-width:1300px){.header{gap:19px;padding-inline:30px}.desktop-nav{gap:17px;font-size:14px}.brand img{width:calc(75px*var(--ke-logo,1))}.brand strong{font-size:25px}.header-actions{gap:8px}.ai-header{padding:10px 14px;font-size:14px}.benefits>a,.benefits>button{gap:11px;font-size:13px}.benefits .icon{width:29px;height:29px}.hero h1{font-size:calc(50px*var(--ke-hero-t,1)*var(--ke-hero-k,1))}.batumi-mark{font-size:59px;top:155px;right:5%}.search-wrap{padding-inline:8%;}.search-fields{grid-template-columns:1.6fr .85fr .9fr 1fr 1.2fr}.search-fields label{padding-inline:12px}.search-submit{padding-inline:16px;font-size:15px}}
@media(max-width:1100px){.desktop-nav{display:none}.header{justify-content:space-between}.brand img{width:calc(88px*var(--ke-logo,1))}.brand strong{font-size:28px}.header-actions{gap:15px}.hero h1{font-size:calc(45px*var(--ke-hero-t,1)*var(--ke-hero-k,1));max-width:720px}.hero{height:calc(560px*var(--ke-hero-h,1))}.hero-copy{padding-top:130px}.hero-sub{font-size:18px}.batumi-mark{top:135px;font-size:55px;right:5%}.search-wrap{padding-inline:5%;margin-top:-130px}.segments button{padding-inline:19px;min-width:100px}.mode button{padding-inline:14px}.search-fields{grid-template-columns:1.4fr .8fr .85fr 1fr}.search-submit{grid-column:1/-1;min-height:42px;margin:0}.benefits{padding-top:27px;gap:20px;overflow:auto}.benefits>a,.benefits>button{flex-shrink:0}.benefit-more{display:none!important}.offers-heading{margin-top:3px}.property-grid{gap:13px}.prop-info{padding-inline:11px}.prop-price{font-size:21px}.prop-address{font-size:13px}.district-grid{grid-template-columns:repeat(4,1fr)}.owner-banner{padding:35px}.owner-banner h2{font-size:33px}.gallery{height:370px}.catalog-layout.with-map{grid-template-columns:1fr 1fr}.with-map .property-link{grid-template-columns:1fr;min-height:0}.with-map .photo{height:auto;aspect-ratio:1.8;min-height:0}.with-map .heart{left:auto;right:10px}.info-layout{gap:35px}}
@media(max-width:760px){.header{height:76px;padding-inline:20px}.home-view .header{margin-bottom:-76px}.brand img{width:calc(68px*var(--ke-logo,1));height:calc(56px*var(--ke-logo,1))}.brand strong{font-size:23px}.brand small{font-size:10px;letter-spacing:3px}.header-actions{gap:7px}.language{padding:8px 11px;font-size:14px}.ai-header{width:38px;height:38px;padding:0;justify-content:center}.ai-header span{display:none}.hero{height:calc(575px*var(--ke-hero-h,1))}.hero-copy{padding-top:115px}.hero h1{font-size:calc(42px*var(--ke-hero-t,1)*var(--ke-hero-k,1));max-width:630px;line-height:1.06}.hero-sub{font-size:18px}.hero-art{background-size:auto 100%;background-position:69% bottom}.hero-shade:before{background:linear-gradient(180deg,#ffffff59,#ffffff30 30%,#fff0 47%);mask-image:none}.batumi-mark{top:auto;bottom:155px;right:7%;font-size:48px}.search-wrap{margin-top:-110px;padding-inline:22px}.search-panel{padding:14px;border-radius:20px}.search-top{gap:10px;align-items:stretch;flex-direction:column;margin-bottom:12px}.segments{justify-content:space-between}.segments button{flex:1;min-width:0;padding:9px 12px;font-size:15px}.mode{align-self:stretch;justify-content:space-between}.mode button{flex:1;justify-content:center;font-size:14px;padding:8px 14px}.search-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.search-fields .location-field{grid-column:1/-1}.search-fields label:nth-child(4){grid-column:1/-1}.search-fields label{padding:8px 13px;font-size:12px}.search-fields select,.search-fields input{font-size:16px;height:26px}.search-submit{min-height:48px;font-size:16px}.benefits{padding-block:27px;gap:27px;scrollbar-width:none}.benefits>a,.benefits>button{gap:10px;font-size:13px}.benefits .icon{width:29px;height:29px}.section-title{gap:12px;align-items:center;margin-bottom:16px}.section-title h2{font-size:27px}.section-actions{gap:8px}.section-actions>a{font-size:13px;margin:0}.section-actions .round-button{display:none}.property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.photo{aspect-ratio:1.5}.prop-info{padding:10px 12px 13px}.prop-price{font-size:23px}.prop-specs{font-size:13px}.prop-address{font-size:13px}.quick-row{gap:7px;margin-top:20px}.quick-row>span{width:100%;margin-bottom:3px}.telegram-banner{padding:22px;margin-block:35px 40px;gap:14px;flex-wrap:wrap}.telegram-banner>.icon{width:28px;height:28px}.telegram-banner h3{font-size:19px}.telegram-banner p{font-size:14px}.telegram-banner .outline-button{margin-left:42px;font-size:14px}.district-heading{display:block}.district-heading>span{font-size:13px;display:block;margin-top:10px}.district-grid{grid-template-columns:repeat(2,1fr);gap:12px}.district{min-height:155px;padding:16px}.district strong{font-size:20px}.district small{font-size:12px}.owner-banner{padding:28px;display:block;position:relative;margin-top:35px}.owner-banner h2{font-size:33px}.owner-banner p:not(.eyebrow){font-size:15px;max-width:90%}.owner-banner img{position:absolute;right:-45px;bottom:0;width:220px;opacity:.2;pointer-events:none}.owner-banner>div{position:relative;z-index:1}.owner-banner .primary{font-size:14px}.footer{margin-top:45px;padding-top:34px}.footer-grid{grid-template-columns:repeat(2,1fr);gap:28px}.footer-grid>div:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.footer-brand{font-size:27px}.footer-grid>div:first-child p{margin:0;font-size:14px}.footer-social{grid-column:1/-1;margin-top:10px}.footer-bottom{flex-wrap:wrap;gap:12px 20px;font-size:11px;margin-top:25px}.footer-bottom>span:last-child{display:none}.page-top{padding-top:23px}.page-top h1{font-size:32px}.page-top .section-title{flex-wrap:wrap;align-items:start}.catalog-toolbar{flex-wrap:wrap;gap:10px}.catalog-chips{order:3;width:100%;gap:7px}.catalog-chips button{font-size:13px;padding:7px 11px}.sort-label select{font-size:16px;padding:10px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.catalog-grid .prop-price{font-size:23px}.catalog-grid .prop-info{padding:10px 12px}.catalog-grid .prop-address{font-size:13px}.catalog-grid .prop-specs{font-size:13px}.catalog-grid .prop-extra{font-size:13px}.catalog-layout.with-map{display:flex;flex-direction:column}.with-map>div{width:100%;order:2}.with-map .map-wrap{width:100%;position:static;order:1}.with-map .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.property-map{height:390px}.with-map .property-link{display:block}.with-map .photo{aspect-ratio:1.5}.detail-top{display:block}.detail-top h1{font-size:30px}.detail-actions{margin-top:15px}.gallery{height:340px;grid-template-columns:1fr}.gallery-side{display:none}.detail-layout{grid-template-columns:1fr;gap:25px}.detail-side{position:static}.detail-spec-grid{gap:10px}.detail-spec-grid strong{font-size:22px}.detail-price{font-size:33px}.detail-section h2{font-size:25px}.info-layout{grid-template-columns:1fr;gap:25px}.info-visual{position:static}.info-visual .photo{height:300px}.info-copy p{font-size:16px}.info-copy h2{font-size:27px}.info-form{padding:23px}.footer-grid{grid-template-columns:repeat(3,1fr)}.ai-input-row{flex-direction:column}.ai-input-row input{min-height:48px}.ai-intro strong{font-size:16px}.ai-intro p{font-size:14px}}
@media(max-width:480px){body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.container{padding-inline:20px}.header{padding-inline:15px;height:70px;gap:6px}.home-view .header{margin-bottom:-70px}.brand{gap:5px}.brand img{width:calc(58px*var(--ke-logo,1));height:calc(48px*var(--ke-logo,1))}.brand strong{font-size:20px}.brand small{font-size:9px;letter-spacing:2.6px}.header-actions{gap:2px}.language{font-size:12px;padding:7px 9px}.favorite-link{display:none}.ai-header{width:34px;height:34px;margin-inline:5px}.menu-toggle{width:32px}.menu-toggle .icon{width:26px}.hero{height:calc(490px*var(--ke-hero-h,1))}.hero-copy{padding-top:104px}.hero .eyebrow{font-size:10px;letter-spacing:3.2px;margin-bottom:14px}.hero h1{font-size:calc(35px*var(--ke-hero-t,1)*var(--ke-hero-k,1));letter-spacing:-1px;max-width:360px;line-height:1.05;margin-bottom:15px}.hero-sub{font-size:16px;line-height:1.5;max-width:330px}.hero-art{background-size:auto 100%;background-position:69% bottom}.hero-shade:before{background:linear-gradient(180deg,#ffffff59,#ffffff30 30%,#fff0 47%)}.batumi-mark{bottom:83px;font-size:39px;right:6%}.batumi-mark span{font-size:9px}.search-wrap{padding-inline:15px;margin-top:-65px}.search-panel{padding:12px;border-radius:18px;box-shadow:0 12px 33px #16344a17}.segments{gap:3px}.segments button{font-size:14px;padding:8px 9px}.mode button{font-size:13px}.search-top{gap:9px}.search-fields label{padding-inline:12px}.search-fields select,.search-fields input{font-size:16px}.benefits{padding-block:25px 26px;gap:26px}.benefits>a,.benefits>button{font-size:12px;gap:8px}.benefits .icon{width:27px;height:27px}.offers-heading h2{font-size:25px;max-width:230px}.section-actions>a{font-size:0}.section-actions>a span{font-size:24px;color:var(--ink)}.property-grid{gap:10px}.photo{aspect-ratio:1.24}.prop-info{padding:9px 10px 12px}.prop-price{font-size:21px}.prop-price small{font-size:12px}.prop-specs{font-size:13px;line-height:1.6}.prop-address{font-size:13px;padding-right:15px}.prop-info>.icon{width:16px;right:8px;bottom:13px}.heart{top:7px;right:7px;width:29px;height:29px}.heart .icon{width:23px;height:23px}.photo-label{font-size:10px;left:9px;bottom:7px;padding:3px 9px}.sample-note{font-size:12px;line-height:1.6}.telegram-banner{padding:20px;gap:13px}.telegram-banner h3{font-size:18px}.telegram-banner .outline-button{margin-left:0;width:100%}.district-heading h2{font-size:29px}.district-heading .eyebrow{font-size:10px;letter-spacing:1.6px}.district{min-height:145px;padding:15px}.district strong{font-size:19px}.district>.icon{right:12px;width:17px}.owner-banner{padding:25px}.owner-banner h2{font-size:30px}.owner-banner p:not(.eyebrow){font-size:14px}.footer-grid{grid-template-columns:repeat(2,1fr);gap:24px}.footer-grid>div:first-child{grid-template-columns:1fr}.footer-grid>div:first-child p{margin-top:15px}.footer-grid>div:nth-child(4){grid-column:1/-1}.footer-grid>div:nth-child(4) a,.footer-grid>div:nth-child(4) button{display:inline-block;margin-right:15px}.footer-bottom{font-size:11px;gap:10px 20px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);z-index:60;background:var(--surface);border-top:1px solid var(--line);padding:8px 4px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #131B2D05}.bottom-nav a,.bottom-nav button{display:flex;align-items:center;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);background:none}.bottom-nav .icon{width:22px;height:22px}.bottom-nav .active{color:#247aa1}.bottom-nav .active .icon{stroke-width:2}.toast{bottom:85px;min-width:70%;font-size:14px}.page-top h1{font-size:29px}.page-top .eyebrow{font-size:10px;letter-spacing:2px}.catalog-grid{gap:11px}.catalog-grid .photo{aspect-ratio:1.3}.catalog-grid .prop-info{padding:10px}.catalog-grid .prop-price{font-size:21px}.catalog-grid .prop-address{font-size:13px}.catalog-grid .prop-extra{font-size:13px}.view-toggle button{padding:8px 13px;font-size:14px}.catalog-toolbar{margin-top:18px}.catalog-toolbar .outline-button{font-size:13px;padding-inline:13px}.active-filters{gap:6px}.active-filters button{font-size:12px}.property-map{height:350px}.with-map .catalog-grid{grid-template-columns:1fr}.with-map .property-link{display:grid;grid-template-columns:43% 57%;min-height:150px}.with-map .photo{height:100%;aspect-ratio:auto;min-height:150px}.with-map .heart{left:calc(43% - 35px);right:auto}.with-map .prop-info{padding:17px 12px}.gallery{height:270px}.detail-top h1{font-size:27px}.detail-top p{font-size:13px}.detail-spec-grid{grid-template-columns:repeat(2,1fr);gap:18px}.detail-spec-grid div:nth-child(2){border:0}.features{font-size:14px;gap:13px}.detail-description{font-size:15px}.detail-actions .outline-button{font-size:13px}.detail-side{padding:22px}.detail-bottom-cta{display:block;position:fixed;bottom:66px;left:15px;right:15px;z-index:55;padding:11px 18px;box-shadow:0 8px 25px #131B2D20}.detail-view .footer{padding-bottom:50px}.detail-view .toast{bottom:135px}.field-row{grid-template-columns:1fr;gap:0}.modal{padding:26px 23px;max-height:88dvh}.modal h2{font-size:27px}.modal .field-row{grid-template-columns:1fr 1fr}.modal .field{font-size:13px}.modal .field input,.modal .field select{font-size:16px;padding:10px}.lightbox-modal{padding:12px}.lightbox-modal .photo{height:52vh}.lightbox-modal .modal-close{top:20px;right:20px}.price-table{font-size:13px}.price-table th,.price-table td{padding:10px 5px}.ai-intro strong{font-size:15px}.ai-intro p{font-size:13px}.ai-symbol{width:35px;height:35px;flex-shrink:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.owner-banner img{clip-path:inset(0 3% 0 7%)}
.map-highlight{outline:2px solid #398fb7;outline-offset:1px}

@media(max-width:480px){.hero-shade:before{background:linear-gradient(#fff 0%,#fffffff7 57%,#ffffff60 74%,#fff0 88%)}}
/* Режим правки (content.json, content.js). Без правок ничего из этого не применяется. */
.ke-block{display:contents}.ke-hidden{display:none!important}html.ke-wait body{visibility:hidden}
#home.ke-hero-off{padding-top:110px}.ke-search-free .search-wrap{margin-top:24px!important}@media(max-width:760px){#home.ke-hero-off{padding-top:92px}}
.hero.ke-noimg{background:var(--bg)}.hero.ke-noimg .hero-art{background-image:none}
.district.ke-img:before{background-image:var(--ke-district-img)!important;background-size:cover!important;background-position:center!important}.district.ke-noimg:before{background-image:none!important}
.ke-edit-entry{position:fixed;right:14px;bottom:14px;z-index:9999;border-radius:22px;padding:9px 15px;font:600 13px/1 Arial,sans-serif;background:#171b1c;color:#fff;box-shadow:0 6px 18px #0003}
@media(max-width:760px){.ke-edit-entry{bottom:84px}}

/* 3б: район, цена, удобства, тема в шапке */
.search-fields .district-field{border-radius:13px;background:var(--soft);padding:8px 16px 6px;color:var(--muted);display:flex;gap:15px;align-items:center;position:relative;min-width:0}
.district-field>.icon{width:23px;color:var(--ink);flex:none}
#districtBtn{background:none;border:0;padding:0;text-align:left;flex:1;min-width:0;display:block;font:inherit;color:inherit;cursor:pointer}
#districtBtn small{display:block;font-size:12px;color:var(--muted);line-height:1.5}
#districtValue{display:block;font-size:16px;color:var(--ink);height:28px;line-height:28px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.district-panel{position:absolute;z-index:30;left:0;top:calc(100% + 8px);width:max(100%,300px);background:var(--surface);color:var(--ink);border-radius:16px;box-shadow:0 14px 40px #162c4235;padding:14px 16px 16px}
.dp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.dp-head strong{font-size:16px}
.dp-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px}
.dp-item{display:flex;align-items:center;gap:10px;padding:9px 4px;font-size:16px;color:var(--ink);cursor:pointer;border-radius:8px}
.dp-item input{width:20px;height:20px;accent-color:#171b1c;flex:none}
.dp-done{width:100%;margin-top:10px}
.district-backdrop{display:none}
.amenities{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.amenities button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:25px;padding:8px 15px;font-size:15px;line-height:1.2;cursor:pointer}
.amenities button[aria-pressed="true"]{background:#171b1c;border-color:#171b1c;color:#fff}
.district-set{border:0;padding:0;margin:0 0 4px}.district-set legend,.field legend{font-size:14px;color:var(--muted);padding:0 0 6px}
.amen-checks{display:flex;flex-wrap:wrap;gap:6px 16px}
.theme-toggle{background:#ffffff8f}.theme-toggle .icon{width:22px;height:22px}
@media(max-width:760px){
 .district-backdrop{display:block;position:fixed;inset:0;background:#0007;z-index:99}
 .district-panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:78vh;overflow:auto;border-radius:22px 22px 0 0;z-index:100;padding:16px 18px calc(18px + env(safe-area-inset-bottom))}
 .dp-list{grid-template-columns:1fr}.dp-item{padding:12px 4px}
}
.search-fields .dp-item{display:flex;align-items:center;gap:10px;background:none;border-radius:8px;padding:9px 4px;font-size:16px;color:var(--ink)}
.search-fields .dp-item:hover{background:var(--soft)}
.search-fields .district-panel .dp-item span{font-size:16px;color:var(--ink)}
@media(max-width:760px){
 .district-backdrop{z-index:1999}.district-panel{z-index:2000}
 .search-fields .dp-item{padding:12px 6px}
}
@media(max-width:760px){.district-panel{bottom:calc(64px + env(safe-area-inset-bottom));max-height:70vh;border-radius:22px 22px 0 0;padding-bottom:18px}}

/* ===== Карта: MapLibre GL + OpenFreeMap (map.js) ===== */
.map-stage{position:relative}
.property-map{width:100%}
.map-heading .map-to-list,.map-heading .map-filter-btn{display:none}
.map-title{display:flex;align-items:center;gap:8px;min-width:0}.map-title small{color:var(--muted);font-size:13px;font-weight:400}
.map-actions{display:flex;align-items:center;gap:12px}
.pin-wrap{width:0;height:0;display:flex;align-items:center;justify-content:center}
.pin{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:6px 11px;border-radius:20px;box-shadow:0 2px 8px #12253d33;font:700 14px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.pin.approx{border-style:dashed}
.pin-wrap:hover,.pin-wrap:has(.pin.hover),.pin-wrap:has(.pin.selected){z-index:5}
.pin:hover,.pin.hover{background:var(--soft);box-shadow:0 0 0 2px #398fb7,0 3px 10px #12253d44}
.pin.selected{background:var(--ink);color:var(--surface);border-color:var(--ink);box-shadow:0 0 0 3px #398fb766,0 4px 12px #12253d55}
.cluster{border-radius:50%;background:#173e57;color:#fff;border:3px solid #ffffffd9;box-shadow:0 2px 10px #12253d55;font:700 14px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;display:flex;align-items:center;justify-content:center;cursor:pointer}
.dark .cluster{background:#398fb7;border-color:#111e28cc}
.map-card-slot{position:absolute;left:12px;bottom:46px;z-index:4;width:min(380px,calc(100% - 24px));pointer-events:none}
.map-card{pointer-events:auto;position:relative;display:grid;grid-template-columns:116px 1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #12253d40;overflow:hidden}
.map-card.map-empty{display:block;padding:14px 16px;font-size:15px}
.mc-photo{display:block;min-height:112px;background:var(--soft) center/cover no-repeat}
.mc-body{display:flex;flex-direction:column;gap:2px;padding:11px 36px 11px 13px;min-width:0}
.mc-price{font-size:20px;line-height:1.2}.mc-price small{font-size:13px;font-weight:400;color:var(--muted)}
.mc-specs,.mc-addr{font-size:14px;color:var(--muted)}.mc-addr{color:var(--ink)}
.mc-approx{font-size:12px;color:var(--muted);line-height:1.3}
.mc-link{margin-top:4px;font-weight:600;font-size:14px;color:#247aa1}.dark .mc-link{color:#7cc1e0}
.mc-close{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:var(--surface);color:var(--ink);font-size:20px;line-height:1;border:1px solid var(--line)}
.map-notice{margin:10px 0;padding:11px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:14px;color:var(--muted)}
.map-offline{position:absolute;z-index:3;top:12px;left:12px;right:60px;margin:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);font-size:13px;padding:9px 12px;border-radius:10px;pointer-events:none}
.map-none{margin:0;padding:22px 16px;color:var(--muted);font-size:14px}
.detail-map{height:280px;border-radius:14px;overflow:hidden;border:1px solid var(--line);margin:14px 0 12px;background:var(--soft)}
.maplibregl-ctrl-attrib{font-size:11px}
.dark .maplibregl-ctrl-attrib,.dark .maplibregl-ctrl-group{background:#1d2d39e6;color:#c8d4db}
.dark .maplibregl-ctrl-attrib a{color:#c8d4db}
.dark .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}
@media(max-width:760px){
 body.map-open{overflow:hidden}
 .with-map .map-wrap{position:fixed;left:0;right:0;top:0;bottom:0;z-index:45;border:0;border-radius:0;display:flex;flex-direction:column;width:auto;order:0}
 .with-map .map-heading{flex:0 0 auto;padding:10px 12px;gap:8px;border-bottom:1px solid var(--line)}
 .with-map .map-heading .map-to-list,.with-map .map-heading .map-filter-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--line);border-radius:22px;background:var(--surface);font-size:14px;font-weight:600;color:var(--ink)}
 .with-map .map-heading .icon{width:16px;height:16px}
 .with-map .map-title{display:flex;flex-direction:column;align-items:flex-start;gap:0;flex:1;font-size:14px;line-height:1.2}.with-map .map-title .icon{display:none}
 .with-map .map-actions .text-button{display:none}
 .with-map .map-stage{flex:1 1 auto;min-height:0}
 .with-map .property-map{height:100%}
 .with-map .map-caption{display:none}
 .with-map .map-card-slot{left:10px;right:10px;width:auto;bottom:calc(48px + env(safe-area-inset-bottom))}
 .with-map>div{display:none}
}
@media(max-width:480px){
 .with-map .map-wrap{bottom:calc(64px + env(safe-area-inset-bottom))}
 .map-card{grid-template-columns:104px 1fr}
}

/* ===== Mapbox 3D: кнопка 2D/3D, статичная мини-карта, тёмные элементы управления ===== */
.ke-pitch-btn{width:29px;height:29px;font:700 12px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:#333}
.static-map{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:var(--soft);cursor:pointer;overflow:hidden}
.static-map img{display:block;width:100%;height:100%;object-fit:cover}
.static-cta{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:9px 16px;border-radius:22px;font-weight:600;font-size:14px;box-shadow:0 4px 14px #12253d40;white-space:nowrap}
.static-map:hover .static-cta{background:var(--ink);color:var(--surface)}
.mapboxgl-ctrl-attrib{font-size:11px}
.dark .mapboxgl-ctrl-attrib,.dark .mapboxgl-ctrl-group{background:#1d2d39e6;color:#c8d4db}
.dark .mapboxgl-ctrl-attrib a{color:#c8d4db}
.dark .mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:invert(1)}
.dark .ke-pitch-btn{color:#eef3f5}

/* Шапка: длинные заголовок/подпись бренда не растягивают её — сжимаются и обрезаются многоточием (320–390 px без прокрутки) */
.brand{flex-shrink:1;min-width:0}
.brand img{flex-shrink:0}
.brand>span{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.brand small{overflow:hidden;text-overflow:ellipsis}
.header-actions{flex-shrink:0}
@media(max-width:340px){.brand strong{font-size:18px;letter-spacing:.2px}.brand small{letter-spacing:2px}}

/* Полный каталог: превью-фото в карточках — ленивые <img> (loading=lazy), без фоновых картинок */
.photo.ph-img{position:relative;overflow:hidden;background:var(--soft)}
.photo.ph-img>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.photo.ph-img>.photo-label{z-index:1}

/* Контакты в подвале (телефон, почта) */
.footer-contacts{display:flex;flex-direction:column;gap:6px;margin:14px 0 0;font-size:15px}
.footer-contacts a{color:#edf4f7;opacity:.9}.footer-contacts a:hover{opacity:1;text-decoration:underline}

/* Домик в шапке: кадр «включён» + слои комнат из кадра «выключен»; слои плавно гаснут слева направо (окна загораются) */
.brand .house{position:relative;display:block;flex-shrink:0;line-height:0}
.brand .house-base{height:auto;aspect-ratio:1108/671;mix-blend-mode:normal;display:block}
.house-lights{position:absolute;inset:0;pointer-events:none}
.house-lights i{position:absolute;background-size:100% 100%;background-repeat:no-repeat;opacity:.62;transition:opacity var(--house-dur,.9s) ease;transition-delay:calc(var(--i,0)*var(--house-step,.45s))}
.house.on .house-lights i{opacity:0}
.house.static .house-lights i{opacity:0;transition:none}
.house.custom .house-lights{display:none}
.dark .brand .house{background:#f6f4ef;border-radius:7px;box-shadow:0 0 0 3px #f6f4ef}
/* reduced-motion: окна не гасятся принудительно - домик один раз плавно зажигается (.house.soft), см. script.js */
/* Блок собственников: картинка с прозрачным фоном — без белого прямоугольника и шва по краям */
.owner-banner img{background:none;clip-path:none;mix-blend-mode:normal}
.dark .owner-banner img{background:#f5efe3;border-radius:20px;padding:10px;box-sizing:border-box}

/* ===== Фокус: тонкая рамка в цвет сайта вместо системной синей (видна только при работе с клавиатуры) ===== */
:root{--focus:#173e57}
body.dark{--focus:#9fd0ea}
*:focus{outline:none}
dialog:focus,dialog:focus-visible,.modal:focus{outline:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:1.5px solid var(--focus);outline-offset:2px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-radius:inherit}
.search-fields select,.search-fields input{outline-offset:0}

/* ===== Таблетки (районы, фильтры, быстрая строка) ===== */
.pill,.qpill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 15px;font-size:15px;line-height:1.2;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}
.pill small{font-size:12px;color:var(--muted);transition:color .15s}
.pill:hover,.qpill:hover{border-color:var(--ink)}
.pill[aria-pressed="true"],.qpill[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.pill[aria-pressed="true"] small{color:inherit;opacity:.75}
.pill:disabled{opacity:.45;cursor:default}

/* Панель поиска главной: тип · район · комнаты · цена · ещё фильтры · найти */
#searchFields{grid-template-columns:.85fr 1.5fr .85fr .95fr .95fr 1.2fr;align-items:stretch}
#searchFields>label:nth-child(n){grid-column:auto}
#searchFields .more-filters{align-self:center;min-height:58px;margin:5px 0;white-space:nowrap;padding-inline:14px;font-size:15px}
#searchFields [hidden]{display:none}
@media(max-width:1100px){#searchFields{grid-template-columns:1fr 1fr}#searchFields .district-field{grid-column:1/-1;order:-1}#searchFields .search-submit{grid-column:1/-1}}
@media(max-width:480px){#searchFields .more-filters{grid-column:1/-1;min-height:48px}}

/* Список районов: плотный фон, таблетки с числом, без кнопки «Готово» */
.district-panel{background:var(--surface);z-index:60;width:max(100%,430px);padding:14px 16px 16px;border:1px solid var(--line);box-shadow:0 16px 44px #162c4233}
.dark .district-panel{background:#1d2d39}
.dp-head{margin-bottom:10px}
.dp-clear{background:none;border:0;padding:0;font-size:13px;color:var(--muted);text-decoration:underline;cursor:pointer}
.dp-pills{display:flex;flex-wrap:wrap;gap:8px}
.dp-pills .pill{font-size:15px;padding:8px 14px}
@media(max-width:760px){.district-panel{position:fixed;left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:70dvh;overflow:auto;z-index:70}}

/* Окно «Фильтры» */
.modal.fm-modal{width:min(640px,calc(100% - 30px));padding:0;display:flex;flex-direction:column;max-height:88dvh;overflow:hidden}
.modal.fm-modal[open]{display:flex}
.fm{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;height:100%}   /* 04.11.2026: 1 1 auto вместо flex:1 (основа 0): у окна без своей высоты WebKit сжимал содержимое до 0, панель фильтров схлопывалась до 2 px */
.fm-head{display:flex;align-items:baseline;gap:16px;padding:22px 64px 12px 26px;flex:none}
.fm-head h2{margin:0;font-size:26px}
.fm-reset{background:none;border:0;padding:0;color:var(--muted);font-size:14px;text-decoration:underline;cursor:pointer}
.fm-body{overflow:auto;padding:4px 26px 18px;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}
.fm-sec{padding:14px 0;border-top:1px solid var(--line)}
.fm-sec:first-child{border-top:0}
.fm-sec h3{font-size:14px;font-weight:600;color:var(--muted);margin:0 0 10px;letter-spacing:.2px}
.fm-sec{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fm-sec h3{flex:0 0 100%}
.fm-range{display:flex;align-items:center;gap:10px;flex:0 0 100%;min-width:0}
.fm-range span{color:var(--muted)}
.fm-pills{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 100%;margin-top:4px}
.fm-num{flex:1;min-width:0;width:60px;border:1px solid var(--line);background:var(--soft);border-radius:12px;padding:11px 14px;font-size:16px;color:var(--ink)}   /* width гасит внутренний размер input (size=20), иначе пара «от–до» распирала окно за край экрана (п. 4 мобильного задания) */
.fm-foot{flex:none;padding:14px 26px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}
.fm-apply{width:100%}
.fm-apply:disabled{background:var(--soft);color:var(--muted);cursor:default;box-shadow:none}
.modal.fm-modal>.modal-close{top:14px;right:14px;z-index:3}
@media(max-width:760px){.modal.fm-modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0}.fm-head{padding:18px 60px 10px 18px}.fm-body{padding:4px 18px 14px}.fm-foot{padding-inline:18px}}

/* Быстрая строка каталога: одна строка, листается вбок */
.catalog-toolbar{flex-wrap:wrap}
.catalog-chips{flex:1 1 0;min-width:0;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 2px}
.catalog-chips::-webkit-scrollbar{display:none}
.catalog-chips .qpill{flex:none;padding:8px 14px;font-size:14px}
.q-sep{flex:none;width:1px;height:22px;background:var(--line);align-self:center;margin:0 2px}
.catalog-toolbar .outline-button{flex:none}
.sort-label{flex:none}
@media(max-width:760px){.catalog-chips{order:3;flex:1 0 100%}}
.clear-link{background:none!important;border:0;padding:0!important;color:var(--muted)!important;font-size:13px;text-decoration:underline;cursor:pointer}
@media(prefers-reduced-motion:reduce){.pill,.qpill{transition:none}}
.modal.fm-modal #modalContent{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}

/* ===== Экран «Карта» (пункт меню): карта на весь экран, переключатель сделки, легенда ===== */
#map .bigmap-wrap{display:flex;flex-direction:column;height:calc(100dvh - 90px)}
.bigmap-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px clamp(16px,3vw,28px);border-bottom:1px solid var(--line);background:var(--surface)}
.bigmap-deal button{padding:8px 20px;min-width:0;font-size:15px}
.bigmap-stage{flex:1;min-height:0;position:relative}
.bigmap{height:100%!important;width:100%}
.bigmap-legend{position:absolute;z-index:3;right:12px;bottom:28px;margin:0;display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink);background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line);border-radius:999px;padding:5px 12px;pointer-events:none}
.lg-dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.lg-rent{background:#ffffff;border:1.5px solid #8795a3}
.lg-sale{background:#173e57;border:1.5px solid #173e57}
.dark .lg-rent{background:#1d2d39;border-color:#7a93a5}
.dark .lg-sale{background:#e8eef3;border-color:#e8eef3}
.bigmap-notice{position:absolute;z-index:4;top:14px;left:14px;right:60px}
@media(max-width:1100px){#map .bigmap-wrap{height:calc(100dvh - 76px)}}
@media(max-width:760px){.bigmap-head{padding:8px 12px}.bigmap-deal button{padding:7px 14px;font-size:14px}}
@media(max-width:480px){#map .bigmap-wrap{height:calc(100dvh - 70px - 64px - env(safe-area-inset-bottom))}}

/* Домик в шапке: времена анимации света — менять здесь (старт, шаг между комнатами, длительность каждой);
   размер крупнее прежнего логотипа (на 390 px высота рисунка ≈ 54 px, шапку не растит) */
:root{--house-start:.8s;--house-step:.45s;--house-dur:.9s}
.brand .house-base{width:calc(109px*var(--ke-logo,1))}
@media(max-width:1300px){.brand .house-base{width:calc(90px*var(--ke-logo,1))}}
@media(max-width:1100px){.brand .house-base{width:calc(106px*var(--ke-logo,1))}}
@media(max-width:760px){.brand .house-base{width:calc(94px*var(--ke-logo,1))}}
@media(max-width:480px){.brand .house-base{width:calc(90px*var(--ke-logo,1))}}

/* Полноэкранные карты: подвал не должен выглядывать (тёмная полоска под картой на телефоне) */
body.map-screen .footer{display:none}
@media(max-width:760px){body.map-open .footer{display:none}}
/* Шапка экрана «Карта» на телефоне: счётчик в одну строку, подпись «Батуми» скрыта на узких экранах */
.bigmap-head .map-title{white-space:nowrap}
.bigmap-head .map-title small{white-space:nowrap;display:inline}
@media(max-width:600px){.bigmap-head .map-title{font-size:12px}.bigmap-head .map-title .icon{display:none}}
@media(max-width:480px){.bigmap-head .map-title{display:flex;flex-direction:column;align-items:flex-end;line-height:1.3}}

/* Живой баннер главной: прежняя обложка как была; видео лежит поверх ТОЛЬКО на том участке обложки, который снят в ролике
   (числа — site-src/hero_match.py). .hero-canvas повторяет геометрию фона (cover, center bottom) через JS (heroLayout),
   видео внутри задано в процентах канваса, края растушёваны маской — стык с неподвижной частью не читается. */
.hero-canvas{position:absolute;bottom:0;left:0;pointer-events:none}
.hero-video{position:absolute;left:13.5%;top:10%;width:64%;height:90%;object-fit:fill;opacity:0;transition:opacity .8s ease;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 94%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 94%,transparent);
  mask-composite:intersect}
.hero-video.on{opacity:1}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}

/* Логотип: надпись по вертикальному центру рисунка дома (центр «крыша—земля» на 3,4 % ниже середины картинки — site-src/hero_match.py
   и расчёт по альфе), зазор ≈ 0,2 высоты домика */
.brand{gap:13px}
.brand>span:not(.house){transform:translateY(4px)}
@media(max-width:760px){.brand{gap:11px}}
@media(max-width:480px){.brand{gap:11px}}


/* ===== Правки по аудиту 12.10.2026 ===== */
/* п. 17: выпадающие списки одинаковы в Chrome и Safari: нативная стрелка убрана, своя — long-hand свойствами,
   чтобы ни один background-shorthand её не ломал; текст не обрезается (padding под стрелку) */
:root{--ke-chev:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23526472' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
body.dark{--ke-chev:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6b6c1' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
select{-webkit-appearance:none;appearance:none;text-overflow:ellipsis}
.search-fields select,.sort-label select,.field select{background-image:var(--ke-chev);background-repeat:no-repeat;background-position:right 3px center;background-size:15px;padding-right:22px}
.sort-label select{border:1px solid var(--line);border-radius:11px;padding:9px 32px 9px 13px;background-color:var(--surface);font-size:14px}
/* п. 18: быстрая строка — затухание у края и стрелка, когда есть скрытые чипы */
.chips-wrap{position:relative;flex:1 1 0;min-width:0;display:flex;align-items:center}
.chips-wrap .catalog-chips{flex:1 1 0}
.catalog-chips.has-more{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 52px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 52px),#0000)}
.chips-more{position:absolute;right:0;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);box-shadow:0 2px 8px #12253d22;display:flex;align-items:center;justify-content:center;padding:0}
.chips-more .icon{width:16px;height:16px}
@media(max-width:760px){.chips-wrap{order:3;flex:1 0 100%}}
/* п. 23: тёмная тема — контрастные иконки шапки, логотип без белой плашки */
.dark .language{background:#2c3f4e;color:#eef3f5}
.dark .icon-button,.dark .favorite-link{background:#2c3f4e;color:#eef3f5}
.dark .brand .house{background:transparent;border-radius:0;box-shadow:none}
.dark .brand .house-base{mix-blend-mode:normal;filter:drop-shadow(0 0 7px #ffffff2e)}
/* п. 24: на широких экранах пункты меню читаются поверх баннера — лёгкий светящийся контур, не плашка */
@media(min-width:1500px){.home-view .desktop-nav .nav-link{text-shadow:0 0 6px var(--bg),0 0 14px var(--bg),0 1px 22px var(--bg)}}
/* п. 34: заготовки карточек и карточки объекта вместо текста «Загружаю…» */
@keyframes ke-shimmer{0%{background-position:-460px 0}100%{background-position:460px 0}}
.skel-card,.skel-photo,.skel-line{background:linear-gradient(90deg,var(--soft) 25%,var(--surface) 37%,var(--soft) 63%) 0 0/920px 100%;animation:ke-shimmer 1.3s linear infinite;border-radius:14px}
.skel-card{height:330px}
.skel-detail .skel-photo{height:420px;margin:18px 0}
.skel-detail .skel-line{height:22px;margin:12px 0;max-width:520px}
.skel-detail .skel-line.short{max-width:300px}
@media(prefers-reduced-motion:reduce){.skel-card,.skel-photo,.skel-line{animation:none}}
/* страница 404 */
.nf-actions{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 0}
.nf-actions .primary,.nf-actions .outline-button{display:inline-flex}

/* ===== Мобильные правки владельца, 12.10.2026 ===== */
/* п. 1: на телефоне заголовок и подзаголовок плотнее (реальные начертания системных шрифтов: Georgia bold и текстовый semibold) */
@media(max-width:760px){
  .hero h1{font-weight:700;letter-spacing:-.6px}
  .hero-sub{font-weight:400;max-width:356px}
  .hero .eyebrow{font-weight:600}
  .dark .hero .eyebrow{color:#b7c5d2}
}
/* п. 8: поле «Адрес, улица, ЖК или ID» с подсказками */
.addr-field{position:relative;display:flex;align-items:center;gap:9px;margin-top:10px;background:var(--soft);border-radius:13px;padding:10px 14px}
.addr-field .icon{width:17px;height:17px;color:var(--muted);flex:none}
.addr-field input{flex:1;min-width:0;border:0;background:none;font-size:16px;padding:2px 0;outline-offset:4px}
.addr-field input::-webkit-search-cancel-button{-webkit-appearance:none}
.addr-catalog{margin:0 0 12px;max-width:560px}
.addr-sug{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:60;overflow:hidden}
.addr-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;padding:11px 14px;font-size:15px}
.addr-opt+.addr-opt{border-top:1px solid var(--line)}
.addr-opt:hover{background:var(--soft)}
.addr-opt small{flex:none;width:52px;color:var(--muted);font-size:11px;letter-spacing:.4px;text-transform:uppercase}
.addr-opt span{margin-left:auto;color:var(--muted);font-size:13px}
.addr-none{padding:11px 14px;color:var(--muted);font-size:14px}
/* п. 5: окно фильтров компактнее; площадь и этаж в одну строку */
.fm-duo{display:flex;flex-wrap:wrap;gap:10px 14px}
.fm-duo .fm-col{flex:1 1 150px;min-width:0}
.fm-duo .fm-col h3{flex:none;margin-bottom:8px}
.fm-duo .fm-range{flex:1 1 auto}
.fm-duo .fm-flags{flex:0 0 100%;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:480px){
  .fm-head{padding:15px 54px 8px 16px}
  .fm-head h2{font-size:24px}
  .fm-body{padding:2px 14px 12px}
  .fm-sec{padding:9px 0;gap:6px}
  .fm-sec h3{margin:0 0 7px;font-size:13px}
  .fm-body .pill{padding:7px 11px;font-size:14px}
  .fm-num{padding:9px 10px;font-size:16px;border-radius:10px}
  .fm-range{gap:7px}
  .fm-range span{color:var(--muted)}
  .fm-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
}
/* п. 9: кнопка «Карта» в карточке; «Назад» на большой карте */
.detail-actions .fm-label{display:inline}
@media(max-width:600px){.detail-actions .fm-label{display:none}.detail-actions [data-fullmap]{width:42px;padding:10px}}
.big-back{min-height:38px;padding:8px 14px;font-size:14px;margin-right:12px;flex:none}
/* п. 12: контакты в окне заявки — аккуратная сетка, почта и телефон на всю ширину */
.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.contact-options a{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:11px 10px}
.contact-options a .icon{width:16px;height:16px;flex:none}
.contact-options a[href^="tel:"],.contact-options a[href^="mailto:"]{grid-column:1/-1}

/* ===== Мелкие правки мобильного аудита, 12.10.2026 (этап 1) ===== */
/* п. 1: на 360 px ряд кнопок карточки не шире экрана */
@media(max-width:380px){.detail-actions{gap:7px}.detail-actions .outline-button{padding:9px 9px;gap:5px;font-size:13px}}
/* п. 3/7: зоны нажатия не меньше 44×44 - невидимые поля вокруг мелких целей (вид не меняется) */
@media(pointer:coarse){
  .icon-button,.round-button,.gallery-controls button,.breadcrumb,.footer a,.footer button,.text-button,.menu-bottom a{position:relative}   /* .heart и .chips-more не здесь: они position:absolute, ::after от этого не страдает */
  .icon-button::after,.round-button::after,.heart::after,.chips-more::after,.gallery-controls button::after{content:'';position:absolute;inset:-5px}
  .breadcrumb::after,.footer a::after,.footer button::after,.text-button::after,.menu-bottom a::after{content:'';position:absolute;inset:-11px -7px}
}
/* п. 4/5: подписи полей поиска и характеристик на телефоне - 13 px */
@media(max-width:760px){
  .search-fields label{font-size:13px}
  .detail-spec-grid small{font-size:13px}
  .tags span{font-size:13px}
}
/* ===== «Маршрут» и «Наша команда», 12.10.2026 ===== */
.loc-actions{display:flex;gap:10px;flex-wrap:wrap}
.route-note{display:block;margin-top:8px;font-size:13px;color:var(--muted)}
.route-list{display:grid;gap:10px;margin-top:14px}
.route-list .outline-button{justify-content:flex-start}
.team{margin-top:52px;border-top:1px solid var(--line);padding-top:34px}
.team h2{margin-bottom:22px}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:900px){.team-grid{grid-template-columns:1fr;max-width:420px}}
.agent{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;box-shadow:var(--shadow)}
.agent-ava{position:relative;width:132px;height:132px;border-radius:50%;overflow:hidden;margin-bottom:14px;background:linear-gradient(135deg,var(--blue),var(--gold) 130%);display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center}
.agent-ava.has-photo .agent-init{display:none}
.agent-init{font-family:var(--serif);font-size:52px;color:#173755}
.dark .agent-init{color:#eef3f5}
.agent-ava video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease}
.agent-ava video.on{opacity:1}
.agent h3{font-size:22px;margin:0}
.agent-role{margin:0;color:var(--muted);font-size:14px}
.agent-langs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 2px}
.agent-langs span{font-size:12px;padding:4px 10px;border-radius:20px;background:var(--soft);border:1px solid var(--line)}
.agent-about{color:var(--muted);font-size:15px;line-height:1.6;margin:6px 0 14px}
.agent-write{margin-top:auto;font-size:14px}

/* ===== Правки внешнего вида, 12.10.2026 (вечер) ===== */
/* п. 2: читаемость текста на баннере в светлой теме - мягкое светлое свечение под буквами, не заливка */
body:not(.dark) .hero-copy{text-shadow:0 0 1px #fff,0 1px 1px #fff,0 -1px 1px #fff,1px 0 1px #fff,-1px 0 1px #fff,0 2px 10px #ffffffd9,0 0 24px #ffffffb3}
/* п. 5: шапка тёмной темы однородная - мягкая тёмная подложка сверху баннера на всю ширину, край ниже строки-надзаголовка */
.dark .hero-shade{background:linear-gradient(180deg,#111e28f0 0,#111e28a6 92px,#111e2800 190px),linear-gradient(180deg,#fff0 75%,var(--bg) 100%)}
/* п. 4: «Все районы» на телефоне - настоящая нижняя шторка поверх нижней панели */
@media(max-width:760px){
  .search-wrap:has(.district-panel:not([hidden])){z-index:140}   /* контекст z=5 запирал шторку под нижним меню */
  .district-backdrop{display:block;position:fixed;inset:0;background:#0f1822a6;z-index:118}
  .district-panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-height:70dvh;display:flex;flex-direction:column;
    border-radius:22px 22px 0 0;z-index:120;padding:10px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px #0e192666}
  .district-panel::before{content:'';width:44px;height:4px;border-radius:4px;background:var(--line);margin:2px auto 10px;flex:none}
  .district-panel .dp-head{flex:none}
  .district-panel .dp-pills{overflow:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
  .dp-done{display:flex;width:100%;margin-top:10px;flex:none}
}
@media(min-width:761px){.dp-done{display:none}}
/* 04.11.2026: тип и комнаты на главной - панель с несколькими значениями, как район; поле выглядит как прежний список */
.addr-opt small{white-space:nowrap}
.sf-multi{position:relative;cursor:pointer}
.sf-val{display:block;width:100%;height:30px;padding:3px 22px 3px 0;background:transparent var(--ke-chev) no-repeat right 3px center/15px;border:0;font:inherit;font-size:16px;color:var(--ink);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-val span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-multi .district-panel{cursor:default;display:block;white-space:normal}.sf-multi .district-panel[hidden],.sf-multi .district-backdrop[hidden]{display:none}
.sf-multi .dp-head{display:flex}.sf-multi .dp-pills{display:flex}
@media(max-width:760px){.sf-val{height:26px;padding-top:2px;padding-bottom:2px}.sf-multi .district-panel:not([hidden]){display:flex}}
/* 04.11.2026: хлебные крошки страниц районов и подборок */
.ld-crumbs{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;color:var(--muted);font-size:14px;margin-bottom:22px}.ld-crumbs a{color:var(--muted);padding:6px 0}.ld-crumbs a:hover{color:var(--ink)}.ld-crumbs .sep{opacity:.6}.ld-crumbs [aria-current]{color:var(--ink)}
/* п. 7: телефон - «Ещё фильтры» в одной строке с ценой, той же высоты */
@media(max-width:760px){
  .search-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  #searchFields>label.sf-price{grid-column:1}
  #searchFields>button.more-filters{grid-column:2;align-self:stretch;height:auto;min-height:0;margin:0;border-radius:13px;font-size:14px;padding:8px 10px;white-space:normal}
  #searchFields>button.search-submit{grid-column:1/-1}
}
/* п. 8: нижняя панель с «Картой» - 5 пунктов, подписи целиком и на 360 */
.bottom-nav{grid-template-columns:repeat(5,1fr)}
@media(max-width:400px){.bottom-nav a,.bottom-nav button{font-size:10px;letter-spacing:0}.bottom-nav .icon{width:21px;height:21px}}

/* ===== Онлайн-консультант и «Подбор с ИИ» (13.10.2026) ===== */
.ai-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ai-chip{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:8px 14px;font-size:14px;line-height:1.3;text-align:left;transition:background .15s}
.ai-chip:hover{background:var(--blue)}
.chat-fab{position:fixed;right:20px;bottom:20px;width:62px;height:62px;padding:0;border-radius:50%;border:2px solid var(--gold);background:var(--surface);box-shadow:0 10px 30px #12253d33;z-index:70;transition:transform .18s}
.chat-fab:hover{transform:translateY(-2px)}
.chat-ava{display:block;position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:var(--soft) center/cover no-repeat}
.chat-ava b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 22px var(--serif);color:var(--ink)}
.chat-ava.has-photo b{display:none}
.chat-bubble{position:fixed;right:20px;bottom:96px;max-width:min(300px,calc(100vw - 40px));z-index:71;display:flex;align-items:flex-start;gap:2px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px 18px 6px 18px;box-shadow:0 14px 36px #12253d2b;padding:4px 4px 4px 4px;animation:chatPop .3s ease-out}
.chat-bubble-text{background:none;text-align:left;padding:10px 6px 10px 14px;font-size:15px;line-height:1.35}
.chat-bubble-x{background:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted)}
.chat-bubble-x:hover{background:var(--soft)}
.chat-bubble-x .icon{width:16px;height:16px}
.chat-win{position:fixed;right:20px;bottom:20px;width:min(390px,calc(100vw - 32px));height:min(580px,calc(100dvh - 40px));display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 80px #0a263650;z-index:75;overflow:hidden;animation:chatPop .22s ease-out}
.chat-head{display:flex;align-items:center;gap:12px;padding:14px 14px 12px 16px;background:var(--soft);border-bottom:1px solid var(--line)}
.chat-head .chat-ava{width:46px;height:46px;flex-shrink:0}
.chat-who{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}
.chat-who strong{font-size:16px}
.chat-who span{font-size:13px;color:var(--muted)}
.chat-who small{font-size:12px;color:var(--muted)}
.chat-x{background:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-x:hover{background:var(--surface)}
.chat-log{flex:1;min-height:0;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.chat-msg{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.chat-msg.me{align-items:flex-end}
.chat-msg p{margin:0;max-width:88%;padding:10px 14px;border-radius:16px 16px 16px 6px;background:var(--soft);color:var(--ink);font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.chat-msg.me p{border-radius:16px 16px 6px 16px;background:var(--gold);color:#131B2D}
.chat-quick,.chat-acts{display:flex;flex-wrap:wrap;gap:8px}
.chat-quick button,.chat-act{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border-radius:22px;font-size:14.5px;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:background .15s}
.chat-quick button:hover,.chat-act.tg:hover{background:var(--blue)}
.chat-act.wa{background:var(--gold);border-color:var(--gold);color:#131B2D}
.chat-act.wa:hover{background:#f5c35b}
.chat-msg.typing p{display:flex;gap:5px;padding:14px 16px}
.chat-msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);opacity:.5;animation:chatDot 1s infinite}
.chat-msg.typing i:nth-child(2){animation-delay:.15s}.chat-msg.typing i:nth-child(3){animation-delay:.3s}
.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--surface)}
.chat-form input{flex:1;min-width:0;height:46px;padding:0 16px;border:1px solid var(--line);border-radius:24px;background:var(--bg);font-size:16px}
.chat-send{width:46px;height:46px;border-radius:50%;background:var(--gold);color:#131B2D;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-send:hover{background:#f5c35b}
.chat-open .chat-fab,.chat-open .chat-bubble,.chat-off .chat-fab,.chat-off .chat-bubble,.locked .chat-fab,.locked .chat-bubble{display:none}
.chat-off .chat-win{display:none!important}
@keyframes chatPop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes chatDot{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.chat-bubble,.chat-win,.chat-msg.typing i{animation:none}.chat-fab{transition:none}}
@media(max-width:480px){
  .chat-fab{right:14px;bottom:calc(72px + env(safe-area-inset-bottom));width:54px;height:54px}
  .chat-bubble{right:14px;bottom:calc(72px + 54px + 10px + env(safe-area-inset-bottom))}
  .chat-on-detail .chat-fab{bottom:calc(66px + 64px + env(safe-area-inset-bottom))}
  .chat-on-detail .chat-bubble{bottom:calc(66px + 64px + 54px + 10px + env(safe-area-inset-bottom))}
  .chat-win{left:0;right:0;bottom:0;width:auto;height:min(84dvh,660px);border-radius:20px 20px 0 0;border-bottom:0}
  .chat-form{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}
@media(min-width:761px){.map-open .chat-fab{bottom:56px}.map-open .chat-bubble{bottom:132px}}
.chat-dodge .chat-fab,.chat-dodge .chat-bubble{opacity:0;pointer-events:none}
.chat-fab,.chat-bubble{transition:opacity .2s,transform .2s}

/* 13.10.2026: рамка фокуса в шапке только у пользователей клавиатуры (body.kbd ставится по Tab, снимается по нажатию мыши/пальца) */
body:not(.kbd) .header a:focus,body:not(.kbd) .header button:focus,body:not(.kbd) .header a:focus-visible,body:not(.kbd) .header button:focus-visible{outline:none}
/* ===== Консультант v2 (13.10.2026): крупнее, на ПК с табличкой ===== */
.chat-fab{width:78px;height:78px}
.chat-pill{display:none}
@media(min-width:1024px){
  .chat-fab{width:120px;height:120px;border-width:3px;right:24px;bottom:24px}
  .chat-pill{position:fixed;right:calc(24px + 120px + 12px);bottom:calc(24px + 60px - 32px);height:64px;z-index:70;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;padding:0 24px;border:1px solid var(--line);border-radius:32px;background:var(--surface);color:var(--ink);box-shadow:0 10px 30px #12253d26;text-align:left;transition:opacity .2s,transform .2s,background .15s}
  .chat-pill:hover{background:var(--blue)}
  .chat-pill strong{font-size:17px;line-height:1.2}
  .chat-pill span{font-size:14px;line-height:1.2;color:var(--muted)}
  .chat-bubble{right:24px;bottom:calc(24px + 120px + 12px)}
  .map-open .chat-fab{bottom:60px}
  .map-open .chat-pill{bottom:calc(60px + 60px - 32px)}
  .map-open .chat-bubble{bottom:calc(60px + 120px + 12px)}
  .chat-win{right:24px;bottom:24px}
}
.chat-open .chat-pill,.chat-off .chat-pill,.locked .chat-pill{display:none}
.chat-dodge .chat-pill{opacity:0;pointer-events:none}
@media(max-width:480px){
  .chat-fab{width:78px;height:78px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom))}
  .chat-bubble{right:12px;bottom:calc(72px + 78px + 10px + env(safe-area-inset-bottom))}
  .chat-on-detail .chat-fab{bottom:calc(66px + 64px + env(safe-area-inset-bottom))}
  .chat-on-detail .chat-bubble{bottom:calc(66px + 64px + 78px + 10px + env(safe-area-inset-bottom))}
}
@media(min-width:481px) and (max-width:1023px){
  .chat-bubble{right:20px;bottom:calc(20px + 78px + 10px)}
}

/* 13.10.2026 (3): до 1023 px кнопка консультанта слева внизу (сердечки карточек справа), пузырь над ней, прокруткой не скрывается */
@media(max-width:1023px){
  .chat-fab{left:12px;right:auto}
  .chat-bubble{left:12px;right:auto;border-radius:18px 18px 18px 6px}
}
@media(min-width:481px) and (max-width:1023px){
  .chat-fab{left:20px}
  .chat-bubble{left:20px}
}

/* ===== 13.10.2026: молочный фон на всех ширинах и лёгкая дымка баннера на телефоне ===== */
/* фон светлой темы - молочный #f4efe6 (решение 12.10; раньше в :root оставался холодно-белый #fafbfc). Шапка внутренних страниц и нижняя
   панель - в тон фону. */
body:not(.dark):not(.home-view) .header{background:var(--bg)}
body:not(.dark) .bottom-nav{background:var(--bg)}
/* телефон: белая дымка поверх баннера была почти сплошной до 57 % высоты (город едва проступал). Теперь лёгкая, как слева на ПК:
   читаемость заголовка держит световое свечение у самих букв, а не заливка картинки. */
@media(max-width:760px){
  .hero-shade:before{background:linear-gradient(180deg,#ffffff4d 0%,#ffffff26 38%,#fff0 60%);mask-image:none}
  body:not(.dark) .hero-copy{text-shadow:0 0 1px #fff,0 1px 2px #fff,0 -1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff,0 0 10px #ffffffe6,0 0 22px #ffffffcc,0 0 40px #ffffff99}
  .dark .hero-shade:before{background:linear-gradient(180deg,#111e2873 0%,#111e2840 45%,#111e2800 70%)}
  .dark .hero-copy{text-shadow:0 1px 2px #0b1620d9,0 0 14px #0b1620cc,0 0 30px #0b162099}
}
@media(max-width:480px){
  .hero-shade:before{background:linear-gradient(180deg,#ffffff4d 0%,#ffffff26 38%,#fff0 60%)}
  .dark .hero-shade:before{background:linear-gradient(180deg,#111e2873 0%,#111e2840 45%,#111e2800 70%)}
}

/* 13.10.2026: домик при «Уменьшить движение» - один плавный переход без бега по комнатам и мигания */
.house.soft .house-lights i{transition-property:opacity!important;transition-duration:var(--house-dur,.9s)!important;transition-timing-function:ease!important}   /* перебивает общее transition:none при reduced-motion: плавное по-комнатное включение, не мигание; задержки по комнатам ставит script.js (inline important) */

/* ===== 13.10.2026 (вечер): главный экран на телефоне ===== */
/* шапка до 1023 px - отдельная полоса цвета страницы (не прозрачная поверх баннера), ниже неё плавный переход 56 px */
@media(max-width:1023px){
  .home-view .header{margin-bottom:0;background:var(--bg);border-bottom:0}
  .home-view .hero::before{content:'';position:absolute;left:0;right:0;top:0;height:56px;z-index:-1;pointer-events:none;
    background:linear-gradient(to bottom,var(--bg),rgba(249,244,237,0))}
  .dark .home-view .hero::before{background:linear-gradient(to bottom,var(--bg),rgba(17,30,40,0))}
  .home-view .hero-copy{padding-top:40px}
}
/* телефон: баннер «отдалён» - в кадре ~64 % ширины картинки (рисунок слева и город с башнями справа), башни справа и не под
   текстом; блок картинки прижат к низу, верх картинки растворяется в цвет страницы градиентом (не маской: маска ломает видео в Safari iOS) */
@media(max-width:760px){
  .hero{height:calc(62.5vw*var(--ke-hero-h,1) + 126px);background:var(--bg)}
  .hero-art{top:auto;height:62.5vw;background-size:cover;background-position:37.5% bottom}
  .hero-art::after{content:'';position:absolute;left:0;right:0;top:0;height:64px;z-index:2;pointer-events:none;
    background:linear-gradient(to bottom,var(--bg),rgba(249,244,237,0))}
  .dark .hero-art::after{background:linear-gradient(to bottom,var(--bg),rgba(17,30,40,0))}
  .home-view .hero-copy{padding-top:30px}
  .hero h1{max-width:min(360px,74%)}
  .hero-sub{max-width:min(360px,64%)}
  /* читаемость: без белого свечения у букв; лёгкая молочная дымка только слева сверху, мягкие края (втрое слабее прежней) */
  body:not(.dark) .hero-copy{text-shadow:none}
  .hero-shade:before{background:radial-gradient(130% 92% at 0% 10%,rgba(249,244,237,.36) 0%,rgba(249,244,237,.24) 42%,rgba(249,244,237,0) 80%);mask-image:none}
  /* видео на телефоне - сам <video> (без холста и маски), ровно по окну картинки 13,5-77,5 % */
  .hero-art>.hero-video.phone{display:block;position:absolute;left:0;top:10%;width:100%;height:90%;object-fit:fill;z-index:1;
    -webkit-mask-image:none;mask-image:none}   /* display:block - поверх общего .hero-video{display:none} для reduced-motion: на телефоне баннер живой */
}

/* ===== 13.10.2026 (поздний вечер): главный экран до 1023 px перекомпонован сверху вниз: шапка, текст на молочном фоне, баннер, панель ===== */
@media(max-width:1023px){
  .home-view .hero{height:auto;display:flex;flex-direction:column;background:var(--bg)}
  .home-view .hero-copy{order:1;padding-top:18px;padding-bottom:0;position:relative}
  .home-view .hero .eyebrow{margin-bottom:8px}
  .home-view .hero h1{font-size:calc(31px*var(--ke-hero-t,1)*var(--ke-hero-k,1));line-height:1.06;letter-spacing:-.6px;max-width:none;margin-bottom:8px}
  .home-view .hero-sub{max-width:none;margin:0;height:1.45em;overflow:hidden;white-space:nowrap;font-size:clamp(14px,4.1vw,16px);line-height:1.45}   /* на телефоне только первая фраза, вторая строка скрыта */
  .home-view .hero-copy,.dark .home-view .hero-copy{text-shadow:none}
  .hero-shade:before,.dark .hero-shade:before{display:none}          /* текст не лежит на картинке - дымка не нужна */
  .home-view .hero-art{order:2;position:relative;inset:auto;width:100%;height:min(84.6vw,420px);margin-top:-14px;
    background-size:cover;background-position:50% bottom}
  .home-view .hero-art::after{height:92px;background:linear-gradient(to bottom,var(--bg) 0%,rgba(249,244,237,.86) 30%,rgba(249,244,237,.38) 62%,rgba(249,244,237,0) 100%)}
  .dark .hero .hero-art::after{background:linear-gradient(to bottom,var(--bg) 0%,rgba(17,30,40,.86) 30%,rgba(17,30,40,.38) 62%,rgba(17,30,40,0) 100%)}
  .search-wrap{margin-top:-40px}
}
@media(max-width:760px){
  /* в кадре ~47 % ширины картинки (25-72 %): остаток рисунка слева, цветной город, башни крупно справа */
  .home-view .hero-art{height:84.6vw;background-position:47.2% bottom}
  .hero-art>.hero-video.phone{left:-24.47%;width:136.17%;top:10%;height:90%}   /* окно видео 13,5-77,5 % картинки в координатах кадра */
}

/* ===== 13.10.2026 (баннер: настройки владельца и новые стартовые значения телефона) =====
   Переменные --kh-* ставит script.js (KE_HERO) из content.json, раздел hero; без правок действуют значения по умолчанию. */
@media(max-width:1023px){
  /* телефон: баннер отдалён (видна почти вся картинка по ширине), заходит под текст на 40 px, первый экран ниже по высоте */
  .home-view .hero-art{height:var(--kh-h,min(44vw,300px));margin-top:calc(-1px*var(--kh-ov,40));background-size:cover;background-position:50% bottom}
  .home-view .hero-art::after{height:min(78px,60%);background:linear-gradient(to bottom,var(--bg) 0%,rgba(249,244,237,.82) 32%,rgba(249,244,237,.34) 64%,rgba(249,244,237,0) 100%)}
  .dark .hero .hero-art::after{background:linear-gradient(to bottom,var(--bg) 0%,rgba(17,30,40,.82) 32%,rgba(17,30,40,.34) 64%,rgba(17,30,40,0) 100%)}
  /* дымка под текстом: мягкое пятно слева там, где нижние строки текста заходят на небо; сила - --kh-ha (владелец: 0-100 %) */
  .hero-shade:before,.dark .hero-shade:before{display:block;content:'';position:absolute;inset:auto;left:0;right:auto;width:92%;height:190px;top:auto;
    bottom:calc(var(--kh-arth,172px) - 1px*var(--kh-ov,40) - 70px);mask-image:none;-webkit-mask-image:none;
    background:radial-gradient(100% 100% at 0% 50%,rgba(249,244,237,var(--kh-ha,.18)) 0%,rgba(249,244,237,calc(var(--kh-ha,.18)*.5)) 55%,rgba(249,244,237,0) 100%)}
  .dark .hero-shade:before{background:radial-gradient(100% 100% at 0% 50%,rgba(17,30,40,var(--kh-ha,.18)) 0%,rgba(17,30,40,calc(var(--kh-ha,.18)*.5)) 55%,rgba(17,30,40,0) 100%)}
  html.kh-panel .search-wrap{margin-top:calc(-1px*var(--kh-panel))}
}
@media(max-width:760px){
  /* окно видео: край размывается слоем той же картинки поверх (маска на обычном div, не на <video>); позиции px ставит KE_HERO */
  .hero-art::before{content:'';position:absolute;inset:0;background:inherit;z-index:2;pointer-events:none;
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 var(--vx0,13.5%),transparent calc(var(--vx0,13.5%) + var(--vfx,6%)),transparent calc(var(--vx1,77.5%) - var(--vfx,6%)),#000 var(--vx1,77.5%),#000 100%),
      linear-gradient(to bottom,#000 0,#000 var(--vy0,10%),transparent calc(var(--vy0,10%) + var(--vfy,6%)),transparent 100%);
    mask-image:linear-gradient(to right,#000 0,#000 var(--vx0,13.5%),transparent calc(var(--vx0,13.5%) + var(--vfx,6%)),transparent calc(var(--vx1,77.5%) - var(--vfx,6%)),#000 var(--vx1,77.5%),#000 100%),
      linear-gradient(to bottom,#000 0,#000 var(--vy0,10%),transparent calc(var(--vy0,10%) + var(--vfy,6%)),transparent 100%)}
  .hero-art>.hero-video.phone{left:0;top:10%;width:100%;height:90%}   /* до расчёта геометрии */
}
@media(min-width:1024px){
  html.kh-pc-h .hero{height:var(--kh-h)}
  html.kh-panel .search-wrap{margin-top:calc(-1px*var(--kh-panel))}
  .home-view .hero-copy{transform:translateY(calc(1px*var(--kh-ov,0)))}
  html.kh-haze body:not(.dark) .hero-shade:before{background:linear-gradient(90deg,rgba(249,244,237,var(--kh-ha)) 0%,rgba(249,244,237,calc(var(--kh-ha)*.72)) 32%,rgba(249,244,237,0) 52%)}
  html.kh-haze body.dark .hero-shade:before{background:linear-gradient(90deg,rgba(17,30,40,var(--kh-ha)) 0%,rgba(17,30,40,calc(var(--kh-ha)*.7)) 38%,rgba(17,30,40,0) 58%)}
}

/* ===== 13.10.2026: телефон/планшет до 1023 px - типографика героя и компактная панель поиска (баннер не менялся) ===== */
@media(max-width:1023px){
  .home-view .hero h1{font-size:calc(28px*var(--ke-hero-t,1)*var(--ke-hero-k,1));font-weight:500;line-height:1.1;letter-spacing:-.5px}   /* начертание как на ПК (h1: 500) */
  .home-view .hero-sub{color:var(--muted);font-size:clamp(14px,3.8vw,15px)}
  .home-view .hero .eyebrow{font-size:12px}
  /* панель поиска компактнее: поля ~54 px, меньше отступы; шрифт в полях ввода остаётся 16 px (иначе iOS увеличивает страницу) */
  .search-panel{padding:10px}
  .search-top{gap:7px;margin-bottom:8px}
  .segments button{padding:6px 9px}
  .mode button{padding:6px 14px}
  .search-fields{gap:6px}
  #searchFields>label{padding-top:7px;padding-bottom:6px}
  #searchFields>.district-field{padding-top:5px;padding-bottom:4px}
  #searchFields>.district-field{padding-left:14px;padding-right:14px;gap:12px}
  #districtBtn{min-height:0}
  #searchFields select,#searchFields input{height:26px;padding-top:2px;padding-bottom:2px}
  #searchFields>label{font-size:12px;line-height:1.25}
  #searchFields>.search-submit{min-height:46px;padding-top:11px;padding-bottom:11px}
  .addr-field{padding:8px 14px}
}
@media(max-width:480px){
  .home-view .hero .eyebrow{font-size:10px;letter-spacing:2.4px}
}

/* ===== 13.10.2026: фото районов на плитках; крестики окон; форма заявки на телефоне ===== */
.district .district-pic{position:absolute;inset:0;z-index:-2;display:block}
.district .district-pic img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .5s}
.district.has-photo:before{display:none}
.district.has-photo:after{background:linear-gradient(transparent 38%,#0d2937d6)}
.district:hover .district-pic img{transform:scale(1.05)}
.district.ke-img .district-pic,.district.ke-noimg .district-pic{display:none}
/* крестик всех окон: 32 px, тонкая линия, светлая подложка, в правом верхнем углу; область нажатия 44 px за счёт ::after */
.modal .modal-close{position:absolute;top:12px;right:12px;left:auto;width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;z-index:5;padding:0;border:0}
.modal .modal-close .icon{width:16px;height:16px;stroke-width:1.5}
.modal .modal-close::after{content:'';position:absolute;inset:-6px}
.modal .modal-close:hover{background:var(--line)}
.modal.lightbox-modal .modal-close{background:#131B2D80;color:#fff;top:14px;right:14px}
.chat-x{width:32px;height:32px;background:var(--soft)}
.chat-x .icon{width:16px;height:16px;stroke-width:1.5}
.chat-bubble-x .icon{stroke-width:1.5}
/* форма заявки: на телефоне поля друг под другом, окно прокручивается внутри и учитывает нижнюю панель Safari, галочка с областью 44 px */
.modal{max-height:min(90vh,calc(100dvh - 24px - env(safe-area-inset-bottom)));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.modal.fm-modal{max-height:min(88vh,88dvh)}
.checkbox{align-items:center;font-size:14px;line-height:1.4;min-height:44px}
.checkbox input{width:24px;height:24px;flex:none;margin:10px 10px 10px 0}
@media(max-width:560px){
  .modal .field-row{grid-template-columns:1fr;gap:0}
  .modal{padding-bottom:calc(26px + env(safe-area-inset-bottom))}
  .modal.fm-modal{padding-bottom:0}
}

/* плитка «Аэропорт»: надпись WHERE на фото уходит из-под названия (кадр сдвинут к левому краю) */
.district[data-img="img.district.airport"] .district-pic img{object-position:8% 50%}

/* Телефон и планшет до 1023 px: карточки каталога в одну колонку, липкая панель, короткий пузырь консультанта. ПК без изменений */
.prop-sea,.prop-meta,.cb-short{display:none}
@media(max-width:1023px){
  .property-grid.catalog-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .catalog-grid .property-link{display:block;min-height:0}
  .property-grid.catalog-grid .photo,.with-map .property-grid.catalog-grid .photo{aspect-ratio:4/3;height:auto;min-height:0}
  .catalog-grid .prop-info{padding:12px 14px 13px}
  .catalog-grid .prop-price{font-size:24px;line-height:1.3;color:var(--ink);white-space:nowrap}
  .catalog-grid .prop-specs{font-size:15px;color:var(--ink);margin:4px 0 0;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:26px}
  .catalog-grid .prop-address{font-size:14px;color:var(--muted);margin:3px 0 0;padding-right:26px;line-height:1.4}
  .dark .catalog-grid .prop-address{color:var(--muted)}
  .catalog-grid .pa-city{display:none}
  .catalog-grid .prop-sea{display:block;font-size:13px;color:var(--muted);margin:2px 0 0;line-height:1.4;white-space:nowrap}
  .catalog-grid .prop-extra{display:none}
  .catalog-grid .prop-meta{display:block;font-size:11.5px;color:var(--muted);opacity:.8;margin:7px 0 0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:26px}
  .catalog-grid .prop-info>.icon{bottom:13px;right:12px;width:18px}
  .catalog-toolbar{display:contents}
  .catalog-toolbar .ct-row{margin-top:14px}
  .catalog-toolbar .ct-row{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:30;background:var(--bg);padding:calc(10px + env(safe-area-inset-top)) 0 10px;border-bottom:1px solid var(--line)}
  .catalog-toolbar .ct-row .sort-label{flex:1 1 auto;min-width:0}
  .catalog-toolbar .ct-row select{width:100%}
  .catalog-toolbar .chips-wrap{flex:none;margin:10px 0}
  .chat-bubble{width:fit-content;max-width:calc(100vw - 28px);border-radius:16px 16px 6px 16px}
  .chat-bubble-text{padding:8px 4px 8px 12px;font-size:14.5px;line-height:1.3;white-space:nowrap}
  .chat-bubble .cb-full{display:none}
  .chat-bubble .cb-short{display:inline}
  .chat-bubble-x{width:28px;height:28px}
}

@media(min-width:1024px){.ct-row{display:contents}.catalog-toolbar .chips-wrap{order:1}.catalog-toolbar .sort-label{order:2}}
@media(max-width:1023px){
  .chat-fab,.chat-bubble{transition:transform .3s ease,opacity .3s ease}
  .chat-away .chat-fab,.chat-away .chat-bubble{transform:translateX(calc(-100% - 28px));opacity:0;pointer-events:none}
}

/* Заявка с сайта (форма для всех мест): обязателен только контакт, чипы без набора текста, кнопка всегда на виду */
.lead-form .lead-object{margin:0 0 10px;font-size:14px;color:var(--muted)}
.lead-form .lead-object strong{color:var(--ink)}
.lead-form .field{margin-bottom:12px}
.lead-form .opt{font-size:12px;color:var(--muted);opacity:.8}
.lead-form .chip-group{border:0;padding:0;margin:0 0 12px;min-width:0}
.lead-form .chip-group legend{font-size:13px;color:var(--muted);padding:0 0 6px}
.lead-form .chips{display:flex;flex-wrap:wrap;gap:8px}
.lead-form .chips .qpill{padding:8px 13px;font-size:14px;min-height:40px}
.lead-form .lead-date,.lead-form .lead-pets-other{display:block;width:100%;margin-top:8px;border:1px solid var(--line);padding:11px 12px;border-radius:10px;background:var(--soft);color:var(--ink);font-size:16px}
.lead-form .lead-date[hidden],.lead-form .lead-pets-other[hidden]{display:none}
.lead-form .lead-comment{margin:0 0 10px}
.lead-form .lead-comment summary{cursor:pointer;color:var(--muted);font-size:14px;padding:6px 0;list-style:none}
.lead-form .lead-comment summary::before{content:'+ '}
.lead-form .lead-comment[open] summary::before{content:'- '}
.lead-form .lead-comment textarea{display:block;width:100%;min-height:76px;border:1px solid var(--line);padding:11px 12px;border-radius:10px;background:var(--soft);color:var(--ink);font-size:16px;resize:vertical}
.lead-form .lead-trap{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
.lead-form .lead-hint{color:#b3412e;font-size:13px;margin:-6px 0 10px}
.dark .lead-form .lead-hint{color:#ff9d8a}
.lead-form .lead-error{margin:0 0 10px;padding:12px 14px;border:1px solid #d9a79d;background:#fbeeea;color:#7d2a1c;border-radius:12px;font-size:14px}
.dark .lead-form .lead-error{background:#3a2420;border-color:#7d4a40;color:#ffd6cd}
.lead-form .lead-foot{position:sticky;bottom:0;z-index:2;background:var(--surface);padding:10px 0 calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);margin-top:6px}
.lead-form .lead-foot .checkbox{margin:0 0 10px;min-height:0;font-size:12.5px;line-height:1.35;align-items:flex-start}
.lead-form .lead-foot .checkbox input{width:20px;height:20px;margin:1px 8px 0 0}
.lead-wa{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;text-decoration:none;text-align:center}
.lead-wa .icon{width:18px;height:18px}
.lead-error .lead-wa{margin-top:10px}
.lead-done h2{margin:10px 0 6px}
@media(max-width:760px){
  .modal.lead-modal{width:100%;max-width:100%;margin:auto 0 0;border-radius:22px 22px 0 0;max-height:94dvh;padding:18px 16px 0}
  .modal.lead-modal h2{font-size:22px;margin:2px 40px 6px 0}
  .modal.lead-modal .lead-sub{margin:0 0 10px;font-size:14px}
  .modal.lead-modal .contact-options{margin-bottom:16px}
}

/* ИИ-ассистент в окне консультанта (15.10.2026): кнопка передачи, карточки объектов, форма контакта. Размер окна прежний. */
.chat-handoff-bar{padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.chat-handoff{width:100%;min-height:38px;border-radius:19px;border:1px solid var(--gold);background:var(--gold);color:#131B2D;font-size:14px;font-weight:600}
.chat-handoff:hover{background:#f5c35b}
.chat-cards{display:flex;flex-direction:column;gap:8px;width:100%;max-width:100%}
.chat-card{display:flex;gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none}
.chat-card:hover{border-color:var(--ink)}
.chat-card img{width:72px;height:54px;object-fit:cover;border-radius:10px;flex:none;background:var(--soft)}
.chat-card-txt{display:flex;flex-direction:column;min-width:0}
.chat-card-txt strong{font-size:15px}
.chat-card-txt small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-ho{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.chat-ho-title{margin:0;font-size:14.5px;font-weight:600}
.chat-ho input[name=contact],.chat-ho textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);color:var(--ink);font-size:16px}
.chat-ho details summary{cursor:pointer;color:var(--muted);font-size:13.5px}
.chat-ho details textarea{margin-top:6px;resize:vertical}
.chat-ho-consent{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--muted)}
.chat-ho-consent input{width:18px;height:18px;margin:1px 0 0;flex:none}
.chat-ho-consent a{text-decoration:underline}
.chat-ho-err{margin:0;font-size:13px;color:#b3412e}
.dark .chat-ho-err{color:#ff9d8a}
.chat-ho-err a{text-decoration:underline}
.chat-ho-row{display:flex;gap:8px;justify-content:flex-end}
.chat-ho-cancel{min-height:40px;padding:0 14px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.chat-ho-send{min-height:40px;padding:0 18px;border-radius:20px;border:1px solid var(--gold);background:var(--gold);color:#131B2D;font-weight:600}

/* Переключатель языка RU / EN (16.10.2026) */
.lang-switch{display:inline-flex;gap:2px;padding:4px!important}
.lang-switch a{padding:6px 9px;border-radius:20px;line-height:1;color:inherit;text-decoration:none;opacity:.6}
.lang-switch a[aria-current="true"]{opacity:1;background:#131B2D14;font-weight:600}
.dark .lang-switch a[aria-current="true"]{background:#ffffff1f}
@media(max-width:480px){.lang-switch a{padding:5px 6px}}

/* Плашка «This page is available in English» (16.10.2026): в потоке над шапкой, ничего не перекрывает */
.lang-offer{position:relative;z-index:45;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 12px;padding:8px 44px 8px 16px;background:var(--ink);color:var(--bg);font-size:14px;line-height:1.3;text-align:center}
.lang-offer-go{min-height:32px;padding:0 14px;border-radius:16px;border:0;background:var(--gold);color:#131B2D;font-weight:600;font-size:13.5px}
.lang-offer-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:inherit;font-size:20px;line-height:1}
.lang-offer-x:hover{background:#ffffff22}
.dark .lang-offer{background:#e9eef2;color:#131B2D}
.dark .lang-offer-x:hover{background:#00000014}

/* ===== 16.10.2026: поиск одной строкой, меню, связь, «Поделиться», быстрые фильтры ===== */
/* поиск: строка сразу под вкладками, во всю ширину; в режиме ИИ справа «Подобрать» */
.search-panel .search-line{margin:0 0 12px;padding:6px 6px 6px 16px;min-height:52px;background:var(--soft)}
.search-panel .search-line input{font-size:16px;text-overflow:ellipsis}
.search-panel .search-line input:focus-visible{outline:none}
.search-panel .search-line:focus-within{box-shadow:0 0 0 1.5px var(--focus)}
.search-panel .ai-go{flex:none;min-height:40px;padding:0 18px;font-size:15px;white-space:nowrap}
.search-panel .ai-go[hidden]{display:none}
.search-panel .ai-panel{padding:0 2px 4px}
.search-panel .ai-examples{margin-top:0}
/* выбранный режим - тёмная заливка, как у «Аренда / Покупка» */
.mode button.active{background:#171b1c;color:#fff;box-shadow:none}
.search-top .tg-pick{font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;white-space:nowrap;margin-left:auto}
.search-top{flex-wrap:wrap}
@media(max-width:760px){.search-top .tg-pick{margin-left:0;align-self:center}.search-panel .ai-go{padding:0 12px;font-size:14px}}
@media(max-width:480px){.search-panel .ai-go{width:44px;min-width:44px;padding:0;justify-content:center;font-size:0;gap:0}.search-panel .ai-go .icon{width:20px;height:20px}}
.empty-tg{margin-top:14px}.empty-tg a{color:var(--muted);text-decoration:underline}
/* меню */
.menu-panel{display:flex;flex-direction:column;gap:6px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.menu-panel .menu-top{margin-bottom:12px}
.menu-ai{width:100%;justify-content:center;min-height:48px;margin-bottom:8px;font-size:16px}
.menu-nav{display:flex;flex-direction:column}
.menu-group{margin:16px 0 4px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.menu-panel nav.menu-nav a{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:19px;padding:9px 0 9px 12px;border-bottom:1px solid var(--line);border-left:3px solid transparent}
.menu-panel nav.menu-nav a small{font-size:13px;color:var(--muted);font-weight:400}
.menu-panel nav.menu-nav a.current{border-left-color:var(--gold);font-weight:700}
.menu-contact{margin-top:8px;display:flex;flex-direction:column;gap:10px}
.menu-team{display:flex}
.menu-ava{width:46px;height:46px;border-radius:50%;background:var(--soft) center/cover no-repeat;border:2px solid var(--surface);margin-right:-10px;box-shadow:0 2px 8px #0002}
.menu-reply{margin:0;font-size:13.5px;color:var(--muted)}
.menu-msg{display:flex;gap:8px}
.menu-msg a{flex:1;text-align:center;padding:11px 8px;border-radius:12px;border:1px solid var(--line);font-weight:600;font-size:15px}
.menu-msg .menu-wa{background:var(--gold);border-color:var(--gold);color:#131B2D}
.menu-lead{width:100%;justify-content:center;min-height:44px}
.menu-contact .tg-pick{font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.menu-panel .menu-bottom{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
/* «Как удобнее связаться?» */
.contact-choose{display:flex;flex-direction:column;gap:10px;margin:14px 0 12px}
.cc-btn{display:flex;align-items:center;gap:14px;width:100%;min-height:62px;padding:12px 16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;text-decoration:none}
.cc-btn .icon{width:24px;height:24px;flex:none}
.cc-btn span{display:flex;flex-direction:column;gap:2px}
.cc-btn strong{font-size:16px}.cc-btn small{font-size:13px;color:var(--muted)}
.cc-wa{background:#25d366;border-color:#25d366;color:#fff}.cc-wa small{color:#ffffffd9}
.cc-tg{background:#2aabee;border-color:#2aabee;color:#fff}.cc-tg small{color:#ffffffd9}
.cc-more{font-size:13px;color:var(--muted);margin:4px 0 0}.cc-more a{text-decoration:underline}
/* «Поделиться» */
.share-sub{margin:0 0 14px}
.share-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.share-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12.5px;text-align:center;text-decoration:none}
.share-btn .icon{width:26px;height:26px}
@media(max-width:760px){.modal.share-modal,.modal.contact-modal{width:100%;max-width:100%;margin:auto 0 0;border-radius:22px 22px 0 0;padding:20px 16px calc(18px + env(safe-area-inset-bottom))}.share-grid{grid-template-columns:repeat(4,1fr)}}
/* быстрые фильтры каталога: выпадающие списки */
.qdd-wrap{position:relative;display:inline-flex;flex:none}
.qdd{gap:6px}.qdd .qdd-arrow{font-style:normal;font-size:11px;opacity:.7}
.qpill.qdd.on{background:var(--ink);border-color:var(--ink);color:var(--surface);padding-right:30px}
.qdd-x,.catalog-chips .qdd-x,.catalog-chips .qdd-x:hover{position:absolute;padding:0;display:grid;place-items:center;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:0;background:transparent;color:var(--surface);font-size:16px;line-height:1}
.qdd-panel{position:absolute;z-index:80;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:10px}
.qdd-panel[hidden]{display:none}
.qdd-list{display:flex;flex-direction:column}
.qdd-opt{display:flex;align-items:center;gap:8px;width:100%;padding:10px 10px;border-radius:10px;background:none;color:inherit;text-align:left;font-size:15px}
.qdd-opt:hover{background:var(--soft)}.qdd-opt.on{font-weight:700}
.qdd-opt small{color:var(--muted);font-weight:400}
.qdd-check{width:16px;height:16px;border:1.5px solid var(--muted);border-radius:4px;flex:none}
.qdd-opt.on .qdd-check{background:var(--ink);border-color:var(--ink)}
.qdd-range{display:flex;align-items:flex-end;gap:6px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line);flex-wrap:wrap}
.qdd-range label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);flex:1;min-width:80px}
.qdd-range input{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--soft);color:var(--ink);font-size:16px;width:100%}
.qdd-range .primary{min-height:40px;padding:0 14px;font-size:14px;width:100%}
#chipsMore{display:none!important}
.catalog-chips{scroll-snap-type:x proximity}

.detail-description p{margin:0 0 12px}.detail-description h3{font-size:17px;margin:16px 0 6px}

/* ===== 20.10.2026: фото команды в анкетах и в меню - золотой обод, как у кнопки консультанта (2 px, от 1024 px у крупного - 3 px) ===== */
.agent-ava{border:2px solid var(--gold);background-color:var(--surface)}
.menu-ava{border-color:var(--gold);background-color:var(--surface)}
@media(min-width:1024px){.agent-ava{border-width:3px}}
/* ===== 20.10.2026: переключатель языка - кнопка «глобус + код + стрелка» и список языков ===== */
.lang-dd{position:relative;display:inline-flex}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px 0 11px;border-radius:30px;background:#ffffffcf;color:#131B2D;font-size:15px;font-weight:600;line-height:1}
.lang-btn .icon{width:19px;height:19px}
.lang-btn .icon:last-child{width:15px;height:15px;transition:transform .18s}
.lang-dd.open .lang-btn .icon:last-child{transform:rotate(180deg)}
.lang-btn:hover{background:#fff}
.dark .lang-btn{background:#2c3f4e;color:#eef3f5}
.dark .lang-btn:hover{background:#35495a}
.lang-list{position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:180px;margin:0;padding:6px;list-style:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px #12253d2e}
.lang-list[hidden]{display:none}
.lang-list a{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 12px;border-radius:11px;color:inherit;text-decoration:none;font-size:15px;white-space:nowrap}
.lang-list a:hover,.lang-list a:focus-visible{background:var(--soft);outline:none}
.lang-list a[aria-checked="true"]{font-weight:600}
.lang-check{display:inline-flex;width:18px;flex-shrink:0}
.lang-check .icon{width:18px;height:18px;color:#c9962c}
.dark .lang-check .icon{color:var(--gold)}
.lang-dd-up .lang-list{top:auto;bottom:calc(100% + 8px);right:auto;left:0}
.menu-bottom .lang-btn{background:var(--soft);color:var(--ink)}
@media(max-width:760px){.lang-btn{height:36px;padding:0 9px 0 8px;font-size:14px;gap:4px}.lang-btn .icon{width:17px;height:17px}.lang-btn .icon:last-child{width:13px;height:13px}}
@media(max-width:480px){.lang-btn{height:34px;padding:0 7px;font-size:13px;gap:3px}.lang-btn .icon{width:16px;height:16px}.lang-btn .icon:last-child{width:12px;height:12px}}

/* 20.10.2026: Что рядом - кнопка точек интереса на большой карте (только Mapbox), выключено по умолчанию */
.ke-poi-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px 0 11px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--ink);font:600 13.5px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;box-shadow:0 2px 8px #12253d26;cursor:pointer;white-space:nowrap}
.ke-poi .ke-poi-btn:not(:disabled):hover{background:var(--surface);border-color:var(--ink)}
.ke-poi .ke-poi-btn.on:not(:disabled){background:var(--ink);color:var(--surface);border-color:var(--ink)}
.ke-poi-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:760px){.ke-poi-btn{height:32px;padding:0 11px 0 9px;font-size:13px}}

/* 20.10.2026: картинка героя не грузится, пока главная не показана (каталог, объект, другие разделы) */
html:not(.ke-home) .hero-art{background-image:none!important}
/* 20.10.2026: страница объекта занимает экран сразу - подвал не прыгает вниз, когда карточка дорисовывается (CLS) */
#detail:not([hidden]){min-height:100vh}

/* ===== 21.10.2026, брендбук 1.1: логотип в шапке - logos/logo-light.svg комплекта, встроенный (пути не менялись, добавлены классы
   для «восхода»); тёмная тема - цвета logos/logo-dark.svg. Переключатель - index.html, window.KE_LOGO ('svg' или 'house' -
   прежний карандашный домик). Охранное поле (1/4 высоты домика = 1/6 высоты холста) остаётся в файле: холст --lh,
   отрицательные поля по 1/6 возвращают видимый рисунок на место. Видимый рисунок = 2/3 высоты и 88,7 % ширины холста.
   Никаких overflow:hidden и фиксированных высот у родителей. ===== */
html.logo-svg .brand-old,html.logo-svg .footer-brand-old,html.logo-svg .menu-brand-old{display:none}
html:not(.logo-svg) .brand-logo,html:not(.logo-svg) .footer .footer-grid .footer-logo-link,html:not(.logo-svg) .menu-logo{display:none}
.brand-logo{--lh:calc(80px*var(--ke-logo,1));display:block;flex-shrink:0;height:var(--lh);width:calc(var(--lh)*2.962091);margin:calc(var(--lh)/-6);overflow:visible}
.brand-logo .lg-sun{fill:#E2B640}.brand-logo .lg-kaufman{fill:#131B2D}.brand-logo .lg-estate{fill:#CA971D}
.dark .brand-logo .lg-sun{fill:#E2B640}.dark .brand-logo .lg-kaufman{fill:#FFFFFF}.dark .brand-logo .lg-estate{fill:#E2B640}
@media(max-width:760px){.brand-logo{--lh:calc(63px*var(--ke-logo,1))}
  body:not(.dark) .brand-logo .lg-estate{fill:#131B2D}}      /* телефон, светлая тема: золотое «estate» мелким кеглем читается хуже (снимки BRAND-11) */
@media(max-width:480px){.brand-logo{--lh:calc(57px*var(--ke-logo,1))}}
@media(max-width:340px){.brand-logo{--lh:calc(48px*var(--ke-logo,1))}}
/* «восход»: ядро, затем лучи по кругу от верхнего (~1,5 с), потом «estate»; центр каждого луча - его вершина (центр круга) */
.brand-logo .lg-ray{transform-box:fill-box}
.brand-logo .lg-core{transform-box:fill-box;transform-origin:50% 50%}
html.logo-rise:not(.ke-wait) .brand-logo .lg-core{animation:keRayIn .35s ease-out both}
html.logo-rise:not(.ke-wait) .brand-logo .lg-ray{animation:keRayIn .4s ease-out both;animation-delay:calc(.15s + var(--i)*.09s)}
html.logo-rise:not(.ke-wait) .brand-logo .lg-estate{animation:keFadeIn .45s ease-out both;animation-delay:1.5s}
@keyframes keRayIn{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:none}}
@keyframes keFadeIn{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html.logo-rise .brand-logo *{animation:none!important}}
/* ===== 21.10.2026: правки телефона (до 768 px); ПК не меняется ===== */
@media(max-width:768px){
  /* кнопка меню - круг 40x40, как кнопка темы (была сжата до 32 px и в тёмной теме выглядела обрезанной); правый край - 15 px, как отступ логотипа */
  .header .menu-toggle{width:40px;height:40px;flex-shrink:0}
  .header .menu-toggle .icon{width:26px;height:26px}
  /* «Обычный / Подбор с ИИ» в тёмной теме: фон как у полей поиска, звёздочка золотом */
  .dark .mode{background:var(--soft)}
  .dark #aiMode .icon{color:#F2D489}
  /* подзаголовок в тёмной теме стоит на верхнем крае баннера: край затемнён в цвет страницы, текст светлее (контраст от 4,5:1) */
  .dark .hero .hero-art::after{content:'';position:absolute;left:0;right:0;top:0;height:76px;pointer-events:none;
    background:linear-gradient(rgba(17,30,40,.74) 0,rgba(17,30,40,.74) 44px,rgba(17,30,40,0) 76px)}   /* полупрозрачно: верхушки башен видны */
  .dark .hero .hero-sub{color:#d5dee5}
}

/* ===== 21.10.2026: шрифт заголовков, вариант B - Manrope (свои woff2: кириллица и латиница, font-display: swap).
   500 - главный заголовок и заголовки разделов, 400 - мелкие (окна, блоки страницы объекта, подзаголовки текстовых страниц).
   Межбуквенный интервал обычный. Логотип, основной текст, кнопки и фильтры - без изменений. ===== */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 600;font-display:swap;src:url('assets/fonts/manrope-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 600;font-display:swap;src:url('assets/fonts/manrope-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--display:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
h1,h2,.hero h1,.home-view .hero h1{font-family:var(--display);font-weight:500;letter-spacing:normal}
#modal h2,.detail-section h2,.empty-state h2,.success-panel h2,#info .info-copy h2,#infoContent h2:not(:first-child){font-weight:400}

/* ===== 21.10.2026, брендбук Kaufman Estate 1.1: шрифт и цвета =====
   Manrope везде (текст 400, заголовки 500, кнопки 600), запасной - системный, не Arial. Палитра: тёмно-синий #131B2D (текст),
   молочный #F9F4ED (фон), светлое золото #F2D489 (кнопки, акценты тёмной темы), тёмное золото #CA971D (estate на светлом). */
:root{--serif:var(--display)}
body{font-family:var(--display);font-weight:400}
.primary,.outline-button,.secondary,.fm-apply{font-weight:600}
/* подвал: фон #131B2D, логотип белый одноцветный (logo-white.svg = logo-dark.svg, перекрашенный в #FFFFFF), видимая ширина 213 px;
   холст 240x81, поле 13,5 px со всех сторон - отрицательными полями, не обрезкой */
.footer{background:#131B2D}
.footer-logo-link{display:inline-block;line-height:0}
.footer-logo{display:block;width:240px;height:auto;max-width:none;margin:-13.5px 0 -7.5px -13.5px}
/* меню телефона: логотип вместо надписи, холст 57 px (видимая ширина 149 px) */
.menu-logo{display:block;line-height:0}
.menu-logo img{display:block;height:57px;width:auto;margin:-9.5px}
.menu-logo .ml-dark,.dark .menu-logo .ml-light{display:none}
.dark .menu-logo .ml-dark{display:block}
/* консультант не закрывает подвал: на телефоне и планшете под нижней строкой подвала - место под кнопку консультанта
   (кнопка 78 px над нижним меню); на ПК кнопка справа, рядом с короткой строкой, место не нужно */
@media(max-width:1100px){.footer{padding-bottom:calc(20px + 96px)}}
@media(min-width:769px){.footer-bottom{padding-right:170px}}     /* ПК и планшет: кнопка консультанта (120 px, 24 px от края) не ложится на подпись */
/* контраст текста не ниже 4,5:1 (брендбук 1.1, проверка BRAND-11) */
.telegram-banner p{color:#56697a}
.owner-banner .eyebrow{color:#6f5f3c}
.owner-banner p:not(.eyebrow){color:#675f52}
.bottom-nav .active,.mc-link{color:#1d6a8e}
.dark .bottom-nav .active{color:#F2D489}
body.dark .maplibregl-ctrl.maplibregl-ctrl-attrib,body.dark .maplibregl-ctrl.maplibregl-ctrl-group,body.dark .mapboxgl-ctrl.mapboxgl-ctrl-attrib,body.dark .mapboxgl-ctrl.mapboxgl-ctrl-group{background:#1d2d39}      /* стили карты грузятся позже: селектор сильнее */
.maplibregl-cooperative-gesture-screen{background:rgba(19,27,45,.72)!important}      /* подсказка «⌘ + прокрутка»: белый текст от 4,5:1 */

/* тест водяного знака v5: знак поверх фото (script.js) */
.ke-wm{position:absolute;z-index:1;display:block;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.ke-wm svg{display:block;width:100%;height:100%;overflow:visible}
/* 21.10.2026: стрелки галереи страницы объекта - по середине высоты кадра (все объекты), счётчик - внизу по центру */
.gallery-controls{top:15px;bottom:15px}
.gallery-controls .gallery-counter{position:absolute;left:50%;bottom:0;transform:translateX(-50%)}

/* ===== 21.10.2026: главный заголовок баннера - Cormorant Garamond 600 (Google Fonts, OFL; свои woff2: кириллица и латиница,
   assets/fonts/cormorant/, OFL.txt рядом). Цвет прежний, без золотого акцента. Размер на 15 % меньше прежнего (--ke-hero-k,
   множитель к размеру из режима правки). Подзаголовок, надстрочная строка и остальные заголовки - Manrope. ===== */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/cormorant/cormorant-garamond-600-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/cormorant/cormorant-garamond-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.hero h1,.home-view .hero h1{--ke-hero-k:.85;font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif;font-weight:600;letter-spacing:normal}

/* ===== 21.10.2026: шапка на сплошной плашке (читаемость для людей со слабым зрением, как у крупных порталов) =====
   Плашка #F9F4ED (тёмная тема #131B2D) с тонкой линией снизу - на всех страницах; на главной баннер начинается под шапкой
   (раньше прозрачная шапка лежала на небе баннера), отступ заголовка внутри баннера прежний. Меню - Manrope 600, 17 px,
   #131B2D (тёмная тема - белый), контраст от 15:1; активный пункт - золотая полоска. Кнопки справа - без подложек, с обычной
   рамкой, 44 px. Высота шапки на телефоне прежняя (76 / 70 px). Логотип не менялся. */
html body .header,html body.home-view .header{background:#F9F4ED;border-bottom:1px solid #E3D9C6;margin-bottom:0}
html body.dark .header,html body.dark.home-view .header{background:#131B2D;border-bottom:1px solid #ffffff26}
.header .desktop-nav .nav-link,.home-view .header .desktop-nav .nav-link{font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:normal;color:#131B2D;text-shadow:none}
.dark .header .desktop-nav .nav-link,.dark.home-view .header .desktop-nav .nav-link{color:#FFFFFF}
.header .desktop-nav .nav-link.active{color:#131B2D;border-color:var(--gold)}
.dark .header .desktop-nav .nav-link.active{color:#FFFFFF;border-color:var(--gold)}
@media(max-width:1300px){.header .desktop-nav{gap:16px}}
.header .header-actions .icon-button,.header .header-actions .lang-btn{height:44px;min-width:44px;background:transparent;border:1px solid #131B2D40;color:#131B2D;box-shadow:none}
.header .header-actions .icon-button{width:44px}
.header .header-actions .icon-button:hover,.header .header-actions .lang-btn:hover{background:#131B2D0f}
.dark .header .header-actions .icon-button,.dark .header .header-actions .lang-btn{background:transparent;border-color:#ffffff4d;color:#FFFFFF}
.dark .header .header-actions .icon-button:hover,.dark .header .header-actions .lang-btn:hover{background:#ffffff14}
@media(max-width:760px){.header .header-actions .lang-btn{height:44px}}

/* ===== 21.10.2026: главная на телефоне (до 768 px) - крупнее заголовок, короче поиск, кнопка «Найти» на первом экране.
   ПК не меняется (кроме подсказок в полях - контраст от 4,5:1 на всех ширинах). ===== */
/* подсказки в полях и значок поиска - темнее (было 3,9:1 в светлой теме и 2,5:1 в тёмной) */
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.addr-field .icon,.dark .addr-field .icon{color:var(--muted)}
@media(max-width:768px){
  /* заголовок баннера на 25 % крупнее (23,8 -> 29,75 px на телефоне; 0,85 x 1,25) */
  .hero h1,.home-view .hero h1{--ke-hero-k:1.0625}
  /* поиск: ряды друг под другом, верхний блок не отдельный - «или подберите в Telegram» уходит под кнопку «Найти» */
  #searchForm.search-panel{display:flex;flex-direction:column;gap:6px}
  #searchForm .search-top{display:contents}
  #searchForm .segments{order:1}#searchForm .mode{order:2}#searchForm #addrFieldHome{order:3;margin:0}
  #searchForm #searchFields{order:4}#searchForm #aiPanel{order:5}#searchForm .tg-pick{order:6;align-self:center;margin:2px 0 0}
  /* переключатели 40 px: выбранный - #131B2D, невыбранный - светлый */
  #searchForm .segments,#searchForm .mode{display:flex;height:40px;padding:3px;gap:3px;border-radius:20px;background:var(--soft);align-self:stretch;margin:0}
  #searchForm .segments button,#searchForm .mode button{flex:1;min-width:0;height:34px;padding:0 8px;border-radius:17px;background:transparent;color:var(--ink);font-size:14px;font-weight:600;justify-content:center;box-shadow:none}
  #searchForm .segments button:not([hidden]){display:flex;align-items:center}
  #searchForm .segments button.active,#searchForm .mode button.active{background:#131B2D;color:#FFFFFF}
  .dark #searchForm .segments button.active,.dark #searchForm .mode button.active{background:#F9F4ED;color:#131B2D}
  /* «Цена до» - в «Ещё фильтры»; «Ещё фильтры» - в одном ряду с «Найти» */
  #searchFields .sf-price{display:none}
  #searchFields{grid-template-columns:repeat(6,minmax(0,1fr))}
  #searchFields>.district-field{grid-column:1/-1}
  #searchFields>label.sf-type,#searchFields>#roomsField{grid-column:span 3}
  #searchFields>button.search-submit{grid-column:1/span 4;order:5;min-height:46px}
  #searchFields>button.more-filters{grid-column:span 2;order:6;min-height:46px;align-self:stretch;padding:4px 8px;font-size:14px;line-height:1.15;white-space:normal}
}
/* нижнее меню: активный пункт - #131B2D (тёмная тема - белый) и золотая полоска #E2B640, неактивные - серые (от 4,5:1) */
.bottom-nav a,.bottom-nav button{color:var(--muted)}
.bottom-nav a.active,.bottom-nav button.active{color:#131B2D;font-weight:600;position:relative}
.dark .bottom-nav a.active,.dark .bottom-nav button.active{color:#FFFFFF}
/* 320-340 px: логотип не прижат к кнопке языка - без стрелки-шеврона у «RU» (кнопка остаётся 44 px в высоту) */
@media(max-width:340px){.header .header-actions .lang-btn .icon:last-child{display:none}.header .header-actions .lang-btn{padding:0 8px}}
/* 21.10.2026: короткие экраны телефона (высота до 700 px, шире 320 - например iPhone SE в Safari): меньше отступы над заголовком
   и между полями поиска, шрифты прежние - кнопка «Найти» на первом экране. 320 px не меняется. */
@media(min-width:321px) and (max-width:768px) and (max-height:700px){
  .home-view .hero-copy{padding-top:6px}
  .home-view .hero-copy .eyebrow{margin-bottom:6px}
  .hero h1,.home-view .hero h1{margin-bottom:4px}
  #searchForm.search-panel{gap:4px;padding-top:6px;padding-bottom:6px}
  #searchFields{gap:4px}
  #searchForm #addrFieldHome{padding-top:3px;padding-bottom:3px;min-height:44px}
  #searchFields>label{padding-top:4px;padding-bottom:3px}
  #searchFields>.district-field{padding-top:2px;padding-bottom:2px}
}
/* 21.10.2026: очень короткие экраны (высота до 620 px, например iPhone SE в Safari - 553 px): поиск заходит на баннер на 45 px
   больше (-85 вместо -40), кнопка «Найти» на первом экране. iPhone 13 (664 px) и ПК не меняются; если владелец задал свой заход
   панели в режиме правки (html.kh-panel), действует его значение. */
@media(min-width:321px) and (max-width:768px) and (max-height:620px){html:not(.kh-panel) .search-wrap{margin-top:-85px}}

/* ===== 21.10.2026: телефон, главная и каталог (ПК не меняется) ===== */
@media(max-width:768px){
  /* строка состояния iPhone (часы, батарея): под ней фон шапки, контент не просвечивает */
  body::before{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#F9F4ED;z-index:2000;pointer-events:none}
  body.dark::before{background:#131B2D}
  /* полоса преимуществ - сетка 2x2, без обрезки и прокрутки */
  .benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;overflow:visible;padding-block:20px}
  .benefits>a,.benefits>button{flex-shrink:1;min-width:0;white-space:normal}
  /* адрес в карточках без «Батуми,» (на странице объекта - как было) */
  .prop-address .pa-city{display:none}
  /* «Найти квартиру» - основная кнопка по брендбуку: золото #F2D489, текст и стрелка #131B2D, Manrope 600; при нажатии #E2B640 */
  #searchFields .search-submit,.dark #searchFields .search-submit{background:#F2D489;color:#131B2D;font-family:var(--display);font-weight:600}
  #searchFields .search-submit .icon{color:#131B2D}
  #searchFields .search-submit:active,.dark #searchFields .search-submit:active{background:#E2B640;transform:none}
}

/* ===== 21.10.2026 (MOBILE-3): консультант, шапка на сенсорных экранах, подвал, переключатели, нижнее меню ===== */

/* 2. сенсорные экраны: у кнопок шапки нет «залипшей» подсветки после нажатия (подсветка при наведении - только для мыши) */
@media(hover:none){
  .header .header-actions .icon-button:hover,.header .header-actions .lang-btn:hover,.icon-button:hover,
  .dark .header .header-actions .icon-button:hover,.dark .header .header-actions .lang-btn:hover{background:transparent}
}
/* 4. подвал: логотип не шире логотипа шапки (ПК - видимый 210 px), на телефоне видимый ~120 px; поле H/4 в файле, не обрезается */
.footer-logo{width:236px;margin:-13.3px 0 -7.3px -13.3px}
@media(max-width:768px){.footer-logo{width:135px;margin:-7.6px 0 -2px -7.6px}}
/* 5. переключатели (главная: «Аренда / Покупка», «Обычный / Подбор с ИИ»; каталог: «Список / Карта»), ПК и телефон одинаково:
   выбранный - бледное золото #FBEFD0, рамка #E2B640, текст #131B2D 600; невыбранный - #131B2D 500 без фона; подложка #EFE8DC.
   Насыщенный #F2D489 - только у «Найти квартиру». */
.segments,.mode,.view-toggle,#searchForm .segments,#searchForm .mode{background:#EFE8DC;border:0;border-radius:30px;padding:3px;gap:3px}
.segments button,.mode button,.view-toggle button,#searchForm .segments button,#searchForm .mode button{background:transparent;color:#131B2D;font-weight:500;border:1px solid transparent;box-shadow:none}
.segments button.active,.mode button.active,.view-toggle button.active,#searchForm .segments button.active,#searchForm .mode button.active{background:#FBEFD0;border-color:#E2B640;color:#131B2D;font-weight:600}
.mode button .icon,.view-toggle button .icon{color:currentColor}
.dark .segments,.dark .mode,.dark .view-toggle,.dark #searchForm .segments,.dark #searchForm .mode{background:var(--soft)}
.dark .segments button,.dark .mode button,.dark .view-toggle button,.dark #searchForm .segments button,.dark #searchForm .mode button{color:#EEF3F5}
.dark .segments button.active,.dark .mode button.active,.dark .view-toggle button.active,.dark #searchForm .segments button.active,.dark #searchForm .mode button.active{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
/* 6. нижнее меню: активный пункт - только цвет и жирность (иконка и подпись #131B2D, подпись 600; тёмная тема - белый), без полоски */
.bottom-nav a.active::before,.bottom-nav button.active::before{content:none}

/* ===== 21.10.2026 (MOBILE-4): баннер ПК, переключатели, консультант ===== */
/* баннер ПК: картинка в натуральных пропорциях (1983x793), без увеличения и обрезки по бокам; высота - по ширине окна.
   Если владелец задал высоту в режиме правки (html.kh-pc-h), действует она. */
@media(min-width:1024px){
  html:not(.kh-pc-h) .hero{height:auto;aspect-ratio:1983/793}
  .hero-art{background-size:cover;background-position:center bottom}
}
/* переключатели на ПК - прежней высоты (44 и 41 px), вид из MOBILE-3 */
@media(min-width:769px){
  #searchForm .segments{height:44px;align-items:stretch}#searchForm .segments button{padding-top:0;padding-bottom:0}
  #searchForm .mode{height:41px;align-items:stretch}#searchForm .mode button{padding-top:0;padding-bottom:0}
}
/* консультант: плашки «Имя. Задать вопрос» нет; на ПК прежний пузырь заменён облачком .ke-say */
.chat-pill{display:none!important}
@media(min-width:1024px){.chat-bubble{display:none!important}}
.ke-say,.ke-switch{display:none}
@media(min-width:1024px){
  .ke-say:not([hidden]){display:flex;position:fixed;z-index:71;align-items:flex-start;gap:4px;max-width:270px;padding:11px 10px 11px 16px;background:#FFFFFF;border:1px solid #E2B640;border-radius:18px;box-shadow:0 8px 24px #131B2D24;
    opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease}
  .ke-say.on{opacity:1;transform:none}
  .ke-say::before,.ke-say::after{content:'';position:absolute;right:-10px;bottom:16px;border:10px solid transparent;border-right:0;border-left-color:#E2B640}
  .ke-say::after{right:-8px;bottom:17px;border-width:9px;border-right:0;border-left-color:#FFFFFF}
  .ke-say-t{flex:1;background:none;border:0;padding:0;text-align:left;color:#131B2D;font:500 15px/1.35 var(--display);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
  .ke-say-x{flex:none;width:22px;height:22px;border:0;border-radius:50%;background:none;color:#5b6672;font-size:18px;line-height:1;cursor:pointer}
  .dark .ke-say:not([hidden]){background:#1C2538}.dark .ke-say::after{border-left-color:#1C2538}.dark .ke-say-t{color:#FFFFFF}.dark .ke-say-x{color:#c8d4db}
  .ke-switch{display:flex;position:fixed;z-index:72;width:24px;height:24px;padding:0;align-items:center;justify-content:center;border-radius:50%;border:1px solid #E2B640;background:#FFFFFF;color:#131B2D;box-shadow:0 2px 8px #131B2D29;cursor:pointer}
  .ke-switch svg{width:14px;height:14px}
  .dark .ke-switch{background:#1C2538;color:#FFFFFF}
  .chat-open .ke-switch,.chat-off .ke-switch,.chat-dodge .ke-switch,.locked .ke-switch,.chat-open .ke-say,.chat-off .ke-say,.locked .ke-say{display:none!important}
}
@media(prefers-reduced-motion:reduce){.ke-say:not([hidden]){transition:none;transform:none}}
/* телефон: плавающего аватара нет; «Связаться» в нижнем меню - фото консультанта 28 px с тонким золотым ободом */
@media(max-width:480px){.chat-fab,.chat-bubble,.chat-pill{display:none!important}}
.bn-ava{display:block;width:28px;height:28px;border-radius:50%;border:1.5px solid #E2B640;background:#EFE8DC center/cover no-repeat}
/* список сотрудников: фото, имя, языки */
.ke-team-pop{position:fixed;z-index:200;width:280px;padding:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 40px #131B2D33}
.ke-team-h{margin:4px 8px 6px;font-size:13px;color:var(--muted)}
.ke-team-item{display:flex;width:100%;align-items:center;gap:12px;padding:8px;border:1px solid transparent;border-radius:12px;background:none;color:inherit;text-align:left;cursor:pointer}
.ke-team-item:hover,.ke-team-item:focus-visible{background:var(--soft);outline:none}
.ke-team-item.on{background:#FBEFD0;border-color:#E2B640;color:#131B2D}
.dark .ke-team-item.on{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
.ke-team-ava{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid #E2B640;background:#EFE8DC center/cover no-repeat}
.ke-team-item strong{display:block;font-weight:600}.ke-team-item small{display:block;font-size:12.5px;color:var(--muted)}
.ke-team-item.on small{color:inherit;opacity:.8}
.chat-switch-link{display:block;margin-top:2px;padding:0;border:0;background:none;color:inherit;font-size:12.5px;text-decoration:underline;text-underline-offset:3px;opacity:.85;cursor:pointer}

/* ===== 21.10.2026 (MOBILE-6): чат консультанта на телефоне, форма «Написать … лично» ===== */
@media(max-width:480px){
  /* окно на весь экран, непрозрачное, шапка ниже часов; высота и положение - по видимой области (script.js, visualViewport) */
  .chat-win{top:0;bottom:0;left:0;right:0;width:auto;height:100dvh;max-height:none;border:0;border-radius:0;background:var(--surface);box-shadow:none}
  .chat-head{padding-top:calc(12px + env(safe-area-inset-top))}
  /* страница под чатом не прокручивается */
  html.ke-chat-lock,html.ke-chat-lock body{overflow:hidden;overscroll-behavior:none}
  html.ke-chat-lock body{position:fixed;left:0;right:0;width:100%}
  /* форма «Написать … лично»: строка сообщения, золотая кнопка и лента скрыты, форма - всё место под шапкой */
  .chat-win.ho-mode .chat-form,.chat-win.ho-mode .chat-handoff-bar,.chat-win.ho-mode .chat-msg{display:none}
  .chat-win.ho-mode .chat-log{padding:18px 16px calc(16px + env(safe-area-inset-bottom))}
  .chat-win.ho-mode .chat-ho{border:0;background:transparent;padding:0;gap:12px}
  .chat-win.ho-mode .chat-ho-title{font-size:16px}
  .chat-win.ho-mode .chat-ho input[name=contact]{height:48px}
  .chat-win.ho-mode .chat-ho-row{justify-content:stretch}
  .chat-win.ho-mode .chat-ho-row button{flex:1;min-height:46px;border-radius:23px;font-size:15px}
  /* «Отправить» сразу под полем (на iPhone SE с клавиатурой видно 293 px); свёрнутый комментарий - внизу; шапка без строки о времени ответа */
  .chat-win.ho-mode .chat-ho-title{order:1}.chat-win.ho-mode .chat-ho input[name=contact]{order:2}.chat-win.ho-mode .chat-ho-err{order:3}
  .chat-win.ho-mode .chat-ho-row{order:4}.chat-win.ho-mode .chat-ho-legal{order:5}.chat-win.ho-mode .chat-ho details{order:6}
  .chat-win.ho-mode .chat-who small{display:none}
}
/* согласие - строкой мелким шрифтом под кнопкой (вместо галочки) */
.chat-ho-legal{margin:0;font-size:12px;line-height:1.4;color:var(--muted)}
.chat-ho-legal a{text-decoration:underline;color:inherit}
/* под формой «Написать … лично» - Telegram и WhatsApp консультанта (21.10.2026) */
.chat-ho-alt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.chat-ho-alt span{flex-basis:100%}
.chat-ho-msg{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600;font-size:14px}
.chat-ho-msg.wa{border-color:#25D366}.chat-ho-msg.tg{border-color:#2AABEE}
@media(max-width:480px){.chat-win.ho-mode .chat-ho-alt{order:6}.chat-win.ho-mode .chat-ho details{order:7}.chat-ho-msg{flex:1}}

/* ===== 22.10.2026 (MOBILE-8): большой проход по телефону (решения владельца 22.10). ПК не меняется, кроме «Новые объекты»
   и шапки чата. Элементы только для телефона по умолчанию скрыты. ===== */
.ai-chip-btn,.ai-go-m,.mf-i,.tgp-m,.bnf-m,.cat-head-m,.pf-tot,.pa-pin,.pa-dist,.prop-badges,.prop-code{display:none}
@media(min-width:761px){.fm-ico{display:none}}

/* 1. шапка чата: фото крупнее (ПК 56 px, телефон 64 px) с золотым ободом, без слова «Риэлтор» */
.chat-head .chat-ava{width:56px;height:56px;border:2.5px solid #E2B640;box-sizing:border-box}
.chat-who>span{display:none}
@media(max-width:480px){.chat-head .chat-ava{width:64px;height:64px}}
/* 3. «Показать все N →» под карточками ИИ */
.chat-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:8px 0 0;padding:8px 14px;border:1px solid #E2B640;border-radius:22px;background:#FBEFD0;color:#131B2D;font:600 15px/1.2 var(--display);cursor:pointer}
.chat-more:active{background:#F2D489}
.dark .chat-more{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}

/* 10. «Новые объекты» (ПК и телефон): шрифт заголовка баннера, одной строкой, «Все →» справа */
.offers-heading h2{font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif;font-weight:600;letter-spacing:normal;white-space:nowrap}
.offers-heading{align-items:center}
.offers-heading .section-actions>a{white-space:nowrap}
@media(max-width:480px){.offers-heading h2{font-size:30px;max-width:none}.section-actions>a{font-size:16px;font-weight:600;color:var(--ink)}.section-actions>a span{font-size:18px}}

@media(max-width:768px){
  /* 9. полоса под часами: цвет фона того, что под ней (script.js), без тени, рамки и скругления; поверх всего */
  body::before{height:var(--ke-sbh,env(safe-area-inset-top,0px));background:var(--ke-sb,#F9F4ED);z-index:2147483000;box-shadow:none;border:0;border-radius:0}
  body.dark::before{background:var(--ke-sb,#131B2D)}

  /* 11. шапка: RU, луна и меню - только значки, без обводки и фона; зона нажатия 44 px */
  .header .header-actions{gap:0}
  .header .header-actions .icon-button,.header .header-actions .lang-btn,.dark .header .header-actions .icon-button,.dark .header .header-actions .lang-btn{
    border:0!important;background:transparent!important;box-shadow:none!important;min-width:44px;height:44px;padding:0;justify-content:center;border-radius:22px}
  .header .header-actions .lang-btn{padding:0 6px;font-size:15px}
  .header .header-actions .lang-btn .icon{display:none}
  .header .menu-toggle .icon{width:26px;height:26px}
  .header .theme-toggle .icon{width:23px;height:23px}

  /* 7. поиск на главной: поля белые с рамкой #E3D9C6, отступы больше; без «Обычный / Подбор с ИИ» */
  #searchForm.search-panel{gap:10px}
  #searchFields{gap:10px}
  #searchForm .mode{display:none!important}
  body:not(.dark) #searchForm #addrFieldHome,body:not(.dark) #searchFields>label,body:not(.dark) #searchFields>.district-field{background:#FFFFFF;border:1px solid #E3D9C6}
  .dark #searchForm #addrFieldHome,.dark #searchFields>label,.dark #searchFields>.district-field{border:1px solid var(--line)}
  /* «✦ С ИИ» - маленькая кнопка справа в строке поиска; в режиме ИИ - бледное золото, «Подобрать» - под строкой */
  #searchForm .ai-chip-btn{display:inline-flex;align-items:center;flex:none;height:36px;margin-left:6px;padding:0 12px;border:1px solid #E2B640;border-radius:18px;background:transparent;color:#131B2D;font:600 14px/1 var(--display);white-space:nowrap;cursor:pointer}
  #searchForm .ai-chip-btn.on{background:#FBEFD0}
  .dark #searchForm .ai-chip-btn{color:#FFFFFF;border-color:#F2D489}.dark #searchForm .ai-chip-btn.on{background:rgba(242,212,137,.2)}
  #searchForm .ai-chip-btn[hidden]{display:none}
  #searchForm #aiSearch{display:none!important}
  #searchForm.ai-on .ai-go-m{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin:0 0 10px;border-radius:24px;background:#F2D489;color:#131B2D;font-family:var(--display);font-weight:600}
  #searchForm.ai-on .ai-go-m .icon{color:#131B2D}
  /* «Ещё фильтры» - круглая кнопка со значком и золотым числом выбранных, слева от «Найти» (справа на iPhone SE её закрывал бы аватар) */
  #searchFields>button.search-submit{grid-row:3;grid-column:1/-1;margin-left:62px}
  #searchFields>button.more-filters{grid-row:3;grid-column:1/-1;order:5;position:relative;justify-self:start;align-self:center;width:52px;height:52px;min-height:52px;margin:0;padding:0;border-radius:50%;background:#FFFFFF;border:1px solid #E3D9C6;color:#131B2D;display:flex;align-items:center;justify-content:center}
  .dark #searchFields>button.more-filters{background:var(--surface);border-color:var(--line);color:#FFFFFF}
  #searchFields .mf-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #searchFields .mf-i{display:flex;align-items:center;justify-content:center}
  #searchFields .mf-i .icon{width:22px;height:22px}
  #searchFields .mf-n{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#E2B640;color:#131B2D;font:700 12px/20px var(--display);text-align:center}
  /* «Подбор в Telegram» со значком */
  #searchForm .tg-pick{text-decoration:none}
  #searchForm .tg-pick .tgp-pc{display:none}
  #searchForm .tg-pick .tgp-m{display:inline-flex;align-items:center;gap:8px;min-height:40px;color:var(--ink);font-weight:600;font-size:15px}
  #searchForm .tg-pick .tgp-m .icon{width:20px;height:20px;color:#2AABEE}

  /* 8. преимущества: один ряд из трёх, золотой значок сверху, текст по центру */
  .benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-block:20px 14px}
  .benefits>[data-item="view"],.benefits>[data-item="more"]{display:none!important}
  .benefits>a{flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;text-align:center;font-size:13px;line-height:1.3;color:var(--ink)}
  .benefits .icon{width:28px;height:28px;color:#CA971D}
  .benefits>[data-item="legal"]>span[data-edit]{display:none}
  .benefits .bnf-m{display:inline}

  /* 12. каталог: «Главная / Каталог» и «ВАШЕ МЕСТО У МОРЯ» - только в разметке; заголовок одной строкой, под ним число объектов */
  #catalog .breadcrumb,#catalog .page-top .section-title .eyebrow,#catalogTitle,#catalogCount{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  #catalog .page-top{padding-top:14px}
  #catalog .cat-head-m{display:flex;flex-direction:column;margin:0 0 12px}
  #catalog .cat-head-m b{font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif;font-weight:600;font-size:32px;line-height:1.1;color:var(--ink);white-space:nowrap}
  #catalog .cat-head-m span{margin-top:2px;font-size:15px;color:#3C4253}
  .dark #catalog .cat-head-m span{color:var(--muted)}
  /* 13. каталог: выбранные таблетки - бледное золото; поиск - белый с рамкой */
  .catalog-chips .qpill[aria-pressed="true"],.active-filters button{background:#FBEFD0;border-color:#E2B640;color:#131B2D}
  .dark .catalog-chips .qpill[aria-pressed="true"]{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
  body:not(.dark) .addr-catalog{background:#FFFFFF;border:1px solid #E3D9C6}

  /* 14. карточка: «2+1 · 64 м² · 21/40 этаж» крупнее и тёмным, адрес с булавкой и районом, до трёх значков, код в углу */
  .property .prop-info{position:relative}
  .property .prop-specs{font-size:16px;font-weight:600;color:#131B2D}
  .dark .property .prop-specs{color:#FFFFFF}
  .property .pf-tot{display:inline}
  .property .prop-address{display:flex;align-items:center;gap:4px;color:#3C4253;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dark .property .prop-address{color:var(--muted)}
  .property .pa-pin{display:inline-flex;flex:none;color:#CA971D}.property .pa-pin .icon{width:15px;height:15px}
  .property .pa-dist{display:inline;overflow:hidden;text-overflow:ellipsis}
  .property .prop-sea,.property .prop-extra{display:none!important}
  /* значок, который не помещается в строку, уходит во вторую (скрытую) строку целиком - без переноса и обрезки */
  .property .prop-badges{display:flex;gap:6px;margin:8px 0 0;flex-wrap:wrap;height:24px;overflow:hidden}
  .property .prop-badges span{display:inline-flex;align-items:center;gap:5px;flex:none;height:24px;padding:0 9px;border-radius:14px;background:#F6F0E4;color:#131B2D;font-size:12.5px;line-height:1.2;white-space:nowrap}
  .property .prop-badges .icon{width:14px;height:14px;color:#CA971D}
  .dark .property .prop-badges span{background:var(--soft);color:#FFFFFF}
  .property .prop-code{display:block;position:absolute;top:10px;right:12px;font-size:11.5px;color:#3C4253;letter-spacing:.2px}
  .dark .property .prop-code{color:var(--muted)}
  .property .prop-meta{color:#3C4253}.dark .property .prop-meta{color:var(--muted)}
  .property .pm-code,.property .pm-only-code{display:none}
  .property .prop-price{padding-right:56px}
  /* карточки по две в ряд (главная, «Новые объекты»): не больше двух значков, без переноса */
  .property-grid:not(.catalog-grid) .prop-badges span:nth-child(n+3){display:none}
  .property-grid:not(.catalog-grid) .prop-badges{gap:4px;height:20px}
  .property-grid:not(.catalog-grid) .prop-badges span{height:20px;padding:0 5px;font-size:10.5px;gap:3px;letter-spacing:-.15px}
  .property-grid:not(.catalog-grid) .prop-badges .icon{width:12px;height:12px}
  .property .prop-badges b{font-weight:inherit}.property .prop-badges .bs{display:none}
  .property-grid:not(.catalog-grid) .prop-badges .bl{display:none}.property-grid:not(.catalog-grid) .prop-badges .bs{display:inline}
  .property-grid:not(.catalog-grid) .prop-price{padding-right:0}
  .property-grid:not(.catalog-grid) .prop-specs{font-size:13.5px;word-spacing:-1px;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .property-grid:not(.catalog-grid) .prop-info{padding-bottom:26px}
  .property-grid:not(.catalog-grid) .prop-info>.icon{display:none}
  .property-grid:not(.catalog-grid) .prop-code{top:auto;bottom:8px;right:10px;font-size:11px}

  /* 17. подвал: без разделов «Недвижимость» и «Батуми» */
  .footer-grid>div:nth-child(2),.footer-grid>div:nth-child(3){display:none}
}

/* 6. фильтры на телефоне: заголовки крупнее с золотым значком, таблетки выше (16 px), выбранные - бледное золото, панель до низа экрана */
@media(max-width:760px){
  .modal.fm-modal{position:fixed;inset:0;margin:0;width:100%;max-width:100%;height:100%;max-height:none;border-radius:0;border:0}
  .fm-sec h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font:600 18px/1.25 var(--display);color:#131B2D;letter-spacing:0}
  .dark .fm-sec h3{color:#FFFFFF}
  .fm-ico{display:inline-flex;flex:none;width:18px;height:18px;color:#CA971D}.fm-ico .icon{width:18px;height:18px}
  .fm-body .pill{min-height:44px;padding:10px 16px;font-size:16px}
  .fm-body .pill small{font-size:13px}
  .fm-body .pill[aria-pressed="true"]{background:#FBEFD0;border-color:#E2B640;color:#131B2D}
  .fm-body .pill[aria-pressed="true"] small{color:#131B2D;opacity:.75}
  .dark .fm-body .pill[aria-pressed="true"]{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
  .dark .fm-body .pill[aria-pressed="true"] small{color:#FFFFFF}
}

/* 15. карта на телефоне: «Покупка» не обрезана, подпись «аренда / покупка» в цветах точек, «Где я» */
@media(max-width:760px){
  .bigmap-head{gap:8px}
  .bigmap-deal{flex:none}
  .bigmap-deal button{padding:7px 12px;font-size:14px;white-space:nowrap}
  .bigmap-head .map-title{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .lg-rent,.dark .lg-rent{background:#E2B640;border-color:#E2B640}
  .lg-sale{background:#131B2D;border-color:#131B2D}
  .bigmap-legend{left:12px;right:auto;bottom:36px}
  #bigMap .mapboxgl-ctrl-bottom-right{bottom:100px}
  #bigMap .mapboxgl-ctrl-geolocate{position:relative;width:auto!important;padding:0 10px 0 30px!important;background-position:6px center!important;font:600 13px/29px var(--display);color:#131B2D}
  #bigMap .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{position:absolute;left:3px;top:0;width:29px;height:29px}
  #bigMap .mapboxgl-ctrl-geolocate::after{content:'Где я'}
  html[lang="en"] #bigMap .mapboxgl-ctrl-geolocate::after{content:'Locate me'}
  #bigMap .mapboxgl-canvas-container{touch-action:none}
}

/* 16. консультант на телефоне: плавающий аватар 56 px с золотым ободом справа над нижним меню (отступ 12 px), не уходит при прокрутке;
   скрыт, пока открыт чат, фильтры, меню, клавиатура или галерея; облачко не шире 70 % экрана, над аватаром - «⇄» */
@media(max-width:480px){
  .chat-fab{display:block!important;width:56px!important;height:56px!important;left:auto!important;right:12px!important;bottom:calc(var(--ke-bnh,calc(64px + env(safe-area-inset-bottom))) + 12px)!important;border:2.5px solid #E2B640;transform:none!important;opacity:1!important;pointer-events:auto!important}
  .chat-on-detail .chat-fab{bottom:calc(var(--ke-bnh,calc(64px + env(safe-area-inset-bottom))) + 64px + 12px)!important}
  .chat-open .chat-fab,.locked .chat-fab,body:has(#modal[open]) .chat-fab,.ke-kb .chat-fab,.mm-open .chat-fab{display:none!important}
  .chat-bubble{display:none!important}
  .ke-say:not([hidden]){display:flex;position:fixed;z-index:71;align-items:flex-start;gap:4px;max-width:70vw;padding:10px 8px 10px 14px;background:#FFFFFF;border:1px solid #E2B640;border-radius:18px;box-shadow:0 8px 24px #131B2D24;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
  .ke-say.on{opacity:1;transform:none}
  .ke-say::before,.ke-say::after{content:'';position:absolute;right:-10px;bottom:16px;border:10px solid transparent;border-right:0;border-left-color:#E2B640}
  .ke-say::after{right:-8px;bottom:17px;border-width:9px;border-right:0;border-left-color:#FFFFFF}
  .ke-say-t{flex:1;background:none;border:0;padding:0;text-align:left;color:#131B2D;font:500 14px/1.35 var(--display);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
  .ke-say-x{flex:none;width:24px;height:24px;border:0;border-radius:50%;background:none;color:#5b6672;font-size:18px;line-height:1;cursor:pointer}
  .dark .ke-say:not([hidden]){background:#1C2538}.dark .ke-say::after{border-left-color:#1C2538}.dark .ke-say-t{color:#FFFFFF}.dark .ke-say-x{color:#c8d4db}
  .ke-switch{display:flex;position:fixed;z-index:72;width:24px;height:24px;padding:0;align-items:center;justify-content:center;border-radius:50%;border:1px solid #E2B640;background:#FFFFFF;color:#131B2D;box-shadow:0 2px 8px #131B2D29;cursor:pointer}
  .ke-switch::before{content:'';position:absolute;inset:-10px}
  .ke-switch svg{width:14px;height:14px}
  .dark .ke-switch{background:#1C2538;color:#FFFFFF}
  .chat-open .ke-switch,.locked .ke-switch,body:has(#modal[open]) .ke-switch,.ke-kb .ke-switch,.mm-open .ke-switch,
  .chat-open .ke-say,.locked .ke-say,body:has(#modal[open]) .ke-say,.ke-kb .ke-say,.mm-open .ke-say{display:none!important}
}

/* 18. меню на телефоне: во весь экран, без серой полосы, всё помещается без прокрутки */
.mm{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;gap:10px;padding:calc(6px + env(safe-area-inset-top)) 18px calc(8px + env(safe-area-inset-bottom));background:var(--bg);color:var(--ink);overflow-y:auto;overscroll-behavior:contain}
.mm[hidden]{display:none}
.mm-top{display:flex;align-items:center;justify-content:space-between;min-height:44px}
.mm-top strong{font:600 22px/1.2 var(--display)}
.mm-x{width:44px;height:44px;margin-right:-10px;display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--ink);cursor:pointer}.mm-x .icon{width:26px;height:26px}
.mm-ai{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:1px solid #E2B640;border-radius:16px;background:#FBEFD0;color:#131B2D;text-align:left;cursor:pointer}
.mm-ai-s{flex:none;font-size:20px;color:#CA971D}
.mm-ai-t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.mm-ai-t b{font:600 17px/1.2 var(--display)}.mm-ai-t small{font-size:13px;line-height:1.3;color:#3C4253}
.mm-ai>.icon{flex:none;width:20px;height:20px;color:#131B2D}
.dark .mm-ai{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}.dark .mm-ai-t small{color:#d5dee5}.dark .mm-ai>.icon{color:#FFFFFF}
.mm-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mm-tile{position:relative;display:flex;flex-direction:column;gap:0;padding:8px 14px;min-height:54px;border:1px solid #E3D9C6;border-radius:14px;background:#FFFFFF;color:#131B2D}
.mm-tile b{font:600 16px/1.25 var(--display)}.mm-tile small{font-size:13px;color:#3C4253}
.mm-tile .icon{position:absolute;right:12px;top:50%;width:18px;height:18px;margin-top:-9px;color:#CA971D}
.dark .mm-tile{background:var(--surface);border-color:var(--line);color:#FFFFFF}.dark .mm-tile small{color:var(--muted)}
.mm-links{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.mm-links a{display:flex;align-items:center;min-height:40px;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink)}
.mm-links a.current,.mm-tile.current{font-weight:600}
.mm-team{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:2px;text-align:center}
.mm-h{margin:0;font-size:14px;font-weight:600;color:var(--ink)}
.mm-people{display:flex;justify-content:center;gap:18px}
.mm-p{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0;border:0;background:none;color:var(--ink);cursor:pointer}
.mm-ava{display:block;width:80px;height:80px;border-radius:50%;border:2px solid #E2B640;background:#EFE8DC center/cover no-repeat;transition:border-width .15s}
.mm-p.on .mm-ava{border-width:4px}
.mm-name{font-size:14px;font-weight:600}
.mm-hint{margin:0;font-size:13px;color:#3C4253}.dark .mm-hint{color:var(--muted)}
.mm-pop{display:flex;gap:8px;width:100%}
.mm-pop[hidden]{display:none}
.mm-m{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink);font-weight:600;font-size:15px;cursor:pointer}
.mm-m.tg{border-color:#2AABEE}.mm-m.wa{border-color:#25D366}
.mm-m.chat{background:#FBEFD0;border-color:#E2B640;color:#131B2D}
.dark .mm-m.chat{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
.mm-lead{align-self:center;margin-top:auto;min-height:40px;padding:0 12px;border:0;background:none;color:var(--ink);font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
/* iPhone SE (высота до 600 px): фото 64 px, отступы меньше */
@media(max-height:600px){
  .mm{gap:7px;padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:calc(6px + env(safe-area-inset-bottom))}
  .mm-ai{padding:8px 12px}.mm-ai-t small{font-size:12px}
  .mm-top{min-height:40px}
  .mm-tile{min-height:54px;padding:8px 12px}
  .mm-links a{min-height:33px;font-size:14px}
  .mm-ava{width:64px;height:64px}.mm-team{gap:5px}
  .mm-lead{min-height:36px}
}

/* 22.10.2026: iPhone SE (высота до 620 px) - на первом экране главной аватар спрятан до первой прокрутки (script.js, ke-ava-wait) */
@media(max-width:480px) and (max-height:620px){.ke-ava-wait .chat-fab,.ke-ava-wait .ke-switch,.ke-ava-wait .ke-say{display:none!important}}

/* ===== 22.10.2026: «Новостройки» и «Состояние» ===== */
/* плашка новостройки на фото карточки (верхний левый угол) и на странице объекта */
.photo .nb-label{position:absolute;left:10px;top:10px;z-index:2;padding:4px 10px;border-radius:14px;background:#131B2D;color:#FFFFFF;font:600 12px/1.3 var(--display);letter-spacing:.1px;white-space:nowrap;max-width:calc(100% - 60px);overflow:hidden;text-overflow:ellipsis}
.dark .photo .nb-label{background:#F2D489;color:#131B2D}
.nb-tag{display:inline-block;margin:0 0 8px;padding:4px 12px;border-radius:14px;background:#FBEFD0;border:1px solid #E2B640;color:#131B2D;font:600 13px/1.3 var(--display)}
.dark .nb-tag{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
@media(max-width:480px){.photo .nb-label{left:8px;top:8px;font-size:11px;padding:3px 8px}}
/* уточнения каркаса под таблетками «Состояния» */
.fm-sub{display:flex;flex-wrap:wrap;gap:8px;width:100%;margin-top:2px;padding:10px 0 0 14px;border-left:2px solid #E2B640}
.fm-sub .pill{min-height:38px;font-size:15px}

/* ===== 22.10.2026: листание фото в карточках ленты ===== */
.property .photo{touch-action:pan-y;overflow:hidden}
.property .photo>img{will-change:auto}
.ph-ui{position:absolute;inset:0;z-index:2;pointer-events:none}
.ph-nav{position:absolute;top:50%;width:32px;height:32px;margin-top:-16px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.92);color:#131B2D;box-shadow:0 2px 8px #131B2D33;opacity:0;transition:opacity .15s;pointer-events:auto;cursor:pointer}
.ph-nav .icon{width:18px;height:18px}
.ph-nav.prev{left:10px}.ph-nav.next{right:10px}
@media(hover:hover) and (pointer:fine){.property:hover .ph-nav{opacity:1}.property .ph-first .ph-nav.prev,.property .ph-last .ph-nav.next{opacity:0;pointer-events:none}}
@media(hover:none){.ph-nav{display:none}}
/* точки: не больше 5 видимых, крайние меньше, если дальше есть ещё */
.ph-dots{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:10px;background:rgba(19,27,45,.28)}
.ph-dots i{display:block;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);transition:transform .15s,background .15s}
.ph-dots i.on{background:#FFFFFF}
.ph-dots i.sm{transform:scale(.6)}
.ph-dots i[hidden]{display:none}
/* последний слайд «Ещё N фото →» */
.ph-on-more>img{filter:blur(6px) brightness(.55)}
.ph-more{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#FFFFFF;text-align:center;font-family:var(--display)}
.ph-more[hidden]{display:none}
.ph-more b{font-size:18px;font-weight:600}
.ph-more span{display:inline-flex;align-items:center;gap:6px;font-size:14px;opacity:.9}.ph-more .icon{width:16px;height:16px}
@media(max-width:480px){.property-grid:not(.catalog-grid) .ph-dots{bottom:34px;gap:4px}.property-grid:not(.catalog-grid) .ph-dots i{width:5px;height:5px}.property-grid:not(.catalog-grid) .ph-more b{font-size:14px}}
@media(prefers-reduced-motion:reduce){.property .photo>img:not(.ph-peek){transition:none!important}
  .property .photo>img.ph-peek{transition:opacity .2s ease!important}}   /* соседний кадр - затухание 200 мс (общее правило глушит все переходы) */
/* v2 (22.10.2026): соседний кадр - второй слой; под кадрами нейтральный фон вместо синего; без пустоты при переходе */
.property .ph-img{background:#EFE8DC}
.dark .property .ph-img{background:#1C2538}
.ph-img>.ph-peek{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;will-change:transform}
.ph-img>.ph-peek[hidden]{display:none}
.ph-img>img{backface-visibility:hidden}
.ph-wait{cursor:progress}

/* ===== 23.10.2026 (VISUAL-2310): шапка объекта - заголовок без района, крупнее адрес, мелко район и код, сразу цена и главные плашки ===== */
.detail-top .dt-head h1{margin-bottom:6px}
.detail-top p.dt-addr{font-size:18px;font-weight:500;color:var(--ink);margin:0 0 4px}
.detail-top p.dt-sub{font-size:13px;color:var(--muted);margin:0}
.dt-code{font-size:12px;letter-spacing:0;text-transform:none}
.dt-price{font-size:32px;font-weight:700;letter-spacing:-.5px;color:var(--ink);margin:16px 0 10px}
.dt-price small{font-size:15px;font-weight:400;color:var(--muted)}
.dt-pills{display:flex;flex-wrap:wrap;gap:8px}
.dt-pills span{padding:6px 12px;border-radius:16px;background:var(--soft);border:1px solid var(--line);font-size:13px;color:var(--ink)}
@media(max-width:480px){
  .detail-top p.dt-addr{font-size:16px}
  .dt-price{font-size:28px;margin:12px 0 8px}
  /* «Записаться на просмотр»: липкая внутри объекта, прячется при прокрутке вниз (класс cta-off ставит script.js) */
  .detail-bottom-cta{position:sticky!important;left:auto;right:auto;width:100%;margin:24px 0 0;bottom:calc(var(--ke-bnh,calc(64px + env(safe-area-inset-bottom))) + 8px);transition:transform .25s ease,opacity .25s ease}
  .cta-off .detail-bottom-cta{transform:translateY(calc(100% + 96px));opacity:0;pointer-events:none}
  .cta-off.chat-on-detail .chat-fab{bottom:calc(var(--ke-bnh,calc(64px + env(safe-area-inset-bottom))) + 12px)!important}   /* кнопка спрятана - аватар на обычном месте */
}
@media(prefers-reduced-motion:reduce){.detail-bottom-cta{transition:opacity .2s}.cta-off .detail-bottom-cta{transform:none}}

/* ===== 23.10.2026 (VISUAL-2310b): «Найти квартиру» и «Подобрать» - как выбранная «Аренда», высотой со строку поиска (заменяет вариант B) ===== */
#searchFields .search-submit,#searchFields>button.search-submit,#searchForm .ai-go,.dark #searchFields .search-submit,.dark #searchForm .ai-go{background:#FBEFD0;color:#131B2D;border:1px solid #E2B640;box-shadow:none;
  font-family:var(--display);font-weight:600;min-height:44px;height:44px;padding-top:0;padding-bottom:0;box-sizing:border-box}
#searchFields .search-submit .icon,#searchForm .ai-go .icon{color:#131B2D}
.dark #searchFields .search-submit,.dark #searchForm .ai-go{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
.dark #searchFields .search-submit .icon,.dark #searchForm .ai-go .icon{color:#FFFFFF}
@media(hover:hover){#searchFields .search-submit:hover,#searchForm .ai-go:hover{background:#F8E6B8}.dark #searchFields .search-submit:hover,.dark #searchForm .ai-go:hover{background:rgba(242,212,137,.28)}}
#searchFields .search-submit:active,#searchForm .ai-go:active{background:#F6DFA6;transform:none}
.dark #searchFields .search-submit:active,.dark #searchForm .ai-go:active{background:rgba(242,212,137,.34)}
@media(min-width:1024px){#searchFields .search-submit,#searchFields>button.search-submit,#searchForm .ai-go,.dark #searchFields .search-submit,.dark #searchForm .ai-go{min-height:52px;height:52px}}

/* ===== баннер на телефоне (макет B; тёмная - VISUAL-2310, светлая - FIX-FILTERS-2 23.10.2026): заголовок выше, над картинкой;
   картинка целиком по ширине, без приближения; сверху только мягкое затухание у края (видны небо и башни), снизу - у края панели.
   Карандашная часть слева - как в самой картинке. Высоту, заданную владельцем, уважаем. ===== */
@media(max-width:1023px){
  body.home-view .hero-copy{padding-top:10px}
  body.home-view .hero-art{height:var(--kh-h,auto);aspect-ratio:1983/793;margin-top:calc(-1px*var(--kh-ov,0))}
  .hero .hero-art::after,body.home-view .hero-art::after{height:26px;background:linear-gradient(to bottom,var(--bg),rgba(249,244,237,0))}
  .dark .hero .hero-art::after,body.dark.home-view .hero-art::after{background:linear-gradient(to bottom,var(--bg),rgba(17,30,40,0))}
  body.home-view .hero-shade{background:linear-gradient(180deg,rgba(249,244,237,0) calc(100% - 36px),var(--bg))}   /* только нижний край */
  body.dark.home-view .hero-shade{background:linear-gradient(180deg,rgba(17,30,40,0) calc(100% - 36px),var(--bg))}
  .hero-shade:before,.dark .hero-shade:before{display:none!important}
}
@media(min-width:321px) and (max-width:768px) and (max-height:700px){body.home-view .hero-copy{padding-top:4px}}
/* ПК, светлая тема: сверху только узкое мягкое затухание у края (как в тёмной), небо и башни видны */
@media(min-width:1024px){body:not(.dark).home-view .hero::before{height:32px}}

/* поиск на телефоне ниже: нахлёст панели на баннер считает script.js (KE_HERO), чтобы «Найти квартиру» стояла над нижним меню первого экрана */
@media(max-width:760px){html.kh-auto:not(.kh-panel) .home-view .search-wrap{margin-top:calc(-1px*var(--kh-auto))}}

/* ===== карта: «Все / Аренда / Покупка» - ширина по тексту, одинаковые отступы (раньше «Покупка» упиралась в край) ===== */
@media(max-width:1023px){.bigmap-deal button{flex:none;padding:6px 11px}}

/* ===== карта на телефоне: «Где я», «2D» и компас одной строкой внизу справа, над значком «i» и аватаром ===== */
@media(max-width:760px){
  #bigMap .mapboxgl-ctrl-bottom-right{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;width:280px;padding-right:10px}
  #bigMap .mapboxgl-ctrl-bottom-right::after{content:'';flex-basis:100%;order:1}
  #bigMap .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0;order:0}
  #bigMap .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib{order:2}
  #bigMap .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-group{border-radius:22px;box-shadow:0 4px 14px #131B2D29;overflow:hidden}
  #bigMap .mapboxgl-ctrl-bottom-right .ke-pitch-btn{width:44px;height:44px;font:700 13px/1 var(--display);color:#131B2D}
  #bigMap .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-geolocate{height:44px;padding:0 14px 0 38px!important;background-position:10px center!important;font:600 14px/44px var(--display)}
  #bigMap .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{left:8px;top:7px}
  .dark #bigMap .mapboxgl-ctrl-geolocate,.dark #bigMap .mapboxgl-ctrl-bottom-right .ke-pitch-btn{color:#EEF3F5}
  .ke-compass-btn{display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border-radius:50%;border:2px solid #E2B640;
    background:var(--surface);color:#131B2D;box-shadow:0 4px 14px #131B2D33;touch-action:none;cursor:grab;perspective:120px}
  #bigMap .ke-compass-btn{background:#fff}
  .dark #bigMap .ke-compass-btn{background:#1d2d39;color:#EEF3F5}
  .ke-compass-btn .ke-needle{width:28px;height:28px}
  .ke-compass-btn:active{cursor:grabbing}
  .ke-needle{transition:transform .08s linear;transform-origin:50% 50%}
}

/* ===== 23.10.2026 (VISUAL-2310b): страница объекта - строка «Актуально · ID», преимущества с иконками; аватар на телефоне 64 px ===== */
.detail-top p.dt-meta{display:flex;flex-wrap:wrap;gap:4px 18px;margin:12px 0 0;font-size:13px;color:var(--muted)}
.detail-top p.dt-sub{margin-bottom:2px}
.features.feat-ico span{display:flex;align-items:center;gap:10px}
.features.feat-ico .icon{flex:none;width:20px;height:20px;color:#CA971D}
.dark .features.feat-ico .icon{color:#F2D489}
@media(max-width:480px){
  .chat-fab{width:64px!important;height:64px!important;border-width:2.9px!important}
  .ke-ava-wait .chat-fab,.ke-ava-wait .ke-switch,.ke-ava-wait .ke-say{display:none!important}   /* главная: до первой прокрутки на всех телефонах */
  #searchForm.ai-on .ai-go-m{min-height:44px;height:44px;box-sizing:border-box;background:#FBEFD0;border:1px solid #E2B640;color:#131B2D;font-weight:600}
  .dark #searchForm.ai-on .ai-go-m{background:rgba(242,212,137,.2);border-color:#F2D489;color:#FFFFFF}
  .dark #searchForm.ai-on .ai-go-m .icon{color:#FFFFFF}
}
/* адрес карточки «ул. …, 16 · р-н …» - и на ПК (раньше район был только на телефоне) */
.property .prop-address .pa-dist{display:inline}
/* 23.10.2026 (VISUAL-2310c): «Записаться на просмотр» прячется и при открытой экранной клавиатуре */
@media(max-width:480px){.ke-kb .detail-bottom-cta{opacity:0;pointer-events:none;transform:translateY(calc(100% + 96px))}}

/* ===== FIX-FILTERS 23.10.2026 ===== */
/* 1. iOS увеличивает страницу при нажатии на поле или список со шрифтом меньше 16 px и не возвращает масштаб: страница шире экрана,
   правый край (сердечко, ☰) обрезан, окно «Фильтры» не совпадает с видимой областью. Так было у сортировки «Сначала свежие» (14 px). */
@media(max-width:760px){input,select,textarea{font-size:max(16px,1em)}#sort,.catalog-toolbar select{font-size:16px}}
/* 2. «Записаться на просмотр» существует только на открытом объекте и никогда не лежит поверх окон и меню */
body:not(.detail-view) .detail-bottom-cta,.locked .detail-bottom-cta,body:has(#modal[open]) .detail-bottom-cta,.mm-open .detail-bottom-cta{display:none!important}
/* 3. горизонтальной прокрутки нет нигде: clip и на body (в отличие от hidden не создаёт области прокрутки и не ломает липкие полосы) */
body{overflow-x:clip}

/* ===== FIX-FILTERS-2 (23.10.2026): окна на телефоне - отдельный слой поверх всего (см. script.js, ke-overlay / ke-cover) ===== */
@media(max-width:760px){
  html.ke-overlay .header,html.ke-overlay .bottom-nav,html.ke-overlay .chat-fab,html.ke-overlay .chat-bubble,html.ke-overlay .chat-pill,
  html.ke-overlay .ke-say,html.ke-overlay .ke-switch,html.ke-overlay .detail-bottom-cta,html.ke-overlay .catalog-toolbar .ct-row,html.ke-overlay .ke-edit-entry{visibility:hidden!important}
  html.ke-cover main,html.ke-cover .footer,html.ke-cover .skip-link{visibility:hidden!important}
  html.ke-overlay,html.ke-overlay body{overscroll-behavior:none}
  /* «Фильтры» и галерея: свой слой на весь экран, выше всего; кнопка «Показать N» всегда видна внизу над safe-area */
  #modal.fm-modal[open],#modal.lightbox-modal[open]{position:fixed;inset:0;z-index:2147483000;transform:translateZ(0);margin:0;width:100%;max-width:100%;height:100%;max-height:none}
  #modal.fm-modal #modalContent,#modal.fm-modal .fm{display:flex;flex-direction:column;min-height:0;flex:1;height:100%}
  #modal.fm-modal .fm-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  #modal.fm-modal .fm-foot{flex:none;position:relative;z-index:2;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  #mMenu{z-index:2147482000}
}
/* FIX-FILTERS-2: закрытое окно не показывается никогда. Правило .modal.fm-modal{display:flex} перебивало встроенное
   dialog:not([open]){display:none}: после «Показать N» закрытая панель фильтров оставалась на экране в обычном слое страницы -
   под шапкой, липкой полосой, карточками, аватаром и нижним меню. */
#modal:not([open]){display:none!important}

/* ===== BIG-2310 ч.2: страницы районов и подборок (готовые страницы, пока noindex) ===== */
.landing h1{font-size:38px;margin:0 0 16px}
.landing .ld-text{max-width:820px;font-size:16px;line-height:1.6;color:var(--ink);margin:0 0 12px}
.landing .ld-stats{margin:22px 0}
.landing .ld-h2{margin:34px 0 4px;font-size:26px}
.landing .property-grid{margin-top:14px}
.landing .ld-more{margin:18px 0 8px}
.landing .ld-links{margin:30px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.landing .ld-links h2{font-size:20px;margin:0 0 8px}
.landing .ld-links p{line-height:2;color:var(--muted)}
.landing .ld-links a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
@media(max-width:760px){.landing h1{font-size:28px}.landing .ld-text{font-size:15px}}

/* ===== BATCH-2710: «Поделиться» на карточке - слева от сердечка, тем же кружком ===== */
.card-share{position:absolute;top:10px;right:50px;z-index:2;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;background:#131B2D12;border-radius:50%;color:white;filter:drop-shadow(0 1px 2px #0005);cursor:pointer}
.card-share .icon{width:20px;height:20px;stroke-width:1.7}
.with-map .card-share{top:10px;right:auto;left:calc(42% - 83px)}
@media(max-width:1100px){.with-map .card-share{left:auto;right:50px}}
@media(max-width:480px){.card-share{top:7px;right:41px;width:29px;height:29px}.card-share .icon{width:18px;height:18px}}
@media(pointer:coarse){.card-share::after{content:'';position:absolute;inset:-6px}}
@media(max-width:480px){.with-map .card-share{left:calc(43% - 71px);right:auto}}
/* VIEWPORT-FIX 27.10.2026: «⇄» внутри аватара - положение от его края (раньше считалось скриптом по координатам экрана и отставало),
   сверху по центру; телефон, если сверху поиск - слева (.side), если и там поиск - скрыт (.off). Прячется вместе с аватаром. */
.chat-fab .ke-switch{position:absolute!important;top:-33px;left:calc(50% - 12px);right:auto;bottom:auto}
.chat-fab .ke-switch.side{top:calc(50% - 12px);left:-33px}
.chat-fab .ke-switch.off{visibility:hidden}
/* Нижнее меню телефона: свой слой - Chrome iOS и Safari двигают его вместе с краем экрана, когда прячут и показывают панели;
   фон продолжен вниз за край, чтобы в момент перестройки под меню не просвечивала лента. */
.bottom-nav{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.bottom-nav::after{content:'';position:absolute;left:0;right:0;top:100%;height:120px;background:inherit;pointer-events:none}

/* подписка с сайта (30.10.2026): кнопка над лентой каталога и окно «Пришлём новые квартиры по вашим фильтрам» */
.sub-row{display:flex;justify-content:flex-end;margin:-4px 0 16px}.sub-btn{font-size:14px;min-height:40px;padding:8px 17px}
.sub-modal h2{margin-bottom:10px}.sub-line{margin:0 0 20px;font-size:15px;line-height:1.5}
.sub-tg{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;font-size:18px;font-weight:600;border-radius:14px;text-decoration:none}
.sub-tg[aria-busy="true"]{opacity:.75}
@media(max-width:480px){.sub-row{justify-content:stretch}.sub-btn{width:100%;justify-content:center}}
/* условия аренды из поста (31.10.2026): строка в карточке, под ценой и первая строка описания */
.prop-terms{font-size:13px;color:#7a5a12;margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:22px}.dt-alt{font-size:14px;color:var(--muted);margin:2px 0 8px}.detail-description .desc-terms{font-weight:600;background:#fff7e7;border:1px solid #f2dba6;border-radius:10px;padding:10px 14px}
.dark .prop-terms{color:#e3cc9f}.dark .detail-description .desc-terms{background:#3a3426;color:#e3cc9f;border-color:#5d4c2b}

/* 03.11.2026: ссылки на страницы районов. Подвал - только на ПК, на телефоне не показывается */
.footer-districts{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.footer-districts p{margin:6px 0 0;font-size:14px;line-height:1.8}
.footer-districts strong{font-weight:500;color:#edf4f7}
.footer .footer-districts a{display:inline;margin:0;padding:0;color:#a7bccb}
.footer .footer-districts a:hover{color:#edf4f7;text-decoration:underline}
@media(max-width:768px){.footer-districts{display:none!important}}
.prices-districts{margin:24px 0}
.prices-districts h3{margin:0 0 8px}
.prices-districts p{margin:6px 0;line-height:1.8}
.prices-districts a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
