/* =========================================
   Dream Bharat Overseas Education
   Animations — Premium Redesign
   ========================================= */

/* =========================================
   Hero Entrance Animations
   ========================================= */
.hero-badge {
  animation: fadeInDown .7s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .1s;
}

.hero-title {
  animation: fadeInUp .8s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .25s;
}

.hero-subtitle {
  animation: fadeInUp .8s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .4s;
}

.hero-buttons {
  animation: fadeInUp .8s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .55s;
}

.hero-stats {
  animation: fadeInUp .7s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .7s;
}

.hero-visual {
  animation: fadeInRight .9s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .3s;
}

/* =========================================
   Keyframes
   ========================================= */
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-40px); }
  to   { opacity: 1; transform: translateX(0); }
}

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

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

@keyframes float {
  0%,100% { transform: translate(-50%,-50%) translateY(0); }
  50%     { transform: translate(-50%,-50%) translateY(-14px); }
}

@keyframes float-card {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-8px); }
}

@keyframes pulse-green {
  0%,100% { box-shadow: 0 4px 20px rgba(37,211,102,.4); }
  50%     { box-shadow: 0 4px 32px rgba(37,211,102,.7), 0 0 0 12px rgba(37,211,102,.1); }
}

@keyframes pulse-red {
  0%,100% { box-shadow: 0 4px 14px rgba(139,26,26,.4); }
  50%     { box-shadow: 0 4px 24px rgba(139,26,26,.7), 0 0 0 10px rgba(139,26,26,.1); }
}

@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

@keyframes gradientShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes fillBar {
  from { width: 0; }
  to   { width: var(--target-width, 100%); }
}

@keyframes notificationBounce {
  0%,100% { transform: translateX(0); }
  25%     { transform: translateX(-4px); }
  75%     { transform: translateX(4px); }
}

/* =========================================
   Stats strip counter entrance
   ========================================= */
.stats-strip-item:nth-child(1) .stats-strip-number { animation: scaleIn .6s .1s both; }
.stats-strip-item:nth-child(2) .stats-strip-number { animation: scaleIn .6s .2s both; }
.stats-strip-item:nth-child(3) .stats-strip-number { animation: scaleIn .6s .3s both; }
.stats-strip-item:nth-child(4) .stats-strip-number { animation: scaleIn .6s .4s both; }

/* =========================================
   Hover micro-interactions
   ========================================= */
.btn-gold:active,
.btn-primary:active { transform: translateY(0) scale(.98); }

.service-card, .country-card, .university-card,
.testimonial-card, .blog-card { will-change: transform; }

/* =========================================
   Scroll reveal
   ========================================= */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .65s cubic-bezier(.4,0,.2,1),
              transform .65s cubic-bezier(.4,0,.2,1);
}

.reveal.visible      { opacity: 1; transform: translateY(0); }

.reveal-left         { transform: translateX(-28px); }
.reveal-right        { transform: translateX(28px); }
.reveal-left.visible,
.reveal-right.visible { transform: translateX(0); }

.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }
.reveal-delay-5 { transition-delay: .5s; }
.reveal-delay-6 { transition-delay: .6s; }
