/* ==========================================================================
   EUROWARE — scroll motion (Lenis + motion.js)
   Every effect hangs off an `ew-*` class, so in Elementor you add the same
   class under Advanced → CSS Classes. Content is fully visible until
   motion.js adds html.ew-motion, so a failed script never hides the page.
   ========================================================================== */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto}
.lenis.lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}

/* Split headings — line mask reveal */
.ew-line{display:block;overflow:clip;overflow-clip-margin:.12em;padding-bottom:.04em;margin-bottom:-.04em}
.ew-line-inner{display:block}
.ew-motion .ew-split:not(.is-in) .ew-line-inner{transform:translateY(108%)}
.ew-motion .ew-split .ew-line-inner{transition:transform 1s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}

/* Image clip reveal */
.ew-motion .ew-reveal{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease)}
.ew-motion .ew-reveal.is-in{clip-path:inset(0 0 0 0)}

/* Parallax: uses the individual `translate` property so it composes with
   existing hover/crop transforms instead of overwriting them */
.ew-parallax img,img.ew-parallax{translate:0 var(--py,0px)}
.ew-motion .ew-parallax{overflow:hidden}
.ew-motion .ew-parallax img,.ew-motion img.ew-parallax{scale:1.12}

/* List stagger */
.ew-motion .ew-stagger .ew-item{opacity:0;translate:0 26px;transition:opacity .7s var(--ease),translate .9s var(--ease);transition-delay:min(calc(var(--i,0) * 70ms),420ms)}
.ew-motion .ew-stagger.is-in .ew-item{opacity:1;translate:0 0}

/* Hero copy drifts back as you leave it */
.ew-motion .hero-copy{opacity:var(--hero-fade,1);translate:0 var(--hero-lift,0px)}

/* Focal moment: trade panel opens to full bleed as it arrives */
.ew-motion .ew-expand{clip-path:inset(0 var(--ex,0%) 0 var(--ex,0%))}
.ew-motion .ew-expand .trade-head{translate:0 var(--ex-lift,0px)}

/* Berlin pin (desktop only) */
@media(min-width:1000px){
  .ew-motion .ew-pin-track{height:190vh;background:var(--eucalypt);position:relative;z-index:3}
  .ew-motion .ew-pin-track .ew-pin{position:sticky;top:0;height:100vh;min-height:640px;align-items:center;padding-top:60px;padding-bottom:60px}
  .ew-motion .ew-pin .collection-image{height:calc(100vh - 120px);min-height:520px;clip-path:inset(var(--pin-clip,0%) calc(var(--pin-clip,0%) * .8));}
  .ew-motion .ew-pin .collection-image img{scale:var(--pin-scale,1)}
  .ew-motion .ew-pin h2 .accent{display:inline-block;translate:var(--pin-x,0px) 0}
  .ew-motion .ew-pin .collection-copy{align-self:stretch;justify-content:center}
  .ew-motion .ew-pin .collection-detail{margin-top:60px}
}

/* Marquee reacts to scroll velocity */
.marquee-track{will-change:transform}
.marquee-track>span{transform:skewX(var(--skew,0deg));transition:transform .2s linear}

@media(prefers-reduced-motion:reduce){
  .ew-motion .ew-split .ew-line-inner,.ew-motion .ew-stagger .ew-item{transform:none!important;translate:none!important;opacity:1!important;transition:none}
  .ew-motion .ew-reveal{clip-path:none}
  .ew-parallax img,img.ew-parallax{translate:none;scale:none}
  .ew-motion .ew-expand{clip-path:none}
  .ew-motion .ew-pin-track{height:auto}
  .marquee-track>span{transform:none}
}
