/* Web design — testimonials section height fixes */

/* Featured testimonial: cap height instead of 60vh */
.web-design-featured-quote {
    aspect-ratio: 16 / 9;
    max-height: 28rem;
    min-height: 14rem;
}

@media (min-width: 768px) {
    .web-design-featured-quote {
        max-height: 32rem;
    }
}

@media (min-width: 1024px) {
    .web-design-featured-quote {
        max-height: 36rem;
    }
}

/* Video quote carousel: cap portrait card height, keep carousel single-row */
.js-carousel-448323 {
    overflow: hidden;
}

.js-carousel-448323 .swiper-wrapper {
    align-items: stretch;
}

.js-carousel-448323 .swiper-slide {
    height: auto;
}

.js-carousel-448323 .aspect-ratio-9\/16 {
    padding-bottom: 0 !important;
    aspect-ratio: 9 / 16;
    max-height: 20rem;
    width: 100%;
}

@media (min-width: 768px) {
    .js-carousel-448323 .aspect-ratio-9\/16 {
        max-height: 22rem;
    }
}

@media (min-width: 1280px) {
    .js-carousel-448323 .aspect-ratio-9\/16 {
        max-height: 24rem;
    }
}

/* Fallback layout when Swiper has not initialized yet */
.js-carousel-448323:not(.swiper-initialized) .swiper-wrapper {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.js-carousel-448323:not(.swiper-initialized) .swiper-slide {
    flex: 0 0 85%;
    scroll-snap-align: start;
}

@media (min-width: 768px) {
    .js-carousel-448323:not(.swiper-initialized) .swiper-slide {
        flex-basis: 42%;
    }
}

@media (min-width: 1280px) {
    .js-carousel-448323:not(.swiper-initialized) .swiper-slide {
        flex-basis: 25%;
    }
}
