/* Featured Properties grid — shared styles for the homepage card grid.
   The cards themselves are generated into index.html from each property's
   data.json by build_static.py. */

.fp-section{margin:0;padding:3rem 1rem;background:#f9f9f9}
.fp-container{max-width:1200px;margin:0 auto}
.fp-heading{margin:0 0 1.25rem;font-size:clamp(24px,3vw,36px);font-weight:800;color:#111;text-align:left}
.fp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
@media (max-width:640px){ .fp-grid{grid-template-columns:1fr} }
.fp-card-link{display:block;background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.05);overflow:hidden;text-decoration:none;color:inherit}
.fp-hero{position:relative;width:100%;aspect-ratio:4/3;background:#000}
.fp-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(0.8);transition:transform .25s ease, filter .25s ease}
/* resting .25 (was 0): guarantees the white card text a contrast floor on bright photos */
.fp-overlay{position:absolute;inset:0;background:rgba(0,0,0,.25);transition:background .25s ease}
.fp-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:.5rem .75rem}
.fp-title{font-size:clamp(18px,2.6vw,28px);font-weight:800;letter-spacing:.02em;text-shadow:0 2px 6px rgba(0,0,0,.6);line-height:1.12;margin-bottom:.25rem}
.fp-sub{font-size:clamp(14px,2vw,22px);font-weight:700;text-shadow:0 2px 6px rgba(0,0,0,.6)}
.fp-card-link:focus-visible{outline:2px solid #0b5fff;outline-offset:2px}
.fp-card-link:hover .fp-overlay{background:rgba(0,0,0,.4)}
.fp-card-link:hover .fp-hero img{filter:brightness(0.7);transform:scale(1.02)}

/* Status sub-line (the "*PENDING*" / "*SOLD*" / "*LEASED*" line). */
.fp-sub--pending{color:inherit}
.fp-sub--sold{color:#B40101}
.fp-sub--leased{color:#B40101}
/* Preview builds only — drafts never reach the public site. */
.fp-sub--draft{color:#ffb703;font-weight:800;letter-spacing:.08em}
