/* Booking overlay (assets/booking.js) */
html:has(.booking[open]){overflow:hidden}
.booking{width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid rgba(181,212,253,.18);border-radius:14px;background:#000C50;color:#fff;font:inherit;overflow:auto}
.booking::backdrop{background:rgba(0,6,40,.72);backdrop-filter:blur(4px)}
.booking-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:28px 28px 0}
.booking h2{margin:0;font-weight:800;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.05;letter-spacing:-.03em}
.booking-head p{margin:10px 0 0;color:#B5D4FD;font-weight:500}
.booking-close{flex:none;width:44px;height:44px;border:1px solid rgba(181,212,253,.3);border-radius:50%;background:none;color:#fff;font-family:inherit;font-size:1.6rem;line-height:1;cursor:pointer}
.booking-close:hover{border-color:#fff}
.booking-body{margin:24px 28px 0}
.booking-consent{display:grid;gap:20px;justify-items:start;padding:28px;border:1px dashed rgba(181,212,253,.35);border-radius:10px}
.booking-consent p{margin:0;color:#E3EAFF;max-width:52ch}
.booking-consent small{margin-top:-8px;font-size:.78rem;color:#B5D4FD}
.booking-consent small a{color:inherit}
.booking-load{padding:14px 22px;border:0;border-radius:6px;background:#D7FA79;color:#000C50;font-family:inherit;font-weight:600;font-size:.95rem;line-height:1;cursor:pointer;transition:transform .2s}
.booking-load:hover{transform:translateY(-2px)}
.booking-frame{position:relative;border-radius:10px;background:#fff;overflow:hidden}
.booking-frame p{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:#000C50;font-weight:600}
.booking iframe{position:relative;display:block;width:100%;height:min(720px,calc(100dvh - 220px));border:0}
.booking-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin:16px 28px 28px;font-size:.85rem;color:#B5D4FD}
.booking-foot a{color:#fff;font-weight:600}
.booking-foot span a{color:#D7FA79;font-weight:600}
.booking :focus-visible{outline:2px solid #D7FA79;outline-offset:3px}
@media (max-width:600px){
  .booking{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0}
  .booking-head{padding:20px 16px 0}
  .booking-body{margin:20px 16px 0}
  .booking-consent{padding:20px}
  .booking-foot{margin:16px}
  .booking iframe{height:calc(100dvh - 190px)}
}
