/* Loupe.js CSS */
.img-magnifier-container {
	position: relative;
	display: inline-block; /* Wraps tightly around the image */
	line-height: 0;		/* Prevents bottom gap in some layouts */
	cursor: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj48Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNiIgZmlsbD0icmdiYSgyNSwyNSwyNSwwLjgpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMy4yIDMuMikgc2NhbGUoMC44KSI+PHBhdGggZD0ibTI0IDI0LTMuNzU0LTMuNzU0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuMTkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxjaXJjbGUgY3g9IjE0IiBjeT0iMTQiIHI9IjciIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMi4xOSIvPjwvZz48L3N2Zz4=") 16 16, default;
	-webkit-tap-highlight-color: transparent;
}
.img-magnifier-container[data-zoom-move="false"] {
	cursor: default !important;
}

.img-magnifier-container img,
.vc_single_image-wrapper:has(> div.img-magnifier-container ),
.wpb_wrapper:has(> div.img-magnifier-container ),
.wpb_single_image:has(> div.img-magnifier-container ) {	
    /* Prevents the 'Save Image' / 'Copy' menu on iOS/Android */
	-webkit-touch-callout: none !important; 
    
	/* Prevents the 'magnifying glass' text selector */
	-webkit-user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;

	/* Disables all default browser touch actions */
	touch-action: none !important;
    
	/* Prevents dragging the ghost of the image */
	-webkit-user-drag: none !important;
}

.loupe-shield {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 50; /* Sits above the image */
    background: rgba(0,0,0,0); /* Completely transparent */
    -webkit-touch-callout: none !important;
    user-select: none !important;
    touch-action: none;
}
.img-magnifier-container:has(> .loupe-shield):has(.loupe[data-zoom-move='false']){
	cursor: default !important;
}

.img-magnifier-glass {
	/* [Existing Styles] */
	position: absolute;
	border: 8px solid rgba(185, 185, 185, .95);
	border-radius: 50%;
	pointer-events: none; 
	z-index: 10;
	opacity: 0;
	transform: scale(0) translateZ(0); /* Force GPU */
	transition: opacity 0.2s linear, transform 0.4s ease-in-out;
	background-color: rgb(25, 25, 25);
	overflow: hidden;
	will-change: transform, opacity;
	backface-visibility: hidden;
	-moz-backface-visibility: hidden;
	transform-style: preserve-3d;
	box-shadow: 0 1px 5px rgba(25,25,25,.5);
}

.img-magnifier-glass:before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
	border: 3px solid rgba(25, 25, 25, 0.75);
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.25));
	z-index: 2;
	box-shadow: 0 0 2px rgba(25, 25, 25, 1) inset, 0 0 30px rgba(25, 25, 25, 0.25) inset;
}
.img-magnifier-glass:after {
	content: "";
	position: absolute;
	border: 2px solid rgba(25, 25, 25, .5);
	border-radius: 50%;
	z-index: 9;
}

.loupe-loader {
	position: absolute;
	top: 50%; left: 50%;
	width: 30px; height: 30px;
	margin: -15px 0 0 -15px;
	border: 3px solid rgba(255,255,255,0.1);
	border-top-color: #fff;
	border-radius: 50%;
	animation: loupe-spin 0.8s infinite linear;
	transition: opacity 0.3s ease;
	z-index: 20;
}

.loupe-loaded .loupe-loader { opacity: 0; }
@keyframes loupe-spin { to { transform: rotate(360deg); } }