/* Isolated compact prototype; all colors come from zellglueck.css. */
.home-page .booking-section{background:var(--cream)}
.home-page .visit{background:var(--soft-lavender);color:var(--petrol)}
.booking-section-layout{display:block!important}
.booking-layout.booking-wizard{display:block;width:100%;max-width:660px;height:auto;min-height:0;margin-inline:auto;padding:0;background:var(--cream-contrast);border:1px solid var(--line);border-radius:1rem;min-width:0;scroll-margin-top:0}
.booking-wizard>header,.booking-wizard>footer,.booking-wizard>.booking-intro{width:100%}
.booking-wizard [hidden]{display:none!important}
.wizard-header{display:block;padding:1.5rem 1.75rem 1rem;border-bottom:1px solid var(--line)}
.home-page main .wizard-header .eyebrow{font-size:.68rem;margin:0 0 .65rem}
.booking-wizard .wizard-header h2{font-size:clamp(1.65rem,4vw,2rem);line-height:1.1;margin:0;letter-spacing:-.035em;color:var(--petrol);text-wrap:balance}
.wizard-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;list-style:none;padding:0;margin:.9rem 0 0}
.wizard-stepper li{display:flex;align-items:center;gap:.4rem;font-size:.7rem;color:var(--petrol);border-top:2px solid var(--line);padding-top:.65rem}
.wizard-stepper li span{display:grid;place-items:center;width:1.4rem;height:1.4rem;border:1px solid var(--line);border-radius:50%;flex-shrink:0;font-variant-numeric:tabular-nums}
.wizard-stepper li[aria-current]{color:var(--terracotta);border-color:var(--terracotta);font-weight:700}
.wizard-stepper li[aria-current] span{background:var(--terracotta);border-color:var(--terracotta);color:var(--cream-contrast)}
.wizard-stepper .is-complete{border-color:var(--petrol)}
.wizard-stepper .is-complete span{background:var(--petrol);color:var(--cream-contrast)}
.wizard-content-heading{padding:1.25rem 0 1rem}
.wizard-title{font:600 1.45rem/1.2 'Bricolage Grotesque',sans-serif;margin:0 0 .5rem;color:var(--petrol);text-wrap:balance}
.wizard-title:focus{outline:none}
.wizard-selection{font-size:.75rem;line-height:1.5;margin:0;color:var(--petrol)}
.wizard-stage{padding:0 1.75rem 1.25rem;min-width:0;width:100%;overflow:visible}
.booking-feedback{font-size:.85rem;line-height:1.6;color:var(--petrol)}
.booking-wizard[data-availability='loading'] .booking-feedback,.booking-wizard[data-availability='error'] .booking-feedback{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:10rem;text-align:center;padding:1rem}
.booking-feedback .booking-load-status{margin:0;max-width:32ch}
.booking-feedback.is-loading .booking-load-status::before{content:'';display:block;width:1.4rem;height:1.4rem;margin:0 auto 1rem;border:2px solid var(--line);border-top-color:var(--terracotta);border-radius:50%;animation:wizard-loading 1s linear infinite}
.booking-feedback #booking-retry{margin-top:.5rem}
@keyframes wizard-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.booking-feedback.is-loading .booking-load-status::before{animation:none}}
.booking-wizard .booking-description{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;max-width:none;margin:0}
.booking-wizard .booking-event{height:auto;padding:1rem 2.25rem 1rem 1rem;min-height:86px;border-radius:.55rem;background:var(--cream-contrast)}
.booking-wizard .booking-event strong{font-size:1.13rem}
.booking-wizard .booking-event[aria-pressed=true]{background:var(--soft-lavender);border-color:var(--terracotta)}
.booking-wizard .booking-event[aria-pressed=true]::after{content:'✓';width:auto;height:auto;top:1rem;right:1rem;background:transparent;color:var(--terracotta);font-weight:700}
.booking-wizard .booking-picker{display:block;padding:0}
.booking-wizard .booking-date-panel,.booking-wizard .booking-times-panel{max-width:none;margin:0}
.booking-wizard .booking-month-nav{margin-bottom:.5rem}
.booking-wizard .booking-month-nav button{min-width:44px}
.booking-wizard .booking-weekdays{margin-bottom:.4rem}
.booking-wizard .booking-days button{min-height:44px;background:var(--cream);font-variant-numeric:tabular-nums}
.booking-wizard .booking-days button:disabled{background:transparent;opacity:1;color:var(--line)}
.booking-wizard .booking-days button[aria-pressed=true],.booking-wizard .booking-time[aria-pressed=true]{background:var(--petrol);color:var(--cream-contrast);border-color:var(--petrol)}
.booking-wizard .booking-days button[aria-current=date]{text-decoration-color:var(--terracotta)}
.booking-wizard .booking-times{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.booking-wizard .booking-time{font-variant-numeric:tabular-nums}
.booking-wizard .booking-time:hover{background:var(--soft-lavender)}
.booking-wizard .booking-confirmation{padding:0}
.booking-wizard .booking-chosen{padding:.75rem 1rem;margin:0 0 1rem;border-left:3px solid var(--terracotta);background:var(--soft-lavender);font-size:.8rem;line-height:1.6}
.booking-wizard button:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px}
.booking-wizard .booking-embed{min-height:25rem}
.booking-wizard .booking-embed.is-ready{min-height:0}
.booking-wizard[data-step='4'] .wizard-stage{padding-inline:1rem}
.booking-wizard[data-step='4'] .wizard-content-heading{padding-inline:.75rem}
.booking-wizard[data-step='4'] .booking-feedback.is-loading{display:flex;align-items:center;justify-content:center;min-height:8rem;text-align:center}
.wizard-footer{padding:1rem 1.75rem;border-top:1px solid var(--line)}
.wizard-navigation{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;margin-bottom:.75rem}
.wizard-navigation-note{font-size:.72rem;max-width:45%;line-height:1.5}
.wizard-next{margin-left:auto;min-height:44px;padding:.75rem 1rem;font:600 .8rem/1.2 'Manrope',sans-serif;cursor:pointer}
.wizard-next:disabled{background:var(--mist);border-color:var(--line);color:var(--petrol);cursor:default}
.booking-wizard .booking-fallback{padding:0;font-size:.7rem}
.booking-wizard .booking-service-note{max-width:none;font-size:.65rem;margin:.4rem 0 0}
.booking-wizard .booking-intro{padding:0 1.75rem .65rem;margin:0;font-size:.72rem}
.booking-wizard .booking-intro .text-link{min-height:32px}
.wizard-success{margin:2rem 0;color:var(--petrol)}
.wizard-success h4{font:600 1.5rem/1.2 'Bricolage Grotesque',sans-serif}
.wizard-success p{font-size:1rem;line-height:1.6}
@media(max-width:47.999rem){
 .wizard-header{padding:1rem 1rem .75rem}
 .booking-wizard .wizard-header h2{font-size:1.5rem}
 .wizard-content-heading{padding:1rem 0 .85rem}
 .wizard-title{font-size:1.3rem}
 .wizard-stage{padding:0 1rem .75rem}
 .booking-wizard[data-step='4'] .wizard-stage{padding-inline:.5rem}
 .booking-wizard[data-step='4'] .wizard-content-heading{padding-inline:.5rem}
 .wizard-stepper{gap:.3rem}
 .wizard-stepper li{flex-direction:column;align-items:flex-start;font-size:.64rem;gap:.35rem}
 .booking-wizard .booking-event{padding:.8rem 2rem .8rem .85rem}
 .booking-wizard .booking-times{grid-template-columns:repeat(3,minmax(0,1fr))}
 .booking-wizard .booking-weekdays,.booking-wizard .booking-days{gap:.15rem}
 .wizard-footer{padding:.85rem 1rem}
 .booking-wizard .booking-intro{padding:0 1rem .65rem}
 .wizard-selection{font-size:.7rem}
}
