/**
 * Power to Move — scrolling logo strip (Figma "Logo" / "Partners", under
 * "Testemunhos"), printed by [ptm_parceiros].
 *
 * Logos are shown in greyscale at a common height, multiplied by the
 * "Tamanho do logótipo" field (--ptm-partner-scale: 0.78 / 1 / 1.14), which
 * reproduces the optical balance of the design. assets/js/partners.js starts
 * the marquee and reads --ptm-partners-speed (px per second).
 *
 * Breakpoints match Blocksy: tablet ≤ 999.98px, mobile ≤ 689.98px.
 */

.ptm-partners {
	--ptm-partners-gap: 168px;
	--ptm-partners-logo-height: 44px;
	--ptm-partners-logo-max-width: 168px;
	--ptm-partners-speed: 40;
	overflow: hidden;
	overflow: clip;
}

/* Right after "Testemunhos", which has its own bottom padding. */
.ptm-testimonials + .ptm-partners {
	padding-top: 0;
}

.ptm-partners__track {
	display: flex;
	width: max-content;
}

.ptm-partners__track.is-running {
	animation: ptm-partners-marquee var(--ptm-partners-duration, 45s) linear infinite;
}

/* Hold still while a logo is pointed at or focused, so it can be clicked. */
.ptm-partners:hover .ptm-partners__track,
.ptm-partners:focus-within .ptm-partners__track {
	animation-play-state: paused;
}

@keyframes ptm-partners-marquee {
	to {
		transform: translate3d(calc(-1 * var(--ptm-partners-distance, 0px)), 0, 0);
	}
}

/* The trailing padding keeps the gap between one copy and the next. */
.ptm-partners .ptm-partners__list {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: var(--ptm-partners-gap);
	margin: 0;
	padding: 0 var(--ptm-partners-gap) 0 0;
	list-style: none;
}

.ptm-partners .ptm-partners__item {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	margin: 0;
}

.ptm-partners__link {
	display: block;
	border-radius: 4px;
}

.ptm-partners__link:focus-visible {
	outline: 2px solid var(--theme-palette-color-2);
	outline-offset: 6px;
}

.ptm-partners__logo {
	display: block;
	width: auto;
	height: calc(var(--ptm-partners-logo-height) * var(--ptm-partner-scale, 1));
	max-width: calc(var(--ptm-partners-logo-max-width) * var(--ptm-partner-scale, 1));
	object-fit: contain;
	filter: grayscale(1);
	transition: filter 0.2s ease, transform 0.2s ease;
}

/* Linked logos show their own colours. */
.ptm-partners__link:hover .ptm-partners__logo,
.ptm-partners__link:focus-visible .ptm-partners__logo {
	filter: none;
	transform: scale(1.06);
}

/* Reduced motion: no marquee (the script doesn't start), all logos in view. */
@media (prefers-reduced-motion: reduce) {
	.ptm-partners__track {
		width: auto;
	}

	.ptm-partners .ptm-partners__list {
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
		gap: 40px 64px;
		padding: 0 5vw;
	}
}

/* ------------------------------------------------------------------ */
/* Tablet                                                               */
/* ------------------------------------------------------------------ */

@media (max-width: 999.98px) {
	.ptm-partners {
		--ptm-partners-gap: 96px;
		--ptm-partners-logo-height: 38px;
		--ptm-partners-logo-max-width: 150px;
		--ptm-partners-speed: 36;
		padding-block: 64px;
	}
}

/* ------------------------------------------------------------------ */
/* Mobile                                                               */
/* ------------------------------------------------------------------ */

@media (max-width: 689.98px) {
	.ptm-partners {
		--ptm-partners-gap: 40px;
		--ptm-partners-logo-height: 30px;
		--ptm-partners-logo-max-width: 120px;
		--ptm-partners-speed: 30;
		padding-block: 40px;
	}
}
