/**
 * Logos 3 – fiel ao original: título em 3 partes, badge, carrossel em loop com autoplay (CSS).
 * Referência: shadcn-ui-blocks-master src/block/logos3.tsx
 */

.shadcn-logos3 {
	box-sizing: border-box;
	width: 100%;
	padding-top: var(--shadcn-logos3-padding-top, var(--sui-section-padding-top, 4rem));
	padding-bottom: var(--shadcn-logos3-padding-bottom, var(--sui-section-padding-bottom, 4rem));
}

.shadcn-logos3 *,
.shadcn-logos3 *::before,
.shadcn-logos3 *::after {
	box-sizing: border-box;
}

.shadcn-logos3-container {
	width: 100%;
	max-width: 100rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
}

/* Badge secção (mesmas classes .shadcn-sobre2-badge-* que Sobre 2) */
.shadcn-logos3-section-badge {
	margin-bottom: 0.75rem;
}

/* h2: tipografia no Personalizar (GeneratePress); <span> no título → accent em shadcn-ui-block-base.css */
.shadcn-logos3 .shadcn-logos3-heading {
	display: block;
	max-width: 56rem;
	margin: 1.5rem 0;
}

.shadcn-logos3 .shadcn-logos3-heading + .shadcn-logos3-intro {
	margin-top: 0;
}

.shadcn-logos3 .shadcn-logos3-section-badge + .shadcn-logos3-intro {
	margin-top: 0.75rem;
}

/* Texto de apoio abaixo do título (antes da faixa de logos) */
.shadcn-logos3 .shadcn-logos3-intro {
	max-width: 56rem;
	margin: 0.75rem 0 0;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--sui-gp-text-muted, var(--muted-foreground, #71717a));
}

.shadcn-logos3 .shadcn-logos3-intro + .shadcn-logos3-track-wrap {
	margin-top: 1.25rem;
}

.shadcn-logos3 .shadcn-logos3-intro + .shadcn-logos3-intro {
	margin-top: 0.75rem;
}

.shadcn-logos3 .shadcn-logos3-outro + .shadcn-logos3-outro {
	margin-top: 0.75rem;
}

/* Texto opcional abaixo da faixa de logos */
.shadcn-logos3 .shadcn-logos3-outro {
	max-width: 56rem;
	margin: 1.5rem 0 0;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--sui-gp-text-muted, var(--muted-foreground, #71717a));
}

.shadcn-logos3 .shadcn-logos3-track-wrap + .shadcn-logos3-outro {
	margin-top: 2rem;
}

/* Badge: flex w-fit gap-4 rounded-full bg-muted px-4 py-2 tracking-tight hover:gap-6 */
.shadcn-logos3-badge {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	border-radius: 9999px;
	background: var(--muted, #f4f4f5);
	padding: 0.5rem 1rem;
	letter-spacing: 0.025em;
	transition: gap 0.2s ease-in-out;
}

.shadcn-logos3-badge:hover {
	gap: 1.5rem;
}

/* Dot: size-3 rounded-full bg-foreground */
.shadcn-logos3-badge-dot {
	display: inline-block;
	width: 0.75rem;
	height: 0.75rem;
	border-radius: 50%;
	background: var(--sui-gp-text);
	flex-shrink: 0;
}

.shadcn-logos3-badge-text {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.25;
	color: var(--sui-gp-text);
}

/* Carousel wrap: relative mx-auto flex items-center justify-center pt-8 */
.shadcn-logos3-track-wrap {
	position: relative;
	margin-left: auto;
	margin-right: auto;
	margin-top: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

/* Track: duas cópias dos logos para loop infinito; animação desliza uma “volta” */
.shadcn-logos3-track {
	display: flex;
	align-items: stretch;
	flex-wrap: nowrap;
	width: max-content;
	min-width: 100%;
}

.shadcn-logos3-track--animate {
	animation: shadcn-logos3-scroll 30s linear infinite;
}

@keyframes shadcn-logos3-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

/* Preferência do utilizador: sem animação */
@media (prefers-reduced-motion: reduce) {
	.shadcn-logos3-track--animate {
		animation: none;
	}
	.shadcn-logos3-track-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.shadcn-logos3-track-wrap::-webkit-scrollbar {
		display: none;
	}
}

/* Item: h-35 basis-1/2 sm:basis-1/4 md:basis-1/3 lg:basis-1/6 border border-r-0 */
.shadcn-logos3-item {
	position: relative;
	flex: 0 0 50%;
	min-width: 0;
	height: 8.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--border, #e4e4e7);
	border-right-width: 0;
	padding-left: 0;
}

@media (min-width: 640px) {
	.shadcn-logos3-item {
		flex: 0 0 25%;
	}
}

@media (min-width: 768px) {
	.shadcn-logos3-item {
		flex: 0 0 33.333%;
	}
}

@media (min-width: 1024px) {
	.shadcn-logos3-item {
		flex: 0 0 16.666%;
	}
}

/* Inner: flex flex-col items-center justify-center lg:mx-10 */
.shadcn-logos3-item-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0 0.5rem;
}

@media (min-width: 1024px) {
	.shadcn-logos3-item-inner {
		margin-left: 2.5rem;
		margin-right: 2.5rem;
	}
}

/* Label: container para numeração + nome */
.shadcn-logos3-item-label {
	position: absolute;
	top: 0;
	left: 0;
	margin: 0;
	font-family: ui-monospace, monospace;
	font-size: 0.75rem;
	line-height: 1.25;
	color: var(--sui-gp-text);
}

.shadcn-logos3-item-num {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	margin: 0;
	font-size: 0.75rem;
	line-height: 1;
	letter-spacing: -0.05em;
	color: var(--sui-gp-text-muted);
}

.shadcn-logos3-item-name {
	display: inline-block;
	margin-left: 2.25rem;
	padding-top: 0.5rem;
	color: var(--sui-gp-text);
}

/*
 * Largura até 120px; altura proporcional (auto). width/max-width com !important para o tema não espremer.
 */
.shadcn-logos3 .shadcn-logos3-logo-img {
	display: block;
	height: auto;
	width: auto !important;
	max-width: 7.5rem !important;
	min-width: 0;
	object-fit: contain !important;
}

/* Fades: w-32 gradient from-background to-transparent */
.shadcn-logos3-fade {
	pointer-events: none;
	position: absolute;
	top: 0;
	bottom: 0;
	width: 8rem;
}

.shadcn-logos3-fade-left {
	left: 0;
	background: linear-gradient(to right, var(--background, #fff), transparent);
}

.shadcn-logos3-fade-right {
	right: 0;
	background: linear-gradient(to left, var(--background, #fff), transparent);
}

/* Cores reais do ficheiro; evita regras legadas com filter:invert (cache / tema). */
.shadcn-logos3 img.shadcn-logos3-logo-img {
	filter: none !important;
	-webkit-filter: none !important;
}
