/* ---------- Zoom au survol ---------- */
.gz-zoomable { overflow: hidden !important; cursor: zoom-in; }
.gz-zoomable img { transition: transform .25s ease-out; will-change: transform; }
.gz-zoomable.gz-hovering img { transition: transform .08s linear; }

/* Petite loupe indiquant que l'image est zoomable */
.gz-zoomable { position: relative; }
.gz-zoomable::after {
	content: ""; position: absolute; right: 12px; bottom: 12px; width: 38px; height: 38px;
	border-radius: 50%; background: rgba(255,255,255,.9) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/20px no-repeat;
	box-shadow: 0 2px 8px rgba(0,0,0,.15); pointer-events: none; transition: opacity .2s; z-index: 2;
}
.gz-zoomable.gz-hovering::after { opacity: 0; }

/* ---------- Lightbox ---------- */
.gz-lb {
	position: fixed; inset: 0; z-index: 999999; background: rgba(15,15,15,.94);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s;
	touch-action: none; user-select: none; -webkit-user-select: none;
}
.gz-lb.gz-open { opacity: 1; visibility: visible; }
.gz-lb__stage { position: absolute; inset: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; cursor: zoom-in; }
.gz-lb__stage.gz-zoomed { cursor: grab; }
.gz-lb__stage.gz-dragging { cursor: grabbing; }
.gz-lb__img {
	max-width: 92vw; max-height: 88vh; object-fit: contain; background: #fff;
	transform-origin: 0 0; transition: transform .25s ease; pointer-events: none;
}
.gz-lb__stage.gz-dragging .gz-lb__img { transition: none; }
.gz-lb button {
	position: absolute; z-index: 2; border: 0; border-radius: 50%; width: 46px; height: 46px;
	background: rgba(255,255,255,.12); color: #fff; font-size: 26px; line-height: 46px; padding: 0;
	cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s;
}
.gz-lb button:hover, .gz-lb button:focus-visible { background: rgba(255,255,255,.28); outline: none; }
.gz-lb__close { top: 16px; right: 16px; }
.gz-lb__prev { left: 16px; top: 50%; transform: translateY(-50%); }
.gz-lb__next { right: 16px; top: 50%; transform: translateY(-50%); }
.gz-lb__count { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #ddd; font: 14px/1 sans-serif; z-index: 2; }
.gz-lb.gz-single .gz-lb__prev, .gz-lb.gz-single .gz-lb__next, .gz-lb.gz-single .gz-lb__count { display: none; }
html.gz-noscroll, html.gz-noscroll body { overflow: hidden !important; }
