/* ==========================================================================
   IMPULZO STUDIO - EMPRESAS ALIADAS (impulzo-empresas-aliadas)
   Cero CSS en línea - Gobernado por Variables CSS de Elementor
   ========================================================================== */

.impulzo-empresas-aliadas-container {
	/* Variables del Contenedor y Área Visible */
	--impulzo-ea-container-max-width: 1440px;
	--impulzo-ea-container-width: 1280px;
	--impulzo-ea-container-min-height: 136px;
	--impulzo-ea-container-padding: 32px 24px;
	--impulzo-ea-viewport-width: 1280px;
	--impulzo-ea-global-scale: 1;
	--impulzo-ea-justify: center;
	--impulzo-ea-align: center;

	/* Variables de Fondo y Bordes */
	--impulzo-ea-bg-1: #f3f2ee;
	--impulzo-ea-bg-2: #e6e4de;
	--impulzo-ea-bg-angle: 90deg;
	--impulzo-ea-border-width: 1px 0px 1px 0px;
	--impulzo-ea-border-color: #dcdad3;
	--impulzo-ea-border-radius: 0px;

	/* Variables de Desvanecido Alfa Lateral */
	--impulzo-ea-fade-size: 12%;
	--impulzo-ea-fade-alpha: 0;

	/* Variables de Animación de Entrada (Fundido Suave) */
	--impulzo-ea-entrance-duration: 850ms;
	--impulzo-ea-entrance-delay: 100ms;
	--impulzo-ea-entrance-y: 18px;

	/* Variables de Loop Horizontal */
	--impulzo-ea-loop-direction: normal;
	--impulzo-ea-loop-duration: 28s;

	/* Variables de Tamaño de Logos en PX y Gap */
	--impulzo-ea-logo-width: 165px;
	--impulzo-ea-logo-height: 42px;
	--impulzo-ea-logo-gap: 64px;
	--impulzo-ea-object-fit: contain;

	/* Variables de Filtro Negro -> Color Natural y Grow en Hover */
	--impulzo-ea-idle-brightness: 0;
	--impulzo-ea-idle-grayscale: 100%;
	--impulzo-ea-idle-opacity: 0.95;
	--impulzo-ea-color-duration: 350ms;
	--impulzo-ea-grow-scale: 1.10;
	--impulzo-ea-grow-y: -2px;
	--impulzo-ea-grow-duration: 320ms;

	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--impulzo-ea-container-min-height);
	padding: var(--impulzo-ea-container-padding);
	border-radius: var(--impulzo-ea-border-radius);
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
	box-sizing: border-box;
}

.impulzo-empresas-aliadas-container *,
.impulzo-empresas-aliadas-container *::before,
.impulzo-empresas-aliadas-container *::after {
	box-sizing: border-box;
}

/* Modos de ancho del contenedor principal */
.impulzo-empresas-aliadas-container.layout-full {
	width: 100%;
	max-width: 100%;
}

.impulzo-empresas-aliadas-container.layout-boxed {
	width: 100%;
	max-width: var(--impulzo-ea-container-max-width);
}

.impulzo-empresas-aliadas-container.layout-custom {
	width: var(--impulzo-ea-container-width);
	max-width: 100%;
}

/* Background: Sólido, Degradado Lineal, Degradado Radial o Sin Fondo */
.impulzo-empresas-aliadas-container.no-bg {
	background: transparent !important;
}

.impulzo-empresas-aliadas-container.has-bg.bg-type-solid {
	background: var(--impulzo-ea-bg-1);
}

.impulzo-empresas-aliadas-container.has-bg.bg-type-linear {
	background: linear-gradient(var(--impulzo-ea-bg-angle), var(--impulzo-ea-bg-1) 0%, var(--impulzo-ea-bg-2) 100%);
}

.impulzo-empresas-aliadas-container.has-bg.bg-type-radial {
	background: radial-gradient(circle at center, var(--impulzo-ea-bg-1) 0%, var(--impulzo-ea-bg-2) 100%);
}

/* Bordes Editables (Activar / Quitar) */
.impulzo-empresas-aliadas-container.has-border {
	border-style: solid;
	border-width: var(--impulzo-ea-border-width);
	border-color: var(--impulzo-ea-border-color);
}

