/* =========================================================
   QUICK VIEW BUTTON
   ========================================================= */

.product-quick-view {
	position: relative;
	z-index: 5;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 42px;
	min-width: 42px;
	height: 42px;
	min-height: 42px;

	margin: 0;
	padding: 0;

	border: 0;
	border-radius: 50%;

	background-color: #fff !important;
	color: #111 !important;

	font-family: inherit;
	font-size: inherit;
	line-height: 1;

	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;

	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.14);

	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

.product-quick-view:hover,
.product-quick-view:focus-visible {
	background-color: #111 !important;
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
}

.product-quick-view:focus {
	outline: none;
}

.product-quick-view:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}


/* =========================================================
   QUICK VIEW ICON
   ========================================================= */

.product-quick-view__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 20px;
	height: 20px;

	line-height: 1;
	pointer-events: none;
}

.product-quick-view__icon svg {
	display: block;
	width: 20px;
	height: 20px;
}


/* =========================================================
   QUICK VIEW TOOLTIP
   Desktop/tablet: left of button.
   Mobile: above button.
   ========================================================= */

.product-quick-view__text {
	position: absolute;
	top: 50%;
	right: calc(100% + 10px);
	left: auto;
	bottom: auto;
	z-index: 999;

	display: block;

	min-width: max-content;
	padding: 7px 10px;

	border-radius: 4px;

	background-color: #111;
	color: #fff;

	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transform: translate(-5px, -50%);

	transition:
		opacity 0.2s ease,
		visibility 0.2s ease,
		transform 0.2s ease;
}

.product-quick-view__text::after {
	position: absolute;
	top: 50%;
	left: 100%;

	width: 0;
	height: 0;

	border: 5px solid transparent;
	border-left-color: #111;

	content: "";

	transform: translateY(-50%);
}

.product-quick-view:hover .product-quick-view__text,
.product-quick-view:focus-visible .product-quick-view__text,
.product-quick-view:focus .product-quick-view__text {
	opacity: 1;
	visibility: visible;
	transform: translate(0, -50%);
}


/* =========================================================
   PREVENT ELEMENTOR FROM CLIPPING THE TOOLTIP
   Add your specific Loop Item class if needed.
   ========================================================= */

.elementor-loop-container,
.elementor-loop-container .e-loop-item,
.elementor-widget-shortcode,
.elementor-widget-shortcode .elementor-widget-container {
	overflow: visible;
}


/* =========================================================
   QUICK VIEW POPUP CONTENT
   ========================================================= */

.quick-view-content {
	position: relative;
	width: 100%;
	min-height: 100px;
}

.quick-view-content[aria-busy="true"] {
	pointer-events: none;
}


/* =========================================================
   LOADING AND ERROR STATES
   ========================================================= */

.quick-view-loading,
.quick-view-error {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;

	width: 100%;
	min-height: 260px;
	padding: 30px;

	text-align: center;
}

.quick-view-error {
	color: #b42318;
}

.quick-view-spinner {
	display: inline-block;

	width: 24px;
	height: 24px;

	border: 3px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;

	animation: quick-view-spin 0.7s linear infinite;
}

@keyframes quick-view-spin {
	to {
		transform: rotate(360deg);
	}
}


/* =========================================================
   QUICK VIEW PRODUCT IMAGE
   ========================================================= */

.quick-view-product-image {
	display: block;

	width: 100%;
	max-width: 100%;
	height: auto;

	margin: 0;

	object-fit: contain;
}


/* =========================================================
   WOOCOMMERCE PRODUCT GALLERY
   ========================================================= */

.quick-view-content .woocommerce-product-gallery {
	display: block;
	opacity: 1 !important;
	visibility: visible !important;
}

.quick-view-content .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.quick-view-content .woocommerce-product-gallery img {
	display: block;

	width: 100%;
	max-width: 100%;
	height: auto;
}


/* =========================================================
   ADD TO CART FORM
   ========================================================= */

.quick-view-content form.cart {
	margin-bottom: 0;
}

.quick-view-content form.cart::after {
	display: table;
	clear: both;
	content: "";
}


/* =========================================================
   MOBILE DEVICES
   Tooltip returns to the top on smaller screens.
   ========================================================= */

@media (max-width: 767px) {
	.product-quick-view__text {
		top: auto;
		right: auto;
		left: 50%;
		bottom: calc(100% + 10px);
		transform: translate(-50%, 5px);
	}

	.product-quick-view__text::after {
		top: 100%;
		left: 50%;
		border: 5px solid transparent;
		border-top-color: #111;
		transform: translateX(-50%);
	}

	.product-quick-view:hover .product-quick-view__text,
	.product-quick-view:focus-visible .product-quick-view__text,
	.product-quick-view:focus .product-quick-view__text {
		transform: translate(-50%, 0);
	}

	.product-quick-view:hover {
		transform: none;
	}
}


/* =========================================================
   REDUCED MOTION ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.product-quick-view,
	.product-quick-view__text,
	.quick-view-spinner {
		transition: none;
	}

	.quick-view-spinner {
		animation-duration: 1.5s;
	}
}
