@charset "UTF-8";
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
/  mixin                                                     */
/* 初期設定 */
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
  --window-base-width: 1440;
  --window-base-height: 700;
}
@media screen and (max-width: 1024px) {
  html {
    --window-base-width: 768;
  }
}
@media screen and (max-width: 599.98px) {
  html {
    --window-base-width: 375;
  }
}

body {
  background-color: #fff;
  color: #262626;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.8;
  font-size: 1.8rem;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
  word-wrap: break-word;
  line-break: normal;
  text-rendering: optimizeSpeed;
}
body.--show-burger-menu {
  overflow: hidden;
}
body.const-new {
  background: -webkit-gradient(linear, left bottom, left top, color-stop(23.82%, #87afdd), color-stop(45.72%, #b1cceb), color-stop(49.89%, #dbebff), color-stop(59.29%, #e7f0fd), color-stop(95.9%, #f8fafe));
  background: linear-gradient(360deg, #87afdd 23.82%, #b1cceb 45.72%, #dbebff 49.89%, #e7f0fd 59.29%, #f8fafe 95.9%);
}

hgroup,
h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.4;
}

img {
  image-rendering: -webkit-optimize-contrast;
}

.body-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  position: relative;
}

.main {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: block;
}

.inner {
  width: 92%;
  max-width: 1160px;
  margin: 0 auto;
}

@media screen and (min-width: 1024.02px) {
  .no-pc {
    display: none !important;
  }
}

@media screen and (max-width: 1024px) and (min-width: 600px) {
  .no-tab {
    display: none !important;
  }
}

@media screen and (max-width: 599.98px) {
  .no-sp {
    display: none !important;
  }
}

.dib {
  display: inline-block;
}

@media screen and (min-width: 1024.02px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

.form-reset {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: block;
  border: none;
  border-radius: 0;
  padding: 0;
  background: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

/* z-index */
.header-main {
  z-index: 999;
}

.burger-menu {
  z-index: 900;
}

/* 共通パーツ */
.detail {
  padding-block: 140px;
  background-color: #fff;
  overflow: hidden;
}
@media screen and (max-width: 1024px) {
  .detail {
    padding-block: 90px;
  }
}
@media screen and (max-width: 599.98px) {
  .detail {
    padding-block: 80px;
  }
}
.detail__ttl {
  font-weight: 500;
  font-size: 4rem;
}
@media screen and (max-width: 1024px) {
  .detail__ttl {
    font-size: 3.3rem;
  }
}
@media screen and (max-width: 599.98px) {
  .detail__ttl {
    font-size: 2.6rem;
  }
}
.detail__list {
  max-width: 1000px;
  margin-top: 80px;
  margin-inline: auto;
}
@media screen and (max-width: 1024px) {
  .detail__list {
    margin-top: 50px;
  }
}
@media screen and (max-width: 599.98px) {
  .detail__list {
    margin-top: 20px;
  }
}
.detail__list_item {
  border-bottom: 1px solid;
  padding-bottom: 24px;
}
body.eng-new .detail__list_item, body.eng-mid .detail__list_item {
  border-color: #ddd;
}
body.const-new .detail__list_item {
  border-color: #39aa5f;
}
.detail__list_item:nth-of-type(n + 2) {
  margin-top: 24px;
}
.detail__list_head {
  font-weight: 700;
  font-size: 2.8rem;
}
@media screen and (max-width: 1024px) {
  .detail__list_head {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 599.98px) {
  .detail__list_head {
    font-size: 2.4rem;
  }
}
body.eng-new .detail__list_head, body.eng-mid .detail__list_head {
  color: #034495;
}
body.const-new .detail__list_head {
  color: #39aa5f;
}
.detail__list_head.--fz-sm {
  font-size: 1.8rem;
}
.detail__list_body {
  max-width: 820px;
  margin-top: 12px;
  margin-left: auto;
}
.detail__list_para {
  font-weight: 500;
}
.detail__list_para.--fz-sm {
  font-size: 1.6rem;
}

/* ヘッダー */
.header-main {
  height: var(--header-height);
  position: fixed;
  top: 0;
  inset-inline: 0;
  pointer-events: none;
}
body {
  --header-height: 128px;
}
@media screen and (max-width: 1024px) {
  body {
    --header-height: 107px;
  }
}
@media screen and (max-width: 599.98px) {
  body {
    --header-height: 85px;
  }
}

@media screen and (max-width: 1024px) {
  body.eng-mid .header-main {
    background-color: #fff;
  }
}
.header-main a,
.header-main button {
  pointer-events: auto;
}
.header-main__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 100%;
  padding-bottom: 8px;
}
.header-main__logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 200px;
  aspect-ratio: 224/89;
  -webkit-mask: url(../image/common/logo.png) no-repeat center center/contain;
          mask: url(../image/common/logo.png) no-repeat center center/contain;
  -webkit-transition: background-color 0.4s, background-image 0.4s, opacity 0.4s;
  transition: background-color 0.4s, background-image 0.4s, opacity 0.4s;
}
@media screen and (max-width: 1024px) {
  .header-main__logo {
    width: 150px;
  }
}
@media screen and (max-width: 599.98px) {
  .header-main__logo {
    width: 100px;
  }
}
body.eng-new .header-main__logo {
  background-color: #262626;
}
body.const-new .header-main__logo {
  background-color: #39aa5f;
}
body.eng-mid .header-main__logo {
  background-color: #525252;
}
@media screen and (max-width: 1024px) {
  body.eng-mid .header-main__logo {
    background-color: #39aa5f;
  }
}
@media screen and (min-width: 1024.02px) {
  body.eng-mid:where(:has(.mv[data-show=mv-slider])) .header-main__logo {
    background-color: #fff;
  }
}
@media screen and (min-width: 1024.02px) {
  body.--show-burger-menu .header-main__logo {
    opacity: 0;
  }
}
@media screen and (max-width: 1024px) {
  body.--show-burger-menu .header-main__logo {
    background-image: -webkit-gradient(linear, left top, left bottom, from(#39ad36), color-stop(75%, #39ad36), color-stop(75%, #000));
    background-image: linear-gradient(to bottom, #39ad36, #39ad36 75%, #000 75% #000);
  }
}
.header-main__burger-btn {
  width: 69px;
  aspect-ratio: 69/95;
  position: relative;
  -webkit-transition: -webkit-filter 0.2s;
  transition: -webkit-filter 0.2s;
  transition: filter 0.2s;
  transition: filter 0.2s, -webkit-filter 0.2s;
}
@media screen and (max-width: 1024px) {
  .header-main__burger-btn {
    width: 50px;
    margin-right: 12px;
  }
}
@media screen and (max-width: 599.98px) {
  .header-main__burger-btn {
    width: 30px;
    margin-bottom: 7px;
  }
}
@media screen and (min-width: 1024.02px) {
  body.eng-mid:where(:has(.mv[data-show=job])) .header-main__burger-btn {
    -webkit-filter: drop-shadow(2px 0 0 #efecec) drop-shadow(-2px 0 0 #efecec) drop-shadow(0 2px 0 #efecec) drop-shadow(0 -2px 0 #efecec) drop-shadow(3px 0 0 #efecec) drop-shadow(-3px 0 0 #efecec) drop-shadow(0 3px 0 #efecec) drop-shadow(0 -3px 0 #efecec);
            filter: drop-shadow(2px 0 0 #efecec) drop-shadow(-2px 0 0 #efecec) drop-shadow(0 2px 0 #efecec) drop-shadow(0 -2px 0 #efecec) drop-shadow(3px 0 0 #efecec) drop-shadow(-3px 0 0 #efecec) drop-shadow(0 3px 0 #efecec) drop-shadow(0 -3px 0 #efecec);
    -webkit-transition: -webkit-filter 1s 0.5s;
    transition: -webkit-filter 1s 0.5s;
    transition: filter 1s 0.5s;
    transition: filter 1s 0.5s, -webkit-filter 1s 0.5s;
  }
}
.header-main__burger-btn::before {
  content: "";
  display: block;
  -webkit-mask: url(../image/common/burger-btn.svg) no-repeat center center/contain;
          mask: url(../image/common/burger-btn.svg) no-repeat center center/contain;
  position: absolute;
  inset: 0;
}
body.eng-new .header-main__burger-btn::before {
  background-color: #262626;
}
body.const-new .header-main__burger-btn::before, body.eng-mid .header-main__burger-btn::before {
  background-color: #0f1419;
}
body.--show-burger-menu .header-main__burger-btn {
  -webkit-filter: none;
          filter: none;
}
body.--show-burger-menu .header-main__burger-btn::before {
  background-color: transparent;
  -webkit-mask: none;
          mask: none;
}
body.--show-burger-menu .header-main__burger-btn::before, body.--show-burger-menu .header-main__burger-btn::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  top: 40%;
}
body.--show-burger-menu .header-main__burger-btn::before {
  border-top: 1px solid #012152;
  -webkit-transform: rotate(22.99deg);
          transform: rotate(22.99deg);
}
body.--show-burger-menu .header-main__burger-btn::after {
  border-top: 1px solid #262626;
  -webkit-transform: rotate(-22.99deg);
          transform: rotate(-22.99deg);
}

.burger-menu {
  padding-top: var(--header-height);
  background-color: #fff;
  position: fixed;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.4s;
  transition: opacity 0.4s;
  overflow-y: auto;
}
body.--show-burger-menu .burger-menu {
  opacity: 1;
  pointer-events: auto;
}
.burger-menu__inner {
  display: grid;
  grid-template-columns: -webkit-max-content minmax(auto, 580px);
  grid-template-columns: max-content minmax(auto, 580px);
  grid-template-rows: minmax(auto, 567px) -webkit-max-content;
  grid-template-rows: minmax(auto, 567px) max-content;
  -webkit-column-gap: 4%;
     -moz-column-gap: 4%;
          column-gap: 4%;
  -ms-flex-line-pack: center;
      align-content: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 1100px;
  height: 100%;
  padding-bottom: 4.5714285714vh;
  position: relative;
  z-index: 0;
}
@media screen and (max-width: 1024px) {
  .burger-menu__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    -ms-flex-line-pack: start;
        align-content: start;
    width: 92%;
    max-width: 360px;
    margin-inline: auto;
  }
}
.burger-menu__txt-01 {
  -ms-flex-item-align: start;
      align-self: start;
  margin-top: 13px;
  color: #012152;
  font-family: "Lora", serif;
  font-weight: 400;
  line-height: 1;
  font-size: min(5rem, 4.2016806723vw);
  white-space: nowrap;
}
@media screen and (max-width: 1024px) {
  .burger-menu__txt-01 {
    margin-top: 32px;
    font-size: 3.9rem;
  }
}
@media screen and (max-width: 599.98px) {
  .burger-menu__txt-01 {
    font-size: 2.8rem;
  }
}
.burger-menu__g-nav {
  margin-top: 25px;
  color: #012152;
  font-weight: 500;
  font-size: 1.6rem;
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav {
    margin-top: 0;
    font-size: 2rem;
  }
}
.burger-menu__g-nav_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  border-top: 2px solid;
  border-image-slice: 2;
  border-image-source: linear-gradient(90.89deg, #e3e3e3 5.51%, #c2c0c0 9.96%, #a9a6a6 34.41%, #a8a8a8 39.61%, #dfdfdf 55.28%, #bfbfbf 70.94%, #969696 77.02%, #666666 78.13%, #b2b2b2 82.46%, #999999 95.45%);
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_list {
    row-gap: 15px;
    border-top: none;
  }
}
.burger-menu__g-nav_item {
  display: grid;
  grid-template-columns: 280fr 300fr;
  border-bottom: 2px solid;
  border-image-slice: 2;
  border-image-source: linear-gradient(90.89deg, #e3e3e3 5.51%, #c2c0c0 9.96%, #a9a6a6 34.41%, #a8a8a8 39.61%, #dfdfdf 55.28%, #bfbfbf 70.94%, #969696 77.02%, #666666 78.13%, #b2b2b2 82.46%, #999999 95.45%);
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item {
    grid-template-columns: 2fr 1.17fr;
    padding-right: 8px;
  }
}
.burger-menu__g-nav_item:nth-child(1) {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.burger-menu__g-nav_item:nth-child(2), .burger-menu__g-nav_item:nth-child(3) {
  -webkit-box-flex: 2;
      -ms-flex-positive: 2;
          flex-grow: 2;
}
.burger-menu__g-nav_item > a {
  grid-column: 2/3;
}
.burger-menu__g-nav_item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 270px;
  height: 100%;
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item a {
    padding-block: 7px;
  }
}
.burger-menu__g-nav_item a::after {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: block;
  width: 40px;
  aspect-ratio: 1/1;
  background-color: rgba(57, 170, 95, 0.4);
  -webkit-mask: url(../image/common/icon-arrow-02.svg) no-repeat center center/contain;
          mask: url(../image/common/icon-arrow-02.svg) no-repeat center center/contain;
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item a::after {
    width: 30px;
    background-color: #39aa5f;
  }
}
.burger-menu__g-nav_item > p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  max-width: 10em;
  margin-inline: auto;
  padding-inline: 10px;
  font-size: 2rem;
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item > p {
    margin-top: 7px;
    padding-inline: 6px;
  }
}
.burger-menu__g-nav_item > p::before {
  content: "";
  display: block;
  -webkit-box-flex: 34;
      -ms-flex-positive: 34;
          flex-grow: 34;
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item > p::before {
    content: none;
  }
}
.burger-menu__g-nav_item > p::after {
  content: "";
  display: block;
  -webkit-box-flex: 100;
      -ms-flex-positive: 100;
          flex-grow: 100;
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item > p::after {
    content: none;
  }
}
.burger-menu__g-nav_item > ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.burger-menu__g-nav_item > ul > li {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.burger-menu__g-nav_item > ul > li:nth-child(n+2) {
  border-top: 2px solid;
  border-image-slice: 2;
  border-image-source: linear-gradient(90.89deg, #e3e3e3 5.51%, #c2c0c0 9.96%, #a9a6a6 34.41%, #a8a8a8 39.61%, #dfdfdf 55.28%, #bfbfbf 70.94%, #969696 77.02%, #666666 78.13%, #b2b2b2 82.46%, #999999 95.45%);
}
@media screen and (max-width: 1024px) {
  .burger-menu__g-nav_item > ul > li:nth-child(n+2) {
    border-top: none;
  }
}
@media screen and (min-width: 1024.02px) {
  .burger-menu__ex-nav {
    display: none;
  }
}
@media screen and (max-width: 1024px) {
  .burger-menu__ex-nav {
    display: grid;
    row-gap: 15px;
    width: min(200px, 53.3333333333vw);
    margin-top: 30px;
    margin-right: auto;
  }
}
.burger-menu__ex-nav_item a {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: 2fr minmax(auto, -webkit-max-content);
  grid-template-columns: 2fr minmax(auto, max-content);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 50px;
  padding-inline: min(13px, 3.4666666667vw);
  position: relative;
  color: #fff;
  font-weight: 500;
  font-size: 1.6rem;
  text-align: center;
  z-index: 0;
}
.burger-menu__ex-nav_item a::after {
  content: "";
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 23px;
  aspect-ratio: 1/1;
  margin-block: auto;
  -webkit-mask: url(../image/common/icon-arrow-01.svg) no-repeat center center/contain;
          mask: url(../image/common/icon-arrow-01.svg) no-repeat center center/contain;
  z-index: -1;
}
.burger-menu__ex-nav_item.--corporate-site a {
  background-color: rgba(57, 170, 95, 0.5);
}
.burger-menu__ex-nav_item.--corporate-site a::after {
  background-color: #39aa5f;
}
.burger-menu__ex-nav_item.--contact a {
  background-color: rgba(1, 33, 82, 0.4);
}
.burger-menu__ex-nav_item.--contact a::after {
  background-color: #012152;
}
.burger-menu__txt-02 {
  grid-column: 1/-1;
  color: #39aa5f;
  position: relative;
  font-family: "Lora", serif;
  font-weight: 700;
  line-height: 0.92;
  font-size: min(9rem, 7.5630252101vw);
  z-index: -1;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 1024px) {
  .burger-menu__txt-02 {
    margin-top: 45px;
    text-align: left;
    font-size: min(2.8rem, 7.4666666667vw);
  }
}
.burger-menu__txt-02::before {
  content: "";
  display: block;
  width: min(338px, 52vh);
  aspect-ratio: 338/565;
  background: #7fc19f;
  -webkit-mask: url(../image/common/icon-eight-vertical.png) no-repeat center center/100% 100%;
          mask: url(../image/common/icon-eight-vertical.png) no-repeat center center/100% 100%;
  position: absolute;
  left: -29px;
  bottom: 7px;
  -webkit-transform: rotate(2.2deg);
          transform: rotate(2.2deg);
  z-index: -1;
}
@media screen and (max-width: 1024px) {
  .burger-menu__txt-02::before {
    width: min(104px, 27.7333333333vw);
    background: url(../image/common/burger-menu-bg.png) no-repeat center center/contain;
    left: auto;
    right: 29px;
    bottom: 12px;
  }
}

/* フッター */
.footer {
  background-color: transparent;
  overflow: hidden;
}
body.eng-new .footer {
  background-color: #3654be;
}
body.const-new .footer {
  background-color: transparent;
}
body.eng-mid .footer {
  background-color: #39aa5f;
}
.footer__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: space-evenly;
      -ms-flex-pack: space-evenly;
          justify-content: space-evenly;
  -webkit-column-gap: 4%;
     -moz-column-gap: 4%;
          column-gap: 4%;
  margin-top: 100px;
  margin-inline: calc(50% - 50vw);
  padding-top: 60px;
  padding-inline: calc(50vw - 50%);
  padding-bottom: 12px;
  background-color: rgba(255, 255, 255, 0.7);
  position: relative;
  z-index: 0;
}
@media screen and (max-width: 1024px) {
  .footer__main {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: normal;
        -ms-flex-align: normal;
            align-items: normal;
    -webkit-box-pack: normal;
        -ms-flex-pack: normal;
            justify-content: normal;
    margin-top: 75px;
    padding-top: 50px;
    padding-bottom: 25px;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__main {
    margin-top: 50px;
    padding-top: 40px;
    padding-bottom: 38px;
  }
}
.footer__main::before {
  content: "";
  display: block;
  width: 608px;
  aspect-ratio: 608/363;
  margin: auto;
  background-color: rgba(255, 255, 255, 0.5);
  -webkit-mask: url(../image/common/icon-eight-horizontal.png) no-repeat center center/100% 100%;
          mask: url(../image/common/icon-eight-horizontal.png) no-repeat center center/100% 100%;
  position: absolute;
  inset: 39px 1.6% 0 0;
  z-index: -1;
}
@media screen and (max-width: 1024px) {
  .footer__main::before {
    width: 436px;
    margin-block: -15px -10px;
    position: static;
    -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
            order: 9;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__main::before {
    width: 264px;
    margin-block: -11px -5px;
    margin-left: 10px;
  }
}
.footer__col-left {
  margin-left: 1%;
}
@media screen and (max-width: 1024px) {
  .footer__col-left {
    display: contents;
  }
}
.footer__col-right {
  margin-top: 45px;
  margin-bottom: 49px;
}
@media screen and (max-width: 1024px) {
  .footer__col-right {
    display: contents;
  }
}
.footer__logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 287px;
  aspect-ratio: 224/89;
  margin-inline: auto;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#39ad36), color-stop(75%, #39ad36), color-stop(75%, #000));
  background-image: linear-gradient(to bottom, #39ad36, #39ad36 75%, #000 75% #000);
  -webkit-mask: url(../image/common/logo.png) no-repeat center center/contain;
          mask: url(../image/common/logo.png) no-repeat center center/contain;
  -webkit-transition: background-image 0.4s;
  transition: background-image 0.4s;
}
@media screen and (max-width: 1024px) {
  .footer__logo {
    width: 199px;
    margin-left: 0;
    margin-inline: auto;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__logo {
    width: 110px;
    margin-inline: 0;
  }
}
.footer__ex-nav {
  display: grid;
  row-gap: 27px;
  margin-top: 51px;
}
@media screen and (max-width: 1024px) {
  .footer__ex-nav {
    -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
            order: 10;
    row-gap: 28px;
    margin-top: 0;
    margin-inline: auto;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__ex-nav {
    row-gap: 30px;
  }
}
.footer__ex-nav_item a {
  display: grid;
  grid-auto-flow: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 414px;
  max-width: 100%;
  height: 96px;
  padding-inline: 0.5em;
  position: relative;
  color: #fff;
  font-weight: 500;
  font-size: 2.6rem;
  text-align: center;
  z-index: 0;
}
@media screen and (max-width: 1024px) {
  .footer__ex-nav_item a {
    width: 347px;
    height: 83px;
    grid-template-columns: 2fr minmax(auto, -webkit-max-content);
    grid-template-columns: 2fr minmax(auto, max-content);
    padding-inline: min(30px, 8vw);
    font-size: 2.3rem;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__ex-nav_item a {
    width: 279px;
    height: 70px;
    font-size: 2rem;
  }
}
.footer__ex-nav_item a::after {
  content: "";
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 40px;
  height: 40px;
  margin-block: auto;
  -webkit-mask: url(../image/common/icon-arrow-01.svg) no-repeat center center/contain;
          mask: url(../image/common/icon-arrow-01.svg) no-repeat center center/contain;
  position: absolute;
  inset-block: 0;
  right: 30px;
  z-index: -1;
}
@media screen and (max-width: 1024px) {
  .footer__ex-nav_item a::after {
    width: 35px;
    position: static;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__ex-nav_item a::after {
    width: 29px;
  }
}
.footer__ex-nav_item.--corporate-site a {
  background-color: rgba(57, 170, 95, 0.5);
}
.footer__ex-nav_item.--corporate-site a::after {
  background-color: #39aa5f;
}
.footer__ex-nav_item.--contact a {
  background-color: rgba(1, 33, 82, 0.4);
}
.footer__ex-nav_item.--contact a::after {
  background-color: #012152;
}
.footer__g-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 49px;
     -moz-column-gap: 49px;
          column-gap: 49px;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 31px;
    margin-inline: auto;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__g-nav {
    row-gap: 13px;
    margin-inline: 0;
  }
}
.footer__g-nav_ttl {
  color: #39aa5f;
  font-weight: 500;
  font-size: 2.6rem;
}
.footer__g-nav_list {
  display: grid;
  row-gap: 21px;
  margin-top: 6px;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav_list {
    row-gap: 20px;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__g-nav_list {
    row-gap: 19px;
  }
}
.footer__g-nav_item > ul {
  display: grid;
  grid-template-columns: minmax(auto, -webkit-max-content) 1fr;
  grid-template-columns: minmax(auto, max-content) 1fr;
  row-gap: 21px;
  -webkit-column-gap: 14px;
     -moz-column-gap: 14px;
          column-gap: 14px;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav_item > ul {
    grid-template-columns: 1fr;
    row-gap: 20px;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__g-nav_item > ul {
    row-gap: 19px;
  }
}
.footer__g-nav_item > ul::before {
  content: "";
  grid-column: 1/2;
  display: block;
  width: 33px;
  margin-top: 19px;
  border-top: 1px solid;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav_item > ul::before {
    content: none;
    display: none;
  }
}
.footer__g-nav_item > ul > li {
  grid-column: 2/3;
  display: block;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav_item > ul > li {
    grid-column: auto;
  }
}
.footer__g-nav_item > ul > li a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-column-gap: 21px;
     -moz-column-gap: 21px;
          column-gap: 21px;
  color: #012152;
  font-weight: 500;
  font-size: 1.6rem;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav_item > ul > li a {
    -webkit-column-gap: 18px;
       -moz-column-gap: 18px;
            column-gap: 18px;
    font-size: 2rem;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__g-nav_item > ul > li a {
    -webkit-column-gap: 14px;
       -moz-column-gap: 14px;
            column-gap: 14px;
  }
}
.footer__g-nav_item > ul > li a::after {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: block;
  width: 40px;
  aspect-ratio: 1/1;
  background-color: #39aa5f;
  -webkit-mask: url(../image/common/icon-arrow-02.svg) no-repeat center center/contain;
          mask: url(../image/common/icon-arrow-02.svg) no-repeat center center/contain;
}
@media screen and (max-width: 1024px) {
  .footer__g-nav_item > ul > li a::after {
    width: 35px;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__g-nav_item > ul > li a::after {
    width: 30px;
  }
}
.footer__copyright {
  padding-block: 1.6em;
  color: #fff;
  font-weight: 500;
  font-size: 1.6rem;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .footer__copyright {
    padding-block: 1.25em;
  }
}
@media screen and (max-width: 599.98px) {
  .footer__copyright {
    padding-block: 0.9em;
  }
}
body.const-new .footer__copyright {
  color: #000;
}
.footer__copyright small {
  font-size: 1em;
}

/* 追従ボタンのスタイル */
.p-entry-btn {
  position: fixed;
  bottom: 40px;
  right: 40px;
  z-index: 800;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: block;
  width: 125px;
  height: 125px;
  overflow: hidden;
}

.p-entry-btn.-show {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

@media screen and (max-width: 599.98px) {
  .p-entry-btn {
    bottom: 30px;
    right: 25px;
    width: 100px;
    height: 100px;
  }
}
.p-entry-btn__base {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-animation: rotate 20s linear infinite;
          animation: rotate 20s linear infinite;
  pointer-events: none;
}

@-webkit-keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.p-entry-btn__base img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-entry-btn__body {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100px;
  height: 100px;
  border-radius: 50%;
  font-weight: bold;
  font-family: "Inter", serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-top: 30px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 14px;
  z-index: 2;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  pointer-events: none;
}

@media screen and (max-width: 599.98px) {
  .p-entry-btn__body {
    width: 80px;
    height: 80px;
    gap: 10px;
    padding-top: 25px;
    font-size: 16px;
  }
}
.p-entry-btn__body svg {
  -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-entry-btn__body svg path {
  -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-entry-btn:hover .p-entry-btn__body svg {
  -webkit-transform: translate(2px, -2px);
          transform: translate(2px, -2px);
}

.p-entry-btn:hover .p-entry-btn__body svg path {
  fill: #fff;
}

/* 新卒エンジニアページ */
.p-entry-btn__eng-new .p-entry-btn__body {
  color: #3654BE;
  border: 1px solid #3654BE;
  background: #fff;
}

.p-entry-btn__eng-new:hover .p-entry-btn__body {
  background: #3654BE;
  color: #fff;
}

/* 中途エンジニアページ */
.p-entry-btn__eng-mid .p-entry-btn__body {
  color: #00BC5C;
  border: 1px solid #00BC5C;
  background: #fff;
}

.p-entry-btn__eng-mid:hover .p-entry-btn__body {
  background: #00BC5C;
  color: #fff;
}

/* 新卒コンストラクションページ */
.p-entry-btn__const-new .p-entry-btn__body {
  color: #39AA5F;
  border: 1px solid #39AA5F;
  background: #fff;
}

.p-entry-btn__const-new:hover .p-entry-btn__body {
  background: #39AA5F;
  color: #fff;
}