@charset "UTF-8";
body {
  font-family: "Noto Serif JP", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}

a {
  text-decoration: none;
}

header #sp_open_menu {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1500;
  width: 80px;
  height: 80px;
  background: #002e8c;
  display: table;
}

header #sp_open_menu .menu-trigger {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
  position: relative;
}

header #sp_open_menu .menu-trigger span {
  display: block;
  width: 30px;
  height: 1px;
  background-color: #fff;
  margin: 10px auto;
}

header #sp_open_menu .menu-trigger.active {
  transform: rotate(360deg);
}

header #sp_open_menu .menu-trigger.active span:nth-of-type(1) {
  transform: translateY(10px) rotate(-45deg);
}

header #sp_open_menu .menu-trigger.active span:nth-of-type(2) {
  transform: translateY(0) rotate(45deg);
}

header #sp_open_menu .menu-trigger.active span:nth-of-type(3) {
  opacity: 0;
}

header #gn_main {
  display: none;
}

header nav {
  width: 100%;
  height: 100%;
  background: rgba(0, 46, 140, 0.95);
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

header nav a {
  color: #FFFFFF;
}

header.open #gn_main {
  display: block;
}

header.open #sp_open_menu {
  background: #000000;
}

main {
  display: block;
}

#client_top a {
  color: #003b87;
}

#client_top a h1 {
  font-family: 'Times New Roman', serif;
  font-weight: 500;
  line-height: 0.84;
}

#partner_top a {
  color: #0f599e;
}

#recruit_top a {
  color: #35398c;
}

#copyright {
  color: #003b87;
  position: fixed;
  bottom: 0;
  left: 10px;
  z-index: 9;
}

img {
  width: 100%;
  height: auto;
}

#bg_change {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}

#bg_change_top {
  background: #FFFFFF;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 50%;
  z-index: 1;
}

#bg_change_bottom {
  background: #FFFFFF;
  position: fixed;
  top: 50%;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

#client_top h1,
#client_top h2,
#client_top p {
  text-shadow: -2px -2px 6px rgba(0, 59, 135, 0.3);
}

#partner_top h1,
#partner_top h2,
#partner_top p {
  text-shadow: -2px -2px 6px rgba(15, 89, 158, 0.3);
}

#recruit_top h1,
#recruit_top h2,
#recruit_top p {
  text-shadow: -2px -2px 6px rgba(53, 57, 140, 0.3);
}

#client_top a,
#partner_top a,
#recruit_top a {
  position: relative;
  z-index: 10;
}

@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
  #bg_load {
    background: url(/common/img/top/pc/client_mv.jpg), url(/common/img/top/pc/partner_mv.jpg), url(/common/img/top/pc/recruit_mv.jpg?date=202405301815);
  }
  #client_top a,
  #partner_top a,
  #recruit_top a {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
  }
  #client_top h1,
  #client_top h2,
  #client_top .caption,
  #client_top .description {
    overflow: hidden;
  }
  span.kakko {
    margin-left: -0.4em;
    margin-right: -0.4em;
  }
  span.kakko span.kuten {
    margin-right: -0.05em;
  }
  span.touten {
    margin-right: -0.5em;
  }
  span.kuten {
    margin-right: -0.5em;
  }
  header nav {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    box-sizing: border-box;
  }
  header nav ul {
    display: flex;
    margin: 0 auto;
    justify-content: space-between;
  }
  header nav ul li {
    display: flex;
    width: 29%;
  }
  header nav ul li img {
    width: 100%;
    height: auto;
  }
  header nav ul li a:hover img {
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
  header nav .txt {
    font-size: 15px;
    margin-top: 13px;
  }
  body.client_over #bg_change_top,
  body.partner_over #bg_change_top,
  body.recruit_over #bg_change_top {
    transform: translateY(-100%);
    transition: transform 0.5s linear;
  }
  body.client_over #bg_change_bottom,
  body.partner_over #bg_change_bottom,
  body.recruit_over #bg_change_bottom {
    transform: translateY(100%);
    transition: transform 0.5s linear;
  }
  body.client_over main #partner_top,
  body.client_over main #recruit_top {
    opacity: 0;
  }
  body.client_over main #client_top a {
    color: #FFFFFF;
  }
  body.client_over #bg_change {
    background: url(/common/img/top/pc/client_mv.jpg) no-repeat;
    background-size: cover;
  }
  body.partner_over #bg_change {
    background: url(/common/img/top/pc/partner_mv.jpg) no-repeat;
    background-size: cover;
  }
  body.partner_over #client_top,
  body.partner_over #recruit_top {
    opacity: 0;
  }
  body.partner_over #partner_top a {
    color: #FFFFFF;
  }
  body.recruit_over #bg_change {
    background: url(/common/img/top/pc/recruit_mv.jpg?date=202405301815) no-repeat right center;
    background-size: cover;
  }
  body.recruit_over #client_top,
  body.recruit_over #partner_top {
    opacity: 0;
  }
  body.recruit_over #recruit_top a {
    color: #FFFFFF;
  }
  main {
    padding: 3.33vh 6.94vw 5.33vh;
    position: relative;
    letter-spacing: -0.012em;
  }
  main #logo {
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 8;
    padding: 20px 32px;
    background: #fff;
  }
  #container {
    box-sizing: border-box;
    width: 100%;
    height: calc(100vh - 8.66vh);
    display: grid;
    grid-template-rows: 1fr 1fr 1fr;
    grid-template-columns: 100%;
    text-align: left;
    display: -ms-grid;
    -ms-grid-rows: 1fr 1fr 1fr;
    -ms-grid-columns: 100%;
  }
  #container > *:nth-child(1) {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
  }
  #container > *:nth-child(2) {
    -ms-grid-row: 2;
    -ms-grid-column: 1;
  }
  #container > *:nth-child(3) {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
  }
  #client_top {
    grid-row: 1;
    grid-column: 1;
    -ms-grid-row: 1;
    -ms-grid-column: 1;
  }
  #client_top h1,
  #client_top h2,
  #client_top .caption,
  #client_top .description {
    padding: 0 1vw;
  }
  #client_top .title_area {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
  }
  #client_top .caption {
    text-align: right;
    position: relative;
    z-index: 15;
  }
  #client_top h1 {
    position: relative;
    z-index: 14;
    line-height: 1;
  }
  #client_top .description {
    padding-bottom: 7px;
  }
  #partner_top {
    grid-row: 2;
    grid-column: 1;
    -ms-grid-row: 2;
    -ms-grid-column: 1;
  }
  #partner_top h1,
  #partner_top h2,
  #partner_top .description {
    padding: 0 1vw;
  }
  #partner_top .description {
    padding-bottom: 7px;
  }
  #recruit_top {
    grid-row: 3;
    grid-column: 1;
    -ms-grid-row: 3;
    -ms-grid-column: 1;
    position: relative;
  }
  #recruit_top h1,
  #recruit_top h2,
  #recruit_top .description {
    padding: 0 1vw;
  }
  #recruit_top h1 {
    position: relative;
    z-index: 15;
  }
  #recruit_top .description {
    padding-top: 7px;
  }
}

