/* Homepage hero badge ("Call today for best prices"): the artwork, size and position are unchanged. Only the badge itself moves, with transforms, so nothing reflows. */
.home-badge {
	position: relative;
	display: block;
	width: fit-content;
	animation: home-badge-float 5s ease-in-out infinite;
	will-change: transform;
}
/* A soft diagonal shine every few seconds, clipped to the badge's own shape by its artwork */
.home-badge::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: linear-gradient(115deg, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, 0.62) 50%, rgba(255, 255, 255, 0) 62%) no-repeat;
	background-size: 260% 100%;
	background-position: 130% 0;
	-webkit-mask-image: url("../images/Fresh-Season-CTA.png");
	mask-image: url("../images/Fresh-Season-CTA.png");
	-webkit-mask-size: 100% auto;
	mask-size: 100% auto;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	pointer-events: none;
	animation: home-badge-shine 9s ease-in-out infinite;
}
@keyframes home-badge-float {
	0%,
	100% {
		transform: translateY(0) rotate(-1deg);
	}
	50% {
		transform: translateY(-5px) rotate(1deg);
	}
}
@keyframes home-badge-shine {
	/* Sweeps as soon as the page loads, then rests for the rest of the cycle */
	0% {
		background-position: 130% 0;
	}
	22%,
	100% {
		background-position: -30% 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.home-badge,
	.home-badge::after {
		animation: none;
	}
	.home-badge::after {
		display: none;
	}
}
