/* LR — Regenerative Growth Engine (05). Valores = layout aprovado.
 *
 * Padrão (sem JS, reduzir movimento, < 1000 × 520, sticky desligado): modo plano (lista <ol>).
 * Modo sticky: html.lr-motion + viewport ≥ 1000 × 520 + .lr-engine sem .is-flat.
 */

.lr-engine {
	--lr-engine-line: var(--lr-primary);
	position: relative;
	height: auto;
}

.lr-engine__stage {
	position: relative;
	display: flex;
	align-items: center;
}

.lr-engine__inner {
	max-width: var(--lr-max);
	width: 100%;
	margin: 0 auto;
	padding: clamp(90px, 10vw, 120px) var(--lr-gutter) clamp(72px, 8vw, 112px);
	display: flex;
	flex-wrap: wrap;
	gap: clamp(40px, 6vw, 100px);
	align-items: center;
}

/* ------------------------------------------------------------------ intro em duas colunas (head_layout = split) */

.lr-engine-head {
	position: relative;
	background: var(--lr-white);
}

.lr-engine-head__inner {
	max-width: var(--lr-max);
	margin: 0 auto;
	padding: clamp(90px, 11vw, 160px) var(--lr-gutter) clamp(24px, 3vw, 40px);
	display: flex;
	flex-wrap: wrap;
	gap: clamp(32px, 6vw, 100px);
	align-items: flex-start;
}

.lr-engine-head__left,
.lr-engine-head__right {
	flex: 1 1 420px;
	min-width: 0;
}

.lr-engine-head__right {
	display: flex;
	flex-direction: column;
	gap: 18px;
	color: var(--lr-primary);
}

.lr-engine-head .lr-engine__title {
	text-wrap: balance;
}

.lr-engine__lead,
.lr-engine__text {
	margin: 0;
	text-wrap: pretty;
}

.lr-engine__lead {
	font-weight: 700;
	font-size: calc(clamp(20px, 1.7vw, 26px) * var(--lr-ts, 1));
	line-height: 1.35;
	letter-spacing: -.01em;
}

.lr-engine__text {
	font-size: calc(18px * var(--lr-ts, 1));
	line-height: 1.6;
}

.lr-engine.has-split-head .lr-engine__inner {
	padding-top: clamp(72px, 8vw, 100px);
}

/* Sem título na coluna, etapas/lista começam no topo. */
.lr-engine__content > :first-child {
	margin-top: 0;
}

/* ------------------------------------------------------------------ text column */

.lr-engine__content {
	flex: 1 1 420px;
	min-width: 0;
}

.lr-engine__title {
	margin: 20px 0 0;
	font-weight: 800;
	font-size: calc(clamp(42px, 5.2vw, 86px) * var(--lr-ts, 1));
	line-height: .98;
	letter-spacing: -.035em;
	color: var(--lr-primary);
}

.lr-engine__intro {
	margin: 28px 0 0;
	max-width: 560px;
	font-size: calc(clamp(17px, 1.35vw, 20px) * var(--lr-ts, 1));
	line-height: 1.55;
	text-wrap: pretty;
}

.lr-engine__intro p + p {
	margin-top: 1em;
}

/* sticky step stack */

.lr-engine__sticky {
	display: none;
	margin-top: 44px;
	border-top: 1.5px solid var(--lr-engine-line);
	padding-top: 24px;
}

.lr-engine__steps {
	display: grid;
}

.lr-engine__step {
	grid-area: 1 / 1;
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s, transform .7s var(--lr-ease);
}

.lr-engine__step.is-prev {
	transform: translateY(-18px);
}

.lr-engine__step.is-current {
	opacity: 1;
	transform: translateY(0);
}

.lr-engine__step-head {
	display: flex;
	align-items: baseline;
	gap: 18px;
}

.lr-engine__num {
	font-weight: 800;
	font-size: calc(clamp(56px, 5vw, 84px) * var(--lr-ts, 1));
	line-height: .9;
	letter-spacing: -.04em;
	color: var(--lr-mint);
}

.lr-engine__label,
.lr-engine__item-label {
	font-size: calc(13px * var(--lr-ts, 1));
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--lr-teal);
}