@media screen and (min-width: 768px) and (max-aspect-ratio: 1440 / 900) {
  #logo {
    width: 17.3vw;
  }
  main {
    padding: 1.33vh 6.94vw 3.33vh;
  }
  #container {
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    height: calc(100vh - 4.66vh);
  }
  #client_top {
    display: flex;
    align-items: center;
  }
  #client_top .caption {
    font-size: 2vw;
    font-weight: 700;
  }
  #client_top h1 {
    font-size: 10.3vw;
  }
  #client_top h2 {
    font-size: 3vw;
    line-height: 1.2;
  }
  #client_top .description {
    font-size: 2.02vw;
    font-weight: 500;
    line-height: 1.35;
  }
  #partner_top {
    display: flex;
    align-items: center;
  }
  #partner_top h1 {
    font-size: 5.9vw;
    line-height: 1;
    margin-bottom: 0.5vw;
    white-space: nowrap;
  }
  #partner_top h2 {
    font-size: 3vw;
    line-height: 1.2;
    letter-spacing: 0.02em;
  }
  #partner_top .description {
    font-size: 2.02vw;
    font-weight: 500;
    line-height: 1.35;
  }
  #recruit_top {
    display: flex;
    align-items: center;
  }
  #recruit_top h1 {
    font-size: 2.8vw;
    line-height: 1;
    margin-bottom: 0.5vw;
  }
  #recruit_top h2 {
    font-size: 7vw;
    line-height: 1;
    white-space: nowrap;
    margin-bottom: 0.2vw;
  }
  #recruit_top .description {
    font-size: 2.02vw;
    font-weight: 500;
    line-height: 1.35;
  }
}

@media screen and (min-width: 768px) and (min-aspect-ratio: 1440 / 900) {
  #logo {
    width: 22vh;
  }
  main {
    text-align: center;
  }
  #container_wapper {
    display: inline-block;
  }
  #container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  #client_top .caption {
    font-size: 3.3vh;
    font-weight: 700;
  }
  #client_top h1 {
    font-size: 15.8vh;
  }
  #client_top h2 {
    font-size: 4.62vh;
    line-height: 1.18;
  }
  #client_top .description {
    font-size: 3.2vh;
    font-weight: 500;
    line-height: 1.28;
    width: 38em;
    margin-top: 2px;
  }
  #partner_top {
    display: flex;
    align-items: center;
  }
  #partner_top h1 {
    font-size: 9vh;
    line-height: 1;
    white-space: nowrap;
    margin-bottom: 8px;
  }
  #partner_top h2 {
    font-size: 4.62vh;
    line-height: 1.18;
    letter-spacing: 0.01em;
  }
  #partner_top .description {
    font-size: 3.2vh;
    font-weight: 500;
    line-height: 1.28;
    margin-top: 2px;
  }
  #recruit_top {
    display: flex;
    align-items: center;
  }
  #recruit_top h1 {
    font-size: 4.8vh;
    line-height: 1;
    margin-bottom: 4px;
  }
  #recruit_top h2 {
    font-size: 10.2vh;
    line-height: 1;
    white-space: nowrap;
  }
  #recruit_top .description {
    font-size: 3.96vh;
    font-weight: 500;
    line-height: 1.18;
    max-width: 42em;
  }
}
