/* BTP Survey Group - Animations v2.0 */

@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes fadeInUp { from{opacity:0;transform:translateY(50px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeInLeft { from{opacity:0;transform:translateX(-60px)} to{opacity:1;transform:translateX(0)} }
@keyframes fadeInRight { from{opacity:0;transform:translateX(60px)} to{opacity:1;transform:translateX(0)} }
@keyframes scaleIn { from{opacity:0;transform:scale(.85)} to{opacity:1;transform:scale(1)} }
@keyframes shake { 0%,100%{transform:translateX(0)} 10%,30%,50%,70%,90%{transform:translateX(-4px)} 20%,40%,60%,80%{transform:translateX(4px)} }

/* Scroll reveal */
.fade-in { opacity:0; }
.fade-in.active { animation:fadeIn .8s ease forwards; }

.fade-up { opacity:0; transform:translateY(50px); }
.fade-up.active { animation:fadeInUp .8s cubic-bezier(.34,1.56,.64,1) forwards; }

.fade-left { opacity:0; transform:translateX(-60px); }
.fade-left.active { animation:fadeInLeft .8s cubic-bezier(.34,1.56,.64,1) forwards; }

.fade-right { opacity:0; transform:translateX(60px); }
.fade-right.active { animation:fadeInRight .8s cubic-bezier(.34,1.56,.64,1) forwards; }

.scale-in { opacity:0; transform:scale(.85); }
.scale-in.active { animation:scaleIn .7s cubic-bezier(.68,-.55,.265,1.55) forwards; }

/* Stagger */
.stagger-item { opacity:0; transform:translateY(40px); }
.stagger-item.active { animation:fadeInUp .7s cubic-bezier(.34,1.56,.64,1) forwards; }
.stagger-item:nth-child(1) { animation-delay:.08s }
.stagger-item:nth-child(2) { animation-delay:.16s }
.stagger-item:nth-child(3) { animation-delay:.24s }
.stagger-item:nth-child(4) { animation-delay:.32s }
.stagger-item:nth-child(5) { animation-delay:.40s }
.stagger-item:nth-child(6) { animation-delay:.48s }

/* Hovers */
.hover-lift { transition:all .4s cubic-bezier(.4,0,.2,1); }
.hover-lift:hover { transform:translateY(-12px) scale(1.02); box-shadow:0 25px 80px rgba(0,0,0,.22); }

.hover-zoom-img { overflow:hidden; border-radius:16px; }
.hover-zoom-img img { transition:transform .6s cubic-bezier(.4,0,.2,1); }
.hover-zoom-img:hover img { transform:scale(1.12); }

/* Gallery */
.gallery-item { position:relative; overflow:hidden; border-radius:16px; cursor:pointer; transition:all .4s cubic-bezier(.4,0,.2,1); }
.gallery-item:hover { transform:scale(1.02); box-shadow:0 20px 60px rgba(0,0,0,.25); }
.gallery-item:hover img { transform:scale(1.15); filter:brightness(.8); }
.gallery-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(45,95,63,.9),rgba(30,91,140,.9)); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .4s ease; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay h3 { color:white; font-size:1.4rem; text-align:center; padding:2rem; }
.gallery-overlay h3 small { font-size:.9rem; font-weight:400; opacity:.85; }

/* Testimonials */
.testimonial-card { transition:all .4s cubic-bezier(.68,-.55,.265,1.55); }
.testimonial-card:hover { transform:scale(1.03) translateY(-8px); box-shadow:0 25px 80px rgba(0,0,0,.18); }

/* Counter */
.counter { font-family:var(--font-heading); transition:all .3s ease; }

/* Text gradient */
.text-gradient { background:linear-gradient(135deg,var(--primary-green),var(--accent-teal)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

/* Scroll progress */
.scroll-progress { position:fixed; top:0; left:0; height:3px; background:linear-gradient(90deg,var(--primary-green),var(--accent-teal)); z-index:10001; transform-origin:left; transform:scaleX(0); }

/* Reduced motion */
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Mobile: lighter animations */
@media (max-width:768px) {
    .hover-lift:hover { transform:translateY(-6px); }
    .hover-zoom-img:hover img { transform:scale(1.06); }
    .fade-up.active,.fade-left.active,.fade-right.active { animation-duration:.5s; }
}
