.booking-hero{background:var(--teal-dark);color:#dcebe9;padding:80px 0 65px}.booking-hero h1{color:#fff;font-size:clamp(2.7rem,6vw,5rem)}.booking-hero p{max-width:740px}.booking-shell{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:start}.booking-card{background:#fff;border:1px solid #dfe9e7;border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}.booking-card h2{font-size:1.6rem}.step{display:flex;gap:16px;align-items:flex-start}.step>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;font-weight:900}.step p{color:var(--muted)}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin:25px 0 15px}.calendar-head button{border:0;background:var(--soft);color:var(--teal);font-size:2rem;border-radius:50%;width:44px;height:44px;cursor:pointer}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.calendar-week{font-weight:850;color:var(--teal);font-size:.8rem;margin-bottom:8px}.calendar-day{aspect-ratio:1;border:2px solid transparent;border-radius:12px;background:#f6f6f6;color:var(--ink);cursor:pointer;font-weight:900;transition:transform .15s,border-color .15s;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}.calendar-day:not(:disabled):hover{transform:translateY(-2px);border-color:var(--teal)}.calendar-day.day-available{background:#39a96b;color:#fff}.calendar-day.day-unavailable{background:var(--orange);color:#fff;opacity:1;cursor:not-allowed}.calendar-day.day-partial{background:linear-gradient(135deg,#f97316 0%,#f97316 49%,#fff 49%,#fff 51%,#39a96b 51%,#39a96b 100%);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55)}.calendar-day.selected{border-color:var(--teal-dark);box-shadow:0 0 0 3px rgba(11,79,89,.22)}.calendar-day:disabled:not(.day-unavailable){background:#f3f3f3;color:#b8bec0;cursor:not-allowed}.calendar-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;font-size:.82rem}.legend-item{display:flex;align-items:center;gap:7px}.legend-swatch{width:18px;height:18px;border-radius:5px}.legend-available{background:#39a96b}.legend-partial{background:linear-gradient(135deg,#f97316 0 49%,#fff 49% 51%,#39a96b 51%)}.legend-unavailable{background:var(--orange)}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 34px}.time-option{border:2px solid #dfe9e7;background:#fff;border-radius:12px;padding:16px;font-weight:900;color:var(--teal);cursor:pointer}.time-option:hover,.time-option.selected{border-color:var(--orange);background:#fff1e8;color:var(--orange-dark)}.time-option:disabled{color:#999;background:#f3f3f3;cursor:not-allowed}.form-step{border-top:1px solid #dfe9e7;padding-top:26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.form-grid label{font-weight:800;color:var(--teal-dark)}.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:7px;padding:13px 14px;border:1px solid #cbd8d6;border-radius:10px;font:inherit;background:#fff}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid rgba(249,115,22,.2);border-color:var(--orange)}.wide{grid-column:1/-1}#childPartyFields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px;border-radius:12px;background:#eef7f2;border:1px solid #b8ddc8}#childPartyFields[hidden]{display:none}.field-help{display:block;margin-top:6px;color:var(--muted);font-size:.78rem;font-weight:500}.consent{display:flex;gap:10px;font-size:.88rem;margin-bottom:22px}.form-message{margin:18px 0 0;font-weight:800}.form-message.success{color:#187847}.form-message.error{color:#b42318}@media(max-width:900px){.booking-shell{grid-template-columns:1fr}}@media(max-width:620px){.booking-card{padding:22px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}#childPartyFields{grid-template-columns:1fr}.calendar-grid,.calendar-week{gap:4px}.calendar-day{border-radius:9px}}

/* MTBFun kalenderstatus en legenda fix */
.calendar-day.day-available {
  background: #39a96b !important;
  color: #fff !important;
  border-color: #2f925c !important;
}

.calendar-day.day-unavailable {
  background: #f97316 !important;
  color: #fff !important;
  border-color: #e7650e !important;
  opacity: 1 !important;
  cursor: not-allowed;
}

.calendar-day.day-partial {
  background: linear-gradient(
    135deg,
    #f97316 0%,
    #f97316 48%,
    #fff 48%,
    #fff 52%,
    #39a96b 52%,
    #39a96b 100%
  ) !important;
  color: #fff !important;
  border-color: #d7e3e1 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.65);
}

.calendar-day.selected {
  border-color: #073f47 !important;
  box-shadow: 0 0 0 3px rgba(11,79,89,.24) !important;
}

.calendar-legend {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 22px !important;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #dfe9e7;
  font-size: .84rem;
  line-height: 1.3;
}

.legend-item {
  display: inline-flex !important;
  align-items: center;
  gap: 8px !important;
  white-space: nowrap;
}

.legend-swatch {
  display: inline-block !important;
  flex: 0 0 18px;
  width: 18px !important;
  height: 18px !important;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 5px;
}

.legend-available { background: #39a96b !important; }
.legend-unavailable { background: #f97316 !important; }
.legend-partial {
  background: linear-gradient(
    135deg,
    #f97316 0%,
    #f97316 46%,
    #fff 46%,
    #fff 54%,
    #39a96b 54%,
    #39a96b 100%
  ) !important;
}

@media (max-width: 620px) {
  .calendar-legend {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px !important;
  }
}
