/* ═══════════════════════════════════════════
   GEOMBMAP — animations.css
   Animations SVG + Scroll effects
═══════════════════════════════════════════ */

/* ─── HERO ANIMATIONS ─── */
@keyframes float {
  0%,100%{transform:translateY(0px);}
  50%{transform:translateY(-12px);}
}
@keyframes pulse-ring {
  0%{transform:scale(1);opacity:.8;}
  100%{transform:scale(2.2);opacity:0;}
}
@keyframes dash {
  to{stroke-dashoffset:0;}
}
@keyframes fadeInUp {
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes fadeInLeft {
  from{opacity:0;transform:translateX(-30px);}
  to{opacity:1;transform:translateX(0);}
}
@keyframes fadeInRight {
  from{opacity:0;transform:translateX(30px);}
  to{opacity:1;transform:translateX(0);}
}
@keyframes scaleIn {
  from{opacity:0;transform:scale(0.85);}
  to{opacity:1;transform:scale(1);}
}
@keyframes spin-slow {
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
@keyframes blink {
  0%,100%{opacity:1;}50%{opacity:0.3;}
}
@keyframes draw-line {
  from{stroke-dashoffset:200;}
  to{stroke-dashoffset:0;}
}
@keyframes bounce-pin {
  0%,100%{transform:translateY(0);}
  30%{transform:translateY(-18px);}
  60%{transform:translateY(-8px);}
}
@keyframes grow-bar {
  from{height:0;y:100%;}
  to{}
}
@keyframes orbit {
  from{transform:rotate(0deg) translateX(55px) rotate(0deg);}
  to{transform:rotate(360deg) translateX(55px) rotate(-360deg);}
}
@keyframes shimmer {
  0%{opacity:.4;}50%{opacity:1;}100%{opacity:.4;}
}
@keyframes typing {
  0%,100%{width:0;}50%{width:100%;}
}
@keyframes counter-up {
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:translateY(0);}
}

/* ─── HERO SECTION ─── */
.hero-content{animation:fadeInLeft .8s ease both;}
.hero-image{animation:fadeInRight .8s .2s ease both;}
.hero-tagline{animation:fadeInUp .7s .1s ease both;}
.hero-title{animation:fadeInUp .7s .2s ease both;}
.hero-title span{
  background:linear-gradient(90deg,#f5c518,#ffd93d);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-btns-wrap{animation:fadeInUp .7s .4s ease both;}

/* ─── SVG ILLUSTRATIONS ─── */
.svg-illustration{
  width:100%;max-width:480px;
  animation:float 4s ease-in-out infinite;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,0.3));
}
.svg-illustration-services{
  width:100%;
  animation:scaleIn .6s ease both;
  transition:transform .3s ease;
}
.service-card:hover .svg-illustration-services{
  transform:scale(1.05);
}

/* ─── MAP PIN ─── */
.map-pin-pulse::before,.map-pin-pulse::after{
  content:'';position:absolute;
  width:20px;height:20px;border-radius:50%;
  background:rgba(232,51,42,0.4);
  top:50%;left:50%;transform:translate(-50%,-50%);
  animation:pulse-ring 2s ease-out infinite;
}
.map-pin-pulse::after{animation-delay:.6s;}

/* ─── WHY CARDS ─── */
.why-card{
  opacity:1;transform:none;
  transition:box-shadow .3s;
}
.why-card.visible{opacity:1;transform:translateY(0);}
.why-card:nth-child(1){transition-delay:.0s;}
.why-card:nth-child(2){transition-delay:.1s;}
.why-card:nth-child(3){transition-delay:.2s;}
.why-card:nth-child(4){transition-delay:.3s;}

/* ─── SERVICE CARDS ─── */
.service-card{
  opacity:0;transform:translateY(40px);
  transition:opacity .6s ease,transform .6s ease,box-shadow .3s;
}
.service-card.visible{opacity:1;transform:translateY(0);}
.service-card:nth-child(1){transition-delay:.0s;}
.service-card:nth-child(2){transition-delay:.15s;}
.service-card:nth-child(3){transition-delay:.3s;}

/* ─── PRICING CARDS ─── */
.pricing-card{
  opacity:0;transform:translateY(40px) scale(0.97);
  transition:opacity .6s ease,transform .6s ease,box-shadow .3s;
}
.pricing-card.visible{opacity:1;transform:translateY(0) scale(1);}
.pricing-card.featured.visible{transform:translateY(-6px) scale(1);}
.pricing-card:nth-child(1){transition-delay:.0s;}
.pricing-card:nth-child(2){transition-delay:.15s;}
.pricing-card:nth-child(3){transition-delay:.3s;}

/* ─── ABOUT / TESTIMONIAL ─── */
.about-img{
  opacity:0;transform:translateX(-40px);
  transition:opacity .8s ease,transform .8s ease;
}
.about-img.visible{opacity:1;transform:translateX(0);}
.about-content{
  opacity:1 !important;transform:none !important;
  visibility:visible !important;
}
.about-content.visible{opacity:1;transform:translateX(0);}
.testimonial-img{
  opacity:0;transform:translateX(-40px);
  transition:opacity .8s ease,transform .8s ease;
}
.testimonial-img.visible{opacity:1;transform:translateX(0);}
.testimonial-content{
  opacity:1 !important;transform:none !important;
  visibility:visible !important;
}
.testimonial-content.visible{opacity:1;transform:translateX(0);}

/* ─── CERT ITEMS ─── */
.cert-item{
  opacity:0;transform:translateY(20px) scale(0.95);
  transition:opacity .5s ease,transform .5s ease,border .2s,box-shadow .2s;
}
.cert-item.visible{opacity:1;transform:translateY(0) scale(1);}
.cert-item:nth-child(1){transition-delay:.0s;}
.cert-item:nth-child(2){transition-delay:.1s;}
.cert-item:nth-child(3){transition-delay:.2s;}
.cert-item:nth-child(4){transition-delay:.3s;}

/* ─── SECTION HEADERS ─── */
.section-header{
  opacity:1 !important;transform:none !important;
  visibility:visible !important;
}
.section-header.visible{opacity:1;transform:translateY(0);}

/* ─── COUNTER ANIMATION ─── */
.stat-number{
  display:inline-block;
  animation:counter-up .6s ease both;
}

/* ─── PROGRESS BARS ─── */
.progress-bar{
  height:4px;background:#e8e8e8;border-radius:2px;overflow:hidden;margin:8px 0;
}
.progress-fill{
  height:100%;background:var(--red);border-radius:2px;
  width:0;transition:width 1.5s ease;
}
.progress-fill.animate{width:var(--w);}

/* ─── FLOATING BADGES ─── */
.floating-badge{
  position:absolute;background:white;border-radius:12px;
  padding:10px 16px;box-shadow:0 8px 30px rgba(0,0,0,0.15);
  display:flex;align-items:center;gap:10px;
  animation:float 3s ease-in-out infinite;
  z-index:3;
}
.floating-badge-1{top:15%;right:-10%;animation-delay:0s;}
.floating-badge-2{bottom:20%;left:-5%;animation-delay:1.5s;}
.fb-icon{font-size:20px;}
.fb-text{font-size:12px;font-weight:700;color:#1a1a2e;font-family:'Montserrat',sans-serif;}
.fb-sub{font-size:10px;color:#999;}

/* ─── GRID PATTERN HERO ─── */
.hero-grid-pattern{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:50px 50px;
  pointer-events:none;
}

/* ─── GLOW EFFECTS ─── */
.hero-glow{
  position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;
}
.hero-glow-1{
  width:400px;height:400px;
  background:rgba(232,51,42,0.15);
  top:-100px;right:-100px;
  animation:shimmer 4s ease-in-out infinite;
}
.hero-glow-2{
  width:300px;height:300px;
  background:rgba(245,197,24,0.1);
  bottom:-50px;left:10%;
  animation:shimmer 5s 1s ease-in-out infinite;
}

/* ─── REDUCE MOTION ─── */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}