/* Section Container */
.faq-section {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-50);
}

/* Section Headline */
.faq-section h2 {
  font-family: var(--font-heading), serif;
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-900);
  text-align: center;
  margin-bottom: var(--spacing-12);
  line-height: var(--line-height-tight);
}

/* Section Subheadline */
.faq-section__subheadline {
  font-family: var(--font-body), sans-serif;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-normal);
  color: var(--color-neutral-600);
  margin-bottom: var(--spacing-12);
  line-height: var(--line-height-snug);
}

/* FAQ Accordion Wrapper */
.faq-section__accordion {
  margin-top: 0;
}

/* FAQ Item (details element) */
.faq-section__item {
  background-color: var(--color-neutral-white);
  border: var(--border-width-default) solid var(--color-neutral-300);
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-4);
  overflow: hidden;
  transition: box-shadow var(--transition-normal);
}

.faq-section__item:last-child {
  margin-bottom: 0;
}

.faq-section__item:hover {
  box-shadow: var(--shadow-sm);
}

/* FAQ Question (summary element) */
.faq-section__question {
  padding: var(--spacing-6);
  font-family: var(--font-body), sans-serif;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-700);
  cursor: pointer;
  list-style: none;
  user-select: none;
  line-height: var(--line-height-snug);
  transition: color var(--transition-normal);
  position: relative;
}

/* Remove default browser marker */
.faq-section__question::-webkit-details-marker {
  display: none;
}

.faq-section__question::marker {
  display: none;
}

/* Hover state */
.faq-section__question:hover {
  color: var(--color-primary-500);
}

/* Focus state for accessibility */
.faq-section__question:focus {
  outline: 2px solid var(--color-primary-500);
  outline-offset: 2px;
}

/* FAQ Answer */
.faq-section__answer {
  padding: 0 var(--spacing-6) var(--spacing-6) var(--spacing-6);
  animation: fadeInAnswer var(--duration-300) var(--timing-in-out);
}

.faq-section__answer p {
  font-family: var(--font-body), sans-serif;
  font-size: var(--font-size-base);
  color: var(--color-neutral-700);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

/* Fade-in animation for answer reveal */
@keyframes fadeInAnswer {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Expand/Collapse Indicator */
.faq-section__question::after {
  content: '+';
  float: right;
  font-family: var(--font-body), sans-serif;
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-500);
  line-height: 1;
  margin-left: var(--spacing-4);
}

/* Change icon when expanded */
.faq-section__item[open] .faq-section__question::after {
  content: '−';
}

/* Hover state - icon inherits question color transition */
.faq-section__item:hover .faq-section__question::after {
  /* Color inherited from .faq-section__question:hover */
}

/* Responsive Adjustments - Mobile First */

/* Mobile (< 768px) */
@media (max-width: 767px) {
  .faq-section {
    padding: var(--spacing-12) 0;
  }

  .faq-section h2 {
    font-size: var(--font-size-3xl);
    margin-bottom: var(--spacing-8);
  }

  .faq-section__subheadline {
    font-size: var(--font-size-base);
    margin-bottom: var(--spacing-8);
  }

  .faq-section__question {
    font-size: var(--font-size-lg);
    padding: var(--spacing-5);
  }

  .faq-section__answer {
    padding: 0 var(--spacing-5) var(--spacing-5) var(--spacing-5);
  }

  .faq-section__answer p {
    font-size: var(--font-size-sm);
  }
}

/* Desktop (≥ 1024px) */
@media (min-width: 1024px) {
  .faq-section__item {
    margin-bottom: var(--spacing-6);
  }
}
