@charset "UTF-8";
/* common
---------------------------------------------------------------------------- */
.m-mv-child::before {
  background-image: url("/assets/images/faq/bg_mv_pc.webp");
}

@media screen and (max-width: 767px) {
  .m-mv-child::before {
    background-image: url("/assets/images/faq/bg_mv_sp.webp");
  }
}
/* リッチテキスト スタイル
---------------------------------------------------------------------------- */
.m-single-content p {
  font-size: 2rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.m-single-content p.large {
  font-size: 2.2rem;
}
.m-single-content p.small {
  font-size: 1.8rem;
}
.m-single-content ul, .m-single-content ol {
  font-size: 2rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .p-faq-accordion-content p {
    font-size: 4vw;
    line-height: 1.3;
  }
  .p-faq-accordion-content p.large {
    font-size: 4.2666666667vw;
  }
  .p-faq-accordion-content p.small {
    font-size: 3.4666666667vw;
  }
  .p-faq-accordion-content ul, .p-faq-accordion-content ol {
    font-size: 4vw;
    line-height: 1.3;
  }
}
/* p-faq
---------------------------------------------------------------------------- */
.p-faq {
  padding-block: 6.5rem 9.5rem;
}

.p-faq-panel {
  display: none;
}

.p-faq-tab-buttons {
  display: grid;
  grid-template-columns: repeat(3, 20rem);
}
.p-faq-tab-buttons._bottom {
  justify-content: flex-end;
}

.p-faq-tab-button {
  height: 5rem;
  border: 1px solid currentColor;
  overflow: hidden;
}

.p-faq-tab-button._top {
  border-bottom: none;
}

.p-faq-tab-button._bottom {
  border-top: none;
}

.p-faq-tab-button:not(:first-child) {
  border-left: none;
}

.p-faq-tab-button:first-child {
  border-radius: 1rem 0 0 0;
}

.p-faq-tab-button._bottom:first-child {
  border-radius: 0 0 0 1rem;
}

.p-faq-tab-button:last-child {
  border-radius: 0 1rem 0 0;
}

.p-faq-tab-button._bottom:last-child {
  border-radius: 0 0 1rem 0;
}

.p-faq-tab-btn {
  width: 100%;
  height: 100%;
  background-color: #f2f4f7;
  font-size: 2rem;
  line-height: 1.25;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  align-content: center;
  transition: background-color 0.3s ease 0s, color 0.3s ease 0s;
}
.p-faq-tab-btn._tokyo {
  color: #0061A8;
}
.p-faq-tab-btn._nagoya {
  color: #00664E;
}
.p-faq-tab-btn.is-current {
  background-color: #09237d;
  color: #fff;
}
.p-faq-tab-btn.is-current._tokyo {
  background-color: #0061A8;
}
.p-faq-tab-btn.is-current._nagoya {
  background-color: #00664E;
}
@media (any-hover: hover) {
  .p-faq-tab-btn:hover {
    background-color: #09237d;
    color: #fff;
  }
  .p-faq-tab-btn:hover._tokyo {
    background-color: #0061A8;
    color: #fff;
  }
  .p-faq-tab-btn:hover._nagoya {
    background-color: #00664E;
    color: #fff;
  }
}

.p-faq-panels {
  padding-block: 5.5rem 7rem;
  padding-inline: 5rem;
  border: 1px solid #000;
  border-radius: 0 1rem 0 1rem;
  background-color: #fff;
}

.p-faq-panel-ttl {
  font-size: 3rem;
  line-height: 1.2666666667;
  letter-spacing: 0.1em;
  font-weight: 700;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid currentColor;
}
.p-faq-panel-ttl._tokyo {
  color: #0061A8;
}
.p-faq-panel-ttl._nagoya {
  color: #00664E;
}

.p-faq-accordion {
  width: 100%;
  max-width: 105rem;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin-top: 5rem;
}

.p-faq-accordion-item {
  transition: padding-bottom 0.3s ease 0s;
}

.p-faq-accordion-item.open {
  padding-bottom: 1rem;
}

.p-faq-accordion-item.open .p-faq-accordion-content {
  transform: translateY(1rem);
}

.p-faq-accordion-title {
  width: 100%;
  padding-inline: 4.5rem 7rem;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #09237d;
  align-content: center;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.p-faq-accordion-title::before {
  content: "Q.";
  position: absolute;
  top: 0;
  left: 0;
  line-height: 1.7;
  color: currentColor;
}

.p-faq-accordion-title.open .p-faq-accordion-icon::after {
  transform: translateY(-50%) rotate(0deg);
}

.p-faq-accordion-icon {
  display: block;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3.625rem;
  aspect-ratio: 1;
  border: 1px solid #000;
  border-radius: 50%;
}

.p-faq-accordion-icon::before,
.p-faq-accordion-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50%;
  width: 1.45rem;
  height: 1px;
  background-color: #000;
  transition: transform 0.3s ease 0s;
}

.p-faq-accordion-icon::before {
  transform: translateY(-50%);
}

.p-faq-accordion-icon::after {
  transform: translateY(-50%) rotate(90deg);
}

.p-faq-accordion-content {
  display: none;
  padding-block: 3rem;
  padding-inline: 3.5rem;
  border-radius: 1rem;
  background-color: #f2f4f7;
  transition: transform 0.3s ease 0s;
}

@media screen and (max-width: 767px) {
  .p-faq {
    padding-block: 10.6666666667vw 16vw;
  }
  .p-faq-tab-buttons {
    grid-template-columns: repeat(3, 1fr);
  }
  .p-faq-tab-button {
    height: 8vw;
  }
  .p-faq-tab-button:first-child {
    border-radius: 1.3333333333vw 0 0 0;
  }
  .p-faq-tab-button._bottom:first-child {
    border-radius: 0 0 0 1.3333333333vw;
  }
  .p-faq-tab-button:last-child {
    border-radius: 0 1.3333333333vw 0 0;
  }
  .p-faq-tab-button._bottom:last-child {
    border-radius: 0 0 1.3333333333vw 0;
  }
  .p-faq-tab-btn {
    font-size: 4vw;
    line-height: 1.2666666667;
  }
  .p-faq-panels {
    padding-block: 5.8666666667vw 8vw;
    padding-inline: 4vw;
    border-radius: initial;
  }
  .p-faq-panel-ttl {
    font-size: 5.3333333333vw;
    padding-bottom: 2.1333333333vw;
  }
  .p-faq-accordion {
    max-width: initial;
    gap: 5.3333333333vw;
    margin-top: 5.3333333333vw;
  }
  .p-faq-accordion-item.open {
    padding-bottom: 2.6666666667vw;
  }
  .p-faq-accordion-item.open .p-faq-accordion-content {
    transform: translateY(2.6666666667vw);
  }
  .p-faq-accordion-title {
    padding-inline: 8vw 16vw;
    font-size: 4vw;
    line-height: 1.3;
  }
  .p-faq-accordion-title::before {
    line-height: 1.3;
  }
  .p-faq-accordion-icon {
    width: 6.56vw;
  }
  .p-faq-accordion-icon::before,
  .p-faq-accordion-icon::after {
    width: 2.8133333333vw;
  }
  .p-faq-accordion-content {
    padding-block: 4vw;
    padding-inline: 4vw;
    border-radius: 1.3333333333vw;
  }
}
