html {
  scroll-behavior: smooth;
}

.turbo-progress-bar {
  height: 5px;
  background-color: #000;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 40;
}

/* FAQ Accordion styles */
.faq-accordion-item {
  transition: all 0.3s ease-in-out;
}

.faq-accordion-item.open {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.faq-accordion-content {
  transition: max-height 0.3s ease-in-out;
  overflow: hidden;
}

.faq-accordion-icon {
  transition: transform 0.3s ease-in-out;
}

/* Embla Carousel styles */
.embla {
  --slide-spacing: 0;
  --slide-size: 100%;
  overflow: hidden !important;
  width: 100%;
  height: 100%;
}

.embla__container {
  display: flex;
  height: 100%;
}

.embla__slide {
  flex: 0 0 var(--slide-size);
  width: 100%;
  height: 100%;
}

.embla::after {
  display: none;
}

@media (max-width: 1024px) {
  .embla {
    --slide-size: 100%;
  }
}

@media (max-width: 768px) {
  .embla {
    --slide-size: 100%;
  }
}

@media (max-width: 480px) {
  .embla {
    --slide-size: 100%;
  }
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }
  50% {
    transform: translateY(0);
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

.animate-bounce {
  animation: bounce 1.5s infinite;
}

@keyframes pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: .9;
    transform: scale(1.05);
  }
}

.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes hardPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: .9;
    transform: scale(1.15);
  }
}

.animate-hard-pulse {
  animation: hardPulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