.impulzo-empresas-aliadas-container.no-border {
	border: none !important;
}

/* ==========================================================================
   ANIMACIÓN DE ENTRADA (FUNDIDO SUAVE)
   ========================================================================== */
.impulzo-empresas-aliadas-container.has-entrance-fade {
	opacity: 0;
	transform: translateY(var(--impulzo-ea-entrance-y));
	transition: opacity var(--impulzo-ea-entrance-duration) cubic-bezier(0.22, 1, 0.36, 1),
	            transform var(--impulzo-ea-entrance-duration) cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--impulzo-ea-entrance-delay);
}

.impulzo-empresas-aliadas-container.has-entrance-fade.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ==========================================================================
   ESCALA CONJUNTA Y ÁREA VISIBLE (700px, 1280px, 100%, PERSONALIZADO)
   ========================================================================== */
.impulzo-empresas-aliadas-scale-stage {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: scale(var(--impulzo-ea-global-scale));
	transform-origin: center center;
	transition: transform 0.3s ease;
}

.impulzo-empresas-aliadas-viewport {
	position: relative;
	width: 100%;
	overflow: hidden;
	margin-left: auto;
	margin-right: auto;
}

.impulzo-empresas-aliadas-container.viewport-preset-700 .impulzo-empresas-aliadas-viewport {
	max-width: 700px;
}

.impulzo-empresas-aliadas-container.viewport-preset-1280 .impulzo-empresas-aliadas-viewport {
	max-width: 1280px;
}

.impulzo-empresas-aliadas-container.viewport-preset-full .impulzo-empresas-aliadas-viewport {
	max-width: 100%;
}

.impulzo-empresas-aliadas-container.viewport-preset-custom .impulzo-empresas-aliadas-viewport {
	max-width: var(--impulzo-ea-viewport-width);
}

/* Desvanecido Lateral a Alfa de 0% a 100% */
.impulzo-empresas-aliadas-container.has-fade-edges .impulzo-empresas-aliadas-viewport {
	-webkit-mask-image: linear-gradient(
		to right,
		rgba(0, 0, 0, var(--impulzo-ea-fade-alpha)) 0%,
		rgba(0, 0, 0, 1) var(--impulzo-ea-fade-size),
		rgba(0, 0, 0, 1) calc(100% - var(--impulzo-ea-fade-size)),
		rgba(0, 0, 0, var(--impulzo-ea-fade-alpha)) 100%
	);
	mask-image: linear-gradient(
		to right,
		rgba(0, 0, 0, var(--impulzo-ea-fade-alpha)) 0%,
		rgba(0, 0, 0, 1) var(--impulzo-ea-fade-size),
		rgba(0, 0, 0, 1) calc(100% - var(--impulzo-ea-fade-size)),
		rgba(0, 0, 0, var(--impulzo-ea-fade-alpha)) 100%
	);
}

/* ==========================================================================
   PISTA DE LOGOS (MODO LOOP INFINITO VS MODO ESTÁTICO ALINEADO)
   ========================================================================== */
@keyframes impulzoMarqueeLoop {
	0% {
		transform: translate3d(0, 0, 0);
	}
	100% {
		transform: translate3d(-100%, 0, 0);
	}
}

.impulzo-empresas-aliadas-marquee {
	display: flex;
	align-items: var(--impulzo-ea-align);
	width: 100%;
}

.impulzo-empresas-aliadas-container.is-loop-active .impulzo-empresas-aliadas-marquee {
	width: max-content;
	justify-content: flex-start;
}

.impulzo-empresas-aliadas-container.is-loop-static .impulzo-empresas-aliadas-marquee {
	width: 100%;
	justify-content: var(--impulzo-ea-justify);
}

.impulzo-empresas-aliadas-track {
	display: flex;
	align-items: var(--impulzo-ea-align);
	gap: var(--impulzo-ea-logo-gap);
	flex-shrink: 0;
}

.impulzo-empresas-aliadas-container.is-loop-active .impulzo-empresas-aliadas-track {
	padding-right: var(--impulzo-ea-logo-gap);
	animation-name: impulzoMarqueeLoop;
	animation-duration: var(--impulzo-ea-loop-duration);
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	animation-direction: var(--impulzo-ea-loop-direction);
	will-change: transform;
}

