/* FBA Restplätze – eigenständiges Styling, unter .fba-rp gekapselt
   (damit es sich nicht mit dem Theme beißt). Farben/Schrift = FBA-Look. */

.fba-rp{
  --rp-green:#6db33f; --rp-green-dark:#5a9a30; --rp-green-darker:#4a7c2f;
  --rp-tint:#f1f8ea; --rp-ink:#2b2b29; --rp-text:#4a4a47; --rp-muted:#8a8a84;
  --rp-line:#e7e7e2; --rp-radius:6px;
  font-family:"Roboto",system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--rp-text); line-height:1.6;
}
.fba-rp *{ box-sizing:border-box; }
.fba-rp-info{ padding:30px; background:var(--rp-tint); border-radius:var(--rp-radius); color:var(--rp-text); text-align:center; }

/* Kopf-Banner */
.fba-rp-header{ text-align:center; background:linear-gradient(160deg,#f4faee,#e8f4dc); border:1px solid #e3efd5; border-radius:var(--rp-radius); padding:48px 24px; margin:0 0 28px; }
.fba-rp-header-title{ color:var(--rp-green-dark); font-size:2.2rem; font-weight:500; line-height:1.1; margin-bottom:10px; }
.fba-rp-header p{ color:var(--rp-text); max-width:560px; margin:0 auto 22px; }

/* Voll gefüllter Button (Kursprogramm) */
.fba-rp-btn-solid{ display:inline-block; background:var(--rp-green); color:#fff; border:1px solid var(--rp-green); border-radius:var(--rp-radius); padding:12px 28px; font-weight:500; font-size:.95rem; text-decoration:none; transition:background .2s,border-color .2s; }
.fba-rp-btn-solid:hover{ background:var(--rp-green-darker); border-color:var(--rp-green-darker); color:#fff; }

/* Sticky Such-/Filterleiste – bleibt beim Scrollen oben (wie online) */
.fba-rp-controls{ position:sticky; top:var(--rp-sticky-top,0px); z-index:30; background:#fff; margin:0 -18px; padding:14px 18px; }
.fba-rp-controls .fba-rp-filters{ margin-bottom:0; }
.fba-rp-controls.is-stuck{ box-shadow:0 8px 18px rgba(0,0,0,.07); border-bottom:1px solid var(--rp-line); }
.fba-rp[data-sticky="0"] .fba-rp-controls{ position:static; }

/* Werkzeugleiste */
.fba-rp-toolbar{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:0 0 14px; }
.fba-rp-search{ display:flex; align-items:center; gap:8px; border:1px solid var(--rp-line); border-radius:var(--rp-radius); padding:2px 6px 2px 12px; background:#fff; flex:1; min-width:220px; max-width:380px; }
.fba-rp-search svg{ width:18px; height:18px; color:var(--rp-muted); flex:none; }
.fba-rp-search input{ flex:1; border:0; outline:none; font:inherit; font-size:.95rem; padding:9px 0; background:transparent; }
.fba-rp-sortwrap{ font-size:.9rem; color:var(--rp-text); display:inline-flex; align-items:center; gap:8px; }
.fba-rp-sort{ font:inherit; font-size:.9rem; color:var(--rp-ink); border:1px solid var(--rp-line); border-radius:var(--rp-radius); padding:9px 12px; background:#fff; cursor:pointer; }
.fba-rp-count{ margin-left:auto; font-size:.9rem; color:var(--rp-muted); white-space:nowrap; }
.fba-rp-count strong{ color:var(--rp-green-dark); }

/* Springe zu Monat */
.fba-rp-jump{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 14px; }
.fba-rp-jlabel{ font-size:.85rem; color:var(--rp-muted); }
.fba-rp-jump-btn{ border:1px solid var(--rp-green); color:var(--rp-green-dark); background:#fff; border-radius:999px; padding:5px 15px; font-size:.84rem; text-decoration:none; transition:all .16s; }
.fba-rp-jump-btn:hover{ background:var(--rp-green); color:#fff; }
.fba-rp-jump-btn.is-hidden{ display:none; }

/* Filter-Chips (Mehrfachauswahl) */
.fba-rp-filters{ margin:0 0 26px; }
.fba-rp-flabel{ display:block; font-size:.85rem; color:var(--rp-muted); margin-bottom:8px; }
.fba-rp-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.fba-rp-chip{ border:1px solid var(--rp-line); background:#fff; color:var(--rp-text); padding:6px 14px; border-radius:999px; font:inherit; font-size:.84rem; cursor:pointer; transition:all .16s; white-space:nowrap; }
.fba-rp-chip:hover{ border-color:var(--rp-green); color:var(--rp-green-dark); }
.fba-rp-chip.is-active{ background:var(--rp-green); border-color:var(--rp-green); color:#fff; }

/* Monats-Abschnitte */
.fba-rp-month{ padding:30px 0 6px; scroll-margin-top:120px; }
.fba-rp-month.is-empty{ display:none; }
.fba-rp-month-head{ display:flex; align-items:baseline; gap:12px; border-bottom:2px solid var(--rp-green); padding-bottom:10px; margin-bottom:24px; }
.fba-rp-month-head h2{ margin:0; font-weight:400; color:var(--rp-ink); font-size:1.6rem; }
.fba-rp-month-count{ font-size:.9rem; color:var(--rp-muted); }

/* Karten */
.fba-rp-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.fba-rp-card{ display:flex; flex-direction:column; border:1px solid var(--rp-line); border-radius:var(--rp-radius); background:#fff; overflow:hidden; cursor:pointer; transition:border-color .2s, box-shadow .2s, transform .2s; }
.fba-rp-card.is-hidden{ display:none; }
.fba-rp-card:hover{ border-color:var(--rp-green); box-shadow:0 8px 22px rgba(0,0,0,.06); transform:translateY(-3px); }

/* Kartenbild (mit Logo-Fallback) */
.fba-rp-card-img{ display:block; position:relative; aspect-ratio:16/10; background:var(--rp-tint); overflow:hidden; }
.fba-rp-online{ position:absolute; top:10px; left:10px; z-index:2; background:var(--rp-green-dark); color:#fff; font-size:.7rem; font-weight:500; letter-spacing:.02em; padding:4px 11px; border-radius:999px; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.fba-rp-card-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.fba-rp-card:hover .fba-rp-card-img img{ transform:scale(1.04); }
.fba-rp-card-img img.is-fallback{ object-fit:contain; padding:18% 26%; background:var(--rp-tint); transform:none; }
.fba-rp-card:hover .fba-rp-card-img img.is-fallback{ transform:none; }

.fba-rp-card-body{ padding:16px 18px 18px; flex:1; display:flex; flex-direction:column; }
.fba-rp-card-title{ font-size:1rem; font-weight:500; color:var(--rp-ink); line-height:1.35; margin:0 0 10px; }
.fba-rp-card-ref{ display:flex; align-items:center; gap:6px; font-size:.86rem; color:var(--rp-muted); margin-bottom:8px; }
.fba-rp-card-ref svg{ width:14px; height:14px; flex:none; }
.fba-rp-card-date{ color:var(--rp-green-dark); font-weight:500; font-size:.88rem; margin-bottom:2px; }
.fba-rp-card-meta{ font-size:.9rem; color:var(--rp-text); margin-bottom:12px; }
.fba-rp-price{ color:var(--rp-ink); font-weight:500; }
.fba-rp-card-fach{ align-self:flex-start; background:var(--rp-tint); color:var(--rp-green-dark); font-size:.74rem; line-height:1.35; padding:4px 10px; border-radius:4px; margin-bottom:12px; }
.fba-rp-card-status{ display:inline-flex; align-items:center; gap:7px; font-size:.82rem; color:var(--rp-green-dark); font-weight:500; margin-bottom:16px; }
.fba-rp-card-status::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--rp-green); box-shadow:0 0 0 3px var(--rp-tint); flex:none; }
.fba-rp-card-btn{ margin-top:auto; text-align:center; display:block; padding:11px 16px; border:1px solid var(--rp-green); border-radius:var(--rp-radius); color:var(--rp-green-dark); font-weight:500; font-size:.9rem; text-decoration:none; transition:background .2s,color .2s; }
.fba-rp-card-btn:hover{ background:var(--rp-green); color:#fff; }

/* Leerzustand */
.fba-rp-empty{ display:none; text-align:center; padding:60px 20px; color:var(--rp-muted); }
.fba-rp-empty.is-visible{ display:block; }
.fba-rp-reset{ margin-top:10px; border:1px solid var(--rp-green); background:#fff; color:var(--rp-green-dark); border-radius:var(--rp-radius); padding:10px 18px; font:inherit; cursor:pointer; }
.fba-rp-reset:hover{ background:var(--rp-green); color:#fff; }

/* Abschluss-Block + „Stand"-Zeile */
.fba-rp-footer{ text-align:center; padding:46px 24px 22px; margin-top:14px; border-top:1px solid var(--rp-line); }
.fba-rp-footer p{ color:var(--rp-text); max-width:560px; margin:0 auto 18px; }
.fba-rp-stand{ text-align:center; color:var(--rp-muted); font-size:.82rem; padding:14px; }

@media (max-width:1100px){ .fba-rp-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:820px){
  .fba-rp-grid{ grid-template-columns:repeat(2,1fr); }
  .fba-rp-count{ margin-left:0; width:100%; }
  /* Filter-Chips am Handy seitlich scrollbar statt umbrechen */
  .fba-rp-chips{ flex-wrap:nowrap; overflow-x:auto; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
  .fba-rp-chip{ flex:none; }
}
@media (max-width:520px){ .fba-rp-grid{ grid-template-columns:1fr; } .fba-rp-search{ max-width:none; } }
