/**
 * Perfamix single-product promotional marquee.
 *
 * Mobile-first, CSS-only, and isolated to the canonical product summary.
 */

.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: stretch;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	min-height: var(--pmxp-mobile-height, 58px);
	margin-top: 12px;
	padding: 6px;
	overflow: hidden;
	border: 1px solid rgba(38, 78, 54, 0.14);
	border-radius: var(--pmxp-radius, 16px);
	background:
		radial-gradient(circle at 94% 8%, rgba(200, 160, 90, 0.15), transparent 34%),
		var(--pmxp-background, #f7f9f5);
	box-shadow: 0 10px 28px rgba(23, 58, 40, 0.07);
	color: var(--pmxp-text, #264e36);
	font-family: inherit;
	font-size: var(--pmxp-mobile-font-size, 12px);
	font-weight: var(--pmxp-font-weight, 600);
	line-height: 1.25;
	text-align: start;
	-webkit-font-smoothing: antialiased;
}

.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee,
.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee * {
	box-sizing: border-box;
}

.single-product .perfamix-product-promotional-marquee::before {
	position: absolute;
	z-index: 3;
	bottom: 0;
	inset-inline: 20%;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--pmxp-accent, #c8a05a), transparent);
	content: "";
	opacity: 0.72;
	pointer-events: none;
}

.single-product .perfamix-product-promotional-marquee::after {
	position: absolute;
	z-index: -1;
	top: -34px;
	inset-inline-end: -31px;
	width: 88px;
	height: 88px;
	border: 1px solid rgba(120, 148, 124, 0.12);
	border-radius: 50%;
	box-shadow:
		0 0 0 12px rgba(120, 148, 124, 0.04),
		0 0 0 25px rgba(120, 148, 124, 0.025);
	content: "";
	pointer-events: none;
}

.single-product .perfamix-product-promotional-marquee__badge {
	position: relative;
	z-index: 2;
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 10px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: max(7px, calc(var(--pmxp-radius, 16px) - 6px));
	background:
		linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(145deg, rgba(255, 255, 255, 0.025), rgba(0, 0, 0, 0.18)),
		var(--pmxp-badge-background, #264e36);
	background-size: 12px 12px, 12px 12px, auto, auto;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09);
	color: var(--pmxp-badge-text, #fff);
}

.single-product .perfamix-product-promotional-marquee__icon {
	display: inline-grid;
	width: 25px;
	height: 25px;
	flex: 0 0 25px;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--pmxp-accent, #c8a05a) 52%, transparent);
	border-radius: 7px;
	background: rgba(255, 255, 255, 0.06);
	color: var(--pmxp-accent, #c8a05a);
}

@supports not (color: color-mix(in srgb, #000 50%, transparent)) {
	.single-product .perfamix-product-promotional-marquee__icon {
		border-color: rgba(200, 160, 90, 0.52);
	}
}

.single-product .perfamix-product-promotional-marquee__icon svg {
	display: block;
	width: 16px;
	height: 16px;
}

.single-product .perfamix-product-promotional-marquee__badge-label {
	display: none;
	max-width: 17ch;
	overflow: hidden;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.13em;
	line-height: 1.15;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
	unicode-bidi: isolate;
}

.single-product .perfamix-product-promotional-marquee__announcement {
	position: relative;
	z-index: 1;
	display: flex;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	align-items: center;
}

.single-product .perfamix-product-promotional-marquee__viewport {
	position: relative;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	overflow-x: hidden;
	overflow-y: hidden;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%);
}

.single-product .perfamix-product-promotional-marquee__viewport::-webkit-scrollbar {
	display: none;
}

.single-product .perfamix-product-promotional-marquee__track {
	display: flex;
	width: max-content;
	transform: translate3d(0, 0, 0);
	direction: ltr;
	animation: perfamix-product-promotional-marquee-scroll var(--pmxp-duration, 26s) linear infinite;
	will-change: transform;
}

.single-product .perfamix-product-promotional-marquee--direction-right .perfamix-product-promotional-marquee__track {
	animation-direction: reverse;
}

.single-product .perfamix-product-promotional-marquee__group {
	display: flex;
	min-height: calc(var(--pmxp-mobile-height, 58px) - 12px);
	flex: 0 0 auto;
	align-items: center;
	gap: var(--pmxp-item-gap, 36px);
	padding-inline: max(18px, calc(var(--pmxp-item-gap, 36px) / 2));
}

.single-product .perfamix-product-promotional-marquee__item {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: var(--pmxp-item-gap, 36px);
	letter-spacing: 0.025em;
	white-space: nowrap;
	text-align: start;
	unicode-bidi: isolate;
}

.single-product .perfamix-product-promotional-marquee__item::after {
	position: relative;
	display: block;
	flex: 0 0 auto;
	color: var(--pmxp-accent, #c8a05a);
	background: currentColor;
	content: "";
	opacity: 0.9;
}

.single-product .perfamix-product-promotional-marquee--separator-diamond .perfamix-product-promotional-marquee__item::after {
	width: 6px;
	height: 6px;
	border-radius: 1px;
	transform: rotate(45deg);
}

.single-product .perfamix-product-promotional-marquee--separator-dot .perfamix-product-promotional-marquee__item::after {
	width: 6px;
	height: 6px;
	border-radius: 50%;
}

.single-product .perfamix-product-promotional-marquee--separator-line .perfamix-product-promotional-marquee__item::after {
	width: 18px;
	height: 1px;
}

.single-product .perfamix-product-promotional-marquee--separator-none .perfamix-product-promotional-marquee__item::after {
	display: none;
}

.single-product .perfamix-product-promotional-marquee__sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	white-space: nowrap !important;
}

/* Goldsmith can render the add-to-cart hook again in fixed and overlay carts. */
.goldsmith-product-bottom-popup-cart .perfamix-product-promotional-marquee,
.goldsmith-quickshop-wrapper .perfamix-product-promotional-marquee,
.goldsmith-quickview-wrapper .perfamix-product-promotional-marquee {
	display: none;
}

@media (min-width: 480px) {
	.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee {
		grid-template-columns: auto minmax(0, 1fr);
		padding: 7px;
		border-radius: var(--pmxp-radius, 16px);
	}

	.single-product .perfamix-product-promotional-marquee__badge {
		justify-content: flex-start;
		padding-inline: 11px 13px;
	}

	.single-product .perfamix-product-promotional-marquee--no-label .perfamix-product-promotional-marquee__badge {
		padding-inline: 11px;
	}

	.single-product .perfamix-product-promotional-marquee__badge-label {
		display: block;
	}

	.single-product .perfamix-product-promotional-marquee__group {
		min-height: calc(var(--pmxp-mobile-height, 58px) - 14px);
	}

	.single-product .perfamix-product-promotional-marquee__viewport {
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 30px), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 30px), transparent 100%);
	}
}

