.esq-carousel { margin-bottom: 1.5rem; border-radius: .375rem; overflow: hidden; background: #222; }
.esq-carousel .carousel-item img { aspect-ratio: 16 / 9; object-fit: cover; }
.esq-carousel .carousel-caption { background: rgba(0,0,0,.45); border-radius: .375rem; padding: .75rem 1rem; left: 10%; right: 10%; bottom: 2.5rem; }
.esq-carousel .carousel-caption h3 { font-size: 1.25rem; margin-bottom: .25rem; color: #fff; }
.esq-carousel .carousel-caption p { margin-bottom: .5rem; }
@media (max-width: 575.98px) {
  .esq-carousel .carousel-caption { position: static; background: #222; border-radius: 0; padding-bottom: 2.25rem; }
  .esq-carousel .carousel-control-prev, .esq-carousel .carousel-control-next { height: 56.25vw; }
}

/* text slides (guest comments, no image) */
.esq-carousel .carousel-item-text { background: #f2e9da; padding: 2.5rem 12% 3rem; min-height: 14rem; }
.esq-carousel .carousel-item-text .carousel-caption { position: static; background: none; color: #333; padding: 0; text-align: center; }
.esq-carousel .carousel-item-text .carousel-caption h3 { color: #00733c; }
.esq-carousel:has(.carousel-item-text) { background: #f2e9da; }
.esq-carousel:has(.carousel-item-text) .carousel-control-prev-icon, .esq-carousel:has(.carousel-item-text) .carousel-control-next-icon { filter: invert(1) grayscale(1); }
