@charset "UTF-8";
@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: 400;
  src: url("https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/webfonts/fa-brands-400.woff2") format("woff2");
  font-display: swap; }
@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  src: url("https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/webfonts/fa-solid-900.woff2") format("woff2");
  font-display: swap; }
html {
  position: relative;
  min-height: 100%;
  overflow-x: hidden; }

section {
  overflow: hidden; }

body {
  width: 100%;
  padding-top: 0vw;
  font-size: 16px;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  color: #171717;
  padding-top: 50px; }
  body .wrap {
    max-width: 800px;
    margin: 0 auto;
    position: relative; }

body {
  animation: fadeIn 2s ease 0s 1 normal;
  -webkit-animation: fadeIn 2s ease 0s 1 normal; }

/*
img{
	width: 100%;
	vertical-align: top;
}
*/
@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.sp {
  display: none; }

@media screen and (max-width: 767px) {
  body {
    padding-top: 10vw;
    font-size: 3.2vw; }

  .pc {
    display: none !important; }

  .sp {
    display: inherit; } }
a {
  outline: none;
  text-decoration: none;
  transition: 0.3s ease-in-out; }

a:hover {
  text-decoration: none;
  opacity: 0.7;
  transition: 0.3s ease-in-out; }

.pagetop {
  position: relative;
  display: block;
  z-index: 1100; }

.pagetop a {
  width: 70px;
  height: 63px;
  display: block;
  z-index: 1100;
  overflow: hidden; }

/*=====================================================
共通
======================================================*/
.contents_wrap {
  max-width: 940px;
  width: 90%;
  margin: 0 auto; }

/*=====================================================
MAIN
======================================================*/
#top #main_img {
  background-image: url("../img/main_bg.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: bottom center;
  width: 100vw;
  height: calc(100vh - 50px);
  position: relative; }
  #top #main_img .main_img_wrap {
    max-width: 95%;
    height: calc(100vh - 50px);
    margin: 0 auto;
    position: relative;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: center; }
    #top #main_img .main_img_wrap img {
      max-width: 100%;
      max-height: 90%;
      width: auto;
      height: auto;
      margin: auto; }
  #top #main_img .scroll {
    position: absolute;
    width: 21px;
    bottom: 40px;
    right: 0;
    left: 0;
    margin: auto;
    z-index: 2; }
    #top #main_img .scroll a {
      display: block; }
#top #about {
  background-image: url("../img/about_bg.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top right;
  background-color: #006cd5;
  padding: 10px 0 12vw;
  position: relative; }
  #top #about:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 23.26vw;
    background-image: url("../img/about_bg_line.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom left;
    z-index: 1; }
  #top #about .about_box {
    background: #fff;
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 40px;
    margin-bottom: 30px;
    filter: drop-shadow(5px 5px 8px rgba(0, 0, 0, 0.3)); }
    #top #about .about_box .ttl01 {
      font-family: 'Hind', sans-serif;
      font-weight: bold;
      font-size: 20px;
      letter-spacing: 2px;
      color: #003399; }
    #top #about .about_box .ttl02 {
      font-size: 28px;
      font-weight: bold;
      margin-top: 70px;
      margin-bottom: 30px; }
    #top #about .about_box .about_txt {
      line-height: 1.8; }
    #top #about .about_box .flex_area {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-box;
      display: -webkit-flexbox;
      display: -moz-flexbox;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: flex;
      -webkit-box-lines: multiple;
      -moz-box-lines: multiple;
      -webkit-flex-wrap: wrap;
      -moz-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      justify-content: space-between; }
      #top #about .about_box .flex_area .left {
        width: 60%; }
      #top #about .about_box .flex_area .right {
        width: 27%;
        margin-right: 4%; }
#top .contact_area {
  padding: 20px 0 50px; }
  #top .contact_area .flex_area {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between; }
    #top .contact_area .flex_area div {
      width: 49%; }
#top #machine {
  padding: 50px 0 80px;
  background: #ececec;
  position: relative; }
  #top #machine:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 9.3vw;
    background-image: url("../img/machine_bg.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom center;
    z-index: 1; }
  #top #machine h2 {
    font-size: 33px;
    font-weight: bold;
    background: #fff;
    border: 5px #003399 solid;
    text-align: center;
    padding: 20px;
    line-height: 1; }
  #top #machine .flex_area {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: -20px;
    position: relative;
    z-index: 5; }
    #top #machine .flex_area .left {
      width: 43%;
      padding-left: 5%; }
    #top #machine .flex_area .right {
      width: 52%; }
      #top #machine .flex_area .right p {
        line-height: 1.8;
        margin-top: 50px; }
