/* =========================================
   REVEAL ANIMATIONS
   ========================================= */
.reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s var(--ease-out); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.08s; }
.reveal-d2 { transition-delay: 0.16s; }
.reveal-d3 { transition-delay: 0.24s; }
.reveal-d4 { transition-delay: 0.32s; }
.reveal-d5 { transition-delay: 0.4s; }
.reveal-d6 { transition-delay: 0.48s; }

/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 1100px) {
  .hero-content { grid-template-columns: 1fr; gap: 60px; }
  .hero-visual { display: none; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .cases-grid { grid-template-columns: 1fr; }
  .approach-grid { grid-template-columns: 1fr; gap: 60px; }
  .approach-visual { display: none; }
  .partners-groups { grid-template-columns: 1fr; }
  .countries { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 780px) {
  :root { --section-py: 80px; }
  .container { padding: 0 20px; }
  .nav-links { display: none; position: absolute; top: 100%; left: 0; right: 0; background: white; flex-direction: column; padding: 20px; gap: 0; box-shadow: var(--shadow-lg); border-top: 1px solid var(--pd-border); }
  .nav-links.open { display: flex; }
  .nav-links li { width: 100%; }
  .nav-links a { display: block; padding: 14px 16px; width: 100%; }
  .nav-cta .btn { display: none; }
  .nav-cta .hamburger { display: flex; }
  .services-grid { grid-template-columns: 1fr; }
  .hero-stats { grid-template-columns: 1fr 1fr; gap: 20px; }
  .cta-box { padding: 56px 28px; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .hero { padding: 120px 0 60px; }
  .hero-cta { flex-direction: column; align-items: stretch; }
  .hero-cta .btn { width: 100%; }
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .partners-group { padding: 32px 24px; }
  .country-card { padding: 32px 24px; }
}
