.booking-section { position: relative; overflow: hidden; }
.booking-layout { position: relative; z-index: 1; }
.booking-ball { position: absolute; top: 12px; left: -80px; z-index: 0; width: 76px; height: 76px; opacity: 0; pointer-events: none; object-fit: contain; filter: drop-shadow(0 5px 7px rgba(18, 56, 44, .16)); }
.booking-section.is-ball-moving .booking-ball { animation: booking-ball-roll 5.8s cubic-bezier(.2, .75, .25, 1) .35s both; }
@keyframes booking-ball-roll { 0% { transform: translateX(0) rotate(0deg); opacity: 0; } 8% { opacity: .58; } 88% { opacity: .58; } 100% { transform: translateX(calc(100vw + 100px)) rotate(900deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .booking-ball { display: none; } }
