/*
 * EVC Gallery Block Compatibility
 * Standalone styling based on the public GPL-licensed Extensive VC Gallery Block
 * layout, rewritten without the original framework dependencies.
 */
.evc-gallery-block {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: middle;
}

.evc-gallery-block,
.evc-gallery-block * {
	box-sizing: border-box;
}

.evc-gallery-block .evc-gb-wrapper {
	display: flex;
	flex-wrap: wrap;
	width: auto;
}

.evc-gallery-block .evc-gb-image-wrapper {
	position: relative;
	min-width: 0;
}

.evc-gallery-block .evc-gb-image {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: middle;
	overflow: hidden;
}

.evc-gallery-block .evc-gb-image > a,
.evc-gallery-block .evc-gb-image img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

/* Original Gallery Block proportions. */
.evc-gallery-block.evc-gb-featured-top .evc-gb-image-wrapper {
	width: 50%;
}

.evc-gallery-block.evc-gb-featured-top .evc-gb-image-wrapper.evc-gb-featured-image {
	width: 100%;
}

.evc-gallery-block.evc-gb-featured-left .evc-gb-image-wrapper {
	width: 25%;
}

.evc-gallery-block.evc-gb-featured-left .evc-gb-image-wrapper.evc-gb-featured-image {
	width: 50%;
}

/* Extensive VC spacing compatibility. */
.evc-gallery-block.evc-no-space .evc-element-wrapper { margin: 0; }
.evc-gallery-block.evc-no-space .evc-element-item { padding: 0; margin-bottom: 0; }

.evc-gallery-block.evc-tiny-space .evc-element-wrapper { margin-left: -5px; margin-right: -5px; }
.evc-gallery-block.evc-tiny-space .evc-element-item { padding-left: 5px; padding-right: 5px; margin-bottom: 10px; }

.evc-gallery-block.evc-small-space .evc-element-wrapper { margin-left: -10px; margin-right: -10px; }
.evc-gallery-block.evc-small-space .evc-element-item { padding-left: 10px; padding-right: 10px; margin-bottom: 20px; }

.evc-gallery-block.evc-normal-space .evc-element-wrapper { margin-left: -15px; margin-right: -15px; }
.evc-gallery-block.evc-normal-space .evc-element-item { padding-left: 15px; padding-right: 15px; margin-bottom: 30px; }

.evc-gallery-block.evc-medium-space .evc-element-wrapper { margin-left: -20px; margin-right: -20px; }
.evc-gallery-block.evc-medium-space .evc-element-item { padding-left: 20px; padding-right: 20px; margin-bottom: 40px; }

.evc-gallery-block.evc-large-space .evc-element-wrapper { margin-left: -25px; margin-right: -25px; }
.evc-gallery-block.evc-large-space .evc-element-item { padding-left: 25px; padding-right: 25px; margin-bottom: 50px; }

/* Lightweight equivalents of the original image behavior options. */
.evc-gallery-block .evc-gb-image img {
	transition: transform .35s ease, opacity .35s ease, filter .35s ease;
}

.evc-gallery-block .evc-ib-overlay::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .18);
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s ease;
}

.evc-gallery-block .evc-ib-overlay:hover::after { opacity: 1; }
.evc-gallery-block .evc-ib-zoom:hover img { transform: scale(1.06); }
.evc-gallery-block .evc-ib-top-moving:hover img { transform: translateY(-6px); }

.evc-gallery-block .evc-ib-circle-fade-out::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 0;
	height: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .26);
	transform: translate(-50%, -50%);
	opacity: 0;
	pointer-events: none;
	transition: width .4s ease, height .4s ease, opacity .4s ease;
}

.evc-gallery-block .evc-ib-circle-fade-out:hover::after {
	width: 150%;
	height: 150%;
	opacity: 1;
}

.evc-gallery-block .evc-ib-bordered::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1px solid rgba(255, 255, 255, .85);
	opacity: 0;
	transform: scale(.96);
	pointer-events: none;
	transition: opacity .3s ease, transform .3s ease;
}

.evc-gallery-block .evc-ib-bordered:hover::after {
	opacity: 1;
	transform: scale(1);
}

.evc-gallery-block .evc-gb-lightbox { cursor: zoom-in; }

@media (max-width: 1024px) {
	.evc-gallery-block.evc-gb-featured-left .evc-gb-image-wrapper {
		width: 50%;
	}

	.evc-gallery-block.evc-gb-featured-left .evc-gb-image-wrapper.evc-gb-featured-image {
		width: 100%;
	}
}

/* Built-in lightbox. */
.evcgb-lightbox {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
	background: rgba(0, 0, 0, .9);
}

.evcgb-lightbox[hidden] { display: none !important; }
.evcgb-lightbox__figure { margin: 0; max-width: min(92vw, 1600px); max-height: 90vh; text-align: center; }
.evcgb-lightbox__image { display: block; max-width: 100%; max-height: 82vh; width: auto; height: auto; margin: 0 auto; }
.evcgb-lightbox__caption { margin-top: 12px; color: #fff; font-size: 14px; line-height: 1.4; }
.evcgb-lightbox__close,
.evcgb-lightbox__prev,
.evcgb-lightbox__next {
	position: absolute;
	border: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
	font: inherit;
	line-height: 1;
}
.evcgb-lightbox__close { top: 18px; right: 22px; font-size: 38px; }
.evcgb-lightbox__prev,
.evcgb-lightbox__next { top: 50%; transform: translateY(-50%); padding: 18px; font-size: 46px; }
.evcgb-lightbox__prev { left: 10px; }
.evcgb-lightbox__next { right: 10px; }
.evcgb-lightbox__prev[hidden],
.evcgb-lightbox__next[hidden] { display: none; }

body.evcgb-lightbox-open { overflow: hidden; }

@media (max-width: 640px) {
	.evcgb-lightbox { padding: 20px; }
	.evcgb-lightbox__prev,
	.evcgb-lightbox__next { font-size: 34px; padding: 10px; }
}
