.sb-booking {--sb-navy:#16324f;--sb-blue:#236f80;--sb-cyan:#27bce3;--sb-edge:#d4e1e9;--sb-edge-strong:#bfd4de;--sb-bg:#f5fafb;--sb-pale:#eef7fb;--sb-white:#ffffff;color:#16324f;max-width:none;margin:0;font-family:inherit;line-height:1.65}
.sb-booking *{box-sizing:border-box}
.sb-booking h2,.sb-booking h3{color:var(--sb-navy);margin:0 0 10px;line-height:1.15}
.sb-booking h2{font-size:clamp(32px,3.5vw,54px);letter-spacing:-.03em}
.sb-booking p{margin:0 0 14px}
.sb-booking .sb-fieldset{border:1px solid var(--sb-edge);border-radius:16px;padding:20px 20px 18px;margin:22px 0;background:var(--sb-white);min-width:0;box-shadow:0 9px 24px rgba(6,59,99,.045)}
.sb-booking legend{font-size:16px;font-weight:700;padding:0 10px;color:var(--sb-navy)}
.sb-booking .sb-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;margin:8px 0 0}
.sb-booking .sb-day{border:1px solid #9bbdc8;background:#f7fbfd;border-radius:10px;color:var(--sb-navy);padding:14px 12px;cursor:pointer;font:inherit;font-weight:700;transition:all .18s ease;box-shadow:inset 0 0 0 1px transparent}
.sb-booking .sb-day:hover,.sb-booking .sb-day:focus-visible{border-color:var(--sb-blue);outline:2px solid rgba(35,111,128,.16);outline-offset:2px;background:#eef8fb}
.sb-booking .sb-day.active{background:#2c7b8d;color:#fff;border-color:#2c7b8d;box-shadow:0 8px 18px rgba(35,111,128,.18)}
.sb-booking .sb-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sb-booking label span{display:block;margin-bottom:6px;font-weight:700;color:var(--sb-navy)}
.sb-booking input:not([type=checkbox]),.sb-booking select,.sb-booking textarea{width:100%;min-width:0;border:1px solid #a8bbc6;background:#fff;border-radius:9px;padding:11px 13px;min-height:46px;font:inherit;color:#182f42;transition:border-color .18s ease, box-shadow .18s ease, background .18s ease}
.sb-booking input:not([type=checkbox])::placeholder,.sb-booking textarea::placeholder{color:#6c8291}
.sb-booking input:focus-visible,.sb-booking select:focus-visible,.sb-booking textarea:focus-visible{outline:none;border-color:var(--sb-blue);box-shadow:0 0 0 3px rgba(39,188,227,.18)}
.sb-booking textarea{resize:vertical;min-height:98px}
.sb-booking .sb-block{display:block;margin:14px 0}
.sb-booking .sb-checkbox{display:flex;align-items:flex-start;gap:10px;margin:16px 0}
.sb-booking .sb-checkbox input{width:19px;height:19px;flex-shrink:0;margin-top:4px}
.sb-booking .sb-price{background:var(--sb-bg);border:1px solid #dceaf1;border-left:4px solid var(--sb-cyan);border-radius:10px;padding:16px 18px;margin:12px 0 18px}
.sb-booking .sb-price strong{font-size:23px;display:block;line-height:1.2;margin-bottom:4px}
.sb-booking .sb-price small{display:block;color:#456173;line-height:1.55}
.sb-booking .sb-price.is-placeholder{background:var(--sb-pale);border-color:#d5e7ee}
.sb-booking .sb-price.is-placeholder strong{font-size:17px}
.sb-booking .sb-submit{display:inline-flex;align-items:center;justify-content:center;background:var(--sb-navy);border:0;color:#fff!important;border-radius:9px;padding:14px 22px;font:inherit;font-weight:800;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;min-height:50px;box-shadow:0 8px 18px rgba(22,50,79,.14);transition:background .18s ease, transform .18s ease, box-shadow .18s ease}
.sb-booking .sb-submit:hover,.sb-booking .sb-submit:focus-visible{background:#22496d;transform:translateY(-1px);box-shadow:0 12px 22px rgba(22,50,79,.18)}
.sb-booking button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}
.sb-booking .sb-feedback{margin:12px 0 16px;white-space:normal}
.sb-booking .sb-feedback.error,.sb-booking .sb-special{padding:14px 16px;border-left:4px solid #b64f39;background:#fff5f2;color:#702c1b;border-radius:8px}
.sb-booking .sb-special[hidden]{display:none}
.sb-booking .sb-success{padding:24px;background:#f0f9f5;border:1px solid #a9d6bc;border-radius:12px}
.sb-booking .sb-success{scroll-margin-top:96px;outline:none}
@media(max-width:640px){.sb-booking .sb-success{scroll-margin-top:72px}}
.sb-booking .sb-loading{padding:16px 18px;background:var(--sb-pale);border:1px solid #d5e7ee;border-left:4px solid var(--sb-cyan);border-radius:10px}
.sb-booking .sb-honeypot{position:absolute!important;left:-99999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.sb-booking a{color:#236f80;text-decoration:underline}
@media(max-width:780px){.sb-booking h2{font-size:clamp(29px,7vw,45px)}.sb-booking .sb-fieldset{padding:16px}.sb-booking .sb-input-grid{grid-template-columns:minmax(0,1fr)}.sb-booking .sb-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sb-booking .sb-submit{width:100%}}
@media(max-width:480px){.sb-booking .sb-day-grid{grid-template-columns:1fr}.sb-booking .sb-fieldset{margin:18px 0}}
/* V0.1.2: schlanker, schrittweiser Buchungsdialog */
.sb-booking .sb-wizard-eyebrow{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--sb-blue);margin:0 0 8px}
.sb-booking .sb-wizard h2{font-size:clamp(27px,2.6vw,38px);margin-bottom:12px;letter-spacing:-.025em}
.sb-booking .sb-wizard-intro{font-size:16px;color:#456173;line-height:1.6;margin-bottom:21px}
.sb-booking .sb-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;margin:0 0 25px;padding:0}
.sb-booking .sb-progress li{list-style:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 3px 8px;border-bottom:3px solid #d6e4ed;text-align:center;font-size:13px;font-weight:700;color:#5b7180;line-height:1.3;min-width:0}
.sb-booking .sb-progress-number{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e9f1f5;color:#456173;font-weight:800}
.sb-booking .sb-progress li.is-current{color:var(--sb-navy);border-color:var(--sb-cyan)}
.sb-booking .sb-progress li.is-current .sb-progress-number{background:var(--sb-navy);color:white}
.sb-booking .sb-progress li.is-complete{color:#236f80;border-color:#7fbdc9}
.sb-booking .sb-progress li.is-complete .sb-progress-number{background:#d9f2f2;color:#1a6270}
.sb-booking .sb-step[hidden]{display:none!important}
.sb-booking .sb-step{animation:sb-appear .2s ease-out}
.sb-booking .sb-step h3{font-size:21px;margin:0 0 9px}
.sb-booking .sb-step>p{color:#456173;line-height:1.6;font-size:16px;margin-bottom:17px}
.sb-booking .sb-step>.sb-fieldset{margin:12px 0 15px}
.sb-booking .sb-step .sb-input-grid{margin:12px 0}
.sb-booking .sb-step .sb-input-full{grid-column:1/-1}
.sb-booking .sb-step-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:22px}
.sb-booking .sb-next{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-left:auto;border:0;border-radius:9px;background:var(--sb-navy);color:white;min-height:48px;padding:12px 19px;font:inherit;font-weight:700;cursor:pointer;transition:background .15s ease}
.sb-booking .sb-next:hover,.sb-booking .sb-next:focus-visible{background:#235c80}
.sb-booking .sb-back{border:1px solid #b6cad6;border-radius:9px;background:white;color:var(--sb-navy);min-height:47px;padding:11px 17px;font:inherit;font-weight:700;cursor:pointer}
.sb-booking .sb-back:hover,.sb-booking .sb-back:focus-visible{background:#eff8fc}
.sb-booking .sb-step button:focus-visible{outline:3px solid #27bce3;outline-offset:2px}
.sb-booking .sb-price-eyebrow{font-size:13px;font-weight:800;color:#236f80;letter-spacing:.02em;margin-bottom:3px}
.sb-booking .sb-price-note{margin-top:8px;font-weight:600}
.sb-booking .sb-care-notice{border:1px solid #b9d9e3;border-left:4px solid #167fad;background:#edf8fc;border-radius:10px;padding:16px 18px;margin:13px 0 0;color:#16324f}
.sb-booking .sb-care-notice[hidden],.sb-booking .sb-special[hidden]{display:none!important}
.sb-booking .sb-care-notice strong{display:block;margin-bottom:6px;font-size:16px}
.sb-booking .sb-care-notice p{margin:0;line-height:1.6}
.sb-booking .sb-recap{background:#f3f9fc;border:1px solid #d6e6ef;border-radius:11px;padding:14px 16px;margin:13px 0}
.sb-booking .sb-recap strong{display:block;margin-bottom:4px;color:#16324f}
.sb-booking .sb-recap p{margin:3px 0;font-size:15px}
.sb-booking .sb-terms{font-size:15px;line-height:1.65;color:#496376;margin:12px 0}
.sb-booking .sb-step .sb-checkbox span{font-weight:400;margin:0;font-size:16px;line-height:1.55}
.sb-booking .sb-feedback:empty{display:none}
@keyframes sb-appear{from{opacity:.75;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:640px){.sb-booking .sb-progress{gap:3px}.sb-booking .sb-progress li{font-size:12px;padding:8px 1px}.sb-booking .sb-progress-number{width:23px;height:23px}.sb-booking .sb-step-actions{flex-direction:column-reverse;align-items:stretch}.sb-booking .sb-next,.sb-booking .sb-back,.sb-booking .sb-submit{width:100%;margin:0}.sb-booking .sb-input-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.sb-booking .sb-step{animation:none}}
/* Schutz vor globalem .sb-page section/p-Styling der bestehenden Elementor-Seite. */
.sb-page .sb-booking .sb-step{padding:0;margin:0;background:transparent;min-width:0}
.sb-page .sb-booking .sb-step[hidden]{display:none!important}
.sb-page .sb-booking p{margin:0 0 13px;font-size:16px;line-height:1.62}
.sb-page .sb-booking .sb-wizard-eyebrow{font-size:13px;margin:0 0 7px}
.sb-page .sb-booking .sb-wizard-intro{font-size:16px;margin:0 0 20px}
.sb-page .sb-booking .sb-step>p{margin-bottom:16px}
.sb-page .sb-booking .sb-recap p{margin:3px 0;font-size:15px}
.sb-page .sb-booking .sb-care-notice p{margin:0}
.sb-page .sb-booking .sb-terms{font-size:15px;margin:12px 0}

/* V0.1.3: Accessibility/readability – independent of Elementor's root rem size. */
.sb-page .sb-booking{font-size:16px;line-height:1.6}
.sb-page .sb-booking .sb-wizard-eyebrow{font-size:13px;line-height:1.5}
.sb-page .sb-booking .sb-wizard-intro{font-size:16px;line-height:1.6}
.sb-page .sb-booking .sb-step h3{font-size:21px;line-height:1.3}
.sb-page .sb-booking .sb-step>p{font-size:16px;line-height:1.6}
.sb-page .sb-booking .sb-progress li{font-size:13px;line-height:1.4}
.sb-page .sb-booking .sb-progress-number{font-size:14px}
.sb-page .sb-booking .sb-fieldset legend{font-size:16px;line-height:1.4}
.sb-page .sb-booking label,.sb-page .sb-booking label span{font-size:16px;line-height:1.5}
.sb-page .sb-booking input:not([type=checkbox]),.sb-page .sb-booking select,.sb-page .sb-booking textarea{font-size:16px;line-height:1.5}
.sb-page .sb-booking .sb-step .sb-checkbox span{font-size:16px;line-height:1.5}
.sb-page .sb-booking .sb-day,.sb-page .sb-booking .sb-next,.sb-page .sb-booking .sb-back,.sb-page .sb-booking .sb-submit{font-size:16px;line-height:1.4}
.sb-page .sb-booking .sb-price strong{font-size:24px}
.sb-page .sb-booking .sb-price small,.sb-page .sb-booking small{font-size:14px;line-height:1.55}
.sb-page .sb-booking .sb-price-eyebrow{font-size:13px}
.sb-page .sb-booking .sb-terms{font-size:15px;line-height:1.6}
.sb-page .sb-booking .sb-recap p{font-size:15px;line-height:1.6}
@media(max-width:640px){.sb-page .sb-booking .sb-progress li{font-size:12px}}

/* Align the top of the wizard after Weiter/Zurück without hiding it behind a sticky header. */
#sb-booking-app{scroll-margin-top:96px}
@media(max-width:640px){#sb-booking-app{scroll-margin-top:72px}}
