@charset "utf-8";

:root {
    --hamburger-left: 0px;
    --hamburger-top: -30px;
    --hamburger-width: 20px;
    --hamburger-animation-sec: .3s;
    --hamburger-button-sec: .2s;
    --hamburger-button-line-px: 4px;
    --hamburger-button-line-radius: 0px;
}

.hamburger {
    transition: 0.3s;
    position: absolute;
    left: var(--hamburger-left);
    top: var(--hamburger-top);
    width: 60px; /* クリックしやすいようにちゃんと幅を指定する */
    height: 60px; /* クリックしやすいようにちゃんと高さを指定する */
    cursor: pointer;
    z-index: 300;
}

.hamburger-open {
    transition: 0.3s;
    position: absolute;
    left: 20px;
    top: 15px;
    width: 60px; /* クリックしやすいようにちゃんと幅を指定する */
    height: 60px; /* クリックしやすいようにちゃんと高さを指定する */
    cursor: pointer;
    z-index: 300;
}

@media (min-width: 576px) {
    .hamburger-open {
        left: 45px;
    }
}

.hamburger__line {
    position: absolute;
    left: 0px;
    width: 35px;
    height: 2px;
    background-color: var(--gray-color);
    transition: all var(--hamburger-animation-sec);
}
.hamburger__line--1 {
    top: 17px;
}
.hamburger__line--2 {
    top: 30px;
}
.hamburger__line--3 {
    top: 43px;
}
.white-bg {
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    z-index: 100;
    background-color: #fff;
    opacity: 0;
    visibility: hidden;
    transition: all var(--hamburger-animation-sec);
    cursor: pointer;
}

/* 表示された時用のCSS */
.nav-open .global-nav {
    left: 0;
}
.nav-open .white-bg {
    opacity: .8;
    visibility: visible;
}
.nav-open .hamburger__line--1 {
    transform: rotate(45deg);
    background-color: white;
    width: 50px;
    position: absolute;
    left: 0px;
    top: 0px;
}
.nav-open .hamburger__line--2 {
    width: 0;
    background-color: white;
    left: 50%;
}
.nav-open .hamburger__line--3 {
    transform: rotate(-45deg);
    background-color: white;
    width: 50px;
    position: absolute;
    left: 0px;
    top: 0px;
}

@keyframes borderScale {
    99% {
        width: calc(50% + var(--hamburger-button-line-radius));
    }
    100% {
        width:0;
    }
}

@keyframes borderAppear {
    32% {
        border: 4px rgba(255,255,255,0.5) solid;
    }
    33% {
        border-top: 4px white solid;
    }
    65% {
        border: 4px rgba(255,255,255,0.5) solid;
        border-top: 4px white solid;
    }
    66% {
        border: 4px rgba(255,255,255,0.5) solid;
        border-top: 4px white solid;
        border-left: 4px white solid;
        border-right: 4px white solid;
    }
    99% {
        border: 4px rgba(255,255,255,0.5) solid;
        border-top: 4px white solid;
        border-left: 4px white solid;
        border-right: 4px white solid;
    }
    100% {
        border: 4px white solid;
    }
}
