
/* APEKSHA — Premium Motion & Interaction Layer (20 subtle effects, no glow) */
html{scroll-behavior:smooth}
body{overflow-x:hidden}
/* 01. Opening loader */
.site-loader{position:fixed;inset:0;background:#fff;z-index:9999;display:grid;place-items:center;transition:opacity .65s ease,visibility .65s ease}.site-loader.is-done{opacity:0;visibility:hidden}.loader-inner{text-align:center}.loader-mark{width:62px;height:62px;border-radius:18px;background:#a9161b;color:#fff;display:grid;place-items:center;font:800 27px/1 'Plus Jakarta Sans',sans-serif;margin:auto;animation:loaderMark .9s ease both}.loader-line{width:110px;height:3px;background:#ece9e2;margin:18px auto 0;overflow:hidden}.loader-line i{display:block;height:100%;width:35%;background:#a9161b;animation:loaderLine 1.1s ease-in-out infinite}
/* 02. Scroll progress */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:#a9161b;z-index:10001;transition:width .08s linear}
/* 03. Page entrance */
body.page-ready main,body.page-ready .footer{animation:pageEnter .65s ease both}
/* 04. Hero image Ken Burns */
.hero-media img{animation:heroKenBurns 12s ease-in-out infinite alternate;transform-origin:center}
/* 05. Staggered reveal */
.reveal.visible{animation:revealIn .7s cubic-bezier(.2,.75,.25,1) both}
.stagger-item{opacity:0;transform:translateY(18px)}.stagger-item.is-visible{animation:staggerIn .65s cubic-bezier(.2,.75,.25,1) both}
/* 06. Image hover zoom */
.card img,.gallery img{transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease}.card:hover img,.gallery figure:hover img{transform:scale(1.045)}
/* 07. Card lift */
.card{transition:transform .35s cubic-bezier(.2,.75,.2,1),box-shadow .35s ease,border-color .35s ease}.card:hover{transform:translateY(-8px);border-color:#d8cfc2}
/* 08. Subtle 3D tilt */
.js-tilt{transform-style:preserve-3d;will-change:transform}.js-tilt>*{transform:translateZ(10px)}
/* 09. Button press / lift */
.btn{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.btn:hover{transform:translateY(-3px)}.btn:active{transform:translateY(0) scale(.98)}
/* 10. Navigation active marker */
.navlinks a:after{transition:width .3s cubic-bezier(.2,.7,.2,1)}
/* 11. Underline sweep */
.footer a,.text-link{position:relative;text-decoration:none}.footer a:after,.text-link:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:#d8c18f;transition:width .3s ease}.footer a:hover:after,.text-link:hover:after{width:100%}
/* 12. Country card image caption slide */
.country-body{transition:padding-left .3s ease}.country:hover .country-body{padding-left:24px}
/* 13. Filter focus motion */
.field select,.field input,.field textarea{transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.field select:focus,.field input:focus,.field textarea:focus{border-color:#a9161b;transform:translateY(-1px);box-shadow:0 5px 0 #a9161b12}
/* 14. WhatsApp gentle pulse */
.whatsapp{animation:waPulse 3s ease-in-out infinite}.whatsapp:hover{animation-play-state:paused;transform:translateY(-4px)}
/* 15. Section divider reveal */
.section-head:after{content:"";display:block;width:0;height:2px;background:#d8c18f;margin-top:18px;transition:width .8s ease}.section-head.is-visible:after{width:58px}
/* 16. Number/stat count visual */
.stat strong{transition:transform .35s ease,color .35s ease}.stat:hover strong{transform:translateX(4px);color:#111214}
/* 17. Timeline/feature slide */
.timeline-item,.service-list a{transition:transform .3s ease,border-color .3s ease}.timeline-item:hover{transform:translateX(6px);border-color:#d8c18f}.service-list a:hover{transform:translateX(6px)}
/* 18. Gallery frame */
.gallery figure{transition:transform .35s ease,box-shadow .35s ease}.gallery figure:hover{transform:translateY(-5px);box-shadow:0 14px 32px #11121414}
/* 19. CTA entrance */
.cta{position:relative;overflow:hidden}.cta:before{content:"";position:absolute;left:-20%;bottom:0;width:40%;height:1px;background:#d8c18f;transition:transform 1s ease}.cta.is-visible:before{transform:translateX(350%)}
/* 20. Back-to-top control */
.back-top{position:fixed;right:22px;bottom:96px;width:42px;height:42px;border:1px solid #d9d5cd;border-radius:50%;background:#fff;color:#111214;display:grid;place-items:center;z-index:90;opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s ease;cursor:pointer;font-weight:800}.back-top.show{opacity:1;visibility:visible;transform:none}.back-top:hover{background:#111214;color:#fff;border-color:#111214}
/* Additional micro-interactions */
.pill{transition:transform .25s ease,background .25s ease,border-color .25s ease}.pill:hover{transform:translateY(-2px);background:#fff;border-color:#d8c18f}
.iconbox{transition:transform .3s ease,background .3s ease}.card:hover .iconbox{transform:rotate(-4deg) scale(1.05);background:#111214;color:#fff}
@keyframes loaderMark{0%{opacity:0;transform:scale(.82) translateY(10px)}100%{opacity:1;transform:none}}
@keyframes loaderLine{0%{transform:translateX(-120%)}50%{transform:translateX(180%)}100%{transform:translateX(300%)}}
@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@keyframes heroKenBurns{0%{transform:scale(1)}100%{transform:scale(1.045)}}
@keyframes revealIn{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
@keyframes staggerIn{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:none}}
@keyframes waPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@media(max-width:900px){.back-top{right:16px;bottom:92px}.hero-media img{animation-duration:16s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-loader,.reveal.visible,.stagger-item.is-visible,.hero-media img,.whatsapp{animation:none!important;transition:none!important}.back-top{transition:none}.js-tilt{transform:none!important}}
