/* ==========================================================================
   i7w — Movimento (camada opcional)
   Regras que so atuam quando o script marca o documento com `i7w-js`.
   Sem JavaScript nada e escondido: o HTML de base permanece visivel.
   ========================================================================== */

/* Revelacao por rolagem ---------------------------------------------------- */

.i7w-js .i7w-reveal {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.i7w-js .i7w-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	will-change: auto;
}

/* Escalonamento por posicao no grupo (data-i7w-delay = 0..5). */
.i7w-js .i7w-reveal[data-i7w-delay="1"] { transition-delay: 0.07s; }
.i7w-js .i7w-reveal[data-i7w-delay="2"] { transition-delay: 0.14s; }
.i7w-js .i7w-reveal[data-i7w-delay="3"] { transition-delay: 0.21s; }
.i7w-js .i7w-reveal[data-i7w-delay="4"] { transition-delay: 0.28s; }
.i7w-js .i7w-reveal[data-i7w-delay="5"] { transition-delay: 0.35s; }

/* Variantes: deslocamento menor para itens densos. */
.i7w-js .i7w-trust__item.i7w-reveal,
.i7w-js .i7w-metric.i7w-reveal,
.i7w-js .i7w-tech__item.i7w-reveal {
	transform: translate3d(0, 10px, 0);
}

.i7w-js .i7w-proof.i7w-reveal,
.i7w-js .i7w-convert.i7w-reveal,
.i7w-js .i7w-compare__panel.i7w-reveal {
	transform: translate3d(0, 24px, 0);
	transition-duration: 0.7s;
}

/* Elementos marcados para parallax nao devem somar deslocamento de revelacao. */
.i7w-js [data-i7w-parallax].i7w-reveal {
	transform: none;
}

/* Realce de ancora -------------------------------------------------------- */

.i7w-anchor-highlight {
	animation: i7w-anchor-flash 1.4s ease-out 1;
}

@keyframes i7w-anchor-flash {
	0% { box-shadow: 0 0 0 0 rgba(0, 72, 227, 0.45); }
	100% { box-shadow: 0 0 0 18px rgba(0, 72, 227, 0); }
}

/* Barra de progresso de leitura ------------------------------------------- */

.i7w-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 120;
	width: 100%;
	height: 3px;
	background: linear-gradient(90deg, var(--i7w-color-brand), var(--i7w-color-primary));
	transform: scaleX(0);
	transform-origin: 0 50%;
	pointer-events: none;
}

/* Botao voltar ao topo (a regra de visibilidade vive em components.css) --- */

.i7w-to-top {
	transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}

.i7w-to-top.is-visible {
	transform: translateY(0);
}

/* Movimento reduzido: nada anima, nada some ------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.i7w-hero::before {
		animation: none !important;
		transform: none !important;
	}

	.i7w-reveal,
	.i7w-js .i7w-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.i7w-progress {
		display: none;
	}

	.i7w-anchor-highlight {
		animation: none;
	}

	.i7w-logos {
		mask-image: none;
		-webkit-mask-image: none;
	}

	.i7w-logos__track {
		animation: none !important;
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
	}

	.i7w-logos__item {
		color: var(--i7w-color-text);
	}

	.i7w-logos__wordmark,
	.i7w-logos__image {
		opacity: 1;
		filter: none;
	}
}
