/* Site motion (motion-core.js, used by home-motion.js and hub-motion.js): smooth scroll with Lenis and GSAP reveals.
   Nothing here changes the page without JavaScript or with reduced motion. */

/* Lenis 1.3.11 (MIT) base rules, plus: the browser must not smooth the jumps Lenis already smooths. */
html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent], .lenis [data-lenis-prevent-wheel], .lenis [data-lenis-prevent-touch] { overscroll-behavior: contain; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* The hero text waits for its entrance instead of flashing first.
   The class is set in <head> and removed by motion-core.js, or after 3 s if the script never runs. */
html.motion-pending .journey-copy,
html.motion-pending .hub-hero .hero-text { visibility: hidden; }

/* Lines split by SplitText keep the descenders inside their mask. */
.has-motion .motion-line-mask { padding-bottom: .08em; margin-bottom: -.08em; }

/* "Come lavoriamo": a line above the four steps fills as the section scrolls by. */
.has-motion .journey-process .process-steps { position: relative; }
.has-motion .journey-process .process-steps::before {
  content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 3px; border-radius: 3px;
  background: var(--scene-forest, #164f3d);
  transform: scaleX(var(--process-progress, 0)); transform-origin: left center;
}
@media (max-width: 900px) { .has-motion .journey-process .process-steps::before { top: -14px; } }
