/* ── SCROLL REVEAL ── */
.reveal {
  opacity:0; transform:translateY(32px);
  transition:opacity .7s cubic-bezier(0.4,0,0.2,1), transform .7s cubic-bezier(0.4,0,0.2,1);
}
.reveal.reveal-left  { transform:translateX(-32px); }
.reveal.reveal-right { transform:translateX(32px); }
.reveal.reveal-scale { transform:scale(.95); }
.reveal.in {
  opacity:1; transform:translateY(0) translateX(0) scale(1);
}
.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; }

/* ── HERO ANIMATIONS ── */
@keyframes heroFadeUp  { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} }
@keyframes heroFadeIn  { from{opacity:0} to{opacity:1} }
@keyframes floatY      { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
@keyframes shimmer     { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes rotateGlow  { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes pulse-ring  {
  0%  { transform:scale(.8); opacity:.8; }
  70% { transform:scale(1.3); opacity:0; }
  100%{ transform:scale(1.3); opacity:0; }
}
@keyframes counterUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideInRight { from{opacity:0;transform:translateX(60px)} to{opacity:1;transform:translateX(0)} }
@keyframes glowPulse { 0%,100%{box-shadow:0 0 0 0 rgba(201,162,39,.4)} 50%{box-shadow:0 0 0 16px rgba(201,162,39,0)} }

.anim-hero-title   { animation:heroFadeUp  .9s cubic-bezier(.22,1,.36,1) both; }
.anim-hero-sub     { animation:heroFadeUp  .9s cubic-bezier(.22,1,.36,1) .15s both; }
.anim-hero-actions { animation:heroFadeUp  .9s cubic-bezier(.22,1,.36,1) .3s both; }
.anim-fade-in      { animation:heroFadeIn  .8s ease both; }
.anim-float        { animation:floatY 4s ease-in-out infinite; }

/* ── STAT COUNTER ── */
.stat-number { display:inline-block; }
.stat-number.counting { animation:counterUp .6s ease both; }

/* ── GEOMETRIC HERO BG ── */
.hero-geo {
  position:absolute; inset:0; overflow:hidden; pointer-events:none;
}
.hero-geo-circle {
  position:absolute; border-radius:50%;
  border:1px solid rgba(201,162,39,.15);
}
.geo-c1 { width:500px; height:500px; top:-100px; right:-80px; }
.geo-c2 { width:300px; height:300px; bottom:40px; right:200px; border-color:rgba(15,109,77,.2); }
.geo-c3 { width:200px; height:200px; top:30%; left:5%; border-color:rgba(255,255,255,.06); }

.hero-geo-line {
  position:absolute; background:linear-gradient(90deg, transparent, rgba(201,162,39,.2), transparent);
  height:1px; width:60%; top:40%; left:20%;
  animation:shimmer 4s linear infinite;
  background-size:200% 100%;
}

/* ── CARD HOVER ── */
.service-card { transition:all .35s cubic-bezier(0.4,0,0.2,1); }
.service-card:hover .service-card-icon { transform:scale(1.1) rotate(-5deg); }
.service-card-icon { transition:transform .35s ease; }

/* ── PROCESS TIMELINE ── */
.process-line {
  position:absolute; top:50%; left:0; right:0;
  height:2px; background:var(--bone); transform:translateY(-50%);
}
.process-line-fill {
  height:100%; background:linear-gradient(90deg,var(--gold),var(--emerald));
  width:0; transition:width 1.5s cubic-bezier(0.4,0,0.2,1);
}
.process-line-fill.in { width:100%; }

/* ── TESTIMONIALS ── */
.testimonial-card { transition:all .3s ease; }
.testimonial-card.active { transform:scale(1.02); }

/* ── PROGRESS BARS ── */
.progress-bar {
  height:4px; background:var(--bone); border-radius:2px; overflow:hidden;
}
.progress-fill {
  height:100%; background:linear-gradient(90deg,var(--gold),var(--emerald));
  width:0; transition:width 1.2s cubic-bezier(0.4,0,0.2,1) .3s;
}
.progress-fill.in { width:var(--target-width,80%); }

/* ── GOLD LINE DECORATOR ── */
.gold-line {
  width:60px; height:3px;
  background:linear-gradient(90deg,var(--gold),var(--emerald));
  border-radius:2px; margin:20px 0;
}
.gold-line.centered { margin:20px auto; }

/* ── MARQUEE STRIP ── */
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee-track { animation:marquee 28s linear infinite; display:flex; }
.marquee-track:hover { animation-play-state:paused; }

/* ── GLOW BUTTON ── */
.btn-glow { animation:glowPulse 2s ease-in-out infinite; }

/* ── TYPEWRITER ── */
.typewriter-text::after {
  content:'|'; animation:heroFadeIn .6s step-end infinite alternate;
  color:var(--gold);
}

/* ── REDUCED MOTION ── */
@media(prefers-reduced-motion:reduce){
  *, *::before, *::after {
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  .reveal { opacity:1; transform:none; }
}
