* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --bg-primary: #FFFBF8;
  --bg-secondary: #6A4760;
  --bg-tertiary: #F9F9F9;
  --text-secondary: #F9614D;
  --button-color: #31C5D9;
}

.font-josefin-sans {
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.font-playfair-display {
  font-family: "Playfair Display", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.font-cormorant-garamond {
  font-family: "Cormorant Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.font-allura-regular {
  font-family: "Allura", cursive;
  font-weight: 400;
  font-style: normal;
}

.font-familjen-grotesk {
  font-family: 'Familjen Grotesk', sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

/* Button Style */
.button {
  position: relative;
  display: inline-block;
  padding: 0.5rem 2rem;
  color: #FFFFFF;
  font-weight: 500;
  border-radius: 10rem;
  transition: all 0.3s;
  overflow: hidden;
  z-index: 1;
}

.button:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--button-color);
  border-radius: 10rem;
  z-index: -2;
}

.button:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background-color: #2496a5;
  transition: all 0.3s;
  border-radius: 10rem;
  z-index: -1;
}

.button:hover:before {
  width: 100%;
}

/* Mobile Menu */
.menu-open {
  overflow: hidden;
}

.menu-open #mobile-menu {
  visibility: visible;
}

.menu-open #menu-overlay {
  opacity: 1;
}

.menu-open #menu-content {
  transform: translateX(0);
}

/* Scroll Animation Styles */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: all 1s ease-out;
  will-change: opacity, transform
}

.fade-in.active {
  opacity: 1;
  transform: translateY(0);
}

/* Hide scrollbar for testimonials */
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}

/* Disable Modal Background Scroll */
.no-scroll {
  overflow: hidden;
}

/* Fade Up Animate */
.animate-fade-in-up {
  animation: fadeInUp 1s ease-out forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Wave Animation */
.animate-wave {
  animation: wave 1.2s ease-in-out infinite;
}

.wave-delay-200 {
  animation-delay: 0.1s;
}

.wave-delay-400 {
  animation-delay: 0.2s;
}

@keyframes wave {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-6px);
  }
}

/* Slow Spin Animation */
.animate-slow-spin {
  animation: slow-spin 20s linear infinite;
}

.animate-slow-spin:hover {
  animation-play-state: paused;
}

@keyframes slow-spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

/* World Map Animate */
.animate-map-rotate {
  animation: slide-rotate 60s linear infinite;
  display: flex;
  width: 200%;
}

@keyframes slide-rotate {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(0);
  }
}

.animated-gradient {
  background-size: 200% auto;
  animation: gradient-animation 3s ease-in-out infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

/* Partners Marquee Animation */
.animate-marquee {
  display: flex;
  animation: marquee 30s linear infinite;
}

.marquee-container:hover .animate-marquee {
  animation-play-state: paused;
}

@keyframes marquee {
  0% {
    transform: translateX(0%);
  }

  100% {
    transform: translateX(-100%);
  }
}