.custom-page-hero-carousel{
	overflow: hidden;
	position: relative;
}

.custom-page-hero-carousel:is([data-color-scheme="light-skylight-blue"]) {
    --strong-color: var(--color-white);
    --title-color: var(--color-deepest-blue);
}

.custom-page-hero-carousel:is([data-color-scheme="dark-deepest-blue"]) {
    --strong-color: var(--color-skylight-blue);
    --title-color: var(--color-white);
}

.custom-page-hero-carousel:has(.custom-page-hero-carousel-swiper .swiper-slide:only-child) {
    height: auto;
}

.custom-page-hero-carousel.alignfull{
    width: 100%;
    max-width: 100%;
}

.custom-page-hero-carousel-swiper .swiper-slide{
    height: auto;
}

.custom-page-hero-carousel-slide{
    position: relative;
    height: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 50% minmax(0, 1fr);
    align-items: center;
    justify-content: center;
    max-width: var(--wide-width);
}

.custom-page-hero-carousel:has(.custom-page-hero-carousel-slide.has-full-background) {
    padding: 0;
}

.custom-page-hero-carousel-slide.has-full-background {
    grid-template-columns: minmax(0, 1fr);
    max-width: 100%;
    height: calc( 100% + 10rem );
}

.custom-page-hero-carousel-slide.has-full-background .custom-page-hero-carousel-wrapper {
    z-index: 1;
    max-width: var(--wide-width);
}

.custom-page-hero-carousel-slide.has-full-background .custom-page-hero-carousel-media {
    position: absolute;
    left: 0;
    top: 0;
}

.custom-page-hero-carousel-slide.has-full-background .custom-page-hero-carousel-media :is(.custom-page-hero-carousel-image img, .custom-page-hero-carousel-video-player img, iframe) {
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    aspect-ratio: 16 / 9;
    border: none;
    position: relative;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.custom-page-hero-carousel-inner {
    display: flex;
    flex-direction: column;
    row-gap: var(--title-and-body-gap);
}

.custom-page-hero-carousel-content-wrapper {
    display: flex;
    flex-direction: column;
    row-gap: var(--body-and-buttons-gap);
}

.custom-page-hero-carousel .custom-page-hero-carousel-title :is(h1, strong) {
    font-weight: var(--secondary-font-weight);
    margin-bottom: 0;
}

.custom-page-hero-carousel .custom-page-hero-carousel-title strong {
    color: var(--strong-color);
}

.custom-page-hero-carousel .custom-page-hero-carousel-media{
    pointer-events: none;
    width: 100%;
    height: 100%;
    margin-top: auto;
    overflow: hidden;
}

.custom-page-hero-carousel .custom-page-hero-carousel-slide:has(.custom-page-hero-carousel-image-bleed, .custom-page-hero-carousel-image-contained) {
    column-gap: var(--column-gap);
}

.custom-page-hero-carousel .custom-page-hero-carousel-media:has(.custom-page-hero-carousel-image-contained) {
    display: flex;
    align-items: center;
}

.custom-page-hero-carousel .custom-page-hero-carousel-slide:has(.custom-page-hero-carousel-image-bleed) {
    max-width: 100%;
}

.custom-page-hero-carousel .custom-page-hero-carousel-slide:has(.custom-page-hero-carousel-image-bleed) .custom-page-hero-carousel-wrapper {
    padding: 4rem 0;
    max-width: var(--wide-width);
    margin-left: calc( 50vw - var(--wide-width) / 2 );

    @media not all and (min-width: 768px) {
      padding-bottom: 0;
    }
}

.custom-page-hero-carousel .custom-page-hero-carousel-media:has(.custom-page-hero-carousel-image-bleed) {
    display: flex;
    align-items: center;
}

.custom-page-hero-carousel-image-bleed {
    display: flex;
    min-height: 100%;
    align-items: end;

    img {
        @media (min-width: 768px) {
            max-height: 60rem;
            object-fit: contain;
        }
    }
}

.swiper-slide:not(.swiper-slide-next) .custom-page-hero-carousel-media.animate__animated {
    animation-name: fadeInRight;
    
    animation-iteration-count: 1;
}

.custom-page-hero-carousel :is(.custom-page-hero-carousel-image, .custom-page-hero-carousel-video-player, .custom-page-hero-carousel-video-player iframe){
    width: 100%;
    height: 100%;
}

.custom-page-hero-carousel-image img,
.custom-page-hero-carousel-video-player img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom;
}

