/* ═══════════════════════════════════════════════════════════
   FAQ Accordions
   ═══════════════════════════════════════════════════════════ */

.faq-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  margin-block: var(--space-3);
  overflow: hidden;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.faq-item:hover {
  border-color: var(--color-border);
  box-shadow: var(--shadow-sm);
}

.faq-item[open] {
  border-color: var(--color-primary-light);
  box-shadow: var(--shadow-sm);
}

.faq-question {
  cursor: pointer;
  position: relative;
  padding: var(--space-4) var(--space-10) var(--space-4) var(--space-5);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-dark);
  display: block;
  user-select: none;
  transition: background-color var(--transition-fast);
  line-height: var(--line-height-snug);
}

.faq-question:hover {
  background: var(--color-primary-bg);
}

.faq-question::after {
  content: '+';
  position: absolute;
  right: var(--space-5);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-normal);
  color: var(--color-accent);
  line-height: 1;
}

.faq-item[open] .faq-question::after {
  content: '−';
}

.faq-answer {
  padding: var(--space-4) var(--space-5);
  border-top: 1px solid var(--color-border-light);
  color: var(--color-text-muted);
  line-height: var(--line-height-relaxed);
  background: var(--color-bg);
}

.faq-answer p {
  margin: 0;
}

.faq-answer p + p {
  margin-top: var(--space-3);
}

/* Keep inline code compact inside accordion copy. */
.faq-question code,
.faq-answer code {
  font-size: 0.82em;
  padding: 0.02em 0.22em;
  border-radius: 0.2em;
  white-space: normal;
}

