@charset "utf-8";

/* 基本CSS */
ul{
  list-style: none;
  margin: 0px;
  padding: 0px;
}

#navi {
  background-color: #ffff;
  position: fixed;
  top: 0;
  height: 60px;
}

#navi input {display: none;}
.menu-left {float: left;}

/* PCメニュー */
.menu {
  float: right;
  margin-right: 10px;
  position: relative;
  max-width: 1000px;
}
.menu-parent {
  margin-top: 20px;
  float: left;
  padding-right: 20px;
  padding-left: 10px;
  line-height: 50px;
  font-size: 1.5rem;
  font-weight: bold;
  white-space: nowrap;
  transition:all 3s ease-out;
}

.menu-parent a {display: inline-block;}
.menu-parent .pd {display: none;}/*V非表示*/
.menu-parent:last-child {margin-right: 0px;}/*PCメニューの最後*/

#menu-navibtn {
  display: none;
  cursor: pointer;
  cursor: hand;
}/*ハンバーガー非表示*/

@media screen and (max-width: 767px) {
  .menu-parent .pd {
    display: inline-block;
    width: 100%;
  }
  .menu {
    width: 100%;
    height: 100vh;
    background-color: #196AAB;
    margin: 0;
    padding: 0; 
    color:#fff;
    z-index: 200000;
    overflow: auto;
    position: fixed;
    top: 15.645vw;
    right: 0;
    box-sizing: border-box;
    transition: .3s;
    /* デフォルト非表示（左側の見えないところに位置させる） */
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
  }

  #navi {height:auto;}
  .menu-left {width:29.031vw;}
  .menu-left img {margin: 0;}

  header {
    width: 100%;
    height: 15.645vw;
    padding: 1.0vh 0 0 0;
  }
  header h2 {
    float:left;
    width:28.031vw;
    margin:1.0vh 0 0 -1.0vw;
  }

  .menu-parent {
    height: auto;
    width: 100%;
    margin-top: 0;
    padding: 0 20px;
    border-bottom: 1px solid #DDD;
    color:#fff;
    font-size:1.3rem;
  }
  .menu-parent a{
    color:#fff;
    font-size:1.3rem;
  }
  .menu-parent:first-child {border-top: 1px solid #DDD;}
  .menu-parent i {padding: 0px 6px;}

  .smp_btn {
    float:right;
    padding:1.356vh 85px 0 0;
  }

  .tel_b {
    float:left;
    width:15.645vw;
    height:calc(15.645vw - (1.956vw + 1.956vw));
    border-left: solid 1px #cdd7de;
    line-height:1.1;
  }

  .mail_b {
    float:left;
    width:15.645vw;
    height:calc(15.645vw - (1.956vw + 1.956vw));
    border-left: solid 1px #cdd7de;
    border-right: solid 1px #cdd7de;
    line-height:1.1;
  }

  .tel_b span,.mail_b span {
    display:block;
    width:6.519vw;
    margin:0 auto;
  }

  .tel_b em {
    display: block;
    width:100%;
    text-align:center;
    font-size:1.0rem;
    letter-spacing:-0.05rem;
    margin-top:1px;
  }

  .mail_b em {
    display: block;
    width:100%;
    text-align:center;
    font-size:1.0rem;
    letter-spacing:-0.05rem;
    margin-top:3px;
  }

}

/* ドロップダウンメニュー */
.menu-parent {//position: relative;}

.menu-parent .menu-child {
  visibility: hidden;
  opacity: 0;
  z-index: 1;
  position: absolute;
  top: 60px;
  right: 0;
  width:98vw;
  max-width: 1200px;
  box-sizing: border-box;
  padding: 20px 0% 20px 8%;
  background-color: #fff;
  transition:all .3s ease-out;
}

/* 子メニュー */
.menu-child li {
  font-size: 14px;
  float: left;
  width: 33%;
}

/* ハンバーガー */
#navi #navibtn {
  display: none;
}

/* パソコン用 */
@media screen and (min-width: 767px) {
  .arr:before {
    content:  "";
    display:  inline-block;
    border-style: solid;
    border-color: transparent;
    border-width: 0.375em 0.64952em;
    border-left-color: currentColor;
    border-right: 0;
    margin-right:7px ;
  }

  .menu-parent:hover .menu-child {
    visibility: visible;
    opacity: 1;
    top: 70px;
  }
  .menu-child li:nth-child(3n+2) {margin: 0;}
}

/* スマホ用 */
@media screen and (max-width: 767px) {
  /* ハンバーガーメニューがクリックされた時 */
  #menu-navibtn:checked ~ * .menu {
    //display: block;
    opacity: 0.9;
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
  }
  #menu-navibtn:checked ~ * .menu-parent {
    max-height: inherit;
    overflow-y: visible;
  }
  #menu-navibtn:checked ~ * .menu-child {
    max-height: 0;
    overflow-y: hidden;
    visibility: hidden;
  }
  /* 子メニュー */
  .menu-child li {float: none;width: 100%;}
  .menu-child li a{display:block;}
  .menu-parent .menu-child {
    border-top: 1px solid #DDD;
    background-color: #196AAB;
    position: relative;
    padding: 0;
    opacity: 1;
    top: 0;
    margin-left: auto;
    left: auto;
    width: auto;
  }
  .menu-parent > label:hover {
    cursor: pointer;
    cursor: hand;
  }
  /* 子メニューがクリックされた時 */
  #navi input[type="checkbox"]:checked ~ .menu-child {
    max-height: inherit;
    overflow-y: visible;
    visibility: visible;
  }
  .angletoggle:before {
    content: "\f107";
  }
  #navi input[type="checkbox"]:checked ~ * .angletoggle:before {
    content: "\f106";
  }
}

@media screen and (max-width: 767px) {
  #navi #navibtn {
    display: block;
    position: absolute;
    top: 2px;
    right: 38px;
  }
  #navibtn span {
    display: block;
    //width: 9.4vw;
    width:40px;
    height: 40px;
    background-color: #fff;
  }
  #navibtn span span {
    display: block;
    overflow: hidden;
    width: 1px;
    height: 1px;
  }
  #navibtn span span::before,
  #navibtn span span::after,
  #navibtn span::after {
    position: absolute;
    left:10px;
    content:"";
    width: 22px;
    height: 3px;
    background-color: #000;
  }

  /* 上の棒 */
  #navibtn span span::before {
    top:11px;
  }
  #menu-navibtn:checked ~ #navi label#navibtn span span::before {
    top:19px;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
  }
  /* 下の棒 */
  #navibtn span::after {
    bottom:10px;
  }
  #menu-navibtn:checked ~ #navi label#navibtn > span::after {
    bottom:18px;
    transform: rotate(-135deg);
    -webkit-transform: rotate(-135deg);
  }
  /* 中の棒 */
  #navibtn span span::after {
    top:19px;
  }
  #menu-navibtn:checked ~ #navi label#navibtn span span::after {
    display: none;
  }

  #navibtn em {
    position:absolute;
    bottom:-7px;
    left:3px;
    width:100%;
    text-align:center;
    font-size:11px;
  }
  .nashi a{display:block;}

  @media screen and (min-width: 540px) {
    #navibtn span {
      display: block;
      //width: 9.4vw;
      width:58px;
      height: 40px;
      background-color: #fff;
    }

    #navibtn em {
      position:absolute;
      bottom:-18px;
      left:-7px;
      width:100%;
      text-align:center;
      font-size:15px;
    }

    #navi #navibtn {
      display: block;
      position: absolute;
      top: 2px;
      right: 22px;
    }
  }
}

/*

*/