.custom-page-hero-carousel-video-player iframe{
    display: block;
    border: none;
}

.custom-page-hero-carousel .custom-page-hero-carousel-video-player iframe{
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    aspect-ratio: 16/9;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.custom-page-hero-carousel-wrapper{
    width: 100%;
    margin: 0 auto;
    padding: var(--row-gap) 0;
    position: relative;
    overflow: hidden;
}

.swiper-slide:not(.swiper-slide-next) .custom-page-hero-carousel-wrapper.animate__animated{
    animation-name: fadeInLeft;
    
    animation-iteration-count: 1;
}

.custom-page-hero-carousel-inner>*:last-child{
    margin-bottom: 0;
}

.custom-page-hero-carousel-breadcrumbs{
    padding: 0;
    margin: 0 0 calc(1em * var(--secondary-line-height));
    display: flex;
    flex-wrap: wrap;
    row-gap: var(--item-row-gap);
}

.custom-page-hero-carousel-breadcrumbs li{
    display: flex;
    list-style: none;
    align-items: center;
}

.custom-page-hero-carousel-breadcrumbs li:not(:first-child):before{
    content: '';
    display: block;
    width: 0.8rem;
    height: 0.8rem;
    margin: 0 0.8rem;
    border-top: 0.2rem solid;
    border-right: 0.2rem solid;
    transform: rotateZ(45deg);
}

.custom-page-hero-carousel-breadcrumbs li a{
    text-decoration: underline;
    text-decoration-color: transparent;
    color: var(--text-color);
}

.custom-page-hero-carousel-breadcrumbs li a:is(:hover, :focus){
    text-decoration-color: var(--hover-link-color);
}

.custom-page-hero-carousel-breadcrumbs li:last-child{
    font-weight: 700;
}

.custom-page-hero-carousel-buttons{
    display: flex;
    flex-wrap: wrap;
    gap: var(--buttons-gap);
    align-items: center;
}

.custom-page-hero-carousel-navigation{
    display: flex;
    justify-content: space-between;
    width: var(--wide-width);
    position: absolute;
    top: 0;
    bottom: 0;
    left: auto;
    right: auto;
    pointer-events: none;
    z-index: 3;
}

.custom-page-hero-carousel-navigation ~ * .custom-page-hero-carousel-slide{
    padding-bottom: 0;
}

.custom-page-hero-carousel-navigation-prev,
.custom-page-hero-carousel-navigation-next{
    display: block;
    pointer-events: all;
}

:is(.custom-page-hero-carousel-navigation-prev, .custom-page-hero-carousel-navigation-next)[disabled]{
    opacity: 0;
    pointer-events: none;
}

:is(.custom-page-hero-carousel-navigation-prev, .custom-page-hero-carousel-navigation-next) svg{
    width: 3.5rem;
    height: auto;
}

:is(.custom-page-hero-carousel-navigation-prev, .custom-page-hero-carousel-navigation-next):is(:hover) svg path {
    fill: var(--color-vibrant-blue);
    transition: 0.3s ease all;
}

.custom-page-hero-carousel-tabs-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: var(--small-row-gap) 0;
    position: relative;
}

.custom-page-hero-carousel-tabs{
    width: 100%;
    max-width: calc(var(--wide-width) - 8rem);
    margin: 0 auto;
}

.custom-page-hero-carousel-tabs .tab-buttons{
    display: flex;
    justify-content: center;
}

