﻿

/*** for PC Browser ***/
@media (min-width:401px)
{
/* 展開用 */
#Glnav_toggleMenu {
    background-image: url(../../../Images/menu.png);
    background-repeat: no-repeat;
    width: 60px;
    height: 60px;
    position: fixed;
    left: calc((100dvw/2) - 31px);
    bottom: 25px;
    overflow: hidden;
    cursor: pointer;
    background-size: 60px;
    border-radius: 8px;
    z-index: 30053;
    text-indent: -9999px;
    background-color: rgba(255, 255, 255, 0.55);
}

.Glnav_Menu_Close, .Glnav_Sp_Close {
    background-image: url(../../../Images/menu_close.png) !important;
    background-color: rgba(0,72,150,0.8) !important;
}

.Glnav_toggleMenu_On, .Glnav_toggleSup_On {
    display: block !important;
}

.Menu_Open {
    display: block !important;
}

.B_GNavi {
    display: none;
}

.B_GNavi h2 {
    display: none;
}

.B_GNavi h3 {
    position: absolute;
    top: 30px;
    left: 35px;
    margin: 0px;
    padding: 0px;
    color: #000;
    width: 300px;
    text-align: center;
}

.B_GNavi {
    width: calc(100% - 20px);
    height: calc(100dvh - 20px);
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 30052;
    border-radius: 8px;
    overflow: hidden;
}

.B_GNavi .main_nav {
    background-image: url(../../../Images/line_dotted.png);
    background-repeat: no-repeat;
    background-position: 370px center;
    background-size: 1px 90%;
    border-radius: 35px;
    list-style: none;
    margin: 0px;
    padding: 0px;
    position: absolute;
    height: calc(100% - 140px);
    top: 40px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    width: calc(100% - 70px);
    max-width: 1260px;
    left: 50%;
    transform: translateX(-50%);
}

.B_GNavi .main_nav ul:has(.layer0) {
    position: absolute;
    width: 310px;
    list-style-type: none;
    margin: 0;
    padding: 0px 10px 0px 0px;
    top: 80px;
    left: 35px;
    height: calc(100% - 225px);
    overflow-y: scroll;
    scrollbar-width: none;
}

.B_GNavi .main_nav .layer0 {
    margin: 0px 0px 15px 0px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.B_GNavi .main_nav .title_wrapper {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    padding: 5px 5px 5px 15px;
    border-radius: 25px;
}

.B_GNavi .main_nav .layer0 a {
    display: flex;
    padding: 10px;
    color: #000;
    align-items: center;
}

.B_GNavi .main_nav .layer0 a.Title {
    flex: 1;
}

.B_GNavi .layer0 > div {
    display: none;
}

.B_GNavi .GNaviFrame {
    z-index: 1000;
    position: fixed;
    height: calc(100dvh - 215px);
    width: calc(100% - 440px);
    left: 405px;
    top: 35px;
}

.B_GNavi .GNaviFrame ul {
    list-style: none;
    margin: 0px;
    padding: 0px 15px 0px 0px;
    width: calc(100% - 15px);
    height: 100%;
    overflow-y: scroll;
}

.B_GNavi #Gmenu1006 ul {
    display: block;
    column-count: 2;
    column-gap: 10px;
}

.B_GNavi .GNaviFrame ul li {
    background: rgba(255,255,255,0.8);
    border-radius: 8px;
    margin: 0px 0px 15px 0px;
}

.B_GNavi .main_nav .layer0 .layer1 {
    border-radius: 15px;
    box-shadow: 3px 3px 5px 1px rgb(89 89 89 / 37%);
}

.B_GNavi .main_nav .layer0 .layer1 a {
    color: #000;
    font-size: small;
    padding: 10px 10px 10px 15px;
}

.B_GNavi .main_nav .layer0 .layer1_group_label {
    color: var(--color-primary);
    padding: 10px 0px 10px 10px;
    font-weight: bold;
    background: none;
}


