.listing-tools {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-wrap: wrap;
    margin: 14px 0 20px;
}
.save-search-panel {
    position: relative;
}
.save-search-panel > summary {
    list-style: none;
    cursor: pointer;
    padding: 10px 14px;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    font-weight: 800;
}
.save-search-panel > summary::-webkit-details-marker {
    display: none;
}
.save-search-panel[open] > summary {
    border-color: var(--accent);
}
.save-search-panel form {
    position: absolute;
    z-index: 20;
    top: calc(100% + 7px);
    left: 0;
    width: min(380px, calc(100vw - 36px));
    padding: 16px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 14px 32px rgba(18, 42, 58, .18);
}
.save-search-panel label {
    display: grid;
    gap: 6px;
    font-weight: 750;
}
.save-search-panel input {
    width: 100%;
    padding: 10px;
    border: 1px solid #b9cbd5;
}
.save-search-panel button {
    width: 100%;
    margin-top: 10px;
}
.save-search-panel small {
    display: block;
    margin-top: 9px;
    color: var(--muted);
    line-height: 1.45;
}
.property-map-shell {
    margin: 0 0 24px;
    padding: 8px;
    border: 1px solid var(--line);
    background: #fff;
}
.property-map {
    height: min(58vh, 560px);
    min-height: 360px;
}
.map-fallback {
    margin: 0;
    padding: 20px;
    color: var(--muted);
}
.map-listing-popup {
    display: grid;
    gap: 3px;
    min-width: 170px;
    color: #173043;
    text-decoration: none;
}
.map-listing-popup strong {
    color: var(--accent);
    font-size: calc(17px * var(--rs-text-scale, 1));
}
.map-listing-popup small {
    color: #607684;
}
@media (max-width: 560px) {
    .property-map {
        min-height: 300px;
    }
    .save-search-panel form {
        position: fixed;
        top: auto;
        right: 16px;
        left: 16px;
        width: auto;
    }
}
.idx-search-location label{position:relative}
.location-suggestions{position:absolute;z-index:80;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow:auto;background:#fff;border:1px solid #cbd7df;box-shadow:0 12px 30px rgba(15,35,50,.16);border-radius:6px;padding:6px}
.location-suggestions[hidden]{display:none}
.location-suggestions button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:0;background:#fff;color:#102b3d;text-align:left;border-radius:4px}
.location-suggestions button:hover,.location-suggestions button.is-active{background:#eaf3f1}
.location-suggestions small{text-transform:capitalize;color:#587080;white-space:nowrap}

/* Keep the complete postal address in one semantic heading while making each part easy to scan. */
.listing-card .listing-card-address {
    margin: 7px 0 9px;
    color: var(--ink);
    line-height: 1.25;
}
.listing-card-street {
    display: block;
    color: var(--ink);
    font-size: calc(18px * var(--rs-text-scale, 1));
    font-weight: 800;
    overflow-wrap: anywhere;
}
.listing-card-locality {
    display: block;
    margin-top: 3px;
    color: #3f5968;
    font-size: calc(15px * var(--rs-text-scale, 1));
    font-weight: 500;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.listing-card-date {
    display: block;
    margin-top: 7px;
    color: #526b7a;
    font-size: calc(12px * var(--rs-text-scale, 1));
    font-weight: 700;
    line-height: 1.35;
}
.idx-sort-filter > summary {
    width: 44px;
    min-width: 44px;
    justify-content: center;
    padding: 0;
    color: var(--accent);
}
.idx-sort-filter > summary::after {
    display: none;
}
.idx-sort-filter > summary svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.idx-sort-filter .idx-filter-panel {
    width: min(320px, calc(100vw - 38px));
}
