.elementor-669 .elementor-element.elementor-element-909dcbc{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-image-gallery .gallery-item .gallery-caption{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-669 .elementor-element.elementor-element-4881a16 .gallery-item .gallery-caption{text-align:center;}/* Start custom CSS for image-gallery, class: .elementor-element-4881a16 *//* =========================================
   54-IMAGE ELEMENTOR MOSAIC GALLERY
   ========================================= */

.elementor-669 .elementor-element.elementor-element-4881a16 .gallery {
	--gallery-gap: 12px;
	--gallery-radius: 18px;
	--gallery-row-height: 90px;

	display: grid !important;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-auto-rows: var(--gallery-row-height);
	grid-auto-flow: dense;
	gap: var(--gallery-gap);

	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

/* Reset default WordPress gallery layout */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item {
	display: block !important;
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;

	grid-column: span 2;
	grid-row: span 2;

	position: relative;
	overflow: hidden;
	border-radius: var(--gallery-radius);
	background: #111;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);

	isolation: isolate;
}

/* =========================================
   REPEATING MOSAIC PATTERN
   Applies only to the first 54 images
   ========================================= */

/* Large square feature images:
   1, 8, 13, 20, 25, 32, 37, 44, 49 */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 1):nth-child(-n + 54),
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 8):nth-child(-n + 54) {
	grid-column: span 4;
	grid-row: span 4;
}

/* Wide landscape images:
   4, 11, 16, 23, 28, 35, 40, 47, 52 */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 4):nth-child(-n + 54),
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 11):nth-child(-n + 54) {
	grid-column: span 4;
	grid-row: span 2;
}

/* Tall images:
   6, 10, 18, 22, 30, 34, 42, 46, 54 */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 6):nth-child(-n + 54),
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 10):nth-child(-n + 54) {
	grid-column: span 2;
	grid-row: span 3;
}

/* Extra vertical accents:
   3, 15, 27, 39, 51 */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 3):nth-child(-n + 54) {
	grid-column: span 2;
	grid-row: span 4;
}

/* Medium landscape accents:
   9, 21, 33, 45 */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 9):nth-child(-n + 54) {
	grid-column: span 4;
	grid-row: span 3;
}

/* =========================================
   IMAGE CONTAINERS
   ========================================= */

.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon,
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon a {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

/* Force every image to fill its mosaic tile */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;

	object-fit: cover;
	object-position: center;

	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;

	transform: scale(1.002);
	transition:
		transform 0.65s cubic-bezier(0.2, 0.7, 0.2, 1),
		filter 0.45s ease;
}

/* Dark cinematic overlay */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;

	background:
		linear-gradient(
			to bottom,
			rgba(0, 0, 0, 0) 35%,
			rgba(0, 0, 0, 0.45) 100%
		);

	opacity: 0.35;
	transition: opacity 0.45s ease;
}

/* Subtle highlight */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;

	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: inherit;
}

/* =========================================
   HOVER EFFECTS
   ========================================= */

.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:hover img {
	transform: scale(1.075);
	filter: brightness(1.05) saturate(1.12);
}

.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:hover a::after {
	opacity: 0.75;
}

/* Slight tile lift */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item {
	transition:
		transform 0.35s ease,
		box-shadow 0.35s ease;
}

.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 35px rgba(0, 0, 0, 0.2);
	z-index: 5;
}

/* Keyboard accessibility */
.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon a:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: -6px;
}

/* =========================================
   TABLET
   ========================================= */

@media (max-width: 1024px) {
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery {
		--gallery-gap: 10px;
		--gallery-radius: 15px;
		--gallery-row-height: 90px;

		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item {
		grid-column: span 2;
		grid-row: span 2;
	}

	/* Large images */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 1):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 8):nth-child(-n + 54) {
		grid-column: span 4;
		grid-row: span 3;
	}

	/* Wide images */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 4):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 11):nth-child(-n + 54) {
		grid-column: span 4;
		grid-row: span 2;
	}

	/* Tall images */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 3):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 6):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 10):nth-child(-n + 54) {
		grid-column: span 2;
		grid-row: span 3;
	}

	/* Medium accents */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 9):nth-child(-n + 54) {
		grid-column: span 4;
		grid-row: span 3;
	}
}

/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 767px) {
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery {
		--gallery-gap: 7px;
		--gallery-radius: 11px;
		--gallery-row-height: 95px;

		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item {
		grid-column: span 1;
		grid-row: span 2;
	}

	/* Full-width featured images */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 1):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 8):nth-child(-n + 54) {
		grid-column: span 2;
		grid-row: span 3;
	}

	/* Full-width landscape images */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 4):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 9):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 11):nth-child(-n + 54) {
		grid-column: span 2;
		grid-row: span 2;
	}

	/* Tall mobile images */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 3):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 6):nth-child(-n + 54),
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:nth-child(12n + 10):nth-child(-n + 54) {
		grid-column: span 1;
		grid-row: span 3;
	}

	/* Disable lift to prevent mobile layout movement */
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:hover {
		transform: none;
	}
}

/* =========================================
   VERY SMALL MOBILE
   ========================================= */

@media (max-width: 480px) {
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery {
		--gallery-row-height: 80px;
		--gallery-gap: 6px;
	}
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item,
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon img,
	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-icon a::after {
		transition: none;
	}

	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:hover {
		transform: none;
	}

	.elementor-669 .elementor-element.elementor-element-4881a16 .gallery .gallery-item:hover img {
		transform: none;
	}
}/* End custom CSS */