body {
    overflow-x: hidden;
}

.step-container {
    opacity: 0;
    animation: slideInRight 0.35s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    background-color: #0b0b0f;
}

body.backward .step-container {
    animation: slideInLeft 0.35s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes slideInRight {
    0% {
        transform: translateX(100vw);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideInLeft {
    0% {
        transform: translateX(-100vw);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutLeft {
    0% {
        transform: translateX(0);
        opacity: 1;
    }

    100% {
        transform: translateX(-100vw);
        opacity: 0;
    }
}

@keyframes slideOutRight {
    0% {
        transform: translateX(0);
        opacity: 1;
    }

    100% {
        transform: translateX(100vw);
        opacity: 0;
    }
}

.step-wrapper {
    width: 100%;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
}

.step-wrapper.exit-left,
.step-wrapper.enter-right {
    position: absolute;
    top: 0;
    left: 0;
}

.step-wrapper.exit-left {
    transform: translateX(-100%);
    opacity: 0;
}

.step-wrapper.enter-right {
    transform: translateX(100%);
    opacity: 0;
}

.step-wrapper.exit-right {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(100%);
    opacity: 0;
}

.step-wrapper.enter-left {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(-100%);
    opacity: 0;
}

.step-wrapper {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
    height: 100%;
}

.step-wrapper.active {
    position: relative;
    opacity: 1;
    height: 100%;
}

#booking-stage {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: none !important;
    margin: 0;
    padding: 0;
    background-color: #0b0b0f;
    height: 100%;
}

.step-wrapper {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    padding: 0;

    box-sizing: border-box;
}

.step-content-inner {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 0 24px;
    height: 100%;
}

.step {
    width: 100%;
    margin: 0;
    padding: 0;
    height: 100%;
}

.step-wrapper.exit-left {
    transform: translateX(-100%);
    opacity: 0;
}

.step-wrapper.enter-right {
    transform: translateX(100%);
    opacity: 0;
}

.step-wrapper.exit-right {
    transform: translateX(100%);
    opacity: 0;
}

.step-wrapper.enter-left {
    transform: translateX(-100%);
    opacity: 0;
}

html {
    height: 100%;
}

body {
    height: 100%;
}