/* One row of 16:9 frames. Smush lazy-load forces each file's own
   width and aspect ratio, so portrait photos were stretching the
   carousel and leaving a blank band under the row. */
.image-gallery .jet-listing-grid__slider .jet-listing-grid__items {
	align-items: flex-start;
}

.image-gallery .swiper-slide-media,
.image-gallery .jet-listing-grid__item .elementor-widget-image .elementor-widget-container {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: 10px;
	width: 100%;
	aspect-ratio: 16 / 9;
}

.image-gallery .swiper-slide img.swiper-slide-image,
.image-gallery .jet-listing-grid__item .elementor-widget-image img {
	position: absolute;
	inset: 0;
	aspect-ratio: auto !important;
	object-fit: cover;
	object-position: center;
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	border-radius: 10px;
	transform-origin: center center;
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	display: block;
}

.image-gallery .swiper-slide-inner:hover img.swiper-slide-image,
.image-gallery .swiper-slide-inner:focus-visible img.swiper-slide-image,
.image-gallery .jet-listing-grid__item:hover .elementor-widget-image img,
.image-gallery .jet-listing-grid__item:focus-within .elementor-widget-image img {
	transform: scale(1.05);
}

.image-gallery .swiper-slide .elementor-image-carousel-caption,
.image-gallery .jet-listing-grid__item .elementor-widget-text-editor .elementor-widget-container {
	text-align: left !important;
	color: #0d3fac;
	font-style: normal;
	font-size: 14px;
	margin-top: 10px;
	transition: opacity 0.3s ease;
}

.image-gallery .swiper-slide-inner:hover .elementor-image-carousel-caption,
.image-gallery .swiper-slide-inner:focus-visible .elementor-image-carousel-caption,
.image-gallery .jet-listing-grid__item:hover .elementor-widget-text-editor .elementor-widget-container,
.image-gallery .jet-listing-grid__item:focus-within .elementor-widget-text-editor .elementor-widget-container {
	opacity: 0.75;
}

/* Media page photo grid. Video cards use a 16:9 poster; photos were
   keeping each file's own ratio, so portrait shots grew the row.
   Smush lazy-load also pins width and aspect-ratio, so the frame owns
   the box and the image covers it from the center. */
#image-gallery .jet-listing-grid__item .elementor-widget-image {
	width: 100%;
}

#image-gallery .jet-listing-grid__item .elementor-widget-image .elementor-widget-container {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: 10px;
	width: 100%;
	aspect-ratio: 16 / 9;
}

#image-gallery .jet-listing-grid__item .elementor-widget-image img,
#image-gallery .jet-listing-grid__item .elementor-widget-image img.lazyload,
#image-gallery .jet-listing-grid__item .elementor-widget-image img.lazyloading,
#image-gallery .jet-listing-grid__item .elementor-widget-image img.lazyloaded {
	position: absolute;
	inset: 0;
	aspect-ratio: auto !important;
	object-fit: cover;
	object-position: center center;
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	border-radius: 10px;
}

/* Four videos or fewer: the carousel is turned off so slides are not cloned. */
.image-gallery .jet-listing-grid__slider[data-blaxtair-static='done'] {
	overflow: visible;
}

.image-gallery .jet-listing-grid__slider[data-blaxtair-static='done'] > .jet-listing-grid__items {
	flex-wrap: wrap !important;
	transform: none !important;
	width: auto !important;
}

.image-gallery .jet-listing-grid__slider[data-blaxtair-static='done'] > .jet-listing-grid__items > .jet-listing-grid__item {
	max-width: calc(100% / var(--columns, 4)) !important;
	flex: 0 0 calc(100% / var(--columns, 4)) !important;
	width: auto !important;
	margin-right: 0 !important;
}
