/* BEC Motion — tudo vale só nas páginas com o movimento ligado (body.bm-on).
   As animações mexem apenas em opacity, transform e clip-path; nada muda o layout.
   Os valores vêm das opções do Elementor como variáveis CSS; os padrões abaixo são os da página de teste aprovada. */
.bm-on { --bm-ease: cubic-bezier(.2, .7, .2, 1); }

@keyframes bm-up { from { opacity: 0; transform: translate3d(0, var(--bm-dist, 18px), 0); } to { opacity: 1; transform: none; } }
@keyframes bm-pop { from { opacity: 0; transform: scale(var(--bm-pop, .94)); } to { opacity: 1; transform: none; } }
@keyframes bm-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes bm-word { from { transform: translate3d(0, 110%, 0); } to { transform: none; } }
@keyframes bm-sun { from { opacity: 0; transform: scale(.55) rotate(var(--bm-spin, -120deg)); } to { opacity: 1; transform: none; } }
@keyframes bm-marquee { to { transform: translate3d(-50%, 0, 0); } }

/* com as entradas automáticas, as animações de entrada do Elementor saem de cena nesta página */
.bm-auto .elementor-invisible { visibility: visible !important; }
.bm-auto .elementor-element.animated { animation-name: none; }

/* entradas */
.bm-on .bm:not(.bm-in) { opacity: 0; }
.bm-on .bm-split:not(.bm-in) { opacity: 1; }
.bm-on .bm-in.bm-up { animation: bm-up var(--bm-dur, 1s) var(--bm-ease) var(--bm-d, 0ms) backwards; }
.bm-on .bm-in.bm-pop { animation: bm-pop calc(var(--bm-dur, 1s) * .9) var(--bm-ease) var(--bm-d, 0ms) backwards; }
.bm-on .bm-in.bm-fade { animation: bm-fade calc(var(--bm-dur, 1s) * 1.1) ease var(--bm-d, 0ms) backwards; }
.bm-on .bm-in.bm-sun { animation: bm-sun calc(var(--bm-dur, 1s) * 1.8) var(--bm-ease) var(--bm-d, 0ms) backwards; }

/* títulos palavra por palavra, saindo de uma máscara */
.bm-on .bm-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
.bm-on .bm-w > span { display: inline-block; }
.bm-on .bm-split:not(.bm-in) .bm-w > span { transform: translate3d(0, 110%, 0); }
.bm-on .bm-split.bm-in .bm-w > span { animation: bm-word var(--bm-dur, 1s) var(--bm-ease) calc(var(--bm-d, 0ms) + var(--i) * var(--bm-word-step, 55ms)) backwards; }

/* efeitos ao rolar (posição escrita pelo script) */
.bm-on .bm-fx-panel, .bm-on .bm-fx-depth { will-change: transform; }
.bm-on .bm-fx-open { will-change: clip-path; }

/* cards de posts: o card sobe, a foto aproxima */
.bm-cards .elementor-loop-container > .e-loop-item { transition: transform .6s var(--bm-ease); }
.bm-cards .elementor-loop-container > .e-loop-item:hover { transform: translate3d(0, var(--bm-card-lift, -8px), 0); }
.bm-cards .elementor-loop-container .elementor-widget-image,
.bm-cards .elementor-loop-container .elementor-widget-theme-post-featured-image { overflow: hidden; border-radius: var(--bm-card-radius, 16px); }
.bm-cards .elementor-loop-container img { transition: transform 1s var(--bm-ease); }
.bm-cards .elementor-loop-container > .e-loop-item:hover img { transform: scale(var(--bm-card-zoom, 1.06)); }

/* botões magnéticos */
.bm-on .bm-mag { transition: transform .5s var(--bm-ease); will-change: transform; }
.bm-on .bm-mag.is-near { transition: transform .15s linear; }

/* faixa contínua */
.bm-on .bm-marquee {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--bm-fade, 8%), #000 calc(100% - var(--bm-fade, 8%)), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--bm-fade, 8%), #000 calc(100% - var(--bm-fade, 8%)), transparent);
}
.bm-on .bm-track { display: flex; width: max-content; animation: bm-marquee var(--bm-speed, 45s) linear infinite; }
.bm-on .bm-track > img { flex: none; max-width: none !important; width: var(--bm-w) !important; height: auto; padding-right: var(--bm-gap, 64px); box-sizing: content-box; }
.bm-on .bm-marquee:hover .bm-track { animation-play-state: paused; }

/* barra de progresso (cor, espessura e posição vêm das Configurações da página) */
.bm-on .bm-progress { position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 3px; background-color: #FF662F; transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* rolagem suave (Lenis) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.bm-on .bm, .bm-on .bm * { animation: none !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
	.bm-on .bm-track { animation: none !important; }
}
