/* Approved refinements. Base identity and hero artwork stay in site.css. */
:root { --ease-ui: cubic-bezier(.23,1,.32,1); }
.btn { cursor:pointer; }
.booking-open { overflow:hidden; }
.booking-dialog {
  width:min(1120px,calc(100% - 40px)); max-width:none;
  height:min(820px,calc(100dvh - 48px)); max-height:none;
  margin:auto; padding:0; border:0; border-radius:16px;
  color:#fff; background:#000; color-scheme:dark;
  box-shadow:0 24px 100px rgb(0 0 0 / .45);
}
.booking-dialog::backdrop { background:rgb(0 0 0 / .75); }
.booking-dialog[open] { display:flex; flex-direction:column; }
.booking-header { position:relative; padding:28px 76px 24px 28px; border-bottom:1px solid #292929; flex:none; }
.booking-header h2 { font-size:24px; line-height:1.2; letter-spacing:-.03em; font-weight:500; }
.booking-header p { font-size:15px; color:#a2a7b1; margin-top:8px; max-width:64ch; }
.booking-close { position:absolute; top:20px; right:20px; width:44px; height:44px; padding:12px; border:0; border-radius:50%; background:#202020; color:#fff; cursor:pointer; }
.booking-close svg { width:20px; height:20px; display:block; }
.booking-close:active { transform:scale(.97); }
.booking-close:focus-visible,.booking-footer a:focus-visible { outline:2px solid #a78bfa; outline-offset:3px; }
.booking-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:16px; }
.booking-status { padding:20px; color:#a2a7b1; text-align:center; font-size:15px; }
.booking-calendar { width:100%; min-height:430px; }
.booking-calendar iframe { min-width:0; width:100%; background:#000; }
.booking-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 24px; padding:8px 24px; border-top:1px solid #292929; color:#a2a7b1; font-size:13px; flex:none; }
.booking-footer a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:3px; color:#c4b5fd; }
@media (hover:hover) and (pointer:fine) { .booking-close:hover { background:#292929; } }
@media (max-width:640px) {
  .booking-dialog { width:calc(100% - 16px); height:calc(100dvh - 16px); border-radius:12px; }
  .booking-header { padding:24px 64px 20px 20px; }
  .booking-header h2 { font-size:22px; }
  .booking-header p { font-size:14px; }
  .booking-close { top:16px; right:12px; }
  .booking-body { padding:4px; }
  .booking-footer { padding:4px 16px; gap:0 16px; font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .booking-close:active { transform:none; } }
