/* ===== S M Enterprises - animations & effects (add-on) ===== */
@keyframes up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes pg{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.14)}}
@keyframes bar{from{width:0}to{width:100%}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(242,147,10,.6)}70%{box-shadow:0 0 0 16px rgba(242,147,10,0)}100%{box-shadow:0 0 0 0 rgba(242,147,10,0)}}
@keyframes ring{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.7);opacity:0}}
@keyframes gm{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(22px)}}

/* page change */
.page.on{animation:pg .5s ease both}

/* header */
header{transition:box-shadow .3s}header.scrolled{box-shadow:0 8px 26px rgba(0,0,0,.10)}
.logoimg{transition:transform .35s}.logo:hover .logoimg{transform:scale(1.05)}
nav a{position:relative;transition:background .25s,color .25s}
nav a:not(.on)::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--orange);transform:scaleX(0);transition:transform .3s}
nav a:hover::after{transform:scaleX(1)}
#sp{position:fixed;top:0;left:0;height:3px;width:0;background:var(--orange);z-index:90;transition:width .1s linear}

/* hero */
.hs.on .slot{animation:kb 9s ease-out both}
.hs.on h1{animation:up .8s .15s both}
.hs.on p{animation:up .8s .3s both}
.hs.on .row{animation:up .8s .45s both}
.hs.on .row .btn:not(.alt){animation:pulse 2.4s 1.5s infinite}
.hs.on::after{content:"";position:absolute;left:0;bottom:0;height:4px;background:var(--orange);z-index:5;animation:bar 5.5s linear both}
.arr{transition:background .25s,transform .25s}.arr:hover{background:var(--orange);transform:translateY(-50%) scale(1.12)}
.dots i{transition:transform .25s,background .25s}.dots i.on{transform:scale(1.4)}

/* breadcrumb banner text */
.page.on .crumb h1{animation:up .7s .1s both}
.page.on .crumb .ov>div{animation:up .7s .3s both}

/* scroll reveal (classes added by animations.js) */
.rv{opacity:0;transform:translateY(30px);transition:opacity .7s ease var(--d,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.rv.rl{transform:translateX(-56px)}.rv.rr{transform:translateX(56px)}.rv.rs{transform:translateX(-22px)}
.rv.in{opacity:1;transform:none}
.hl::after{content:"";display:block;width:0;height:4px;background:var(--orange);border-radius:3px;margin-top:8px;transition:width .8s .25s ease}
.hl.ul::after{width:56px}

/* cards */
.card{transition:transform .35s,box-shadow .35s}
.card:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(39,100,111,.18)}
.card .slot,.sc .slot{transition:transform .7s ease}
.card:hover .slot,.sc .in:hover .slot{transform:scale(1.08)}
.sv{padding:12px 0}
.sc .in{transition:transform .35s,box-shadow .35s}.sc .in:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(39,100,111,.18)}
.sc a{display:inline-block;transition:transform .25s}.sc a:hover{transform:translateX(5px)}
.split .slot{transition:transform .5s,box-shadow .5s}.split .slot:hover{transform:translateY(-5px);box-shadow:0 22px 46px rgba(39,100,111,.28)}
.steps li{transition:transform .25s,background .25s}.steps li:hover{transform:translateY(-3px) scale(1.04);background:var(--teal2)}
.cf-ic{transition:transform .3s}.cf-list li:hover .cf-ic{transform:scale(1.12) rotate(-6deg)}

/* buttons: shine + lift */
.btn{position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,filter .25s}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .65s}
.btn:hover::after{left:140%}
.btn:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.18)}
.cf-card .btn{transition:transform .25s,box-shadow .25s,filter .25s}

/* call-to-action blocks */
.cta{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--teal),var(--teal2),var(--teal));background-size:200% 200%;animation:gm 9s ease infinite}
.cta>*{position:relative}
.cta::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(242,147,10,.22);right:-60px;top:-90px;animation:float 7s ease-in-out infinite}

/* footer links */
footer .grid a{transition:color .2s,padding-left .25s}footer .grid a:hover{padding-left:8px}

/* floating buttons (WhatsApp + back to top) */
.fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:80;display:flex;flex-direction:column;gap:12px;align-items:center}
.fab a,.fab button{position:relative;width:54px;height:54px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.25);transition:transform .25s}
.fab a:hover,.fab button:hover{transform:scale(1.1)}
.fab .wa{background:#25d366}.fab .wa::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25d366;z-index:-1;animation:ring 2.2s ease-out infinite}
.fab .top{width:44px;height:44px;background:var(--teal);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s,visibility .3s}
.fab .top.show{opacity:1;visibility:visible;transform:none}
.fab svg{width:30px;height:30px}.fab .wa svg{fill:#fff}.fab .top svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:860px){.rv.rl,.rv.rr{transform:translateY(30px)}.rv.in{transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1!important;transform:none!important}}