@charset "utf-8";

/* /////////////////////////////////////////////////////////////

INDEX

=モバイルメニューボックス
=モバイルメニュー
=モバイルフッター
=PCメニュー

///////////////////////////////////////////////////////////// */


/* ==============================================================

=モバイルメニューボックス

============================================================== */

/* モバイル
-------------------------------------------------------------- */

/* モバイルスクロール */
div.navmenu {
  overflow-y: scroll;
  /* IE, Edge 対応 */
  -ms-overflow-style: none;
  /* Firefox 対応 */
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
  
/* Chrome, Safari 対応 */
div.navmenu::-webkit-scrollbar {
  display:none;
}

/* モバイルメニュー背景ベース */
div.navmenu{
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  position: fixed;
  z-index: 9000;
  top: 0;
  right: 0;
  text-align:left;
  width: 100%;
  transform: translateY(-100%);
  transition: all 0.6s;
  height:100vh;
  padding: 20px 0 0 0;
  opacity:0;
}
div.navmenu.active{
  transform: translateY(0%);
  transition: all 0.6s;
  opacity:1;
}

/* モバイルメニュー：オープン方向 */
.mbmenuopen1 div.navmenu{
  right:auto;
  left: 0;
  transform: translateY(0%);
  transform: translateX(-100%);
}
.mbmenuopen1 div.navmenu.active{
  transform: translateY(0%);
  transform: translateX(0%);
}
.mbmenuopen2 div.navmenu{
  transform: translateY(0%);
  transform: translateX(+100%);
}
.mbmenuopen2 div.navmenu.active{
  transform: translateY(0%);
  transform: translateX(0%);
}
.mbmenuopen3 div.navmenu{
  transform: translateY(+100%);
}
.mbmenuopen3 div.navmenu.active{
  transform: translateY(0%);
}


/* サブメニューボックスはみ出し対応 */
@media only screen and (min-width:992px){
  div.navmenu {
    overflow: visible;
    display: none;
  }

}

/* ==============================================================

=モバイルメニュー

============================================================== */

/* メニュータイトル */
.nav-site-title{
  text-align: center;
  padding: 10px 0;
  font-size: 1.5em;
}
.nav-site-title a{
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}
  
/* =メインメニュー：モバイル
-------------------------------------------------------------- */

/* モバイルメニュー */
.nav-navigation ul.nav-menu .sub-menu {
  display: none;
}
.nav-navigation ul.nav-menu,
.nav-navigation ul.nav-menu li{
  margin:0;
  padding:0;
}
.nav-navigation ul.nav-menu{
  margin:0 auto;
  width:100%;
}
.nav-navigation ul.nav-menu li{
  margin:5px 10px;
  padding:0;
  position:relative;
  width:auto;
  list-style:none;
  text-align:left;
  box-sizing: border-box;
  border: solid 1px #fff;
}
.nav-navigation ul.nav-menu li a{
  padding:13px 10px;
  display:block;
  text-decoration:none;
  line-height:1.2;
  color: #ffffff;
}

/* ↓↑モバイルメニュー：矢印 */
.nav-navigation ul.nav-menu li.menu-item-has-children span{
  position:absolute;
  top:0;
  right:0;
  background-color:rgba(0, 0, 0, 0); 
  width:50px;
  line-height:43px;
  cursor: pointer;
}
.nav-navigation.mblabel ul.nav-menu li.menu-item-has-children span{
  width:100%;
}

/* サブ・孫メニュー用高さ調整 */
.nav-navigation ul.nav-menu li.menu-item-has-children li span{
  line-height:40px;
}

/* 上下矢印アイコン */
.nav-navigation ul.nav-menu li.menu-item-has-children span:before{
  position:absolute;
  content: "";
  top:1em;
  right:20px;
  display:inline-block;
  width:12px;
  height:12px;
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url("../img/icon/btn_down.svg");
  background: #ffffff;
  
}
.nav-navigation ul.nav-menu li.menu-item-has-children span.open:before{
  position:absolute;
  content: "";
  top:1em;
  right:20px;
  display:inline-block;
  width:12px;
  height:12px;
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url("../img/icon/btn_up.svg");
  background: #ffffff;
}

/* サブメニュー */
.nav-navigation ul.nav-menu ul.sub-menu li,
.nav-navigation ul.nav-menu ul.sub-menu{
  margin:0;
  border: none;
  padding:0;
  list-style-type:none;
}
.nav-navigation ul.nav-menu ul.sub-menu li a{
  padding:10px 10px 10px 20px;
  display:block;
  text-decoration:none;
  line-height:1.2;
  color:#ffffff;
  background-color: rgba(255,255,255,0.1);
  border-top:dotted 1px #cccccc;
}

/* サブメニュー：カレント時ベース */
.nav-navigation ul.nav-menu ul.sub-menu li.current_page_parent>a,
.nav-navigation ul.nav-menu ul.sub-menu li.current-menu-item>a{
  /*background-color:#888;*/
}


/* ==============================================================

=モバイルフッター

============================================================== */


@media screen and (max-width: 991px) {
  
  .toggle-foot.toggle-box{
    position: relative;
  }
  
  .toggle-foot .toggle{
    width: 30px;
    height: 30px;
    position: absolute;
    top:calc(50% - 4px);
    left: 50%;
    transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
  }
  
  /* トグル：フッター時カラー */
  .toggle span {
    display: block;
    position: absolute;
    width: 30px;
    border-bottom: solid 2px #fff;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
  }
  .toggle span:nth-child(1) {
    top: 9px;
  }
  .toggle span:nth-child(2) {
    top: 18px;
  }
  .toggle span:nth-child(3) {
    top: 27px;
  }
  .toggle.active span:nth-child(1) {
    top: 18px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  .toggle.active span:nth-child(2),
  .toggle.active span:nth-child(3) {
    top: 18px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  
  /* トグル：ヘッダー時カラー */
  .toggle-top .toggle span {
    border-bottom: solid 2px #222;
  }

  
  /* 帯被り対応
  -------------------------------------------------------------- */
  
  /* メニュー下マージン */
  div.navmenu ul.nav-menu{
    margin-bottom:90px;
  }

  /* モバイルフッター */
  footer#colophon{
    padding-bottom:70px;
    padding-bottom: calc(70px + env(safe-area-inset-bottom));
  }
  footer#colophon.bottom-non{
    padding-bottom:0;
  }
  
  /* モバイルフッター
  -------------------------------------------------------------- */
  
  /* 未設定時表示 */
  div.mb-footer .first-mess{
    color:#fff;
  }
  
  div.mb-footer{
    padding: 10px 0;
  }
  
  /* 帯スペース */
  div.mb-footer{
    transition: 0.5s;
    position:fixed;
    position: -webkit-fixed;
    width:100%;
    height:70px;
    height: calc(70px + env(safe-area-inset-bottom));
    background-color:#555555;
    box-shadow: 0 0 10px gray;
    z-index:9000;
    bottom:0;
    box-sizing: border-box;
    /* スライドアップ */
    /*bottom:-100px; 隠す場合*/
  }
  /* スライドアップ */
  div.mb-footer.hide{
    bottom:0;
    transition: 0.5s;
  }
  /* mbfooter帯スペース取り */
  div.mbfoot-obi-space{
    height: 70px;
  }
  
  /* モバイルブロック */
  .mb-footer-box{
    display: flex;
    justify-content: flex-start;
    align-content: center;
    gap:0;

  }
  
  /* モバイル枠:トグル有り */
  .toggle-foot.mb-footer-sub{
    width: 100%;
  }
  .toggle-foot.mb-footer-sub.mbmset1{
    width: 50%;
  }
  .toggle-foot.mb-footer-sub.toggle-in.mbmset1{
    width: 50%;
  }
  .toggle-foot.mb-footer-sub.toggle-in.mbmset2{
    width: 66%;
  }
  .toggle-foot.mb-footer-sub.toggle-in.mbmset3{
    width: 70%;
  }
  .toggle-foot.mb-footer-sub.toggle-in.mbmset4{
    width: 80%;
  }
  .toggle-foot.mb-footer-sub.toggle-in.mbmset5{
    width: 100%;
  }
  /* モバイル枠:トグル無し */
  .toggle-foot.mb-footer-sub.toggle-out{
    width: 100%;
  }

  /* トグル枠：下表示 */
  .toggle-foot{
    justify-content: center;
  }
  
  .toggle-foot.mbmset2{
    width: 33%;
  }
  .toggle-foot.mbmset3{
    width: 25%;
  }
  .toggle-foot.mbmset4{
    width: 20%;
  }
  .toggle-foot.mbmset5{
    width: 55px;
  }
  
  /* モバイルフッターメニュー
  -------------------------------------------------------------- */
  
  /* モバイルフッターメニュー */
  .menu-mbfooter-container{
    margin: 0;
    padding: 0;
    width: 100%;
  }
  .menu-mbfooter-container ul{
    margin: 0;
    padding: 0;
    width: 100%;
    display: flex;
  }
  .menu-mbfooter-container ul li{
    margin: 0;
    padding: 0;
    width: 32%;
    list-style-type: none;
    display: block;
    text-align: center;
    position: relative;
    height: 50px;
  }
  .mbmset2 .menu-mbfooter-container ul li{
    width: 50%;
  }
  .mbmset3 .menu-mbfooter-container ul li{
    width: 33.3%;
  }
  .mbmset4 .menu-mbfooter-container ul li{
    width: 25%;
  }
  .mbmset5 .menu-mbfooter-container ul li{
    width: 55px;
  }
  .menu-mbfooter-container ul li a{
    display: block;
    width: 100%;
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    box-sizing: border-box;
    position: absolute;
    left:50%;
    top: 50%;
    transform: translate(-50% ,-50%);
    -webkit-transform: translate(-50% ,-50%);
    -ms-transform: translate(-50% ,-50%);
  }
  .mbmset4 .menu-mbfooter-container ul li a{
    font-size: 11px;
  }

  
}

/* フォントサイズ・リストスペース調整 */
@media screen and (max-width: 319px) {
  .menu-mbfooter-container ul li a{
    font-size: 12px;
  }
  .menu-mbfooter-container ul li{
    margin: 5px 10px 0 0;
  }
}

@media screen and (min-width: 992px) {

  /* モバイルフッター
  -------------------------------------------------------------- */

  /* パソコン時非表示 */
  div.mb-footer{
    display:none;
  }

}
