@import url("https://fonts.googleapis.com/css2?family=Work+Sans:wght@400;500;600;700&display=swap");

/* ===============================
   ROYAL COLOR SYSTEM
================================ */
:root {
  --cth-forest: #142C14;
  --cth-olive:  #2D5B28;
  --cth-green:  #537B2F;
  --cth-moss:   #8DA750;
  --cth-ivory:  #F7F8F1;
  --cth-gold:   #C9B26B;
}

/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Work Sans", sans-serif;
}

body {
  background: linear-gradient(180deg, var(--cth-moss), #E4EB8F);
}

/* Section */
.cth-faq-section {
  padding: 90px 20px;
}

/* Container */
.cth-faq-container {
  max-width: 900px;
  margin: auto;
  background: var(--cth-ivory);
  border-radius: 26px;
  padding: 48px;
  box-shadow:
    0 40px 120px rgba(20,44,20,0.35),
    inset 0 0 0 1px rgba(83,123,47,0.35);
}

/* Header */
.cth-faq-header {
  text-align: center;
  margin-bottom: 30px;
}

.cth-faq-header h2 {
  font-size: 36px;
  color: var(--cth-forest);
}

.cth-faq-header p {
  margin-top: 10px;
  color: var(--cth-olive);
}

/* ===============================
   GOLD DIVIDER (MORPH TARGET)
================================ */
.gold-divider {
  height: 2px;
  width: 40%;
  margin: 30px auto 40px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--cth-gold),
    transparent
  );
  border-radius: 2px;
  transition:
    width 0.6s ease,
    opacity 0.6s ease;
  opacity: 0.4;
}

/* FAQ Item */
.cth-faq-item {
  border-bottom: 1px solid rgba(83,123,47,0.25);
}

/* Question */
.cth-question {
  width: 100%;
  background: none;
  border: none;
  padding: 22px 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--cth-forest);
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  position: relative;
}

/* Gold underline */
.cth-question::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 6px;
  width: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--cth-gold),
    transparent
  );
  transition: width 0.35s ease;
}

@media (hover:hover) {
  .cth-question:hover::after {
    width: 100%;
  }
}

/* Icon */
.icon {
  font-size: 26px;
  color: var(--cth-green);
  transition: transform 0.3s ease, color 0.3s ease;
}

/* Answer */
.cth-answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-6px);
  transition:
    max-height 0.35s ease,
    opacity 0.3s ease,
    transform 0.3s ease;
}

.cth-answer p {
  padding-bottom: 20px;
  color: #3F5634;
  line-height: 1.7;
}

/* Active */
.cth-faq-item.active .cth-answer {
  max-height: 260px;
  opacity: 1;
  transform: translateY(0);
}

.cth-faq-item.active .icon {
  transform: rotate(45deg);
  color: var(--cth-gold);
}

/* Entrance animation */
.cth-animate {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.cth-animate.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 768px) {
  .cth-faq-container {
    padding: 32px 24px;
  }
  .cth-faq-header h2 {
    font-size: 28px;
  }
}
