/* =========================================================
   COOL PRINT ADD TO CART BUTTON
   ========================================================= */

body.cp-atc-plugin-active form.cart,
body.cp-atc-plugin-active form.variations_form {
	--cp-atc-bg: #000000;
	--cp-atc-bg-hover: #171717;
	--cp-atc-text: #ffffff;
	--cp-atc-radius: 14px;
}

/* Reihenfolge: Menge links, Button rechts */
body.cp-atc-plugin-active form.cart .woocommerce-variation-add-to-cart,
body.cp-atc-plugin-active form.cart .variations_button,
body.cp-atc-plugin-active form.variations_form .woocommerce-variation-add-to-cart {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
}

/* Button-Grunddesign */
body.cp-atc-plugin-active form.cart button.single_add_to_cart_button.cp-atc-ready,
body.cp-atc-plugin-active form.variations_form button.single_add_to_cart_button.cp-atc-ready,
body.cp-atc-plugin-active form.cart .single_add_to_cart_button.cp-atc-ready {
	position: relative !important;

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

	flex: 0 0 auto !important;
	flex-grow: 0 !important;
	flex-shrink: 0 !important;

	width: auto !important;
	min-width: 170px !important;
	max-width: max-content !important;
	min-height: 46px !important;

	gap: 10px !important;

	margin: 0 !important;
	padding: 13px 20px !important;

	overflow: hidden !important;

	border: 0 !important;
	border-radius: var(--cp-atc-radius) !important;
	outline: 0 !important;

	background: var(--cp-atc-bg) !important;
	background-color: var(--cp-atc-bg) !important;
	background-image: none !important;

	color: var(--cp-atc-text) !important;

	font-family: "Inter", Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	font-style: normal !important;
	line-height: 1.1 !important;
	letter-spacing: 0.01em !important;

	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;

	box-shadow:
		0 10px 24px rgba(0, 0, 0, 0.24) !important;

	cursor: pointer !important;

	transform: translateY(0) !important;

	transition:
		transform 0.22s ease,
		background-color 0.22s ease,
		box-shadow 0.22s ease,
		opacity 0.22s ease !important;
}

/* Theme-Pseudo-Icons und Spinner konsequent entfernen */
body.cp-atc-plugin-active form.cart .single_add_to_cart_button.cp-atc-ready::before,
body.cp-atc-plugin-active form.cart .single_add_to_cart_button.cp-atc-ready::after,
body.cp-atc-plugin-active form.variations_form .single_add_to_cart_button.cp-atc-ready::before,
body.cp-atc-plugin-active form.variations_form .single_add_to_cart_button.cp-atc-ready::after {
	content: none !important;
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
}

/* Alte oder fremde Icon-Elemente ausblenden */
body.cp-atc-plugin-active .single_add_to_cart_button .mw-wmatc-icon,
body.cp-atc-plugin-active .single_add_to_cart_button .wd-tools-icon,
body.cp-atc-plugin-active .single_add_to_cart_button > i:not(.cp-atc-preserve) {
	display: none !important;
}

/* Text */
body.cp-atc-plugin-active .single_add_to_cart_button .cp-atc-label {
	position: relative !important;
	z-index: 2 !important;

	display: inline-block !important;
	order: 1 !important;

	margin: 0 !important;
	padding: 0 !important;

	color: #ffffff !important;

	font: inherit !important;
	line-height: inherit !important;
	white-space: nowrap !important;
}

/* Echtes Warenkorb-Icon innerhalb des Buttons */
body.cp-atc-plugin-active .single_add_to_cart_button .cp-atc-icon {
	position: relative !important;
	z-index: 2 !important;

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

	order: 2 !important;
	flex: 0 0 17px !important;

	width: 17px !important;
	height: 17px !important;

	margin: 0 !important;
	padding: 0 !important;

	color: #ffffff !important;

	transform:
		translateY(-1px)
		rotate(0deg)
		scale(1) !important;

	transition:
		transform 0.22s ease,
		opacity 0.22s ease !important;
}

body.cp-atc-plugin-active .single_add_to_cart_button .cp-atc-icon svg {
	display: block !important;

	width: 17px !important;
	height: 17px !important;

	margin: 0 !important;
	padding: 0 !important;

	overflow: visible !important;

	fill: currentColor !important;
	color: #ffffff !important;
}

body.cp-atc-plugin-active .single_add_to_cart_button .cp-atc-icon svg path {
	fill: currentColor !important;
}

