body.booking-open{overflow:hidden}
.booking-dialog{position:fixed;inset:0 0 0 auto;width:min(560px,100%);max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border:0;padding:0;background:#fff;color:#30222c;overflow:hidden;box-shadow:-12px 0 50px #160b2633}
.booking-dialog::backdrop{background:rgba(28,13,38,.62)}
.booking-dialog.shop-dialog{width:min(780px,100%)}
.booking-shell{height:100%;display:flex;flex-direction:column}
.booking-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px 10px 22px;padding-top:max(10px,env(safe-area-inset-top));background:#2b0e48;color:#fff;flex:none}
.booking-top h2{font:500 1rem/1.5 var(--sans);letter-spacing:0;margin:0}
.booking-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;background:transparent;border:1px solid #ffffff55;color:#fff;border-radius:50%;font:300 1.875rem/1 var(--sans);cursor:pointer}
.booking-close:hover{background:#ffffff18}
.booking-close:focus-visible{outline:2px solid #dbbd8c;outline-offset:3px}
.booking-content{position:relative;flex:1;min-height:0;background:#fff}
.booking-frame{display:block;width:100%;height:100%;border:0;background:#fff}
.booking-loading{position:absolute;top:0;left:0;right:0;z-index:1;margin:0;padding:24px;background:#fff;font:400 1rem/1.7 var(--sans);color:#5d4d56;pointer-events:none}
.booking-bottom{flex:none;padding:4px 18px;background:#faf8f4;border-top:1px solid #e9e0e5;padding-bottom:max(4px,env(safe-area-inset-bottom))}
.booking-bottom a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font:500 .875rem/1.5 var(--sans);color:#54315f;text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.booking-dialog{width:100%;box-shadow:none}.booking-top{padding-left:18px}.booking-bottom{padding-left:16px;padding-right:16px}}
