.fh-booking-dialog {
  box-sizing: border-box;
  width: min(1100px, calc(100vw - 48px));
  height: calc(100vh - 48px);
  height: calc(100dvh - 48px);
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: #fff;
  color: #1c1c1c;
  overflow: hidden;
  box-shadow: 0 24px 80px rgb(0 0 0 / 35%);
}
.fh-booking-dialog::backdrop { background: rgb(0 0 0 / 65%); }
.fh-booking-shell { display: flex; flex-direction: column; height: 100%; }
.fh-booking-header { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.fh-booking-dialog .fh-booking-close {
  position: absolute;
  top: max(12px, env(safe-area-inset-top));
  left: max(12px, env(safe-area-inset-left));
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  border: 1px solid #97824c;
  border-radius: 6px;
  background: #97824c;
  background-image: none;
  color: #1c1c1c;
  line-height: 1;
  box-shadow: none;
  cursor: pointer;
}
.fh-booking-dialog .fh-booking-close:hover, .fh-booking-dialog .fh-booking-close:focus, .fh-booking-dialog .fh-booking-close:active { background: #aa9359; background-image: none; color: #1c1c1c; border-color: #aa9359; }
.fh-booking-close svg { display: block; flex: 0 0 22px; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.fh-booking-close:focus-visible, .fh-booking-fallback:focus-visible { outline: 3px solid #cbb77f; outline-offset: 2px; }
.fh-booking-content { position: relative; flex: 1 1 auto; min-height: 0; }
.fh-booking-frame { display: block; width: 100%; height: 100%; margin: 0; border: 0; background: #fff; }
.fh-booking-status { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; margin: 0; padding: 24px; background: #fff; color: #514324; font: 14px/1.4 system-ui, sans-serif; text-align: center; }
.fh-booking-status[hidden] { display: none; }
.fh-booking-loader { position: relative; display: grid; place-items: center; width: 96px; height: 96px; }
.fh-booking-loader-icon { display: block; width: 64px; height: 64px; object-fit: contain; border-radius: 50%; }
.fh-booking-ring { position: absolute; inset: 0; box-sizing: border-box; border: 3px solid #e9e3d4; border-top-color: #97824c; border-right-color: #97824c; border-radius: 50%; animation: fh-booking-spin 1s linear infinite; }
.fh-booking-loading-text { margin: 0; font: inherit; color: inherit; }
@keyframes fh-booking-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fh-booking-ring { animation: none; } }
.fh-booking-footer { font: 12px/1.4 system-ui, sans-serif; flex: 0 0 auto; padding: 3px 12px; background: #fff; border-top: 1px solid #e6e6e6; text-align: center; }
.fh-booking-fallback { color: #514324; font: 12px/1.4 system-ui, sans-serif; text-decoration: underline; }
@media (max-width: 767px) {
  .fh-booking-dialog { width: 100%; height: 100vh; height: 100dvh; border-radius: 0; }
  .fh-booking-footer { padding-bottom: max(3px, env(safe-area-inset-bottom)); }
}
