/**
 * Shopimo - Premium Circular Loading Indicator Component
 *
 * Minimal, luxurious circular loading indicator across Shopimo.
 * Features brand color #DA1C5C, smooth continuous rotation,
 * clean translucent overlay, and no logos or text.
 *
 * @package Shopimo
 * @since 1.1.0
 */

/* ==========================================================================
   GLOBAL CIRCULAR SPINNER KEYFRAMES
   ========================================================================== */
@keyframes shopimoSpin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

/* ==========================================================================
   BASE CIRCULAR SPINNER
   ========================================================================== */
.shopimo-spinner {
	display: inline-block;
	width: 46px;
	height: 46px;
	border: 3.5px solid rgba(218, 28, 92, 0.16);
	border-top-color: #DA1C5C;
	border-radius: 50%;
	animation: shopimoSpin 0.75s linear infinite;
	box-sizing: border-box;
	vertical-align: middle;
	will-change: transform;
}

/* Spinner Size Variations */
.shopimo-spinner--sm {
	width: 18px;
	height: 18px;
	border-width: 2px;
}

.shopimo-spinner--md {
	width: 26px;
	height: 26px;
	border-width: 2.5px;
}

.shopimo-spinner--lg {
	width: 44px;
	height: 44px;
	border-width: 3.5px;
}

/* ==========================================================================
   FULL-PAGE NAVIGATION OVERLAY
   ========================================================================== */
.shopimo-page-loader {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(2.5px);
	-webkit-backdrop-filter: blur(2.5px);
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.22s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: opacity, visibility;
}

.shopimo-page-loader.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.shopimo-page-spinner {
	display: flex;
	align-items: center;
	justify-content: center;
	user-select: none;
}

/* ==========================================================================
   WOOCOMMERCE AJAX ACTIONS: IN-BUTTON & IN-COMPONENT SPINNERS
   ========================================================================== */

/* 1. Add to Cart Buttons (Loop & Single Product) */
.woocommerce a.button.loading,
.woocommerce button.button.loading,
.woocommerce input.button.loading {
	position: relative !important;
	padding-right: 2.6em !important;
}

.woocommerce a.button.loading::after,
.woocommerce button.button.loading::after,
.woocommerce input.button.loading::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	right: 0.85em !important;
	width: 16px !important;
	height: 16px !important;
	margin-top: -8px !important;
	border: 2px solid rgba(255, 255, 255, 0.35) !important;
	border-top-color: #ffffff !important;
	border-radius: 50% !important;
	animation: shopimoSpin 0.75s linear infinite !important;
	font-family: inherit !important;
	background: none !important;
}

/* Add to Cart button on lighter/outline styles */
.woocommerce a.button.loading:not(.alt),
.wpr-btn.btn-outline.loading::after {
	border: 2px solid rgba(218, 28, 92, 0.2) !important;
	border-top-color: #DA1C5C !important;
}

/* Card Quick Add Drawer Submit Button */
.wpr-card-drawer-submit-btn.is-loading {
	position: relative !important;
	color: transparent !important;
	pointer-events: none !important;
}

.wpr-card-drawer-submit-btn.is-loading span {
	visibility: hidden !important;
}

.wpr-card-drawer-submit-btn.is-loading::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 18px !important;
	height: 18px !important;
	margin-top: -9px !important;
	margin-left: -9px !important;
	border: 2px solid rgba(255, 255, 255, 0.35) !important;
	border-top-color: #ffffff !important;
	border-radius: 50% !important;
	animation: shopimoSpin 0.75s linear infinite !important;
}

/* Wishlist Direct Add to Cart Button */
.wpr-wishlist-add-to-cart-btn:disabled {
	position: relative !important;
}

/* 2. Wishlist Buttons */
.wpr-wishlist-btn.wpr-loading,
.wpr-wishlist-btn-detail.wpr-loading {
	position: relative !important;
	pointer-events: none !important;
}

