@charset "UTF-8";

/*
	##### OGIS #####
	assets/css/style_sp.css
*/

/* --------------------------------------------------
critical / high priority
-------------------------------------------------- */


.grand-menu {
  opacity: 0;
  visibility: hidden;
}


/* --------------------------------------------------
header
-------------------------------------------------- */

.header {
  display: block;
  width: 100%;
  height: calc(120 / 750 * 100vw);
  background-color: #fff;
  position: fixed;
  z-index: 1000;

    a {
    text-decoration: none;
  }
}

.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  width: 100%;

  .logo-set {
    display: block;
    height: 100%;
    margin-left: calc(38 / 750 * 100vw);

    a {
      display: flex;
      align-items: center;
      height: 100%;
      font-size: calc(32 / 750 * 100vw);
      font-weight: 600;
      letter-spacing: .08em;
      line-height: 1.0625;

      .en {
        padding-top: calc(10 / 750 * 100vw);
        padding-left: calc(12 / 750 * 100vw);
      }
    }
  }
  .main-logo {
    width: calc(64 / 750 * 100vw);
    height: calc(78 / 750 * 100vw);
  }
}

.hamburger {
  display: block;
  width: calc(80 / 750 * 100vw);
  height: calc(80 / 750 * 100vw);
  margin: auto calc(30 / 750 * 100vw);
  position: relative;

  .bar-set {
    cursor: pointer;
    display: block;
    width: calc(50 / 750 * 100vw);
    height: calc(34 / 750 * 100vw);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
  }
  .bar {
    position: absolute;
    display: block;
    height: calc(3 / 750 * 100vw);
    width: 100%;
    background-color: #000;
    transition: all .2s ease;

    &.upper {
      top: 0;
    }
    &.middle {
      top: 50%;
      margin-top: calc(-1 / 750 * 100vw)
    }
    &.bottom {
      bottom: 0;
    }

    .open & {
      background-color: #fff;
    }
    .open &.upper {
      top: 50%;
      transform: translateY(-.13333333333333333vw) rotate(45deg) scaleX(1.2167)
    }
    .open &.middle {
      width: 0;
      opacity: 0
    }
    .open &.bottom {
      bottom: 50%;
      transform: translateY(.13333333333333333vw) rotate(-45deg) scaleX(1.2167)
    }
  }
}


/* --------------------------------------------------
opened menu
-------------------------------------------------- */

.grand-menu {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100dvw;
  height: 100dvh;
  padding-top: calc(120 / 750 * 100vw);
  color: #fff;
  background-color: rgba(var(--rgb-6), .95);
  opacity: 0;
  visibility: hidden;
  transition-property: opacity, visibility;
  transition-duration: .4s;
  transition-timing-function: ease;
  overflow: hidden;
  overflow-y: scroll;

  .open & {
    opacity: 1;
    visibility: visible;
  }
  & > div {
    padding-bottom: calc(150 / 750 * 100vw);
    width: calc(610 / 750 * 100vw);
    margin: 0 auto;
  }
  .main-menu-set {
    padding-bottom: calc(80 / 750 * 100vw);

    .main-menu {
      border-top: solid calc(1 / 750 * 100vw) #fff;

      .trigger {
        display: flex;
        align-items: center;
        height: calc(120 / 750 * 100vw);
        padding-left: calc(40 / 750 * 100vw);
        cursor: pointer;
        position: relative;

        &::after {
          content: '';
          display: inline-block;
          width: calc(13 / 750 * 100vw);
          height: calc(20 / 750 * 100vw);
          background: url(../images/arrw-gt.svg) no-repeat center / contain;
          position: absolute;
          right: calc(42 / 750 * 100vw);
          top: 50%;
          translate: 0 -50%;
          rotate: 0deg;
          transition: rotate .3s ease;
        }
        &.is-open::after {
          rotate: 90deg;
        }
      }
    }
    .corner-ttl {
      font-weight: 600;
      font-size: calc(40 / 750 * 100vw);
    }
    .flyout {
      overflow: hidden;
      display: grid;
      grid-template-rows: minmax(0, 1fr);
      transition: grid-template-rows .3s ease;

      &.hide {
        grid-template-rows: minmax(0, 0fr);
        transition: grid-template-rows .3s ease;
      }
      & > .reset-list {
        overflow: hidden;
        padding-bottom: calc(45 / 750 * 100vw);
      }
    }

    .sub-menu {
      padding-left: calc(40 / 750 * 100vw);

      & + & {
        padding-top: .75em;;
      }

      a {
        font-weight: 600;
        font-size: calc(28 / 750 * 100vw);
        line-height: 1.3;
        color: rgba(255, 255, 255, .7);

        &::before {
          content: '\30fb';
          font-feature-settings: "fwid";
        }
      }
    }
  }
  .bttn-area {
    display: block;
    width: 100%;
    padding-top: calc(60 / 750 * 100vw);
    border-top: solid calc(1 / 750 * 100vw) #fff;

    .now-recruiting {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: calc(120 / 750 * 100vw);
      border: calc(1 / 750 * 100vw) solid #fff;
      border-radius: calc(5 / 750 * 100vw);
      font-weight: 600;
      font-size: calc(28 / 750 * 100vw);
      letter-spacing: .03em;
      line-height: 1;

      span {
        padding: 0 calc(72 / 750 * 100vw);
        position: relative;

        &::after {
          content: '';
          display: inline-block;
          width: calc(29 / 750 * 100vw);
          height: calc(29 / 750 * 100vw);
          background: url(../images/menu-ico_popup.svg) no-repeat center / contain;
          position: absolute;
          right: 0;
          top: 50%;
          translate: 0 -50%;
        }
      }
    }
  }
  .menu-footer {
    font-size: calc(24 / 750 * 100vw);
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .7);

    .second-menu {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;

      li {
        display: inline-block;
        padding: 0 1em;
        font-weight: 600;
        line-height: 1.5833333333333333;

        &:nth-child(2n) {
          border-left: calc(1 / 750 * 100vw) solid currentColor
        }

      }
    }
    .copyright {
      font-weight: 400;
      text-align: center;
      margin-top: 1.5em;
    }
  }
}


