.testimonials{
	margin: var(--block-margin) auto;
    position: relative;
}

.testimonials[data-align="center"]{
    text-align: center;
}

.testimonials header{
    margin-bottom: var(--block-margin);
    max-width: var(--default-block-width);
}

.testimonials header.animate__animated{
    animation-name: fadeInUp;
}

.testimonials[data-align="center"] header{
    margin-left: auto;
    margin-right: auto;
}

.testimonials-grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
    grid-auto-flow: dense;
    align-items: center;
}

.testimonial-item{
    border: none;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    max-width: var(--default-block-width);
}

.testimonials[data-align="center"] .testimonial-item{
    justify-content: center;
}

.testimonial-item p{
    font: var(--secondary-font-weight) calc(var(--base-font-size) * var(--font-multiplier-pow-1)) / var(--secondary-line-height) var(--secondary-font);
    letter-spacing: var(--secondary-letter-spacing);
    width: 100%;
    order: 3;
}

.testimonial-item cite{
    font: var(--font-body-small);
    order: 5;
    width: 100%;
}

.testimonial-item cite :is(strong, span){
    display: block;
}

.testimonial-item-graphic,
.testimonial-item-logo{
    max-width: 12rem;
    max-height: 4.8rem;
    object-fit: contain;
    object-position: center;
    margin-bottom: 1em;
}

.testimonial-item-graphic{
    order: 1;
}

.testimonial-item-logo{
    order: 2;
}

.testimonial-item-photo{
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    margin-bottom: 0.5em;
    order: 4;
}

.testimonial-item-graphic ~ .testimonial-item-logo{
    order: 6;
    margin: 0;
    align-self: center;
}

.testimonial-item-graphic ~ .testimonial-item-logo ~ .testimonial-item-photo{
    margin-bottom: 0;
    align-self: center;
}

.testimonial-item-graphic ~ .testimonial-item-logo ~ cite{
    width: auto;
    margin: 0 1em;
    padding-right: 1em;
    border-right: 0.1rem solid;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.testimonials-carousel-container.animate__animated{
    animation-name: fadeInUp;
}

.testimonials-carousel-container.animate__animated .testimonial-item{
    visibility: visible;
}

.testimonials-grid .testimonial-item.animate__animated{
    animation-name: fadeInUp;
}

.testimonials-carousel .swiper-wrapper .swiper-slide{
    height: auto;
    align-self: center;
}

.testimonials-carousel-pagination{
    margin: 0 auto;
    display: flex;
    align-items: center;
    column-gap: var(--item-column-gap);
    max-width: var(--wide-width);    
    margin-top: var(--row-gap);
}

.testimonials[data-align="center"] .testimonials-carousel-pagination{
    justify-content: center;    
}

.testimonials-carousel-pagination .swiper-pagination-bullet{
    opacity: 1;
    background-color: var(--link-color);
}

.testimonials-carousel-pagination .swiper-pagination-bullet-active{
    opacity: 1;
    background-color: var(--accent-color);
}

.testimonials-carousel-navigation{
    display: flex;
    align-items: center;
    margin-top: var(--row-gap);
    column-gap: var(--row-gap);
}

.testimonials[data-align="center"] .testimonials-carousel-navigation{
    justify-content: center;    
}

.testimonials-carousel-navigation-prev,
.testimonials-carousel-navigation-next{
    display: block;
}

:is(.testimonials-carousel-navigation-prev, .testimonials-carousel-navigation-next) svg{
    width: 4.8rem;
    height: auto;
}

:is(.testimonials-carousel-navigation-prev, .testimonials-carousel-navigation-next) svg *{
    transition: all 0.3s ease;
    stroke: var(--link-color);
}

:is(.testimonials-carousel-navigation-prev, .testimonials-carousel-navigation-next):is(:hover, :focus, :active) svg *{
    stroke: var(--hover-link-color);
}

@media (min-width: 768px){
    .testimonials-grid[data-items="2"]{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .testimonials-grid[data-items="3"]{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .testimonials-carousel:is([data-items="2"], [data-items="3"]) .swiper-wrapper .swiper-slide{
        height: auto;
        align-self: center;
    }

    .testimonials[data-align="left"] .testimonials-carousel:is([data-items="2"], [data-items="3"]) .swiper-wrapper .swiper-slide{
        padding: 0 var(--column-gap) 0 0.1rem;
    }

    .testimonials[data-align="center"] .testimonials-carousel:is([data-items="2"], [data-items="3"]) .swiper-wrapper .swiper-slide{
        padding: 0 calc(var(--column-gap) / 2);
    }
}

@media (min-width: 1200px){
    .testimonials[data-align="center"] .testimonials-carousel-container{
        position: relative;
        padding: 0 4.8rem;
    }

    .testimonials[data-align="center"] .testimonials-carousel-navigation{
        margin-top: 0;
    }

    .testimonials[data-align="center"] .testimonials-carousel-navigation-prev,
    .testimonials[data-align="center"] .testimonials-carousel-navigation-next{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 1;
    }

    .testimonials[data-align="center"] .testimonials-carousel-navigation-prev{
        left: 0;
    }

    .testimonials[data-align="center"] .testimonials-carousel-navigation-next{
        right: 0;
    }
}