/* Basis */
.fe-immos{  color:#111; font-size:15px; }
.fe-immos *{ box-sizing:border-box; }

/* Toolbar */
.fe-immos__toolbar{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:12px; border-bottom:1px solid #eaeaea; position:sticky; top:0; background:#fff; z-index:5; }
.fe-toolbar-right{ display:flex; align-items:center; gap:12px; }
.fe-count{ font-weight:600; }
.fe-sort label{ margin-right:6px; font-size:14px; }
.fe-filter-toggle{ display:inline-flex; align-items:center; gap:8px; background:#fff; color:#111; border:1px solid #e2e2e2; padding:10px 14px; border-radius:24px; cursor:pointer; font-weight:600; }
.fe-filter-toggle:hover{ background:#f9f9f9; }

/* Tabelle */
.fe-table{ width:100%; border:1px solid #ddd; border-radius:6px; overflow:hidden; margin-top:12px; }
.fe-thead, .fe-row{ display:grid; grid-template-columns: 1.2fr 1.4fr 1fr 0.8fr 1fr 1.2fr 0.8fr; }
.fe-thead{ background:#f6f6f6; font-weight:600; color:#333; font-size:14px; }
.fe-th, .fe-td{ padding:14px 16px; display:flex; align-items:center; }
.fe-th{ cursor:pointer; }
.fe-row{ background:#fff; transition:background .15s ease; border-top:1px solid #f0f0f0; }
.fe-row:nth-child(even){ background:#f5f7f8; }
.fe-row:hover{ background:#ffcccc !important; }
.fe-td.price{ font-weight:700; }
.fe-center{ justify-content:center; }
.fe-link{ text-decoration:none; font-weight:600; color:#111; }
.fe-link:hover{ text-decoration:underline; }

/* Statuspunkt */
.fe-status-dot{ width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:8px; }

/* Footer: Mehr laden + Legende */
.fe-footer-row{ display:flex; align-items:center; justify-content:space-between; margin:16px 0 8px; }
.fe-loadmore{ display:inline-flex; align-items:center; gap:8px; background:#111; color:#fff; border:none; border-radius:24px; padding:10px 16px; cursor:pointer; font-weight:700; }
.fe-loadmore svg{ display:block; }
.fe-loadmore:hover{ filter:brightness(0.9); }

.fe-legend{ list-style:none; display:flex; gap:18px; margin:0; padding:0; align-items:center; color:#111; }
.fe-legend .dot{ width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:6px; }

/* Modal (Filter) */
.fe-modal{ position:fixed; inset:0; display:none; z-index:9999; }
.fe-modal.is-open{ display:block; }
.fe-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.35); backdrop-filter:blur(3px); }
.fe-modal__dialog{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:min(980px,90vw); max-height:90vh; overflow:hidden; background:#fff; border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,.25); display:flex; flex-direction:column; }
.fe-modal__close{ position:absolute; top:10px; right:12px; width:36px; height:36px; border:none; background:#F2F2F2; color:#111; border-radius:50%; cursor:pointer; font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; }
.fe-modal__header{ padding:16px 20px; border-bottom:1px solid #eaeaea; }
.fe-modal__body{ padding:16px 20px; overflow:auto; }
.fe-modal__footer{ padding:14px 20px; border-top:1px solid #eaeaea; display:flex; justify-content:flex-end; gap:10px; }
.fe-btn{ border:none; border-radius:12px; padding:12px 18px; font-weight:700; display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.fe-btn.fe-apply-btn{ background:#E3F20C; color:#111; }
.fe-btn.fe-apply-btn:hover{ filter:brightness(0.9); }
.fe-btn.fe-reset-btn{ background:#F2F2F2; color:#111; }
.fe-btn.fe-reset-btn:hover{ filter:brightness(0.95); }

/* Filtergrid & Chips */
.fe-immos__filters{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:900px){ .fe-immos__filters{ grid-template-columns:1fr; } }
.fe-filter-group { padding:0; }
.fe-filter-label { font-weight:500; margin-bottom:6px; font-size:14px; }
.fe-range{ display:flex; flex-direction:column; gap:8px; }
.fe-range-labels{ display:flex; justify-content:space-between; font-size:13px; color:#666; }
.fe-chiplist{ display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
.fe-chip{ background:#F2F2F2; border:none; border-radius:20px; padding:8px 16px; cursor:pointer; font-size:14px; box-shadow:inset 0 -1px 2px rgba(0,0,0,.05); }
.fe-chip.active{ background:#111; color:#fff; }
