/* Favorent Buchungskalender – favorent.de Design-Tokens, mobil-first */
.favorent-booking{--fav-primary:#44909C;--fav-secondary:#A0C45C;--fav-accent:#F5A623;--fav-ink:#333;--fav-muted:#7A7A7A;--fav-line:#e6e6e6;--fav-soft:#f5f7f8;
  --free:#A0C45C;--booked:#e2e2e2;--sel:#44909C;--holiday:#fff3df;--school:#eaf3f5;
  font-family:'Lato',-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--fav-ink);width:100%;box-sizing:border-box}
.favorent-booking *,.favorent-booking *::before,.favorent-booking *::after{box-sizing:border-box}
.favbk-config,.favbk-err{padding:14px 16px;border:1px dashed var(--fav-line);border-radius:12px;color:var(--fav-muted)}
.favbk-skeleton{display:flex;align-items:center;gap:10px;padding:18px;border:1px solid var(--fav-line);border-radius:12px;color:var(--fav-muted)}
.favbk-spin{width:16px;height:16px;border:2px solid var(--fav-line);border-top-color:var(--fav-primary);border-radius:50%;display:inline-block;animation:favbk-rot .8s linear infinite}
@keyframes favbk-rot{to{transform:rotate(360deg)}}

.favbk-card{background:#fff;border:1px solid var(--fav-line);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.favbk-head{background:linear-gradient(120deg,#44909C,#37757f);color:#fff;padding:15px 20px;display:flex;align-items:center;gap:10px}
.favbk-h-ico{font-size:20px}
.favbk-h-t{font-size:17px;font-weight:700;line-height:1.2}
.favbk-h-s{font-size:12px;opacity:.9}
.favbk-body{padding:14px 16px}

/* Bundesland (Ferien-/Feiertagsregeln) – oben */
.favbk-region{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.favbk-region label{font-size:12.5px;font-weight:700;color:var(--fav-muted);white-space:nowrap}
.favbk-region-sel{flex:1;min-width:0;appearance:none;font-family:inherit;font-size:15px;padding:9px 30px 9px 11px;border:1px solid var(--fav-line);border-radius:10px;background:#fff;color:var(--fav-ink);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2344909C' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.favbk-region-sel:focus{outline:none;border-color:var(--fav-primary)}

/* Gewählter Zeitraum als Datums-Inputs – über dem Kalender */
.favbk-dates{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.favbk-date-f{flex:1 1 120px;min-width:0;display:flex;flex-direction:column;gap:5px}
.favbk-date-f>span{font-size:12px;font-weight:700;color:var(--fav-muted)}
.favbk-date-f input{font-family:inherit;font-size:16px;padding:11px 8px;border:1px solid var(--fav-line);border-radius:10px;color:var(--fav-ink);width:100%;background:#fff;line-height:1.1}
.favbk-date-f input:focus{outline:none;border-color:var(--fav-primary);box-shadow:0 0 0 3px rgba(68,144,156,.12)}
.favbk-date-f input:disabled{background:var(--fav-soft);color:var(--fav-muted)}
.favbk-date-arrow{padding-bottom:12px;color:var(--fav-muted);font-weight:800}
.favbk-reset{flex:0 0 auto;align-self:flex-end;appearance:none;cursor:pointer;font-family:inherit;font-size:19px;line-height:1;width:44px;height:44px;border:1px solid #f0b4b4;background:#fdecec;color:#d9534f;border-radius:10px}
.favbk-reset:hover{border-color:#e08585;background:#f8d7d7;color:#c9302c}

/* Monats-Navigation – große, deutlich abgesetzte Buttons */
.favbk-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.favbk-nav-b{appearance:none;cursor:pointer;font-family:inherit;font-size:24px;line-height:1;border:2px solid var(--fav-primary);background:var(--fav-soft);color:var(--fav-primary);border-radius:12px;width:48px;height:48px;font-weight:800;flex:0 0 auto;transition:background .12s,color .12s}
.favbk-nav-b:hover{background:var(--fav-primary);color:#fff}
.favbk-nav-b[disabled]{opacity:.3;cursor:default;border-color:var(--fav-line);background:#fff;color:var(--fav-muted)}
.favbk-nav-l{font-size:17px;font-weight:800;color:var(--fav-ink);text-align:center;flex:1}

/* Raster – Wochentag + große Datumszahl IN der Kachel */
.favbk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.favbk-cell{position:relative;aspect-ratio:1/.66;border:1px solid var(--fav-line);border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:default;user-select:none;min-height:40px;padding:2px}
.favbk-wd{position:relative;z-index:2;font-size:10.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--fav-muted);line-height:1}
.favbk-num{position:relative;z-index:2;font-size:18px;font-weight:800;line-height:1}
.favbk-cell.is-empty{border:none;background:transparent}
.favbk-cell.is-free{background:#f3f8ea;border-color:#cfe2b1;color:#3f5a16;cursor:pointer}
.favbk-cell.is-free .favbk-wd{color:#6f8a3f}
.favbk-cell.is-free:hover{background:#e7f1d2;border-color:#bcd697}
/* belegt = schraffiert */
.favbk-cell.is-booked{background-color:var(--booked);background-image:repeating-linear-gradient(45deg,rgba(120,120,120,.30) 0 2px,transparent 2px 8px);color:#8a8a8a}
.favbk-cell.is-booked .favbk-wd{color:#a2a2a2}
.favbk-cell.is-booked .favbk-num{text-decoration:line-through;text-decoration-thickness:1.5px}
.favbk-cell.is-checkout{background:linear-gradient(135deg,#f3f8ea 0 50%,var(--booked) 50% 100%);color:#5e5e5e;cursor:pointer}
.favbk-cell.is-past{opacity:.4}
.favbk-cell.is-sel{background:var(--sel);border-color:var(--sel)}
.favbk-cell.is-sel .favbk-wd,.favbk-cell.is-sel .favbk-num{color:#fff}
.favbk-cell.is-range{background:#d7e7ea;border-color:#bcd6da;color:#2c5a62}
.favbk-cell.is-range .favbk-wd{color:#5a8089}
/* Mindestaufenthalt: gesperrte Abreisetage (Teil der Pflicht-Nächte) */
.favbk-cell.is-tooshort{background-image:repeating-linear-gradient(45deg,rgba(68,144,156,.18) 0 3px,transparent 3px 9px);cursor:default}
.favbk-cell.is-sel-start{border-bottom-left-radius:10px;border-top-left-radius:10px}
.favbk-cell.is-sel-end{border-bottom-right-radius:10px;border-top-right-radius:10px}
/* Ferien-/Feiertags-Markierung (unter der Zahl) */
.favbk-cell .favbk-mk{position:absolute;z-index:1;left:5px;right:5px;bottom:3px;height:9px;border-radius:3px}
.favbk-cell .favbk-mk.is-school{background:#FFD400}
.favbk-cell .favbk-mk.is-public{background:var(--fav-accent)}
.favbk-cell.is-holiday{box-shadow:inset 0 0 0 2px var(--fav-accent)}
/* zusammenhängender freier Abschnitt */
.favbk-cell.is-stretch::after{content:"";position:absolute;top:4px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--fav-secondary)}
/* Aggregat (Mehrobjekt): wie viele frei */
.favbk-cell .favbk-cnt{position:absolute;top:3px;left:5px;font-size:9px;font-weight:800;color:var(--fav-primary)}

/* Legende */
.favbk-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px;font-size:12px;color:var(--fav-muted)}
.favbk-legend span{display:inline-flex;align-items:center;gap:6px}
.favbk-sw{width:14px;height:14px;border-radius:4px;border:1px solid var(--fav-line);display:inline-block}
.favbk-sw.free{background:#f3f8ea;border-color:#cfe2b1}
.favbk-sw.booked{background-color:var(--booked);background-image:repeating-linear-gradient(45deg,rgba(120,120,120,.30) 0 2px,transparent 2px 6px)}
.favbk-sw.sel{background:var(--sel);border-color:var(--sel)}
.favbk-sw.school{background:#FFD400}
.favbk-sw.public{background:var(--fav-accent)}

/* Objekt-Auswahl (Mehrobjekt) */
.favbk-objs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.favbk-obj{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:20px;border:1px solid var(--fav-line);background:#fff;font-size:13px;cursor:pointer}
.favbk-obj.is-on{background:var(--fav-primary);border-color:var(--fav-primary);color:#fff;font-weight:700}

/* Preis-/Auswahl-Karte inkl. Gäste-Auswahl */
.favbk-calc{margin-top:14px}
.favbk-guests{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--fav-ink);margin-bottom:10px}
.favbk-guests button{appearance:none;cursor:pointer;border:1px solid var(--fav-line);background:#fff;color:var(--fav-primary);width:34px;height:34px;border-radius:9px;font-size:18px;font-weight:700;line-height:1}
.favbk-guests button:hover{border-color:var(--fav-primary)}
.favbk-guests b{min-width:24px;text-align:center;font-size:16px}
.favbk-summary{margin-top:4px;border:1px solid var(--fav-line);border-radius:12px;padding:14px 15px;background:var(--fav-soft)}
.favbk-sum-t{font-size:13px;font-weight:800;color:var(--fav-primary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.favbk-sum-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;padding:4px 0}
.favbk-sum-row.is-total{border-top:1px solid #dfe4e6;margin-top:6px;padding-top:8px;font-weight:800;font-size:15px;color:var(--fav-ink)}
.favbk-sum-sub{color:var(--fav-muted);font-size:12px}
.favbk-opt{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px}
.favbk-cta{appearance:none;cursor:pointer;font-family:inherit;font-size:15px;font-weight:800;color:#fff;background:var(--fav-accent);border:none;border-radius:24px;padding:12px 18px;width:100%;margin-top:12px}
.favbk-cta:hover{filter:brightness(.96)}
.favbk-hint{font-size:12.5px;color:var(--fav-muted);margin-top:10px}

@media (max-width:480px){
  .favbk-body{padding:12px}
  .favbk-grid{gap:4px}
  .favbk-cell{aspect-ratio:1/1;min-height:46px;border-radius:9px;gap:1px}
  .favbk-num{font-size:16px}
  .favbk-wd{font-size:9.5px}
  .favbk-nav-b{width:44px;height:44px;font-size:22px}
  .favbk-h-t{font-size:16px}
  .favbk-region{flex-wrap:wrap;gap:6px}
  .favbk-region label{flex:0 0 100%}
}
