img.ipl-trigger,
a.ipl-trigger {
	cursor: zoom-in;
}

.ipl-overlay {
	position: fixed;
	inset: 0;
	z-index: 999999;
	background: rgba(0, 0, 0, 0.88);
	display: none;
	overflow: auto;
	text-align: center;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
}
.ipl-overlay.is-open {
	display: block;
}

/* A full-height inline block keeps .ipl-frame vertically centered while
   still allowing the overlay to scroll when the image is bigger than the
   viewport (zoomed in, or larger than the screen to begin with). */
.ipl-overlay::before {
	content: "";
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}

.ipl-frame {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	white-space: normal;
	line-height: 0;
	margin: 40px;
}

.ipl-frame img {
	display: block;
	touch-action: none;
	user-select: none;
	-webkit-user-drag: none;
	cursor: grab;
}
.ipl-frame img.is-dragging {
	cursor: grabbing;
}

.ipl-zoom-controls {
	position: fixed;
	left: 50%;
	bottom: 28px;
	transform: translateX(-50%);
	z-index: 1000000;
	display: none;
	align-items: center;
	gap: 12px;
}
.ipl-overlay.is-open .ipl-zoom-controls {
	display: flex;
}

.ipl-zoom-btn,
.ipl-close {
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	color: #fff;
	font-size: 22px;
	font-weight: bold;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(4px);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
	transition: background-color 0.15s ease, transform 0.15s ease;
}

.ipl-zoom-btn {
	background: rgba(255, 255, 255, 0.15);
}
.ipl-zoom-btn:hover,
.ipl-zoom-btn:focus {
	background: rgba(255, 255, 255, 0.3);
}

.ipl-close {
	background: rgba(220, 38, 38, 0.75);
}
.ipl-close:hover,
.ipl-close:focus {
	background: rgba(220, 38, 38, 0.95);
	transform: scale(1.08);
}
