.pmge-gallery {
	--pmge-columns: 3;
	--pmge-gap: 14px;
	--pmge-ratio: 1 / 1;
	--pmge-featured-ratio: var(--pmge-ratio);
	--pmge-thumb-size: 86px;
	--pmge-thumb-ratio: 1 / 1;
	--pmge-thumb-columns: 4;
	--pmge-thumb-gap: var(--pmge-gap);
	--pmge-arrow-size: 44px;
	--pmge-hover-scale: 1.03;
	--pmge-media-pad-top: 0px;
	--pmge-media-pad-right: 0px;
	--pmge-media-pad-bottom: 0px;
	--pmge-media-pad-left: 0px;
	--pmge-media-scale: 1;
	--pmge-thumb-pad-top: 0px;
	--pmge-thumb-pad-right: 0px;
	--pmge-thumb-pad-bottom: 0px;
	--pmge-thumb-pad-left: 0px;
	--pmge-thumb-scale: 1;
	position: relative;
	width: 100%;
}

.pmge-empty {
	padding: 18px;
	background: #f6f7f7;
	border: 1px solid #dcdcde;
	color: #50575e;
}

.pmge-track {
	display: grid;
	gap: var(--pmge-gap);
}

.pmge-layout-grid .pmge-track {
	grid-template-columns: repeat(var(--pmge-columns), minmax(0, 1fr));
}

.pmge-layout-masonry .pmge-track {
	column-count: var(--pmge-columns);
	column-gap: var(--pmge-gap);
	display: block;
}

.pmge-layout-masonry .pmge-media-frame {
	break-inside: avoid;
	margin: 0 0 var(--pmge-gap);
}

.pmge-layout-slider {
	overflow: hidden;
}

.pmge-layout-slider .pmge-track {
	display: flex;
	gap: 0;
	transition: transform .35s ease;
	will-change: transform;
}

.pmge-layout-slider .pmge-media-frame {
	flex: 0 0 100%;
}

.pmge-media-frame {
	aspect-ratio: var(--pmge-ratio);
	display: block;
	isolation: isolate;
	overflow: hidden;
	position: relative;
	text-decoration: none;
	transform: translateZ(0);
}

.pmge-ratio-auto .pmge-media-frame {
	aspect-ratio: auto;
}

.pmge-media-frame img,
.pmge-media-frame video,
.pmge-embed,
.pmge-embed iframe {
	display: block;
	height: calc(100% - var(--pmge-media-pad-top) - var(--pmge-media-pad-bottom));
	margin: var(--pmge-media-pad-top) var(--pmge-media-pad-right) var(--pmge-media-pad-bottom) var(--pmge-media-pad-left);
	width: calc(100% - var(--pmge-media-pad-left) - var(--pmge-media-pad-right));
}

.pmge-ratio-auto .pmge-media-frame img,
.pmge-ratio-auto .pmge-media-frame video,
.pmge-ratio-auto .pmge-embed,
.pmge-ratio-auto .pmge-embed iframe {
	height: auto;
}

.pmge-media-frame img,
.pmge-media-frame video,
.pmge-embed {
	object-fit: cover;
	object-position: center center;
	transition: transform .35s ease, filter .35s ease;
	transform: scale(var(--pmge-media-scale));
}

.pmge-media-frame:hover img,
.pmge-media-frame:hover video,
.pmge-media-frame:hover .pmge-embed {
	transform: scale(calc(var(--pmge-media-scale) * var(--pmge-hover-scale)));
}

.pmge-embed iframe {
	height: 100%;
	margin: 0;
	width: 100%;
}

.pmge-media-frame::after {
	content: "";
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity .25s ease;
	z-index: 1;
}

.pmge-caption {
	bottom: 0;
	left: 0;
	line-height: 1.35;
	padding: 18px;
	position: absolute;
	right: 0;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
	z-index: 2;
}

.pmge-video-badge {
	align-items: center;
	background: rgba(0, 0, 0, .55);
	border-radius: 999px;
	display: flex;
	height: 44px;
	justify-content: center;
	left: 50%;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	z-index: 3;
}

