.infra-list{display:grid;grid-template-columns:1fr 1fr;margin:0 0 34px;border-top:1px solid var(--line)}
.benefits{gap:14px;border-top:0}
.benefits article,.benefits article+article{min-height:330px;padding:28px 25px 25px;border:1px solid var(--line);background:#fff;overflow:hidden;transition:transform .28s,box-shadow .28s,border-color .28s}
.benefits article:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .28s}
.benefits article:hover{transform:translateY(-6px);border-color:#bfc9bb;box-shadow:0 18px 45px #26302912}.benefits article:hover:before{transform:scaleX(1)}
.benefits article>span{right:20px;top:20px;width:29px;height:29px;display:grid;place-content:center;border:1px solid var(--line);border-radius:50%;color:#727a72;background:var(--paper)}
.benefits .icon{width:70px;height:70px;display:grid;place-content:center;border-radius:50%;background:#e7ece3;color:var(--green);transition:background .28s,color .28s,transform .28s}
.benefits article:hover .icon{background:var(--green);color:#fff;transform:rotate(-3deg) scale(1.04)}
.benefits .icon svg{width:37px;height:37px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.benefits article>small{display:block;margin-top:24px;color:#879287;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.16em}
.benefits h3{margin-top:9px;font-size:23px}.benefits p{min-height:66px;margin-bottom:18px;color:#646c64}.benefits article>b{display:block;padding-top:15px;border-top:1px solid var(--line);color:var(--green);font-size:10px;font-weight:700}
.infra-list div{padding:13px 10px 13px 0;border-bottom:1px solid var(--line)}
.infra-list b,.infra-list span{display:block}
.infra-list b{font:17px var(--serif);color:var(--green)}
.infra-list span{font-size:10px;line-height:1.5;color:#737873;margin-top:4px}
.house-dialog{width:min(1180px,92vw);max-height:92vh;padding:36px;border:0;background:var(--paper);box-shadow:0 30px 90px #0006}
.house-dialog::backdrop{background:#101812d9;backdrop-filter:blur(5px)}
.dialog-close{position:sticky;float:right;top:0;z-index:2;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:25px;cursor:pointer}
.dialog-head{margin:5px 60px 28px 0}
.dialog-head small{text-transform:uppercase;letter-spacing:.16em;color:var(--sage)}
.dialog-head h2{font:clamp(34px,4vw,58px) var(--serif);margin:8px 0}
.dialog-head p,.dialog-note{color:#697169}
.plan-image{max-height:68vh;object-fit:contain;background:#f4f1e8;cursor:zoom-in}
.plan-image--source{filter:contrast(1.08) brightness(1.04)}
.dialog-note{font-size:11px}
.plan-placeholder{min-height:360px;display:grid;place-content:center;text-align:center;border:1px solid var(--line);background:var(--cream)}
.plan-placeholder span{font:30px var(--serif)}
.plan-placeholder p{color:#737873}
.house__plan-preview{position:relative;width:100%;height:190px;padding:0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f4f1e8;overflow:hidden;cursor:pointer}
.house__plan-preview img{height:100%;object-fit:cover;object-position:center;transition:.35s}
.house__plan-preview:hover img{transform:scale(1.025)}
.house__plan-preview span{position:absolute;right:12px;bottom:12px;padding:8px 11px;background:#fff;color:var(--ink);font-size:10px;box-shadow:0 5px 20px #0002}
.house__plan-missing{height:190px;display:grid;place-content:center;text-align:center;background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#858b85;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.infra-map{isolation:isolate;background:#e9ece5}
#infra-map{height:100%;width:100%;z-index:1;font-family:var(--sans)}
.map-loading{position:absolute;inset:0;z-index:900;display:grid;place-content:center;background:var(--cream);color:#6d746d;font-size:12px}
.map-fallback{position:absolute;z-index:950;left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,82%);padding:22px;background:#fff;box-shadow:0 14px 45px #26302940;text-align:center}.map-fallback[hidden]{display:none}.map-fallback b,.map-fallback span{display:block}.map-fallback b{font:19px var(--serif)}.map-fallback span{font-size:10px;color:#6d746d;margin:8px 0 14px}.map-fallback a{display:inline-block;padding:10px 14px;background:var(--green);color:#fff;font-size:10px;font-weight:700}
.infra-map .leaflet-tile-pane{filter:saturate(.55) contrast(.92) brightness(1.04)}
.infra-map .leaflet-control-zoom a{color:var(--green);border:0}
.infra-map .leaflet-control-attribution{display:none}
.map-credit{position:absolute;z-index:500;right:5px;bottom:4px;padding:2px 5px;background:#ffffffd9;color:#747a74;font-size:7px;line-height:1.2}
.map-marker-wrap{background:none;border:0}
.map-marker{width:42px;height:42px;display:grid;place-content:center;border:3px solid #fff;border-radius:50%;background:#71866d;color:#fff;box-shadow:0 7px 22px #1d2a2140;transition:transform .2s,box-shadow .2s}
.map-marker:hover{transform:translateY(-2px) scale(1.06);box-shadow:0 10px 26px #1d2a2155}
.map-marker-wrap.is-hovered .map-marker{transform:translateY(-3px) scale(1.13);box-shadow:0 12px 30px #1d2a2166;outline:3px solid #ffffff80}
.map-marker svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.map-marker--home{width:48px;height:48px;background:var(--green);color:#fff;box-shadow:0 0 0 7px #334d3c22,0 9px 24px #1d2a2150}.map-marker--home svg{width:25px;height:25px}.map-marker--kids{background:#93a67f}.map-marker--health{background:#b56f64}.map-marker--health svg{fill:currentColor;stroke:none}.map-marker--shop{background:#b38c51}
.map-popup{min-width:190px}.map-popup b,.map-popup span,.map-popup strong{display:block}.map-popup b{font:16px var(--serif);color:var(--ink)}.map-popup span{font-size:10px;color:#6d746d;margin:5px 0}.map-popup strong{font-size:11px;color:var(--green);margin-bottom:9px}.map-route{display:inline-block;padding-top:7px;border-top:1px solid var(--line);font-size:10px;font-weight:700;color:var(--green)!important}
.map-tooltip{padding:7px 10px!important;border:0!important;border-radius:0!important;background:var(--ink)!important;color:#fff!important;box-shadow:0 7px 20px #1d2a2140!important;font:10px var(--sans)!important;font-weight:700!important}.map-tooltip:before{display:none!important}
.poi{position:absolute;z-index:2;display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;column-gap:9px;min-width:145px;padding:9px 12px 9px 9px;background:#fff;border:1px solid #ffffff90;box-shadow:0 8px 28px #24302630;transform:translate(-50%,-50%)}
.poi>i{grid-row:1/3;width:34px;height:34px;display:grid;place-content:center;border-radius:50%;background:var(--green);color:#fff;font-style:normal;font-weight:700}
.poi b{font:13px var(--serif)}.poi span{font-size:8px;color:#6d746d;margin-top:3px;white-space:nowrap}
.poi--home{left:9%;top:78%;background:var(--green);color:#fff}.poi--home>i{background:var(--accent);color:var(--ink)}.poi--home span{color:#dbe2dc}
.poi--school{left:52%;top:26%}.poi--school>i,.poi--kids>i{background:#6f876c}.poi--kids{left:64%;top:40%}
.poi--health{left:74%;top:57%}.poi--health>i{background:#b26f62}.poi--mall{left:90%;top:23%}.poi--mall>i{background:#b18c52}
.map-legend{position:absolute;z-index:500;left:18px;bottom:16px;display:flex;gap:16px;padding:10px 13px;background:#fffffff0;font-size:8px;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 6px 20px #26302918}.map-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:7px;height:7px;border-radius:50%;background:#6f876c}.legend-dot--home{background:var(--green)}.legend-dot--health{background:#b26f62}.legend-dot--shop{background:#b18c52}
@media(max-width:600px){.infra-list{grid-template-columns:1fr}.house-dialog{padding:20px}.dialog-head{margin-right:44px}.plan-placeholder{min-height:260px}.house__plan-preview,.house__plan-missing{height:155px}.poi{min-width:0;padding:6px;grid-template-columns:28px auto;column-gap:5px}.poi>i{width:28px;height:28px}.poi b{font:10px var(--sans);font-weight:700}.poi span{display:none}.map-legend{left:8px;right:8px;bottom:8px;justify-content:center;gap:9px;padding:8px 5px;font-size:6px}.poi--school{left:48%}.poi--kids{left:62%}.poi--health{left:73%}.poi--mall{left:87%}}
.hero::before,.house__image::before{content:'Визуализация проекта';position:absolute;z-index:3;top:16px;left:16px;padding:7px 9px;background:#ffffffdf;color:#243026;font-size:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
