@charset "UTF-8";


.mb5  { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb25 { margin-bottom: 25px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb35 { margin-bottom: 35px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb45 { margin-bottom: 45px !important; }
.mb50 { margin-bottom: 50px !important; }
.mb60 { margin-bottom: 60px !important; }
.mb70 { margin-bottom: 70px !important; }
.mb80 { margin-bottom: 80px !important; }

.mt5  { margin-top: 5px !important; }
.mt10 { margin-top: 10px !important; }
.mt15 {h6argin-top: 15px !important; }
.mt20 { margin-top: 20px !important; }
.mt25 { margin-top: 25px !important; }
.mt30 { margin-top: 30px !important; }
.mt40 { margin-top: 40px !important; }
.mt50 { margin-top: 50px !important; }

.bold { font-weight: bold; }

.txtL {text-align: left !important; }
.txtC { text-align: center !important; }
.txtR { text-align: right !important; }

.clearfix::after {
    content : "";
    display : block;
    clear : both;
}
.mw450_break { display: none; }

@media (max-width: 450px) {
  .mw450_break { display: inline; }
}
@media (min-width:700px) {
  .break_700{
    display: none;
  }
}

/* -----------------------------------------------------------
タグ全般
------------------------------------------------------------- */


img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a { color: #00436F; }

/* リンクのマウスオーバー */
a img {
  transition: 400ms all ease-in-out 0s;
  /* Chrome オーバー時の画像サイズぶれ対策 */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* FireFox オーバー時の画像位置ずれ対策 */
  box-shadow: #000 0 0 0;
}
a img:hover { opacity:0.75; }


/* -----------------------------------------------------------
共通パーツ　ブロックやコンテナ
------------------------------------------------------------- */

html { font-size: 62.5%; /* 10px */ }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', YuGothic, 'Yu Gothic Medium', 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  /* 'Yu Gothic' を追加するとIE11でも游ゴシックが有効になるが、ずれが生じるので入れないでおく */
  font-size: 1.4rem; /* 14px */
  line-height: 1.75;
  color: #000;
  background: #f3f3f3;
}
@media (max-width: 768px) {
  body { font-size: 1.3rem; }
}
.container {
  margin: auto;
  padding: 35px 0;
}
section {
    width: 96%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 30px 0 15px 0;
}
section.benefit {
    padding-top: 45px;
}
.section_title h2 {
    margin-bottom: 8px;
}
@media (max-width: 768px) {
  .section_title h2 {
    margin-bottom: 3px;
  }
  .container {
    width: 100%;
    box-sizing: border-box;
    padding: 0 10px 30px 10px;
  }
  section { padding: 20px 0 15px 0; }
}

.box_white {
    box-sizing: border-box;
    width: 100%;
    padding: 35px 20px;
    background-color: #FFF;
}
@media (max-width: 768px) {
    .box_white {
        padding: 20px 15px;
    }
}


/* -----------------------------------------------------------

------------------------------------------------------------- */
h1{
  font-size: 45px;
  font-weight: bold;
  line-height: 58px;
}
h2{
  font-size: 36px;
  font-weight: bold;
  line-height: 120%;
}
@media (max-width:768px) {
  h2 { font-size: 32px; }
}
h3{
  font-size: 26px;
  line-height: 34px;
}
h4{
  font-size: 20px;
  font-weight: bold;
}
h5{font-size: 14px;}
h6{font-size: 16px;}
p{font-size: 15px;}
p.blue{
  font-weight: bold;
}
.blue{ color: #004098; }
.box .blue { margin-bottom: 10px; }

.absolute{
  position: absolute;
}
.absolute h1{
  color: #004098;
  font-weight: bold;
  font-size: 38px;
  line-height:42px;
}
.absolute h2{
  font-size: 32px;
  line-height: 150%;
  padding: 10px 0;
}
.holo .absolute h2{
  line-height: 140%;
}
.absolute h4{
  width: 320px;
  font-size: 18px;
  font-weight: bold;
  background: #004098;
  color: #fff;
  padding: 5px 10px;
}

@media (min-width:1001px) {
  .absolute h1{
    font-size: 5.2vw;
    line-height: 5.4vw;
  }
  .absolute h2{
    font-size: 3.6vw;
    line-height: 150%;
    margin: 10px 0;
  }
  .holo .absolute h2{
    line-height: 130%;
  }
  .main_visual .absolute h2{
    font-size: 3.6vw;
    line-height: 4.6vw;
    margin: 10px 0;
  }
  .absolute h4{
    font-size: 1.5vw;
    width: 27vw;
  }
}

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

@media (max-width:768px) {
  .absolute h1{
    font-size: 24px;
    line-height: 110%
  }
  .absolute h2{
    font-size: 26px;
    line-height: 140%;
  }
  .main_txt.absolute h2{
    font-size: 22px;
  }
  .absolute h4{
    font-size: 14px;
    width: 100%;
    box-sizing: border-box;
  }
}

@media (max-width:768px) {
  .pc-only{ display: none; }
}
@media (min-width:769px) {
  .sp-only{ display: none; }
}
@media (max-width:1000px) {
  .o1000{ display: none; }
}
@media (min-width:1001px){
  .u1000{ display: none; }
}

.flex{display: flex;}
.i-flex{display: inline-flex;}

.fl_left{float: left;}
.fl_right{float: right;}

@media (max-width:768px) {
  .flex{ flex-direction: column; }
  .fl_left  {
    float: none;
    width: 55%;
  }
  .fl_right {
    float: none;
    width: 40%;
    justify-content: flex-end;
    flex-direction: row;
  }
  .header.clearfix::after {
    display: none;
  }
}

/* ----------------------- ヘッダー ----------------------- */
.header{
  /* height: 70px; */
  padding: 25px 50px 20px 50px;
  background: #fff;
}
.header img{
  max-height: 50px;
}

@media (max-width:768px) {
  .header{
    /*height: 50px;*/
    padding: 10px 4%;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .header .fl_left img{
    /*height: 28px;
    padding-top: 11px;*/
  }
  .header .fl_right img{
    padding: 0 5px;
  }
}


/* ----------------------- ボタン ----------------------- */
.btn_mail,
.btn_white {
    position: relative;
    display: block;
    height: 50px;
    text-align: center;
    line-height: 50px;
    text-decoration: none;
    transition: .3s;
    font-size: 18px;
    font-weight: bold;
}
.btn_mail {
  width: 280px;
  border: 1px solid #004098;
  background-color: #004098;
  color: #FFF;
}
.header .btn_mail img,
footer .btn_mail img{
  height: 22px;
  vertical-align: text-top;
  padding-left: 8px;
}
.btn_white {
  width: 320px;
  border: 1px solid #fff;
  background-color: #FFF;
  color: #004098;
  margin: 0 20px;
}
.btn_blue:hover {
    opacity: 0.9; /* 1未満を指定しないとbeforeの色が出ない */
    border: 1px solid #004098;
    color: #004098;
}
.btn_white:hover {
    opacity: 0.9;
    color: #FFF;
}
.btn_white::after {
    content: '';
    position: absolute;
    right: 18px;
    top: 18px;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
    transition: .3s;
}
.btn_blue::after {
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}
.btn_white::after {
    border-top: 2px solid #004098;
    border-right: 2px solid #004098;
}
.btn_mail:hover::after {
    border-top: 2px solid #004098;
    border-right: 2px solid #004098;
}
.btn_white:hover::after {
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}
.btn_white::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  transform-origin: left top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.btn_mail::before { background: #FFF; }
.btn_white::before { background: #004098; }
.btn_mail:hover{
  background: #0056C6;
}
.btn_white:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}
@media (max-width: 768px){
  .btn_mail{
      width: 90%;
      max-width: 500px;
  }
  .btn_white {
    width: 320px;
    margin: 20px auto;
  }
}


/* ----------------------- main ----------------------- */
.main div.main_visual{
  position: relative;
  background-image: url(../imgs/main_back.jpg);
  background-position:center ;
  background-repeat: no-repeat;
  width: 100% auto;
  height: 40vw;
}

.main div.main_contact{
  display: inline-flex;
  width: 100%;
  padding: 20px 0;
  justify-content: center;
  background: #004098;
  color: white;
}
.main div.main_visual img,
.main div.main_txt{
  position: absolute;
}
.main div.main_visual img:first-child{
  height: 40vw;
}
.main div.main_visual img:last-child{
  right: 20vw;
  bottom: -20px;
  width: 120px;
}
.main div.main_contact h3{
  padding: 8px 0;
  font-weight: bold;
}
.main div.main_txt{
  left: 50vw;
  margin: 5vw 0 0 5vw;
  /*margin: 7vw 0 0 5vw;*/
}
@media (min-width:1001px) {
  .main div.main_contact h3{
    font-size: 30px;
  }
}
@media (max-width:1000px) {
  .main div{
    flex-direction: column;
  }
  .main a{
    margin: auto;
  }
  .main div.main_txt{
    margin: 3vw 0 0 3vw;
    /*margin: 4vw 0 0 3vw;*/
  }
}
@media (max-width:768px) {
  .main div.main_visual,
  .main div.main_visual img:first-child{
    height: 300px;
  }
  .main div.main_visual img:first-child{
    right: 48%;
  }
  .main div.main_contact {
    padding: 10px 0;
  }
  .main div.main_txt{
    left: 50vw;
    top: 3vw;
  }
}
@media (max-width:450px) {
  .main_txt_break{
    display: none;
  }
}


/* ----------------------- 所有設備・機器 ----------------------- */
.box_white {
  box-sizing: border-box;
  width: 100%;
  padding: 35px 20px;
  background-color: #FFF;
}

.box{
  position: relative;
  background-color: #fff;
  width: 100%;
  max-width: 550px;
  padding: 20px 0;
  margin: 0 10px 20px 10px;
  z-index: 0;
}
.box_number{
  padding-top: 35px;
  margin-bottom: 30px;
}
.box img.number{
  position: absolute;
  width: 110px;
  left: 0px;
  top: -50px;
  z-index: 1;
}
.box h4{
  text-align: center;
  line-height: 130%;
  margin-bottom: 10px;
}
.box h4, .box p{
  position: relative;
  z-index: 2;
}
.box_number h4{
  line-height: 140%;
  margin-bottom: 12px;
}
@media (max-width: 768px){
  .box_white {
    padding: 20px 15px;
  }
  .box{
    margin: 0 auto 20px auto;
  }
  .box_number{
    margin-bottom: 35px;
  }
}

.icon{
  width: 80px;
  margin-bottom: 20px;
}
.box p{
  padding: 0 20px;
}
span.allow{
  background:
    linear-gradient(45deg,  transparent 0px, #333 0),
    linear-gradient(135deg, transparent 00px, #333 0),
    linear-gradient(225deg, transparent 10px, #333 0),
    linear-gradient(315deg, transparent 10px, #333 0);
  background-position: bottom left, top left, top right, bottom right;
  background-size: 51% 51%;
  background-repeat: no-repeat;
  color: #fff;
  font-size: 20px;
  padding: 3px 25px 3px 15px;
  margin-right: 10px;
}
.box_facility {
  padding: 20px 25px 10px 35px;
}
.facility {
  justify-content: space-between;
}
.facility ul{
  max-width: 450px;
  margin-top: 15px;
  padding-left: 20px;
  line-height: 30px;
  min-height: 0%; /*IE対策*/
}
.facility ul li{
  font-size: 15px;
}
ul.disc{
  list-style: disc;
}
.facility img{
  width: 60%;
  object-fit:contain;
  min-height: 0%; /*IE対策*/
}

.facility_link{
  justify-content: center;
  /*margin: 35px 0 0 0;*/
  margin:0;
  padding: 52px 2% 75px 2%;
}
.facility_link a:first-child{
  margin-right: 50px;
}
.facility_link img{
  width: 100%;
/*  min-width: 300px;*/
}

@media (max-width:768px) {
  .box_facility {
    padding: 20px 5px 10px 5px;
  }
  .box_facility h3 {
    font-size: 24px;
  }
  .facility{
    flex-direction: column-reverse;
  }
  .facility img{
    width: 100%;
  }
  .facility_link {
    width: 100%;
    /*margin: 30px auto 0 auto;*/
    margin: 0 auto 0 auto;
    flex-direction: column;
    padding: 45px 6%;
  }
  .facility_link a{
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
  }
  .facility_link a:first-child{
    margin: 0 auto;
    margin-bottom: 20px;
  }
}


/* ----------------------- めねじ品質自動評価機 ----------------------- */
.meneji{
  position: relative;
  width: 100%;
  height: 50vw;
  background-image: url("../imgs/facility_back.jpg");
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.meneji img{
  width: 25%;
  position: absolute;
  top:6%;
  left: 15%;
}
.meneji .absolute{
  top: 9vw;
  left: 50%;
}
.meneji h3{
  color: #004098;
  font-weight: bold;
  margin-bottom: 15px;
  line-height: 140%;
  /*追加*/
  font-size:30px;
}
.meneji_txt{
  position: absolute;
  top: 33vw;
  left: 50%;
}
@media (min-width:1001px) {
  .meneji img{
    left: 10%;
  }
  .meneji .absolute {
    top: 7.5vw;
    left: 40%;
  }
  .meneji_txt{
    left: 40%;
  }
}
@media (max-width:1000px) {
  .meneji .absolute {
    left: 42%;
  }
  .meneji_txt {
    top: 32vw;
    left: 45%;
  }

  /*追加*/
  .meneji h3{
    font-size:26px;
  }
}
@media (max-width:768px) {
  .meneji{
    max-height: 500px;
    height: 60vw;
    background-size:100% 40vw;
  }
  .meneji img{
    width: 18vw;
    top:10px;
  }
  .meneji .absolute{
    top: 14vw;
  }
  .meneji .absolute h2 { font-size: 30px; }
  .meneji_txt{
    top: 42vw;
    left:0;
    width: 90%;
    margin: 5px 5% 10px 5%;
  }
  .meneji .meneji_txt h3 {
    margin-bottom: 5px;
    font-size: 20px;
  }
}

/*ねじ穴検査ロボット　タイトル調整*/
@media (max-width:699px) {
  .meneji .absolute{
    top: 9vw;
    left: auto;
    right: 15%;
  }
}
@media (max-width:640px) {
  .meneji { height: 62vw; }
}
@media (max-width:600px) {
  .meneji { height: 66vw; }
}
/*
@media (max-width:540px) {
  .meneji { height: 70vw; }
}
*/
@media (max-width:500px) {
  /*.meneji { height: 72vw; }*/
  .meneji .absolute h2 { font-size: 26px; }
}
@media (max-width:450px) {
  /*.meneji { height: 76vw; }*/
  .meneji .absolute{ top: 8vw; }
}
@media (max-width:400px) {
  /*.meneji { height: 88vw; }*/
  .meneji .absolute{
    top: 4vw;
    left: auto;
    right: 10%;
  }
}


/* ----------------------- ホロ証明ユニット ----------------------- */
.holo{
  position: relative;
  width: 100%;
  height: 38vw;
  background-image: url("../imgs/facility_back.jpg");
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.holo img{
  width: 50%;
  position: absolute;
  top:8%;
  right: 0;
}
.holo .absolute{
  top: 7vw;
  left: 10vw;
}
.holo_txt{
  position: absolute;
  top: 31vw;
  left: 10vw;
}
.holo h3{
  color: #004098;
  font-weight: bold;
  margin-bottom: 15px;
  line-height: 140%;
}
@media (max-width:1100px) {
  .holo .absolute,.holo_txt{
    left: 8vw;
  }
  .holo h1{
    top:80px;
  }
}
@media (max-width:768px) {
  .holo{
    max-height: 450px;
    height: 55vw;
    background-size:100% 40vw;
  }
  .holo img{
    width: 52vw;
    top:10px;
  }
  .holo .absolute{
    top: 11vw;
  }
  .holo .absolute h2 { font-size: 30px; }
  .holo_txt{
    top: 42vw;
    left:0;
    width: 90%;
    margin: 5px 5% 10px 5%;
  }
  .holo_txt h3 {
    margin-bottom: 5px;
    font-size: 20px;
  }
}
@media (max-width:640px) {
  .holo { height: 62vw; }
  .holo .absolute { top: 8vw; }
}
@media (max-width:500px) {
  /*.holo { height: 70vw; }*/
  .holo .absolute h2 { font-size: 26px; }
}
@media (max-width:450px) {
  .holo { height: 70vw; }
  /*.holo .absolute { top: 10vw; }*/
  .holo .absolute {
    top: 3.5vw;
    left: 6vw;
  }
}
/*
@media (max-width:400px) {
  .holo{ height: 88vw; }
}
*/
/* voice */
.voice p{
  padding-left: 20px;
}
@media (max-width:768px) {
  .voice p{
    padding-left: inherit;
  }
  .voiceimg{
    text-align: center;
    margin-bottom: 20px;
  }
}


/* result 原理と実績 */
.box_lightblue{
  background: #dce5f1;
  padding: 30px 20px;
  margin: 10px;
  text-align: center;
}
.box_lightblue img{
  height: 35vw;
  max-height: 400px;
  padding: 10px;
  align-self: flex-start;
}


@media (max-width:1000px) {
  .box_lightblue{
    display: flex;
    flex-direction: column;
    padding: 15px 0 10px 0;
  }
  .box_lightblue img{
    width: 42vw;
    min-width: 300px;
    margin: auto;
    height:auto;
    max-height: none;
  }
}

@media (max-width:768px) {
  .result .box{
    text-align: center;
  }
  .box_lightblue img{
    width: 65vw;
    min-width: inherit;
  }
}


/* ----------------------- フッター ----------------------- */
footer h3{
  background: #004098;
  color: #fff;
  padding: 20px 0;
  font-weight: bold;
}
footer article{
  padding: 30px 0;
}
footer article h4,
footer article img.tel,
footer article a{
  margin: 10px auto;
}
footer a{
  margin: auto;
}
footer p.copy{
  background: #333;
  color: #fff;
  padding: 15px 0;
}


/* ----------------------- 従来の問題点----------------------- */
/*チェックマーク*/
.checkmark001 {
    padding-left: 24px;
    position: relative;
    padding-top:10px;
    padding-bottom: 10px;
}

.checkmark001::after {
    border-left: 2px solid #FF5B19;
    border-bottom: 2px solid #FF5B19;
    width: 15px;
    height: 5px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    left: 1px;
    top: 17px;
  }

  .checkmark001::after {
      content: "";
      display: block;
      position: absolute;
  }

.flex_center{
  justify-content: center;
  align-items: center;
}
.flex_jc_evenly{
  justify-content: space-evenly;
}

.padding_icon_problem{
  padding: 0 30px;
}

.padding_problem{
  padding-left: 20px;
}

@media (max-width:768px) {
  .padding_problem{
    padding-left:0;
    width: 310px;
  }
}

  @media (max-width:375px) {
    .padding_problem{
      width: 100%;
    }
}
