.c-preferred-source {
	--asc-google-blue: #4285f4;
	--asc-google-red: #ea4335;
	--asc-google-yellow: #fbbc05;
	--asc-google-green: #34a853;
	--asc-preferred-rail: linear-gradient(
		180deg,
		var(--asc-google-blue),
		var(--asc-google-green),
		var(--asc-google-yellow),
		var(--asc-google-red),
		var(--asc-google-blue)
	);
	position: relative;
	display: grid;
	overflow: hidden;
	isolation: isolate;
	gap: var(--asc-space-2);
	width: min(100%, var(--asc-content));
	margin-inline: auto;
	padding: var(--asc-space-3);
	padding-inline-start: calc(var(--asc-space-3) + 0.35rem);
	border: 1px solid var(--asc-color-border);
	border-radius: var(--asc-radius);
	background: var(--asc-color-surface);
	box-shadow: var(--asc-shadow-sm);
}

.c-preferred-source::before,
.c-preferred-source::after {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	pointer-events: none;
	background-image: var(--asc-preferred-rail);
	background-size: 100% 400%;
	content: "";
	animation: asc-preferred-source-rail 16s linear infinite;
}

.c-preferred-source::before {
	z-index: 1;
	width: 3px;
}

.c-preferred-source::after {
	width: 0.85rem;
	opacity: 0.38;
	filter: blur(7px);
}

html[data-theme="dark"] .c-preferred-source::after {
	opacity: 0.62;
}

.c-preferred-source h2,
.c-preferred-source p {
	margin: 0;
}

.c-preferred-source h2,
.c-preferred-source__title {
	font-size: var(--asc-type-heading-4);
	font-weight: 700;
	line-height: 1.25;
}

.c-preferred-source p:not(.c-preferred-source__eyebrow):not(.c-preferred-source__title) {
	max-width: var(--asc-measure);
	color: var(--asc-color-text-muted);
}

.c-preferred-source .c-button {
	justify-self: start;
}

.c-preferred-source--compact {
	width: 100%;
	margin-top: var(--asc-space-2);
	margin-inline: 0;
	padding: var(--asc-space-2);
	padding-inline-start: calc(var(--asc-space-2) + 0.35rem);
	gap: 0.55rem;
}

.c-preferred-source--compact .c-preferred-source__title {
	font-size: 0.95rem;
}

.c-preferred-source--compact .c-button {
	width: 100%;
	min-height: 2.5rem;
	padding-inline: 0.85rem;
	font-size: 0.82rem;
}

@keyframes asc-preferred-source-rail {
	to {
		background-position: 0 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.c-preferred-source::before,
	.c-preferred-source::after {
		animation: none;
		background-position: 0 0;
	}

	.c-preferred-source::after {
		opacity: 0.22;
	}
}