/* Eigener Loader */
body.cp-atc-plugin-active .single_add_to_cart_button .cp-atc-loader {
	position: absolute !important;
	z-index: 3 !important;

	display: none !important;

	width: 18px !important;
	height: 18px !important;

	border: 2px solid rgba(255, 255, 255, 0.38) !important;
	border-top-color: #ffffff !important;
	border-radius: 50% !important;

	animation: cpAtcSpin 0.7s linear infinite !important;
}

@keyframes cpAtcSpin {
	to {
		transform: rotate(360deg);
	}
}

/* Hover */
body.cp-atc-plugin-active form.cart
.single_add_to_cart_button.cp-atc-ready:not(:disabled):not(.disabled):hover,
body.cp-atc-plugin-active form.variations_form
.single_add_to_cart_button.cp-atc-ready:not(:disabled):not(.disabled):hover {
	background: var(--cp-atc-bg-hover) !important;
	background-color: var(--cp-atc-bg-hover) !important;

	color: #ffffff !important;

	transform: translateY(-2px) !important;

	box-shadow:
		0 14px 30px rgba(0, 0, 0, 0.32) !important;
}

body.cp-atc-plugin-active
.single_add_to_cart_button.cp-atc-ready:not(:disabled):not(.disabled):hover
.cp-atc-icon {
	transform:
		translateY(-1px)
		rotate(-5deg)
		scale(1.08) !important;
}

/* Klick */
body.cp-atc-plugin-active form.cart
.single_add_to_cart_button.cp-atc-ready:not(:disabled):not(.disabled):active,
body.cp-atc-plugin-active form.variations_form
.single_add_to_cart_button.cp-atc-ready:not(:disabled):not(.disabled):active {
	transform: translateY(0) !important;

	box-shadow:
		0 8px 18px rgba(0, 0, 0, 0.24) !important;
}

/* Noch keine Variante ausgewählt */
body.cp-atc-plugin-active form.cart
.single_add_to_cart_button.cp-atc-ready:disabled,
body.cp-atc-plugin-active form.cart
.single_add_to_cart_button.cp-atc-ready.disabled,
body.cp-atc-plugin-active form.cart
.single_add_to_cart_button.cp-atc-ready.wc-variation-selection-needed,
body.cp-atc-plugin-active form.variations_form
.single_add_to_cart_button.cp-atc-ready:disabled,
body.cp-atc-plugin-active form.variations_form
.single_add_to_cart_button.cp-atc-ready.disabled,
body.cp-atc-plugin-active form.variations_form
.single_add_to_cart_button.cp-atc-ready.wc-variation-selection-needed {
	background: var(--cp-atc-bg) !important;
	background-color: var(--cp-atc-bg) !important;

	color: #ffffff !important;

	opacity: 0.48 !important;

	cursor: not-allowed !important;
	pointer-events: auto !important;

	transform: none !important;

	box-shadow:
		0 8px 18px rgba(0, 0, 0, 0.18) !important;
}

/* Ladezustand */
body.cp-atc-plugin-active
.single_add_to_cart_button.cp-atc-ready.loading
.cp-atc-label,
body.cp-atc-plugin-active
.single_add_to_cart_button.cp-atc-ready.loading
.cp-atc-icon {
	opacity: 0 !important;
}

body.cp-atc-plugin-active
.single_add_to_cart_button.cp-atc-ready.loading
.cp-atc-loader {
	display: block !important;
}

/* Fokus */
body.cp-atc-plugin-active
.single_add_to_cart_button.cp-atc-ready:focus-visible {
	outline: 2px solid rgba(0, 0, 0, 0.42) !important;
	outline-offset: 3px !important;
}

/* Menge passend ausrichten */
body.cp-atc-plugin-active form.cart .quantity {
	flex: 0 0 auto !important;
	margin: 0 !important;
}

/* Mobil */
@media (max-width: 767px) {
	body.cp-atc-plugin-active form.cart
	button.single_add_to_cart_button.cp-atc-ready,
	body.cp-atc-plugin-active form.variations_form
	button.single_add_to_cart_button.cp-atc-ready {
		min-width: 160px !important;
		min-height: 44px !important;

		padding: 12px 17px !important;

		border-radius: 13px !important;

		font-size: 13px !important;
	}

	body.cp-atc-plugin-active
	.single_add_to_cart_button .cp-atc-icon,
	body.cp-atc-plugin-active
	.single_add_to_cart_button .cp-atc-icon svg {
		width: 16px !important;
		height: 16px !important;
		flex-basis: 16px !important;
	}
}

/* Reduzierte Bewegungen */
@media (prefers-reduced-motion: reduce) {
	body.cp-atc-plugin-active
	.single_add_to_cart_button.cp-atc-ready,
	body.cp-atc-plugin-active
	.single_add_to_cart_button.cp-atc-ready .cp-atc-icon {
		transition: none !important;
	}
}
