/* ========================================
   Footer (extracted from common-new.css)
   For pages that need the new footer without loading common-new.css
   Uses min(vw, px) for responsive sizing without html font-size dependency
   1440px base: 1rem(10px) = 0.694vw
   ======================================== */

.footer-new {
  background-color: #252525;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  position: relative;
  z-index: 1;
}
.footer-new__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 60px min(7%, 100px) 40px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 767px) {
  .footer-new__inner {
    padding: 32px 20px 46px;
  }
}
.footer-new__logo img {
  width: min(19.17vw, 276px);
  height: auto;
}
@media (max-width: 767px) {
  .footer-new__logo img {
    width: 180px;
  }
}
.footer-new__content {
  display: flex;
  align-items: flex-start;
  margin-top: min(3.47vw, 50px);
}
@media (max-width: 767px) {
  .footer-new__content {
    flex-direction: column;
    margin-top: 32px;
  }
}
.footer-new__heading {
  font-weight: 500;
  font-size: min(1.389vw, 20px);
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .footer-new__heading {
    font-size: 20px;
  }
}
.footer-new__links {
  display: flex;
  gap: min(2.778vw, 40px);
  flex-grow: 1;
  margin-left: 7%;
  margin-right: min(3.333vw, 48px);
}
@media (max-width: 767px) {
  .footer-new__links {
    flex-direction: column;
    gap: 20px;
    justify-content: flex-start;
    margin-left: 0;
    margin-right: 0;
  }
}
.footer-new__col {
  display: flex;
  flex-direction: column;
  gap: min(0.833vw, 12px);
}
@media (max-width: 767px) {
  .footer-new__col {
    gap: 8px;
  }
}
.footer-new__col a {
  font-weight: 500;
  font-size: min(1.111vw, 16px);
  color: #fff;
  transition: opacity 0.3s;
  text-decoration: none;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .footer-new__col a {
    font-size: 16px;
  }
}
.footer-new__col a:hover {
  opacity: 0.7;
}
.footer-new__arrow {
  width: min(0.694vw, 10px);
  height: min(0.972vw, 14px);
  margin-right: min(0.417vw, 6px);
  vertical-align: middle;
}
@media (max-width: 767px) {
  .footer-new__arrow {
    width: 10px;
    height: 14px;
    margin-right: 6px;
  }
}
.footer-new__btn-icon {
  width: min(1.25vw, 18px);
  height: min(1.25vw, 18px);
  vertical-align: middle;
}
@media (max-width: 767px) {
  .footer-new__btn-icon {
    width: 18px;
    height: 18px;
  }
}
.footer-new__buttons {
  display: flex;
  flex-direction: column;
  gap: min(2.222vw, 32px);
  flex-shrink: 0;
  margin-left: auto;
}
@media (max-width: 767px) {
  .footer-new__buttons {
    margin-left: 0;
    width: 100%;
    margin-top: 50px;
    gap: 14px;
  }
}
.footer-new__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.556vw, 8px);
  padding: min(0.972vw, 14px);
  border-radius: 6px;
  font-weight: 500;
  font-size: min(1.389vw, 20px);
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
  white-space: nowrap;
  text-decoration: none;
}
@media (max-width: 767px) {
  .footer-new__btn {
    width: 100%;
    padding: 0 24px 0 20px;
    height: 60px;
    justify-content: space-between;
    font-size: 20px;
  }
}
.footer-new__btn.--corporate {
  background-color: #39aa5f;
  color: #fff;
  border: 1px solid #39aa5f;
}
.footer-new__btn.--corporate:hover {
  background-color: #fff;
  color: #39aa5f;
}
.footer-new__btn.--corporate .footer-new__btn-icon {
  transition: filter 0.3s;
}
.footer-new__btn.--corporate:hover .footer-new__btn-icon {
  filter: invert(59%) sepia(52%) saturate(438%) hue-rotate(93deg) brightness(95%) contrast(88%);
}
.footer-new__btn.--contact {
  background-color: #fff;
  color: #39aa5f;
  border: 1px solid #fff;
}
.footer-new__btn.--contact:hover {
  background-color: #39aa5f;
  color: #fff;
}
.footer-new__btn.--contact .footer-new__btn-icon {
  transition: filter 0.3s;
}
.footer-new__btn.--contact:hover .footer-new__btn-icon {
  filter: brightness(0) invert(1);
}
.footer-new__copyright {
  text-align: center;
  font-family: "Inter", sans-serif;
  font-weight: 500;
  font-size: min(0.972vw, 14px);
  color: #fff;
  margin-top: min(2.778vw, 40px);
}
@media (max-width: 767px) {
  .footer-new__copyright {
    margin-top: 34px;
    font-size: 14px;
  }
}

/* ========================================
   Construction blue theme (footer)
   ======================================== */
body.theme-blue .footer-new__logo img {
  content: url("/recruit/asset/image/common/footer-logo-blue.svg");
}
body.theme-blue .footer-new__col a span {
  color: #148dd0;
}
body.theme-blue .footer-new__btn.--corporate {
  background-color: #148dd0;
  border-color: #148dd0;
}
body.theme-blue .footer-new__btn.--corporate:hover {
  background-color: #fff;
  color: #148dd0;
}
body.theme-blue .footer-new__btn.--corporate:hover .footer-new__btn-icon {
  filter: invert(45%) sepia(85%) saturate(400%) hue-rotate(170deg) brightness(95%) contrast(90%);
}
body.theme-blue .footer-new__btn.--contact {
  color: #148dd0;
}
body.theme-blue .footer-new__btn.--contact:hover {
  background-color: #148dd0;
  color: #fff;
}
body.theme-blue .footer-new__btn.--contact .footer-new__btn-icon {
  content: url("/recruit/asset/image/common/icon-mail-blue.svg");
}
