/* A ghost drifts into view from each edge; only the reservation link receives taps. */
.ghost-booking {position:fixed;inset:0;z-index:45;overflow:hidden;pointer-events:none;contain:paint}
.ghost-booking__link {--ghost-direction:-1;position:absolute;left:10px;top:45%;width:90px;opacity:0;transform:translate3d(-125%,22px,0);filter:blur(7px);pointer-events:none;color:#3D1D53;text-decoration:none;transition:transform 1.6s ease-in-out,opacity 1.2s ease,filter 1.4s ease}
.ghost-booking__link--right {--ghost-direction:1;left:auto;right:10px;transform:translate3d(125%,22px,0)}
.ghost-booking__link.is-visible {opacity:1;transform:translate3d(0,0,0);filter:blur(0);pointer-events:auto}
.ghost-booking__figure {position:relative;display:block;animation:ghost-booking-drift 4.8s ease-in-out infinite;animation-play-state:paused}
.ghost-booking__figure::after {content:"";position:absolute;left:25%;bottom:0;width:50%;height:20px;background:#E7D8FF;border-radius:50%;filter:blur(12px);opacity:.3}
.ghost-booking__image {display:block;width:100%;height:auto;filter:drop-shadow(0 0 12px #D7BDFF99);user-select:none}
.ghost-booking__speech {position:absolute;bottom:calc(100% + 7px);left:0;display:block;width:max-content;padding:7px 10px;background:#FFFDFC;border:1.5px solid #673291;border-radius:15px;box-shadow:0 2px 0 #FFD57A,0 0 18px #D7BDFF44;font-size:15px;line-height:1.35;white-space:nowrap;font-weight:700;opacity:0;transition:opacity .6s ease}
.ghost-booking__speech::after {content:"";position:absolute;top:100%;left:26px;border:6px solid transparent;border-top-color:#FFFDFC;filter:drop-shadow(0 2px 0 #673291)}
.ghost-booking__link--right .ghost-booking__speech {left:auto;right:0}
.ghost-booking__link--right .ghost-booking__speech::after {left:auto;right:26px}
.ghost-booking__link.is-visible .ghost-booking__figure {animation-play-state:running}
.ghost-booking__link.is-visible .ghost-booking__speech {opacity:1;transition-delay:.55s}
.ghost-booking__link:focus-visible .ghost-booking__speech {outline:3px solid #FFD57A;outline-offset:4px}
.ghost-booking__link:is(:hover,:focus-visible) .ghost-booking__speech {background:#FFF5DA}
@keyframes ghost-booking-drift {
  0%,100% {transform:translate3d(0,0,0) rotate(calc(var(--ghost-direction) * -3deg));opacity:.88}
  35% {transform:translate3d(calc(var(--ghost-direction) * 5px),-12px,0) rotate(calc(var(--ghost-direction) * 2deg));opacity:1}
  70% {transform:translate3d(calc(var(--ghost-direction) * -3px),-6px,0) rotate(calc(var(--ghost-direction) * -1deg));opacity:.82}
}
html[data-halloween-motion="paused"] .ghost-booking,
html[data-stay-calendar-open] .ghost-booking,
html[data-home-dialog-open] .ghost-booking,
html[data-hotel-dialog-open] .ghost-booking {visibility:hidden}
@media (max-width:767px) {
  .ghost-booking__link {width:52px;left:6px}
  .ghost-booking__link--right {left:auto;right:6px}
  .ghost-booking__speech {padding:6px 8px;font-size:12px;border-radius:12px}
  .ghost-booking__speech::after {left:17px}
  .ghost-booking__link--right .ghost-booking__speech::after {right:17px}
}
@media (prefers-reduced-motion:reduce),print {.ghost-booking {display:none}}
