.elevex-gallery {
	--elevex-gallery-columns: 4;
	--elevex-gallery-gap: 10px;
	--elevex-gallery-ratio: 3 / 2;
	--elevex-gallery-row-height: 200px;
	--elevex-image-border-color: transparent;
	--elevex-image-border-width: 0;
	--elevex-image-border-radius: 0;
	--elevex-image-transition: 800ms;
	--elevex-overlay-blend: normal;
	--elevex-overlay-transition: 800ms;
	--elevex-content-align: center;
	--elevex-content-justify: center;
	--elevex-content-padding: 20px;
	--elevex-title-color: #fff;
	--elevex-description-color: #fff;
	--elevex-description-gap: 8px;
	--elevex-content-transition: 800ms;
	display: grid;
	grid-template-columns: repeat(var(--elevex-gallery-columns), minmax(0, 1fr));
	gap: var(--elevex-gallery-gap);
	width: 100%;
}

.elevex-gallery--empty {
	display: block;
	padding: 24px;
	border: 1px dashed #c3c4c7;
	background: #f6f7f7;
	color: #646970;
	text-align: center;
}

.elevex-gallery__item {
	position: relative;
	display: block;
	overflow: hidden;
	border: var(--elevex-image-border-width) solid var(--elevex-image-border-color);
	border-radius: var(--elevex-image-border-radius);
	text-decoration: none;
	color: inherit;
}

.elevex-gallery__media {
	display: block;
	width: 100%;
	height: auto;
	transition: transform var(--elevex-image-transition) ease, filter var(--elevex-image-transition) ease;
}

.elevex-gallery--grid .elevex-gallery__media {
	aspect-ratio: var(--elevex-gallery-ratio);
	height: 100%;
	object-fit: cover;
}

.elevex-gallery--grid.elevex-gallery--ratio-full .elevex-gallery__media {
	aspect-ratio: var(--elevex-img-ratio, auto);
	width: 100%;
	height: auto;
	object-fit: contain;
}

.elevex-gallery--masonry {
	display: block;
	column-count: var(--elevex-gallery-columns);
	column-gap: var(--elevex-gallery-gap);
}

.elevex-gallery--masonry .elevex-gallery__item {
	display: inline-block;
	width: 100%;
	margin: 0 0 var(--elevex-gallery-gap);
	break-inside: avoid;
}

.elevex-gallery--justified {
	display: flex;
	flex-wrap: wrap;
	gap: var(--elevex-gallery-gap);
}

.elevex-gallery--justified .elevex-gallery__item {
	flex: 1 1 auto;
	height: var(--elevex-gallery-row-height);
	min-width: 120px;
}

