@charset "UTF-8";
html {
  line-height: 1;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", YuGothic, "Yu Gothic", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", Sans-Serif;
  font-size: 16px;
  color: #000;
  word-wrap: break-word;
  font-weight: 400; }
  html * {
    font-weight: inherit;
    box-sizing: border-box; }

a, a * {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  text-decoration: none; }

img {
  width: 100%; }
  img[src$=".svg"] {
    max-width: 100%; }

#page {
  overflow: hidden; }

/*font
-----------------------------------------------------------------------------*/
.din {
  font-family: "Oswald", sans-serif; }

.fw_regular {
  font-weight: 400; }

.fw_medium {
  font-weight: 500; }

.fw_bold {
  font-weight: 700; }

.fs_italic {
  font-style: italic; }

/*PC 共通
-----------------------------------------------------------------------------*/
@media print, screen and (min-width: 751px) {
  .preload *:not(.loading_copy) {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -ms-transition: none !important;
    -o-transition: none !important;
    transition: none !important; }

  .sp {
    display: none; }

  .inner {
    width: 90%;
    max-width: 1200px;
    margin: auto; }

  .flex_box, .flex_box_pc {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap; }

  a {
    outline: none; }
    a:focus {
      outline: none; } }
@media print, screen and (min-width: 751px) and (max-width: 1500px) {
  html {
    font-size: 1.0666666667vw; } }
/*--------------------------endPC--------------------------------*/
/*SP共通
-----------------------------------------------------------------------------*/
@media only screen and (max-width: 750px) {
  html {
    font-size: 3.7vw; }

  .inner {
    width: 90%;
    margin: auto; }

  .pc {
    display: none; }

  .flex_box, .flex_box_sp {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap; } }
