@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
#top .btn {
  text-align: center;
  margin: 1em auto; }
@media screen and (max-width: 1022px) {
  #top main {
    margin-top: 47px; } }
#top main {
  margin-bottom: 0; }
@media print, screen and (min-width: 768px) {
  #top .wrap {
    -js-display: flex;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap; } }
#top .banner {
  width: 45%;
  margin: 5em auto 2em; }
  @media screen and (min-width: 768px) and (max-width: 1023px) {
    #top .banner {
      width: 60%; } }
  @media screen and (max-width: 767px) {
    #top .banner {
      width: 80%;
      margin: 3em auto 1em; } }
#top .sec-keyv {
  width: 100%;
  /*height: 100vh;*/
  padding: 0; }
  #top .sec-keyv .keyv {
    width: 100%;
    /*height: 100%;*/
    position: relative;
    /*
    @include mq( $tb , min ) {
    	background: url("../../img/keyv.jpg") no-repeat center center;
    	background-size: cover;
    	height: 100vh;
    	.keyv_copy{
    		width: 7.6vw;
    		position: absolute;
    		top: 14.5vw;
    		left: 12.35vw;
    		margin: 0;
    	}
    }
    @include mq( $tb , max ) {
    	background: url("../../img/keyv_sp.jpg") no-repeat center center;
    	background-size: cover;
    	.keyv_copy{
    		width: 17.3vw;
    		position: absolute;
    		top: 27.2vw;
    		left: 50%;
    		transform: translateX(-50%);
    		margin: 0;
    	}
    }
    */ }
    #top .sec-keyv .keyv .keyv_copy {
      width: 25.5%;
      position: absolute;
      top: 34%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 10; }
      @media screen and (max-width: 767px) {
        #top .sec-keyv .keyv .keyv_copy {
          width: 76.8%;
          top: 40%; } }
    #top .sec-keyv .keyv .keyv_img {
      margin: 0; }
      #top .sec-keyv .keyv .keyv_img .pc {
        display: none; }
      #top .sec-keyv .keyv .keyv_img .sp {
        display: block; }
      @media print, screen and (min-width: 768px) {
        #top .sec-keyv .keyv .keyv_img .pc {
          display: block; }
        #top .sec-keyv .keyv .keyv_img .sp {
          display: none; } }
#top .sec-service {
  padding: 0;
  margin-top: -10.7vw;
  position: relative; }
  #top .sec-service .title h2 {
    font-family: din-2014,sans-serif;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.1em;
    color: #fff;
    font-size: 20px;
    font-size: 2rem;
    margin: 0;
    text-align: center;
    letter-spacing: 0.2em; }
    @media screen and (min-width: 480px) and (max-width: 1200px) {
      #top .sec-service .title h2 {
        font-size: 2.5px;
        font-size: 1.6rem; } }
    #top .sec-service .title h2:before, #top .sec-service .title h2:after {
      content: "";
      width: 7px;
      height: 7px;
      transform: rotate(45deg);
      display: inline-block;
      background: #fff;
      position: relative;
      top: -4px; }
    #top .sec-service .title h2:before {
      left: -0.8em; }
    #top .sec-service .title h2:after {
      right: -0.8em; }
