:root {
  --background: 210, 20%, 98%;
  --foreground: 215, 25%, 15%;
  --card: 0, 0%, 100%;
  --card-foreground: 215, 25%, 15%;
  --primary: 192, 60%, 45%;
  --primary-foreground: 0, 0%, 100%;
  --secondary: 210, 20%, 96%;
  --secondary-foreground: 215, 25%, 15%;
  --muted: 210, 15%, 94%;
  --muted-foreground: 215, 12%, 50%;
  --accent: 192, 60%, 95%;
  --accent-foreground: 192, 60%, 30%;
  --border: 214, 20%, 90%;
  --hero-bg: 210, 20%, 96%;
  --section-alt: 210, 15%, 97%;
  --stat-bg: 191.8,61%,52.7%;
  --stat-foreground: 0, 0%, 100%;
  --radius: 0.75rem;
}

[data-theme="dark"] {
  --background: 220, 20%, 8%;
  --foreground: 210, 20%, 92%;
  --card: 220, 18%, 12%;
  --card-foreground: 210, 20%, 92%;
  --primary: 192, 60%, 50%;
  --primary-foreground: 0, 0%, 100%;
  --secondary: 220, 15%, 16%;
  --secondary-foreground: 210, 20%, 92%;
  --muted: 220, 15%, 18%;
  --muted-foreground: 215, 12%, 60%;
  --accent: 192, 50%, 15%;
  --accent-foreground: 192, 62%, 60%;
  --border: 220, 15%, 20%;
  --hero-bg: 220, 20%, 10%;
  --section-alt: 220, 18%, 10%;
  --stat-bg: 191.8,61%,52.7%;
  --stat-foreground: 0, 0%, 100%;
}

body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  transition: background-color 0.3s, color 0.3s;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .font-heading {
  font-family: 'Space Grotesk', sans-serif;
}

a {
  text-decoration: none;
  color: inherit;
}

/* Theme Utilities */
.bg-background { background-color: hsl(var(--background)); }
.bg-card { background-color: hsl(var(--card)); }
.bg-primary { background-color: hsl(var(--primary)) !important; }
.bg-secondary { background-color: hsl(var(--secondary)) !important; }
.bg-accent { background-color: hsl(var(--accent)); }
.bg-hero-bg { background-color: hsl(var(--hero-bg)); }
.bg-section-alt { background-color: hsl(var(--section-alt)); }
.bg-stat-bg { background-color: hsl(var(--stat-bg)); }

.text-foreground { color: hsl(var(--foreground)); }
.text-primary { color: hsl(var(--primary)); }
.text-primary-foreground { color: hsl(var(--primary-foreground)); }
.text-muted-foreground { color: hsl(var(--muted-foreground)); }
.text-accent-foreground { color: hsl(var(--accent-foreground)); }
.text-stat-foreground { color: hsl(var(--stat-foreground)); }

.border-theme { border-color: hsl(var(--border)) !important; }

/* Gradients */
.text-gradient {
  background: linear-gradient(to right, hsl(var(--primary)), #3db3d0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Specific component styles */
.section-padding {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .section-padding {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

.tracking-widest { letter-spacing: 0.1em; }
.leading-relaxed { line-height: 1.625; }
.leading-tight { line-height: 1.2; }

.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }

.hover-bg-accent:hover { background-color: hsl(var(--accent)); }
.hover-bg-secondary:hover { background-color: hsl(var(--secondary)); }

.feature-card {
  border: 1px solid hsl(var(--border));
  transition: all 0.3s;
}
.feature-card:hover {
  border-color: rgba(38, 165, 153, 0.4);
  box-shadow: 0 10px 15px -3px rgba(38, 165, 153, 0.05), 0 4px 6px -4px rgba(38, 165, 153, 0.05);
}
.feature-icon-wrapper {
  background-color: hsl(var(--accent));
  color: hsl(var(--accent-foreground));
  transition: all 0.3s;
}
.feature-card:hover .feature-icon-wrapper {
  background-color: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}

.hover-opacity-90:hover { opacity: 0.9; }

.drop-shadow-2xl {
  filter: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));
}

.sticky-top-navbar {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background-color: rgba(255, 255, 255, 0.8);
  border-bottom: 1px solid hsl(var(--border));
}

[data-theme="dark"] .sticky-top-navbar {
  background-color: rgba(16, 20, 29, 0.8);
}

.mobile-menu {
  display: none;
}

/* Animations */
.fade-up-enter {
  opacity: 0;
  transform: translateY(20px);
}
.fade-up-enter-active {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-left-enter {
  opacity: 0;
  transform: translateX(-30px);
}
.fade-left-enter-active {
  opacity: 1;
  transform: translateX(0);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-right-enter {
  opacity: 0;
  transform: translateX(30px);
}
.fade-right-enter-active {
  opacity: 1;
  transform: translateX(0);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.zoom-in-enter {
  opacity: 0;
  transform: scale(0.8);
}
.zoom-in-enter-active {
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Swiper Styling */
.swiper-pagination-bullet {
  background-color: hsl(var(--muted-foreground));
  opacity: 0.5;
  transition: all 0.3s ease;
}
.swiper-pagination-bullet-active {
  background-color: hsl(var(--primary));
  opacity: 1;
  transform: scale(1.2);
}
.testimonial-card {
  transition: all 0.3s ease;
}
.testimonial-card:hover {
  border-color: rgba(38, 165, 153, 0.4) !important;
  box-shadow: 0 10px 15px -3px rgba(38, 165, 153, 0.05), 0 4px 6px -4px rgba(38, 165, 153, 0.05);
}
