/* ─────────────────────────────────────────
   Animations — scroll reveals, load-in, hovers, counters
───────────────────────────────────────── */

/* ══════════════════════════════════════
   KEYFRAMES
══════════════════════════════════════ */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: none; }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: none; }
}


/* ══════════════════════════════════════
   PAGE-LOAD HERO ANIMATIONS
   (play immediately, no JS needed)
══════════════════════════════════════ */
.load-1 {
  animation: fadeInUp 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.load-2 {
  animation: fadeInUp 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}
.load-3 {
  animation: fadeInUp 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.24s both;
}
.load-4 {
  animation: fadeIn 0.9s ease 0.38s both;
}


/* ══════════════════════════════════════
   SCROLL REVEAL — base (hidden state)
══════════════════════════════════════ */
.reveal {
  opacity: 0;
  transition:
    opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-up    { transform: translateY(32px); }
.reveal-left  { transform: translateX(-36px); }
.reveal-right { transform: translateX(36px); }
.reveal-scale { transform: scale(0.94); }

/* Stagger delays */
.d1 { transition-delay: 0.06s; }
.d2 { transition-delay: 0.14s; }
.d3 { transition-delay: 0.22s; }
.d4 { transition-delay: 0.30s; }

/* Revealed state (added by JS) */
.reveal.in-view {
  opacity: 1;
  transform: none;
}


/* ══════════════════════════════════════
   ENHANCED HOVER EFFECTS
══════════════════════════════════════ */

/* Cards lift on hover */
.service-card {
  transition: background 0.2s, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease;
}
.service-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.07);
}

.why-card {
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease;
}
.why-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.07);
}

.value-card {
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease;
}
.value-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.07);
}

/* Buttons — universal lift & motion */
.hero-b__btn,
.hero-b__link,
.cta__btn,
.form-submit,
.about-story__btn,
.gallery-load-more__btn,
.projects__all,
.filter-pill {
  transition:
    opacity      0.22s ease,
    transform    0.22s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow   0.22s ease,
    background   0.22s ease,
    color        0.22s ease,
    border-color 0.22s ease;
}

.hero-b__btn:hover,
.hero-b__link:hover,
.cta__btn:hover,
.form-submit:hover,
.about-story__btn:hover,
.gallery-load-more__btn:hover,
.projects__all:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14);
}

/* Nav links underline slide */
.nav__link {
  position: relative;
}
.nav__link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1.5px;
  background: var(--c-primary);
  transition: width 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav__link:hover::after,
.nav__link--active::after {
  width: 100%;
}

/* Gallery bento item hover */
.bento__item {
  transition: opacity 0.32s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
.bento__item:hover {
  transform: scale(1.015);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
  z-index: 1;
}


/* ══════════════════════════════════════
   REDUCED MOTION FALLBACK
══════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .load-1, .load-2, .load-3, .load-4 {
    animation: none;
  }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .service-card:hover,
  .why-card:hover,
  .value-card:hover,
  .bento__item:hover,
  .hero-b__btn:hover,
  .hero-b__link:hover,
  .cta__btn:hover,
  .form-submit:hover,
  .about-story__btn:hover,
  .gallery-load-more__btn:hover,
  .projects__all:hover {
    transform: none;
    box-shadow: none;
  }
}