@media (min-width: 768px) {
	.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee {
		min-height: var(--pmxp-desktop-height, 62px);
		font-size: var(--pmxp-desktop-font-size, 13px);
	}

	.single-product .perfamix-product-promotional-marquee__group {
		min-height: calc(var(--pmxp-desktop-height, 62px) - 14px);
	}

	.single-product .perfamix-product-promotional-marquee__badge {
		padding-inline: 13px 15px;
	}

	.single-product .perfamix-product-promotional-marquee__icon {
		width: 28px;
		height: 28px;
		flex-basis: 28px;
	}

	.single-product .perfamix-product-promotional-marquee__badge-label {
		font-size: 9.5px;
	}
}

@media (max-width: 340px) {
	.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee {
		grid-template-columns: 40px minmax(0, 1fr);
		padding: 5px;
	}

	.single-product .perfamix-product-promotional-marquee__icon {
		width: 23px;
		height: 23px;
		flex-basis: 23px;
	}

	.single-product .perfamix-product-promotional-marquee__group {
		min-height: calc(var(--pmxp-mobile-height, 58px) - 10px);
	}
}

@media (hover: hover) and (pointer: fine) {
	.single-product .perfamix-product-promotional-marquee--pause-on-interaction:hover .perfamix-product-promotional-marquee__track {
		animation-play-state: paused;
	}
}

@keyframes perfamix-product-promotional-marquee-scroll {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-50%, 0, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-product .perfamix-product-promotional-marquee__viewport {
		overflow-x: auto !important;
		scrollbar-width: thin;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.single-product .perfamix-product-promotional-marquee__track {
		animation: none !important;
		transform: none !important;
		will-change: auto !important;
	}

	.single-product .perfamix-product-promotional-marquee__group--clone,
	.single-product .perfamix-product-promotional-marquee__item--repeat {
		display: none !important;
	}
}

@media (forced-colors: active) {
	.single-product .goldsmith-product-summary .perfamix-product-promotional-marquee,
	.single-product .perfamix-product-promotional-marquee__badge,
	.single-product .perfamix-product-promotional-marquee__icon {
		border: 1px solid CanvasText;
	}
}

@media print {
	.single-product .perfamix-product-promotional-marquee__track {
		animation: none !important;
		transform: none !important;
	}

	.single-product .perfamix-product-promotional-marquee__group--clone,
	.single-product .perfamix-product-promotional-marquee__item--repeat {
		display: none !important;
	}
}