/* セレクト */
.B_GNavi .main_nav .selected .title_wrapper {
    background-color: rgba(0,72,150,1);
}

.B_GNavi .main_nav .selected a.Title {
    color: rgba(255,255,255,1);
}

.B_GNavi .main_nav .selected .sp_gltoggle {
    background: url(../../../Images/gmenu_close.png) no-repeat center center;
}

/* サブバナー */
.B_GNavi .main_nav .sub_bannner {
    position: absolute;
    bottom: 35px;
    left: 35px;
    margin: 0px;
    padding: 20px 0px 0px 0px;
    list-style: none;
    width: 300px;
    border-top: 1px solid #9d9d9d;
    column-count: 2;
    column-gap: 15px;
}

.B_GNavi .main_nav .sub_bannner li {
}

.B_GNavi .main_nav .sub_bannner li a {
    background: #fff;
    border-radius: 15px;
    text-align: center;
    display: block;
    margin: 0px;
    padding: 8px 10px 12px 10px;
    border: 1px solid rgb(229 229 229 / 95%);
    color: var(--color-primary);
}

.B_GNavi .main_nav .sub_bannner li a:hover {
    background: var(--color-primary);
    color: #fff;
}

.layer_cover {
    width: 300px;
    height: 40px;
    background: url(../../../Images/scroll_icon.png) no-repeat center bottom;
    left: 35px;
    position: absolute;
    bottom: 105px;
    z-index: 10000;
}

.Close_Menu {
    position: absolute;
    left: -999px;
}

