:root {
    --purple: #2c0e33;
    --offWhite: #f0edf4;
    --light: #fff;
    --desktopHeaderMaxWidth: 1264px;
    --topbarHeight: 54px;
    --desktopHeaderHeight: calc(var(--topbarHeight) + 86px);
    --mobileHeaderHeight: calc(var(--topbarHeight) + 64px);
    --generalContainerPadding: 1.875rem
}

/** Main **/
.instantQuote {
    display: flex;
    width: 100%;
    margin: calc(var(--mobileHeaderHeight) + 1.25rem) auto 0;
    height: max-content;
    padding: calc(var(--generalContainerPadding) / 1.5);

    @media (width >=1024px) {
        margin: calc(var(--desktopHeaderHeight)) auto 0;
        max-width: 78.375rem;
        padding: var(--generalContainerPadding);
    }

    * {
        max-width: 100%;
    }

    h2 u {
        text-decoration: none;
        position: relative;

        &::after {
            content: "";
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 0.125rem;
            background: #ADACDD;
        }
    }
}

/** Instant Quote Container **/
.instantQuoteContainer {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    width: 100%;
    border-radius: 1.25rem;
    background: var(--offWhite);
    padding: 1.25rem;

    @media (width >=1024px) {
        padding: 5rem;
        gap: 5rem;
    }
}

/** Content Container **/
.contentContainer {
    display: flex;
    flex-direction: column;
    gap: 2rem;

    @media (width >=1024px) {
        gap: 1rem;
    }

    h1 {
        @media (width >=1024px) {
            max-width: 35rem;
        }
    }
}

/** User Actions Container **/
.userActionsContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    width: 100%;
    min-height: 10rem;

    @media (width >=1024px) {
        flex-flow: row nowrap;
    }
}

/** Quote Slider **/
.quoteSlider {
    position: relative;
    z-index: 1;
    width: 100%;

    @media (width >=1024px) {
        width: calc(100% - 15rem);
    }

    .splide__track {
        padding: 1rem 0;
    }

    .quoteSlide {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        gap: 1rem;
        padding: 2rem;
        border-radius: 0.5rem;
        background: var(--light);
        box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
        border: 2px solid transparent;
        cursor: pointer;
        aspect-ratio: 4/3;
        transition: all 0.25s ease;

        &.active,
        &:hover {
            border-color: var(--purple);
            box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.25);
        }

        .quoteSlideImage {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 3.5rem;
            height: 3.5rem;
            background: var(--offWhite);
            border-radius: 0.5rem;

            img {
                width: 70%;
                height: 70%;
            }
        }

        h3 {
            color: var(--purple);
            font-size: 1.25rem;
            font-weight: 600;
            margin: 0;
            padding: 0;
        }
    }
}

/** Number SLider **/
.numberSliderContainer {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    width: 100%;
    position: relative;
    max-width: 35rem;

    .numberSliderInput {
        input[type="range"] {
            width: 100%;
            height: 1.5rem;
            appearance: none;
            -webkit-appearance: none;
            border-radius: 0.5rem;
            background: var(--light);

            &::-webkit-slider-thumb {
                -webkit-appearance: none;
                height: 2.5rem;
                width: 2.5rem;
                border-radius: 50%;
                background: var(--purple);
                cursor: pointer;
            }
        }

        .currentValueContainer {
            width: max-content;
            position: absolute;
            background: var(--light);
            padding: 0.25rem 0.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
        }
    }

    .rangeValues {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        font-weight: 600;
        font-size: 1rem;
    }
}

/** Decoration Image **/
.decoration {
    display: none;
    justify-content: center;
    align-items: center;
    width: 10rem;
    height: 10rem;
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;

    @media (width >=1024px) {
        display: flex;
    }

    img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
}

/** Form Container **/

.formContainer {

    .contentContainer {
        display: flex;

        @media (width >=1024px) {
            flex-flow: row nowrap;
            justify-content: space-between;
            gap: 3rem;
        }
    }

    .gfield--type-checkbox {
        margin: 1rem 0;

        .gfield_label {
            margin-bottom: 1rem;
        }
    }

    .gform_footer {
        input {
            width: 100% !important;
            transition: all 0.25s ease;

            &:hover {
                background: var(--purple) !important;
                color: var(--light) !important;
            }
        }
    }
}

/** Hide Sections on Load **/
#business-goals,
#annual-turnover,
#employees-count,
#nearest-office,
#form {
    display: none;

    &.hasValue {
        display: block;
    }
}