/* root */
:root {
    --main-colorDark: #aa7a52;
    --main-colorAccentDark: #7fbad3;
    --main-colorAccentLight: #85e695;
    --main-colorHighlight: #f7e490;
    --main-colorBG: #f0f0f0;
    --main-colorBGBody: #d0d0d0;
    --main-colorText: #333;
    --main-colorTextLight: #fff;
    --main-colorNote: #999;
    --main-colorLink: #005599;
    --main-colorHover: #000099;
}

.menu-container {
    width: 100%;
}

.menu-mobile {
    display: block;
    line-height: 43px;
    background-color: var(--main-colorHighlight);
}

.menu-dropdown-icon:before {
    display: block;
}

.menu>ul {
    display: none;
}

.menu>ul>li {
    width: 100%;
    float: none;
    display: block;
    border-bottom: solid #ddd 1px;
}

.menu>ul>li a {
    width: 100%;
    display: block;
    font-size: 14px;
    height: 48px;
    line-height: 48px;
}

.menu>ul>li a i::before {
    font-family: "Font Awesome 6 Free";
    margin-right: 10px;
    display: block;
    color: #666;
}

.menu>ul>li a.current i::before {
    color: var(--main-colorDark);
}

.menu>ul>li>ul {
    position: relative;
    display: none;
}

.menu>ul>li>ul.normal-sub {
    width: 100%;
}

.menu>ul>li>ul>li {
    float: none;
    width: 100%;
    margin-top: 0px;
}

.menu>ul>li>ul>li:first-child {
    margin: 0;
}

.menu>ul>li>ul>li>ul {
    position: relative;
}

.menu>ul>li>ul>li>ul>li {
    float: none;
}

.menu .show-on-mobile {
    display: block;
}

.menu .menu-mobile:after {
    content: url(../images/menu-dummy.png);
    display: block;
    width: 33px;
    height: 33px;
    margin-top: 5px;
    margin-right: 5px;
    position: relative;
    background-image: url(../images/menu-close.png);
    background-size: cover;
    float: right;
}

.menu.open .menu-mobile:after {
    background-image: url(../images/menu-open.png);
}

.menu-dropdown-icon:before {
    content: "\f489";
    /*モバイル用メニューに表示するアイコン*/
    font-family: "Ionicons";
    display: none;
    cursor: pointer;
    float: right;
    padding: 1.5em 2em;
    background-color: #fff;
    color: #333;
}

@media only screen and (min-width: 768px) {
    .menu-container {
        width: 100%;
        margin: 0 auto;
    }

    .menu-mobile {
        display: none;
        padding: 5px;
    }

    .menu>ul {
        margin: 0 auto;
        width: 100%;
        list-style: none;
        padding: 0;
        position: relative;
        box-sizing: border-box;
        display: block;
        text-align: left;
        /*追加*/
        display: flex;
        justify-content: flex-start;
    }

    /*
    .menu>ul:before,
    .menu>ul:after {
        content: "";
        display: table;
    }

    .menu>ul:after {
        clear: both;
    }
*/
    .menu>ul>li {
        display: inline-block;
        padding: 0;
        margin: 0;
        width: auto;
        background-color: #f7e490;
        /*追加*/
        width: calc(100% / 8);
        margin: 0 4px 0 0px;
        text-align: center;
        line-height: 1.25;
        height: 100px;
        border-bottom: none;

    }

    .menu>ul>li:last-child {
        margin: 0 0 0 0px;
    }

    .menu>ul>li ul>li {
        text-align: left;
    }


    .menu>ul>li a {
        text-decoration: none;
        display: block;
        line-height: 36px;
        height: 36px;
        padding-left: 5px;
        padding-right: 5px;
        /*追加*/
        display: block;
        width: 100%;
        height: 100%;
    }

    .menu>ul>li:hover {
        background-color: #f0f0f0;
    }

    .menu>ul>li>ul {
        display: none;
        width: 100%;
        background: #f0f0f0;
        padding: 10px;
        position: absolute;
        z-index: 99;
        left: 0;
        margin: 0;
        list-style: none;
        box-sizing: border-box;
        /*追加*/
        top: 100px;
    }

    .menu>ul>li>ul:before,
    .menu>ul>li>ul:after {
        content: "";
        display: table;
    }

    .menu>ul>li>ul:after {
        clear: both;
    }

    .menu>ul>li>ul>li {
        margin: 0;
        padding-bottom: 0;
        list-style: none;
        width: 25%;
        background: none;
        float: left;
    }

    .menu>ul>li>ul>li a {
        color: #777;
        padding: .2em 0;
        width: 100%;
        display: block;
        border-bottom: 1px solid #ccc;
    }

    .menu>ul>li>ul>li>ul {
        display: block;
        padding: 0;
        margin: 0;
        list-style: none;
        box-sizing: border-box;
    }

    .menu>ul>li>ul>li>ul:before,
    .menu>ul>li>ul>li>ul:after {
        content: "";
        display: table;
    }

    .menu>ul>li>ul>li>ul:after {
        clear: both;
    }

    .menu>ul>li>ul>li>ul>li {
        float: left;
        width: 100%;
        padding: 10px 0;
        margin: 0;
        font-size: .8em;
    }

    .menu>ul>li>ul>li>ul>li a {
        border: 0;

    }

    .menu>ul>li>ul.normal-sub {
        width: 200px;
        left: auto;
        padding: 10px 20px;
    }

    .menu>ul>li>ul.normal-sub>li {
        width: 100%;
    }

    .menu>ul>li>ul.normal-sub>li a {
        border: 0;
        padding: 0;
    }

}

@media only screen and (min-width: 768px) {
    .menu>ul>li a {
        font-size: 11px;
        /*追加*/
        padding-top: 32px;
    }

    .menu>ul>li a i {
        display: block;
        font-size: 32px;
    }

    .menu>ul>li a i::before {
        font-family: "Font Awesome 6 Free";
        margin-bottom: 5px;
        margin-right: 0px;
        display: block;
        color: #666;
    }

    .menu>ul>li a.current i::before {
        color: var(--main-colorDark);
    }
}

@media only screen and (min-width: 868px) {
    .menu>ul>li a {
        font-size: 12px;
        /*追加*/
        padding-top: 32px;
    }

    .menu>ul>li a i {
        display: block;
        font-size: 32px;
    }

    .menu>ul>li a i::before {
        font-family: "Font Awesome 6 Free";
        margin-bottom: 5px;
        margin-right: 0px;
        display: block;
    }
}

@media only screen and (min-width: 968px) {
    .menu>ul>li a {
        font-size: 14px;
        /*追加*/
        padding-top: 32px;
    }

    .menu>ul>li a i {
        display: block;
        font-size: 32px;
    }

    .menu>ul>li a i::before {
        font-family: "Font Awesome 6 Free";
        margin-bottom: 5px;
        margin-right: 0px;
        display: block;
    }
}

@media only screen and (min-width: 1000px) {
    .menu>ul>li a {
        font-size: 16px;
        padding-top: 30px;
    }

    .menu>ul>li a i {
        display: block;
        font-size: 32px;
    }

    .menu>ul>li a i::before {
        font-family: "Font Awesome 6 Free";
        margin-bottom: 5px;
        margin-right: 0px;
        display: block;
    }
}