#header {
    width:100%;
    height:130px;
    position:fixed;
    left:0;
    top:0;
    z-index: 10;
    opacity:0;
    transition:opacity 0.5s var(--ease);
    padding-left:30px;
    padding-right:45px;
    padding-top:18px;
    display: flex;
    justify-content:space-between;
    color:white;
}
.loaded #header {
    opacity:1;
}
.logo {
    width:min(13%,250px);
}
#g-nav{
    position:fixed;
    top:60px;
    left:calc(60px + min(13%,250px));
    width:auto;
/*    mix-blend-mode: difference;*/
    z-index: 100;
}

#g-nav > ul {
    display: flex;
    height:100%;
    align-items:flex-end;
    justify-content: flex-start;
    list-style: none;
    padding-left:0;
    gap:var(--size25);
}
#g-nav ul > li {
    position:relative;
    display: flex;
}
#g-nav ul > li:has(.child_nav):after {
    content: "+";
    display: block;
    width: 1em;
    height: 1em;
    margin-left: 0.5em;
/*    color: white;*/
    font-weight: 600;
} 

#g-nav ul li a,#g-nav ul li > span{
/*    color:var(--white);*/
}
#g-nav ul li a > span {
    display: block;
}
#g-nav ul li span.en {
    font-weight:900;
    font-size:var(--fsize15);
    letter-spacing: 0.07em;
    display: block;
}
#g-nav ul li a > span.ja {
    padding-inline:0.5em 0;
    font-size:var(--fsize10);
    letter-spacing: 0.29em;
}
#g-nav ul.child_nav {
    visibility: hidden;
    transform: scaleY(0);
    opacity:0;
    position:absolute;
    left:0;
    top:99%;
    margin-left:0;
    padding:16px;
    background-color: white;
    transition:.3s var(--easeout);
    transform-origin: top;
}
#g-nav ul.child_nav a {
    color:black;
    font-weight:600;
    font-family:var(--fonten);
    font-size:0.85em;
}
#g-nav ul.child_nav a:after {
    content:"";
    display: block;
    width:100%;
    height:1px;
    background-color: black;
    transform: scaleX(0);
    transition:.3s var(--easeout);
}
#g-nav ul.child_nav a:hover:after {
    transform: scaleX(1);
}
#g-nav ul > li:has(.child_nav):hover .child_nav {
    visibility: visible;
    transform: scaleY(1);
    opacity:1;
}
.utility_nav {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap:30px;
}
.utility_nav a {
    color:white;
}
.langswitch {
    display: flex;
    gap:10px;
}
.langswitch li {
    text-transform: uppercase;
    font-family: var(--fonten);
    font-weight:600;
}
.langswitch li .current {
    text-decoration: underline;
}
.utility_nav .btn_contact {
    width:200px;
    padding:10px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border:1px solid white;
    transition:all .3s var(--easeout);
}
.utility_nav .btn_contact:hover {
    background-color: white;
    color:var(--black);
}
.js-txtcolor_change .utility_nav {
    filter: invert();
}
.openbtn {
    position:fixed;
    right:15px;
    top:11px;
    cursor: pointer;
    opacity:1;
    transition:opacity .3s var(--easeout), display .5s var(--ease);
    width:48px;
    height:48px;
    background-color: white;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.openbtn:hover {
    cursor: pointer;
}

.openbtn span {
    display: block;
    width:20px;
    height:1px;
    background-color: #000;
    position:relative;
    transition:.3s var(--easeout);
}
.openbtn span:nth-child(2) {
    margin-top:9px;
    margin-bottom:9px;
}
.openbtn.on span:nth-child(2) {
    opacity:0;
    margin-top: 0;
    margin-bottom: 0;
}
.openbtn.on span:nth-child(1) {
    transform:rotate(-30deg);
    top: 1px;
}
.openbtn.on span:nth-child(3) {
    transform:rotate(30deg);
    top: -1px;
}
@media (max-width:1024px)  {
    #header {
        height:70px;
        padding-left:10px;
        padding-right:15px;
        align-items: center;
    }
    #header .logo {
        width:auto;
        height:60px;
        aspect-ratio:125/56;
    }
    #header .logo img {
        width:100%;
        height:auto;
    }
    #g-nav {
        top: 0;
        left: 0;
        width: 100%;
        mix-blend-mode: normal;
        z-index: 0;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background-color: rgb(0 0 0 / 0.8);
        opacity:0;
        transition:all .5s var(--easeout);
        gap:80px;
    }
    
    #g-nav .utility_nav{
        flex-flow: column-reverse;
    }
    #g-nav .utility_nav .langswitch {
        padding-left:0;
    }
    #g-nav.on {
        opacity:1;
        z-index: 9;
    } 
    #g-nav > ul {
        flex-flow: wrap;
        display: flex;
        height: auto;
        align-items: center;
        justify-content: center;
        gap: var(--size25);
        flex-direction: column;
        width: min(90%, 200px);
    }
    #g-nav ul li a, #g-nav ul li > span {
         color: var(--white); 
    }
    #g-nav > ul > li {
        display: block; 
        border-bottom: 1px solid white;
        width: 100%;
        padding-bottom:12px;
    }
    #g-nav ul.child_nav {
        visibility: visible; 
        transform: scaleY(1); 
        opacity: 1; 
        position: relative; 
        left: auto;
        top: auto;
        padding:6px 0 12px;
        background-color: transparent;
    }
    #g-nav ul.child_nav li a{
        color:white;
    }
    #g-nav ul.child_nav li {
        border-bottom:none;
        padding-bottom:0;
    }
    #g-nav ul > li:has(.child_nav):after {
        content: none;
    }
    #g-nav ul > li:has(.child_nav) {
        padding-bottom:0;
    }
}
@media (max-width:599px) {
    #g-nav {
        gap:40px;
        padding-top:120px;
        justify-content: flex-start
    }
    #g-nav ul li span.en {
        font-size: 1.25em;
    }
    .utility_nav .btn_contact {
        font-size: 1.25em;
    }
    .langswitch li {
        font-size: 1.125em;
    }
}


