:root { --ink:#243447; --accent:#246b62; }
body { color:var(--ink); background:#f7f8fa; }
.hero { color:white; background:linear-gradient(120deg,#1d5b54,#397c70); }
.card { border:0; border-radius:1rem; overflow:hidden; }
.listing-photo { height:190px; object-fit:cover; }
.detail-photo { max-height:430px; width:100%; object-fit:cover; }
.map { height:390px; width:100%; z-index:1; }
.preserve-lines { white-space:normal; line-height:1.7; }

.filter-panel { border: 1px solid #e5e9ee; border-radius: 1rem; }
.filter-panel .form-select, .filter-panel .form-control { min-height: 44px; }
