.mma-btn-primary-shine {
	--mma-btn-font-size: 1rem;
	--mma-btn-letter-spacing: 0.1em;
	--mma-btn-font-weight: 700;
	--mma-btn-text-color: #000;
	--mma-btn-padding-y: 0.75em;
	--mma-btn-padding-x: 1.5em;
	--mma-btn-border-radius: 0.5em;
	--mma-btn-border-width: 0.05em;
	--mma-btn-border-color: gold;
	--mma-btn-gradient-start: #ffe5a2;
	--mma-btn-gradient-mid: #bf841a;
	--mma-btn-gradient-end: #ffcd74;
	--mma-btn-gradient-angle: 295deg;
	--mma-btn-hover-glow: gold;
	--mma-btn-shine-blur: 20px;
	--mma-btn-animation-duration: 3s;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	outline: 0;
	border: 0;
	font-size: var(--mma-btn-font-size);
	letter-spacing: var(--mma-btn-letter-spacing);
	font-weight: var(--mma-btn-font-weight);
	background: transparent;
	color: var(--mma-btn-text-color);
	padding: var(--mma-btn-padding-y) var(--mma-btn-padding-x);
	border-radius: var(--mma-btn-border-radius);
	position: relative;
	overflow: hidden;
	transform: translateZ(0);
	cursor: pointer;
	text-decoration: none;
	transition: box-shadow 0.3s ease;
	line-height: 1.2;
}

.mma-btn-primary-shine:hover,
.mma-btn-primary-shine:focus-visible {
	box-shadow: 0 0 13px var(--mma-btn-hover-glow);
	color: var(--mma-btn-text-color);
}

.mma-btn-primary-shine:hover .mma-btn-primary-shine__label,
.mma-btn-primary-shine:focus-visible .mma-btn-primary-shine__label {
	text-shadow: 0 0 20px var(--mma-btn-hover-glow);
}

.mma-btn-primary-shine__bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
	transform: translateZ(0);
	border-radius: inherit;
	pointer-events: none;
}

.mma-btn-primary-shine__bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		var(--mma-btn-gradient-angle),
		var(--mma-btn-gradient-start) 5%,
		var(--mma-btn-gradient-mid) 50%,
		var(--mma-btn-gradient-end) 95%
	);
	border-radius: inherit;
}

.mma-btn-primary-shine__bg::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 200%;
	height: 100%;
	background-image: linear-gradient(90deg, transparent, white);
	mix-blend-mode: overlay;
	filter: blur(var(--mma-btn-shine-blur));
	animation: mma-btn-primary-shine-idle var(--mma-btn-animation-duration) ease infinite;
}

.mma-btn-primary-shine__label {
	position: relative;
	z-index: 1;
	transition: text-shadow 0.3s ease;
}

@keyframes mma-btn-primary-shine-idle {
	0% {
		transform: translateX(-100%);
	}

	50%,
	100% {
		transform: translateX(100%);
	}
}