.pmge-video-badge::before {
	border-bottom: 10px solid transparent;
	border-left: 15px solid #fff;
	border-top: 10px solid transparent;
	content: "";
	margin-left: 3px;
}

.pmge-arrow {
	align-items: center;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
	color: var(--pmge-control-color, #111);
	cursor: pointer;
	display: flex;
	height: var(--pmge-arrow-size);
	justify-content: center;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: opacity .2s ease, transform .2s ease;
	width: var(--pmge-arrow-size);
	z-index: 5;
}

.pmge-arrow:hover {
	transform: translateY(-50%) scale(1.06);
}

.pmge-prev {
	left: 14px;
}

.pmge-next {
	right: 14px;
}

[dir="rtl"] .pmge-prev {
	left: auto;
	right: 14px;
}

[dir="rtl"] .pmge-next {
	left: 14px;
	right: auto;
}

.pmge-arrow::before {
	border-color: currentColor;
	border-style: solid;
	border-width: 0 2px 2px 0;
	content: "";
	height: 10px;
	width: 10px;
}

.pmge-prev::before {
	transform: rotate(135deg);
}

.pmge-next::before {
	transform: rotate(-45deg);
}

[dir="rtl"] .pmge-prev::before {
	transform: rotate(-45deg);
}

[dir="rtl"] .pmge-next::before {
	transform: rotate(135deg);
}

.pmge-dots {
	align-items: center;
	bottom: 14px;
	display: flex;
	gap: 8px;
	justify-content: center;
	left: 0;
	position: absolute;
	right: 0;
	z-index: 6;
}

.pmge-dot {
	background: var(--pmge-control-color, #111);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	height: 9px;
	opacity: .35;
	padding: 0;
	width: 9px;
}

.pmge-dot.is-active {
	opacity: 1;
	width: 24px;
}

.pmge-featured-stage {
	position: relative;
}

.pmge-layout-featured .pmge-featured-item {
	aspect-ratio: var(--pmge-featured-ratio);
}

.pmge-featured-item {
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity .25s ease;
}

.pmge-featured-item.is-active {
	opacity: 1;
	pointer-events: auto;
	position: relative;
}

.pmge-thumbs {
	display: grid;
	gap: var(--pmge-thumb-gap);
	grid-template-columns: repeat(auto-fill, minmax(var(--pmge-thumb-size), 1fr));
	margin-top: var(--pmge-thumb-gap);
}

.pmge-thumbs-columns .pmge-thumbs {
	grid-template-columns: repeat(var(--pmge-thumb-columns), minmax(0, 1fr));
}

.pmge-thumbs-scroll .pmge-thumbs {
	display: flex;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	padding-bottom: 4px;
	scroll-snap-type: x proximity;
}

.pmge-thumb {
	aspect-ratio: var(--pmge-thumb-ratio);
	background: #f2f2f2;
	border: 2px solid transparent;
	border-radius: 4px;
	cursor: pointer;
	overflow: hidden;
	padding: var(--pmge-thumb-pad-top) var(--pmge-thumb-pad-right) var(--pmge-thumb-pad-bottom) var(--pmge-thumb-pad-left);
}

.pmge-thumbs-scroll .pmge-thumb {
	flex: 0 0 var(--pmge-thumb-size);
	scroll-snap-align: start;
}

.pmge-thumb.is-active {
	border-color: var(--pmge-control-color, #111);
}

.pmge-thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transform: scale(var(--pmge-thumb-scale));
	width: 100%;
}

.pmge-thumb-placeholder {
	align-items: center;
	color: #646970;
	display: flex;
	font-size: 12px;
	height: 100%;
	justify-content: center;
	width: 100%;
}

@media (max-width: 767px) {
	.pmge-layout-grid .pmge-track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pmge-layout-masonry .pmge-track {
		column-count: 2;
	}
}

@media (max-width: 480px) {
	.pmge-layout-grid .pmge-track {
		grid-template-columns: 1fr;
	}

	.pmge-layout-masonry .pmge-track {
		column-count: 1;
	}
}
