.p-about__body::before {
  background: linear-gradient(270deg, #7ABAF1, #3D7EC8);
  background-size: 200% 200%;
  -webkit-animation: bgGrad 5s ease infinite;
          animation: bgGrad 5s ease infinite;
}

.p-faq {
  background: linear-gradient(90deg, #fcfeff, #ECF4FC, #c4d8ef);
  background-size: 200% 200%;
  -webkit-animation: bgGrad 5s ease infinite;
          animation: bgGrad 5s ease infinite;
}

.p-mv {
  position: relative;
}
@media screen and (min-width: 768px), print {
  .p-mv__text {
    position: absolute;
    top: 8.75rem;
    left: calc(50% - 39.375rem);
  }
}
@media screen and (max-width: 767px) {
  .p-mv__text {
    position: absolute;
    top: 0;
    left: 0;
    padding: 24vw 6.67vw 0;
  }
}
.p-mv__title {
  font-size: 7.25rem;
  font-family: begum, sans-serif;
  font-weight: 600;
  font-style: italic;
  letter-spacing: -0.03em;
  color: #fff;
  line-height: 1.12;
  color: #002C9E;
  mix-blend-mode: color-burn;
  opacity: 0.5;
}
@media screen and (max-width: 767px) {
  .p-mv__title {
    font-size: 11vw;
    padding: 0;
  }
}
.p-mv__title .u-spinIn {
  display: block;
}
.p-mv__catch {
  font-size: 4.5rem;
  font-family: klee-one, sans-serif;
  line-height: 1.8;
  letter-spacing: 0.2em;
  transition-delay: 2s;
  -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
  position: relative;
  transition-delay: 1.2s;
}
@media screen and (max-width: 767px) {
  .p-mv__catch {
    font-size: 8.67vw;
    letter-spacing: 0.14em;
  }
}
.p-mv__catch-en {
  width: 0;
  height: 7.0625rem;
  display: block;
  position: absolute;
  top: calc(100% + 3.125rem);
  left: -1.875rem;
  content: "";
  mix-blend-mode: color-burn;
  opacity: 0.8;
  transition: all 0.8s ease;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-mv__catch-en {
    height: 12.4vw;
    top: calc(100% + 4vw);
    left: -1.33vw;
  }
}
.p-mv__catch-en.is-active {
  width: 28.75rem;
  transition-delay: 1.5s;
}
@media screen and (max-width: 767px) {
  .p-mv__catch-en.is-active {
    width: 50vw;
  }
}
.p-mv__catch-en img {
  width: 28.75rem;
  max-width: none;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
}
@media screen and (max-width: 767px) {
  .p-mv__catch-en img {
    width: 50vw;
  }
}
.p-mv__bg {
  -webkit-mask: url(../../../images/index/bg_visual-mask01.png) center top/100% auto no-repeat;
          mask: url(../../../images/index/bg_visual-mask01.png) center top/100% auto no-repeat;
}
@media screen and (max-width: 767px) {
  .p-mv__bg {
    -webkit-mask-image: url(../../../images/index/bg_visual-mask01_sp.png);
            mask-image: url(../../../images/index/bg_visual-mask01_sp.png);
  }
}

.p-about {
  padding-top: 5.625rem;
}
@media screen and (max-width: 767px) {
  .p-about {
    padding-top: 17.33vw;
  }
}
.p-about::after {
  width: 12.5rem;
  height: 12.5rem;
  border-radius: 12.5rem;
  bottom: -3.125rem;
  left: -5rem;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-about::after {
    bottom: 10vw;
  }
}
.p-about__inner {
  position: relative;
  padding-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .p-about__inner {
    padding-bottom: 0;
  }
}
.p-about__header::after {
  width: 110rem;
  height: 110rem;
  border-radius: 110rem;
  top: -15.625rem;
  left: -37.5rem;
}
@media screen and (max-width: 767px) {
  .p-about__header::after {
    width: 250vw;
    height: 250vw;
    left: -120vw;
    top: -5vw;
  }
}
@media screen and (max-width: 767px) {
  .p-about__title {
    text-align: left;
  }
}
.p-about__body {
  position: relative;
}
@media screen and (min-width: 768px), print {
  .p-about__body {
    margin-top: 8.125rem;
    padding: 5rem 0;
  }
}
@media screen and (max-width: 767px) {
  .p-about__body {
    margin: 17.33vw 0 0;
    padding: 0 0 17.33vw;
  }
}
.p-about__body::before, .p-about__body::after {
  content: "";
  display: block;
  position: absolute;
  width: 100vw;
  height: 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.p-about__body::after {
  background: url(../../../images/index/bg_about01.png) center/cover no-repeat;
}
.p-about__img {
  display: block;
}
@media screen and (min-width: 768px), print {
  .p-about__img {
    width: 53.43vw;
    max-width: 63.75rem;
    height: 38.125rem;
    position: absolute;
    top: -5rem;
    right: 45%;
  }
}
@media screen and (max-width: 767px) {
  .p-about__img {
    width: 100%;
    height: 55vw;
    position: relative;
    top: -10.67vw;
  }
}
.p-about__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-about__text {
  color: #fff;
  line-height: 1.8;
}
@media screen and (min-width: 768px), print {
  .p-about__texts {
    margin-left: 61.5%;
  }
}
@media screen and (min-width: 768px), print {
  .p-about__text {
    font-size: 1.25rem;
  }
}
.p-about__text p + p {
  margin-top: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-about__text p + p {
    margin-top: 4vw;
  }
}
.p-about__btns {
  margin-top: 3.125rem;
}
@media screen and (max-width: 767px) {
  .p-about__btns {
    margin-top: 6.67vw;
  }
}
@media screen and (min-width: 768px), print {
  .p-about__btn {
    width: 15.625rem;
  }
}
.p-about__btn-pamphlet {
  position: absolute;
  z-index: 100;
}
@media screen and (min-width: 768px), print {
  .p-about__btn-pamphlet {
    width: 11.25rem;
    top: 0;
    right: -9.375rem;
    transform: translateY(-50%);
  }
}
@media screen and (max-width: 767px) {
  .p-about__btn-pamphlet {
    width: 22.67vw;
    top: 26.67vw;
    right: -4vw;
  }
}
.p-about__btn-pamphlet a {
  border-radius: 50%;
  box-shadow: 0 1.25rem 1.25rem rgba(0, 0, 0, 0.1);
  display: block;
  font-family: klee-one, sans-serif;
}
@media screen and (min-width: 768px), print {
  .p-about__items {
    padding: 0 3.125rem;
  }
}
@media screen and (max-width: 767px) {
  .p-about__items {
    margin: 17.33vw 0 0;
  }
}
.p-about__items::after {
  width: 12.5rem;
  height: 12.5rem;
  border-radius: 12.5rem;
  top: -3.125rem;
  right: -5rem;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .p-about__items::after {
    width: 20vw;
    height: 20vw;
    background: none;
    background-color: #fff;
    right: -2vw;
    top: -5vw;
  }
}
@media screen and (min-width: 768px), print {
  .p-about__item-inner {
    display: grid;
    grid-template-columns: 51% 35%;
    align-items: center;
    justify-content: space-between;
  }
}
@media screen and (max-width: 767px) {
  .p-about__item + * {
    margin-top: 17.33vw;
  }
}
.p-about__item > a {
  display: block;
}
@media screen and (max-width: 767px) {
  .p-about__item > a > a {
    display: grid;
  }
}
@media screen and (max-width: 767px) {
  .p-about__item:not(.p-about__item-facilities) > a {
    display: flex;
    flex-direction: column-reverse;
    flex-wrap: wrap;
  }
}
.p-about__item-title {
  line-height: 1.3;
}
@media screen and (min-width: 768px), print {
  .p-about__item-title {
    display: grid;
    grid-template-columns: auto 15.625rem;
    grid-gap: 0 0.625rem;
    align-items: center;
  }
}
@media screen and (max-width: 767px) {
  .p-about__item-title {
    width: 100%;
    margin-top: 6.67vw;
  }
}
.p-about__item-title-en {
  grid-row: 1/2;
  grid-column: 1/2;
}
@media screen and (min-width: 768px), print {
  .p-about__item-title-en {
    font-size: 1.5625rem;
  }
}
@media screen and (max-width: 767px) {
  .p-about__item-title-en {
    text-align: center;
    grid-row: 1/2;
    grid-column: 1/3;
  }
}
.p-about__item-title-ja.p-about__item-title-ja {
  font-size: 2.5rem;
  margin: 0.3125rem 0 0;
  grid-row: 2/3;
  grid-column: 1/2;
}
@media screen and (max-width: 767px) {
  .p-about__item-title-ja.p-about__item-title-ja {
    font-size: 6.67vw;
    margin: 2vw 0 0;
    text-align: center;
    grid-row: 2/3;
    grid-column: 1/3;
  }
}
body#top .p-about__item-title-ja.p-about__item-title-ja {
  font-size: 2.5rem;
}
@media screen and (max-width: 767px) {
  body#top .p-about__item-title-ja.p-about__item-title-ja {
    font-size: 6.67vw;
  }
}
.p-about__item-facilities {
  z-index: 0;
}
@media screen and (min-width: 768px), print {
  .p-about__item-facilities {
    margin-top: 21.875rem;
  }
}
.p-about__item-facilities::after {
  width: 67.5rem;
  height: 67.5rem;
  border-radius: 67.5rem;
  bottom: -31.25rem;
  right: -34.375rem;
  z-index: -2;
}
@media screen and (max-width: 767px) {
  .p-about__item-facilities::after {
    display: none;
  }
}
.p-about__item-facilities > a {
  display: grid;
}
@media screen and (min-width: 768px), print {
  .p-about__item-facilities .p-about__item-title {
    margin-top: 1.875rem;
  }
}
@media screen and (max-width: 767px) {
  .p-about__item-facilities .p-about__item-title {
    width: 100%;
  }
}
.p-about__item-facilities .p-about__item-title-en {
  grid-row: 1/2;
  grid-column: 1/3;
}
.p-about__item-facilities .p-about__item-title-ja {
  grid-row: 2/3;
  grid-column: 1/3;
}
.p-about__item-btn {
  grid-row: 1/3;
  grid-column: 2/3;
}
@media screen and (max-width: 767px) {
  .p-about__item-btn {
    margin: 6.67vw 0 0;
  }
}
.p-about__item-facilities .p-about__item-btn {
  grid-row: 3/4;
  grid-column: 1/3;
  margin-top: 1.875rem;
}
.p-about__item-img {
  position: relative;
  z-index: -1;
  overflow: hidden;
  display: block;
  margin-top: 3.125rem;
}
@media screen and (max-width: 767px) {
  .p-about__item-img {
    width: 100%;
    aspect-ratio: 102/61;
    grid-row: 1/2;
    grid-column: 1/2;
    margin: 0;
  }
}
@media screen and (max-width: 767px) {
  .p-about__item-img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center 60%;
       object-position: center 60%;
  }
}
.p-about__item-facilities .p-about__item-img {
  grid-row: 1/2;
  grid-column: 1/2;
  margin-top: 0;
}

