@charset "UTF-8";

.Faq {
  margin: 32px auto 120px auto;
  max-width: 800px;
  padding: 0 20px 0 20px;
}

.Faq_Title {
  font: 500 var(--font-size-xl) / 1 var(--font-family-sans);
  margin: 0 auto 72px auto;
  text-align: center;
  width: fit-content;
}

.Faq_Title span {
  font-size: .7em;
}

.Faq_Category {
  margin: 0 0 60px 0;
}

.Faq_CategoryName {
  font: 400 var(--font-size-l) / 1.5 var(--font-family-sans);
  margin: 0 0 .5rem 0;
}

.Faq_QuestionList {
  margin: 0 0 1rem 0;
  padding: 0;
}

.Faq_QuestionItem {
  margin: 0 auto 16px auto;
  max-width: 800px;
}

.Faq_Input {
  opacity: 0;
  position: absolute;
}

.Faq_Input:focus-visible {
  outline: none;
}

.Faq_Label {
  display: flex;
  z-index: 5; /* Faq_Inputの上に要素をかぶせ、クリック不可にする */
}

.Faq_Input:focus-visible ~ .Faq_Label {
  outline: 2px solid var(--color-black);
}

.Faq_Question {
  background-color: #fff;
  border: 2px solid #ffd966;
  border-right: none;
  font: 400 var(--font-size-m) / 1.5 var(--font-family-sans);
  margin: 0 0 0 0;
  padding: 10px 10px 10px 10px;
  width: 100%;
}

.Faq_Question.Question-Yellow {
  border-color: #ffd966;
}
.Faq_Question.Question-Blue {
  border-color: #8faadc;
}
.Faq_Question.Question-Green {
  border-color: #a9d18e;
}

.Faq_Button {
  align-items: center;
  background-color: var(--color-gray);
  cursor: pointer;
  display: flex;
  justify-content: center;
  margin: 0;
  width: 48px;
}

.Faq_ButtonSign {
  background-color: var(--color-white);
  border-radius: 2px;
  height: 3px;
  margin: 0;
  position: relative;
  width: 15px;
}

.Faq_ButtonSign:last-child {
  position: absolute;
  transform: rotate(90deg);
  transition: ease .75s;
}

.Faq_Input:checked ~ .Faq_Label > .Faq_Button > .Faq_ButtonSign:last-child {
  transform: rotate(180deg);
}

.Faq_AnswerBox {
  background-color: #fff;
  border: 2px solid var(--color-gray);
  border-top: none;
  height: 0;
  opacity: 0;
  overflow: hidden;
  padding: 0 20px;
  position: relative;
  transition: ease .75s;
  z-index: 0;
}

.Faq_Input:checked ~ .Faq_AnswerBox {
  height: auto;
  opacity: 1;
  padding: 20px 20px;
}

.Faq_Answer {
  font: 300 var(--font-size-s) / 1.5 var(--font-family-sans);
  font-feature-settings: "palt";
  letter-spacing: .08em;
  margin: 0;
}

@media screen and (min-width: 768px) {
  .Faq_Title {
    font-size: 40px;
  }

  .Faq_Question {
    font-size: 19.2px;
    padding: 10px 0 10px 16px;

  }

  .Faq_Button {
    width: 52.8px;
  }

  .Faq_Answer {
    font-size: var(--font-size-m);
  }

  .Faq_AnswerBox {
    padding: 0 32px;
  }

  .Faq_Input:checked ~ .Faq_AnswerBox {
    padding: 32px 32px;
  }
}