.booking-popup {
  width:min(520px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  padding:38px;
  border:1px solid #555b62;
  border-radius:26px;
  background:#191c1f;
  color:#f5f5f1;
  box-shadow:0 28px 100px #0009;
  overflow:auto;
}
.booking-popup::backdrop { background:#000b; backdrop-filter:blur(4px); }
.booking-popup[open] { animation:booking-in .2s ease-out; }
.booking-popup-open { overflow:hidden; }
.booking-popup .booking-popup-close {
  position:absolute; top:12px; right:12px; width:44px; height:44px;
  display:grid; place-items:center; border:0; border-radius:50%;
  background:transparent; color:#e2e5e8; font-size:29px; line-height:1;
}
.booking-popup-close:hover { background:#343a40; }
.booking-popup-brand { width:38px; height:38px; margin-bottom:24px; }
.booking-popup .eyebrow { color:#d3d8dd; font-size:10px; letter-spacing:1.4px; margin-bottom:15px; }
.booking-popup h2 {
  font-family:Archivo,Oswald,Impact,sans-serif; font-weight:900;
  font-stretch:68%; font-variation-settings:"wdth" 68;
  font-size:49px; line-height:1.02; letter-spacing:-.5px;
  text-transform:uppercase; color:#fff; margin:0 0 20px;
}
.booking-popup h2:focus { outline:none; }
.booking-popup-description { color:#d2d7dc; font-size:15px; line-height:1.75; margin:0 0 22px; }
.booking-popup-meta { color:#d2d7dc; font-family:monospace; font-size:12px; line-height:1.7; letter-spacing:.5px; margin:0 0 24px; }
.booking-popup-cta {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  width:100%; min-height:56px; padding:17px 20px; border:0; border-radius:999px;
  background:#43cff6; color:#071318; font-weight:750; font-size:14px;
}
.booking-popup-cta:hover { background:#79ddfa; }
.booking-popup-later {
  display:block; margin:13px auto 0; min-height:44px; padding:10px 14px;
  border:0; border-radius:999px; background:transparent; color:#d2d7dc;
  font-size:12px; text-decoration:underline; text-underline-offset:3px;
}
.booking-popup-later:hover { color:#fff; background:#292e33; }
.booking-popup button:focus-visible { outline:3px solid #fff; outline-offset:4px; }
@keyframes booking-in { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
@media(max-width:540px) {
  .booking-popup { padding:29px 24px 22px; border-radius:23px; }
  .booking-popup h2 { font-size:42px; }
  .booking-popup-description { font-size:14px; }
  .booking-popup-meta { font-size:11px; }
  .booking-popup-cta { font-size:13px; padding-inline:17px; }
}
@media(prefers-reduced-motion:reduce) { .booking-popup[open] { animation:none; } }
@media print { body.booking-popup-open { overflow:visible; } .booking-popup,.booking-popup::backdrop { display:none!important; } }
