/* FAQ 折りたたみスタイル（軽量）*/
.faq-item .q {
  cursor: pointer;
  padding: 8px 28px 8px 0;
  display: block;
  font-weight: 600;
  position: relative
}

.faq-item .q:focus {
  outline: 2px solid #6fa8dc
}

/* + の位置（デスクトップをデフォルトにする）
                  - デスクトップ/タブレット等の非スマホ表示をデフォルトとする
                  - スマホのみ下のメディアクエリで上書きする */
.faq-item .q::after {
  content: '+';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 800;
  font-size: 18px;
  color: #222
}

.faq-item.open .q::after {
  content: '-';
  color: #222
}

/* スマホ向け（幅が小さい端末）では従来の狭めの余白に戻す */
@media (max-width: 767px) {
  .faq-item .q {
    padding: 8px 28px 8px 0
  }

  .faq-item .q::after {
    right: 12px;
    font-size: inherit;
    color: initial;
    font-weight: 700
  }
}

.faq-item .a {
  overflow: hidden;
  max-height: 0;
  transition: max-height .25s ease;
  padding: 0;
  margin: 0
}

.faq-item .a p {
  margin: 0;
  padding: 8px 0
}

.faq-item.open .a {
  /* JSでscrollHeightを設定するためのフォールバック */
  max-height: 1000px
}