/* Frill Thrills — Button loaders (wishlist + add to cart) */

@keyframes ft-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

/* Shared spinner ring — center with margin so animation can own transform */
.ft-wl-btn.is-loading::after,
.ft-pg-icon.ft-wl-btn.is-loading::after,
a.add_to_cart_button.loading::after,
button.add_to_cart_button.loading::after,
a.ajax_add_to_cart.loading::after,
.ft-pg-btn.loading::after,
.ft-qa__trigger.loading::after,
.ft-as-add-to-cart.loading::after,
.ft-wl-item__cart.loading::after,
.single_add_to_cart_button.loading::after,
button.single_add_to_cart_button.loading::after {
	content: '' !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 16px !important;
	height: 16px !important;
	margin-top: -8px !important;
	margin-left: -8px !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
	border: 2px solid rgba(255, 255, 255, 0.35) !important;
	border-top-color: #fff !important;
	border-radius: 50% !important;
	box-sizing: border-box !important;
	transform: none;
	animation: ft-spin 0.65s linear infinite !important;
	display: block !important;
	font-size: 0 !important;
	line-height: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	z-index: 2;
	pointer-events: none;
}

/* ---- Wishlist heart (circular) ---- */
.ft-wl-btn,
.ft-pg-icon.ft-wl-btn {
	position: relative;
}

.ft-wl-btn.is-loading,
.ft-pg-icon.ft-wl-btn.is-loading {
	background: #f71358 !important;
	border-color: #f71358 !important;
	color: #fff !important;
	opacity: 1 !important;
	pointer-events: none !important;
	cursor: wait !important;
}

.ft-wl-btn.is-loading .ft-wl-heart,
.ft-pg-icon.ft-wl-btn.is-loading .ft-wl-heart,
.ft-wl-btn.is-loading svg,
.ft-pg-icon.ft-wl-btn.is-loading svg {
	opacity: 0 !important;
	visibility: hidden !important;
}

.ft-wl-btn.is-loading::after,
.ft-pg-icon.ft-wl-btn.is-loading::after {
	width: 18px !important;
	height: 18px !important;
	margin-top: -9px !important;
	margin-left: -9px !important;
}

/* ---- Add to cart (text buttons) ---- */
a.add_to_cart_button,
button.add_to_cart_button,
a.ajax_add_to_cart,
.ft-pg-btn,
.ft-qa__trigger,
.ft-as-add-to-cart,
.ft-wl-item__cart,
.single_add_to_cart_button,
button.single_add_to_cart_button {
	position: relative;
}

a.add_to_cart_button.loading,
button.add_to_cart_button.loading,
a.ajax_add_to_cart.loading,
.ft-pg-btn.loading,
.ft-qa__trigger.loading,
.ft-as-add-to-cart.loading,
.ft-wl-item__cart.loading,
.single_add_to_cart_button.loading,
button.single_add_to_cart_button.loading {
	color: transparent !important;
	pointer-events: none !important;
	cursor: wait !important;
	opacity: 1 !important;
}

/* Keep peach grid button readable: dark spinner on light bg */
.ft-pg-btn.loading,
.ft-qa__trigger.loading {
	background: #ffc37d !important;
	color: transparent !important;
}

.ft-pg-btn.loading::after,
.ft-qa__trigger.loading::after {
	border-color: rgba(43, 43, 43, 0.25) !important;
	border-top-color: #2b2b2b !important;
}

/* Hide WC icon-font spinner if present */
a.add_to_cart_button.loading::before,
button.add_to_cart_button.loading::before,
.woocommerce a.button.loading::before,
.woocommerce button.button.loading::before {
	display: none !important;
	content: none !important;
}

/* Hide WooCommerce "View cart" link — cart drawer handles this */
a.added_to_cart,
a.added_to_cart.wc-forward,
a.add_to_cart_button + a.added_to_cart,
.woocommerce a.added_to_cart,
.ft-pg-btn + a.added_to_cart,
.ft-as-add-to-cart + a.added_to_cart {
	display: none !important;
}
