/* Partners logo marquee — shared by home + page builder. */

@keyframes partners-scroll {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(calc(-1 * var(--partners-shift, 50%)), 0, 0); }
}

.home-partners {
	--partners-gap: 0.75rem;
	width: 100%;
	box-sizing: border-box;
	margin: 2rem 0 0;
	padding: 2rem 0 1.5rem;
	background: var(--twp-color-bg);
	border-block: 1px solid var(--twp-color-border);
	overflow: hidden;
}

.home-partners__head {
	width: 100%;
	max-width: var(--twp-wide);
	margin: 0 auto 1.15rem;
	padding-inline: clamp(1.25rem, 5vw, 5rem);
}

.home-partners .section__head {
	margin-bottom: 1.15rem;
}

.home-partners .section__head h2 {
	margin: 0;
	font-family: var(--twp-font-display);
	font-size: clamp(1.1rem, 1.8vw, 1.35rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--twp-color-fg);
}

.home-partners__title {
	margin: 0;
	font-family: var(--twp-font-display);
	font-size: clamp(1.1rem, 1.8vw, 1.35rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--twp-color-fg);
}

.home-partners__marquee {
	position: relative;
	width: 100%;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.home-partners__track {
	display: flex;
	width: max-content;
	gap: var(--partners-gap);
	animation: partners-scroll var(--partners-duration, 32s) linear infinite;
	will-change: transform;
}

.home-partners__marquee:hover .home-partners__track,
.home-partners__marquee:focus-within .home-partners__track {
	animation-play-state: paused;
}

.home-partners__group {
	display: flex;
	align-items: stretch;
	gap: var(--partners-gap);
	padding: 0;
	margin: 0;
	flex-shrink: 0;
}

.home-partners__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	flex: 0 0 auto;
	min-width: 14rem;
	min-height: 7.5rem;
	padding: 1.35rem 1.75rem;
	background: var(--twp-color-surface);
	border: 1px solid var(--twp-color-border);
	border-radius: var(--twp-radius-lg);
	text-decoration: none;
	color: var(--twp-color-fg);
	transition:
		border-color var(--twp-duration) var(--twp-ease),
		box-shadow var(--twp-duration) var(--twp-ease),
		background var(--twp-duration) var(--twp-ease);
}

.home-partners__item:hover {
	border-color: color-mix(in srgb, var(--twp-color-primary) 35%, var(--twp-color-border));
	box-shadow: var(--twp-shadow-sm);
}

.home-partners__item img {
	display: block;
	max-height: 4.75rem;
	width: auto;
	max-width: 12.5rem;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.8;
	transition:
		filter var(--twp-duration) var(--twp-ease),
		opacity var(--twp-duration) var(--twp-ease),
		transform var(--twp-duration) var(--twp-ease);
}

.home-partners__item:hover img {
	filter: none;
	opacity: 1;
	transform: scale(1.04);
}

.home-partners__mark {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--partner-color, var(--twp-color-primary)) 14%, transparent);
	color: var(--partner-color, var(--twp-color-primary));
	font-family: var(--twp-font-display);
	font-size: 1.35rem;
	font-weight: 800;
	flex-shrink: 0;
}

.home-partners__name {
	display: none;
}

[data-theme="dark"] .home-partners {
	background: var(--twp-color-bg);
}

@media (max-width: 560px) {
	.home-partners__item {
		min-width: 11.5rem;
		min-height: 6.25rem;
		padding: 1rem 1.25rem;
	}

	.home-partners__item img {
		max-height: 3.75rem;
		max-width: 10rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home-partners__track {
		animation: none !important;
		transform: none !important;
	}

	.home-partners__marquee {
		overflow-x: auto;
		mask-image: none;
		-webkit-mask-image: none;
	}

	.home-partners__group[aria-hidden="true"] {
		display: none;
	}
}
