/* Partner tecnologici — componente condiviso Home / Chi siamo. */
.ts-partners {
	padding: var(--ts-section-pad, clamp(4.5rem, 7vw, 7.5rem)) 0;
	background-color: var(--ts-white, #fff);
}

.ts-partners .ts-section-tag {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: 1.25rem;
	color: var(--ts-signal, #f15a24);
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.ts-partners .ts-signal-line {
	display: inline-block;
	width: 28px;
	height: 2px;
	border-radius: 2px;
	background-color: var(--ts-signal, #f15a24);
}

.ts-partners__intro {
	max-width: 760px;
	margin: 0 auto 4rem;
	text-align: center;
}

.ts-partners__headline {
	margin: 0 0 1rem;
	color: var(--ts-graphite-950, #07101f);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.02em;
}

.ts-partners__sub {
	margin: 0;
	color: var(--ts-text-muted, #5e6f83);
	font-size: 1.0625rem;
	line-height: 1.6;
}

.ts-partners__marquee {
	position: relative;
	width: 100%;
	padding: 1.25rem 0;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}

.ts-partners__marquee-track {
	display: flex;
	align-items: center;
	gap: 2rem;
	width: max-content;
	animation: ts-marquee-slide 34s linear infinite;
	will-change: transform;
}

.ts-partners__marquee-group {
	display: contents;
}

.ts-partners__marquee:hover .ts-partners__marquee-track {
	animation-play-state: paused;
}

@keyframes ts-marquee-slide {
	0% { transform: translateX(0); }
	100% { transform: translateX(calc(-100% / 3)); }
}

.ts-partner-card {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 250px;
	height: 135px;
	padding: 1.25rem 1.75rem;
	border: 1px solid var(--ts-border-light, rgba(15, 23, 42, .12));
	border-radius: 14px;
	background-color: var(--ts-white, #fff);
	box-shadow: 0 4px 16px rgba(15, 23, 42, .03);
	transition: transform var(--ts-trans-base, 350ms cubic-bezier(.16, 1, .3, 1)), box-shadow var(--ts-trans-base, 350ms cubic-bezier(.16, 1, .3, 1)), border-color var(--ts-trans-base, 350ms cubic-bezier(.16, 1, .3, 1));
}

.ts-partner-card:hover {
	transform: translateY(-4px);
	border-color: rgba(234, 88, 12, .3);
	box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.ts-partner-card__link,
.ts-partner-card__view {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
}

.ts-partner-card__link:focus-visible {
	outline: 2px solid var(--ts-signal, #f15a24);
	outline-offset: 6px;
}

.ts-partner-card__logo {
	width: auto;
	max-width: 195px;
	height: auto;
	max-height: 80px;
	object-fit: contain;
	filter: grayscale(100%) opacity(.85);
	transition: filter var(--ts-trans-base, 350ms cubic-bezier(.16, 1, .3, 1)), transform var(--ts-trans-base, 350ms cubic-bezier(.16, 1, .3, 1));
}

.ts-partner-card:hover .ts-partner-card__logo {
	transform: scale(1.06);
	filter: grayscale(0%) opacity(1);
}

@media (prefers-reduced-motion: reduce) {
	.ts-partners__marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; scrollbar-width: thin; }
	.ts-partners__marquee-track { animation: none; transform: none; will-change: auto; }
	.ts-partners__marquee-group[aria-hidden="true"] { display: none; }
	.ts-partner-card, .ts-partner-card__logo { transition: none; }
}
