/* Performance Optimizations & Modern Styling */

/* Optimize paint operations */
.section {
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Optimize animations */
.fade-in-left,
.fade-in-right,
.fade-in-up {
  will-change: transform, opacity;
}

/* Enhanced loading states */
.loading-state {
  position: relative;
  overflow: hidden;
}

.loading-state::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  animation: loading-shimmer 1.5s infinite;
}

@keyframes loading-shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Modern card styling */
.service-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border-radius: 15px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.service-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

/* Enhanced button styling */
.btn-getstarted {
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}

.btn-getstarted::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
}

.btn-getstarted:hover::before {
  width: 300px;
  height: 300px;
}

/* Improved section transitions */
.section {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

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

/* Enhanced team cards */
.team-card {
  transition: all 0.3s ease;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.team-card:hover {
  transform: translateY(-5px);
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.team-card img {
  transition: transform 0.3s ease;
  border: none !important;
  box-shadow: none !important;
}

.team-card:hover img {
  transform: scale(1.05);
  border: none !important;
  box-shadow: none !important;
}

/* Stagger animation for multiple items */
.stagger-item {
  opacity: 0;
  transform: translateY(20px);
}

.stagger-item.aos-animate {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.6s cubic-bezier(0.17, 0.67, 0.83, 0.67);
}

/* Pulse animation for CTA buttons */
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(98, 86, 202, 0.4); }
  70% { box-shadow: 0 0 0 10px rgba(98, 86, 202, 0); }
  100% { box-shadow: 0 0 0 0 rgba(98, 86, 202, 0); }
}

.pulse-btn {
  animation: pulse 2s infinite;
}

/* Enhanced hover effects */
.enhanced-hover {
  transition: all 0.3s ease;
}

.enhanced-hover:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

/* Text reveal animation */
.text-reveal {
  opacity: 0;
  transform: translateY(20px);
  animation: revealText 0.8s ease forwards;
}

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

/* Floating animation */
@keyframes floating {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

.floating {
  animation: floating 3s ease-in-out infinite;
}

/* Scale in animation */
@keyframes scaleIn {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.scale-in {
  animation: scaleIn 0.6s ease forwards;
}
