/**
 * Bottone primario KarmaLink — gradiente, hover invertito, glow pulsante (allineato al wizard registrazione).
 * Classe: .karmalink-btn--primary (da combinare con le classi contestuali del componente).
 */

/* @keyframes karmalink-wizard-step-glow-pulse → fonte unica in karmalink-glow.css */

.karmalink-btn--primary,
.karmalink-operator-wizard__btn--primary {
	position: relative;
	z-index: 0;
	isolation: isolate;
	overflow: visible;
	background: transparent !important;
	color: #fff;
	border: none;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
}

.karmalink-btn--primary::before,
.karmalink-btn--primary::after,
.karmalink-operator-wizard__btn--primary::before,
.karmalink-operator-wizard__btn--primary::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	z-index: -1;
	transition: opacity 0.4s ease;
}

.karmalink-btn--primary::before,
.karmalink-operator-wizard__btn--primary::before {
	background: linear-gradient(to bottom right, #8c52ff 0%, #a277ff 100%);
	opacity: 1;
}

.karmalink-btn--primary::after,
.karmalink-operator-wizard__btn--primary::after {
	background: linear-gradient(to bottom right, #a277ff 0%, #8c52ff 100%);
	opacity: 0;
}

.karmalink-btn--primary:hover,
.karmalink-btn--primary:focus-visible,
.karmalink-operator-wizard__btn--primary:hover,
.karmalink-operator-wizard__btn--primary:focus-visible {
	transform: translateY(-1px);
	outline: none;
}

.karmalink-btn--primary:hover::before,
.karmalink-btn--primary:focus-visible::before,
.karmalink-operator-wizard__btn--primary:hover::before,
.karmalink-operator-wizard__btn--primary:focus-visible::before {
	opacity: 0;
}

.karmalink-btn--primary:hover::after,
.karmalink-btn--primary:focus-visible::after,
.karmalink-operator-wizard__btn--primary:hover::after,
.karmalink-operator-wizard__btn--primary:focus-visible::after {
	opacity: 1;
}

@media (prefers-reduced-motion: no-preference) {
	.karmalink-btn--primary:hover,
	.karmalink-btn--primary:focus-visible,
	.karmalink-operator-wizard__btn--primary:hover,
	.karmalink-operator-wizard__btn--primary:focus-visible {
		animation: karmalink-wizard-step-glow-pulse 2.4s ease-in-out infinite;
	}
}

@media (prefers-reduced-motion: reduce) {
	.karmalink-btn--primary::before,
	.karmalink-btn--primary::after,
	.karmalink-operator-wizard__btn--primary::before,
	.karmalink-operator-wizard__btn--primary::after {
		transition: opacity 0.2s ease;
	}

	.karmalink-btn--primary:hover,
	.karmalink-btn--primary:focus-visible,
	.karmalink-operator-wizard__btn--primary:hover,
	.karmalink-operator-wizard__btn--primary:focus-visible {
		animation: none;
		box-shadow:
			0 0 0 4px rgba(140, 82, 255, 0.48),
			0 0 20px rgba(140, 82, 255, 0.72),
			0 0 40px rgba(140, 82, 255, 0.5),
			0 0 64px rgba(140, 82, 255, 0.32),
			0 0 88px rgba(140, 82, 255, 0.16);
	}
}

.karmalink-btn--primary:disabled,
.karmalink-btn--primary[aria-disabled="true"],
.karmalink-operator-wizard__btn--primary:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none !important;
	animation: none !important;
	filter: none;
}

.karmalink-dashboard__btn.karmalink-btn--primary {
	border: none;
}

/*
 * Santuario operatore: fogli tema possono dare ai button un color scuro che eredita sul gradiente viola.
 */
.karmalink-sanctuary .karmalink-btn--primary {
	color: #fff;
}

.karmalink-sanctuary .karmalink-btn--primary:hover,
.karmalink-sanctuary .karmalink-btn--primary:focus-visible {
	color: #fff;
}

/* Vetrina (e pagine senza .karmalink-sanctuary): etichetta sempre bianca sul viola. */
.karmalink-showcase .karmalink-btn--primary,
.karmalink-showcase .karmalink-btn--primary:hover,
.karmalink-showcase .karmalink-btn--primary:focus-visible {
	color: #fff !important;
}

/*
 * CTA sidebar «Nuova sessione» (disabilitata): stesso glow dei primari + etichetta sempre bianca.
 */
.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary {
	opacity: 1;
	cursor: not-allowed;
	color: #fff !important;
}

.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary .karmalink-sanctuary__cta-label,
.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary .karmalink-sanctuary__material-icon {
	color: #fff !important;
}

.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary:disabled,
.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary[aria-disabled="true"] {
	opacity: 1;
	cursor: not-allowed;
	transform: none !important;
	color: #fff !important;
	animation: none !important;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
}

@media (prefers-reduced-motion: no-preference) {
	.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary:disabled,
	.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary[aria-disabled="true"] {
		animation: karmalink-wizard-step-glow-pulse 2.4s ease-in-out infinite !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary:disabled,
	.karmalink-sanctuary .karmalink-sanctuary__cta.karmalink-btn--primary[aria-disabled="true"] {
		animation: none !important;
		box-shadow:
			0 0 0 4px rgba(140, 82, 255, 0.48),
			0 0 20px rgba(140, 82, 255, 0.72),
			0 0 40px rgba(140, 82, 255, 0.5),
			0 0 64px rgba(140, 82, 255, 0.32),
			0 0 88px rgba(140, 82, 255, 0.16);
	}
}