#top #system {
  text-align: center;
  padding: 50px 0;
  background: #f5f5f5; }
  #top #system h2 {
    text-align: center;
    font-family: "ＭＳ Ｐ明朝", "MS PMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "serif";
    color: #003399;
    font-size: 50px;
    line-height: 1;
    margin-bottom: 30px; }
  #top #system .system_txt01 {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 30px; }
  #top #system .flex_area {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    margin-bottom: 80px; }
    #top #system .flex_area .system_box {
      width: 49%;
      position: relative;
      text-align: left; }
      #top #system .flex_area .system_box p {
        color: #fff;
        padding: 0 30px;
        position: absolute;
        top: 48%;
        left: 0;
        line-height: 1.7; }
  #top #system .system_txt02 {
    font-size: 20px;
    margin-bottom: 10px;
    text-align: left;
    font-weight: bold; }
  #top #system .system_txt03 {
    color: #ac2025;
    text-align: left;
    margin-bottom: 40px; }
  #top #system .contact_area {
    padding: 60px 0 0; }
    #top #system .contact_area .flex_area {
      margin-bottom: 10px; }
#top #simulation {
  padding: 80px 0; }
  #top #simulation .sim_ttl {
    font-size: 25px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px; }
  #top #simulation .flex_area {
    background: #fff;
    border: 3px #ac2025 solid;
    padding: 40px;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center; }
    #top #simulation .flex_area .left {
      width: 20%;
      text-align: center; }
      #top #simulation .flex_area .left img {
        max-width: 100%;
        width: auto; }
    #top #simulation .flex_area .right {
      width: 80%;
      line-height: 1.8; }
    #top #simulation .flex_area.bottom_arrow {
      margin-bottom: 100px;
      position: relative; }
      #top #simulation .flex_area.bottom_arrow:after {
        content: "";
        width: 0;
        height: 0;
        position: absolute;
        top: calc(100% + 40px);
        left: calc(50% - 120px);
        border-top: 30px #ac2025 solid;
        border-left: 120px transparent solid;
        border-right: 120px transparent solid;
        border-bottom: 30px transparent solid; }
#top #spec {
  padding: 100px 0 0;
  background-image: url("../img/spec_bg.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top right; }
  #top #spec table {
    max-width: 800px;
    width: 100%;
    margin: 0 auto 80px;
    background: #fff; }
    #top #spec table th, #top #spec table td {
      width: 50%;
      border: 1px #c9c9c9 solid;
      padding: 10px 0 10px 10%;
      text-align: left; }
      #top #spec table th.ttl, #top #spec table td.ttl {
        background: #003399;
        color: #fff;
        font-weight: bold;
        padding-left: 40px; }
    #top #spec table th {
      font-weight: bold;
      background: #f7fafe; }

#contact #main_img {
  padding: 50px 0;
  text-align: center; }
  #contact #main_img h2 {
    font-size: 35px;
    font-weight: bold; }
