/* ================= PROPERTY GRID ================= */
.grid-props{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-5);
}
@media (min-width:640px){.grid-props{grid-template-columns:repeat(2,1fr);gap:var(--sp-6)}}
@media (min-width:1024px){.grid-props{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1400px){.grid-props{grid-template-columns:repeat(4,1fr)}}

.p-card{
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;
  will-change:transform;
}
.p-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.p-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--gray-100)}
.p-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.p-card:hover .p-media img{transform:scale(1.06)}
.p-badges{position:absolute;top:.9rem;left:.9rem;display:flex;flex-wrap:wrap;gap:.3rem;z-index:2}
.p-badge{
  padding:.28rem .6rem;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;
  font-weight:600;border-radius:3px;background:rgba(15,45,32,.9);color:var(--cream);
  backdrop-filter:blur(4px);
}
.p-badge.gold{background:var(--accent);color:var(--primary-darker)}
.p-badge.red{background:var(--danger);color:#fff}
.p-price-overlay{
  position:absolute;left:0;right:0;bottom:0;padding:1.2rem 1rem .8rem;
  background:linear-gradient(180deg,transparent,rgba(10,31,22,.9));
  color:var(--cream);
}
.p-price-overlay .from{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;opacity:.75;margin-bottom:.15rem}
.p-price-overlay .amt{font-family:var(--font-serif);font-size:1.35rem;color:var(--accent-light);font-weight:500}
.p-body{padding:1.2rem 1.2rem 1.4rem;flex:1;display:flex;flex-direction:column}
.p-name{font-family:var(--font-serif);font-size:1.2rem;color:var(--ink);margin:0 0 .3rem;font-weight:600;line-height:1.2}
.p-dev{font-size:.78rem;color:var(--gray-500);letter-spacing:.05em;margin-bottom:.7rem}
.p-loc{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--gray-700);margin-bottom:.9rem}
.p-loc svg{width:14px;height:14px;color:var(--accent-dark);flex-shrink:0}
.p-meta{display:flex;gap:1rem;padding:.7rem 0;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);margin-bottom:.9rem}
.p-meta-item{flex:1;font-size:.8rem}
.p-meta-item strong{display:block;color:var(--ink);font-weight:600;font-size:.9rem}
.p-meta-item span{color:var(--gray-500);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;margin-top:.15rem;display:block}
.p-cta{
  display:inline-flex;align-items:center;gap:.4rem;
  color:var(--primary);font-size:.85rem;font-weight:600;
  margin-top:auto;letter-spacing:.05em;
  transition:gap var(--dur) var(--ease), color var(--dur) var(--ease);
}
.p-cta svg{width:14px;height:14px;transition:transform var(--dur) var(--ease)}
.p-card:hover .p-cta{color:var(--accent-dark)}
.p-card:hover .p-cta svg{transform:translateX(4px)}
