section.party-packages {
    div.title {
        display: flex;
        flex-direction: column;
        justify-content: center;
        max-width: 1000px;
        margin: 0 auto;
        text-align: center;
        text-wrap: balance;
            
        h2 {
            font-size: 3rem;
        }

        @media (max-width: 800px) {    
            h2 {
                font-size: 1.8rem;
            }
        }
    }

    div.packages {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
        justify-content: space-evenly;
        margin-top: 18px;

        > article {
            background-color: white;
            padding: 18px;
            border-radius: 4px;
            box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
            max-width: 400px;
            width: 100%;

            display: flex;
            gap: 12px;
            flex-direction: column;

            div.description {
                height: 100%;

                :not(:first-child) {
                    margin-top: 18px;
                }
            }

            div.costs {
                text-align: center;

                p.deposit {
                    font-size: 0.8rem;
                    font-weight: bold;
                }
            }

            button {
                display: flex;
                gap: 12px;
                align-items: center;

                span {
                    text-align: left;
                    flex: 1;
                }
            }

            &:not(.active) {
                div.journey-wrapper {
                    display: none;
                }
            }

            div.journey-wrapper {
                position: fixed;
                top: 0;
                left: 0;
                width: 100vw;
                height: 100vh;
                z-index: 100;

                display: flex;
                justify-content: center;
                align-items: center;

                div.backdrop {
                    position: absolute;
                    top: 0;
                    left: 0;
                    right: 0;
                    bottom: 0;
                    background-color: rgba(0, 0, 0, 0.5);
                    z-index: 100;
                }

                div.booking-journey {
                    z-index: 101;
                }
            }
        }
    }
    article.package-enquiry {
        display: none;

        &.active {
            display: flex;
        }

        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        z-index: 100;
        justify-content: center;
        align-items: center;

        div.backdrop {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: rgba(0, 0, 0, 0.5);
            z-index: -1;
        }
    }
}

div.booking-journey {    
    max-width: 600px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding: 18px;
    filter: drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.25));
    margin-top: 22px;

    background-color: white;
    padding: 22px;

    @media (max-width: 500px) {
        max-width: 90%;
    }

    div[data-loader]:has(div) {
        margin: 20px;
        height: 50px;
    }

    form {
        display: none;
        padding-top: 18px;

        &.active {
            display: block;
        }

        p.headline {
            font-weight: bold;
            font-size: 1.8rem;
            text-align: center;
        }

        p.description {
            text-align: center;
        }

        p.help {
            text-align: center;
            margin-top: 18px;
            font-size: 1rem;
            max-width: 80%;
            margin-left: auto;
            margin-right: auto;
        }

        div.input {
            max-width: 90%;
            margin-top: 18px;
            margin-left: auto;
            margin-right: auto;
        }

        p.input-field-help {
            font-size: 0.8rem;
            width: 100%;
            text-align: left;
        }

        button {
            margin-top: 18px;
            display: block;
            margin-left: auto;
            margin-right: auto;
        }
    }

    button[data-close], button[data-back-button] {
        --gap: 6px;
        position: absolute;
        top: var(--gap);
        padding: 8px;
        margin-top: 0;

        &[data-close] {
            right: var(--gap);
            --colour: rgb(223, 223, 223);
        }

        &[data-back-button] {
            left: var(--gap);
        }
    }

    button[data-back-button],button.next {
        display: flex !important;
        gap: 12px;

        &.next {
            margin-right: 0;
        }
    }

    button[data-reset-button] {
        margin-left: auto;
        margin-right: auto;
    }

    div.success, div.error {
        text-align: center;
        display: none;

        svg {
            width: 70px;
            height: 70px;

            display: block;
            margin: 0 auto;
            margin-bottom: 18px;
        }

        &.active {
            display: block;
        }

        p.title {
            font-weight: bold;
        }

        p.description {
            margin-top: 18px;
            margin-bottom: 18px;
        }
    }

    form[data-group="__scheduling"] {
        p.time-waiting, p.no-times-available {
            max-width: 90%;
            margin-left: auto;
            margin-right: auto;
            text-align: center;
        }

        div.times {
            max-width: 90%;
            flex-wrap: wrap;
            margin-left: auto;
            margin-right: auto;
            gap: 6px;

            label {
                border-radius: 4px;
                padding: 6px;
                cursor: pointer;
                gap: 6px;
                border: solid black 1px;

                &.waiting {
                    opacity: 0.8;
                }

                &.disabled {
                    opacity: 0.8;
                    cursor: not-allowed;
                    text-decoration: line-through;
                }
            }
        }
    }
}