.wpr-wishlist-btn.wpr-loading i,
.wpr-wishlist-btn-detail.wpr-loading i {
	visibility: hidden !important;
}

.wpr-wishlist-btn.wpr-loading::after,
.wpr-wishlist-btn-detail.wpr-loading::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 18px !important;
	height: 18px !important;
	margin-top: -9px !important;
	margin-left: -9px !important;
	border: 2.2px solid rgba(218, 28, 92, 0.2) !important;
	border-top-color: #DA1C5C !important;
	border-radius: 50% !important;
	animation: shopimoSpin 0.75s linear infinite !important;
	box-sizing: border-box !important;
	z-index: 2 !important;
}

/* 3. Shop AJAX Filters and Sorting */
.wpr-loading-spinner-container {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 60px 0 !important;
	min-height: 200px !important;
	width: 100% !important;
	color: #DA1C5C !important;
}

.wpr-loading-spinner-container .shopimo-spinner {
	margin: 0 auto !important;
}

.wpr-loading-spinner-container p {
	display: none !important; /* Strictly no loading text */
}

/* 4. Live AJAX Search Inline Spinner */
.wpr-search-spinner.shopimo-inline-spinner {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

/* 5. Mini-Cart Drawer AJAX Loading */
.wpr-mini-cart-drawer-content.wpr-loading::before {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 32px !important;
	height: 32px !important;
	margin-top: -16px !important;
	margin-left: -16px !important;
	border: 3px solid rgba(218, 28, 92, 0.18) !important;
	border-top-color: #DA1C5C !important;
	border-radius: 50% !important;
	animation: shopimoSpin 0.75s linear infinite !important;
	font-family: inherit !important;
	font-size: 0 !important;
	line-height: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 12 !important;
}

/* 6. WooCommerce BlockUI Overlay (Checkout & Cart recalculations) */
.blockUI.blockOverlay {
	background: rgba(255, 255, 255, 0.78) !important;
	backdrop-filter: blur(2px) !important;
	-webkit-backdrop-filter: blur(2px) !important;
	opacity: 1 !important;
}

.blockUI.blockMsg,
.woocommerce .blockUI.blockMsg {
	border: none !important;
	background: transparent !important;
}

.woocommerce .blockUI.blockMsg::before,
.blockUI.blockOverlay::before {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 36px !important;
	height: 36px !important;
	margin-top: -18px !important;
	margin-left: -18px !important;
	border: 3px solid rgba(218, 28, 92, 0.18) !important;
	border-top-color: #DA1C5C !important;
	border-radius: 50% !important;
	animation: shopimoSpin 0.75s linear infinite !important;
	background: none !important;
}

/* ==========================================================================
   RESPONSIVE DESIGN (DESKTOP, TABLET, MOBILE)
   ========================================================================== */
@media (max-width: 768px) {
	.shopimo-spinner {
		width: 40px;
		height: 40px;
		border-width: 3px;
	}

	.shopimo-spinner--lg {
		width: 38px;
		height: 38px;
		border-width: 3px;
	}
}

@media (max-width: 480px) {
	.shopimo-spinner {
		width: 36px;
		height: 36px;
		border-width: 2.8px;
	}
}

/* ==========================================================================
   ACCESSIBILITY & PREFERS-REDUCED-MOTION
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.shopimo-spinner,
	.shopimo-spinner--sm,
	.shopimo-spinner--md,
	.shopimo-spinner--lg,
	.woocommerce a.button.loading::after,
	.woocommerce button.button.loading::after,
	.woocommerce input.button.loading::after,
	.wpr-card-drawer-submit-btn.is-loading::after,
	.wpr-wishlist-btn.wpr-loading::after,
	.wpr-wishlist-btn-detail.wpr-loading::after,
	.wpr-mini-cart-drawer-content.wpr-loading::before,
	.blockUI.blockOverlay::before,
	.woocommerce .blockUI.blockMsg::before {
		animation-duration: 2s !important;
	}

	.shopimo-page-loader {
		transition-duration: 0.1s !important;
	}
}

