@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700|Roboto:400,700,700i,900,900i");
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul, li {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

a {
  text-decoration: none;
  -webkit-transition: opacity .5s ease;
  transition: opacity .5s ease; }
  @media screen and (min-width: 813px) {
    a:hover {
      opacity: .6; } }
  a img {
    -webkit-transition: all .5s ease;
    transition: all .5s ease; }
    @media screen and (min-width: 813px) {
      a img:hover {
        opacity: .6; } }

html {
  font-size: 62.5%; }

body {
  font-family: 'Roboto','Noto Sans JP',sans-serif;
  -webkit-text-size-adjust: 100%;
  color: #000;
  overflow-x: auto;
  overflow-y: scroll;
  background-color: #fff;
  font-size: 1.4rem;
  padding-top: 80px; }
  body.drawer_active {
    overflow: hidden; }
  @media screen and (max-width: 1024px) {
    body {
      padding-top: 65px; } }
  @media screen and (max-width: 812px) {
    body {
      font-size: 1.3rem; } }

header {
  width: 100%;
  height: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: #fff;
  padding-left: 18px; }
  @media screen and (max-width: 1024px) {
    header {
      border-top: solid 8px #0056a7;
      padding-left: 10px;
      height: 65px; } }
  header h1 a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    @media screen and (max-width: 1024px) {
      header h1 a {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start; } }
  header h1 img {
    margin-right: 10px; }
    @media screen and (max-width: 1024px) {
      header h1 img {
        width: 60%; } }
  header h1 span {
    font-size: 1.3rem;
    color: #246db2;
    padding-bottom: 3px;
    padding-top: 7px; }
    @media screen and (max-width: 1024px) {
      header h1 span {
        font-size: 1rem;
        padding-bottom: 0; } }
  header nav.pc {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    height: 100%; }
    @media screen and (max-width: 1024px) {
      header nav.pc {
        display: none; } }
    header nav.pc ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      height: 100%; }
      header nav.pc ul li {
        margin-left: 30px; }
        header nav.pc ul li a {
          height: 100%;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
              -ms-flex-align: center;
                  align-items: center;
          color: #000;
          font-weight: bold;
          position: relative; }
          header nav.pc ul li a:before, header nav.pc ul li a:after {
            border-bottom: solid 4px #0056a7;
            bottom: 0;
            content: "";
            display: block;
            position: absolute;
            -webkit-transition: all .5s ease;
            transition: all .5s ease;
            width: 0; }
          header nav.pc ul li a:before {
            left: 50%; }
          header nav.pc ul li a:after {
            right: 50%; }
          header nav.pc ul li a:hover {
            opacity: 1; }
          header nav.pc ul li a:hover:before, header nav.pc ul li a:hover:after {
            width: 50%; }
        header nav.pc ul li.entry a {
          padding: 0 35px;
          background-color: #fddc3e;
          color: #0056a7;
          font-style: italic;
          font-weight: 900;
          font-size: 1.8rem;
          letter-spacing: 1px; }

