@charset "UTF-8";

:root {
  --faq-divider-h: clamp(40px, 8vw, 110px);
}

/* パンくず背景透過 */
.breadcrumbs {
  background: transparent;
}

.faq-page__banner {
  position: relative;
  overflow: visible;
  padding: 0;
  padding-bottom: calc(var(--faq-divider-h) + 40px);
}

.faq-page__banner .breadcrumbs {
  padding: 15px 50px;
  text-align: left;
}

.faq-page__banner .page-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 55px 20px 0;
  text-align: center;
}

/* 波形境界（ABOUTページと共通仕様） */
.section-divider {
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 100vw;
  height: var(--faq-divider-h);
  line-height: 0;
  pointer-events: none;
  z-index: 3;
  transform: translateX(-50%);
}

.section-divider svg {
  display: block;
  width: 100%;
  height: 100%;
}

.section-divider--to-white path {
  fill: var(--c_white);
}

.section-divider--to-sub path {
  fill: var(--c_sub);
}

.faq-page__intro {
  padding-top: 90px;
}

.faq-page__intro .lead-block {
  padding: 0;
}

.faq-page__intro .lead-block__text {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.faq-page__category {
  padding-top: 60px;
  padding-bottom: 60px;
}

.faq-page__category .content-block__title {
  margin-bottom: 30px;
}

.faq-page__category .content-block__title,
.faq-page__terms .content-block__title {
  padding-left: 0;
  border-left: 0;
  text-align: center;
}

.faq-list {
  display: grid;
  gap: 20px;
}

.faq-list__item {
  border: 1px solid var(--c_gray);
  border-radius: 12px;
  padding: 30px 35px;
  background: var(--c_white);
}

.faq-list__question {
  position: relative;
  padding-left: 2em;
  color: var(--c_black);
  font-size: 16px;
  font-weight: bold;
  line-height: 1.7;
}

.faq-list__question::before {
  content: "Q";
  position: absolute;
  left: 0;
  top: -0.05em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  background: var(--c_main);
  color: var(--c_accent);
  font-family: Georgia, serif;
  font-size: 0.9em;
}

.faq-list__answer {
  position: relative;
  margin-top: 15px;
  padding-left: 2em;
  padding-top: 15px;
  border-top: 1px solid var(--c_light-gray);
  color: var(--c_dark-gray);
  font-size: 14px;
  line-height: 2;
}

.faq-list__answer::before {
  content: "A";
  position: absolute;
  left: 0;
  top: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  background: var(--c_accent);
  color: var(--c_white);
  font-family: Georgia, serif;
  font-size: 0.9em;
}

.faq-page__terms {
  padding-top: 60px;
  padding-bottom: 80px;
}

.faq-page__terms-lead {
  max-width: 720px;
  margin: 0 auto 40px;
  color: var(--c_dark-gray);
  line-height: 2;
  text-align: center;
}

.faq-page__terms-block {
  max-width: 720px;
  margin: 0 auto;
}

.faq-page__terms-block + .faq-page__terms-block {
  margin-top: 35px;
}

.faq-page__terms-block h3 {
  margin-bottom: 12px;
}

.faq-page__terms-block p {
  color: var(--c_dark-gray);
  font-size: 14px;
  line-height: 2;
}

.faq-page__terms > .text-footnote {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 40px;
}

/* SP */
@media screen and (max-width: 767px) {
  :root {
    --faq-divider-h: clamp(30px, 12vw, 70px);
  }

  .faq-page__banner {
    padding-bottom: calc(var(--faq-divider-h) + 25px);
  }

  .faq-page__banner .page-heading {
    padding-top: 40px;
  }

  .faq-page__intro {
    padding-top: 60px;
  }

  .faq-page__intro .lead-block__text {
    max-width: 400px;
    text-align: left;
  }

  .faq-page__category {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .faq-list__item {
    padding: 22px 20px;
  }

  .faq-page__terms {
    padding-top: 40px;
    padding-bottom: 50px;
  }

  .faq-page__terms-lead {
    text-align: left;
  }
}
