/* =====================================================
ãƒ˜ãƒƒãƒ€ãƒ¼
===================================================== */

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background: rgba(255, 255, 255, .60);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: background .3s ease;
    overflow: visible;
    z-index: 1000;
}

@media screen and (min-width:980px) {
    .header {
        height: 72px;
    }
}

.header.is-open {
    background: rgba(255, 255, 255, .95);
}


/* =====================================================
ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆ
===================================================== */

.header-wrap {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 1032px;
    height: 100%;
    margin: 0 auto;
    padding: 0 10px;
}

.header-logo,
.header-menu {
    flex-shrink: 0;
}


/* =====================================================
ãƒ­ã‚´
===================================================== */

.header-logo {
    margin: 0;
}

.header-logo a {
    display: flex;
    align-items: center;
    height: 100%;
    transition: opacity .35s;
}

.header-logo a:hover {
    opacity: .6;
}

.header-logo img {
    display: block;
    height: 49px;
    width: auto;
}

@media screen and (min-width:980px) {

    .header-logo img {
        height: 59px;
        width: auto;
    }

}


/* =====================================================
ãƒãƒ³ãƒãƒ¼ã‚¬ãƒ¼
===================================================== */

.hamburger-button {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: none;
    background: none;
    color: #000;
    cursor: pointer;
    transition: opacity .3s;
}

.hamburger-button:hover {
    opacity: .65;
}

.hamburger-button .fa-solid {
    font-size: 30px;
    line-height: 1;
    transition:
        transform .35s ease,
        opacity .25s ease;
}

.hamburger-button.is-open .fa-solid {
    transform: rotate(180deg);

}

.header-menu-title {
    margin-top: 3px;
    font-size: 9px;
    font-weight: bold;
    letter-spacing: .08em;
    transition:
        opacity .25s,
        transform .25s;
}


/* =====================================================
SPãƒŠãƒ“
===================================================== */

.sp-nav {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: rgba(255, 255, 255, .72);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid rgba(255, 255, 255, .35);
    box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
    overflow: hidden;
    transform: translateY(-15px);
    opacity: 0;
    visibility: hidden;
    /*transition:
        transform .45s cubic-bezier(.22, 1, .36, 1),
        opacity .45s ease,
        visibility .45s ease;*/
    transition: none;
    z-index: 999;
}

.sp-nav.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    transition:
        transform .45s cubic-bezier(.22, 1, .36, 1),
        opacity .45s ease,
        visibility .45s ease;
}

.sp-nav-inner {
    width: 100%;
}

.sp-nav-list {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 0;
}

.sp-nav-item {
    margin: 0;
    padding: 0;
    opacity: 0;
    transform: translateY(-12px);
    border-bottom: 1px solid rgba(0,0,0,.08);
    transition:
        opacity .35s ease,
        transform .35s ease;
}

.sp-nav-item:first-child {
    border-top: 1px solid rgba(0, 0, 0, .08);
}

@media screen and (min-width:980px) {
    .sp-nav-item:first-child {
        border-top: none;
    }
}

.sp-nav.is-open .sp-nav-item {
    opacity: 1;
    transform: translateY(0);
}

/* é †ç•ªã«è¡¨ç¤º */

.sp-nav.is-open .sp-nav-item:nth-child(1) {
    transition-delay: .08s;
}

.sp-nav.is-open .sp-nav-item:nth-child(2) {
    transition-delay: .12s;
}

.sp-nav.is-open .sp-nav-item:nth-child(3) {
    transition-delay: .16s;
}

.sp-nav.is-open .sp-nav-item:nth-child(4) {
    transition-delay: .20s;
}

.sp-nav.is-open .sp-nav-item:nth-child(5) {
    transition-delay: .24s;
}

.sp-nav.is-open .sp-nav-item:nth-child(6) {
    transition-delay: .28s;
}

.sp-nav.is-open .sp-nav-item:nth-child(7) {
    transition-delay: .32s;
}

.sp-nav-item a {
    display: block;
    width: 100%;
    padding: 14px 0;
    text-align: center;
    font-size: 15px;
    font-weight: bold;
    color: #000;
    transition:
        background-color .3s ease,
        color .3s ease;
}

.sp-nav-item a:hover {
    background: rgba(0, 0, 0, .06);
    color: #777;
}


/* =====================================================
PC
===================================================== */

@media screen and (min-width:980px) {

    /* ãƒãƒ³ãƒãƒ¼ã‚¬ãƒ¼éžè¡¨ç¤º */
    .header-menu {
        display: none;
    }

    /* PCãƒŠãƒ“ */
    .sp-nav {
        position: static;
        width: auto;
        background: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        box-shadow: none;
        border: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        overflow: visible;
        transition: none;
    }

    .sp-nav-inner {
        width: auto;
    }

    .sp-nav-list {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;

        width: auto;
        max-width: none;

        margin: 0;
        padding: 0;

        gap: 24px;
    }

    .sp-nav-item {
        display: block;
        opacity: 1;
        transform: none;
        margin: 0;
        padding: 0;
        border: none;
        transition: none;
    }

    .sp-nav-item a {
        padding: 0;
        font-size: 12px;
        font-weight: bold;
        text-align: center;
        background: transparent;
        transform: none;
        transition:
            color .3s ease,
            opacity .3s ease,
            letter-spacing .3s ease;
    }

    .sp-nav-item a:hover {
        background: transparent;
        color: #666;
        opacity: .65;
    }

}