/* --------------------------------------------------
contents
-------------------------------------------------- */

/* main title */

.mv-area {
  display: flex;
  flex-direction: column-reverse;
  width: 100%;
  height: calc(760 / 750 * 100vw);

  &.no-img {
    display: block;
    height: auto;
  }

  .main-image {
    display: block;
    width: 100%;
    height: calc(480 / 750 * 100vw);
  }
  .main-ttl-area {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    height: calc(280 / 750 * 100vw);
    background-color: var(--color-6);

    .main-ttl-set {
      color: #fff;
      display: inline-flex;
      flex-direction: column-reverse;
      row-gap: calc(20 / 750 * 100vw);

      .en {
        font-weight: 300;
        font-size: calc(36 / 750 * 100vw);
        letter-spacing: .05em;

        &::after {
          content: '';
          display: block;
          width: calc(30 / 750 * 100vw);
          height: 1px;
          background-color: var(--color-4);
          margin-top: calc(20 / 750 * 100vw);
          margin-left: 50%;
          transform: translateX(-50%);
        }
      }
      .main-ttl {
        font-weight: 600;
        font-size: calc(40 / 750 * 100vw);
        line-height: 1.3;
      }
    }
  }
}

/* text */

.txt-15 {
  font-size: calc(28/750*100vw);
  font-weight: 500;
  line-height: 1.87
}
.txt-14 {
  font-size: calc(26/750*100vw);
  line-height: 2;
}


/* --------------------------------------------------
footer
-------------------------------------------------- */

.crumb-area {
  width: 100%;
  max-width: calc(670 / 750 * 100vw);
  min-height: calc(90 / 750 * 100vw);
  margin: 0 auto;
  border-top: solid calc(1 / 750 * 100vw) var(--color-5);
  padding-block: calc(20 / 750 * 100vw);

  .crumb {
    display: flex;
    align-items: first baseline;
    width: 100%;
    height: 100%;
    font-size: calc(25 / 750 * 100vw);
    line-height: 1.2;
    color: var(--color-6);

    li {
      display: flex;
      align-items: first baseline;

      & + &::before {
        content: '\003e';
        font-feature-settings: "fwid";
        padding: 0 .5em;
        vertical-align: middle;
      }
      &:not(:last-child) {
        white-space: nowrap;
      }
    }
    a {
      text-decoration: none;

      .home & {
        white-space: nowrap;

        &::before {
          content: '';
          display: inline-block;
          width: calc(20 / 750 * 100vw);
          height: calc(20 / 750 * 100vw);
          background: url(../images/ico-home.svg) no-repeat center / contain;
          vertical-align: baseline;
          margin-right: .5em;
        }
      }
    }
  }
}

