/* Ergänzung Terminbuchung: eigener Namensraum, keine Cross-Origin-Zugriffe. */
.appointment-booking { background:#f5f5f5; padding:56px 70px 80px; scroll-margin-top:120px; color:#333; }
.appointment-booking__inner { max-width:1200px; margin:0 auto; }
.appointment-booking h2 { font-size:clamp(24px,3vw,36px); line-height:1.25; margin:0 0 16px; color:#333; }
.appointment-booking p { margin:0 0 24px; line-height:1.6; }
.appointment-booking__frame { display:block; box-sizing:border-box; width:100%; height:620px; height:clamp(560px,70svh,700px); border:0; border-top:5px solid var(--green-color, #23823e); border-radius:12px; background:white; box-shadow:0 6px 24px #00000012; }
.appointment-booking--sun .appointment-booking__frame { border-top-color:#f5cf30; }
.appointment-booking .appointment-booking__fallback { font-size:15px; margin-top:20px; }
.appointment-booking__fallback a { color:inherit; text-decoration:underline; }
/* Gleiche feste Abstände verhindern Überlappungen auch bei niedrigen Fenstern. */
html .fab-sticky { bottom:calc(50% + 64px) !important; }
html .fab-sticky2 { bottom:50% !important; }
.booking-cta { position:fixed; right:0; bottom:calc(50% - 64px); z-index:999999; display:flex; align-items:center; width:300px; height:54px; box-sizing:border-box; border-radius:30px 0 0 30px; background:#fff; color:#333; box-shadow:0 0 20px #00000050; transform:translateX(246px); transition:transform .25s; text-decoration:none; font:16px/1.25 'Titillium-Regular',sans-serif; }
.booking-cta:hover,.booking-cta:focus-visible,.booking-cta:focus-within,.booking-cta[open] { transform:translateX(0); }
.booking-cta:focus-visible,.booking-cta summary:focus-visible { outline:3px solid #a21d25; outline-offset:3px; }
.booking-cta__icon { display:grid; place-items:center; flex:0 0 54px; height:54px; color:#a21d25; }
.booking-cta__icon svg { width:30px; height:30px; }
.booking-cta__text { padding:0 10px 0 5px; }
.booking-cta--choice { display:block; }
.booking-cta summary { display:flex; align-items:center; cursor:pointer; list-style:none; height:54px; }
.booking-cta summary::-webkit-details-marker { display:none; }
.booking-cta__locations { position:absolute; top:60px; right:0; width:246px; background:white; box-shadow:0 4px 15px #0003; border-radius:8px 0 0 8px; padding:8px; box-sizing:border-box; }
.booking-cta__locations a { display:block; color:#333; padding:10px; text-decoration:underline; }
@media(max-width:900px) {
 .appointment-booking { padding:36px 64px 48px 20px; scroll-margin-top:90px; }
 .booking-cta { width:280px; height:48px; transform:translateX(232px); bottom:calc(var(--skopek-footer-h,54px) + 16px); }
 .booking-cta__icon { flex-basis:48px; height:48px; }
 .booking-cta summary { height:48px; }
 .booking-cta__locations { top:auto; bottom:56px; }
}
@media(prefers-reduced-motion:reduce) { .booking-cta { transition:none; } }

/* Einheitliches Grün für den Text „Jetzt Termin buchen“ auf allen Seiten. */
.booking-cta .booking-cta__text strong {
  color: var(--green-color, #23823e);
}