.impulzo-empresas-aliadas-container.is-loop-static .impulzo-empresas-aliadas-track {
	flex-wrap: wrap;
	justify-content: var(--impulzo-ea-justify);
	width: 100%;
}

/* Stop-Start en Hover (En toda la banda o solo en cada logo) */
.impulzo-empresas-aliadas-container.is-loop-active.pause-on-track .impulzo-empresas-aliadas-viewport:hover .impulzo-empresas-aliadas-track,
.impulzo-empresas-aliadas-container.is-loop-active.pause-on-item.is-item-hovered .impulzo-empresas-aliadas-track {
	animation-play-state: paused;
}

/* ==========================================================================
   CADA LOGO / ÍTEM (AJUSTE UNIFORME EN PX, NEGRO->COLOR Y GROW EN HOVER)
   ========================================================================== */
.impulzo-empresas-aliadas-item {
	--impulzo-ea-item-scale: 1;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	text-decoration: none;
	padding: 6px 0;
	cursor: pointer;
}

.impulzo-empresas-aliadas-container.is-uniform-size .impulzo-empresas-aliadas-item {
	width: var(--impulzo-ea-logo-width);
	height: calc(var(--impulzo-ea-logo-height) + 16px);
}

.impulzo-empresas-aliadas-logo-inner {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--impulzo-ea-logo-height);
	opacity: var(--impulzo-ea-idle-opacity);
	transform: scale(var(--impulzo-ea-item-scale));
	transition: transform var(--impulzo-ea-grow-duration) cubic-bezier(0.22, 1, 0.36, 1),
	            filter var(--impulzo-ea-color-duration) ease,
	            opacity var(--impulzo-ea-color-duration) ease;
}

/* Filtro Negro por Defecto -> Revela Color Natural en Hover (PNG, JPG, WebP, SVG) */
.impulzo-empresas-aliadas-container.has-black-to-color .impulzo-empresas-aliadas-logo-inner {
	filter: brightness(var(--impulzo-ea-idle-brightness)) grayscale(var(--impulzo-ea-idle-grayscale));
}

.impulzo-empresas-aliadas-container.has-black-to-color .impulzo-empresas-aliadas-item:hover .impulzo-empresas-aliadas-logo-inner {
	filter: brightness(1) grayscale(0%);
	opacity: 1;
}

.impulzo-empresas-aliadas-item:hover .impulzo-empresas-aliadas-logo-inner {
	opacity: 1;
}

/* Animación Grow Sencilla en Hover */
.impulzo-empresas-aliadas-container.has-logo-grow .impulzo-empresas-aliadas-item:hover .impulzo-empresas-aliadas-logo-inner {
	transform: translateY(var(--impulzo-ea-grow-y)) scale(calc(var(--impulzo-ea-item-scale) * var(--impulzo-ea-grow-scale)));
}

.impulzo-empresas-aliadas-img,
.impulzo-empresas-aliadas-fallback-svg {
	width: 100%;
	max-width: var(--impulzo-ea-logo-width);
	height: var(--impulzo-ea-logo-height);
	max-height: var(--impulzo-ea-logo-height);
	object-fit: var(--impulzo-ea-object-fit);
	object-position: center center;
	display: block;
	user-select: none;
	-webkit-user-drag: none;
}

.impulzo-empresas-aliadas-svg-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--impulzo-ea-logo-height);
	line-height: 1;
}

.impulzo-empresas-aliadas-svg-wrap svg {
	width: auto;
	height: var(--impulzo-ea-logo-height);
	max-width: var(--impulzo-ea-logo-width);
}

/* ==========================================================================
   MEDIA QUERIES OBLIGATORIAS (TABLET <= 1024px Y MÓVIL <= 768px)
   ========================================================================== */
@media (max-width: 1024px) {
	.impulzo-empresas-aliadas-container {
		padding: 26px 18px;
	}
}

@media (max-width: 768px) {
	.impulzo-empresas-aliadas-container {
		min-height: 98px;
		padding: 20px 12px;
	}
}
