@charset "utf-8";

/* ==========================================================================
   FAQ Accordion (Pure CSS)
   ========================================================================== */

.faq__list {
  margin: 0 auto;
}

.faq__item {
  border-bottom: 1px dotted #ccc;
  padding: 20px 0;
}

/* チェックボックスを隠す */
.faq__checkbox {
  display: none;
}

/* 質問エリアをラベルとして使用 */
.faq__question-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  position: relative;
}

.faq__question-text {
  display: flex;
  align-items: baseline;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  margin: 0;
  padding-right: 40px;
}

.faq__question-text span {
  font-size: 2rem;
  margin-right: 15px;
  line-height: 1;
}

/* プラス・マイナスアイコン */
.faq__icon {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
}

.faq__icon::before,
.faq__icon::after {
  content: "";
  position: absolute;
  background-color: #e60012; /* 赤色 */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease-in-out;
}

/* 横棒 */
.faq__icon::before {
  width: 100%;
  height: 2px;
}

/* 縦棒 (閉じている時のみ表示) */
.faq__icon::after {
  width: 2px;
  height: 100%;
}

/* 開いている時のアイコン変化 */
.faq__checkbox:checked + .faq__question-label .faq__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

/* 回答エリア */
.faq__answer {
  overflow: hidden;
  max-height: 0;
  transition:
    max-height 0.3s ease-in-out,
    padding 0.3s ease-in-out;
}

/* チェック時に回答を表示 */
.faq__checkbox:checked ~ .faq__answer {
  max-height: 1000px; /* 十分な高さを指定 */
  padding-top: 20px;
}

.faq__answer-text {
  display: flex;
  align-items: baseline;
  margin: 0;
  line-height: 1.8;
}

.faq__answer-text span {
  color: #e60012;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2rem;
  margin-right: 15px;
  line-height: 1;
}