/* == 色指定 == */
.B_GNavi .main_nav .layer0 .layer1:has(.class-rs) {
    background-color: color-mix(in srgb, var(--color-rs) 30%, #fff);
}

.B_GNavi .main_nav .layer0 .layer1:has(.class-eng) {
    background-color: color-mix(in srgb, var(--color-eng) 30%, #fff);
}

.B_GNavi .main_nav .layer0 .layer1:has(.class-muses) {
    background-color: color-mix(in srgb, var(--color-muses) 30%, #fff);
}

.B_GNavi .main_nav .layer0 .layer1:has(.class-med) {
    background-color: color-mix(in srgb, var(--color-med) 30%, #fff);
}

.B_GNavi .main_nav #Gmenu1006 .layer1 {
}



}
@media (min-width: 851px) {
.sp_gltoggle {
    background: url(../../../Images/gmenu_open.png) no-repeat center center;
    display: block;
    height: 46px;
    width: 46px;
    position: relative;
    text-indent: -9999px;
    overflow: hidden;
}
}


/* --------------------------------------------------
   【追加指定】画面幅 850px 以下の場合（スマホ表示に強制変更）
   PC用メディアクエリ内であってもスマホと同等のレイアウトに補正
   -------------------------------------------------- */
@media (max-width: 850px) {
    .B_GNavi {
        width: calc(100dvw - 8px);
        height: calc(100dvh - 8px);
        top: 4px;
        left: 4px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .B_GNavi h3 {
        top: 10px;
        left: 10px;
        width: calc(100% - 20px);
        text-align: center;
    }

.B_GNavi .main_nav {
    background-image: none;
    width: calc(100% - 10px);
    left: 4px;
    top: 4px;
    height: calc(100% - 115px);
    position: absolute;
    min-width: auto;
    transform: none;
}

    .B_GNavi .main_nav ul:has(.layer0) {
        position: absolute;
        width: calc(100% - 20px);
        top: 45px;
        left: 10px;
        height: calc(100% - 155px);
        overflow-y: auto;
    }

.B_GNavi .main_nav .layer0 {
    padding: 0;
    background-image: none;
    margin: 0px 0px 15px 0px;
    display: flex;
    flex-wrap: wrap;
}

    /* タイトルとトグルボタンを横並びにするラッパー */
    .B_GNavi .layer0 .title_wrapper {
        border-radius: 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    .B_GNavi .layer0 .title_wrapper a.Title {
        width: calc(100% - 46px);
        padding: 10px 10px 10px 15px;
    }

    /* sp_gltoggle をTitleの右側に配置 */
    .sp_gltoggle {
        background: url(../../../Images/gmenu_open.png) no-repeat center center;
        display: block !important;
        height: 46px;
        width: 46px;
        position: relative;
        text-indent: -9999px;
        overflow: hidden;
        cursor: pointer;
    }

    .B_GNavi .main_nav .layer0:has(.Menu_Open) .title_wrapper {
        background: rgba(0,72,150,1);
    }

    .B_GNavi .main_nav .layer0:has(.Menu_Open) .title_wrapper a.Title {
        color: #fff;
    }

    .B_GNavi .main_nav .layer0:has(.Menu_Open) .title_wrapper .sp_gltoggle {
        background: url(../../../Images/gmenu_close.png) no-repeat center center;
    }

    /* 2カラム表示用のGNaviFrameをスマホ縦配置スタイルへリセット */
    .B_GNavi .GNaviFrame {
        position: static;
        width: 100%;
        height: auto;
    }

    .B_GNavi .GNaviFrame ul {
        margin: 15px 0px;
        padding: 0px;
        width: 100%;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        overflow-y: visible;
    }

    .B_GNavi .GNaviFrame ul li {
        width: 95%;
    }

.B_GNavi .main_nav .sub_bannner {
    position: absolute;
    bottom: 15px;
    left: 15px;
    width: calc(100% - 30px);
    padding: 10px 0px 0px 0px;
}

    .layer_cover {
        display: none;
    }
}

/*** for Smart Phone ***/
@media (max-width:400px)
{
/* 展開用 */
#Glnav_toggleMenu {
    background-image: url(../../../Images/menu.png);
    background-repeat: no-repeat;
    width: 48px;
    height: 48px;
    position: fixed;
    left: calc(50% - 24px);
    bottom: 10px;
    overflow: hidden;
    cursor: pointer;
    background-size: 48px;
    border-radius: 8px;
    z-index: 30053;
    text-indent: -9999px;
    background-color: rgba(255, 255, 255, 0.55);
}

.Glnav_Menu_Close, .Glnav_Sp_Close {
    background-image: url(../../../Images/menu_close.png) !important;
    background-color: rgba(0,72,150,0.8) !important;
}

.Glnav_toggleMenu_On, .Glnav_toggleSup_On {
    display: block !important;
}

.Menu_Open {
    display: block !important;
}

.B_GNavi {
    display: none;
}

.B_GNavi h2 {
    display: none;
}

.B_GNavi h3 {
    position: absolute;
    top: 10px;
    left: 10px;
    margin: 0px;
    padding: 0px;
    color: #000;
    width: calc(100% - 20px);
    text-align: center;
}

.B_GNavi {
    width: calc(100dvw - 8px);
    height: calc(100dvh - 8px);
    position: fixed;
    top: 4px;
    left: 4px;
    z-index: 30052;
    border-radius: 8px;
    overflow: hidden;
}

.B_GNavi .main_nav {
    border-radius: 15px;
    list-style: none;
    margin: 0px;
    padding: 0px;
    width: calc(100% - 10px);
    position: absolute;
    left: 4px;
    height: calc(100% - 75px);
    top: 4px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

.B_GNavi .main_nav ul:has(.layer0) {
    position: absolute;
    width: calc(100% - 20px);
    list-style-type: none;
    margin: 0;
    padding: 0;
    top: 45px;
    left: 10px;
    height: calc(100% - 155px);
    overflow-y: scroll;
}

.B_GNavi .main_nav .layer0 {
    margin: 0px 0px 15px 0px;
}

.B_GNavi .main_nav .layer0 a {
    display: block;
    padding: 10px;
    color: #000;
}

.B_GNavi .main_nav .layer0 a.Title {
    width: 100%;
}

.B_GNavi .layer0 > div {
    display: none;
}

.B_GNavi .GNaviFrame {
}

.B_GNavi .GNaviFrame ul {
    list-style: none;
    margin: 10px 0px;
    padding: 0px;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}

.B_GNavi .GNaviFrame ul li {
    background: rgba(255,255,255,0.8);
    border-radius: 8px;
    margin: 0px 0px 0px 0px;
}

.B_GNavi .main_nav .layer0 .layer1 {
    border-radius: 15px;
    box-shadow: 3px 3px 5px 1px rgb(89 89 89 / 37%);
    width: 95%;
}

.B_GNavi .main_nav .layer0 .layer1 a {
    color: #000;
    font-size: small;
    padding: 10px 10px 10px 15px;
}

.B_GNavi .main_nav .layer0 .layer1_group_label {
    color: var(--color-primary);
    padding: 10px 0px 10px 10px;
    font-weight: bold;
    background: none;
}

/* セレクト */
.B_GNavi .main_nav .selected {
    /* background-color: rgba(0,72,150,1); */
    /* background-image: url(../../../Images/gmenu_close.png); */
}

.B_GNavi .main_nav .selected a.Title {
    color: rgba(255,255,255,1);
}

/* サブバナー */
.B_GNavi .main_nav .sub_bannner {
    position: absolute;
    bottom: 10px;
    left: 10px;
    margin: 0px;
    padding: 10px 0px 0px 0px;
    list-style: none;
    width: 280px;
    border-top: 1px solid #9d9d9d;
    column-count: 2;
    column-gap: 10px;
}

.B_GNavi .main_nav .sub_bannner li {
}

.B_GNavi .main_nav .sub_bannner li a {
    background: #fff;
    border-radius: 15px;
    text-align: center;
    display: block;
    margin: 0px;
    padding: 8px 10px 12px 10px;
    border: 1px solid rgb(229 229 229 / 95%);
    color: var(--color-primary);
}

.B_GNavi .main_nav .sub_bannner li a:hover {
    background: var(--color-primary);
    color: #fff;
}

.sp_gltoggle {
    background: url(../../../Images/gmenu_open.png) no-repeat center center;
    display: block;
    height: 46px;
    width: 46px;
    position: relative;
    text-indent: -9999px;
    overflow: hidden;
    cursor: pointer;
    z-index: 2;
}

.B_GNavi .layer0 .title_wrapper {
    border-radius: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.B_GNavi .main_nav .layer0:has(.Menu_Open) .title_wrapper {
    background: rgba(0,72,150,1);
}

.B_GNavi .layer0 .title_wrapper a.Title {
    width: calc(100% - 40px);
    padding: 10px 10px 10px 15px;
}

.B_GNavi .main_nav .layer0:has(.Menu_Open) .title_wrapper a.Title {
    color: #fff;
}

.B_GNavi .main_nav .layer0:has(.Menu_Open) .title_wrapper .sp_gltoggle {
    background: url(../../../Images/gmenu_close.png) no-repeat center center;
}

.layer_cover {
    width: 290px;
    height: 40px;
    background: url(../../../Images/scroll_icon.png) no-repeat center bottom;
    left: 5px;
    position: absolute;
    bottom: 70px;
    z-index: 10000;
}

.Close_Menu {
    position: absolute;
    left: -999px;
}

/* == 色指定 == */
.B_GNavi .main_nav .layer0 .layer1:has(.class-rs) {
    background-color: color-mix(in srgb, var(--color-rs) 30%, #fff);
}

.B_GNavi .main_nav .layer0 .layer1:has(.class-eng) {
    background-color: color-mix(in srgb, var(--color-eng) 30%, #fff);
}

.B_GNavi .main_nav .layer0 .layer1:has(.class-muses) {
    background-color: color-mix(in srgb, var(--color-muses) 30%, #fff);
}

.B_GNavi .main_nav .layer0 .layer1:has(.class-med) {
    background-color: color-mix(in srgb, var(--color-med) 30%, #fff);
}
}
