/* FP360 Bridge IDX — front-end styles */
.fp-wrap, .fp-bar { --fp-blue:#7AA9C4; --fp-blue-d:#5d8fae; --fp-ink:#1f2d3a; --fp-muted:#5d6b78; --fp-line:#e3e9ee; font-family:'Inter',sans-serif; color:var(--fp-ink); box-sizing:border-box; }
.fp-wrap *, .fp-bar * { box-sizing:border-box; }
.fp-wrap { max-width:1280px!important; width:100%; margin:0 auto!important; padding:24px 20px 56px; }

/* ---- Search bar ---- */
.fp-bar { width:100%; max-width:1100px; margin:0 auto; }
.fp-tabs { display:inline-flex; background:rgba(255,255,255,.9); border-radius:14px 14px 0 0; padding:6px 6px 0; gap:4px; }
.fp-tab { cursor:pointer; padding:10px 26px; border-radius:10px 10px 0 0; font-weight:600; font-size:15px; color:var(--fp-muted); margin:0; }
.fp-tab input { display:none; }
.fp-tab.is-active { background:#fff; color:var(--fp-ink); box-shadow:0 -2px 0 var(--fp-blue) inset; }
.fp-fields { display:flex; gap:8px; background:#fff; padding:12px; border-radius:0 16px 16px 16px; box-shadow:0 18px 44px rgba(10,30,50,.18); align-items:stretch; }
.fp-field { flex:1 1 0; min-width:0; }
.fp-field--loc { flex:2.4 1 0; }
.fp-fields input[type=text], .fp-fields select { width:100%; height:50px; border:1px solid var(--fp-line)!important; border-radius:12px!important; padding:0 14px; font-size:15px; background:#f7f9fb; color:var(--fp-ink); font-family:inherit; }
.fp-fields input[type=text]:focus, .fp-fields select:focus { background:#fff; border-color:var(--fp-blue)!important; outline:none; }
.fp-btn { background:var(--fp-blue); color:#fff; border:0; border-radius:999px!important; height:50px; padding:0 30px; font-weight:600; font-size:15px; letter-spacing:.03em; cursor:pointer; white-space:nowrap; font-family:inherit; }
.fp-btn:hover { background:var(--fp-blue-d); }
.fp-btn--block { width:100%; }
.fp-bar--inline .fp-tabs { background:#eef3f7; }
.fp-bar--inline .fp-fields { box-shadow:0 8px 24px rgba(10,30,50,.08); border:1px solid var(--fp-line); }

/* Sell tab: only the address box + button */
.fp-bar.is-sell .fp-field:not(.fp-field--loc) { display:none; }
.fp-bar.is-sell .fp-field--loc { flex:1 1 auto; }

/* ---- More filters / count ---- */
.fp-more { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:16px 0 4px; }
.fp-chip { display:inline-flex; align-items:center; gap:6px; background:#eef4f8; border-radius:999px; padding:8px 14px; font-size:14px; cursor:pointer; margin:0; }
.fp-more select { margin-left:auto; height:40px; border-radius:10px!important; border:1px solid var(--fp-line)!important; padding:0 12px; font-family:inherit; }
.fp-count { margin:14px 0 18px; color:var(--fp-muted); font-size:15px; }
.fp-count b { color:var(--fp-ink); }
.fp-empty { background:#f5f8fa; border-radius:16px; padding:28px; text-align:center; color:var(--fp-muted); margin:20px 0; }

/* ---- Cards ---- */
.fp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:22px; }
.fp-card { display:block; background:#fff; border-radius:18px; overflow:hidden; text-decoration:none!important; color:var(--fp-ink)!important; box-shadow:0 6px 22px rgba(20,40,60,.08); border:1px solid var(--fp-line); transition:transform .2s ease, box-shadow .2s ease; }
.fp-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(20,40,60,.16); }
.fp-card-img { position:relative; aspect-ratio:4/3; background:#e9eef2; display:flex; align-items:center; justify-content:center; color:var(--fp-muted); }
.fp-card-img img { width:100%; height:100%; object-fit:cover; border-radius:0!important; }
.fp-badge { position:absolute; top:12px; left:12px; background:rgba(255,255,255,.95); color:var(--fp-ink); font-size:12px; font-weight:600; padding:5px 11px; border-radius:999px; letter-spacing:.03em; }
.fp-badge--inline { position:static; display:inline-block; background:#eef4f8; margin-bottom:8px; }
.fp-card-body { padding:16px 18px 18px; }
.fp-price { font-size:22px; font-weight:700; letter-spacing:-.01em; }
.fp-facts { display:flex; gap:14px; margin:6px 0 8px; color:var(--fp-muted); font-size:14px; }
.fp-facts b { color:var(--fp-ink); }
.fp-addr { font-weight:500; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fp-city { color:var(--fp-muted); font-size:14px; }
.fp-office { color:#8795a1; font-size:12px; margin-top:8px; }

/* ---- Pagination / disclaimer ---- */
.fp-pages { display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin:34px 0 10px; }
.fp-pages a, .fp-pages span { min-width:42px; height:42px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; border:1px solid var(--fp-line); text-decoration:none; color:var(--fp-ink); font-weight:500; }
.fp-pages .is-current { background:var(--fp-blue); color:#fff; border-color:var(--fp-blue); }
.fp-disclaimer { margin-top:36px; font-size:11.5px; line-height:1.6; color:#8795a1; border-top:1px solid var(--fp-line); padding-top:16px; }

/* ---- Detail page ---- */
.fp-back { display:inline-block; margin-bottom:14px; color:var(--fp-blue-d); text-decoration:none; font-weight:500; }
.fp-gallery-main { position:relative; width:100%; border-radius:20px; overflow:hidden; background:#111; height:min(62vw, 600px); }
.fp-gallery-main img { width:100%; height:100%; object-fit:contain; border-radius:0!important; }
.fp-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%!important; border:0; background:rgba(255,255,255,.9); font-size:28px; line-height:1; cursor:pointer; color:var(--fp-ink); box-shadow:none!important; padding:0; }
.fp-prev { left:14px; } .fp-next { right:14px; }
.fp-counter { position:absolute; bottom:12px; right:14px; background:rgba(0,0,0,.6); color:#fff; font-size:13px; padding:4px 10px; border-radius:999px; }
.fp-thumbs { display:flex; gap:8px; overflow-x:auto; padding:10px 0 4px; }
.fp-thumbs img { width:96px; height:68px; object-fit:cover; border-radius:10px!important; cursor:pointer; opacity:.6; flex:0 0 auto; }
.fp-thumbs img.is-active { opacity:1; outline:2px solid var(--fp-blue); }
.fp-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:40px; margin-top:26px; align-items:start; }
.fp-title { font-size:clamp(26px,3.4vw,36px); margin:0; line-height:1.15; }
.fp-subtitle { color:var(--fp-muted); font-size:17px; margin:4px 0 12px; }
.fp-price--big { font-size:32px; }
.fp-facts--big { font-size:16px; gap:22px; margin:10px 0 18px; }
.fp-detail h2 { font-size:21px; margin:30px 0 12px; }
.fp-remarks { line-height:1.75; color:#34424f; }
.fp-dl { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:0 28px; margin:0; }
.fp-dl div { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--fp-line); padding:10px 0; }
.fp-dl dt { color:var(--fp-muted); font-weight:400; }
.fp-dl dd { margin:0; font-weight:500; text-align:right; }
.fp-dl--wide { grid-template-columns:1fr; }
.fp-dl--wide div { display:block; } .fp-dl--wide dd { text-align:left; font-weight:400; margin-top:2px; }
.fp-map { border-radius:16px; overflow:hidden; aspect-ratio:16/8; background:#eef2f5; }
.fp-map iframe { width:100%; height:100%; border:0; }
.fp-office--detail { font-size:13px; margin-top:16px; }
.fp-detail-side { position:sticky; top:100px; }
.fp-lead { background:#fff; border-radius:20px; padding:24px; box-shadow:0 18px 44px rgba(20,40,60,.14); border:1px solid var(--fp-line); }
.fp-lead h3 { margin:16px 0 12px; font-size:19px; }
.fp-agent { display:flex; gap:12px; align-items:center; }
.fp-agent img { width:58px; height:58px; border-radius:50%!important; object-fit:cover; }
.fp-agent small { display:block; color:var(--fp-muted); }
.fp-lead input[type=text], .fp-lead input[type=email], .fp-lead input[type=tel], .fp-lead textarea { width:100%; margin:0 0 10px; border:1px solid var(--fp-line)!important; border-radius:10px!important; padding:12px 14px; font-family:inherit; font-size:15px; background:#f7f9fb; }
.fp-seg { display:flex; gap:6px; margin-bottom:12px; }
.fp-seg label { flex:1; font-size:13px; background:#eef4f8; border-radius:10px; padding:9px 8px; text-align:center; cursor:pointer; margin:0; }
.fp-seg input { margin-right:4px; }
.fp-hp { position:absolute; left:-9999px; }
.fp-small { font-size:11.5px; color:#8795a1; margin:8px 0 0; }
.fp-sent { background:#eaf6ee; color:#1c5c33; border-radius:12px; padding:16px; margin-top:16px; }
.fp-quick { display:flex; gap:8px; margin-top:14px; }
.fp-quick a { flex:1; text-align:center; font-size:13px; border:1px solid var(--fp-line); border-radius:999px; padding:9px; text-decoration:none; color:var(--fp-ink); }

/* ---- Mobile ---- */
@media (max-width: 900px) {
	.fp-detail-grid { grid-template-columns:1fr; }
	.fp-detail-side { position:static; }
}
@media (max-width: 760px) {
	.fp-fields { flex-wrap:wrap; border-radius:0 16px 16px 16px; }
	.fp-field--loc { flex:1 1 100%; }
	.fp-field { flex:1 1 calc(50% - 4px); }
	.fp-btn { width:100%; }
	.fp-tab { padding:9px 20px; }
	.fp-more select { margin-left:0; }
	.fp-gallery-main { height:72vw; }
}
