.booking-dialog{width:min(800px,calc(100% - 34px))}
.booking-shell{min-height:0;padding:38px clamp(28px,5vw,58px) 30px}
.booking-brand{margin-bottom:20px}
.booking-progress{top:59px;right:77px}
.booking-step h2{font-size:clamp(48px,5.7vw,68px);margin-bottom:15px}
.booking-hint{max-width:560px;margin:0 0 22px;color:#715f52;font:400 14px/1.5 var(--sans)}
.service-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.service-options label{display:block;min-width:0}
.service-options label>span{min-height:64px;padding:11px 15px;border-radius:13px;background:#fffaf5;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:9px}
.service-options label>i{display:none}
.service-options strong{font:600 13px/1.25 var(--sans)}
.service-options input:checked+span{background:#eee2d4;color:#49382f;border-color:#af874c;box-shadow:inset 0 0 0 1px #af874c}
.service-options input:checked+span:after{content:"✓";flex:none;color:#956e39;font:700 16px/1 var(--sans)}
.service-options input:focus-visible+span{outline:2px solid #9b743e;outline-offset:2px}
.booking-actions{margin-top:22px;padding-top:16px}
@media(max-width:760px){
  .booking-dialog{width:100%;max-width:none;max-height:100svh;height:100svh;border-radius:0}
  .booking-shell{min-height:100%;padding:30px 23px 22px}
  .booking-brand{margin-bottom:17px}
  .booking-brand>img{width:44px;height:44px}
  .booking-progress{position:static;margin-bottom:24px}
  .booking-step h2{font-size:clamp(45px,12vw,58px);margin-bottom:12px}
  .booking-hint{margin-bottom:17px;font-size:12px;line-height:1.5}
  .service-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .service-options label:first-child{grid-column:1/-1}
  .service-options label>span{min-height:61px;padding:10px 11px;border-radius:11px}
  .service-options strong{font-size:11.5px;line-height:1.24}
  .service-options input:checked+span:after{font-size:14px}
  .booking-actions{margin-top:18px;padding-top:14px;padding-bottom:7px}
}

/* Booking controls have explicit alignment instead of font-baseline spacing. */
.booking-dialog{overscroll-behavior:contain}
.booking-brand{padding-right:190px}
.booking-close{top:42px;right:30px}
.booking-progress{top:63.5px;right:94px;align-items:center}
.booking-actions{gap:16px;position:relative;z-index:3}
.booking-actions button:disabled{cursor:default}
.booking-back{justify-content:flex-start;flex:none}
.date-field,.contact-fields label{min-width:0}
.date-field input,.contact-fields input,.contact-fields textarea{width:100%;min-width:0;font:400 16px/1.5 var(--sans);color:var(--ink)}
.time-options span{min-height:50px;line-height:1.25;padding:14px}
.time-options input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.service-options label:hover>span,.time-options label:hover span{transform:none}
.booking-success{margin:32px auto 12px}
@media(max-width:760px){
  .booking-dialog{height:100dvh;max-height:100dvh}
  .booking-shell{padding-bottom:max(22px,env(safe-area-inset-bottom));min-height:100dvh}
  .booking-brand{padding-right:50px}
  .booking-close{top:29px;right:21px}
  .booking-progress{margin-bottom:22px}
  .booking-actions{position:sticky;bottom:0;padding-top:14px;padding-bottom:max(8px,env(safe-area-inset-bottom));isolation:isolate}
  .booking-actions:before{content:"";position:absolute;z-index:-1;inset:-1px -8px 0;background:var(--ivory)}
  .booking-actions button{letter-spacing:.1em}
  .booking-next,.booking-submit{gap:20px}
  .booking-success h2{font-size:clamp(44px,12vw,58px)}
}

/* A fixed header and footer keep controls reachable on short screens. */
.booking-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 34px);overflow:hidden}
.booking-brand,.booking-progress,.booking-actions{flex-shrink:0}
.booking-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 2px 4px;scrollbar-width:thin;scrollbar-color:#c5b49b transparent}
.booking-actions{position:relative;bottom:auto}
.booking-actions:before{content:none}
.booking-step.active,.booking-success.active{animation:bookingFade .25s ease}
@keyframes bookingFade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.booking-step.active,.booking-success.active{animation:none}}
@media(max-width:760px){
  .booking-shell{height:100dvh;max-height:100dvh;min-height:0}
  .booking-content{flex:1;padding:2px 2px 8px}
  .booking-actions{margin-top:12px;padding-top:14px}
  .booking-success{margin-top:20px}
}
/* Service-specific availability and pending-approval request flow. */
.booking-date-field,.booking-time-field{border:0;padding:0;margin:20px 0 0;min-width:0}
.booking-date-field legend,.booking-time-field legend{font:600 9px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#7c6c60;padding:0;margin:0 0 10px}
.booking-date-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.booking-date-options label{position:relative;min-width:0}
.booking-date-options input{position:absolute;opacity:0}
.booking-date-options span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:12px 10px;border:1px solid var(--line);border-radius:12px;font:500 12px/1.45 var(--sans);cursor:pointer}
.booking-date-options input:checked+span{background:var(--ink);border-color:var(--ink);color:white}
.booking-date-options input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.booking-time-field .time-options{margin-top:0}
.booking-availability-message{font:400 12px/1.7 var(--sans);color:#756152;min-height:40px;margin:13px 0 0}
.booking-demo-note{font:500 10px/1.6 var(--sans);color:#927344;background:#eee4d3;padding:10px 13px;border-radius:9px;margin-top:14px}
.booking-availability-contact{font:400 12px/1.6 var(--sans);margin-top:15px;color:#756152}
.booking-availability-contact a{text-decoration:underline;text-underline-offset:3px}
.booking-retry{border:1px solid var(--gold);border-radius:999px;background:transparent;color:var(--ink);padding:9px 14px;font:600 11px/1.4 var(--sans);margin-top:8px;cursor:pointer}
.booking-error{font:500 12px/1.6 var(--sans);padding:12px 14px;border:1px solid #b46e59;background:#fff3ed;color:#8a3e2e;border-radius:10px;margin:0 0 18px}
.booking-approval-note{border-left:2px solid var(--gold);padding:12px 16px;background:#eee4d34f;margin-top:20px;color:#6b5544;font:400 12px/1.7 var(--sans)}
.booking-approval-note strong{display:block;font-weight:600;margin-bottom:5px}
.booking-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.booking-actions button:disabled{cursor:not-allowed}
.booking-submit{min-width:210px}
.booking-button-label{line-height:1.25}
.booking-content textarea{resize:vertical}
.booking-shell [hidden]{display:none!important}
@media(max-width:760px){
 .booking-date-options{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-date-options span{font-size:11px;min-height:50px}
 .booking-date-field,.booking-time-field{margin-top:17px}.booking-submit{min-width:0}.booking-actions{gap:10px}
 .booking-next,.booking-submit{padding:15px 17px!important;gap:14px}.booking-actions .booking-submit{font-size:9px;letter-spacing:.06em}
 .booking-approval-note{font-size:11px;padding:11px 13px}
}
.booking-approval-note{margin-bottom:22px}
