html body .p-footer {
  padding-top: clamp(93px * var(--fluid-min, 0.8), 6.8081991215vw, 111.6px);
  background: #3a5a93;
}
html body .p-footer__inner {
  width: clamp(1145px * var(--fluid-min, 0.8), 83.8213762811vw, 1374px);
  max-width: calc(100% - clamp(40px * var(--fluid-min, 0.8), 2.9282576867vw, 48px));
  margin-inline: auto;
}
html body .p-footer__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 clamp(20px * var(--fluid-min, 0.8), 1.4641288433vw, 24px) 0 clamp(19px * var(--fluid-min, 0.8), 1.3909224012vw, 22.8px);
}
html body .p-footer__logo {
  display: block;
  width: clamp(191px * var(--fluid-min, 0.8), 13.9824304539vw, 229.2px);
}
html body .p-footer__logo img {
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  html body .p-footer__logo:hover img {
    transform: scale(1.04);
  }
}
html body .p-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(40px * var(--fluid-min, 0.8), 2.9282576867vw, 48px);
}
html body .p-footer__navItem {
  position: relative;
}
html body .p-footer__navItem::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform 0.3s ease;
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  html body .p-footer__navItem:hover::after {
    transform: scaleX(1);
  }
}
html body .p-footer__address {
  width: fit-content;
  margin-top: clamp(44px * var(--fluid-min, 0.8), 3.2210834553vw, 52.8px);
  margin-left: clamp(19px * var(--fluid-min, 0.8), 1.3909224012vw, 22.8px);
}
html body .p-footer__pagetop {
  position: fixed;
  right: clamp(108px * var(--fluid-min, 0.8), 7.906295754vw, 129.6px);
  bottom: clamp(80px * var(--fluid-min, 0.8), 5.8565153734vw, 96px);
  z-index: 90;
  display: grid;
  place-items: center;
  width: 102px;
  height: 102px;
  padding-top: 8px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transition: background-color 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
}
html body .p-footer__pagetop.is-hidden {
  opacity: 0;
  visibility: hidden;
}
html body .p-footer__pagetop::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 50%;
  width: 8px;
  height: 7px;
  margin-left: -4px;
  background-color: #3a5a93;
  -webkit-mask-image: url("../images/icon-pagetop.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-pagetop.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
@media (hover: hover) and (pointer: fine) {
  html body .p-footer__pagetop:hover {
    background: #cad1de;
  }
}
html body .p-footer__bottom {
  margin-top: clamp(93px * var(--fluid-min, 0.8), 6.8081991215vw, 111.6px);
  padding: clamp(20px * var(--fluid-min, 0.8), 1.4641288433vw, 24px) 0 clamp(25px * var(--fluid-min, 0.8), 1.8301610542vw, 30px);
  border-top: 1px solid #cad1de;
  text-align: center;
}
html body .p-footer__address p {
  text-wrap: wrap;
}
@media screen and (max-width: 767px) {
  html body .p-footer {
    padding-top: clamp(44.8px, 7.2916666667vw, 67.2px);
  }
  html body .p-footer__inner {
    width: clamp(550.4px, 89.5833333333vw, 825.6px);
    max-width: calc(100% - clamp(32px, 5.2083333333vw, 48px) * 2);
    margin-inline: auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: clamp(25.6px, 4.1666666667vw, 38.4px);
    align-items: start;
  }
  html body .p-footer__top {
    display: contents;
  }
  html body .p-footer__logo {
    grid-column: 1;
    grid-row: 1;
    width: 191px;
  }
  html body .p-footer__address {
    grid-column: 1;
    grid-row: 2;
    margin: clamp(22.4px, 3.6458333333vw, 33.6px) 0 0;
  }
  html body .p-footer__nav {
    grid-column: 2;
    grid-row: 1/span 2;
    justify-content: flex-end;
    gap: clamp(12.8px, 2.0833333333vw, 19.2px) clamp(22.4px, 3.6458333333vw, 33.6px);
  }
  html body .p-footer__pagetop {
    right: clamp(19.2px, 3.125vw, 28.8px);
    bottom: clamp(51.2px, 8.3333333333vw, 76.8px);
    width: 80px;
    height: 80px;
  }
  html body .p-footer__bottom {
    grid-column: 1/-1;
    grid-row: 3;
    margin-top: clamp(44.8px, 7.2916666667vw, 67.2px);
    padding: clamp(12.8px, 2.0833333333vw, 19.2px) 0 clamp(16px, 2.6041666667vw, 24px);
  }
}
@media screen and (max-width: 767px) {
  html body .p-footer {
    padding-top: clamp(38.4px, 12.8vw, 57.6px);
  }
  html body .p-footer__inner {
    width: clamp(268px, 89.3333333333vw, 402px);
    max-width: calc(100% - clamp(16px, 5.3333333333vw, 24px) * 2);
    margin-inline: auto;
    grid-template-columns: minmax(0, 1fr);
  }
  html body .p-footer__logo {
    width: 160px;
  }
  html body .p-footer__nav {
    display: grid;
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(12.8px, 4.2666666667vw, 19.2px) clamp(16px, 5.3333333333vw, 24px);
    width: 100%;
    margin-top: clamp(22.4px, 7.4666666667vw, 33.6px);
  }
  html body .p-footer__address {
    margin-top: clamp(19.2px, 6.4vw, 28.8px);
  }
  html body .p-footer__pagetop {
    right: clamp(12.8px, 4.2666666667vw, 19.2px);
    bottom: clamp(48px, 16vw, 72px);
  }
  html body .p-footer__bottom {
    grid-row: 4;
    margin-top: clamp(38.4px, 12.8vw, 57.6px);
  }
}
