/* =====================================================
   Property Latest Listings – CSS
   ===================================================== */
.pll-section { font-family: 'Inter','Century Gothic',sans-serif; padding: 0; }
.pll-section * { box-sizing: border-box; margin: 0; padding: 0; }
.pll-heading { margin-bottom: 25px; }
.pll-grid { display: grid; gap: 24px; }
.pll-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.pll-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.pll-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.pll-grid.cols-6 { grid-template-columns: repeat(3, 1fr); }

.pll-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: #2d3748;
  display: block;
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow: 0 2px 10px rgba(0,0,0,.07);
}
.pll-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.15); }
.pll-card-img { position: relative; height: 220px; overflow: hidden; }
.pll-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.pll-card:hover .pll-card-img img { transform: scale(1.07); }
.pll-card-badge {
  position: absolute; top: 12px; left: 12px;
  background: rgba(26,60,94,.85);
  color: #fff; font-size: 10px; font-weight: 700;
  padding: 4px 11px; border-radius: 20px;
  text-transform: uppercase; letter-spacing: .07em;
  backdrop-filter: blur(4px);
}
.pll-card-body { padding: 16px 18px 20px; }
.pll-card-price { font-size: 22px; font-weight: 700; color: #241c14; margin-bottom: 4px; }
.pll-card-addr {
  font-size: 13px; color: #718096;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 10px;
}
.pll-card-meta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; margin-bottom: 10px; }
.pll-meta-item { font-size: 12px; font-weight: 500; color: #4a5568; display: flex; align-items: center; gap: 3px; }
.pll-meta-sep  { color: #cbd5e0; }
.pll-card-office { font-size: 11px; color: #a0aec0; border-top: 1px solid #f0f4f8; padding-top: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pll-card-mls { font-size: 11px; color: #a0aec0; }

/* empty state */
.pll-empty { text-align: center; padding: 40px; color: #718096; font-size: 14px; }

/* responsive */
@media (max-width: 1024px) {
  .pll-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
  .pll-grid.cols-6 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .pll-grid.cols-2, .pll-grid.cols-3, .pll-grid.cols-4, .pll-grid.cols-6 { grid-template-columns: 1fr; }
}
