.bm-booking{--bm-border:#dce3ea;--bm-text:#182433;--bm-muted:#667487;--bm-accent:#1266d4;--bm-accent-soft:#eaf3ff;--bm-success:#15803d;max-width:980px;margin:2rem auto;padding:clamp(1.2rem,3vw,2.2rem);border:1px solid var(--bm-border);border-radius:22px;background:#fff;color:var(--bm-text);box-shadow:0 16px 50px rgba(25,42,70,.08);font-family:inherit}.bm-booking *{box-sizing:border-box}.bm-booking__header{max-width:760px;margin-bottom:1.5rem}.bm-booking__eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;color:var(--bm-accent)}.bm-booking h2{margin:.1rem 0 .65rem;font-size:clamp(1.65rem,4vw,2.4rem);line-height:1.1}.bm-booking h3{margin:.2rem 0 1rem}.bm-booking p{color:var(--bm-muted)}.bm-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1.25rem 0 1.8rem}.bm-steps>span{display:flex;align-items:center;gap:.55rem;padding:.65rem .8rem;border-radius:12px;background:#f5f7fa;color:#7a8798;font-weight:700}.bm-steps>span small{font-weight:600}.bm-steps>span.is-active{background:var(--bm-accent-soft);color:var(--bm-accent)}.bm-steps>span.is-done{background:#ecfdf3;color:var(--bm-success)}.bm-feedback{margin:0 0 1rem;padding:.8rem 1rem;border-radius:10px;background:#f5f7fa}.bm-feedback[hidden]{display:none}.bm-feedback.is-error{background:#fff1f2;color:#a11227;border:1px solid #fecdd3}.bm-calendar{max-width:720px}.bm-calendar__toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:.9rem}.bm-calendar__toolbar h3{text-align:center;text-transform:capitalize;margin:0}.bm-icon-button{width:42px;height:42px;border:1px solid var(--bm-border);border-radius:50%;background:#fff;font-size:1.65rem;line-height:1;cursor:pointer}.bm-icon-button:disabled{opacity:.35;cursor:not-allowed}.bm-calendar__weekdays,.bm-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}.bm-calendar__weekdays span{text-align:center;color:var(--bm-muted);font-size:.78rem;font-weight:700;padding:.35rem}.bm-calendar__day,.bm-calendar__blank{min-height:72px;border-radius:12px}.bm-calendar__day{border:1px solid var(--bm-border);background:#f8fafc;color:#9aa5b2;padding:.5rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left}.bm-calendar__day span{font-weight:800;font-size:1rem}.bm-calendar__day small{font-size:.72rem}.bm-calendar__day.is-available{background:#fff;color:var(--bm-text);border-color:#9fc6f7;box-shadow:inset 0 -3px 0 var(--bm-accent);cursor:pointer}.bm-calendar__day.is-available:hover,.bm-calendar__day.is-available:focus-visible{background:var(--bm-accent-soft);outline:2px solid var(--bm-accent);outline-offset:1px}.bm-calendar__loading{grid-column:1/-1;padding:3rem;text-align:center;color:var(--bm-muted)}.bm-calendar__legend{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.bm-calendar__legend span{width:18px;height:5px;border-radius:9px;background:var(--bm-accent)}.bm-back{border:0;background:transparent;color:var(--bm-accent);padding:.4rem 0;margin-bottom:.7rem;cursor:pointer;font-weight:700}.bm-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;max-width:760px}.bm-slot{padding:1rem;border:1px solid var(--bm-border);background:#fff;border-radius:14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.25rem}.bm-slot:hover,.bm-slot:focus-visible{border-color:var(--bm-accent);background:var(--bm-accent-soft);outline:none}.bm-slot strong{font-size:1.05rem}.bm-slot span,.bm-slot small{color:var(--bm-muted)}.bm-selection{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:1rem;border-radius:14px;background:var(--bm-accent-soft);margin-bottom:1rem}.bm-selection strong{color:var(--bm-accent)}.bm-request-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:820px}.bm-field label{display:flex;flex-direction:column;gap:.4rem;font-weight:700}.bm-field input,.bm-field select,.bm-field textarea{width:100%;border:1px solid #b8c5d3;border-radius:10px;padding:.75rem .8rem;font:inherit;background:#fff;color:var(--bm-text)}.bm-field input:focus,.bm-field select:focus,.bm-field textarea:focus{outline:2px solid var(--bm-accent);outline-offset:1px;border-color:var(--bm-accent)}.bm-field--wide{grid-column:1/-1}.bm-privacy label{flex-direction:row;align-items:flex-start;font-weight:500}.bm-privacy input{width:auto;margin-top:.25rem}.bm-primary-button{border:0;border-radius:12px;background:var(--bm-accent);color:#fff;font:inherit;font-weight:800;padding:.9rem 1.2rem;cursor:pointer;min-width:220px}.bm-primary-button:hover{filter:brightness(.94)}.bm-primary-button:disabled{opacity:.6;cursor:wait}.bm-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important}.bm-success{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem;margin:1.4rem 0;border-radius:14px;background:#ecfdf3;border:1px solid #bbf7d0}.bm-success>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--bm-success);color:#fff;font-weight:800}.bm-success h3{margin:0 0 .35rem}.bm-success p{margin:0}@media(max-width:700px){.bm-booking{border-radius:14px;padding:1rem}.bm-steps>span{justify-content:center}.bm-steps small{display:none}.bm-calendar__day,.bm-calendar__blank{min-height:56px}.bm-calendar__day{padding:.4rem}.bm-calendar__day small{display:none}.bm-request-form{grid-template-columns:1fr}.bm-field--wide{grid-column:auto}}

/* Verfügbare Tage: bewusst keine vollständige Monatsmatrix. Es werden nur buchbare Tage gezeigt. */
.bm-availability-list{max-width:760px}.bm-availability-hint{margin:-.15rem 0 1rem;color:var(--bm-muted);font-size:.92rem}.bm-available-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.bm-available-day{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:.75rem;padding:1rem 1.05rem;border:1px solid #a9c9ef;border-radius:14px;background:#fff;color:var(--bm-text);font:inherit;text-align:left;cursor:pointer;box-shadow:0 3px 10px rgba(20,55,95,.04)}.bm-available-day:hover,.bm-available-day:focus-visible{border-color:var(--bm-accent);background:var(--bm-accent-soft);outline:2px solid var(--bm-accent);outline-offset:1px}.bm-available-day__date{min-width:0;font-weight:800;line-height:1.35;text-transform:capitalize}.bm-available-day__meta{white-space:nowrap;padding:.28rem .55rem;border-radius:999px;background:var(--bm-accent-soft);color:var(--bm-accent);font-size:.78rem;font-weight:750}.bm-available-day__arrow{font-size:1.6rem;line-height:1;color:var(--bm-accent);text-align:right}.bm-available-days__empty{grid-column:1/-1;display:flex;flex-direction:column;gap:.3rem;padding:1.3rem;border:1px dashed var(--bm-border);border-radius:14px;background:#f8fafc;color:var(--bm-muted)}.bm-available-days__empty strong{color:var(--bm-text)}

/* Danke-/Zusammenfassungsansicht nach erfolgreicher Anfrage */
.bm-success-screen{display:grid;grid-template-columns:52px minmax(0,1fr);gap:1rem;align-items:start;margin:1.4rem 0 0;padding:1.25rem;border:1px solid #bbf7d0;border-radius:16px;background:#f4fff7}.bm-success-screen__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--bm-success);color:#fff;font-size:1.35rem;font-weight:850}.bm-success-screen__content{min-width:0}.bm-success-screen h3{margin:.1rem 0 .45rem;font-size:1.35rem}.bm-success-screen h4{margin:1.25rem 0 .65rem;font-size:1rem}.bm-success-screen p{margin:.35rem 0;overflow-wrap:anywhere}.bm-success-notice{margin:1rem 0;padding:1rem;border:1px solid #f0c36c;border-radius:12px;background:#fff8e8;color:#664500}.bm-success-notice>strong{display:block;margin-bottom:.2rem;color:#5f4100}.bm-success-notice p{color:#664500}.bm-success-deadline{margin-top:.65rem!important}.bm-success-summary{margin:0;border:1px solid var(--bm-border);border-radius:12px;background:#fff;overflow:hidden}.bm-success-summary__row{display:grid;grid-template-columns:minmax(130px,34%) minmax(0,1fr);border-bottom:1px solid #e8edf2}.bm-success-summary__row:last-child{border-bottom:0}.bm-success-summary dt,.bm-success-summary dd{margin:0;padding:.7rem .8rem;min-width:0;overflow-wrap:anywhere;word-break:break-word}.bm-success-summary dt{font-weight:750;background:#f8fafc;color:#536173}.bm-success-summary dd{color:var(--bm-text)}.bm-success-help{margin-top:1rem!important;font-size:.9rem}

@media(max-width:700px){.bm-available-days{grid-template-columns:1fr}.bm-available-day{grid-template-columns:minmax(0,1fr) auto 18px;padding:.9rem}.bm-available-day__meta{font-size:.72rem}.bm-success-screen{grid-template-columns:1fr;padding:1rem}.bm-success-screen__icon{width:42px;height:42px}.bm-success-summary__row{grid-template-columns:1fr}.bm-success-summary dt{padding-bottom:.2rem;border-bottom:0}.bm-success-summary dd{padding-top:.2rem}}
@media(max-width:420px){.bm-available-day{grid-template-columns:minmax(0,1fr) 18px}.bm-available-day__meta{grid-column:1/-1;grid-row:2;justify-self:start;white-space:normal}.bm-available-day__arrow{grid-column:2;grid-row:1}.bm-calendar__toolbar{grid-template-columns:42px minmax(0,1fr) 42px}.bm-calendar__toolbar h3{min-width:0;font-size:1.05rem}.bm-success-screen,.bm-success-notice,.bm-success-summary{max-width:100%;overflow:hidden}}

/* Eigene Kapazitätswarnung statt Browser-Standardmeldung am Zahlenfeld. */
.bm-capacity-notice{grid-column:1/-1;display:grid;grid-template-columns:44px minmax(0,1fr);gap:.9rem;align-items:start;margin:0 0 1rem;padding:1rem 1.05rem;border:1px solid #f3b7bd;border-radius:14px;background:#fff5f5;color:#7f1d1d;box-shadow:0 8px 24px rgba(127,29,29,.08)}.bm-capacity-notice[hidden]{display:none}.bm-capacity-notice:focus{outline:3px solid rgba(190,24,45,.18);outline-offset:2px}.bm-capacity-notice__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#be123c;color:#fff;font-size:1.2rem;font-weight:900}.bm-capacity-notice__content{min-width:0}.bm-capacity-notice__content>strong{display:block;margin:.05rem 0 .3rem;color:#881337;font-size:1.02rem}.bm-capacity-notice__content p{margin:0;color:#7f1d1d;line-height:1.5;overflow-wrap:anywhere}.bm-capacity-notice__actions{display:flex;flex-wrap:wrap;gap:.55rem .8rem;align-items:center;margin-top:.8rem}.bm-capacity-notice__button,.bm-capacity-notice__link{min-height:40px;border-radius:10px;font:inherit;font-weight:750;cursor:pointer}.bm-capacity-notice__button{border:0;padding:.58rem .85rem;background:#be123c;color:#fff}.bm-capacity-notice__button:hover{filter:brightness(.94)}.bm-capacity-notice__link{border:1px solid #e9a9b2;padding:.55rem .8rem;background:#fff;color:#9f1239}.bm-capacity-notice__link:hover{background:#fff0f2}.bm-field input[name="persons"].bm-capacity-invalid{border-color:#be123c;box-shadow:0 0 0 3px rgba(190,24,45,.10)}

@media(max-width:700px){.bm-capacity-notice{grid-template-columns:38px minmax(0,1fr);padding:.9rem}.bm-capacity-notice__icon{width:36px;height:36px}.bm-capacity-notice__actions{display:grid;grid-template-columns:1fr}.bm-capacity-notice__button,.bm-capacity-notice__link{width:100%;text-align:center}}


/* Kein leeres Buchungsformular anzeigen, wenn aktuell kein Slot buchbar ist. */
.bm-booking-unavailable{box-sizing:border-box;max-width:760px;margin:2rem auto;padding:1rem 1.1rem;border:1px solid #dce3ea;border-radius:14px;background:#f8fafc;color:#182433;font-family:inherit}.bm-booking-unavailable strong{display:block;margin:0 0 .25rem;font-size:1rem}.bm-booking-unavailable span{display:block;color:#667487;line-height:1.5}@media(max-width:700px){.bm-booking-unavailable{margin:1rem auto;padding:.9rem 1rem;border-radius:12px}}


/* Nach erfolgreicher Anfrage bleibt ausschließlich die Danke-/Zusammenfassungsbox sichtbar. */
.bm-booking.bm-booking--success{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.bm-booking.bm-booking--success>.bm-booking__header,
.bm-booking.bm-booking--success>.bm-steps,
.bm-booking.bm-booking--success>.bm-feedback,
.bm-booking.bm-booking--success>.bm-step{display:none!important}
.bm-booking.bm-booking--success>.bm-success-screen{margin:0}