#top .sec-charted {
  padding: 65px 20px;
  background: url("../../img/top/chartered_bg.jpg") no-repeat center center;
  background-size: cover;
  margin-top: 5em;
  -js-display: flex;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center; }
  @media screen and (max-width: 767px) {
    #top .sec-charted {
      margin-top: 0; } }
  @media print, screen and (min-width: 768px) {
    #top .sec-charted {
      width: 100%;
      position: relative;
      padding: 65px; } }
  #top .sec-charted .icon {
    display: none; }
    @media print, screen and (min-width: 768px) {
      #top .sec-charted .icon {
        width: 449px;
        position: absolute;
        bottom: -160px;
        left: -300px;
        display: block; } }
  #top .sec-charted .item {
    padding: 8px;
    background: #3fb5b2;
    position: relative; }
    #top .sec-charted .item .item-inner {
      border: 1px solid #fff;
      padding: 2vw; }
      #top .sec-charted .item .item-inner .title {
        text-align: center;
        position: relative;
        padding: 37px 0 1.5em; }
        #top .sec-charted .item .item-inner .title .jp {
          font-size: 30px;
          font-size: 3rem;
          color: #fff;
          margin: 0;
          letter-spacing: 0.2em; }
          @media screen and (min-width: 480px) and (max-width: 1200px) {
            #top .sec-charted .item .item-inner .title .jp {
              font-size: 3.75px;
              font-size: 2.4rem; } }
        #top .sec-charted .item .item-inner .title .en {
          font-size: 16px;
          font-size: 1.6rem;
          font-family: din-2014,sans-serif;
          font-weight: 400;
          font-style: normal;
          letter-spacing: 0.1em;
          color: #fff;
          margin: 0;
          letter-spacing: 0.1em;
          line-height: 1; }
          @media screen and (min-width: 480px) and (max-width: 1200px) {
            #top .sec-charted .item .item-inner .title .en {
              font-size: 2px;
              font-size: 1.28rem; } }
        #top .sec-charted .item .item-inner .title:before {
          content: "";
          display: block;
          width: 38px;
          height: 37px;
          background: url("../../img/icon_taxi.png") no-repeat center center;
          background-size: contain;
          position: absolute;
          top: 0;
          left: 50%;
          transform: translateX(-50%); }
      #top .sec-charted .item .item-inner .btn {
        padding: 0 1em 1em;
        margin: 0 auto;
        width: 80%; }
        #top .sec-charted .item .item-inner .btn .btn-01 {
          background: none;
          text-align: center;
          font-size: 19px;
          font-size: 1.9rem;
          border: 2px solid #fff;
          padding: 0.4em 0.4em 0.5em;
          border-radius: 5px;
          display: block; }
          @media screen and (min-width: 480px) and (max-width: 1200px) {
            #top .sec-charted .item .item-inner .btn .btn-01 {
              font-size: 2.375px;
              font-size: 1.52rem; } }
          #top .sec-charted .item .item-inner .btn .btn-01::after {
            color: #3fb5b2; }
          #top .sec-charted .item .item-inner .btn .btn-01:hover {
            color: #3fb5b2;
            background: #fff; }
            #top .sec-charted .item .item-inner .btn .btn-01:hover:after {
              background: #3fb5b2;
              color: #fff; }
    @media screen and (max-width: 767px) {
      #top .sec-charted .item {
        width: 100%; } }
    @media print, screen and (min-width: 768px) {
      #top .sec-charted .item {
        width: 400px; } }
