.wplb-project-gallery {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
}

.wplb-project-gallery .wplb-gallery-slide {
	display: block;
	width: 100%;
}

/* First slide stays in normal flow so the container takes its natural height. */
.wplb-project-gallery .wplb-gallery-slide:first-of-type {
	position: relative;
	transition: opacity 0.4s ease;
}

.wplb-project-gallery .wplb-gallery-slide:first-of-type:not(.is-active) {
	opacity: 0;
}

/* Subsequent slides float on top of the first one. */
.wplb-project-gallery .wplb-gallery-slide:not(:first-of-type) {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}

.wplb-project-gallery .wplb-gallery-slide:not(:first-of-type).is-active {
	opacity: 1;
}

.wplb-gallery-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10px;
	display: flex;
	justify-content: center;
	gap: 5px;
	z-index: 3;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.wplb-project-gallery:hover .wplb-gallery-dots,
.wplb-project-gallery.is-touched .wplb-gallery-dots {
	opacity: 1;
}

.wplb-gallery-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	box-shadow: 0 0 2px rgba(0, 0, 0, 0.4);
	transition: background 0.2s ease, transform 0.2s ease;
}

.wplb-gallery-dot.is-active {
	background: #fff;
	transform: scale(1.3);
}
