@charset "UTF-8";
/*==================================================
　5-2-1 3本線が×に
===================================*/
/*ボタン外側※レイアウトによってpositionや形状は適宜変更してください*/
.openbtn{
	/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
	position: relative;
	/*background:#57a2c7;*/
	cursor: pointer;
    width: 80px;
    height:80px;
    z-index: 2147483647;
    position: fixed;
    right: 0;
}

/*ボタン内側*/
.openbtn span{
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
    left: 20px;
    height: 3px;
    border-radius: 2px;
	background: #2f5eab;
  	width: 50%;
  }

.openbtn span:nth-of-type(1) {
	top:25px;	
}

.openbtn span:nth-of-type(2) {
	top:33px;
}

.openbtn span:nth-of-type(3) {
	top:41px;
}

/*activeクラスが付与されると線が回転して×に*/

.openbtn.active span:nth-of-type(1) {
    top: 28px;
    left: 28px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
    background: #FFF;

}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;/*真ん中の線は透過*/
    background: #FFF;

}

.openbtn.active span:nth-of-type(3){
    top: 40px;
    left: 28px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
    background: #FFF;

}


/*========= ナビゲーションのためのCSS ===============*/

#g-nav{
    /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
    position:fixed;
    z-index: -1;
    opacity: 0;/*はじめは透過0*/
    /*ナビの位置と形状*/
    top:0;
    width:100%;
    height: 100vh;/*ナビの高さ*/
    /*background:#E0DCD8;*/
    background:#2f5eab;
    /*動き*/
    transition: all 0.3s;
}

/*アクティブクラスがついたら透過なしにして最前面へ*/
#g-nav.panelactive{
    opacity: 1;
    z-index:2147483640;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul {
    display: none;
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
}

#g-nav.panelactive ul {
    display: block;
    margin: 0;
    padding: 0;
    width: 100%;
}

/*リストのレイアウト設定*/

#g-nav li{
    list-style: none;
    text-align: center; 
}

#g-nav li a{
    color: #333;
    text-decoration: none;
    padding:10px;
    display: block;
    letter-spacing: 0.1em;
    font-weight: bold;
}

#g-nav p{
    list-style: none;
    /*text-align: center; */
    /*font-weight: bold;*/
    margin-bottom: 0;
}

#g-nav p a{
    /*color: #333;*/
    color: #FFF;
    text-decoration: none;
    padding:5px 5px 5px 0;
    display: block;
    letter-spacing: 0.1em;
    /*font-weight: bold;*/
    font-size: 13px;
}
.g-nav-list-child{
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    /*width: 100%;*/
    /*padding-left: 40px;*/

}
.nav2021-sp-menu-child-box{
    margin: 10px 0 10px 20px;
}


.nav2021-box{
    height: 80px;
    background-color: white;
    display: flex;
    justify-content: space-between;
    position: fixed;
    z-index: 2147483600;
    width: 100%;
}
.nav-parts{
    height: 80px;
    width: auto;
        padding: 0;
    margin: 0 20px;
}
.nav2021_h{
    padding: 0;
    margin: 0;
}

.nav2021-pc-menu{
    display: block;
}
.nav2021-sp-menu{
    display: none;
    transition: all 0.5s 0s ease;
}

.nav2021-pc-menu-parent{
    display: inline;
    position: relative;
}

.nav2021-pc-menu-child{
    position: absolute;
    top: 55px;
    left: 0;
    width: 540px;
    padding: 20px 0 0 0;    
}

.nav2021-pc-menu-child03{
    display: none;
}

.nav2021-pc-menu-child-container{
    background-color: white;
    background-color: #F0F0F0;
    border-radius: 20px;
    padding: 20px;
}
.nav2021-pc-menu-child-h{
    font-size: 14px;
    font-weight: bold;
    color: #999;
}
.nav2021-pc-menu-child-link{
    margin-bottom: 10px;
    font-size: 14px;
}
.nav2021-pc-menu-child-link a,
.nav2021-pc-menu-child-link a:link,
.nav2021-pc-menu-child-link a:visited{
    text-decoration: none;
}
.nav2021-pc-menu-child-link a:hover{
    text-decoration: underline;
}

.nav2021-sp-menu-child-h{
    font-size: 12px;
    font-weight: bold;
    color: #AAA;
}
.nav2021-sp-menu-child-link{
    margin-bottom: 10px;
    font-size: 12px;
}
.nav2021-sp-menu-child-link a,
.nav2021-sp-menu-child-link a:link,
.nav2021-sp-menu-child-link a:visited{
    text-decoration: none;
}
.nav2021-sp-menu-child-link a:hover{
    text-decoration: underline;
}
.nav2021-sp-menu-parent{
    font-size: 16px;
}
#g-nav p.nav2021-sp-menu-parent a{
    padding: 7px 0;
    font-weight: bold;
}
.nav2021-box{
    transform: translateY(-90px);
    transition: all 0.5s 0s ease;
}
.nav2021-box.active{
    transform: translateY(0);
}

@media (max-width: 992px) {
    .nav2021-pc-menu{
        display: none;
    }
    .nav2021-sp-menu.active{
        display: block;
    }
}
