@charset "UTF-8";
/******************************************/
header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 9999; }

.head {
  width: 100%;
  margin: 0 auto;
  padding: 0 30px 0 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center; }
  .head h1 {
    transition: .3s; }
    .head h1 span {
      background: url("../images/common/logo.svg") center center no-repeat;
      background-size: contain;
      overflow: hidden;
      text-indent: 100%;
      white-space: nowrap;
      display: block;
      aspect-ratio: 254/30;
      width: 100%;
      max-width: 254px;
      height: auto;
      transition: .3s; }
    .head h1 a {
      transition: .3s;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      text-decoration: none;
      width: 345px;
      height: 130px;
      background: #00275C;
      color: #fff; }

.nav {
  width: calc(100% - 345px);
  max-width: 675px; }
  .nav nav {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: stretch; }
    .nav nav ul {
      background-color: #fff;
      height: 60px;
      border: 1px solid #C0C9D5;
      border-right: none;
      border-radius: 5px 0 0 5px;
      width: calc(100% - 180px);
      padding: 0 18px;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: flex-start; }
    .nav nav li {
      padding: 0 22px;
      position: relative; }
      .nav nav li:before {
        position: absolute;
        content: "";
        display: block;
        right: -2px;
        top: 19px;
        transform: rotate(15deg);
        background-color: #90A0B5;
        width: 1px;
        height: 20px; }
      .nav nav li:last-of-type:before {
        display: none; }
      .nav nav li a {
        text-decoration: none;
        color: #00275C;
        font: 1.6rem/62px "Noto Sans", sans-serif;
        font-weight: 500;
        letter-spacing: 0.05em; }

.head_recruit.btn {
  width: 180px;
  height: 60px;
  padding: 0 25px; }
  .head_recruit.btn span {
    font: 1.6rem/60px "Noto Sans", sans-serif;
    font-weight: 500; }

.toggle {
  display: none; }

@media (hover: hover) {
  .head h1 a:hover span, .head h1 a:hover small {
    opacity: 0.5; }

  .nav nav li a:hover {
    color: #C80F2F; } }
@media (max-width: 1280px) {
  .head h1 a {
    width: 320px;
    height: 120px; }

  .nav {
    width: calc(100% - 340px);
    max-width: 627px; }
    .nav nav ul {
      padding: 0; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .head h1 a {
    height: 100px; }

  .nav {
    display: none; }

  .toggle {
    display: block;
    width: 70px;
    height: 70px;
    background-image: linear-gradient(180deg, #1C4B8C 50%, #00275C 50%);
    position: relative; }
    .toggle span {
      position: absolute;
      display: block;
      width: 30px;
      height: 1px;
      background-color: #FFFFFF;
      left: 50%;
      transform: translate(-50%, -50%);
      transition: .3s; }
      .toggle span:nth-of-type(1) {
        top: 35%; }
      .toggle span:nth-of-type(2) {
        top: 50%; }
      .toggle span:nth-of-type(3) {
        top: 65%; }
    .toggle.active span {
      left: 50%; }
      .toggle.active span:nth-of-type(1) {
        top: 50%;
        transform: translate(-50%, -50%) rotate(45deg); }
      .toggle.active span:nth-of-type(2) {
        top: 50%;
        opacity: 0; }
      .toggle.active span:nth-of-type(3) {
        top: 50%;
        transform: translate(-50%, -50%) rotate(-45deg); } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .head {
    padding: 0 15px 0 0; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .head {
    padding: 0 15px 0 0; }
    .head h1 span {
      background: url("../images/common/logo.svg") center center no-repeat;
      background-size: 141px auto; }
    .head h1 a {
      width: 190px;
      height: 70px; }

  .toggle {
    display: block;
    width: 45px;
    height: 45px; }
    .toggle span {
      position: absolute;
      display: block;
      width: 15px; } }
/*max-width:480px*/
/******************************************/
.btn {
  margin: 0 auto 0;
  color: #FFFFFF;
  position: relative;
  z-index: 10;
  text-decoration: none;
  display: block;
  padding: 0 40px;
  width: 100%;
  height: 100px;
  transition: .3s;
  background-image: linear-gradient(180deg, #1C4B8C 50%, #00275C 50%); }
  .btn span {
    display: block;
    width: 100%;
    margin: 0 auto;
    font: 1.8rem/100px "Noto Sans", sans-serif;
    font-weight: 400;
    letter-spacing: 0.01em;
    padding: 0 0 0 0;
    margin: 0 auto;
    text-decoration: none;
    position: relative; }
    .btn span:after {
      position: absolute;
      content: "";
      display: block;
      width: 15px;
      height: 15px;
      background: url("../images/common/arrow_w.svg") center center no-repeat;
      background-size: 10px 15px;
      top: 50%;
      left: auto;
      right: 0;
      transform: translate(0%, -50%); }
    .btn span:before {
      position: absolute;
      content: "";
      display: block;
      width: 2px;
      height: 25px;
      background: #7B93B3;
      top: 50%;
      left: auto;
      right: 35px;
      transform: translate(0%, -50%); }

@media (hover: hover) {
  .btn:hover {
    background-image: linear-gradient(180deg, #4771AB 50%, #1C4B8C 50%); }
    .btn:hover span:after {
      animation: hover_action 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); } }
@keyframes hover_action {
  0% {
    right: 0; }
  50% {
    right: -15px; }
  50.01% {
    right: 15px; }
  100% {
    text-indent: 0; } }
/*max-width:1920px*/
/*max-width:1280px*/
/*max-width:1024px*/
/*max-width:768px*/
@media (max-width: 480px) {
  .btn {
    padding: 0 20px;
    width: 100%;
    height: 70px; }
    .btn span {
      width: 100%;
      font: 1.5rem/70px "Noto Sans", sans-serif;
      font-weight: 400; }
      .btn span:before {
        height: 20px;
        right: 28px; } }
/*max-width:480px*/
/******************************************/
.gnav {
  padding: 180px 0 0;
  background-color: #F2F5FA;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 888;
  overflow-y: auto;
  pointer-events: none;
  transform: scaleX(0);
  transition: .3s; }
  .gnav.active {
    pointer-events: all;
    transform: scaleX(1); }
  .gnav nav {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    justify-content: space-between; }
    .gnav nav div {
      max-width: 640px;
      width: calc(100% - 120px);
      margin: 0 auto;
      padding: 0 0 35px; }
    .gnav nav img {
      width: 100%;
      height: auto;
      object-fit: contain; }
    .gnav nav ul {
      width: 100%;
      margin: 0 auto 50px;
      border-top: 1px solid #C0C9D5; }
    .gnav nav li {
      border-bottom: 1px solid #C0C9D5; }
      .gnav nav li a {
        transition: .3s;
        display: block;
        padding: 25px 25px;
        color: #7B93B3;
        text-decoration: none;
        font: 4rem/1em the-seasons, YuMincho, "Yu Mincho", "Hiragino Mincho ProN", sans-serif;
        font-weight: 300;
        position: relative; }
        .gnav nav li a:before {
          position: absolute;
          content: "";
          display: block;
          background: url("../images/common/arrowb.png") center center no-repeat;
          background-size: contain;
          width: 15px;
          height: 15px;
          top: 50%;
          left: auto;
          right: 15px;
          -webkit-transform: translate(0%, -50%);
          /* Safari用 */
          transform: translate(0%, -50%); }
      .gnav nav li span {
        color: #00275C;
        font: 1.6rem/1em "Noto Sans", sans-serif;
        font-weight: 700;
        position: relative;
        display: block;
        padding: 0 0 0 30px;
        margin: 10px 0 0; }
        .gnav nav li span:before {
          position: absolute;
          content: "";
          display: block;
          background: url("../images/common/icon.svg") center center no-repeat;
          background-size: contain;
          width: 13px;
          height: 13px;
          left: 3px;
          top: 0; }
    .gnav nav p {
      width: calc(100% - 60px);
      max-width: 580px;
      margin: 0 auto;
      font: 1.6rem/1em "Noto Sans", sans-serif;
      font-weight: 400;
      letter-spacing: 0.1em; }
      .gnav nav p a {
        text-decoration: none;
        color: #00275C; }
    .gnav nav .btn {
      width: calc(100% - 60px);
      max-width: 580px;
      margin: 0 auto 30px;
      height: 144px; }
      .gnav nav .btn span {
        font: 2.4rem/144px "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
        font-weight: 400;
        padding: 0 0 0 50px;
        text-decoration: none;
        background: url("../images/common/mail.svg") center left no-repeat; }

@media (hover: hover) {
  .gnav nav li a:hover {
    background-color: #FFFFFF; }
  .gnav nav p a:hover {
    color: #7B93B3; } }
/*max-width:1280px*/
/*max-width:1024px*/
@media (max-width: 768px) {
  .gnav nav div {
    max-width: 640px;
    width: calc(100% - 60px); }
  .gnav nav .btn {
    width: calc(100% - 40px);
    max-width: 580px;
    margin: 0 auto 30px;
    height: 100px; }
    .gnav nav .btn span {
      font: 2rem/100px "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
      font-weight: 400;
      padding: 0 0 0 50px;
      text-decoration: none;
      background: url("../images/common/mail.svg") center left no-repeat; }
  .gnav nav p {
    width: calc(100% - 40px); } }
/*max-width:768px*/
@media (max-width: 480px) {
  .gnav {
    padding: 100px 0 0; }
    .gnav nav div {
      max-width: 315px;
      width: calc(100% - 60px); }
    .gnav nav ul {
      margin: 0 auto 30px; }
    .gnav nav li a {
      padding: 20px;
      font: 3.2rem/1em the-seasons, YuMincho, "Yu Mincho", "Hiragino Mincho ProN", sans-serif;
      font-weight: 300; }
    .gnav nav li span {
      font: 1.5rem/1em "Noto Sans", sans-serif;
      font-weight: 700;
      padding: 0 0 0 25px; }
      .gnav nav li span:before {
        top: -1px; }
    .gnav nav p {
      width: 100%;
      font: 1.4rem/1em "Noto Sans", sans-serif;
      font-weight: 400; }
    .gnav nav .btn {
      width: 100%;
      max-width: 315px;
      margin: 0 auto 20px;
      height: 100px; }
      .gnav nav .btn span {
        font: 1.9rem/100px "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
        font-weight: 400;
        padding: 0 0 0 38px;
        background-size: 27px auto; } }
/*max-width:480px*/
/******************************************/
.contact {
  padding: 100px 0;
  background-color: #fff; }

.contact_box {
  max-width: 1240px;
  width: calc(100% - 80px);
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start; }
  .contact_box div {
    width: 500px;
    color: #00275C; }
  .contact_box h2 {
    font: 10rem/1em the-seasons, YuMincho, "Yu Mincho", "Hiragino Mincho ProN", sans-serif;
    font-weight: 300;
    margin: 0 0 25px; }
    .contact_box h2 span {
      font: 1.8rem/1em "Noto Sans", sans-serif;
      font-weight: 700;
      position: relative;
      display: block;
      padding: 0 0 0 40px;
      margin: 0 0 15px; }
      .contact_box h2 span:before {
        position: absolute;
        content: "";
        display: block;
        background: url("../images/common/icon.svg") center center no-repeat;
        background-size: contain;
        width: 17px;
        height: 17px;
        left: 10px;
        top: 0; }
  .contact_box p {
    letter-spacing: 0.05em;
    font: 1.7rem/2em "Noto Sans", sans-serif;
    font-weight: 400; }
    .contact_box p br {
      display: none; }
  .contact_box a {
    margin: 30px 0 0;
    padding: 0 40px 0 50px;
    max-width: 580px;
    width: calc(100% - 500px);
    height: 155px; }
    .contact_box a span {
      font: 2.4rem/155px "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
      font-weight: 400;
      padding: 0 0 0 50px;
      text-decoration: none;
      background: url("../images/common/mail.svg") center left no-repeat; }

@media (max-width: 1024px) {
  .contact_box {
    display: block; }
    .contact_box div {
      width: 100%; }
    .contact_box a {
      margin: 30px 0 0;
      max-width: 580px;
      width: 100%;
      height: 155px; }
      .contact_box a span {
        font: 2.4rem/155px "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
        font-weight: 400;
        padding: 0 0 0 50px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .contact_box {
    width: calc(100% - 60px); }
    .contact_box h2 {
      font: 8rem/1em the-seasons, YuMincho, "Yu Mincho", "Hiragino Mincho ProN", sans-serif;
      font-weight: 300;
      margin: 0 0 25px; }
      .contact_box h2 span {
        font: 1.4rem/1em "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
        font-weight: 700;
        position: relative;
        display: block;
        padding: 0 0 0 35px;
        margin: 0 0 15px; }
        .contact_box h2 span:before {
          width: 13px;
          height: 13px;
          left: 10px;
          top: 0; }
    .contact_box p {
      font: 1.6rem/2em "Noto Sans", sans-serif;
      font-weight: 400; }
      .contact_box p br {
        display: block; }
    .contact_box a {
      max-width: 430px;
      height: 125px; }
      .contact_box a span {
        font: 2rem/125px "Noto Sans", sans-serif;
        font-weight: 400;
        padding: 0 0 0 40px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .contact {
    padding: 80px 0; }

  .contact_box {
    max-width: 315px;
    width: calc(100% - 30px);
    display: block; }
    .contact_box h2 {
      font: 5rem/1em the-seasons, YuMincho, "Yu Mincho", "Hiragino Mincho ProN", sans-serif;
      font-weight: 300;
      margin: 0 0 25px; }
      .contact_box h2 span {
        font: 1.5rem/1em "Noto Sans", sans-serif;
        font-weight: 700; }
        .contact_box h2 span:before {
          left: 5px; }
    .contact_box p {
      font: 1.5rem/2em "Noto Sans", sans-serif;
      font-weight: 400;
      margin-bottom: 30px; }
      .contact_box p br {
        display: block; }
    .contact_box a {
      padding: 0 20px 0 25px;
      margin: 0;
      max-width: 315px;
      width: 100%;
      height: 100px; }
      .contact_box a span {
        font: 1.85rem/100px "Noto Sans", sans-serif;
        font-weight: 400;
        padding: 0 0 0 38px; } }
/*max-width:480px*/
/******************************************/
.bnr {
  background-color: #F2F5FA;
  padding: 50px 0;
  border-top: 1px solid #C0C9D5; }

.bnr_box {
  max-width: 1240px;
  width: calc(100% - 80px);
  margin: 0 auto; }
  .bnr_box a.veertien {
    image-rendering: -webkit-optimize-contrast;
    display: block;
    aspect-ratio: 300/150;
    width: 100%;
    max-width: 300px;
    height: auto;
    margin: 0 20px 0 0;
    position: relative; }

@media (max-width: 768px) {
  .bnr {
    padding: 30px 0 50px; }

  .bnr_box {
    width: calc(100% - 60px); }
    .bnr_box a.veertien {
      width: calc((100% - 10px)/2); } }
/*max-width:768px*/
@media (max-width: 480px) {
  .bnr {
    padding: 30px 0; }

  .bnr_box {
    max-width: 315px;
    width: calc(100% - 30px); } }
/*max-width:480px*/
/******************************************/
.page_top {
  position: fixed;
  right: 15px;
  bottom: 25px;
  writing-mode: vertical-rl;
  z-index: 777;
  font: 1.6rem/1em "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 400;
  color: #00275C;
  opacity: 0;
  transition: .3s;
  pointer-events: none; }
  .page_top.active {
    opacity: 1;
    pointer-events: all; }
  .page_top:before {
    transition: .3s;
    position: absolute;
    content: "";
    display: block;
    width: 1px;
    height: 90px;
    background-color: #3A5B87;
    left: 8px;
    top: -105px; }
  .page_top:after {
    transition: .3s;
    position: absolute;
    content: "";
    display: block;
    background-color: #3A5B87;
    width: 1px;
    height: 15px;
    left: 4px;
    top: -105px;
    transform: rotate(35deg); }

@media (hover: hover) {
  .page_top:hover {
    cursor: pointer; }
    .page_top:hover:before {
      height: 100px;
      left: 8px;
      top: -115px; }
    .page_top:hover:after {
      left: 4px;
      top: -115px; } }
/*max-width:1280px*/
/*max-width:1024px*/
/*max-width:768px*/
@media (max-width: 480px) {
  .page_top {
    position: fixed;
    right: 15px;
    bottom: 25px; }
    .page_top:before {
      height: 45px;
      top: -55px; }
    .page_top:after {
      height: 13px;
      left: 4px;
      top: -55px; } }
@media (max-width: 480px) and (hover: hover) {
  .page_top:hover {
    cursor: pointer; }
    .page_top:hover:before {
      height: 45px;
      top: -55px; }
    .page_top:hover:after {
      height: 13px;
      left: 4px;
      top: -55px; } }
/*max-width:480px*/
/******************************************/
footer {
  background-color: #00275C;
  border-bottom: 8px solid #C80F2F;
  min-height: 440px; }

.footer {
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
  position: relative; }
  .footer:before {
    transition: .3s;
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    background: url("../images/common/footer.svg") center center no-repeat;
    background-size: contain;
    display: block;
    aspect-ratio: 1060/125;
    width: 55%;
    max-width: 1060px;
    height: auto; }
  .footer .img {
    position: absolute;
    right: 0;
    top: -25%;
    width: 54%;
    background: url("../images/common/footer_mv.png") right top no-repeat;
    background-size: contain;
    aspect-ratio: 1055/500;
    max-width: 1055px;
    height: auto; }

.footer_box {
  width: calc(100% - 120px);
  margin: 0 auto;
  padding: 100px 0 100px;
  position: relative;
  z-index: 10; }
  .footer_box > div {
    margin: 0 0 0 60px;
    max-width: 700px;
    width: 100%;
    color: #E0EBF2; }
  .footer_box .logo {
    font: 1.8rem/1em "Noto Sans", sans-serif;
    font-weight: 500;
    letter-spacing: 0.1em;
    position: relative;
    padding: 50px 0 0;
    margin: 0 0 30px; }
    .footer_box .logo:before {
      position: absolute;
      content: "";
      display: block;
      background: url("../images/common/footer_ttl.svg") center center no-repeat;
      background-size: contain;
      width: 280px;
      height: 33px;
      top: 0;
      left: 0; }
  .footer_box address,
  .footer_box .number {
    font: 1.6rem/2em "Noto Sans", sans-serif;
    font-weight: 500;
    letter-spacing: 0.1em; }
    .footer_box address a,
    .footer_box .number a {
      margin: 0 20px 0 0; }
    .footer_box address br,
    .footer_box .number br {
      display: none; }
  .footer_box a {
    color: #E0EBF2;
    text-decoration: none; }
  .footer_box ul {
    margin: 40px 0 0;
    padding: 20px 0 0 0;
    border-top: 1px solid #3A5B87;
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start; }
  .footer_box li {
    margin: 0 30px 0 0;
    font: 1.5rem/1em "Noto Sans", sans-serif;
    font-weight: 500; }

@media (max-width: 1280px) {
  .footer_box > div {
    margin: 0; } }
@media (max-width: 1024px) {
  .footer .img {
    top: -10%;
    width: 58%;
    background: url("../images/common/footer_mv.png") right -15px top no-repeat;
    background-size: contain; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .footer:before {
    left: 0;
    top: auto;
    bottom: 0;
    width: 100%; }
  .footer .img {
    background: url("../images/common/footer_mv_sp.png") center center no-repeat;
    background-size: contain;
    aspect-ratio: 375/207;
    width: 100%;
    max-width: 100%;
    height: auto;
    top: -10%; }

  .footer_box {
    width: calc(100% - 60px);
    max-width: 640px;
    margin: 0 auto;
    padding: 48% 0 18%; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .footer .img {
    top: -6%;
    background: url("../images/common/footer_mv_sp.png") center center no-repeat;
    background-size: contain;
    aspect-ratio: 375/207;
    width: 100%;
    max-width: 100%;
    height: auto; }

  .footer_box {
    width: calc(100% - 30px);
    max-width: 315px;
    margin: 0 auto;
    padding: 48% 0 15%; }
    .footer_box .logo {
      font: 1.7rem/1em "Noto Sans", sans-serif;
      font-weight: 500;
      letter-spacing: 0.1em;
      position: relative;
      padding: 55px 0 0;
      margin: 0 0 25px; }
    .footer_box address,
    .footer_box .number {
      font: 1.5rem/1.6em "Noto Sans", sans-serif;
      font-weight: 500;
      letter-spacing: 0.1em; }
      .footer_box address a,
      .footer_box .number a {
        margin: 0 15px 0 0; }
      .footer_box address br,
      .footer_box .number br {
        display: block; }
    .footer_box a {
      color: #E0EBF2;
      text-decoration: none; }
    .footer_box ul {
      margin: 20px 0 0;
      padding: 25px 0 0 0;
      display: block; }
    .footer_box li {
      margin: 0 0 35px;
      font: 1.5rem/1em "Noto Sans", sans-serif;
      font-weight: 500; } }
/*max-width:480px*/
