:root {
	--cim-promo-bg: #111318;
	--cim-promo-text: #fff;
	--cim-promo-font-size: 14px;
	--cim-promo-font-weight: 650;
	--cim-promo-height: 42px;
	--cim-promo-padding-x: 16px;
	--cim-promo-gap: 20px;
	--cim-promo-marquee-duration: 35s;
	--cim-promo-marquee-shift: 0px;
	--cim-promo-bar-height: 42px;
	--cim-adminbar-offset: 0px;
	--cim-adminbar-compensation: 0px;
}

.cim-promo-bar {
	position: fixed;
	top: var(--cim-adminbar-offset);
	right: 0;
	left: 0;
	z-index: 99990;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: var(--cim-promo-height);
	background: var(--cim-promo-bg);
	color: var(--cim-promo-text);
	font-size: var(--cim-promo-font-size);
	font-weight: var(--cim-promo-font-weight);
}

body.cim-has-promo {
	padding-top: calc(var(--cim-promo-bar-height) + var(--cim-adminbar-compensation));
}

body.cim-has-promo .fdl-header {
	top: calc(var(--cim-adminbar-offset) + var(--cim-promo-bar-height));
	z-index: 99980;
}

body.cim-has-promo.fdl-header-modern .fdl-header {
	top: calc(var(--cim-adminbar-offset) + var(--cim-promo-bar-height) + 10px);
}

.cim-promo-marquee {
	width: 100%;
	padding: 0 var(--cim-promo-padding-x);
	overflow: hidden;
}

.cim-promo-marquee__track {
	display: flex;
	align-items: center;
	gap: var(--cim-promo-gap);
	width: max-content;
	will-change: transform;
	animation: cimPromoMarquee var(--cim-promo-marquee-duration) linear infinite;
}

.cim-promo-marquee__group {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	gap: var(--cim-promo-gap);
	padding: .35em 0;
	white-space: nowrap;
}

.cim-promo-item,
.cim-promo-sep {
	display: inline-flex;
	align-items: center;
	margin: 0;
}

.cim-promo-sep {
	opacity: .85;
}

.cim-promo-bar a {
	margin-left: 10px;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@keyframes cimPromoMarquee {
	from { transform: translateX(0); }
	to { transform: translateX(calc(-1 * var(--cim-promo-marquee-shift))); }
}

@media (max-width: 640px) {
	:root {
		--cim-promo-gap: 14px;
		--cim-promo-padding-x: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cim-promo-marquee__track {
		animation: none;
	}
}
