html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; }
.glass { background: rgba(255,255,255,0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,0.3); }
.glass-dark { background: rgba(28,29,33,0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,0.08); }
.gradient-primary { background: linear-gradient(135deg, #C4E76D, #68B12E); }
.gradient-primary-hover:hover { background: linear-gradient(135deg, #b3d95a, #5a9e28); }
.gradient-hero { background: linear-gradient(135deg, #1C1D21 0%, #292E49 50%, #68B12E 100%); }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.scrollbar-hide::-webkit-scrollbar { display: none; }
.navbar-scrolled { background: rgba(255,255,255,0.95) !important; backdrop-filter: blur(16px) !important; box-shadow: 0 4px 20px rgba(196,231,109,0.15); }
.form-input { transition: all 0.2s; }
.form-input:focus { border-color: #C4E76D; box-shadow: 0 0 0 3px rgba(196,231,109,0.2); }
.hover-lift { transition: all 0.2s; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.1); }
.hover-glow:hover { box-shadow: 0 8px 25px rgba(196,231,109,0.3); }
.service-card { transition: all 0.3s; }
.service-card:hover { box-shadow: 0 12px 30px rgba(0,0,0,0.08); border-color: #C4E76D; transform: translateY(-2px); }
.mobile-menu-open { max-height: 500px !important; opacity: 1 !important; padding-top: 1rem !important; padding-bottom: 1rem !important; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-in-up { animation: fadeInUp 0.6s ease-out forwards; }
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.stat-item { transition: all 0.3s; }
.stat-item:hover { transform: translateY(-4px); }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.float { animation: float 4s ease-in-out infinite; }
.float-delay { animation: float 4s ease-in-out 2s infinite; }
.icon-trigger i { transition: all 0.5s ease; }
.icon-trigger:hover i { transform: rotateY(180deg); color: #fff; }
.carousel-track {
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  gap: 1.25rem;
}
.carousel-card { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); scroll-snap-align: start; }
.carousel-card.active {
  transform: scale(1.05);
  border-color: #C4E76D !important;
  box-shadow: 0 20px 60px rgba(196, 231, 109, 0.25) !important;
}
.map-canvas-container {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 500px;
  background: radial-gradient(circle at 50% 50%, #ffffff 0%, #edf2f7 100%);
}
.map-canvas-container canvas { display: block; outline: none; width: 100%; height: 100%; }
.map-overlay-label {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  cursor: pointer;
  user-select: none;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
  z-index: 10;
}
.map-overlay-label:hover {
  transform: translate(-50%, -50%) scale(1.08);
}
.map-overlay-label.active .label-badge {
  border-color: #68B12E !important;
  box-shadow: 0 10px 25px rgba(104, 177, 46, 0.22) !important;
  background: #1C1D21 !important;
  color: #fff !important;
}
.map-overlay-label.active .label-dot {
  background-color: #C4E76D !important;
  box-shadow: 0 0 8px #C4E76D;
}
.speech-bubble-arrow {
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: rgba(255, 255, 255, 0.96);
  border-right: 1px solid rgba(243, 244, 246, 1);
  border-bottom: 1px solid rgba(243, 244, 246, 1);
}
#map-details-card {
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.tab-card {
  transition: all 0.3s ease;
  cursor: pointer;
  border: 2px solid #e5e7eb;
  background: #f3f4f6;
}
.tab-card:hover {
  border-color: #C4E76D;
  background: #f9fafb;
}
.tab-card.active {
  background: #1C1D21;
  border-color: #C4E76D;
  box-shadow: 0 8px 30px rgba(196, 231, 109, 0.2);
}
.tab-card.active h3,
.tab-card.active p,
.tab-card.active span {
  color: #fff !important;
}
.tab-card.active .tab-icon {
  background: rgba(196, 231, 109, 0.15);
}
.feature-panel {
  display: none;
  opacity: 0;
}
.feature-panel.active {
  display: flex;
  flex-direction: column;
  gap: 0;
  animation: fadePanel 0.4s ease forwards;
}
@keyframes fadePanel {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.feature-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: #f9fafb;
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
  transition: all 0.2s ease;
}
.feature-item:hover {
  background: #f3f4f6;
}
.feature-item .feature-icon {
  width: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 2px;
}
.feature-list-scroll {
  width: 100%;
}