#top .sec-lineup {
  background: url("../../img/top/lineup_bg.jpg") no-repeat center center;
  background-size: cover;
  width: 100%;
  position: relative;
  margin: 8em 0 0; }
  @media screen and (max-width: 767px) {
    #top .sec-lineup {
      padding-top: 7em; } }
  #top .sec-lineup.ver2 {
    background: url("../../img/top/lineup_bg_pc.jpg") no-repeat center center;
    background-size: cover;
    padding: 65px;
    margin-top: 4em;
    -js-display: flex;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center; }
    @media screen and (max-width: 767px) {
      #top .sec-lineup.ver2 {
        background: url("../../img/top/lineup_bg_sp.jpg") no-repeat center center;
        background-size: cover;
        padding-top: 0;
        padding: 65px 20px; } }
    #top .sec-lineup.ver2 .item {
      padding: 8px;
      background: rgba(43, 55, 145, 0.9); }
      #top .sec-lineup.ver2 .item .item-inner {
        border: 1px solid #fff;
        padding: 2vw; }
        #top .sec-lineup.ver2 .item .item-inner .title {
          text-align: center;
          padding: 0 0 1.5em; }
          #top .sec-lineup.ver2 .item .item-inner .title .jp {
            font-size: 30px;
            font-size: 3rem;
            color: #fff;
            margin: 0;
            letter-spacing: 0.2em; }
            @media screen and (min-width: 480px) and (max-width: 1200px) {
              #top .sec-lineup.ver2 .item .item-inner .title .jp {
                font-size: 3.75px;
                font-size: 2.4rem; } }
          #top .sec-lineup.ver2 .item .item-inner .title .en {
            font-size: 16px;
            font-size: 1.6rem;
            font-family: din-2014,sans-serif;
            font-weight: 400;
            font-style: normal;
            letter-spacing: 0.1em;
            color: #fff;
            margin: 0;
            letter-spacing: 0.1em;
            line-height: 1; }
            @media screen and (min-width: 480px) and (max-width: 1200px) {
              #top .sec-lineup.ver2 .item .item-inner .title .en {
                font-size: 2px;
                font-size: 1.28rem; } }
        #top .sec-lineup.ver2 .item .item-inner .copy {
          font-size: 16px;
          font-size: 1.6rem;
          color: #fff;
          text-align: center;
          font-weight: bold;
          margin: 0 0 1.5em; }
          @media screen and (min-width: 480px) and (max-width: 1200px) {
            #top .sec-lineup.ver2 .item .item-inner .copy {
              font-size: 2px;
              font-size: 1.28rem; } }
        #top .sec-lineup.ver2 .item .item-inner .btn {
          padding: 0 1em 1em;
          margin: 0 auto;
          width: 80%; }
          #top .sec-lineup.ver2 .item .item-inner .btn .btn-01 {
            background: none;
            text-align: center;
            font-size: 19px;
            font-size: 1.9rem;
            border: 2px solid #fff;
            padding: 0.4em 0.4em 0.5em;
            border-radius: 5px;
            display: block; }
            @media screen and (min-width: 480px) and (max-width: 1200px) {
              #top .sec-lineup.ver2 .item .item-inner .btn .btn-01 {
                font-size: 2.375px;
                font-size: 1.52rem; } }
            #top .sec-lineup.ver2 .item .item-inner .btn .btn-01::after {
              color: #2b3791; }
            #top .sec-lineup.ver2 .item .item-inner .btn .btn-01:hover {
              color: #2b3791;
              background: #fff; }
              #top .sec-lineup.ver2 .item .item-inner .btn .btn-01:hover:after {
                background: #2b3791;
                color: #fff; }
      @media screen and (max-width: 767px) {
        #top .sec-lineup.ver2 .item {
          width: 100%; } }
      @media print, screen and (min-width: 768px) {
        #top .sec-lineup.ver2 .item {
          width: 400px; } }
  #top .sec-lineup .deco-title {
    color: #2b3791;
    font-size: 64px;
    font-size: 6.4rem;
    font-family: din-2014,sans-serif;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.1em;
    display: block;
    position: absolute;
    top: -0.9em;
    left: 50%;
    transform: translateX(-50%); }
    @media screen and (min-width: 480px) and (max-width: 1200px) {
      #top .sec-lineup .deco-title {
        font-size: 8px;
        font-size: 5.12rem; } }
    @media screen and (max-width: 767px) {
      #top .sec-lineup .deco-title {
        font-size: 44px;
        font-size: 4.4rem;
        font-weight: 600;
        white-space: nowrap; } }
  @media screen and (max-width: 767px) and (min-width: 480px) and (max-width: 1200px) {
    #top .sec-lineup .deco-title {
      font-size: 5.5px;
      font-size: 3.52rem; } }

  #top .sec-lineup .lineup-summary {
    padding: 6em 0; }
    #top .sec-lineup .lineup-summary .title {
      font-size: 30px;
      font-size: 3rem;
      color: #fff;
      text-align: center;
      font-weight: bold;
      margin: 0; }
      @media screen and (min-width: 480px) and (max-width: 1200px) {
        #top .sec-lineup .lineup-summary .title {
          font-size: 3.75px;
          font-size: 2.4rem; } }
    #top .sec-lineup .lineup-summary .copy {
      font-size: 24px;
      font-size: 2.4rem;
      color: #fff;
      text-align: center;
      font-weight: bold;
      margin: 0.5em 1.5em 1.5em; }
      @media screen and (min-width: 480px) and (max-width: 1200px) {
        #top .sec-lineup .lineup-summary .copy {
          font-size: 3px;
          font-size: 1.92rem; } }
    #top .sec-lineup .lineup-summary .btn {
      padding: 0 1em 1em;
      text-align: center;
      width: 17.3vw;
      margin: 0 auto; }
      #top .sec-lineup .lineup-summary .btn .btn-01 {
        padding: 0.5em 0.1em 0.7em;
        display: block; }
      @media screen and (max-width: 767px) {
        #top .sec-lineup .lineup-summary .btn {
          width: 70%; } }
