/* 
- Name: megamenu.js - megamenu.css
- Version: 1.0
- Latest update: 29.01.2016.
- Author: Mario Loncarek
- Author web site: http://marioloncarek.com
*/


/* ––––––––––––––––––––––––––––––––––––––––––––––––––
megamenu.js STYLE STARTS HERE
–––––––––––––––––––––––––––––––––––––––––––––––––– */


.fixed {
    width: 100%;
    height: 100vh;
    overflow-y: hidden;
}

html, body {
}

.menu-mobile.open{
    margin-top: 1.0em;
}


/* ––––––––––––––––––––––––––––––––––––––––––––––––––
Screen style's
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.megabox{
    /* メガメニューの表示基準位置 */
    position: relative;
}

.mega-menu {
    /* ハンバーガーボタンの位置 */
    padding-right: 1.0em;
    min-height: 70px;/* ロゴが表示されたときにカクカクならない調整 */
    display: flex;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    align-items: center;
}

.pages.single .mega-menu,div.lpheader .mega-menu {
    min-height: 50px;/* ロゴが表示されたときにカクカクならない調整 */
}

.mega-menu.close {
    /* ハンバーガーボタンの位置 */
    margin-top:-0.2em;
    padding-right: 1.4em;
}

.menu-container {
    width: 80%;
    margin: 0 auto;
    background: #e9e9e9;
}

.menu-mobile {
    display: none;
    overflow: hidden;
    padding: 0px;
    text-decoration: none;
    cursor: pointer;
}

.menu-mobile:after {
    font-weight:300;
    content: " \f0c9";
    padding-left:0px;
    padding-right:0px;
    font-family: "Font Awesome 5 Pro";
    
    font-size: 4.0rem;
    padding: 0;
    float: none;
    -webkit-transform: translateY(-25%);
    -ms-transform: translateY(-25%);
    transform: translateY(-25%);
}

.close .menu-mobile:after {
    font-weight:300;
    content: " \f00d";
    font-size: 4.3rem;
}

a.menu-mobile {
    color:#214020;
}
a:hover.menu-mobile {
    color:#214020;
}

.use_img a.menu-mobile {
    /* カスタムフィールド ch_pc_img に値がある時 */
    color:#ffffff;
}
.echologo .use_img a.menu-mobile {
    /* カスタムフィールド ch_pc_img に値がある時 */
    color:#444444;
}



.menu-dropdown-icon>a:before {
    border-radius: 50%;        /* CSS3草案 */  
    -webkit-border-radius: 50%;    /* Safari,Google Chrome用 */  
    -moz-border-radius: 50%;   /* Firefox用 */
    width: 60px;
    height: 60px;
    z-index: 2;
    position: absolute;
    
    right: 0.5em;
    top: 37px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    
    content: "\f067";
    font-family: "Font Awesome 5 Pro";
    display: none;
    cursor: pointer;
    padding: 18px 24px;
    background: rgba(240,240,240,0.8);
    color: #333;
}



.menu-dropdown-icon>a:hover::before,.menu-dropdown-icon.clicked>a::before {
    background: rgba(255,255,255,0.9);
}


.mega-menu > ul {
    display: flex; /*最新のブラウザ*/
    display: -webkit-box;  /*レガシーCC*/
    display: -webkit-flex; /*Android2.3*/
    display: -ms-flexbox; /*IE9~用*/
    z-index: 3;
    margin: 0 auto;
    width: 100%;
    list-style: none;
    padding: 0;
    /* IF .mega-menu position=relative -> ul = container width, ELSE ul = 100% width */
    box-sizing: border-box;
    /* デフォルトマージンのリセット */
    margin-block-start: 0em;
    margin-block-end: 0em;
    padding-bottom: 0px;
}

/* 〜768px：SP横
------------------------------ */
@media screen and (max-width:768px) {

    .mega-menu > ul {
        padding-bottom: 80px;
    }

}

.mega-menu > ul:before,
.mega-menu > ul:after {
    content: "";
    display: table;
}

.mega-menu > ul:after {
    clear: both;
}

.mega-menu > ul > li {
    background: transparent;
    padding: 0;
    margin: 0;
}

.mega-menu > ul > li > a {
    font-weight: 400!important;
}

.mega-menu > ul > li a {
    color: #333;
    text-decoration: none;
    padding: 0.5em 1.0em;
    display: block;
}

.mega-menu > ul > li > a {
    font-size: 1.5rem;
    font-weight: 500;
}

.use_img .mega-menu > ul > li > a {
    /* カスタムフィールド ch_pc_img に値がある時 */
    color: #444444;
}

.echologo .use_img .mega-menu > ul > li > a {
    /* カスタムフィールド ch_pc_img に値がある時 */
    color: #444444;
}

.mega-menu > ul > li:hover {
    background: rgba(240,240,240,0.8);
}

.mega-menu > ul > li > ul {
    display: none;
    width: 100%;
    background: rgba(255,255,255,1.0);
    padding: 0.5em 2.0em;
    position: absolute;
    z-index: 99;
    left: 0;
    margin: 10px auto 0;
    list-style: none;
    box-sizing: border-box;
}

.mega-menu > ul > li > ul.normal-sub{
    padding: 0em 0em;
}

.mega-menu > ul > li > ul.mega_child {
    padding: 2.0em 2.0em 4.0em;
    border-bottom: 1px solid #ccc;
}


.mega-menu > ul > li > ul:before,
.mega-menu > ul > li > ul:after {
    content: "";
    display: table;
}

.mega-menu > ul > li > ul:after {
    clear: both;
}

.mega-menu > ul > li > ul > li {
    margin: 0;
    padding-bottom: 0;
    list-style: none;
    width: 25%;
    background: none;
    float: left;
}

