/* Live activity banner, leaderboard and home page sign-up card. */

/* ---------- Marquee banner ---------- */
.cvs-act {
	position: relative;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 38px;
	padding: 0 8px 0 14px;
	background: var(--cvs-burgundy-deep, #2E0516);
	color: #f3e6cf;
	font: 400 13px/1.2 var(--cvs-sans, Lato, Arial, sans-serif);
	overflow: hidden;
}
.cvs-act[hidden] { display: none; }
.cvs-act__tag {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(215, 179, 116, .16);
	color: var(--cvs-gold, #D7B374);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.cvs-act__pulse {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #7be08f;
	animation: cvs-act-pulse 1.8s ease-out infinite;
}
.cvs-act__viewport {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
}
.cvs-act__track {
	display: flex;
	width: max-content;
	animation: cvs-act-scroll var(--cvs-act-dur, 60s) linear infinite;
}
.cvs-act:hover .cvs-act__track,
.cvs-act:focus-within .cvs-act__track { animation-play-state: paused; }
.cvs-act__set { display: flex; flex: none; align-items: center; }
.cvs-act__item {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 10px 0;
	white-space: nowrap;
}
.cvs-act__item::after {
	content: "";
	width: 5px;
	height: 5px;
	margin: 0 22px;
	border-radius: 50%;
	background: var(--cvs-gold, #D7B374);
	opacity: .7;
}
.cvs-act__item strong { color: #fff; font-weight: 700; }
.cvs-act__item em {
	font-style: normal;
	font-weight: 700;
	color: var(--cvs-gold, #D7B374);
}
.cvs-act__item--promo a { color: var(--cvs-gold, #D7B374); text-decoration: underline; text-underline-offset: 3px; }
.cvs-act__close {
	flex: none;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #f3e6cf;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	opacity: .65;
}
.cvs-act__close:hover { opacity: 1; background: rgba(255, 255, 255, .1); }

@keyframes cvs-act-scroll { to { transform: translateX(-50%); } }
@keyframes cvs-act-pulse {
	0% { box-shadow: 0 0 0 0 rgba(123, 224, 143, .6); }
	100% { box-shadow: 0 0 0 9px rgba(123, 224, 143, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.cvs-act__track { animation: none; }
	.cvs-act__viewport { overflow-x: auto; scrollbar-width: none; }
	.cvs-act__set[aria-hidden="true"] { display: none; }
	.cvs-act__pulse { animation: none; }
}
@media (max-width: 520px) {
	.cvs-act { font-size: 12px; gap: 8px; padding-left: 10px; }
	.cvs-act__tag { padding: 3px 8px; }
}

/* ---------- Leaderboard ---------- */
.cvs-lb {
	max-width: 640px;
	width: 100%;
	margin: 36px auto 0;
	padding: 26px 28px 22px;
	background: var(--cvs-cream, #FBF7EE);
	border-radius: 6px;
	box-shadow: inset 0 0 0 1px rgba(75, 9, 36, .16), 0 24px 44px -30px rgba(46, 5, 22, .55);
	color: var(--cvs-ink, #241D1D);
	font-family: var(--cvs-sans, Lato, Arial, sans-serif);
	box-sizing: border-box;
}
.cvs-lb *, .cvs-lb *::before, .cvs-lb *::after { box-sizing: border-box; }
.cvs-lb__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.cvs-lb__eyebrow { margin: 0 0 4px; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cvs-gold-ink, #9A7230); }
.cvs-lb__title { margin: 0; font: 600 30px/1.1 var(--cvs-serif, Georgia, serif); color: var(--cvs-burgundy, #4B0924); }
.cvs-lb__tabs { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(75, 9, 36, .08); }
.cvs-lb__tabs button {
	border: 0;
	padding: 7px 14px;
	border-radius: 999px;
	background: transparent;
	color: var(--cvs-burgundy, #4B0924);
	font: 700 12px/1 var(--cvs-sans, Lato, Arial, sans-serif);
	cursor: pointer;
}
.cvs-lb__tabs button.is-on { background: var(--cvs-burgundy, #4B0924); color: #fff; }
.cvs-lb__list { list-style: none; margin: 0; padding: 0; }
.cvs-lb__row {
	display: grid;
	grid-template-columns: 36px 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 11px 4px;
	border-top: 1px solid rgba(75, 9, 36, .1);
}
.cvs-lb__row:first-child { border-top: 0; }
.cvs-lb__rank {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(75, 9, 36, .08);
	color: var(--cvs-burgundy, #4B0924);
	font-weight: 700;
	font-size: 13px;
}
.cvs-lb__row--gold .cvs-lb__rank { background: #D7B374; color: #2E0516; }
.cvs-lb__row--silver .cvs-lb__rank { background: #cfd3d8; color: #2c3238; }
.cvs-lb__row--bronze .cvs-lb__rank { background: #d9a273; color: #3a2010; }
.cvs-lb__name { font: 600 22px/1.1 var(--cvs-serif, Georgia, serif); }
.cvs-lb__pts { font-weight: 700; color: var(--cvs-burgundy, #4B0924); }
.cvs-lb__pts small { font-weight: 400; color: var(--cvs-muted, #6B5B55); }
.cvs-lb__empty { margin: 8px 0 4px; padding: 18px; border-radius: 4px; background: rgba(75, 9, 36, .05); color: var(--cvs-muted, #6B5B55); text-align: center; }
.cvs-lb__foot { margin: 14px 0 0; font-size: 12px; color: var(--cvs-muted, #6B5B55); }
.cvs-lb__foot a { color: var(--cvs-burgundy, #4B0924); font-weight: 700; }

/* ---------- Home page sign-up card ---------- */
.cvs-join {
	position: fixed;
	left: 18px;
	bottom: 18px;
	z-index: 99980;
	width: min(360px, calc(100vw - 36px));
	padding: 20px 22px 20px;
	background: var(--cvs-cream, #FBF7EE);
	border-radius: 6px;
	box-shadow: inset 0 0 0 1px rgba(75, 9, 36, .16), inset 0 0 0 6px var(--cvs-cream, #FBF7EE), inset 0 0 0 7px rgba(215, 179, 116, .6), 0 24px 50px -18px rgba(46, 5, 22, .6);
	color: var(--cvs-ink, #241D1D);
	font-family: var(--cvs-sans, Lato, Arial, sans-serif);
	box-sizing: border-box;
	animation: cvs-join-in .45s ease-out both;
}
.cvs-join[hidden] { display: none; }
.cvs-join__close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--cvs-muted, #6B5B55);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.cvs-join__eyebrow { margin: 6px 0 4px; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cvs-gold-ink, #9A7230); }
.cvs-join__title { margin: 0 0 6px; font: 600 25px/1.1 var(--cvs-serif, Georgia, serif); color: var(--cvs-burgundy, #4B0924); }
.cvs-join__text { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: var(--cvs-muted, #6B5B55); }
.cvs-join__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.cvs-join__login { font-size: 13px; color: var(--cvs-burgundy, #4B0924); }
@keyframes cvs-join-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 520px) {
	.cvs-join { left: 10px; right: 10px; bottom: 10px; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.cvs-join { animation: none; }
}