.footer-area {
  display: block;
  width: 100%;
  padding-bottom: calc(50 / 750 * 100vw);
  border-bottom: calc(20 / 750 * 100vw) solid var(--color-4);
  background-color: var(--color-6);
  position: relative;

  .footer-inner {
    display: block;
    width: calc(700 / 750 * 100vw);
    margin: 0 auto;
  }
  .catch {
    padding-top: calc(140 / 750 * 100vw);

      .catch-ttl {
      font-weight: 600;
      font-size: calc(104 / 750 * 100vw);
      color: #fff;
      text-align: center;
      margin-bottom: calc(40 / 750 * 100vw);
    }
    .lead {
      font-weight: 600;
      font-size: calc(26 / 750 * 100vw);
      line-height: 2;
      text-align: center;
      color: #fff;
    }
    .related-bttns {
      margin-top: calc(110 / 750 * 100vw);

      li {
        display: block;
        width: 100%;
        height: calc(270 / 750 * 100vw);

        & + & {
          margin-top: calc(30 / 750 * 100vw)
        }
        a {
          display: flex;
          align-items: center;
          justify-content: space-between;
          width: 100%;
          height: 100%;
          padding-left: calc(54 / 750 * 100vw);
          text-decoration: none;
          border-radius: calc(10 / 750 * 100vw);

          dt .en {
            font-weight: 600;
            font-size: calc(26 / 750 * 100vw);
            letter-spacing: .1em;
            display: inline-block;
            margin-bottom: calc(20 / 750 * 100vw);

            &::after {
              content: '';
              display: inline-block;
              width: calc(70 / 750 * 100vw);
              height: 1px;
              margin-left: calc(10 / 750 * 100vw);
              margin-bottom: .25em;
            }
          }
          dt .jp {
            display: inline-block;
            font-weight: 700;
            font-size: calc(50 / 750 * 100vw);
            letter-spacing: .14em;
            margin-bottom: calc(30 / 750 * 100vw);
          }
          dd {
            font-weight: 600;
            font-size: calc(26 / 750 * 100vw);
            letter-spacing: .14em;
          }

          &::after {
            content: '';
            display: inline-block;
            width: calc(80 / 750 * 100vw);
            height: calc(80 / 750 * 100vw);
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            margin-right: calc(45 / 750 * 100vw);
          }

          .req & {
            color: var(--color-6);
            background-color: #fff;

            & dt .en::after {
              background-color: var(--color-6)
            }
            &::after {
              background-image: url(../images/footer-arrw-r-b.svg);
            }
          }
          .faq & {
            color: #fff;
            background-color: var(--color-3);

            & dt .en::after {
              background-color: #fff;
            }
            &::after {
              background-image: url(../images/footer-arrw-r-w.svg);
            }
          }
        }
      }
    }
  }
  .copyright-area {
    font-weight: 600;
    font-size: calc(24 / 750 * 100vw);
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .7);

    .second-menu {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;

      li {
        display: inline-block;
        padding: 0 1em;
        font-weight: 600;
        line-height: 1.7916666666666667;

        &:nth-child(2n) {
          border-left: calc(1 / 750 * 100vw) solid currentColor
        }
        a {
          text-decoration: none;
        }
      }
    }
    .copyright {
      font-weight: 400;
      text-align: center;
      margin-top: 1.75em;
    }
  }
  .back2top {
    display: none;
  }
}


.footer-nav {
  width: calc(620 / 750 * 100vw);
  margin: calc(40 / 750 * 100vw) auto 0;
  color: #fff;

  a {
    text-decoration: none;
  }

  .footer-menu-set {
    padding-bottom:calc(130 / 750 * 100vw);

    .footer-menu {
      border-bottom: solid calc(1 / 750 * 100vw) #fff;

      .trigger {
        display: flex;
        align-items: center;
        height: calc(120 / 750 * 100vw);
        padding-left: calc(40 / 750 * 100vw);
        cursor: pointer;
        position: relative;

        &::after {
          content: '';
          display: inline-block;
          width: calc(13 / 750 * 100vw);
          height: calc(20 / 750 * 100vw);
          background: url(../images/arrw-gt.svg) no-repeat center / contain;
          position: absolute;
          right: calc(42 / 750 * 100vw);
          top: 50%;
          translate: 0 -50%;
          rotate: 0deg;
          transition: rotate .3s ease;
        }
        &.is-open::after {
          rotate: 90deg;
        }
      }
    }
    .corner-ttl {
      font-weight: 600;
      font-size: calc(40 / 750 * 100vw);
    }
    .sub-list {
      overflow: hidden;
      display: grid;
      grid-template-rows: minmax(0, 1fr);
      transition: grid-template-rows .3s ease;

      &.hide {
        grid-template-rows: minmax(0, 0fr);
        transition: grid-template-rows .3s ease;
      }
      & > .reset-list {
        overflow: hidden;
        padding-bottom: calc(45 / 750 * 100vw);
      }
    }

    .sub-menu {
      padding-left: calc(40 / 750 * 100vw);

      & + & {
        padding-top: .75em;
      }

      a {
        font-weight: 600;
        font-size: calc(28 / 750 * 100vw);
        line-height: 1.3;
        color: rgba(255, 255, 255, .7);

        &::before {
          content: '\30fb';
          font-feature-settings: "fwid";
        }
      }
    }
  }
  .bttn-area {
    display: block;
    width: 100%;
    margin-top: calc(80 / 750 * 100vw);

    .now-recruiting {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: calc(140 / 750 * 100vw);
      border: calc(1 / 750 * 100vw) solid #fff;
      border-radius: calc(10 / 750 * 100vw);
      font-weight: 600;
      font-size: calc(26 / 750 * 100vw);
      letter-spacing: .03em;
      line-height: 1;

      span {
        padding: 0 calc(72 / 750 * 100vw);
        position: relative;

        &::after {
          content: '';
          display: inline-block;
          width: calc(29 / 750 * 100vw);
          height: calc(29 / 750 * 100vw);
          background: url(../images/menu-ico_popup.svg) no-repeat center / contain;
          position: absolute;
          right: 0;
          top: 50%;
          translate: 0 -50%;
        }
      }
    }
  }
}

