@charset "utf-8";

/*==================================
　スマートフォン用ナビゲーション
===================================*/

@media screen and (max-width:767px) {
    .g-nav-openbtn {
        display: block;
        position:fixed;
        z-index: 9999;/*ボタンを最前面に*/
        top:10px;
        right: 10px;
        cursor: pointer;
        width: 50px;
        height:50px;
        background: #fff;
    }
    
    /*ボタン内側*/
    
    .g-nav-openbtn .openbtn-area {
        transition: all .4s;
    }
    
    .g-nav-openbtn span {
        display: inline-block;
        transition: all .4s;/*アニメーションの設定*/
        position: absolute;
        left: 14px;
        height: 3px;
        border-radius: 2px;
        background: var(--key-color);
        width: 45%;
    }
    
    .g-nav-openbtn span:nth-of-type(1) {
        top:15px;	
    }
    
    .g-nav-openbtn span:nth-of-type(2) {
        top:23px;
    }
    
    .g-nav-openbtn span:nth-of-type(3) {
        top:31px;
    }
    
    /*activeクラスが付与されると
    線と周りのエリアが回転して×になる*/
    
    .g-nav-openbtn.active .openbtn-area {
        transform: rotateY(-360deg);
    }
    
    .g-nav-openbtn.active span:nth-of-type(1) {
        top: 18px;
        left: 18px;
        transform: translateY(6px) rotate(-135deg);
        width: 30%;
    }
    
    .g-nav-openbtn.active span:nth-of-type(2) {
        opacity: 0;
    }
    
    .g-nav-openbtn.active span:nth-of-type(3) {
        top: 30px;
        left: 18px;
        transform: translateY(-6px) rotate(135deg);
        width: 30%;
    }
}

/* クリックしたらナビが上から下に出現 */

@media screen and (max-width:767px) {
    #g-nav {
        /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
        position:fixed;
        z-index: 999;
        /*ナビのスタート位置と形状*/
        top:-120%;
        left:0;
        width:100%;
        height: 100vh;/*ナビの高さ*/
        background: rgba(255, 255, 255, 1);
        /*動き*/
        transition: all 0.6s;
    }
    
    /*アクティブクラスがついたら位置を0に*/
    #g-nav.panelactive {
        top: 0;
    }
    
    /*ナビゲーションの縦スクロール*/
    #g-nav.panelactive #g-nav-list{
        /*ナビの数が増えた場合縦スクロール*/
        position: fixed;
        z-index: 999; 
        width: 100%;
        height: 100vh;/*表示する高さ*/
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /*ナビゲーション*/
    #g-nav ul {
        /*ナビゲーション天地中央揃え*/
        width: 90%;
        margin: 40px auto 0 auto;
    }
        
    #g-nav ul ul{
        width: 100%;
        margin: 0;
    }
    
    /*リストのレイアウト設定*/
    
    #g-nav li{
        list-style: none;
        text-align: center; 
    }
    
    #g-nav li a {
        border-bottom: 1px solid rgba(130, 189, 208, 0.5);
        color: var(--key-color);
        text-decoration: none;
        padding:10px;
        display: block;
        font-size: 16px;
        font-weight: bold;
        font-feature-settings: "palt";
    }

    #g-nav li.active a {
        color: #ccc;
    }
}

/*==================================
　PC用ナビゲーション
===================================*/

@media (min-width: 768px) {
    
    /* PCでは、表示させない */
    .g-nav-openbtn {
        display: none;
    }

    .nav {
    
    }

    .menu li {
        width: 220px;
        margin-left: auto;
        margin-right: auto;
    }

    .menu li a {
        display: flex;
        align-items: center;
        width: 220px;
        height: 40px;
        background-image: linear-gradient(#ffffff, #ffffff);
        background-position: left bottom;
        background-repeat: no-repeat;
        background-size: 100% 1px;
        font-size: 14px;
        font-weight: bold;
        color: #FFFFFF;
        text-decoration: none;
        transition: color .5s;
    }

    .menu li a > span {
        margin-left: 10px;
    }

    .menu li a:hover {
        background-size: 100% 40px;
        color: #007bc2;
        text-decoration: none;
    }

    .menu li.active a {
        background-size: 100% 40px;
        color: #007bc2;
        text-decoration: none;
    }

    .menu li.active a:hover {
        cursor: default;
    }
}