#contact #form_area {
  padding: 50px 0 80px;
  background: #f5f5f5; }
  #contact #form_area .contents_wrap {
    max-width: 800px; }
  #contact #form_area .tel_area {
    padding: 30px;
    margin: 30px 0 50px;
    width: 100%;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    text-align: center;
    background: #003399;
    color: #fff; }
    #contact #form_area .tel_area .left {
      width: 45%; }
    #contact #form_area .tel_area .right {
      width: 52%; }
      #contact #form_area .tel_area .right a {
        color: #fff;
        font-size: 40px;
        font-weight: bold; }
  #contact #form_area .step_area {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-bottom: 50px; }
    #contact #form_area .step_area div {
      background: #fff;
      width: 33.3%;
      padding: 8px 0 8px 5%;
      position: relative;
      line-height: 1.3;
      justify-content: space-between; }
      #contact #form_area .step_area div span {
        font-size: 12px;
        font-weight: bold; }
      #contact #form_area .step_area div:before, #contact #form_area .step_area div:after {
        content: "";
        width: 0;
        height: 0;
        position: absolute;
        top: 0;
        left: 100%;
        border-right: 0 transparent solid;
        z-index: 2; }
      #contact #form_area .step_area div:before {
        top: -9px;
        border-top: 37px transparent solid;
        border-bottom: 37px transparent solid;
        border-left: 22px #f5f5f5 solid; }
      #contact #form_area .step_area div:after {
        border-top: 28px transparent solid;
        border-bottom: 28px transparent solid;
        border-left: 18px #fff solid; }
      #contact #form_area .step_area div.active {
        background: #003399;
        color: #fff; }
        #contact #form_area .step_area div.active:after {
          border-left: 18px #003399 solid; }
      #contact #form_area .step_area div.step03:before, #contact #form_area .step_area div.step03:after {
        display: none; }
  #contact #form_area .contact_ttl {
    font-size: 18px;
    font-weight: bold;
    padding: 5px 20px;
    margin-bottom: 30px;
    border-bottom: 2px #003399 solid; }
  #contact #form_area .require {
    color: #d00; }
  #contact #form_area form table {
    width: 100%;
    background: #fff;
    margin-bottom: 40px; }
    #contact #form_area form table th, #contact #form_area form table td {
      border: 8px #f5f5f5 solid;
      padding: 10px 20px;
      text-align: left; }
    #contact #form_area form table th {
      width: 25%;
      border-left: none;
      vertical-align: top; }
    #contact #form_area form table td {
      width: 75%; }
      #contact #form_area form table td input[type=text], #contact #form_area form table td input[type=email], #contact #form_area form table td input[type=tel], #contact #form_area form table td textarea {
        width: 100%;
        border: 1px #999 solid;
        padding: 7px;
        font-size: 15px;
        box-sizing: border-box; }
  #contact #form_area form .submit_area {
    text-align: center;
    /* iOSでのデフォルトスタイルをリセット */ }
    #contact #form_area form .submit_area input[type="submit"],
    #contact #form_area form .submit_area input[type="button"],
    #contact #form_area form .submit_area input[type="reset"] {
      border-radius: 0;
      -webkit-box-sizing: content-box;
      -webkit-appearance: button;
      appearance: button;
      border: none;
      box-sizing: border-box; }
      #contact #form_area form .submit_area input[type="submit"]::-webkit-search-decoration,
      #contact #form_area form .submit_area input[type="button"]::-webkit-search-decoration,
      #contact #form_area form .submit_area input[type="reset"]::-webkit-search-decoration {
        display: none; }
      #contact #form_area form .submit_area input[type="submit"]::focus,
      #contact #form_area form .submit_area input[type="button"]::focus,
      #contact #form_area form .submit_area input[type="reset"]::focus {
        outline-offset: -2px; }
    #contact #form_area form .submit_area .btn {
      width: 25%;
      display: inline-block;
      padding: 10px;
      color: #fff;
      font-size: 16px;
      cursor: pointer; }
      #contact #form_area form .submit_area .btn:hover {
        opacity: 0.7;
        transition: 0.3s; }
      #contact #form_area form .submit_area .btn.confirm {
        background: #003399; }
      #contact #form_area form .submit_area .btn.btn-clear {
        background: #5da5ed; }
#contact #privacy {
  padding: 80px 0; }
  #contact #privacy p {
    line-height: 1.8; }
  #contact #privacy .ttl {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 7px; }

