/* BEN – motion layer. Brand colours only: green #006A4E, red #F42A41, gold #C9A14A / #F5D27A, white.
   Subtle, luxurious and fully disabled for users who prefer reduced motion. */
@keyframes mFadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes mFadeIn{from{opacity:0}to{opacity:1}}
@keyframes mZoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes mSlideL{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:none}}
@keyframes mShine{0%{transform:translateX(-120%) skewX(-18deg)}60%,100%{transform:translateX(220%) skewX(-18deg)}}
@keyframes mGoldFlow{0%{background-position:0 0}100%{background-position:200% 0}}
@keyframes mPulseRing{0%{box-shadow:0 0 0 0 rgba(244,42,65,.45)}70%{box-shadow:0 0 0 14px rgba(244,42,65,0)}100%{box-shadow:0 0 0 0 rgba(244,42,65,0)}}
@keyframes mFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes mGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes mSpinSlow{to{transform:rotate(360deg)}}

/* ---- hero entrance (staggered) ---- */
#heroBadge,#heroBrand,#heroStrap,#heroSub,#heroChips,#heroCta1,#heroCta2,#heroLinks,#heroTag{animation:mFadeUp .9s cubic-bezier(.2,.7,.2,1) both}
#heroBadge{animation-delay:.05s}#heroBrand{animation-delay:.15s}#heroStrap{animation-delay:.3s}#heroSub{animation-delay:.42s}#heroChips{animation-delay:.52s}#heroCta1{animation-delay:.62s}#heroCta2{animation-delay:.7s}#heroLinks{animation-delay:.8s}#heroTag{animation-delay:.9s}
#heroVisual{animation:mZoom 1.1s .25s cubic-bezier(.2,.7,.2,1) both;transition:transform .25s ease-out;will-change:transform}
.orbit-ring{animation-duration:60s}
.hb-bar i{transform-origin:left;animation:mGrow .9s .6s cubic-bezier(.2,.7,.2,1) both}.hb-bar i:nth-child(2){animation-delay:.8s}.hb-bar i:nth-child(3){animation-delay:1s}

/* ---- flag bars glow with a gold flow ---- */
.hero::after,.goals::before{background-size:200% 100%}
#flagbar{position:relative;overflow:hidden}
#flagbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,#F5D27A,#fff,#F5D27A,transparent);background-size:200% 100%;animation:mGoldFlow 5s linear infinite}

/* ---- scroll reveal for everything that is not already .reveal ---- */
.m-pre{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*70ms)}
.m-pre.m-l{transform:translateX(-28px)}.m-pre.m-z{transform:scale(.95)}
.m-pre.m-in{opacity:1;transform:none}
/* section headings: gold underline grows */
.section h2{position:relative}
.section .eyebrow{transition:letter-spacing .8s ease}.section .eyebrow.m-in{letter-spacing:.16em}
.m-uline{position:relative}.m-uline::after{content:"";display:block;height:3px;width:84px;margin-top:10px;border-radius:3px;background:linear-gradient(90deg,#F42A41 0 45%,#C9A14A 45%);transform:scaleX(0);transform-origin:left;transition:transform .9s .2s cubic-bezier(.2,.7,.2,1)}
.m-uline.m-in::after{transform:scaleX(1)}

/* ---- cards: lift, gold edge, glass light ---- */
.card,.goal,.pf,.step,.demo-feat,.bp-mc,.bp-cc,.bp-eqc,.dv,.pin{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.card{position:relative}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(245,210,122,.22),transparent 60%);opacity:0;transition:opacity .35s}
.card:hover::after{opacity:1}
.card:hover,.pf:hover,.step:hover,.demo-feat:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(0,56,42,.2),0 0 0 1px rgba(201,161,74,.55)}
.card .ico{transition:transform .5s cubic-bezier(.2,.7,.2,1),background .3s}
.card:hover .ico{transform:rotate(-6deg) scale(1.1)}
.more-l{position:relative}.more-l::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:currentColor;transition:width .35s}.card:hover .more-l::after,.more-l:hover::after{width:100%}

/* ---- buttons: shimmer sweep + pulse on primary red ---- */
.btn,button.btn,a.btn{position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.btn::before{content:"";position:absolute;top:0;left:0;width:45%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-120%) skewX(-18deg);pointer-events:none}
.btn:hover::before{animation:mShine .9s ease}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
#heroCta1,.btn-red.m-pulse{animation:mFadeUp .9s .62s both,mPulseRing 2.6s 2s infinite}

/* ---- orbit buttons gentle idle motion is kept (floaty); WhatsApp bubble breathes ---- */
.wa,.whatsapp,#waBtn{animation:mFloat 3.2s ease-in-out infinite}

/* ---- modal pop ---- */
.wm-bg{animation:mFadeIn .25s both}.wm{animation:mZoom .35s cubic-bezier(.2,.7,.2,1) both}
.tx-steps li,.wm .tx-chip{animation:mSlideL .5s both}.tx-steps li:nth-child(2){animation-delay:.06s}.tx-steps li:nth-child(3){animation-delay:.12s}.tx-steps li:nth-child(4){animation-delay:.18s}.tx-steps li:nth-child(5){animation-delay:.24s}.tx-steps li:nth-child(6){animation-delay:.3s}

/* ---- platform (software) motion ---- */
body.v-anim .view>*{animation:mFadeUp .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--vi,0)*55ms)}
.kpi{transition:transform .3s,box-shadow .3s}.kpi:hover{transform:translateY(-4px)}
.menu a{transition:background .25s,padding-left .25s,color .25s}.menu a:hover{padding-left:22px}
.toast{animation:mSlideL .35s both}
.sw,.side{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.progress,.bar-fill,.prog i{transition:width 1s cubic-bezier(.2,.7,.2,1)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .m-pre{opacity:1;transform:none}
}
@media print{.m-pre{opacity:1!important;transform:none!important}}
