.forme-booking-dialog{--fb-accent:var(--booking-accent,#0750e9);--fb-ink:var(--booking-ink,#171717);border:0;padding:0;max-width:min(560px,calc(100vw - 24px));width:100%;max-height:min(92dvh,800px);border-radius:18px;background:#fffefa;color:var(--fb-ink);box-shadow:0 25px 90px #1118;font:400 15px/1.5 Arial,sans-serif;overflow:auto}
.forme-booking-dialog::backdrop{background:#101927aa;backdrop-filter:blur(6px)}
.forme-booking-dialog *{box-sizing:border-box}
.forme-booking-inner{padding:clamp(22px,5vw,34px)}
.forme-booking-top{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:24px}
.forme-booking-kicker{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--fb-accent);margin:0 0 7px}
.forme-booking-title{font-size:clamp(27px,6vw,38px);line-height:1.05;letter-spacing:-.045em;margin:0;font-weight:800}
.forme-booking-close{border:1px solid #dadada;background:transparent;border-radius:50%;width:37px;height:37px;flex:none;cursor:pointer;font-size:23px;line-height:1}
.forme-booking-close:hover,.forme-booking-close:focus-visible{border-color:var(--fb-accent);color:var(--fb-accent)}
.forme-booking-progress{display:flex;gap:5px;margin:0 0 23px}.forme-booking-progress span{height:4px;border-radius:3px;background:#e4e4e4;flex:1}.forme-booking-progress span.is-active{background:var(--fb-accent)}
.forme-booking-note{background:#f2f4f6;border-radius:9px;padding:11px 13px;color:#444;font-size:12px;line-height:1.45;margin:0 0 20px}
.forme-booking-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.11em;margin:0 0 10px;display:block}
.forme-booking-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:22px}
.forme-booking-option{border:1px solid #d8d8d8;background:transparent;color:inherit;text-align:left;border-radius:10px;padding:14px;min-height:68px;cursor:pointer;font:inherit;line-height:1.25}
.forme-booking-option strong{display:block;font-size:15px}.forme-booking-option small{display:block;color:#666;font-size:12px;margin-top:4px}.forme-booking-option[aria-pressed=true]{border:2px solid var(--fb-accent);background:color-mix(in srgb,var(--fb-accent) 6%,white);padding:13px}.forme-booking-option:hover{border-color:var(--fb-accent)}
.forme-booking-actions{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.forme-booking-btn{border:0;border-radius:100px;padding:12px 21px;min-height:45px;cursor:pointer;font:700 13px Arial,sans-serif}.forme-booking-btn-primary{background:var(--fb-accent);color:white;margin-left:auto}.forme-booking-btn-primary:hover{filter:brightness(.88)}.forme-booking-btn-primary:disabled{opacity:.38;cursor:not-allowed}.forme-booking-btn-quiet{background:#ececec;color:#222}
.forme-booking-month{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.forme-booking-month strong{font-size:20px}.forme-booking-month button{width:34px;height:34px;border:1px solid #ddd;background:transparent;border-radius:50%;cursor:pointer;font-size:20px}.forme-booking-month button:disabled{opacity:.25;cursor:not-allowed}
.forme-booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.forme-booking-weekday{text-align:center;color:#777;font-size:11px;font-weight:800;padding:4px}.forme-booking-day{aspect-ratio:1;border:0;border-radius:50%;background:transparent;cursor:pointer;color:inherit;font:700 14px Arial,sans-serif}.forme-booking-day:hover:not(:disabled),.forme-booking-day[aria-pressed=true]{background:var(--fb-accent);color:white}.forme-booking-day:disabled{opacity:.26;cursor:not-allowed}.forme-booking-blank{aspect-ratio:1}
.forme-booking-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.forme-booking-slot{border:1px solid #ddd;background:transparent;padding:10px 3px;border-radius:7px;font:700 13px Arial,sans-serif;cursor:pointer}.forme-booking-slot[aria-pressed=true],.forme-booking-slot:hover{border-color:var(--fb-accent);background:var(--fb-accent);color:#fff}
.forme-booking-field{display:block;margin-bottom:14px}.forme-booking-field span{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.forme-booking-field input{width:100%;border:1px solid #bbb;border-radius:7px;background:white;padding:12px;font:inherit}.forme-booking-field input:focus{outline:2px solid var(--fb-accent);outline-offset:1px}
.forme-booking-summary{border-top:1px solid #ddd;border-bottom:1px solid #ddd;padding:14px 0;margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:13px}.forme-booking-summary strong{display:block}.forme-booking-summary span{color:#626262}.forme-booking-success{font-size:15px}.forme-booking-success-icon{width:54px;height:54px;display:grid;place-items:center;background:var(--fb-accent);color:#fff;border-radius:50%;font-size:27px;margin:0 0 20px}.forme-booking-link{color:var(--fb-accent);text-underline-offset:3px}.forme-booking-contact-copy{margin:0 0 16px}
.forme-booking-dialog :focus-visible{outline:2px solid var(--fb-accent);outline-offset:3px}
@media(max-width:430px){.forme-booking-options{grid-template-columns:1fr}.forme-booking-dialog{max-height:96dvh}.forme-booking-inner{padding:20px}.forme-booking-option{min-height:55px}}
@media(prefers-reduced-motion:reduce){.forme-booking-dialog::backdrop{backdrop-filter:none}}

/* Theme-safe contrast and a distinct hover state for demo availability. */
.forme-booking-dialog{--fb-on-accent:var(--booking-on-accent,#fff)}
.forme-booking-btn-primary,.forme-booking-day[aria-pressed=true],.forme-booking-slot[aria-pressed=true]{color:var(--fb-on-accent)}
.forme-booking-day:hover:not(:disabled):not([aria-pressed=true]){background:color-mix(in srgb,var(--fb-accent) 12%,white);color:var(--fb-ink);outline:1px solid var(--fb-accent)}
.forme-booking-day[aria-pressed=true]:hover:not(:disabled){color:var(--fb-on-accent)}
.forme-booking-slot:hover:not([aria-pressed=true]){background:color-mix(in srgb,var(--fb-accent) 10%,white);color:var(--fb-ink);border-color:var(--fb-accent)}

.forme-booking-btn{display:inline-flex;align-items:center;gap:8px}.forme-booking-link{display:inline-flex;align-items:center;gap:5px}
.forme-booking-dialog svg.pfeil{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.forme-booking-title:focus{outline:none}