.p-faq {
  position: relative;
  margin: 8.125rem 0 0;
  padding: 12.5rem 0 8.125rem;
  overflow: hidden;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .p-faq {
    padding: 17.33vw 0;
    margin: 17.33vw 0 0;
  }
}
.p-faq::after {
  content: "";
  display: block;
  position: absolute;
  background-color: #fff;
  left: 50%;
  top: 0;
  z-index: 1;
  transform: translateX(-50%) scale(1, -1);
  width: 100vw;
  background: url(../../../images/common/bg_arch01.svg) center bottom/100% 100% no-repeat;
}
@media screen and (min-width: 768px), print {
  .p-faq::after {
    min-width: 120rem;
    height: 5rem;
  }
}
@media screen and (max-width: 767px) {
  .p-faq::after {
    aspect-ratio: 24/1;
  }
}
.p-faq__title {
  text-align: center;
}
.p-faq__items {
  background-color: rgba(255, 255, 255, 0.7);
  margin-top: 3.125rem;
  padding: 0.625rem 3.125rem 1.875rem 3.125rem;
}
@media screen and (max-width: 767px) {
  .p-faq__items {
    padding: 1vw 4vw 5vw;
  }
}
.p-faq__btn {
  margin: 3.125rem auto 0 auto;
}/*# sourceMappingURL=styles.css.map */