/* ===== Smooth Scroll ===== */
html {
  scroll-behavior: smooth;
}

/* ===== Scroll Animation ===== */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== FAQ Accordion ===== */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
}

.faq-answer.open {
  max-height: 500px;
}

.faq-toggle .faq-icon {
  transition: transform 0.3s ease;
}

.faq-toggle.active .faq-icon {
  transform: rotate(45deg);
}

/* ===== Mobile Menu ===== */
.mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.mobile-menu.open {
  max-height: 400px;
}

/* ===== Sticky Nav ===== */
.nav-scrolled {
  background-color: rgba(255, 255, 255, 0.97) !important;
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.08);
}

/* ===== Focus States ===== */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid #F59E0B;
  outline-offset: 2px;
}

/* ===== Placeholder Visual Shimmer ===== */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.placeholder-shimmer {
  background: linear-gradient(90deg, transparent 25%, rgba(255,255,255,0.08) 50%, transparent 75%);
  background-size: 200% 100%;
  animation: shimmer 3s infinite;
}
