.hero-slide {
    opacity: 0;
    transform: scale(1.04);
    transition: opacity 1.2s ease, transform 7s ease;
}

.hero-slide.is-active {
    opacity: 1;
    transform: scale(1.1);
}

.hero-dot {
    height: 3px;
    width: 2rem;
    background: rgb(255 255 255 / 35%);
    transition: width .35s ease, background-color .35s ease;
}

.hero-dot.is-active {
    width: 3.5rem;
    background: #c6ff00;
}

.motion-ready .hero-kicker,
.motion-ready .hero-title,
.motion-ready .hero-copy,
.motion-ready .hero-actions,
.motion-ready .hero-dots {
    opacity: 0;
    transform: translateY(22px);
    animation: hero-enter .75s cubic-bezier(.2,.7,.2,1) forwards;
}

.motion-ready .hero-title { animation-delay: .12s; }
.motion-ready .hero-copy { animation-delay: .24s; }
.motion-ready .hero-actions { animation-delay: .36s; }
.motion-ready .hero-dots { animation-delay: .48s; }

.motion-ready .reveal-on-scroll {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
}

.motion-ready .reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.motion-ready .reveal-on-scroll[data-reveal-delay="1"] { transition-delay: .08s; }
.motion-ready .reveal-on-scroll[data-reveal-delay="2"] { transition-delay: .16s; }
.motion-ready .reveal-on-scroll[data-reveal-delay="3"] { transition-delay: .24s; }

.scroll-indicator span span {
    animation: scroll-pulse 1.8s ease-in-out infinite;
}

.booking-modal-overlay {
    display: grid;
    place-items: center;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 5.5rem .75rem 1.5rem;
    scrollbar-gutter: stable;
}

.booking-modal-panel {
    margin: 0 auto;
    max-height: calc(100vh - 7rem);
    max-height: calc(100dvh - 7rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.booking-step-indicators {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    position: sticky;
    top: 0;
    z-index: 5;
    width: 100%;
}

@media (min-width: 640px) {
    .booking-modal-overlay {
        padding: 6rem 1.5rem 2rem;
    }

    .booking-modal-panel {
        max-height: calc(100vh - 8rem);
        max-height: calc(100dvh - 8rem);
    }
}

@keyframes hero-enter {
    to { opacity: 1; transform: translateY(0); }
}

@keyframes scroll-pulse {
    0%, 100% { opacity: .35; transform: translateY(0); }
    50% { opacity: 1; transform: translateY(10px); }
}

@media (prefers-reduced-motion: reduce) {
    .hero-slide,
    .motion-ready .reveal-on-scroll,
    .scroll-indicator span span {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }

    .hero-slide.is-active,
    .motion-ready .reveal-on-scroll {
        opacity: 1;
    }
}