.lr-engine__step-title {
	margin-top: 14px;
	font-weight: 800;
	font-size: calc(clamp(34px, 3.4vw, 54px) * var(--lr-ts, 1));
	line-height: 1;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: var(--lr-primary);
}

.lr-engine__desc {
	margin-top: 16px;
	max-width: 460px;
	font-size: calc(18px * var(--lr-ts, 1));
	line-height: 1.55;
	color: var(--lr-primary);
	text-wrap: pretty;
}

.lr-engine__loop {
	margin-top: 26px;
	max-width: 460px;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: calc(17px * var(--lr-ts, 1));
	font-weight: 700;
	line-height: 1.4;
	color: var(--lr-teal);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .8s, transform .8s var(--lr-ease);
}

.lr-engine.is-loop .lr-engine__loop {
	opacity: 1;
	transform: translateY(0);
}

.lr-engine__loop-icon {
	flex: 0 0 auto;
	height: 24px;
	width: auto;
}

/* flat list */

.lr-engine__list {
	list-style: none;
	margin: 36px 0 0;
	padding: 0;
	border-bottom: 1.5px solid var(--lr-engine-line);
}

.lr-engine__item {
	display: flex;
	gap: 18px;
	margin: 0;
	padding: 22px 0;
	border-top: 1.5px solid var(--lr-engine-line);
}

.lr-engine__item-num {
	flex: 0 0 auto;
	font-weight: 800;
	font-size: calc(40px * var(--lr-ts, 1));
	line-height: .9;
	letter-spacing: -.04em;
	color: var(--lr-teal);
}

.lr-engine__item-body {
	min-width: 0;
}

.lr-engine__item-label {
	font-size: calc(12px * var(--lr-ts, 1));
}

.lr-engine__item-title {
	margin-top: 6px;
	font-weight: 800;
	font-size: calc(28px * var(--lr-ts, 1));
	line-height: 1.05;
	letter-spacing: -.01em;
	text-transform: uppercase;
	color: var(--lr-primary);
}

.lr-engine__item-desc {
	margin-top: 10px;
	font-size: calc(17px * var(--lr-ts, 1));
	line-height: 1.55;
	color: var(--lr-primary);
}

.lr-engine__loop-flat {
	margin-top: 22px;
	font-size: calc(17px * var(--lr-ts, 1));
	font-weight: 700;
	line-height: 1.4;
	color: var(--lr-teal);
}

.lr-engine__cta {
	margin-top: 34px;
}

/* ------------------------------------------------------------------ cycle */

.lr-engine__visual {
	flex: 1 1 420px;
	min-width: 0;
	display: flex;
	justify-content: center;
	order: -1;
}

.lr-engine__cycle {
	position: relative;
	width: min(66vh, 100%, 580px);
	aspect-ratio: 1262 / 1246;
	margin: 20px;
}

.lr-engine__part {
	position: absolute;
	inset: 0;
	transform-origin: 50% 50%;
}

.lr-engine__part .lr-graphic {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
}

/* Estado final estático (modo plano / sem animação): ciclo todo colorido. */
.lr-engine__gray {
	opacity: 0;
}

.lr-engine__color {
	opacity: 1;
}

/* ------------------------------------------------------------------ sticky mode */

@media (min-width: 1000px) and (min-height: 520px) {
	.lr-motion .lr-engine:not(.is-flat) {
		height: var(--lr-engine-h, 340vh);
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__stage {
		position: sticky;
		top: 0;
		height: 100vh;
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__sticky {
		display: block;
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__list,
	.lr-motion .lr-engine:not(.is-flat) .lr-engine__loop-flat {
		display: none;
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__visual {
		order: 0;
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__part {
		will-change: transform;
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__gray {
		opacity: .55;
	}

	.lr-motion .lr-engine:not(.is-flat) .lr-engine__color {
		opacity: 0;
	}
}

/* Notebooks com janela baixa (520–719px): o cabeçalho fixo cobre o topo do palco —
 * reserva o espaço dele e reduz a folga inferior para o ciclo caber inteiro. */
@media (min-width: 1000px) and (min-height: 520px) and (max-height: 719px) {
	.lr-motion .lr-engine:not(.is-flat) .lr-engine__inner {
		padding-top: calc(var(--lr-header-h) + 12px);
		padding-bottom: 24px;
	}
}