@media screen and (max-width: 767px) {
  #top #main_img {
    height: auto;
    position: relative; }
    #top #main_img .main_img_wrap {
      max-width: 100%;
      height: auto;
      display: block; }
  #top #about {
    padding: 2vw 0 15vw;
    background-position: top center;
    background-color: #006fd3; }
    #top #about .about_box {
      padding: 8vw;
      margin-bottom: 6vw;
      filter: drop-shadow(1vw 1vw 1.6vw rgba(0, 0, 0, 0.3)); }
      #top #about .about_box .ttl01 {
        font-size: 4vw; }
      #top #about .about_box .ttl02 {
        font-size: 4.5vw;
        margin-top: 6vw;
        margin-bottom: 5vw; }
      #top #about .about_box .flex_area {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-box;
        display: -webkit-flexbox;
        display: -moz-flexbox;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flex;
        display: flex;
        -webkit-box-lines: multiple;
        -moz-box-lines: multiple;
        -webkit-flex-wrap: wrap;
        -moz-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        justify-content: space-between; }
        #top #about .about_box .flex_area .left {
          width: 100%; }
        #top #about .about_box .flex_area .right {
          width: 60%;
          margin: 6vw auto 0; }
  #top .contact_area {
    padding: 4vw 0 6vw; }
    #top .contact_area .flex_area div {
      width: 100%;
      margin-bottom: 4vw; }
  #top #machine {
    padding: 10vw 0 16vw; }
    #top #machine h2 {
      font-size: 6vw;
      border: 1vw #003399 solid;
      padding: 4vw; }
    #top #machine .flex_area {
      margin-top: 3vw; }
      #top #machine .flex_area .left {
        width: 80%;
        padding-left: 0;
        margin: auto; }
      #top #machine .flex_area .right {
        width: 100%; }
        #top #machine .flex_area .right p {
          margin-top: 6vw; }
  #top #system {
    padding: 10vw 0 0; }
    #top #system h2 {
      font-size: 6vw;
      margin-bottom: 6vw; }
    #top #system .system_txt01 {
      font-size: 4vw;
      margin-bottom: 6vw; }
    #top #system .flex_area {
      margin-bottom: 16vw; }
      #top #system .flex_area .system_box {
        width: 100%;
        margin-bottom: 3vw; }
        #top #system .flex_area .system_box p {
          padding: 0 6vw; }
    #top #system .system_txt02 {
      font-size: 4vw;
      margin-bottom: 2vw; }
    #top #system .system_txt03 {
      margin-bottom: 8vw; }
    #top #system .contact_area {
      padding: 12vw 0 0; }
      #top #system .contact_area .flex_area {
        margin-bottom: 2vw; }
  #top #simulation {
    padding: 16vw 0; }
    #top #simulation .sim_ttl {
      font-size: 5vw;
      margin-bottom: 4vw; }
    #top #simulation .flex_area {
      padding: 6vw; }
      #top #simulation .flex_area .right {
        width: 100%; }
      #top #simulation .flex_area.bottom_arrow {
        margin-bottom: 20vw; }
        #top #simulation .flex_area.bottom_arrow:after {
          top: calc(100% + 8vw);
          left: calc(50% - 24vw);
          border-top: 6vw #ac2025 solid;
          border-left: 24vw transparent solid;
          border-right: 24vw transparent solid;
          border-bottom: 6vw transparent solid; }
  #top #spec {
    padding: 20vw 0; }
    #top #spec table {
      margin: 0 auto 15vw;
      background: #fff; }
      #top #spec table th, #top #spec table td {
        padding: 2vw 3vw; }
        #top #spec table th.ttl, #top #spec table td.ttl {
          padding-left: 3vw; }

  #contact #main_img {
    padding: 10vw 0; }
    #contact #main_img h2 {
      font-size: 6vw; }
  #contact #form_area {
    padding: 10vw 0; }
    #contact #form_area .tel_area {
      padding: 6vw;
      margin: 6vw 0 8vw; }
      #contact #form_area .tel_area .left {
        width: 100%;
        margin-bottom: 4vw; }
      #contact #form_area .tel_area .right {
        width: 100%; }
        #contact #form_area .tel_area .right a {
          font-size: 7vw; }
    #contact #form_area .step_area {
      margin-bottom: 10vw; }
      #contact #form_area .step_area div {
        background: #fff;
        width: 33.3%;
        padding: 1.6vw 0 1.6vw 7%; }
        #contact #form_area .step_area div span {
          font-size: 2.4vw; }
        #contact #form_area .step_area div:first-child {
          padding-left: 5%; }
        #contact #form_area .step_area div:before {
          top: -1.8vw;
          border-top: 7.4vw transparent solid;
          border-bottom: 7.4vw transparent solid;
          border-left: 4.4vw #f5f5f5 solid; }
        #contact #form_area .step_area div:after {
          border-top: 5.6vw transparent solid;
          border-bottom: 5.6vw transparent solid;
          border-left: 3.6vw #fff solid; }
        #contact #form_area .step_area div.active:after {
          border-left: 3.6vw #003399 solid; }
    #contact #form_area .contact_ttl {
      font-size: 3.6vw;
      padding: 1vw 4vw;
      margin-bottom: 6vw; }
    #contact #form_area form table {
      margin-bottom: 8vw;
      margin-top: 1vw; }
      #contact #form_area form table th, #contact #form_area form table td {
        padding: 2vw 4vw; }
      #contact #form_area form table th {
        width: 100%;
        display: block;
        border: none;
        padding-bottom: 0;
        font-weight: bold; }
      #contact #form_area form table td {
        width: 100%;
        display: block;
        padding-top: 1vw;
        padding-bottom: 2vw;
        border: none;
        border-bottom: 3vw #f5f5f5 solid; }
        #contact #form_area form table td input[type=text], #contact #form_area form table td input[type=email], #contact #form_area form table td input[type=tel], #contact #form_area form table td textarea {
          padding: 1.4vw;
          font-size: 3vw; }
    #contact #form_area form .submit_area .btn {
      width: 47%;
      padding: 2vw;
      font-size: 3.2vw; }
  #contact #privacy {
    padding: 10vw 0; }
    #contact #privacy .ttl {
      font-size: 3.6vw;
      margin-bottom: 1.4vw; } }
