@charset "UTF-8";

.p-footer {
  padding-top: clamp(80px, 13.37890625vw, 137px);
  padding-bottom: clamp(40px, 8.4635416667vw, 65px);
  background: -webkit-gradient(linear, left top, right top, from(#ffdcdd), to(#fae6e6));
  background: linear-gradient(to right, #ffdcdd 0%, #fae6e6 100%);
    overflow: hidden;
}

.p-cta {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 3.1666666667vw, 38px);
  padding-bottom: clamp(48px, 8.203125vw, 84px);
  border-bottom: 1px solid #DA1F27;
}
@media screen and (min-width:1024px) {
  .p-cta {
    grid-template-columns: clamp(200px, 26.7203513909vw, 365px) clamp(400px, 55.8565153734vw, 763px);
  }
}

@media screen and (min-width:1024px) {
  .p-cta__head {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
}

.p-cta__desc {
  margin-top: clamp(24px, 3.90625vw, 30px);
  font-size: clamp(13px, 1.1666666667vw, 14px);
  line-height: 2.2857142857;
  font-weight: 700;
}
@media screen and (min-width:1024px) {
  .p-cta__desc {
    max-width: 285px;
  }
}

.p-cta__btn-wrap {
  overflow: hidden;
}
@media screen and (min-width:768px) {
  .p-cta__btn-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
  }
}

.p-cta__btn {
  color: #ffffff;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-block: clamp(24px, 3.75vw, 45px);
  position: relative;
  z-index: 1;
  -webkit-transition: -webkit-filter 0.3s ease;
  transition: -webkit-filter 0.3s ease;
  transition: filter 0.3s ease;
  transition: filter 0.3s ease, -webkit-filter 0.3s ease;
  background: transparent;
}
.p-cta__btn .p-cta__btn-en,
.p-cta__btn .p-cta__btn-ja {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.p-cta__btn .p-cta__btn-ja::after {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.p-cta__btn::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  -webkit-transform: skewX(-20deg);
          transform: skewX(-20deg);
  z-index: -1;
}
@media (any-hover: hover) {
  .p-cta__btn:hover {
      color: #ffffff;

    -webkit-filter: brightness(1.15);
            filter: brightness(1.15);
  }
  .p-cta__btn:hover .p-cta__btn-ja::after {
    -webkit-transform: translateX(5px);
            transform: translateX(5px);
  }
  .p-cta__btn:hover .p-cta__btn-en,
  .p-cta__btn:hover .p-cta__btn-ja {
    -webkit-transform: translateX(8px);
            transform: translateX(8px);
  }
}

.p-cta__btn-en {
  font-family: "DM Sans", serif;
  font-size: clamp(24px, 2.6666666667vw, 32px);
  line-height: 1;
  letter-spacing: 0.03rem;
  font-weight: 700;
}

.p-cta__btn-ja {
  margin-top: 18px;
  font-size: clamp(14px, 1.1713030747vw, 16px);
  line-height: 1.25;
  letter-spacing: 0.03rem;
  font-weight: 700;
  padding-right: 28px;
  position: relative;
}

.p-cta__btn-entry {
  padding-left: clamp(32px, 3.4407027818vw, 47px);
  padding-right: 50px;
}
.p-cta__btn-entry::before {
  background-color: #F36D3A;
  left: -50px;
  right: 20px;
}
@media screen and (min-width:768px) {
  .p-cta__btn-entry::before {
    right: 2px;
  }
}
.p-cta__btn-entry .p-cta__btn-ja::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 22px;
  aspect-ratio: 1/1;
  background: url(../images/icon-entry-footer.svg) no-repeat center center/contain;
}

.p-cta__btn-mail {
  margin-top: 20px;
  padding-left: 46px;
  padding-right: clamp(24px, 2.4158125915vw, 33px);
}
@media screen and (min-width:768px) {
  .p-cta__btn-mail {
    margin-top: 0;
  }
}
.p-cta__btn-mail::before {
  background-color: #DA1F27;
  left: 20px;
  right: -50px;
}
@media screen and (min-width:768px) {
  .p-cta__btn-mail::before {
    left: 2px;
  }
}
.p-cta__btn-mail .p-cta__btn-ja::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 22px;
  aspect-ratio: 1/1;
  background: url(../images/icon-mail-footer.svg) no-repeat center center/contain;
}


.p-footer__body {
  margin-top: clamp(56px, 8.59375vw, 88px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media screen and (min-width:1024px) {
  .p-footer__body {
    grid-template-columns: repeat(2, auto);
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

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

.p-footer__logo {
  width: clamp(160px, 20.703125vw, 212px);
  aspect-ratio: 212/54;
}
.p-footer__logo img {
  -o-object-fit: contain;
     object-fit: contain;
}

.p-footer__info-texts {
  margin-top: clamp(24px, 3.515625vw, 27px);
}

.p-footer__info-text {
  font-size: clamp(14px, 1.5625vw, 16px);
  line-height: 1.625;
  font-weight: 500;
}
.p-footer__info-text + .p-footer__info-text {
  margin-top: 10px;
}

.p-footer__menu {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  gap: 24px;
}
@media screen and (min-width:768px) {
  .p-footer__menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: clamp(24px, 2.9282576867vw, 40px);
    margin-inline: auto;
  }
}
@media screen and (min-width:1024px) {
  .p-footer__menu {
    margin-top: 14px;
    margin-left: auto;
  }
}

.p-footer__menu-link {
  font-size: clamp(13px, 1.3671875vw, 14px);
  letter-spacing: 0.03rem;
  font-weight: 600;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}

.p-pagetop__btn {
  margin-top: clamp(80px, 14.4216691069vw, 197px);
  border-radius: 50%;
  background: -webkit-gradient(linear, left top, left bottom, from(#f36d3a), to(#da1f27));
  background: linear-gradient(to bottom, #f36d3a 0%, #da1f27 100%);
  padding: 38px 35px 28px;
  font-family: "Prompt", sans-serif;
  color: #ffffff;
  font-size: 12px;
  letter-spacing: 0.05em;
  font-weight: 500;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  text-align: center;
  position: relative;
}
.p-pagetop__btn::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 50%;
  translate: -50%;
  width: 8px;
  height: 7px;
  -webkit-transition: top 0.3s ease;
  transition: top 0.3s ease;
  background: url(../images/pagetop-arrow.svg) no-repeat center center/contain;
}
@media (any-hover: hover) {
  .p-pagetop__btn:hover {
    color: #ffffff;
    opacity: 1;
    -webkit-filter: brightness(1.15);
            filter: brightness(1.15);
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .p-pagetop__btn:hover::before {
    top: 5px;
  }
}

.p-copyright__text {
  margin-top: clamp(48px, 7.3938506589vw, 101px);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  line-height: 1.9090909091;
  text-align: center;
}

.p-bottom {
  padding-left: 20px;
  color: #ffffff;
  background: #DA1F27;
  position: relative;
}
@media screen and (min-width:768px) {
  .p-bottom {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding-left: clamp(60px, 7.3206442167vw, 100px);
  }
}
@media screen and (min-width:1367px) {
  .p-bottom {
    padding-inline: calc((100vw - 1366px) / 2);
  }
}

.p-bottom__content {
  padding-top: clamp(36px, 4.8828125vw, 50px);
  padding-bottom: clamp(48px, 6.34765625vw, 65px);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.p-bottom__text-en {
  font-family: "DM Sans", serif;
  font-size: clamp(36px, 5vw, 60px);
  line-height: 1.2333333333;
  letter-spacing: 0.03rem;
  font-weight: 700;
}

.p-bottom__text-ja {
  margin-top: 22px;
  font-size: clamp(14px, 1.5625vw, 16px);
  line-height: 1.25;
  letter-spacing: 0.03rem;
  font-weight: 700;
  white-space: nowrap;
}
.p-bottom__img {
  width: 100%;
    max-width: 688px;
  margin-left: auto;
  aspect-ratio: 688/285;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 108px 100%);
  position: relative;
}
.p-bottom__img::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #e3363d;
  opacity: 0.9;
  z-index: 1;
  pointer-events: none;
}
.p-bottom__img img {
  -o-object-fit: cover;
     object-fit: cover;
}

.p-copyright__text {
  position: absolute;
  left: 50%;
  translate: -50%;
  bottom: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  line-height: 1.9090909091;
  text-align: center;
}