.booking-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;visibility:hidden;opacity:0;transition:opacity 220ms ease,visibility 220ms ease;}
.booking-modal.is-open{visibility:visible;opacity:1;}
.booking-modal__backdrop{position:absolute;inset:0;background:rgba(20,20,20,.7);backdrop-filter:blur(4px);}
.booking-modal__dialog{position:relative;width:min(940px,100%);height:min(780px,calc(100vh - 48px));overflow:hidden;background:#f6f4ef;border:1px solid rgba(255,255,255,.2);border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.34);transform:translateY(16px) scale(.985);transition:transform 220ms ease;}
.booking-modal__dialog--form{width:min(760px,100%);height:min(860px,calc(100vh - 48px));}
.booking-modal.is-open .booking-modal__dialog{transform:translateY(0) scale(1);}
.booking-modal__close{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;border:1px solid #d8d4c8;border-radius:50%;background:#f6f4ef;color:#1c1b18;font:600 24px/1 system-ui,sans-serif;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.12);}
.booking-modal__close:hover,.booking-modal__close:focus-visible{background:#fff;outline:2px solid #1f3d2f;outline-offset:2px;}
.booking-modal__frame{width:100%;height:100%;border:0;background:#fff;}
body.booking-modal-open{overflow:hidden;}
@media(max-width:640px){.booking-modal{padding:0;}.booking-modal__dialog{width:100%;height:100dvh;border:0;border-radius:0;}}
@media(prefers-reduced-motion:reduce){.booking-modal,.booking-modal__dialog{transition:none;}}
