/* CSA Image Showcase — one large image above a row of thumbnails, all
   sharing an Elementor lightbox slideshow. */

.csa-image-showcase {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.csa-image-showcase__main {
	display: block;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	cursor: pointer;
}

.csa-image-showcase__thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.csa-image-showcase__thumb {
	display: block;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	cursor: pointer;
}

/* Nested under the link to outrank Elementor's `.elementor img { height: auto }`
   so the image fills its box. */
.csa-image-showcase__main .csa-image-showcase__img,
.csa-image-showcase__thumb .csa-image-showcase__img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.csa-image-showcase__thumb:hover .csa-image-showcase__img,
.csa-image-showcase__main:hover .csa-image-showcase__img {
	transform: scale(1.04);
}

/* Lightbox slideshow arrows — scoped to this widget's galleries via the
   modal id Elementor builds from our slideshow group ("csa-showcase-*").
   Elementor lazy-loads the swiper button positioning CSS, and it does not
   reliably reach the public (logged-out) frontend — leaving the arrows with
   position:static so they fall below the slideshow, off-screen. Pin them
   ourselves so they sit centered at the left/right edges of the viewport.
   The default arrows also rely on the eicons chevron glyph (which does not
   paint reliably on this site), so draw the chevrons with CSS borders. */
[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 100px;
	cursor: pointer;
	opacity: 1;
}

[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button-prev {
	left: 0;
}

[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button-next {
	right: 0;
}

[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button > i,
[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button > svg {
	display: none;
}

[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button::after {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	border: solid #ffffff;
	border-width: 0 4px 4px 0;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.7));
}

[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button-next::after {
	transform: rotate(-45deg);
	margin-right: 8px;
}

[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-swiper-button-prev::after {
	transform: rotate(135deg);
	margin-left: 8px;
}

/* We intentionally emit no per-image title, so the slideshow caption is
   empty. Hide the footer outright so no leftover bar shows under the photo. */
[id^="elementor-lightbox-slideshow-csa-showcase-"] .elementor-slideshow__footer {
	display: none;
}
