/* Inline booking panel. Shared by every page, including index.html which
   otherwise runs its own token set, so every value here carries a literal
   fallback and does not depend on the host page's variables. */
/* scroll-margin keeps the panel heading clear of the homepage's sticky nav
   when a CTA scrolls it into view. */
.booking{border-top:1px solid var(--rule,#E5E1DB);background:var(--white,#FFFFFF);scroll-margin-top:92px}
.booking[hidden]{display:none}
.booking-inner{max-width:1220px;margin:0 auto;padding:clamp(32px,5vh,56px) var(--gutter,32px)}
.booking-h{
  font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.2;
  color:var(--ink,#000000);margin-bottom:6px;
}
.booking-h:focus-visible{outline:2px solid #5A1F2A;outline-offset:4px}
.booking-lede{font-size:14px;line-height:1.6;color:#6B6055;margin-bottom:18px;max-width:60ch}
/* Fixed height reserved up front, so swapping the placeholder for the loaded
   iframe never moves anything below it. */
.booking-frame{
  position:relative;width:100%;height:clamp(620px,82vh,880px);
  background:#FFFFFF;border:1px solid var(--rule,#E5E1DB);
}
.booking-frame iframe{display:block;width:100%;height:100%;border:0}
.booking-msg{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;
  padding:24px;text-align:center;font-size:14px;line-height:1.6;color:#6B6055;
}
.booking-msg[hidden]{display:none}
.booking-msg a{color:#5A1F2A;font-weight:600;text-decoration:underline}
.booking-alt{margin-top:14px;font-size:12.5px;line-height:1.6;color:#6B6055}
.booking-alt a{color:#5A1F2A;font-weight:600;text-decoration:underline}
.booking-close{
  margin-top:14px;background:none;border:none;padding:0;cursor:pointer;
  font-family:inherit;font-size:12.5px;font-weight:600;color:#6B6055;text-decoration:underline;
}
.booking-close:hover{color:#000000}
@media(max-width:720px){
  .booking-frame{height:clamp(620px,92vh,820px)}
}
