@charset "utf-8";

:root {
    --scrollbar: 0;
}

/*ハンバーガーメニュー*/
.hunberger{
    --menu--width: 128px;
    position: absolute;
    width: var(--menu--width);
    height: 800px;
    right: 0;
    z-index: 70;
    overflow: hidden;
    @media screen and (max-width: 480px){
        --menu--width: 76px;
    }
    nav{
        justify-content: space-between;
        align-items: center;
        .unity{
            width: var(--menu--width);
            height: 230.17px;
            padding-top: 47px;
            position: absolute;
            z-index: 9;
            @media screen and (max-width: 768px){
                height: 67px;
                padding-top: 40px;
            }
            .nav{
                .menu-icon{
                    width: 30px;
                    cursor: pointer;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                    height: 14px;
                    margin: 0 auto;
                    position: absolute;
                    right: calc(var(--menu--width) / 2);
                    transform: translate(50%, 0%);
                    span{
                        display: block;
                        height: 2px;
                        background-color: #0d2f62;
                        border-radius: 2px;
                    }
                }
            }
            .menu_text{
                margin-left: calc(var(--menu--width) / 2);
                width: 12px;
                height: 12px;
                .menuopen{
                    transform: rotate(90deg);
                    transform-origin: center left;
                    z-index: 1;
                    white-space: nowrap;
                    font-size: 12px;
                    font-weight: 700;
                    line-height: 18px;
                    letter-spacing: 0.16em;
                    color: #0d2f62;
                    display: inline-block;
                    padding-left: 40px;
                }
                @media screen and (max-width: 768px){
                    display: none;
                }
            }
        }
        .unity.fixed {
            position: fixed;
            top: 0;
            z-index: 20;
            padding: 0;
        }
        .group{
            right: var(--scrollbar);
            position: absolute;
            z-index: 120;
            height: 230.17px;
            padding-top: 47px;
            display: none;
            width: var(--menu--width);
            @media screen and (max-width: 768px){
                height: 67px;
                padding-top: 40px;
            }
            .menu-close{
                width: 30px;
                cursor: pointer;
                display: flex;
                flex-direction: column;
                justify-content: space-between;
                height: 14px;
                right: 44px;
                margin: 0 auto;
                span{
                    display: block;
                    height: 2px;
                    background-color: #fff;
                    border-radius: 2px;
                }
                span:nth-child(1){
                    transform: rotate(45deg) translate(4px, 4px);
                }
                span:nth-child(2){
                    transform: rotate(-45deg) translate(4.5px, -4.5px);
                }
            }
        }
        .group.open-group{
            display: block;
            position: fixed;
            z-index: 99;
        }
        .menu{
            display: block;
            width: 380px;
            height: 100%;
            position: fixed;
            background-color: #0d2f62;
            list-style: none;
            padding: 32px 44px 32px 44px;
            margin: 0px 0 0 0;
            color: #fff;
            z-index: 30;
            overflow-y: auto;
            transition: transform 0.5s ease-in-out;
            transform: translateX(100%);
            right: 0;
            @media screen and (max-width: 768px){
                width: 100%;
            }
            ul{
                height: 340px;
                margin-top: 100px;
                --list--height: 225px;
                li{
                    margin: 0 0 32px;
                    a{
                        text-decoration: none;
                        border-radius: 4px;
                        font-size: 14px;
                        font-weight: 700;
                        line-height: 21px;
                        color: #fff;
                    }
                }
            }
            .others{
                background-image: linear-gradient(to right, #ffffff 208px, transparent 208px); /* 下線の長さを指定 */
                background-position: top left;
                background-repeat: no-repeat;
                background-size: 255px 1px;
                padding: 32px 0 0 0;
                .sns{
                    .description{
                        font-family: 'manrope' ,sans-serif;
                        font-size: 14px;
                        font-weight: 300;
                        line-height: 19.12px;
                        letter-spacing: 0.2em;
                        text-align: left;                            
                    }
                    .side{
                        display: flex;
                        margin-top: 6px;
                        gap: 8px;
                        .icon{
                            width: auto;
                            height: 10px;
                        }
                    }
                }
                .address{
                    margin-top: 24px;
                    .description{
                        font-size: 14px;
                        font-weight: 500;
                        line-height: 20px;
                        letter-spacing: 0.2em;
                    }
                }
                .mail{
                    margin-top: 20px;
                    align-items: center;
                    display: flex;
                    gap: 8px;
                    span{
                        font-size: 14px;
                        font-weight: 500;
                        line-height: 20px;
                        letter-spacing: 0.2em;
                        text-align: left;
                        color: #fff;
                        text-decoration: none;
                    }
                }
            }
        }
        .menu.open{
            animation: fadeInFromRight 0.5s ease forwards;
        }
    }
    .menu-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        /* From https://css.glass */
        background: rgba(255, 255, 255, 0.4);
        border-radius: 16px;
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
        backdrop-filter: blur(17.2px);
        -webkit-backdrop-filter: blur(17.2px);
        display: none; /* デフォルトは非表示 */
        z-index: 20; /* メニューより低いが背景を覆う */
    }
    .menu.open ~ .menu-overlay {
        display: block;
    }
}
body.no-scroll {
    overflow: hidden;
}


@keyframes fadeInFromRight {
    from {
        transform: translateX(100%); /* 右から */
    }
    to {
        transform: translateX(0); /* 元の位置へ */
    }
}