.elevex-gallery--justified .elevex-gallery__media {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elevex-gallery__overlay,
.elevex-gallery__content {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.elevex-gallery__overlay {
	z-index: 1;
	mix-blend-mode: var(--elevex-overlay-blend);
	transition: opacity var(--elevex-overlay-transition) ease, transform var(--elevex-overlay-transition) ease;
}

.elevex-gallery__content {
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: var(--elevex-content-justify, center);
	padding: var(--elevex-content-padding);
	text-align: var(--elevex-content-align);
}

.elevex-gallery__title,
.elevex-gallery__description {
	display: block;
	color: var(--elevex-title-color);
	transition: opacity var(--elevex-content-transition) ease, transform var(--elevex-content-transition) ease;
}

.elevex-gallery__description {
	margin-top: var(--elevex-description-gap);
	color: var(--elevex-description-color);
}

.elevex-gallery--img-grow .elevex-gallery__item:hover .elevex-gallery__media {
	transform: scale(1.12);
}

.elevex-gallery--img-shrink-contained .elevex-gallery__item:hover .elevex-gallery__media {
	transform: scale(0.92);
}

.elevex-gallery--img-move-contained-left .elevex-gallery__item:hover .elevex-gallery__media {
	transform: translateX(-8%);
}

.elevex-gallery--img-move-contained-right .elevex-gallery__item:hover .elevex-gallery__media {
	transform: translateX(8%);
}

.elevex-gallery--img-move-contained-top .elevex-gallery__item:hover .elevex-gallery__media {
	transform: translateY(-8%);
}

.elevex-gallery--img-move-contained-bottom .elevex-gallery__item:hover .elevex-gallery__media {
	transform: translateY(8%);
}

.elevex-gallery--ovl-fade-in .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-right .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-left .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-top .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-bottom .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-zoom-in .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-zoom-out .elevex-gallery__overlay {
	opacity: 0;
}

.elevex-gallery--ovl-enter-from-right .elevex-gallery__overlay {
	transform: translateX(100%);
}

.elevex-gallery--ovl-enter-from-left .elevex-gallery__overlay {
	transform: translateX(-100%);
}

.elevex-gallery--ovl-enter-from-top .elevex-gallery__overlay {
	transform: translateY(-100%);
}

.elevex-gallery--ovl-enter-from-bottom .elevex-gallery__overlay {
	transform: translateY(100%);
}

.elevex-gallery--ovl-enter-zoom-in .elevex-gallery__overlay {
	transform: scale(0.6);
}

.elevex-gallery--ovl-enter-zoom-out .elevex-gallery__overlay {
	transform: scale(1.4);
}

.elevex-gallery--ovl-fade-in .elevex-gallery__item:hover .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-right .elevex-gallery__item:hover .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-left .elevex-gallery__item:hover .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-top .elevex-gallery__item:hover .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-from-bottom .elevex-gallery__item:hover .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-zoom-in .elevex-gallery__item:hover .elevex-gallery__overlay,
.elevex-gallery--ovl-enter-zoom-out .elevex-gallery__item:hover .elevex-gallery__overlay {
	opacity: 1;
	transform: none;
}

.elevex-gallery--ovl-exit-to-right .elevex-gallery__item:hover .elevex-gallery__overlay {
	transform: translateX(100%);
	opacity: 0;
}

.elevex-gallery--ovl-exit-to-left .elevex-gallery__item:hover .elevex-gallery__overlay {
	transform: translateX(-100%);
	opacity: 0;
}

.elevex-gallery--ovl-exit-to-top .elevex-gallery__item:hover .elevex-gallery__overlay {
	transform: translateY(-100%);
	opacity: 0;
}

.elevex-gallery--ovl-exit-to-bottom .elevex-gallery__item:hover .elevex-gallery__overlay {
	transform: translateY(100%);
	opacity: 0;
}

.elevex-gallery--ovl-fade-out .elevex-gallery__item:hover .elevex-gallery__overlay {
	opacity: 0;
}

.elevex-gallery--cnt-fade-in .elevex-gallery__title,
.elevex-gallery--cnt-fade-in .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-right .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-right .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-left .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-left .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-top .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-top .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-bottom .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-bottom .elevex-gallery__description,
.elevex-gallery--cnt-enter-zoom-in .elevex-gallery__title,
.elevex-gallery--cnt-enter-zoom-in .elevex-gallery__description,
.elevex-gallery--cnt-enter-zoom-out .elevex-gallery__title,
.elevex-gallery--cnt-enter-zoom-out .elevex-gallery__description,
.elevex-gallery--cnt-grow .elevex-gallery__title,
.elevex-gallery--cnt-grow .elevex-gallery__description,
.elevex-gallery--cnt-shrink .elevex-gallery__title,
.elevex-gallery--cnt-shrink .elevex-gallery__description {
	opacity: 0;
}

.elevex-gallery--cnt-enter-from-right .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-right .elevex-gallery__description {
	transform: translateX(16px);
}

.elevex-gallery--cnt-enter-from-left .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-left .elevex-gallery__description {
	transform: translateX(-16px);
}

.elevex-gallery--cnt-enter-from-top .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-top .elevex-gallery__description {
	transform: translateY(-16px);
}

.elevex-gallery--cnt-enter-from-bottom .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-bottom .elevex-gallery__description {
	transform: translateY(16px);
}

.elevex-gallery--cnt-enter-zoom-in .elevex-gallery__title,
.elevex-gallery--cnt-enter-zoom-in .elevex-gallery__description {
	transform: scale(0.85);
}

.elevex-gallery--cnt-enter-zoom-out .elevex-gallery__title,
.elevex-gallery--cnt-enter-zoom-out .elevex-gallery__description {
	transform: scale(1.15);
}

.elevex-gallery--cnt-fade-in .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-fade-in .elevex-gallery__item:hover .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-right .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-right .elevex-gallery__item:hover .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-left .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-left .elevex-gallery__item:hover .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-top .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-top .elevex-gallery__item:hover .elevex-gallery__description,
.elevex-gallery--cnt-enter-from-bottom .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-enter-from-bottom .elevex-gallery__item:hover .elevex-gallery__description,
.elevex-gallery--cnt-enter-zoom-in .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-enter-zoom-in .elevex-gallery__item:hover .elevex-gallery__description,
.elevex-gallery--cnt-enter-zoom-out .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-enter-zoom-out .elevex-gallery__item:hover .elevex-gallery__description {
	opacity: 1;
	transform: none;
}

.elevex-gallery--cnt-grow .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-grow .elevex-gallery__item:hover .elevex-gallery__description {
	opacity: 1;
	transform: scale(1.06);
}

.elevex-gallery--cnt-shrink .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-shrink .elevex-gallery__item:hover .elevex-gallery__description {
	opacity: 1;
	transform: scale(0.94);
}

.elevex-gallery--cnt-fade-out .elevex-gallery__item:hover .elevex-gallery__title,
.elevex-gallery--cnt-fade-out .elevex-gallery__item:hover .elevex-gallery__description {
	opacity: 0;
}

.elevex-gallery--seq .elevex-gallery__description {
	transition-delay: calc(var(--elevex-content-transition) * 0.35);
}

@media (max-width: 767px) {
	.elevex-gallery--justified .elevex-gallery__item {
		min-width: 100%;
		flex-basis: 100%;
	}
}