.custom-page-hero-carousel-tabs .tab-buttons button {
    text-transform: uppercase;
    font-size: 1.6rem;
    font-weight: var(--secondary-font-weight);
    letter-spacing: 0.1rem;
    padding: 0 1rem;
}

.custom-page-hero-carousel-tabs .tab-buttons button:is(:hover, :focus, :active) {
    text-decoration: none;
}

.custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button {
    border-bottom-width: 0.3rem;
    outline: 0;
}

.custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button:is(:hover, :focus, :active) {
    outline: 0;
}

.custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button:is(:focus, :active) {
    color: var(--text-color);
}

.custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button::after {
    content: '';
    display: block;
    width: calc(100% + 2rem);
    margin-left: -1rem;
    height: 1.2rem;
    background: var(--color-vibrant-blue);
    mask: url(img/border-pattern.svg);
}

.custom-page-hero-carousel:is([data-color-scheme="dark-grape"]) .custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button::after {
    background: var(--color-white);
}

.custom-page-hero-carousel-content p {
    margin: 0;
    font-size: 1.8rem;
}

@media (max-width: 767px){
    .custom-page-hero-carousel {
        padding-top: 4rem;
        /* height: calc( 115rem + var(--item-row-gap) ); */
        height: auto;
    }

    .custom-page-hero-carousel-swiper {
        max-width: 100%;
        margin: 0 auto;
    }

    .custom-page-hero-carousel-slide {
        max-width: 100%;
        grid-template-columns: 1fr;
        row-gap: var(--large-row-gap);
    }

    .custom-page-hero-carousel-slide:not(.has-full-background) {
        max-width: var(--wide-width);
    }

    .custom-page-hero-carousel .custom-page-hero-carousel-title :is(h1, strong) {
        font: var(--font-headline-2);
        font-size: 5.6rem;
        font-weight: 500;
        line-height: 1;
        letter-spacing: -1.68px;
    }

    .custom-page-hero-carousel-buttons {
        margin: 0 0 auto;
    }

    .custom-page-hero-carousel:has(.custom-page-hero-carousel-slide.has-full-background) .custom-page-hero-carousel-navigation ~ * .custom-page-hero-carousel-slide {
        padding: 0;
    }

    .custom-page-hero-carousel-tabs-wrapper {
        width: 100%;
        height: 8rem;
        background: var(--background-color);
        padding: 0;
        border: none;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .custom-page-hero-carousel-tabs-wrapper::before {
        content: '';
        border-bottom: 0.1rem solid;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
    }

    .custom-page-hero-carousel-tabs .swiper-slide:last-child {
        border-right: 0;
    }

    .custom-page-hero-carousel-tabs .tab-buttons .swiper-slide button {
        display: flex;
        width: 100%;
        margin: 0 auto;
        flex-direction: column;
        align-items: center;
    }

    .custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button::after {
        display: none;
    }

    .custom-page-hero-carousel-tabs-navigation {
        display: none;
        width: 4.8rem;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: auto;
        right: var(--page-padding);
        bottom: auto;
        z-index: 2;
    }

    .custom-page-hero-carousel-tabs .tab-buttons {
        display: flex;
        align-items: center;
        position: relative;
        z-index: 1;
        justify-content: flex-start;
    }

    .custom-page-hero-carousel-tabs-navigation-next {
        display: block;
    }
    
    .custom-page-hero-carousel-tabs-navigation-next svg{
        width: 4.8rem;
        height: auto;
    }
    
    .custom-page-hero-carousel-tabs-navigation-next svg *{
        transition: all 0.3s ease;
        stroke: var(--link-color);
    }
    
    .custom-page-hero-carousel-tabs-navigation-next:is(:hover, :focus, :active) svg *{
        stroke: var(--hover-link-color);
    }

    .custom-page-hero-carousel .swiper-slide:has(.custom-page-hero-carousel-image-bleed, .custom-page-hero-carousel-image-contained) {
        display: flex;
        align-items: center;
        height: auto;
        overflow: hidden;
    }

    .custom-page-hero-carousel .custom-page-hero-carousel-slide:has(.custom-page-hero-carousel-image-bleed, .custom-page-hero-carousel-image-contained) {
        align-items: flex-start;
        height: 100%;
    }
    
    .custom-page-hero-carousel .custom-page-hero-carousel-slide:has(.custom-page-hero-carousel-image-contained) .custom-page-hero-carousel-wrapper {
        padding: 0;
    }

    .custom-page-hero-carousel .custom-page-hero-carousel-media:has(.custom-page-hero-carousel-image-bleed) {
        margin-left: calc( 50vw - var(--wide-width) / 2 );

        @media not all and (min-width: 768px) {
          max-width: var(--wide-width);
          padding-left: 6rem;
          padding-right: 6rem;
        }
    }
}

@media (min-width: 768px){
    .custom-page-hero-carousel{
        height: 85rem;
    }

    .custom-page-hero-carousel-swiper {
        height: 100%;
    }

    .custom-page-hero-carousel-swiper:has(+ .custom-page-hero-carousel-tabs-wrapper) {
        padding-bottom: 10rem;
    }

    .custom-page-hero-carousel.alignwide .custom-page-hero-carousel-slide{
        padding-left: calc((var(--page-padding)*2) + 4.8rem);
        padding-right: calc((var(--page-padding)*2) + 4.8rem);
    }

    .custom-page-hero-carousel-navigation{
        padding: var(--small-row-gap) 0 4rem;
    }

    .custom-page-hero-carousel-navigation.mobile {
        display: none;
    }

    .custom-page-hero-carousel-tabs .tab-buttons .swiper-slide {
        display: flex;
        max-width: max-content;
        align-items: baseline;
        justify-content: center;
        border-right: 0.1rem solid;
        padding: 0.6rem 2.4rem;
        height: 4rem;
    }

    .custom-page-hero-carousel-tabs-wrapper {
        height: 10rem;
        border-top: 0.1rem solid;
        padding: var(--small-row-gap) 0 4rem;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
    }

    .custom-page-hero-carousel-tabs .tab-buttons .swiper-slide:last-child {
        border-right: 0;
        padding-right: 0;
    }

    .custom-page-hero-carousel-content{
        max-width: calc(var(--wide-width) / 2);
    }

    .custom-page-hero-carousel .custom-page-hero-carousel-slide:has(.custom-page-hero-carousel-image-bleed) .custom-page-hero-carousel-wrapper {
        max-width: fit-content;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .custom-page-hero-carousel {
        height: auto;
        padding-top: var(--item-row-gap);
    }

    .custom-page-hero-carousel-slide {
        align-items: flex-start;
    }

    .custom-page-hero-carousel .custom-page-hero-carousel-title h1 {
        font: var(--font-headline-4);
    }
}

/* @media (max-width: 991px) {
    .custom-page-hero-carousel-tabs .swiper-slide {
        max-width: fit-content;
        margin: 0 2rem 0 0;
    }
} */

@media (min-width: 992px) {
    .custom-page-hero-carousel-tabs {
        width: var(--wide-width);
    }

    .custom-page-hero-carousel-slide.has-full-background .custom-page-hero-carousel-wrapper {
        z-index: 1;
        margin-left: calc( 50vw - var(--wide-width) / 2 );
    }

    /* .custom-page-hero-carousel:has(.custom-page-hero-carousel-slide.has-full-background) .custom-page-hero-carousel-swiper {
        aspect-ratio: 16/9;
    } */

    .custom-page-hero-carousel:has(.swiper-slide-active .custom-page-hero-carousel-slide.has-full-background) .custom-page-hero-carousel-tabs-wrapper {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
    }

    .custom-page-hero-carousel .custom-page-hero-carousel-swiper .swiper-slide-active .custom-page-hero-carousel-slide.has-full-background .custom-page-hero-carousel-title {
        max-width: 50%;
    }
}

@media (min-height: 1200px) {
    .custom-page-hero-carousel-slide.has-full-background {
        height: 70vh;
    }
}