#booking-dialog {
  width: min(620px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid #d5cdb8;
  border-radius: 12px;
  background: #faf6e9;
  color: #183a2d;
  box-shadow: 0 24px 90px #0006;
  overflow: auto;
}
#booking-dialog::backdrop { background: rgb(7 24 18 / 72%); backdrop-filter: blur(3px); }
.booking-popup-header { display: flex; justify-content: space-between; gap: 20px; padding: 26px 28px 8px; }
.booking-popup-eyebrow { margin: 0 0 7px; font: 600 11px/1.4 'DM Sans', sans-serif; text-transform: uppercase; letter-spacing: .14em; }
#booking-popup-title { margin: 0 0 8px; font: 500 42px/1.05 'Cormorant Garamond', Georgia, serif; }
#booking-popup-description { margin: 0; font: 400 14px/1.5 'DM Sans', sans-serif; }
.booking-popup-close { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid #c7cbbb; border-radius: 50%; background: #eef0e4; color: #183a2d; font: 400 30px/1 sans-serif; cursor: pointer; }
.booking-popup-close:hover { background: #dde5d7; }
.booking-popup-close:focus-visible { outline: 3px solid #876e27; outline-offset: 3px; }
#booking-frame { display: block; width: 100%; height: min(450px, calc(100dvh - 185px)); border: 0; background: #faf6e9; }
body.booking-open { overflow: hidden; }
body.booking-open .booking-bar { visibility: hidden; }
@media (max-width: 600px) {
  #booking-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .booking-popup-header { padding: 22px 18px 8px; gap: 12px; }
  #booking-popup-title { font-size: 36px; }
  #booking-popup-description { font-size: 13px; }
  #booking-frame { height: min(420px, calc(100dvh - 180px)); }
}