/*--------------------------endSP--------------------------------*/
/*header
-----------------------------------------------------------------------------*/
header {
  width: 100%;
  position: fixed;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  z-index: 500;
  -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
  -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
  transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
  header .h_logo img {
    height: auto; }
  header .h_logo span {
    letter-spacing: 0.1em;
    color: #fff; }
  header .nav_list {
    -webkit-align-items: center;
    align-items: center; }
    header .nav_list li.h_btn.entry a, header .nav_list li.h_btn.corporate a {
      position: relative;
      display: block;
      -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
    header .nav_list li.h_btn.corporate {
      border: 1px solid #fff; }
    header .nav_list li a {
      text-decoration: none;
      display: block;
      color: #fff;
      text-align: center;
      font-weight: 400;
      position: relative;
      -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
  header.h_Color_default {
    background-color: rgba(30, 30, 75, 0.85); }
  @media print, screen and (min-width: 751px) {
    header {
      padding: 2.5rem 2.5rem 0 2.5rem;
      -webkit-align-items: center;
      align-items: center; }
      header .h_logo {
        width: 27.25rem; }
        header .h_logo a {
          display: block;
          display: -webkit-flex;
          display: flex;
          -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
          -webkit-justify-content: space-between;
          justify-content: space-between;
          -webkit-align-items: center;
          align-items: center; }
        header .h_logo img {
          width: 21rem;
          margin-right: 0.75rem; }
        header .h_logo span {
          font-size: 1rem; }
      header .nav_list li:not(:last-child) {
        margin-right: 1.875rem; }
      header .nav_list li.h_btn.entry a, header .nav_list li.h_btn.corporate a {
        padding: 1rem 4.375rem 1rem 0;
        letter-spacing: 0.1em;
        text-align: right; }
        header .nav_list li.h_btn.entry a::before, header .nav_list li.h_btn.corporate a::before {
          width: 2.1875rem;
          height: 0.28125rem;
          position: absolute;
          top: 50%;
          right: 1.5rem;
          z-index: 0;
          -webkit-transform: translate(0, -50%);
          -ms-transform: translate(0, -50%);
          transform: translate(0, -50%);
          -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
        header .nav_list li.h_btn.entry a::after, header .nav_list li.h_btn.corporate a::after {
          display: none; }
        header .nav_list li.h_btn.entry a:hover::before, header .nav_list li.h_btn.corporate a:hover::before {
          position: absolute;
          top: 50%;
          right: 1.125rem;
          z-index: 0;
          -webkit-transform: translate(0, -50%);
          -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }
      header .nav_list li.h_btn.entry {
        width: 9.1875rem; }
        header .nav_list li.h_btn.entry a {
          background: #fff;
          color: #231815; }
          header .nav_list li.h_btn.entry a::before {
            content: "";
            display: block;
            background-size: 100% 100%;
            background-repeat: no-repeat;
            background-image: url("../../add_img/recruit/arrow_right_black.svg"); }
          header .nav_list li.h_btn.entry a:hover {
            background-color: rgba(30, 30, 75, 0.75);
            color: #fff; }
            header .nav_list li.h_btn.entry a:hover::before {
              background-image: url("../../add_img/recruit/arrow_right_white.svg"); }
      header .nav_list li.h_btn.corporate {
        width: 12.375rem; }
        header .nav_list li.h_btn.corporate a::before {
          content: "";
          display: block;
          background-size: 100% 100%;
          background-repeat: no-repeat;
          background-image: url("../../add_img/recruit/arrow_right_white.svg"); }
        header .nav_list li.h_btn.corporate a:hover {
          background: rgba(255, 255, 255, 0.75);
          color: #231815; }
          header .nav_list li.h_btn.corporate a:hover::before {
            background-image: url("../../add_img/recruit/arrow_right_black.svg"); }
      header .nav_list li a {
        font-size: 0.875rem;
        line-height: 1.4285714286; }
        header .nav_list li a::after {
          -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          background-size: 100%;
          background-color: #fff;
          height: 0.0625rem;
          position: absolute;
          bottom: -0.375rem;
          left: 0;
          -webkit-transform: scale(0, 1);
          -ms-transform: scale(0, 1);
          transform: scale(0, 1);
          transform-origin: 0 50%; }
        header .nav_list li a:hover::after {
          -webkit-transform: scale(1, 1);
          -ms-transform: scale(1, 1);
          transform: scale(1, 1); }
      header.h_Color_default {
        padding: 1rem 2.5rem; }
        header.h_Color_default .nav_list li.h_btn.entry a:hover {
          background-color: rgba(255, 255, 255, 0.5); } }
  @media only screen and (max-width: 750px) {
    header {
      padding: 5.3333333333vw 0;
      width: 100%; }
      header .h_logo {
        width: 45.3333333333vw;
        margin-left: 5.3333333333vw;
        z-index: 500; }
        header .h_logo span {
          padding-left: 7.7333333333vw;
          font-size: 0.7142857143rem; }
      header .h_btn_box {
        margin-right: 5.3333333333vw; }
      header .h_entry_btn, header .h_corporate_btn, header .h_nav_btn {
        width: 12vw;
        height: 12vw;
        position: relative; }
      header .h_entry_btn, header .h_corporate_btn {
        margin-right: 1.6vw; }
        header .h_entry_btn a, header .h_corporate_btn a {
          height: 100%;
          display: block; }
        header .h_entry_btn span, header .h_corporate_btn span {
          font-size: 0.5rem;
          position: absolute;
          left: 50%;
          bottom: 1.8666666667vw;
          z-index: 0;
          -webkit-transform: translate(-50%, 0);
          -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }
      header .h_entry_btn {
        background-color: #fff; }
        header .h_entry_btn img {
          width: 3.6vw;
          position: absolute;
          left: 50%;
          top: 2.6666666667vw;
          z-index: 0;
          -webkit-transform: translate(-50%, 0);
          -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }
      header .h_corporate_btn {
        border: solid 0.4vw #fff;
        color: #fff; }
        header .h_corporate_btn img {
          width: 2.2666666667vw;
          position: absolute;
          left: 50%;
          top: 2.6666666667vw;
          z-index: 0;
          -webkit-transform: translate(-50%, 0);
          -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }
      header .h_btn_wrap .h_nav_btn {
        color: #fff;
        border: solid 0.4vw #fff;
        z-index: 500; }
        header .h_nav_btn span {
          position: absolute;
          left: 3.2vw;
          z-index: 0;
          display: block;
          width: 4.9333333333vw;
          border-bottom: solid 0.4vw #fff;
          -webkit-transition: .35s ease-in-out;
          /*変化の速度を指定*/
          -moz-transition: .35s ease-in-out;
          /*変化の速度を指定*/
          transition: .35s ease-in-out;
          /*変化の速度を指定*/ }
          header .h_nav_btn span:nth-child(1) {
            top: 3.4666666667vw; }
          header .h_nav_btn span:nth-child(2) {
            top: 4.6666666667vw; }
          header .h_nav_btn span:nth-child(3) {
            top: 5.8666666667vw;
            width: 2.6666666667vw; }
        header .h_btn_wrap .h_nav_btn::after {
          font-family: "Oswald", sans-serif;
          font-size: 0.5rem;
          font-weight: 700;
          content: "MENU";
          display: block;
          width: auto;
          height: auto;
          color: #fff;
          position: absolute;
          left: 50%;
          bottom: 1.8666666667vw;
          z-index: 0;
          -webkit-transform: translate(-50%, 0);
          -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }
        header .h_nav_btn.active span:nth-child(1) {
          top: 5.0666666667vw;
          left: 3.2vw;
          -webkit-transform: rotate(-30deg);
          -moz-transform: rotate(-30deg);
          transform: rotate(-30deg); }
        header .h_nav_btn.active span:nth-child(2) {
          top: 5.0666666667vw;
          -webkit-transform: rotate(30deg);
          -moz-transform: rotate(30deg);
          transform: rotate(30deg); }
        header .h_nav_btn.active span:nth-child(3) {
          display: none; }
        header .h_btn_wrap .h_nav_btn.active::after {
          content: "CLOSE";
          display: block;
          width: auto;
          height: auto; }
      header .h_nav_wrap {
        position: fixed;
        /*表示位置を固定*/
        z-index: 2;
        /*重ね順を変更*/
        top: 0;
        /*表示位置を指定*/
        right: 0;
        /*表示位置を指定*/
        background: #1E1E4B;
        color: #fff;
        width: 100%;
        /*全幅表示*/
        transform: translateX(-100%);
        /*ナビを上に隠す*/
        transition: all 0.6s;
        /*アニメーションの時間を指定*/
        padding: 25.6vw 0 86vw;
        overflow: auto; }
        header .h_nav_wrap.active {
          transform: translateX(0%);
          top: 0;
          /*表示位置を指定*/ }
        header .h_nav_wrap::before {
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          background-color: #1E1E4B;
          width: 1.3333333333vw;
          height: 100%;
          position: absolute;
          top: 50%;
          left: 0;
          z-index: 0;
          -webkit-transform: translate(0, -50%);
          -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }
        header .h_nav_wrap .nav_list_wrap li {
          margin: 5.3333333333vw auto 0;
          text-align: center;
          font-size: 0.8928571429rem; }
          header .h_nav_wrap .nav_list_wrap li a {
            display: block;
            color: #fff; }
          header .h_nav_wrap .nav_list_wrap li img {
            width: auto;
            height: 9.3333333333vw; }
          header .h_nav_wrap .nav_list_wrap li .under {
            display: none; }
        header .h_nav_wrap .nav_list_wrap .h_btn.corporate {
          width: 70.2666666667vw;
          margin: 6.6666666667vw auto 0; }
          header .h_nav_wrap .nav_list_wrap .h_btn.corporate a {
            padding: 4vw 26.4vw 4vw 0;
            position: relative;
            font-size: 1.25rem;
            font-weight: 700;
            text-align: right; }
            header .h_nav_wrap .nav_list_wrap .h_btn.corporate a::before {
              content: "";
              display: block;
              background-size: 100% 100%;
              background-repeat: no-repeat;
              background-image: url("../../add_img/recruit/arrow_right_white.svg");
              width: 11.7333333333vw;
              height: 1.3333333333vw;
              position: absolute;
              top: 50%;
              right: 3.4666666667vw;
              z-index: 0;
              -webkit-transform: translate(0, -50%);
              -ms-transform: translate(0, -50%);
              transform: translate(0, -50%); } }

/*footer
-----------------------------------------------------------------------------*/
footer {
  position: relative; }
  footer .page_top_btn {
    position: absolute;
    letter-spacing: 0.1em;
    z-index: 900;
    color: #1E1E4B;
    -webkit-transition: transform 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
    -ms-transition: transform 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
    transition: transform 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
    footer .page_top_btn::before {
      -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      background-color: #1E1E4B; }
    footer .page_top_btn strong {
      writing-mode: tb-rl; }
  footer .f_nav_wrap {
    background: #1E1E4B;
    color: #fff; }
  footer .f_corporate_btn a {
    display: block;
    text-align: right;
    position: relative;
    color: #fff;
    letter-spacing: 0.1em;
    -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
    -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
    transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
    footer .f_corporate_btn a::before {
      content: "";
      display: block;
      background-size: 100% 100%;
      background-repeat: no-repeat;
      background-image: url("../../add_img/recruit/arrow_right_white.svg"); }
  footer .copy {
    text-align: center;
    font-weight: 500;
    color: #1E1E4B; }
  @media print, screen and (min-width: 751px) {
    footer .page_top_btn {
      right: 1.5625rem;
      top: -12.625rem;
      margin-bottom: 2rem;
      font-size: 0.75rem; }
      footer .page_top_btn::before {
        width: 0.0625rem;
        height: 4.6875rem;
        margin: 0 auto 0.5rem; }
      footer .page_top_btn:hover {
        opacity: 0.7; }
    footer .f_nav_wrap {
      padding: 3.125rem 0 4.5rem; }
    footer .f_nav_area {
      width: 87.9166666667%;
      margin: 0 auto; }
      footer .f_nav_area .list_box {
        letter-spacing: 0.1em; }
        footer .f_nav_area .list_box:not(:last-child) {
          width: 39.4312796209%; }
      footer .f_nav_area .list {
        font-weight: 500; }
        footer .f_nav_area .list:not(:first-child) {
          margin-top: 3.5rem; }
        footer .f_nav_area .list dt a, footer .f_nav_area .list dd a {
          position: relative;
          -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
          footer .f_nav_area .list dt a::after, footer .f_nav_area .list dd a::after {
            -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
            -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
            transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
            content: "";
            display: block;
            width: 100%;
            height: 100%;
            background-size: 100%;
            background-color: #fff;
            height: 0.0625rem;
            position: absolute;
            bottom: -0.375rem;
            left: 0;
            -webkit-transform: scale(0, 1);
            -ms-transform: scale(0, 1);
            transform: scale(0, 1);
            transform-origin: 0 50%; }
          footer .f_nav_area .list dt a:hover::after, footer .f_nav_area .list dd a:hover::after {
            -webkit-transform: scale(1, 1);
            -ms-transform: scale(1, 1);
            transform: scale(1, 1); }
        footer .f_nav_area .list dt a {
          font-size: 0.875rem; }
        footer .f_nav_area .list dd {
          margin-top: 1rem; }
          footer .f_nav_area .list dd:first-child {
            margin-top: 1.125rem; }
          footer .f_nav_area .list dd a {
            font-size: 0.8125rem;
            padding-left: 0.75rem;
            position: relative; }
            footer .f_nav_area .list dd a::before {
              position: absolute;
              top: 50%;
              left: 0;
              z-index: 0;
              -webkit-transform: translate(0, -50%);
              -ms-transform: translate(0, -50%);
              transform: translate(0, -50%);
              content: "";
              display: block;
              width: 100%;
              height: 100%;
              background-color: #fff;
              width: 0.375rem;
              height: 0.075rem; }
    footer .f_corporate_btn {
      width: 13.5rem;
      margin-top: 1.375rem;
      border: 1px solid #fff; }
      footer .f_corporate_btn a {
        padding: 0.75rem 5.125rem 0.75rem 0;
        font-size: 0.875rem; }
        footer .f_corporate_btn a::before {
          width: 2.1875rem;
          height: 0.28125rem;
          position: absolute;
          top: 50%;
          right: 1.25rem;
          z-index: 0;
          -webkit-transform: translate(0, -50%);
          -ms-transform: translate(0, -50%);
          transform: translate(0, -50%);
          -webkit-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          -ms-transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
          transition: all 0.3s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }
        footer .f_corporate_btn a:hover {
          background: #fff;
          color: #1E1E4B; }
          footer .f_corporate_btn a:hover::before {
            background-image: url("../../add_img/recruit/arrow_right_black.svg");
            position: absolute;
            top: 50%;
            right: 0.875rem;
            z-index: 0;
            -webkit-transform: translate(0, -50%);
            -ms-transform: translate(0, -50%);
            transform: translate(0, -50%); }
    footer .copy {
      padding: 2.375rem 0;
      font-size: 0.8125rem; } }
  @media only screen and (max-width: 750px) {
    footer .page_top_btn {
      right: 4.4vw;
      top: -36.2666666667vw;
      font-size: 0.6428571429rem; }
      footer .page_top_btn::before {
        width: 0.2666666667vw;
        height: 14.9333333333vw;
        margin: 0 auto 1.3333333333vw; }
    footer .f_nav_wrap {
      padding: 13.3333333333vw 0;
      text-align: center; }
      footer .f_nav_wrap .list_box:not(:first-child) {
        margin-top: 5.3333333333vw; }
      footer .f_nav_wrap .list:not(:first-child) {
        margin-top: 5.3333333333vw; }
    footer .f_corporate_btn {
      width: 70.2666666667vw;
      margin: 7.2vw auto 0;
      border: 2px solid #fff; }
      footer .f_corporate_btn a {
        padding: 4.2666666667vw 26.4vw 4.2666666667vw 0;
        font-size: 1.25rem;
        letter-spacing: 0; }
        footer .f_corporate_btn a::before {
          width: 11.7333333333vw;
          height: 1.3333333333vw;
          position: absolute;
          top: 50%;
          right: 3.4666666667vw;
          z-index: 0;
          -webkit-transform: translate(0, -50%);
          -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }
    footer .copy {
      padding: 6.6666666667vw 0;
      font-size: 0.7142857143rem; } }

/*js・アニメーション
-----------------------------------------------------------------------------*/
.tran, .scrollListItem, .scrollItem {
  -webkit-transition: all 0.6s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
  -ms-transition: all 0.6s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s;
  transition: all 0.6s cubic-bezier(0.66, 0.01, 0.67, 0.71) 0s; }

.fadein {
  opacity: 0; }
  .fadein.scrollActive {
    opacity: 1; }

.fadeout {
  opacity: 1; }
  .fadeout.scrollActive {
    opacity: 0; }

.fadeTop {
  -webkit-transform: translate(0, 6.25rem);
  -ms-transform: translate(0, 6.25rem);
  transform: translate(0, 6.25rem); }
  .fadeTop.scrollActive {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0); }

.fadeBottom {
  -webkit-transform: translate(0, -6.25rem);
  -ms-transform: translate(0, -6.25rem);
  transform: translate(0, -6.25rem); }
  .fadeBottom.scrollActive {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0); }

.fadeRight {
  -webkit-transform: translate(-6.25rem, 0);
  -ms-transform: translate(-6.25rem, 0);
  transform: translate(-6.25rem, 0); }
  .fadeRight.scrollActive {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0); }

.fadeLeft {
  -webkit-transform: translate(6.25rem, 0);
  -ms-transform: translate(6.25rem, 0);
  transform: translate(6.25rem, 0); }
  .fadeLeft.scrollActive {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0); }


@media only screen and (max-width: 750px) {
footer .f_nav_wrap .list dd {
    margin-top: 5.3333333333vw;
}
}