body.booking-drawer-open{overflow:hidden}
.booking-drawer{
  position:fixed;inset:0;z-index:220;
  display:flex;align-items:flex-end;justify-content:center;
  background:rgba(18,16,13,.58);
  opacity:0;visibility:hidden;
  transition:opacity .32s ease,visibility .32s ease;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
.booking-drawer.is-open{opacity:1;visibility:visible}
.booking-drawer-panel{
  width:100%;height:min(92svh,980px);
  display:flex;flex-direction:column;
  background:#f4f1ec;color:#282622;
  border-radius:24px 24px 0 0;overflow:hidden;
  box-shadow:0 -30px 90px rgba(18,16,13,.28);
  transform:translateY(102%);
  transition:transform .48s cubic-bezier(.22,.8,.24,1)
}
.booking-drawer.is-open .booking-drawer-panel{transform:none}
.booking-drawer-head{
  flex:0 0 auto;padding:14px clamp(20px,4vw,64px) 16px;
  border-bottom:1px solid rgba(40,38,34,.12);background:#f4f1ec
}
.booking-drawer-handle{width:46px;height:3px;border-radius:99px;background:rgba(40,38,34,.2);margin:0 auto 12px}
.booking-drawer-title-row{display:flex;align-items:center;justify-content:space-between;gap:24px}
.booking-drawer-title{margin:0;font:400 clamp(27px,3vw,42px)/1.05 var(--font-display);letter-spacing:-.02em}
.booking-drawer-title em{font-style:normal;color:#9b694c}
.booking-drawer-close{
  width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(40,38,34,.2);
  border-radius:50%;background:transparent;color:inherit;cursor:pointer;
  display:grid;place-items:center;font-size:25px;font-weight:300;line-height:1
}
.booking-drawer-actions{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
  margin-top:14px;min-width:0;max-width:100%
}
.booking-action{
  min-width:0;padding:11px 13px;border:1px solid rgba(40,38,34,.16);border-radius:10px;
  background:rgba(255,255,255,.58);color:#282622;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font:500 13px/1.2 var(--font);transition:background .2s ease,border-color .2s ease
}
.booking-action::after{content:"\2197";font-size:15px;font-weight:400;opacity:.55}
.booking-action:hover{background:#fff;border-color:rgba(40,38,34,.3)}
.booking-action.is-primary{background:#282622;border-color:#282622;color:#fff}
.booking-action.is-primary::after{content:"\2192"}
.booking-section-label{
  margin-top:15px;color:#6b6358;font:600 11px/1 var(--font);
  letter-spacing:.15em;text-transform:uppercase
}
.booking-search{
  display:grid;grid-template-columns:minmax(155px,1fr) minmax(155px,1fr) auto;
  gap:10px;align-items:end;margin-top:15px;min-width:0;max-width:100%
}
.booking-search-field{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%}
.booking-search-field span{font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:#6b6358}
.booking-search input{
  display:block;width:100%;min-width:0;max-width:100%;height:48px;box-sizing:border-box;
  border:1px solid rgba(40,38,34,.18);border-radius:8px;
  background:#fff;color:#282622;padding:0 13px;font:400 15px/1 var(--font);
  color-scheme:light
}
.booking-search-submit{
  min-height:48px;padding:0 22px;border:1px solid #282622;border-radius:999px;
  background:#282622;color:#fff;cursor:pointer;
  font:500 12px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;
  white-space:nowrap
}
.booking-search-note{min-height:18px;margin:8px 0 0;color:#6b6358;font-size:12px}
.booking-search-note.is-error{color:#9b3f32}
.booking-frame-wrap{position:relative;flex:1;min-height:0;background:#fff}
.booking-frame-loader{
  position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:#fff;
  color:#6b6358;font:500 12px/1 var(--font);letter-spacing:.15em;text-transform:uppercase;
  transition:opacity .25s ease
}
.booking-frame-wrap.is-loaded .booking-frame-loader{opacity:0;pointer-events:none}
.booking-frame{width:100%;height:100%;border:0;background:#fff}
.booking-external{
  position:absolute;right:68px;top:21px;
  font:500 12px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;
  border-bottom:1px solid currentColor;padding-bottom:3px
}
.quick-booking .booking-search-inline{grid-template-columns:1fr 1fr auto}
.quick-booking .booking-search-inline input{background:#faf8f3}
.quick-booking .booking-search-inline .booking-search-submit{min-width:190px}

@media(max-width:760px){
  .booking-drawer-panel{height:96svh;border-radius:18px 18px 0 0}
  .booking-drawer-head{padding:10px 16px 14px;overflow:visible}
  .booking-drawer-handle{margin-bottom:9px}
  .booking-drawer-title{font:500 24px/1.1 var(--font);letter-spacing:-.02em;padding-right:0}
  .booking-drawer-close{width:40px;height:40px;flex-basis:40px}
  .booking-external,
  .booking-drawer-actions,
  .booking-section-label,
  .booking-drawer-head .booking-search,
  .booking-drawer-head .booking-search-note{display:none}
  .quick-booking .booking-search-inline{grid-template-columns:1fr 1fr}
  .quick-booking .booking-search-inline .booking-search-submit{grid-column:1/-1;min-width:0}
}
@media(max-width:420px){
  .booking-drawer-title{font-size:22px}
  .booking-search input{padding:0 9px;font-size:14px}
}
@media(max-width:520px){
  html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
  .quick-booking{width:100%;max-width:100%;min-width:0;overflow:hidden;box-sizing:border-box}
  .quick-booking>*,.quick-booking .booking-search-inline>*{min-width:0;max-width:100%}
  .quick-booking .booking-search-inline{grid-template-columns:1fr;gap:10px;width:100%;margin-top:0}
  .quick-booking .booking-search-inline .booking-search-field,
  .quick-booking .booking-search-inline .booking-search-submit{grid-column:1;width:100%;min-width:0}
  .quick-booking .booking-search-inline .booking-search-field{padding:0;background:transparent;border:0;border-radius:0}
  .quick-booking .booking-search-inline input{
    display:block;min-width:0;max-width:100%;width:100%;height:50px;
    box-sizing:border-box;-webkit-appearance:none;appearance:none;font-size:16px
  }
  .quick-booking input[type="date"]::-webkit-date-and-time-value{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  .booking-drawer,.booking-drawer-panel,.booking-frame-loader{transition:none}
}
