/**
 * Zenvy Free Shipping Progress Bar - frontend styles.
 *
 * Colors and radius come from CSS custom properties that are injected with
 * wp_add_inline_style(): --zenvy-fspb-bg, --zenvy-fspb-fill, --zenvy-fspb-text, --zenvy-fspb-radius.
 */

.zenvy-fspb-wrapper,
.zenvy-fspb-wrapper * {
	box-sizing: border-box;
}

.zenvy-fspb-wrapper {
	display: block;
	width: 100%;
	margin: 0 0 16px;
	padding: 0;
	color: var(--zenvy-fspb-text, #1d2327);
	font-size: 14px;
	line-height: 1.45;
}

.zenvy-fspb-wrapper.zenvy-fspb-hidden {
	display: none !important;
}

.widget_shopping_cart_content .zenvy-fspb-wrapper {
	margin: 12px 0;
}

.zenvy-fspb-message {
	margin: 0 0 8px;
	font-weight: 600;
	text-align: center;
	color: var(--zenvy-fspb-text, #1d2327);
}

.zenvy-fspb-message .woocommerce-Price-amount {
	font-weight: 700;
}

.zenvy-fspb-track {
	position: relative;
	width: 100%;
	height: 10px;
	overflow: hidden;
	background-color: var(--zenvy-fspb-bg, #e9ecef);
	border-radius: var(--zenvy-fspb-radius, 20px);
}

.zenvy-fspb-fill {
	display: block;
	width: 0;
	max-width: 100%;
	height: 100%;
	background-color: var(--zenvy-fspb-fill, #2ea44f);
	border-radius: var(--zenvy-fspb-radius, 20px);
	transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	animation: zenvy-fspb-grow 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Preset: minimal (modern rounded pill). */
.zenvy-fspb-preset-minimal .zenvy-fspb-track {
	height: 10px;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);
}

/* Preset: striped (animated diagonal stripes). */
.zenvy-fspb-preset-striped .zenvy-fspb-track {
	height: 18px;
}

.zenvy-fspb-preset-striped .zenvy-fspb-fill {
	background-image: linear-gradient(
		45deg,
		rgba(255, 255, 255, 0.28) 25%,
		transparent 25%,
		transparent 50%,
		rgba(255, 255, 255, 0.28) 50%,
		rgba(255, 255, 255, 0.28) 75%,
		transparent 75%,
		transparent
	);
	background-size: 24px 24px;
	animation:
		zenvy-fspb-grow 0.6s cubic-bezier(0.4, 0, 0.2, 1),
		zenvy-fspb-stripes 1s linear infinite;
}

@keyframes zenvy-fspb-grow {
	from {
		width: 0;
	}
}

@keyframes zenvy-fspb-stripes {
	from {
		background-position: 24px 0;
	}

	to {
		background-position: 0 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.zenvy-fspb-fill,
	.zenvy-fspb-preset-striped .zenvy-fspb-fill {
		transition: none;
		animation: none;
	}
}

/* Top-of-page bar (plug and play placement). */
.zenvy-fspb-top-bar {
	position: relative;
	z-index: 99;
	width: 100%;
}

.zenvy-fspb-top-bar .zenvy-fspb-wrapper {
	max-width: none;
	margin: 0;
	padding: 10px 16px;
	background: #fff;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.zenvy-fspb-top-bar .zenvy-fspb-message {
	margin-bottom: 6px;
}

.zenvy-fspb-top-bar .zenvy-fspb-track {
	max-width: 640px;
	margin: 0 auto;
}
