.faq-section { margin-bottom: 52px; }
.faq-section__title {
  font-size: 36px; font-weight: 700; color: var(--text);
  letter-spacing: -0.01em;
  padding-bottom: 14px; border-bottom: 2px solid var(--text);
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .faq-section__title { font-size: 24px; }
}

.faq-list { list-style: none; display: flex; flex-direction: column; gap: 16px; }
.faq-item {
  border: 1px solid var(--gray-200); border-radius: 16px; overflow: hidden;
  background: var(--white); box-shadow: 0 1px 4px rgba(0, 40, 80, 0.08);
  padding: 8px 24px;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.faq-item:hover { border-color: var(--blue-vivid); box-shadow: 0 4px 16px rgba(10,112,227,0.10); }
.faq-question {
  display: flex; align-items: center; gap: 16px;
  padding: 20px 24px; cursor: pointer;
  font-size: 18px; font-weight: 500; color: var(--text);
  transition: color var(--transition);
}
.faq-question:hover { color: var(--blue); }
.faq-question a { color: inherit; text-decoration: none; }
.faq-question span { font-weight: 700; font-size: 18px; }
.faq-q-mark, .faq-a-mark {
  width: 32px; flex-shrink: 0;
  display: inline-flex; align-items: flex-start; justify-content: flex-start;
  color: var(--text); font-size: 22px; font-weight: 400;
}
.faq-chevron { margin-left: auto; color: var(--gray-400); font-size: 10px; transition: transform var(--transition); }
.faq-question.active .faq-chevron { transform: rotate(180deg); }
.faq-answer { display: none; padding: 0 24px 20px 24px; font-size: 18px; color: var(--text); line-height: 1.85; }
.faq-answer a { color: var(--blue); text-decoration: underline; }
.faq-answer a:hover { color: var(--blue-dark); }
.faq-answer.open {
  display: flex; align-items: center; gap: 16px;
  border-top: 1px solid var(--gray-100); margin: 0 24px; padding: 16px 0 20px;
}

@media (max-width: 768px) {
  .faq-question { font-size: 12px; }
  .faq-question span { font-size: 12px !important; }
  .faq-answer { font-size: 12px !important; }
}
