/* =========================================
   グローバルナビゲーション
========================================= */

#gNav {
    position: relative;
    z-index: 1000;
    margin-left: auto;
}

/* 既存の疑似要素・区切り線を完全リセット */
#gNav::before,
#gNav::after,
#gNav > ul::before,
#gNav > ul::after,
#gNav .gNavList::before,
#gNav .gNavList::after,
#gNav ul li::before,
#gNav ul li::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
}

/* メインナビ */
#gNav > ul,
#gNav .gNavList {
    display: flex !important;
    align-items: stretch;
    justify-content: flex-end;
    height: 80px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#gNav > ul > li,
#gNav .gNavList > li {
    position: relative;
    display: flex !important;
    align-items: stretch;
    width: auto;
    height: 80px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    list-style: none !important;
}

/* 新しい区切り線 */
#gNav > ul > li + li::before,
#gNav .gNavList > li + li::before {
    content: "" !important;
    position: absolute;
    top: 50%;
    left: 0;
    z-index: 2;
    display: block !important;
    width: 1px;
    height: 18px;
    margin: 0;
    padding: 0;
    background-color: #d5dddd !important;
    border: 0 !important;
    transform: translateY(-50%);
}

/* メインメニューリンク */
#gNav > ul > li > a,
#gNav .gNavList > li > a {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 80px;
    margin: 0;
    padding: 0 20px;
    color: #333;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .04em;
    white-space: nowrap;
    text-decoration: none;
    box-sizing: border-box;
    transition: color .25s ease, background-color .25s ease;
}

#gNav > ul > li > a:hover,
#gNav .gNavList > li > a:hover {
    color: #008997;
    background-color: #f3f9f8;
}

/* 下向き矢印 */
#gNav > ul > li.hasChild > a,
#gNav .gNavList > li.hasChild > a {
    padding-right: 38px;
}

#gNav > ul > li.hasChild > a::after,
#gNav .gNavList > li.hasChild > a::after {
    content: "" !important;
    position: absolute;
    top: 50%;
    right: 17px;
    display: block !important;
    width: 7px;
    height: 7px;
    margin-top: -5px;
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid #008997 !important;
    border-bottom: 1px solid #008997 !important;
    transform: rotate(45deg);
    transition: transform .25s ease;
}

#gNav > ul > li.hasChild:hover > a::after,
#gNav .gNavList > li.hasChild:hover > a::after {
    margin-top: -1px;
    transform: rotate(225deg);
}


/* =========================================
   ドロップダウン
========================================= */

#gNav .megaMenu {
    position: absolute;
    top: 100%;
    left: 50%;
    z-index: 3000;
    display: block;
    width: max-content;
    min-width: 230px;
    height: auto;
    margin: 0;
    padding: 8px 0;
    background: #fff;
    border: 0;
    border-top: 3px solid #008997;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 8px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}

#gNav > ul > li:hover > .megaMenu,
#gNav > ul > li:focus-within > .megaMenu,
#gNav .gNavList > li:hover > .megaMenu,
#gNav .gNavList > li:focus-within > .megaMenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

/* ドロップダウン内を縦一列 */
#gNav .megaMenu ul {
    display: block !important;
    width: 100%;
    height: auto;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#gNav .megaMenu li {
    display: block !important;
    width: 100%;
    height: auto;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #edf1f1 !important;
    list-style: none !important;
}

#gNav .megaMenu li:last-child {
    border-bottom: 0 !important;
}

#gNav .megaMenu li::before,
#gNav .megaMenu li::after {
    content: none !important;
    display: none !important;
}

#gNav .megaMenu li a {
    display: block !important;
    width: auto;
    height: auto;
    margin: 0;
    padding: 13px 24px;
    color: #333;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    white-space: nowrap;
    text-decoration: none;
    box-sizing: border-box;
    transition: color .2s ease, background-color .2s ease, padding-left .2s ease;
}

#gNav .megaMenu li a:hover {
    padding-left: 30px;
    color: #008997;
    background-color: #f2f8f8;
}


/* =========================================
   ヘッダー・ENTRY
========================================= */

#header {
    position: relative;
    z-index: 1000;
}

#entryBtn {
    position: relative;
    z-index: 1001;
}


/* =========================================
   スマートフォン
========================================= */

@media screen and (max-width: 767px) {
    #gNav {
        display: none !important;
    }

    #entryBtn {
        display: none;
    }
}