@import url('https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap');

/* Serif Editorial Font */
.font-serif-editorial {
  font-family: Georgia, Cambria, "Times New Roman", Times, serif;
}

/* Base Article Reading Rules - Mobile & Readability First */
.article-content p {
  font-size: 18px;
  line-height: 1.75;
  margin-bottom: 1.5rem;
  color: #334155; /* slate-700 */
}

/* Spacing utility for cleaner pacing */
.section-spacing {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}

/* Pulse Animation for Submit Button */
@keyframes pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.7); /* green-600 */
  }
  70% {
    transform: scale(1.02);
    box-shadow: 0 0 0 10px rgba(22, 163, 74, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(22, 163, 74, 0);
  }
}
.btn-pulse {
  animation: pulse 1.8s infinite ease-in-out;
}

/* Shake Animation for Comment Textarea validation */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-6px); }
  75% { transform: translateX(6px); }
}
.shake-element {
  animation: shake 0.2s ease-in-out 2;
  border-color: #EF4444 !important;
}

/* Fade transitions for quiz steps */
.step-content {
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}
.fade-out {
  opacity: 0;
  transform: translateY(-5px);
}
.fade-in {
  opacity: 1;
  transform: translateY(0);
}

/* FAQ Accordion Transitions */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease-in-out;
}
.faq-answer.active {
  max-height: 300px;
}
.faq-icon {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-icon.active {
  transform: rotate(180deg);
}

/* Sticky Mobile Bottom CTA Bar */
.sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #0F172A; /* dark navy */
  box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.15);
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  z-index: 50;
  display: none;
}

@media (max-width: 767px) {
  .sticky-cta {
    display: block;
  }
  /* Reserve bottom space so content is not cut off behind CTA */
  body {
    padding-bottom: 84px;
  }
}
