.flexmate-search { --fm-border:#d9dfdf; --fm-muted:#667070; --fm-bg:#f7f9f9; --fm-accent:#234744; --fm-radius:10px; }
.flexmate-search-form { background:var(--fm-bg); border:1px solid var(--fm-border); border-radius:var(--fm-radius); padding:22px; margin:0 0 24px; }
.flexmate-natural-search > label { display:block; font-weight:700; font-size:1.05rem; margin-bottom:8px; }
.flexmate-search-box-wrap { position:relative; }
.flexmate-search-box { width:100%; min-height:54px; padding:0 16px; border:1px solid #b9c3c3; border-radius:8px; background:#fff; font-size:1.05rem; }
.flexmate-search-box:focus, .flexmate-filter select:focus { outline:2px solid rgba(35,71,68,.22); border-color:var(--fm-accent); }
.flexmate-search-hint { color:var(--fm-muted); margin:7px 0 0; font-size:.9rem; }
.flexmate-suggestions { position:absolute; z-index:999; left:0; right:0; top:calc(100% + 5px); background:#fff; border:1px solid var(--fm-border); border-radius:8px; box-shadow:0 10px 28px rgba(0,0,0,.13); overflow:hidden; max-height:360px; overflow-y:auto; }
.flexmate-suggestion { appearance:none; width:100%; border:0; border-bottom:1px solid #edf0f0; background:#fff; padding:11px 14px; display:flex; justify-content:space-between; gap:15px; text-align:left; cursor:pointer; color:inherit; }
.flexmate-suggestion:last-child { border-bottom:0; }
.flexmate-suggestion:hover, .flexmate-suggestion.is-active { background:#f0f5f4; }
.flexmate-suggestion small { color:var(--fm-muted); white-space:nowrap; }
.flexmate-filter-row { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)) auto; gap:10px; margin-top:18px; align-items:end; }
.flexmate-filter span { display:block; font-size:.86rem; font-weight:650; margin:0 0 5px; }
.flexmate-filter select { width:100%; min-height:44px; border:1px solid #b9c3c3; border-radius:7px; background:#fff; padding:0 10px; }
.flexmate-search-button { min-height:44px; padding:0 19px; border:0; border-radius:7px; background:var(--fm-accent); color:#fff; font-weight:700; cursor:pointer; white-space:nowrap; }
.flexmate-search-button:hover { filter:brightness(.94); }
.flexmate-live-chips, .flexmate-active-filters { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.flexmate-live-chips { margin-top:13px; }
.flexmate-live-chips:empty { display:none; }
.flexmate-active-filters { margin:0 0 18px; }
.flexmate-active-label { font-weight:650; }
.flexmate-filter-chip { display:inline-flex; align-items:center; gap:6px; border-radius:999px; background:#e8efee; color:#264642; padding:6px 10px; font-size:.88rem; line-height:1; }
.flexmate-filter-chip-removable { padding-right:6px; }
.flexmate-chip-remove { appearance:none; display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; padding:0; border:0; border-radius:50%; background:transparent; color:inherit; font-size:1.15rem; line-height:1; cursor:pointer; }
.flexmate-chip-remove:hover, .flexmate-chip-remove:focus { background:rgba(35,71,68,.12); outline:none; }
.flexmate-clear-search { appearance:none; border:0; background:transparent; padding:3px 4px; margin-left:4px; color:inherit; text-decoration:underline; font:inherit; font-size:.9rem; cursor:pointer; }
.flexmate-search.is-loading { opacity:.62; pointer-events:none; transition:opacity .15s ease; }
.flexmate-search.is-loading .flexmate-search-results { min-height:140px; }
.flexmate-results-heading { margin:0 0 15px; }
.flexmate-listing-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.flexmate-listing-card { border:1px solid var(--fm-border); background:#fff; overflow:hidden; border-radius:9px; box-shadow:0 1px 2px rgba(0,0,0,.035); }
.flexmate-card-image { display:block; background:#eef1f1; aspect-ratio:4/3; overflow:hidden; text-decoration:none; }
.flexmate-card-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .18s ease; }
.flexmate-card-image:hover img { transform:scale(1.015); }
.flexmate-card-placeholder { display:flex; height:100%; align-items:center; justify-content:center; color:var(--fm-muted); }
.flexmate-card-body { padding:14px 15px 16px; }
.flexmate-card-price { font-size:1.22rem; font-weight:800; }
.flexmate-card-body h3 { font-size:1rem; margin:.35rem 0 .15rem; line-height:1.35; }
.flexmate-card-body h3 a { color:inherit; text-decoration:none; }
.flexmate-card-location { color:var(--fm-muted); font-size:.9rem; margin-bottom:7px; }
.flexmate-card-facts { font-size:.93rem; }
.flexmate-pagination { margin-top:28px; display:flex; flex-wrap:wrap; gap:7px; }
.flexmate-pagination .page-numbers { display:inline-flex; min-width:38px; min-height:38px; align-items:center; justify-content:center; border:1px solid var(--fm-border); border-radius:6px; text-decoration:none; }
.flexmate-pagination .current { background:var(--fm-accent); color:#fff; border-color:var(--fm-accent); }
.flexmate-no-results { background:#f7f9f9; border:1px solid var(--fm-border); padding:22px; border-radius:8px; }
.flexmate-no-results p { margin:.4rem 0 0; }
@media (max-width:780px) { .flexmate-filter-row { grid-template-columns:repeat(2,minmax(120px,1fr)); } .flexmate-search-button { grid-column:1/-1; } }
@media (max-width:480px) { .flexmate-search-form { padding:16px; } .flexmate-filter-row { grid-template-columns:1fr 1fr; } }

.flexmate-community-archive { padding:42px 20px 64px; }
.flexmate-community-shell { max-width:1200px; margin:0 auto; }
.flexmate-community-header { margin:0 0 26px; }
.flexmate-community-header h1 { margin:.12em 0; }
.flexmate-community-eyebrow { margin:0; text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; font-weight:700; color:var(--fm-muted); }
.flexmate-community-description { max-width:820px; margin-top:12px; }
.flexmate-community-description > :last-child { margin-bottom:0; }

