.carousel-container {
    padding-block: 8rem;
    --singleSlidewidth: 70rem
}

.carousel-container .red-bg {
    background: var(--color-brand-dark-red);
}

.carousel-container .carousel-wrapper {
    max-width: 100vw;
    overflow-x: hidden;
    height: fit-content;
}

.carousel-container .carousel-item-container {
    width: 100vw;
    grid-row: 1;
    padding-block: 6rem 10rem;
}

.carousel-container .carousel-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
}


.carousel-container picture img {
    height: auto;
    margin-inline: auto;
    max-width: var(--singleSlidewidth);
}

.carousel-container .carousel-text {
    color: var(--color-primary-white);
    display: grid;
    grid-template-rows: 3fr 1fr;
}

.carousel-container .carousel-copy-content {
    position: relative;
    z-index: 1;
    padding: 6rem 4rem 1rem 10rem;

}

.carousel-container .carousel-copy-content .h2 {
    font-size: 4rem;
}

.carousel-container .carousel-copy-content > p {
    font-size: 2rem;
}

.carousel-container .carousel-background-texture {
    width: 100%;
    max-width: var(--singleSlidewidth);
    height: 100%;
    align-self: flex-start;
    transform: translate(-2rem, -8rem);
    grid-column: 2;
    overflow: hidden;
}

.carousel-container .carousel-cta {
    padding-left: 10rem;
}

.carousel-container .carousel-cta a {
    background: var(--color-primary-white);
    font-size: 1.6rem;
}

.carousel-text.dark-red-bg .carousel-cta a,
.carousel-text.dark-red-bg .carousel-cta a:visited {
    color: var(--color-brand-dark-red);
}

.carousel-text.blue-bg .carousel-cta a,
.carousel-text.blue-bg .carousel-cta a:visited {
    color: var(--color-brand-blue);
}

.carousel-text.orange-bg .carousel-cta a,
.carousel-text.orange-bg .carousel-cta a:visited {
    color: var(--color-brand-orange);
}

.carousel-text.light-orange-bg .carousel-cta a,
.carousel-text.light-orange-bg .carousel-cta a:visited {
    color: var(--color-brand-orange-light);
}

.carousel-container .carousel-nav {
    width: 100%;
    transform: translateY(-7rem);
}

.carousel-container .carousel-nav .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 2rem 2.5rem;
}

.carousel-container .next {
    transform: rotate(180deg);
    margin-left: 1rem;
}

.carousel-container .carousel-items-count {
    color: var(--color-brand-blue);
    font-weight: 600;
    margin-left: 2rem;
    font-size: 2.4rem;
}


.carousel-mask-container {
    display: grid;
    grid-template-columns: var(--singleSlidewidth) var(--singleSlidewidth);
    place-content: center;
}

.carousel-mask-container > * {
    grid-row: 1;
}

.carousel-mask-image,
.carousel-mask-text {
    border-radius: 1rem;
    position: relative;
    overflow: hidden;
}

.carousel-mask-image {
    z-index: 2;
}

.carousel-mask-text {
    transform: translate(-4rem, 10rem);
    margin-bottom: 11rem;
    z-index: 1;
    grid-column: 2;
}

.carousel-images,
.carousel-text-belt {
    width: fit-content;
    white-space: nowrap;
    transform: translateX(var(--beltShift));
    transition: transform 500ms ease-in-out;
    font-size: 0;
}

.carousel-images {
    grid-column: 1;
}

.carousel-text-belt {
    grid-column: 2;

}

.carousel-images .carousel-image {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.carousel-container picture {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.carousel-container .carousel-text {
    display: inline-grid;
    white-space: normal;
}


.carousel-container :is(.carousel-text, .carousel-image, .carousel-mask-image, .carousel-mask-text) {
    width: var(--singleSlidewidth);
    height: auto;
    aspect-ratio: 700 / 540;
}


@media screen and (max-width: 90em) {

    .carousel-container {
        --singleSlidewidth: 60rem;
    }

    .carousel-container .carousel-nav,
    .carousel-container .carousel-item-container {
        padding-inline: 4rem;
    }

    .carousel-mask-image,
    .carousel-mask-text {
        width: 60rem;
    }
}

@media screen and (max-width: 80em) {
    .carousel-container {
        --singleSlidewidth: 50rem;
    }
}

@media screen and (max-width: 65em) {
    .carousel-container {
        --singleSlidewidth: 45rem;
    }

    .carousel-container .carousel-copy-content .h2 {
        font-size: 3rem;
    }

    .carousel-container .carousel-copy-content > p {
        font-size: 1.7rem;
    }

}

@media screen and (max-width: 60em) {
    .carousel-container {
        --singleSlidewidth: 50rem;
    }
    .carousel-container .carousel-background-texture {
        display: none;
    }
    .carousel-mask-container {
        grid-template-columns: unset;
        grid-template-rows: auto auto;
    }
    .carousel-container .carousel-cta {
        padding-left: 0;
        margin-inline: auto;
    }
    .carousel-mask-text,
    .carousel-images {
        grid-column: unset;
        grid-row: unset;
    }

    .carousel-images,
    .carousel-container picture{
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .carousel-mask-text {
        transform: unset;
        border-top-right-radius: 0;
        border-top-left-radius: 0;
    }
    .carousel-mask-image {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .carousel-container .carousel-copy-content {
        padding: 6rem 4rem 1rem 4rem;

    }

}

@media screen and (max-width: 35em) {
    .carousel-container {
        --singleSlidewidth: 85vw;
    }
    .carousel-container :is(.carousel-mask-text, .carousel-text){
        height: 45rem !important;
        aspect-ratio: unset !important;
    }
}

@media screen and (max-width: 22em) {
    .carousel-container .carousel-items-count {
        display: block;
        margin-left: 0;
        margin-top: 2rem;
    }

    .carousel-container .carousel-item-container {
        padding-bottom: 0;
    }
}
