@charset "UTF-8";

.p-footer {
  border-top: 1px solid #dddddd;
  position: relative;
  overflow: hidden;
}

.p-footer__top {
  padding-top: clamp(60px, 8.9166666667vw, 107px);
  padding-bottom: clamp(64px, 9.4166666667vw, 113px);
  position: relative;
}

.p-footer__top.is-ready .p-footer__top-img {
  opacity: 0;
  -webkit-transform: scale(0);
          transform: scale(0); /* 中心に向かって縮小しておく */
  -webkit-transform-origin: center center;
          transform-origin: center center; /* 画像の中心を基準にする */
  -webkit-transition: opacity 0.4s ease, -webkit-transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: opacity 0.4s ease, -webkit-transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), -webkit-transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* 少しバウンドするような心地よい動き */
}
.p-footer__top.is-ready:hover {
  opacity: 1;
}
.p-footer__top.is-ready:hover .p-footer__top-img {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1); /* 中心から広がる */
}



.p-footer__top-content {
  max-width: 600px;
  margin-inline: auto;
  position: relative;
}

.p-footer__top-head {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  padding-bottom: 12px;
  border-bottom: 2px solid #333333;
  position: relative;
}
@media screen and (min-width:768px) {
  .p-footer__top-head {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: clamp(40px, 4.7584187408vw, 65px);
  }
}
.p-footer__top-head::after {
  content: "";
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: 0;
  width: 54px;
  height: 48px;
  background: url(../images/icon-arrow.svg) no-repeat center center/contain;
}

.p-footer__title-en {
  font-family: "Libre Baskerville", sans-serif;
  font-size: clamp(38px, 5vw, 60px);
  line-height: 1.3333333333;
}


.p-footer__title-ja {
  font-size: clamp(14px, 2.0833333333vw, 16px);
  line-height: 1.3125;
  font-weight: 500;
}

.p-footer__top-text {
  margin-top: clamp(32px, 5.46875vw, 56px);
  font-size: clamp(13px, 1.46484375vw, 15px);
  line-height: 1.6;
  max-width: 550px;
  margin-inline: auto;
  text-align: center;
}

.p-footer__top-img {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  left: -28.0380673499vw;
  max-width: clamp(120px, 39.9707174231vw, 546px);
  aspect-ratio: 1/1;
  z-index: -1;
}
.p-footer__top-img img {
  -webkit-mask: url(../images/top-contact-hover.png) 50% 50%/contain no-repeat;
          mask: url(../images/top-contact-hover.png) 50% 50%/contain no-repeat;
}


.p-footer__bottom {
  padding-top: clamp(40px, 8.0729166667vw, 62px);
  background: #f3f3f3;
  border-radius: 20px 20px 0px 0px;
  position: relative;
}

.p-footer__bottom-wrap {
  padding-bottom: clamp(40px, 6.5vw, 78px);
}
@media screen and (min-width:1024px) {
  .p-footer__bottom-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 40px;
  }
}

.p-footer__info {
  max-width: 320px;
}

.p-footer__logo {
  width: 91px;
  height: 91px;
}

.p-footer__info-body {
  margin-top: clamp(16px, 4.1666666667vw, 32px);
}
@media screen and (min-width:1024px) {
  .p-footer__info-body {
    margin-left: 10px;
  }
}

.p-footer__info-title {
  font-size: clamp(14px, 1.953125vw, 15px);
  line-height: 1.2666666667;
  letter-spacing: 0.45px;
  font-weight: 700;
}

.p-footer__info-text {
  margin-top: 17px;
  font-size: clamp(13px, 1.8229166667vw, 14px);
  line-height: 1.4285714286;
  letter-spacing: 0.42px;
}

.p-footer__menu {
  margin-top: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (min-width:768px) {
  .p-footer__menu {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
}
@media screen and (min-width:1024px) {
  .p-footer__menu {
    margin-top: 55px;
    margin-left: 0;
    margin-right: clamp(20px, 3.6603221083vw, 50px);
  }
}

.p-footer__menu-list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.p-footer__menu-list + .p-footer__menu-list {
  margin-left: 40px;
}
@media screen and (min-width:768px) {
  .p-footer__menu-list + .p-footer__menu-list {
    margin-left: clamp(60px, 6.7349926794vw, 92px);
  }
}

.p-footer__menu-link {
  font-size: clamp(13px, 1.8229166667vw, 14px);
  line-height: 1.4285714286;
  letter-spacing: 0.42px;
  font-weight: 700;
}
.p-footer__menu-link + .p-footer__menu-link {
  margin-top: 23px;
}


.p-copyright-wrap {
  padding-bottom: clamp(40px, 7.03125vw, 54px);
}

.p-copyright-text {
  font-family: "Libre Baskerville", sans-serif;
  font-size: 10px;
  line-height: 1.4;
}

.p-footer__bg-big {
  position: absolute;
  top: min(2.3426061493vw, 32px);
  right: -63.4699853587vw;
  width: min(93.7774524158vw, 1281px);
  aspect-ratio: 1281/927;
  -webkit-transform: rotate(-30deg);
          transform: rotate(-30deg);
  background: #6e3383;
  opacity: 0.06;
  -webkit-filter: blur(50px);
          filter: blur(50px);
  pointer-events: none;
}

.p-footer__bg-small {
  position: absolute;
  top: min(31.7715959004vw, 434px);
  right: -1.8301610542vw;
  width: min(34.5534407028vw, 472px);
  aspect-ratio: 472/360;
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
  background: #cd4558;
  opacity: 0.3;
  -webkit-filter: blur(50px);
          filter: blur(50px);
  pointer-events: none;
}

.p-footer__bg-bottom {
  position: absolute;
  bottom: min(15.2269399707vw, 208px);
  right: -29.2093704246vw;
  width: min(44.6559297218vw, 610px);
  aspect-ratio: 610/491;
  background: #cd4558;
  -webkit-transform: rotate(-30deg);
          transform: rotate(-30deg);
  opacity: 0.08;
  -webkit-filter: blur(50px);
          filter: blur(50px);
  pointer-events: none;
}

.p-footer__bg-yellow {
  position: absolute;
  bottom: -29.2825768668vw;
  left: -18.5212298682vw;
  width: 44.6559297218vw;
  height: 35.944363104vw;
  background: #f7be2c;
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
  opacity: 0.2;
  -webkit-filter: blur(50px);
          filter: blur(50px);
  pointer-events: none;
}