.zdo_drawer_menu {
  display: none; }
  @media screen and (max-width: 1024px) {
    .zdo_drawer_menu {
      display: block; } }
  .zdo_drawer_menu .zdo_drawer_bg {
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: 999;
    background-color: rgba(51, 51, 51, 0.5);
    display: none;
    top: 0;
    left: 0; }
  .zdo_drawer_menu .zdo_drawer_button {
    display: block;
    background: none;
    border: none;
    padding: 0;
    width: 31px;
    letter-spacing: 0.1em;
    cursor: pointer;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
    z-index: 1001;
    text-align: center;
    outline: none; }
    .zdo_drawer_menu .zdo_drawer_button.active .zdo_drawer_bar {
      width: 34px;
      background-color: #fff; }
    .zdo_drawer_menu .zdo_drawer_button.active .zdo_drawer_bar1 {
      -webkit-transform: translateX(4px) translateY(-2px) rotate(45deg);
              transform: translateX(4px) translateY(-2px) rotate(45deg); }
    .zdo_drawer_menu .zdo_drawer_button.active .zdo_drawer_bar2 {
      opacity: 0; }
    .zdo_drawer_menu .zdo_drawer_button.active .zdo_drawer_bar3 {
      -webkit-transform: translateX(2px) translateY(2px) rotate(-45deg);
              transform: translateX(2px) translateY(2px) rotate(-45deg); }
  .zdo_drawer_menu .zdo_drawer_bar {
    display: block;
    height: 4px;
    margin: 6px 0;
    -webkit-transition: all 0.2s;
    transition: all 0.2s;
    -webkit-transform-origin: 0 0;
            transform-origin: 0 0; }
  .zdo_drawer_menu .zdo_drawer_nav_wrapper {
    width: 100vw;
    height: 100%;
    -webkit-transition: all 0.2s;
    transition: all 0.2s;
    -webkit-transform: translate(100vw);
            transform: translate(100vw);
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1000;
    background-color: rgba(0, 86, 167, 0.9); }
    .zdo_drawer_menu .zdo_drawer_nav_wrapper.open {
      -webkit-transform: translate(0);
              transform: translate(0); }
    .zdo_drawer_menu .zdo_drawer_nav_wrapper .entry {
      margin: 0 auto; }
    .zdo_drawer_menu .zdo_drawer_nav_wrapper .navwrap {
      width: 100%;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateX(-50%) translateY(-50%);
              transform: translateX(-50%) translateY(-50%);
      margin: auto; }
  .zdo_drawer_menu.left .zdo_drawer_button {
    right: auto;
    left: 32px; }
  .zdo_drawer_menu.left .zdo_drawer_nav_wrapper {
    -webkit-transform: translate(-312px);
            transform: translate(-312px);
    right: auto;
    left: 0; }
    .zdo_drawer_menu.left .zdo_drawer_nav_wrapper.open {
      -webkit-transform: translate(0);
              transform: translate(0); }

.zdo_drawer_menu .zdo_drawer_nav {
  padding-bottom: 20px; }
  .zdo_drawer_menu .zdo_drawer_nav li a {
    text-align: center;
    display: block;
    padding: 10px 20px;
    font-size: 1.8rem;
    color: #fff;
    font-weight: bold; }

.zdo_drawer_menu .zdo_drawer_button {
  color: #0056a7; }
  .zdo_drawer_menu .zdo_drawer_button .zdo_drawer_bar {
    background-color: #0056a7; }

.entrybtn,
.zdo_drawer_nav_wrapper .entry {
  display: block;
  width: 600px;
  padding: 15px 0 11px;
  font-size: 1.6rem;
  font-weight: bold;
  border: solid 6px #fddc3e;
  color: #fddc3e;
  text-align: center;
  position: relative;
  overflow: hidden;
  -webkit-transition: color .5s ease;
  transition: color .5s ease; }
  @media screen and (max-width: 1024px) {
    .entrybtn,
    .zdo_drawer_nav_wrapper .entry {
      width: 94%;
      font-size: 1.4rem; } }
  .entrybtn .txt,
  .zdo_drawer_nav_wrapper .entry .txt {
    position: relative;
    z-index: 2; }
  .entrybtn:before,
  .zdo_drawer_nav_wrapper .entry:before {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
    right: 15px;
    width: 15px;
    height: 15px;
    border-top: 4px solid #fddc3e;
    border-right: 4px solid #fddc3e;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    z-index: 2;
    -webkit-transition: all .5s ease;
    transition: all .5s ease; }
  @media screen and (min-width: 813px) {
    .entrybtn:after,
    .zdo_drawer_nav_wrapper .entry:after {
      content: '';
      background: #fddc3e;
      position: absolute;
      height: 100%;
      right: -35%;
      top: 0;
      -webkit-transform: skew(50deg);
              transform: skew(50deg);
      -webkit-transform-origin: top left;
              transform-origin: top left;
      width: 0;
      z-index: 1;
      -webkit-transition: all .5s ease;
      transition: all .5s ease; } }
  @media screen and (min-width: 813px) {
    .entrybtn:hover,
    .zdo_drawer_nav_wrapper .entry:hover {
      opacity: 1;
      color: #0056a7; } }
  @media screen and (min-width: 813px) {
    .entrybtn:hover:after,
    .zdo_drawer_nav_wrapper .entry:hover:after {
      height: 100%;
      width: 170%; } }
  @media screen and (min-width: 813px) {
    .entrybtn:hover:before,
    .zdo_drawer_nav_wrapper .entry:hover:before {
      border-top: 4px solid #0056a7;
      border-right: 4px solid #0056a7; } }
  .entrybtn .eng,
  .zdo_drawer_nav_wrapper .entry .eng {
    font-size: 3.8rem;
    display: block;
    position: relative;
    z-index: 2; }
    @media screen and (max-width: 1024px) {
      .entrybtn .eng,
      .zdo_drawer_nav_wrapper .entry .eng {
        font-size: 3.0rem; } }

footer {
  background-color: #0056a7; }
  footer .entrybox {
    height: 260px;
    background: url(../img/bg_footer.jpg) no-repeat top;
    background-size: cover;
    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;
    position: relative; }
  footer #pagetop {
    width: 62px;
    height: 62px;
    background-color: #0056a7;
    position: absolute;
    right: 0;
    bottom: 0;
    cursor: pointer;
    -webkit-transition: all .5s ease;
    transition: all .5s ease; }
    @media screen and (max-width: 1024px) {
      footer #pagetop {
        display: none; } }
    footer #pagetop:hover {
      opacity: .6; }
    footer #pagetop:before, footer #pagetop:after {
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto;
      content: "";
      vertical-align: middle;
      left: 0;
      right: 0;
      width: 16px;
      height: 16px;
      border-top: 4px solid #fff;
      border-right: 4px solid #fff;
      -webkit-transform: rotate(-45deg);
              transform: rotate(-45deg); }
  footer .footbox {
    padding: 30px; }
    @media screen and (max-width: 1024px) {
      footer .footbox {
        padding: 0 0 20px; } }
    footer .footbox .wrap {
      max-width: 1340px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      @media screen and (max-width: 1024px) {
        footer .footbox .wrap {
          -webkit-box-orient: vertical;
          -webkit-box-direction: normal;
              -ms-flex-direction: column;
                  flex-direction: column;
          width: 100%; } }
    footer .footbox nav {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
      footer .footbox nav .list {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
        @media screen and (max-width: 1024px) {
          footer .footbox nav .list {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column; } }
      footer .footbox nav .item {
        padding-right: 30px; }
        @media screen and (max-width: 1024px) {
          footer .footbox nav .item {
            padding-right: 0; } }
        footer .footbox nav .item a {
          font-weight: bold;
          color: #fff; }
          @media screen and (max-width: 1024px) {
            footer .footbox nav .item a {
              display: block;
              padding: 20px;
              border-bottom: solid 2px #fff;
              font-size: 1.4rem; } }
    @media screen and (max-width: 1024px) {
      footer .footbox .right {
        padding-top: 20px;
        text-align: center; } }
    footer .footbox .right img {
      margin-bottom: 15px; }
      @media screen and (max-width: 1024px) {
        footer .footbox .right img {
          width: 75%;
          max-width: 330px; } }
    footer .footbox .right .corplink {
      display: block;
      width: 240px;
      padding: 12px 0;
      text-align: center;
      background: url(../img/icon_blank.png) no-repeat;
      background-position: right 7px center;
      margin-bottom: 27px;
      color: #fff;
      border: solid 2px #fff; }
      @media screen and (max-width: 1024px) {
        footer .footbox .right .corplink {
          width: 75%;
          max-width: 330px;
          margin: 0 auto 27px; } }
    footer .footbox .right .copy {
      color: #fff;
      font-size: 1.2rem;
      font-weight: bold;
      letter-spacing: 1px; }
      @media screen and (max-width: 1024px) {
        footer .footbox .right .copy {
          font-size: 1rem; } }

.wrap {
  width: 92%;
  max-width: 1100px;
  margin: 0 auto; }

.ttl01 {
  text-align: center; }
  .ttl01 .eng {
    font-size: 6.0rem;
    font-style: italic;
    font-weight: 900;
    letter-spacing: 5px;
    display: block;
    padding-bottom: 10px; }
    @media screen and (max-width: 812px) {
      .ttl01 .eng {
        font-size: 3.0rem; } }
  .ttl01 .ja {
    font-size: 1.6rem;
    font-weight: bold;
    position: relative; }
    @media screen and (max-width: 812px) {
      .ttl01 .ja {
        font-size: 1.3rem; } }
  .ttl01.white {
    color: #fff; }
  .ttl01.blue {
    color: #0056a7; }
  .ttl01 .ttl_border {
    padding: 0 38px;
    position: relative; }
    @media screen and (max-width: 812px) {
      .ttl01 .ttl_border {
        padding: 0 30px; } }
    .ttl01 .ttl_border:before, .ttl01 .ttl_border:after {
      content: '';
      width: 28px;
      height: 1px;
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto; }
      @media screen and (max-width: 812px) {
        .ttl01 .ttl_border:before, .ttl01 .ttl_border:after {
          width: 20px; } }
    .ttl01 .ttl_border:before {
      left: 0; }
    .ttl01 .ttl_border:after {
      right: 0; }
    .ttl01 .ttl_border.black {
      color: #000; }
      .ttl01 .ttl_border.black:before, .ttl01 .ttl_border.black:after {
        background-color: #000; }
    .ttl01 .ttl_border.white {
      color: #fff; }
      .ttl01 .ttl_border.white:before, .ttl01 .ttl_border.white:after {
        background-color: #fff; }
    .ttl01 .ttl_border.blue {
      color: #0056a7; }
      .ttl01 .ttl_border.blue:before, .ttl01 .ttl_border.blue:after {
        background-color: #0056a7; }

.headwrap {
  height: 252px;
  background: url(../img/img_header.png) no-repeat top;
  background-size: cover;
  position: relative;
  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; }
  @media screen and (max-width: 812px) {
    .headwrap {
      height: 126px; } }
  .headwrap .ttl01 {
    position: relative;
    z-index: 2; }
  .headwrap:after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: url(../img/bg_stripe_blue.png) repeat;
    z-index: 1; }

.pan {
  padding: 12px 0 51px;
  color: #333;
  font-size: 1.1rem; }
  .pan a {
    color: #333;
    text-decoration: underline; }
  .pan ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .pan li:not(:last-child):after {
    content: '＞';
    padding: 0 15px; }

.boxlink {
  width: 340px;
  margin: 0 auto;
  display: block;
  padding: 18px 0 19px;
  text-align: center;
  font-weight: bold;
  color: #0056a7;
  font-size: 1.6rem;
  position: relative;
  border-width: 3px;
  border-style: solid;
  border-color: #0056a7;
  overflow: hidden;
  -webkit-transition: color .5s ease;
  transition: color .5s ease; }
  @media screen and (max-width: 812px) {
    .boxlink {
      width: 85%;
      padding: 15px 0 14px; } }
  .boxlink .txt {
    position: relative;
    z-index: 2; }
  .boxlink:before {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
    right: 10px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #0056a7;
    border-right: 3px solid #0056a7;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    z-index: 2; }
  @media screen and (min-width: 813px) {
    .boxlink:after {
      content: '';
      background: #0056a7;
      position: absolute;
      height: 100%;
      right: -35%;
      top: 0;
      -webkit-transform: skew(50deg);
              transform: skew(50deg);
      -webkit-transform-origin: top left;
              transform-origin: top left;
      width: 0;
      z-index: 1;
      -webkit-transition: all .5s ease;
      transition: all .5s ease; } }
  .boxlink:hover {
    color: #fff; }
    @media screen and (min-width: 813px) {
      .boxlink:hover {
        opacity: 1; } }
    @media screen and (min-width: 813px) {
      .boxlink:hover:before {
        border-top: 3px solid #fff;
        border-right: 3px solid #fff; } }
    @media screen and (min-width: 813px) {
      .boxlink:hover:after {
        height: 100%;
        width: 170%; } }
  .boxlink.white {
    color: #fff;
    border-color: #fff; }
    .boxlink.white:before {
      border-top: 3px solid #fff;
      border-right: 3px solid #fff; }
    .boxlink.white:after {
      background: #fff; }
    .boxlink.white:hover {
      color: #0056a7;
      border-color: #fff; }
      .boxlink.white:hover:before {
        border-top: 3px solid #0056a7;
        border-right: 3px solid #0056a7; }

.companylist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-bottom: 38px; }
  .companylist .item {
    width: 32%;
    max-width: 340px;
    height: 340px;
    position: relative; }
    @media screen and (max-width: 812px) {
      .companylist .item {
        height: auto; } }
    @media screen and (max-width: 812px) {
      .companylist .item:before {
        content: '';
        display: block;
        padding-top: 100%; } }
  .companylist .box {
    display: block;
    width: 95%;
    max-width: 240px;
    border: solid 2px #fff;
    text-align: center;
    padding: 20px 0;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%);
            transform: translateY(-50%) translateX(-50%); }
    @media screen and (max-width: 812px) {
      .companylist .box {
        width: 100%;
        position: relative;
        top: 0;
        left: 0;
        -webkit-transform: translateY(0) translateX(0);
                transform: translateY(0) translateX(0);
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover; } }
    @media screen and (max-width: 812px) {
      .companylist .box:before {
        content: '';
        display: block;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.43);
        position: absolute;
        top: 0;
        left: 0; } }
    .companylist .box .ttl {
      font-size: 3.0rem;
      font-weight: bold;
      display: block;
      padding-bottom: 10px; }
      @media screen and (max-width: 812px) {
        .companylist .box .ttl {
          font-size: 1.6rem;
          position: relative; } }
    .companylist .box .eng {
      font-size: 2.0rem;
      font-style: italic; }
      @media screen and (max-width: 812px) {
        .companylist .box .eng {
          font-size: 1.4rem;
          position: relative; } }
  .companylist a {
    display: block;
    width: 100%;
    height: 100%;
    color: #fff;
    overflow: hidden; }
    @media screen and (max-width: 812px) {
      .companylist a {
        position: absolute;
        top: 0;
        left: 0; } }
    .companylist a .bg {
      display: block;
      width: 100%;
      height: 100%;
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center;
      position: relative;
      -webkit-transition: all .5s ease;
      transition: all .5s ease; }
      @media screen and (max-width: 812px) {
        .companylist a .bg {
          display: none; } }
      .companylist a .bg:before {
        content: '';
        background-color: rgba(0, 0, 0, 0.43);
        display: block;
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0; }
    .companylist a:hover {
      opacity: 1; }
      .companylist a:hover .bg {
        -webkit-transform: scale(1.1);
                transform: scale(1.1); }
  .companylist .work .bg {
    background-image: url(../img/img_company_01.jpg); }
  @media screen and (max-width: 812px) {
    .companylist .work .box {
      background-image: url(../img/img_company_01.jpg); } }
  .companylist .education .bg {
    background-image: url(../img/img_company_02.jpg); }
  @media screen and (max-width: 812px) {
    .companylist .education .box {
      background-image: url(../img/img_company_02.jpg); } }
  .companylist .flow .bg {
    background-image: url(../img/img_company_03.jpg); }
  @media screen and (max-width: 812px) {
    .companylist .flow .box {
      background-image: url(../img/img_company_03.jpg); } }

@media screen and (max-width: 812px) {
  br.pc {
    display: none; } }
br.sp {
  display: none; }
  @media screen and (max-width: 812px) {
    br.sp {
      display: inline; } }
