/* Haze Real Estate — front-end styles (baseline; refined in Phase 2) */
.haze-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.haze-card{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.haze-card__media{position:relative;display:block;aspect-ratio:4/3;background:#f3f4f6}
.haze-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.haze-card__noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9ca3af}
.haze-badge{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.03em}
.haze-badge--sold{background:#b91c1c}
.haze-card__body{padding:14px 16px}
.haze-card__price{font-weight:700;font-size:18px}
.haze-card__title{margin:4px 0;font-size:16px;line-height:1.3}
.haze-card__title a{text-decoration:none;color:inherit}
.haze-card__addr{color:#6b7280;font-size:14px}
.haze-card__features{list-style:none;display:flex;gap:16px;padding:0;margin:10px 0 0;font-size:14px}
.haze-card__features span{color:#6b7280}
.haze-search__layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px}
.haze-search__filters{display:flex;flex-wrap:wrap;gap:10px}
.haze-search__map{min-height:480px;background:#eef2f5;border-radius:10px;display:flex;align-items:center;justify-content:center}
.haze-mortgage{max-width:520px;border:1px solid #e5e7eb;border-radius:10px;padding:18px}
.haze-mortgage__row{display:flex;gap:14px;margin-bottom:12px}
.haze-mortgage__row label{flex:1;display:flex;flex-direction:column;font-size:14px;gap:4px}
.haze-mortgage__result{font-size:20px;margin-top:8px}
.haze-mortgage__value{font-weight:700}
.haze-mortgage__disclaimer{color:#6b7280;font-size:12px;margin-top:10px}
@media(max-width:782px){.haze-search__layout{grid-template-columns:1fr}}

/* ---- Search + map page ---- */
.haze-search__filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.haze-search__filters input,.haze-search__filters select{padding:9px 11px;border:1px solid #d5d8dc;border-radius:8px;font-size:14px;background:#fff}
.haze-search__filters .haze-f-location{flex:1 1 220px;min-width:180px}
.haze-search__filters .haze-f-minprice,.haze-search__filters .haze-f-maxprice{width:120px}
.haze-search__go{background:#15503f;color:#fff;border:0;border-radius:8px;padding:10px 18px;cursor:pointer;font-weight:600}
.haze-search__go:hover{background:#0f3f31}
.haze-search__count{margin:12px 0 4px;color:#6b7280;font-size:14px}
.haze-search__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:8px;align-items:start}
.haze-search__layout--nomap{grid-template-columns:1fr}
.haze-search__results{max-height:80vh;overflow:auto;padding-right:4px}
.haze-search__layout--nomap .haze-search__results{max-height:none}
.haze-search__results .haze-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.haze-search__layout--nomap .haze-search__results .haze-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.haze-search__map{position:sticky;top:20px;height:80vh;border-radius:12px;overflow:hidden;background:#e9edf0}
.haze-empty{color:#6b7280;padding:24px 0}

/* Map marker popup */
.haze-pin{width:220px;font-family:inherit}
.haze-pin__img{height:110px;background-size:cover;background-position:center;border-radius:6px;margin-bottom:8px}
.haze-pin__price{font-weight:700;font-size:15px}
.haze-pin__addr{color:#555;font-size:13px;margin:2px 0 8px}
.haze-pin__link{display:inline-block;background:#15503f;color:#fff;padding:5px 12px;border-radius:6px;text-decoration:none;font-size:13px}

/* Status badge colours */
.haze-badge--for-sale{background:#15503f}
.haze-badge--under-offer,.haze-badge--under-application{background:#c47f17}
.haze-badge--sold{background:#b91c1c}
.haze-badge--for-rent{background:#1d4ed8}
.haze-badge--leased{background:#6b7280}
.haze-badge--withdrawn{background:#6b7280}

@media(max-width:860px){
  .haze-search__layout{grid-template-columns:1fr}
  .haze-search__map{position:relative;top:0;height:420px;order:-1}
  .haze-search__results{max-height:none}
}