.mega-menu > ul > li > ul.mega_child > li:only-child {
    /* メガメニュー要素が1つの場合*/
    width: 100%;
}

.mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(2),
.mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(2) ~ .mega-menu > ul > li > ul > li.item {
    /* メガメニュー要素が2つの場合*/
    width: 50%;
}

.mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(3),
.mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(3) ~ .mega-menu > ul > li > ul > li.item {
    /* メガメニュー要素が3つの場合*/
    width: 33%;
}

.mega-menu > ul > li > ul > li a {
    color: #777;
    padding: .0em 0;
    width: 95%;
    display: block;
    border-bottom: 1px solid #ccc;
}

.mega-menu > ul > li > ul > li > ul {
    display: block;
    padding: 0;
    margin: 10px 0 0;
    list-style: none;
    box-sizing: border-box;
}

.mega-menu > ul > li > ul > li > ul:before,
.mega-menu > ul > li > ul > li > ul:after {
    content: "";
    display: table;
}

.mega-menu > ul > li > ul > li > ul:after {
    clear: both;
}

.mega-menu > ul > li > ul > li > ul > li {
    float: left;
    width: 100%;
    padding: 10px 0;
    margin: 0;
    font-size: 1.2rem;
}

.mega-menu > ul > li > ul > li > ul > li a {
    border-bottom: 1px solid #f0f0f0;
}

.mega-menu > ul > li > ul > li > ul > li a:hover{
    border-bottom: 1px solid #ccc;
}

.mega-menu > ul > li > ul > li > ul.megaabout > li a,.mega-menu > ul > li > ul > li > ul.megacontact > li a {
    /* きたかみオンラインカスタマイズ */
    border-bottom: 0px solid #f0f0f0;
}

.mega-menu > ul > li > ul > li > ul.megaabout > li a.btn {
    /* きたかみオンラインカスタマイズ */
    color: #ffffff;
    padding: 0.5em 1.0em;
    width: auto;
    display: inline-block;
}
.mega-menu > ul > li > ul > li > ul.megaabout > li a.btn:hover {
    /* きたかみオンラインカスタマイズ */
    color: #444444;
    border-bottom: 1px solid #444444;
}

.mega-menu > ul > li > ul.normal-sub {
    max-width: 200px;
    left: auto;
}

.mega-menu > ul > li > ul.normal-sub > li {
    width: 100%;
}

.mega-menu > ul > li > ul.normal-sub > li a {
    font-size: 1.4rem;
    border: 0;
    padding: 0.5em 0.5em;
    border-bottom: 1px solid #f0f0f0;
}

.mega-menu > ul > li > ul.normal-sub > li a:hover {
    border-bottom: 1px solid #ccc;
}




/* ––––––––––––––––––––––––––––––––––––––––––––––––––
Mobile style's
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* 〜599px：SP横
------------------------------ */
@media screen and (max-width:599px) {

    .mega-menu > ul > li > ul.normal-sub > li a {
        font-size: 1.5rem;
        padding: 1.5em 1.5em;
    }
    

    .mega-menu {
        min-height: 60px;/* ロゴが表示されたときにカクカクならない調整 */
    }


    .megacontact .cl_infomation.columnlist .contents ul li{
        flex-basis: calc(100%/1);/* きたかみオンラインカスタマイズ */
        
}



@media only screen and (max-width: 959px) {
    
    
    .mega-menu {
        /* ハンバーガーボタンの位置 */
        padding-right: 1.0em;
        min-height: auto;/* ロゴが表示されたときにカクカクならない調整はスマホで解除 */
        display: block;
    }
    
    
    .menu-container {
        width: 100%;
    }
    .menu-mobile {
        display: inline;
    }
    .menu-dropdown-icon a:before {
        display: block;
    }
    .mega-menu > ul {

        background: rgba(206, 194, 167, 0.9);
        display: none;
        position: absolute;
        left:0;
        overflow-y: auto;
        box-sizing: border-box;
        margin-top: 0px; /* header分marginを空ける */
        height: calc(100vh - 78px); /* 100% - 見切れる分の高さを引いて調整 */
        -webkit-overflow-scrolling: touch;
    }
    .mega-menu > ul > li {
        width: 100%;
        position: relative;
        display: block;
    }
    .mega-menu > ul > li a {
        padding: 1.5em 2.5em;
        width: 100%;
        display: block;
        font-family: 'Satisfy', cursive;
    }
    .mega-menu > ul > li > ul {
        position: relative;
        padding: 0 20px;
        margin: 0px auto 0;
    }
    .mega-menu > ul > li > ul.normal-sub {
        width: 100%;
        max-width: 100%;
    }
    .mega-menu > ul > li > ul > li {
        float: none;
        width: 100%;
        margin-top: 0px;
    }
    
    .mega-menu > ul > li > ul.mega_child > li:only-child {
        /* メガメニュー要素が1つの場合*/
        width: 100%;
    }

    .mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(2),
    .mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(2) ~ .mega-menu > ul > li > ul > li.item {
        /* メガメニュー要素が2つしかない場合*/
        width: 100%;
    }

    .mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(3),
    .mega-menu > ul > li > ul.mega_child > li:first-child:nth-last-child(3) ~ .mega-menu > ul > li > ul > li.item {
        /* メガメニュー要素が3つしかない場合*/
        width: 100%;
    }
    
    .mega-menu > ul > li > ul > li:first-child {
        margin: 0;
    }
    .mega-menu > ul > li > ul > li > ul {
        position: relative;
    }
    .mega-menu > ul > li > ul > li > ul > li {
        float: none;
    }
    .mega-menu .show-on-mobile {
        display: block;
    }

    .mega-menu > ul > li > ul > li a {
        padding: .2em 0;
    }

}