#top .sec-business {
  padding: 5em 0; }
  @media screen and (max-width: 767px) {
    #top .sec-business {
      padding-bottom: 3em; } }
#top .sec-news {
  background: #eef1f6;
  padding: 3em 0; }
#top .sec-company {
  padding: 7em 0; }
  @media screen and (max-width: 767px) {
    #top .sec-company {
      padding: 5em 0; } }
  @media print, screen and (min-width: 768px) {
    #top .sec-company .company-wrap {
      -js-display: flex;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-align-items: center;
      align-items: center;
      width: calc(100% + 13.5vw); }
      #top .sec-company .company-wrap .thumb {
        width: 60%;
        margin-right: -13.5vw;
        order: 2; }
        #top .sec-company .company-wrap .thumb img {
          border-radius: 15px 0px 0px 15px; }
      #top .sec-company .company-wrap .text {
        width: 40%;
        padding-right: 8vw; }
        #top .sec-company .company-wrap .text .h2-block {
          text-align: left; }
        #top .sec-company .company-wrap .text .btn {
          text-align: left;
          margin: 3em 0 0; } }
  @media screen and (max-width: 767px) {
    #top .sec-company .company-wrap .thumb {
      padding: 1.5em 0; } }
  #top .sec-company .company-wrap .text .copy {
    font-size: 26px;
    font-size: 2.6rem;
    font-weight: bold;
    color: #000; }
    @media screen and (min-width: 480px) and (max-width: 1200px) {
      #top .sec-company .company-wrap .text .copy {
        font-size: 3.25px;
        font-size: 2.08rem; } }
    @media screen and (max-width: 767px) {
      #top .sec-company .company-wrap .text .copy {
        margin: 0; } }
  #top .sec-company .company-wrap .text .description {
    font-size: 15px;
    font-size: 1.5rem;
    color: #000;
    margin: 0.8em 0 0; }
    @media screen and (min-width: 480px) and (max-width: 1200px) {
      #top .sec-company .company-wrap .text .description {
        font-size: 1.875px;
        font-size: 1.2rem; } }
#top .sec-recruit {
  background: url("../../img/top/recruit_bg.jpg") no-repeat center center;
  background-size: cover;
  margin: 0;
  padding: 6em 0; }
  @media screen and (max-width: 767px) {
    #top .sec-recruit {
      background: url("../../img/top/recruit_bg_sp.jpg") no-repeat center center;
      padding: 8em 0;
      background-size: cover; } }
  #top .sec-recruit .title {
    text-align: center; }
    #top .sec-recruit .title .jp {
      font-size: 20px;
      font-size: 2rem;
      color: #fff;
      margin: 0;
      line-height: 1; }
      @media screen and (min-width: 480px) and (max-width: 1200px) {
        #top .sec-recruit .title .jp {
          font-size: 2.5px;
          font-size: 1.6rem; } }
    #top .sec-recruit .title .en {
      font-size: 30px;
      font-size: 3rem;
      font-family: din-2014,sans-serif;
      font-weight: 600;
      font-style: normal;
      letter-spacing: 0.1em;
      letter-spacing: 0.2em;
      color: #fff;
      margin: 0; }
      @media screen and (min-width: 480px) and (max-width: 1200px) {
        #top .sec-recruit .title .en {
          font-size: 3.75px;
          font-size: 2.4rem; } }
  #top .sec-recruit .btn {
    text-align: center; }
    #top .sec-recruit .btn .btn-01 {
      border: none; }
#top .line-bn {
  width: 65%;
  margin: 3em auto 0; }
  @media screen and (max-width: 1022px) {
    #top .line-bn {
      width: 70%; } }
  @media screen and (max-width: 767px) {
    #top .line-bn {
      width: 80%;
      padding-left: 10px;
      padding-right: 10px; } }
