/* Family&Flats flat details page */
.ffp{--ink:#0f172a;--mut:#475569;--line:#e2e8f0;--green:#0b5d3b;max-width:1180px;margin:0 auto;padding:24px 16px 120px;color:var(--ink)}
.ffp a{color:inherit}
.ffp-crumbs{font-size:13px;color:var(--mut);margin:6px 0 14px}.ffp-crumbs a{text-decoration:none;color:var(--mut)}.ffp-crumbs a:hover{text-decoration:underline}.ffp-crumbs span{margin:0 6px}
.ffp-top{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:flex-end;margin-bottom:18px}
.ffp-badge{display:inline-flex;align-items:center;gap:8px;background:#e7f4ec;color:var(--green);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ffp h1{font-size:clamp(26px,3.4vw,38px);line-height:1.15;margin:10px 0 6px;font-weight:900}
.ffp-loc{margin:0;color:var(--mut);font-size:15px}
.ffp-gal{position:relative;background:#0f172a;border-radius:20px;overflow:hidden}
.ffp-stage{position:relative;height:min(68vh,600px);min-height:320px;display:flex;align-items:center;justify-content:center;background:#111827}
.ffp-stage img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;display:block}
.ffp-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ink);font-size:24px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.ffp-arrow.prev{left:14px}.ffp-arrow.next{right:14px}.ffp-arrow:focus-visible,.ffp-thumb:focus-visible,.ffp-lb button:focus-visible{outline:3px solid #facc15;outline-offset:2px}
.ffp-count{position:absolute;right:14px;bottom:14px;background:rgba(15,23,42,.78);color:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}
.ffp-cap{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.92);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}
.ffp-thumbs{display:flex;gap:8px;overflow-x:auto;padding:10px;background:#0b1220}
.ffp-thumb{flex:0 0 84px;height:64px;border:2px solid transparent;border-radius:10px;padding:0;overflow:hidden;background:#1f2937;cursor:pointer;opacity:.7}
.ffp-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ffp-thumb.on{border-color:#fff;opacity:1}
.ffp-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;margin-top:26px;align-items:start}
.ffp-sec{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:18px}
.ffp-sec h2{font-size:20px;margin:0 0 14px;font-weight:900}
.ffp-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}
.ffp-fact{background:#f8fafc;border-radius:14px;padding:14px}.ffp-fact dt{font-size:12px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.ffp-fact dd{margin:4px 0 0;font-size:17px;font-weight:900}
.ffp-sec p{margin:0;line-height:1.65;color:#334155}
.ffp-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.ffp-list li{display:flex;gap:10px;line-height:1.5}.ffp-list li:before{content:"\2713";color:var(--green);font-weight:900}
.ffp-note{background:#fffbeb;border:1px solid #fde68a;color:#78350f}.ffp-note p{color:#78350f;font-size:14px}
.ffp-side{position:sticky;top:96px}
.ffp-box{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.08)}
.ffp-lbl{font-size:12px;color:var(--mut);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ffp-price{font-size:34px;font-weight:900;margin:4px 0 2px}.ffp-psf{color:var(--green);font-weight:800;font-size:14px;margin:0 0 4px}.ffp-ref{color:var(--mut);font-size:13px;margin:0 0 16px}
.ffp-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box;border-radius:14px;padding:14px 16px;font-weight:900;font-size:16px;text-decoration:none;margin-top:10px;border:1px solid var(--ink)}
.ffp-btn.wa{background:#0f172a;color:#fff !important}.ffp-btn.ghost{background:#fff;color:var(--ink) !important}
.ffp-trust{margin:14px 0 0;font-size:13px;color:var(--mut);line-height:1.5}
.ffp-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ffp-mini{display:block;text-decoration:none;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.ffp-mini div{height:130px;background-size:cover;background-position:center}.ffp-mini b{display:block;padding:10px 12px 0}.ffp-mini span{display:block;padding:2px 12px 12px;color:var(--mut);font-size:14px}
.ffp-bar{display:none}
.ffp-lb{position:fixed;inset:0;background:rgba(2,6,23,.94);z-index:10000;display:none;align-items:center;justify-content:center}.ffp-lb.on{display:flex}
.ffp-lb img{max-width:94vw;max-height:88vh;object-fit:contain}.ffp-lb .x{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:0;font-size:24px;cursor:pointer;background:#fff}
.ffp-lb .arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:#fff;font-size:26px;cursor:pointer}.ffp-lb .prev{left:14px}.ffp-lb .next{right:14px}
@media(max-width:900px){.ffp-grid{grid-template-columns:1fr}.ffp-side{position:static}.ffp-facts{grid-template-columns:repeat(2,1fr)}
 .ffp-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:900;gap:12px;align-items:center;justify-content:space-between;background:#fff;border-top:1px solid var(--line);padding:10px 16px;box-shadow:0 -10px 30px rgba(15,23,42,.12)}
 .ffp-bar b{font-size:20px;display:block}.ffp-bar small{color:var(--mut)}.ffp-bar a{background:#0f172a;color:#fff;text-decoration:none;font-weight:900;border-radius:12px;padding:12px 18px}}
@media(max-width:520px){.ffp-stage{height:52vh}.ffp-sec{padding:18px}}

/* v2: portrait photos shown whole (3:4), thumbnails in a grid beside them */
.ffp-gal{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:14px;background:none;border-radius:0;overflow:visible}
.ffp-stage{height:auto;min-height:0;aspect-ratio:3/4;border-radius:20px;overflow:hidden;background:#e2e8f0}
.ffp-stage img{width:100%;height:100%;object-fit:cover}
.ffp-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-content:start;overflow-y:auto;max-height:640px;padding:0;background:none}
.ffp-thumb{flex:none;width:100%;height:auto;aspect-ratio:3/4;border-radius:12px;background:#e2e8f0;opacity:.75;border:2px solid transparent}
.ffp-thumb.on{border-color:#0f172a;opacity:1}
/* landscape source photos: wide stage, thumbs in a row below */
.ffp-gal.land{grid-template-columns:1fr}.ffp-gal.land .ffp-stage{aspect-ratio:16/10}
.ffp-gal.land .ffp-thumbs{display:flex;overflow-x:auto;overflow-y:hidden;max-height:none}.ffp-gal.land .ffp-thumb{flex:0 0 96px;aspect-ratio:4/3}
@media(max-width:900px){.ffp-gal{grid-template-columns:1fr}.ffp-stage{max-width:520px;margin:0 auto;width:100%}
 .ffp-thumbs{display:flex;overflow-x:auto;overflow-y:hidden;max-height:none;padding-bottom:4px}.ffp-thumb{flex:0 0 74px}}
@media(max-width:520px){.ffp-stage{height:auto}}
/* v2b: stable thumbnail tiles */
.ffp-thumbs{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:auto}
.ffp-thumb{position:relative;display:block;height:0;padding:0 0 133.33% 0;aspect-ratio:auto;overflow:hidden}
.ffp-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ffp-gal.land .ffp-thumb{height:auto;padding:0;aspect-ratio:4/3}
@media(max-width:900px){.ffp-thumb{height:0;padding-bottom:98px}.ffp-thumbs{display:flex}.ffp-thumb{flex:0 0 74px;padding-bottom:98px}}
.ffp-lb .cap{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#fff;font-weight:700;font-size:15px}
.ffp-thumb{cursor:zoom-in}
