/* ==========================================================================
   OSSA — property listing (/property, categories, rent/sale, locations)
   ========================================================================== */

.listing { padding: 120px var(--gutter) 60px; }
.listing .listing-title { margin-bottom: 28px; }

/* Search box */
.listing-search {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  padding: 16px;
  display: flex;
  align-items: stretch;
  gap: 16px;
}
.listing-search .ls-main { flex: 1; display: flex; flex-direction: column; gap: 10px; }
.listing-search .ls-label { font-family: var(--f-ui); font-size: 14px; color: var(--c-text); }
.listing-search input {
  width: 100%;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  padding: 10px 12px;
  font-family: var(--f-ui);
  font-size: 12px;
  outline: none;
}
.listing-search input:focus { border-color: var(--c-beige); }
.listing-search .ls-btn {
  width: 52px; flex: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--c-text);
  border-left: 1px solid var(--c-border);
  cursor: pointer;
}
.listing-search .ls-btn svg { width: 20px; height: 20px; }
.listing-search .ls-btn:hover { color: var(--c-orange); }

/* Sort + filter rows */
.listing-sort {
  display: flex; justify-content: flex-end; flex-wrap: wrap;
  gap: 24px;
  padding: 18px 0 14px;
  border-bottom: 1px solid var(--c-border);
}
.listing-filters { padding: 6px 0 22px; }
.filter-row {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 18px;
  padding: 7px 0;
}
.filter-row .fr-label { font-family: var(--f-ui); font-size: 11px; color: var(--c-text-70); }
.chip {
  font-family: var(--f-ui); font-size: 12px;
  color: var(--c-text);
  cursor: pointer;
  transition: color 0.2s ease;
  background: none; border: none; padding: 0;
}
.chip:hover { color: var(--c-orange); }
.chip.active { color: var(--c-orange); }

/* Pagination */
.listing-pager {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 0 26px;
  font-family: var(--f-ui); font-size: 12px; color: var(--c-text);
}
.listing-pager button { display: inline-flex; align-items: center; gap: 8px; color: var(--c-text); }
.listing-pager button:hover { color: var(--c-orange); }
.listing-pager button[disabled] { opacity: 0.35; pointer-events: none; }

.listing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 44px var(--grid-gap);
  min-height: 300px;
}
.listing-empty { padding: 60px 0; text-align: center; color: var(--c-text-70); font-family: var(--f-ui); font-size: 14px; }
@media (max-width: 1199px) and (min-width: 810px) { .listing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 809px) {
  .listing { padding-top: 100px; }
  .listing-grid { grid-template-columns: 1fr; }
  .listing-sort { justify-content: flex-start; }
}
