body.booking-panel-open { overflow: hidden; }
#booking-panel {
  width: min(1120px, calc(100vw - 80px));
  height: min(820px, calc(100dvh - 96px));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 1px solid #e8e6df;
  border-radius: 24px;
  background: #fff;
  color: var(--ink);
  overflow: hidden;
  box-shadow: 0 24px 90px #0004;
}
#booking-panel[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; animation: booking-enter .2s ease-out; }
#booking-panel::backdrop { background: #17201991; backdrop-filter: blur(5px); }
.booking-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 22px 28px 18px; background: #f5efe6; border-bottom: 1px solid #e4ded4; }
.booking-panel-eyebrow { font: 500 11px/1.4 var(--body); text-transform: uppercase; letter-spacing: .15em; color: #62684b; margin-bottom: 7px; }
#booking-panel-title { font: 650 28px/1.2 var(--heading); letter-spacing: -.035em; margin: 0 0 8px; }
#booking-summary { font: 400 15px/1.5 var(--body); color: #4c4d45; }
#booking-panel-close { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid #d7d5cb; border-radius: 50%; background: #fff; color: #252a22; transition: background .15s; }
#booking-panel-close:hover { background: #dcdfae; }
#booking-panel-close svg { width: 19px; height: 19px; }
.booking-panel-content { position: relative; min-height: 0; background: #fff; }
#booking-frame { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
#booking-loading { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 18px; padding: 30px; text-align: center; background: #fff; }
.booking-loader { width: 30px; height: 30px; border: 3px solid #e9eadd; border-top-color: #66734d; border-radius: 50%; animation: booking-spin .8s linear infinite; }
#booking-loading-text { font-size: 16px; color: #595e50; }
#booking-retry { border: 1px solid #cdd1c2; border-radius: 30px; background: #f6f7f0; padding: 8px 18px; font-size: 14px; }
.booking-panel-footer { display: flex; justify-content: space-between; align-items: center; gap: 10px 22px; padding: 12px 28px; border-top: 1px solid #e8e8e0; background: #fafaf7; font: 400 12px/1.5 var(--body); color: #62655a; }
#booking-external { margin-left: auto; flex-shrink: 0; text-decoration: underline; text-underline-offset: 3px; color: #343d2a; }
@keyframes booking-enter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes booking-spin { to { transform: rotate(360deg); } }
@media (max-width: 760px) {
  #booking-panel { width: calc(100vw - 28px); height: calc(100dvh - 56px); margin: auto; border-radius: 20px; }
  .booking-panel-header { padding: 17px 16px 14px; gap: 14px; }
  #booking-panel-title { font-size: 23px; margin-bottom: 5px; }
  .booking-panel-eyebrow { font-size: 10px; margin-bottom: 6px; }
  #booking-summary { font-size: 13px; }
  #booking-panel-close { width: 42px; height: 42px; }
  .booking-panel-footer { padding: 10px 16px max(10px, env(safe-area-inset-bottom)); font-size: 11px; flex-wrap: wrap; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  #booking-panel[open], .booking-loader { animation: none; }
}

.destination-all-icon{display:flex;align-items:center;justify-content:center;gap:2px;width:64px;height:64px;flex-shrink:0;border-radius:12px;background:linear-gradient(135deg,#f4eee7,#e4e8d6);overflow:hidden}
.destination-all-icon img{width:30px;height:30px;object-fit:contain;margin:0 -7px;filter:drop-shadow(0 1px 2px #0002)}
.destination-all-icon img:nth-child(2){position:relative;z-index:1;width:36px;height:36px}
.booking-results{padding:26px 28px 22px;overflow:auto}
.booking-results-headline{font:700 clamp(24px,2.4vw,32px)/1.15 var(--heading);letter-spacing:-.035em;color:#20251f;margin:0 0 6px}
.booking-results-note{font-size:15px;line-height:1.55;color:#6a6e60;margin:0 0 20px}
.booking-results-list{display:grid;gap:12px}
.booking-result{display:flex;align-items:center;gap:16px;width:100%;padding:14px 18px 14px 14px;border:1px solid #ebe9e2;border-radius:20px;background:#fbfaf7;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.booking-result:hover{background:#fff;border-color:#c9d1b3;transform:translateY(-1px)}
.booking-result.is-available{background:#fff;border-color:#e3e1d9;box-shadow:0 6px 18px #2a2a1f0d}
.booking-result.is-empty{opacity:.6}
.booking-result-icon{width:56px;height:56px;flex-shrink:0;object-fit:contain}
.booking-result-copy{flex:1;min-width:0}
.booking-result-copy small{display:block;font:500 11px/1.3 var(--body);letter-spacing:.1em;text-transform:uppercase;color:#7d8172;margin-bottom:4px}
.booking-result-copy strong{display:block;font:700 20px/1.2 var(--heading);letter-spacing:-.03em;color:#20251f}
.booking-result-copy em{display:block;font:400 14px/1.4 var(--body);font-style:normal;color:#5c6052;margin-top:3px}
.booking-result-arrow{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#f0eee4;color:#2f4130;font-size:22px;line-height:1}
.booking-result.is-available .booking-result-arrow{background:#3b513a;color:#fff}
@media(max-width:760px){.booking-results{padding:18px 16px}.booking-result{gap:12px;padding:12px}.booking-result-icon{width:48px;height:48px}.booking-result-copy strong{font-size:17px}}
