/* ---------- shared ---------- */
.ssfe-pin{position:relative;height:300vh;width:100%}

/* ---------- global reveal effects (live page only, never in the editor) ---------- */
html.ssfe-js body:not(.elementor-editor-active) [class*="ssfe-rv-"]{
  transition:
    opacity var(--ssfe-dur,800ms) cubic-bezier(.16,1,.3,1) var(--ssfe-delay,0ms),
    translate var(--ssfe-dur,800ms) cubic-bezier(.16,1,.3,1) var(--ssfe-delay,0ms),
    scale var(--ssfe-dur,800ms) cubic-bezier(.16,1,.3,1) var(--ssfe-delay,0ms),
    filter var(--ssfe-dur,800ms) cubic-bezier(.16,1,.3,1) var(--ssfe-delay,0ms),
    clip-path var(--ssfe-dur,800ms) cubic-bezier(.16,1,.3,1) var(--ssfe-delay,0ms),
    background .3s,border .3s,border-radius .3s,box-shadow .3s,transform .4s;
}
html.ssfe-js body:not(.elementor-editor-active) [class*="ssfe-rv-"]:not(.ssfe-in){opacity:0}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-up:not(.ssfe-in){translate:0 var(--ssfe-dist,60px)}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-down:not(.ssfe-in){translate:0 calc(var(--ssfe-dist,60px) * -1)}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-left:not(.ssfe-in){translate:var(--ssfe-dist,60px) 0}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-right:not(.ssfe-in){translate:calc(var(--ssfe-dist,60px) * -1) 0}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-zoom-in:not(.ssfe-in){scale:.85}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-zoom-out:not(.ssfe-in){scale:1.15}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-blur:not(.ssfe-in){filter:blur(18px)}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-clip{clip-path:inset(0 0 0 0)}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-rv-clip:not(.ssfe-in){opacity:1;clip-path:inset(100% 0 0 0)}

/* parallax: driven by a CSS variable so it stacks with everything else */
.ssfe-plx-on{translate:0 var(--ssfe-py,0px);will-change:translate}
html.ssfe-js body:not(.elementor-editor-active) .ssfe-plx-on.ssfe-done{transition:background .3s,border .3s,border-radius .3s,box-shadow .3s}

@media (max-width:767px){
  html.ssfe-js body .ssfe-nomob-yes{opacity:1!important;translate:none!important;scale:none!important;filter:none!important;clip-path:none!important}
}
@media (prefers-reduced-motion:reduce){
  html.ssfe-js body [class*="ssfe-rv-"],.ssfe-plx-on{opacity:1!important;translate:none!important;scale:none!important;filter:none!important;clip-path:none!important;transition:none!important}
}

/* ---------- horizontal scroll ---------- */
.ssfe-h{position:relative;width:100%}
.ssfe-h__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center}
.ssfe-h__track{display:flex;flex:0 0 auto;width:max-content;gap:24px;padding:0 5vw;will-change:transform}
.ssfe-h__panel{position:relative;flex:0 0 auto;display:block;width:60vw;height:70vh;border-radius:20px;overflow:hidden;background:#151515;color:#fff;text-decoration:none}
.ssfe-h__img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover}
.ssfe-h__body{position:absolute;left:0;right:0;bottom:0;padding:28px;background:linear-gradient(transparent,rgba(0,0,0,.75))}
.ssfe-h__title{margin:0 0 .3em;color:#fff}
.ssfe-h__text{margin:0;color:#ddd}
.ssfe-h__tpl{height:100%;overflow:auto}
@media (max-width:767px){
  .ssfe-h__panel{width:82vw}
  .ssfe-h--stack{height:auto!important}
  .ssfe-h--stack .ssfe-h__sticky{position:static;height:auto;display:block;overflow:visible}
  .ssfe-h--stack .ssfe-h__track{flex-direction:column;width:auto;transform:none!important;padding-top:24px;padding-bottom:24px}
  .ssfe-h--stack .ssfe-h__panel{width:100%!important;height:60vh}
}

/* ---------- stacking cards ---------- */
.ssfe-cards{--ssfe-top:90px;--ssfe-peek:16px;--ssfe-space:60px;position:relative}
.ssfe-card{position:sticky;top:calc(var(--ssfe-top) + var(--i) * var(--ssfe-peek));margin-bottom:var(--ssfe-space)}
.ssfe-card:last-child{margin-bottom:0}
.ssfe-card__inner{display:grid;grid-template-columns:1fr 1fr;min-height:420px;border-radius:24px;overflow:hidden;background:#141414;transform-origin:50% 0;will-change:scale}
.ssfe-card__body{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;padding:clamp(24px,4vw,56px)}
.ssfe-card__title{margin:0;color:#fff}
.ssfe-card__text{margin:0;color:#c9c9c9}
.ssfe-card__btn{display:inline-block;padding:12px 22px;border-radius:999px;background:#fff;color:#000;text-decoration:none;font-weight:600}
.ssfe-card__media{position:relative;min-height:220px}
.ssfe-card__img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover}
@media (max-width:767px){
  .ssfe-card__inner{grid-template-columns:1fr}
  .ssfe-card__media{order:-1}
}

/* ---------- text reveal ---------- */
.ssfe-tr__text{margin:0}
.ssfe-tr__text span{transition:opacity .15s linear}

/* ---------- marquee ---------- */
.ssfe-mq{overflow:hidden;white-space:nowrap;width:100%}
.ssfe-mq__track{display:inline-flex;will-change:transform}
.ssfe-mq__item{flex:0 0 auto;padding-right:40px;font-size:clamp(32px,7vw,96px);font-weight:700;line-height:1.1}
.ssfe-mq--outline .ssfe-mq__item{color:transparent;-webkit-text-stroke:1.5px currentColor}
.ssfe-mq--outline{color:inherit}
.ssfe-mq--outline .ssfe-mq__item{-webkit-text-fill-color:transparent;color:inherit}

/* ---------- progress bar ---------- */
.ssfe-pb{position:fixed;left:0;right:0;height:4px;z-index:99999;pointer-events:none}
.ssfe-pb--top{top:0}
.ssfe-pb--bottom{bottom:0}
body.admin-bar .ssfe-pb--top{top:32px}
@media (max-width:782px){body.admin-bar .ssfe-pb--top{top:46px}}
.ssfe-pb span{display:block;height:100%;width:100%;background:#0a84ff;transform:scaleX(0);transform-origin:0 50%}

/* ---------- expand media ---------- */
.ssfe-zoom{height:250vh}
.ssfe-zoom__media{position:absolute;inset:0;will-change:clip-path}
.ssfe-zoom__media img,.ssfe-zoom__media video{display:block;width:100%!important;height:100%!important;max-width:none;object-fit:cover}
.ssfe-zoom .ssfe__content{justify-content:center}

/* ---------- scroll video ---------- */
.ssfe-vid{height:400vh}
.ssfe-vid video{display:block;width:100%;height:100%;object-fit:cover}
