/* =====================================
   Header
===================================== */

.header {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    height: 80px;

    background: rgba(255,255,255,.98);

    backdrop-filter: blur(8px);

    z-index: 9999;

    transition: all .3s ease;

    box-shadow:
    0 2px 15px rgba(0,0,0,.05);

}

/* スクロール時 */

.header.scrolled {

    height: 70px;

    box-shadow:
    0 8px 25px rgba(0,0,0,.12);

}

/* =========================
   Container
========================= */

.header .container {

    height: 100%;

    display: flex;

    align-items: center;

    justify-content: space-between;

}

/* =========================
   Logo
========================= */

.logo {

    display: flex;

    align-items: center;

    text-decoration: none;

}

.logo img {

    height: 48px;

    width: auto;

    transition: .3s;

}

.header.scrolled .logo img {

    height: 42px;

}

/* =========================
   Navigation
========================= */

.header nav {

    display: flex;

    align-items: center;

    gap: 20px;

}

.header nav a {

    position: relative;

    color: var(--primary);

    text-decoration: none;

    font-size: 13px;

    font-weight: 700;

    white-space: nowrap;

    transition: .3s;

}

/* Hover */

.header nav a:hover {

    color: var(--accent);

}

/* Underline Animation */

.header nav a::after {

    content: "";

    position: absolute;

    left: 0;
    bottom: -8px;

    width: 0;

    height: 2px;

    background: var(--accent);

    transition: .3s;

}

.header nav a:hover::after {

    width: 100%;

}

/* =========================
   CTA Button
========================= */

.header-cta {

    margin-left: 10px;
}

.header-cta .btn {

    min-width: 140px;

    height: 46px;

    font-size: 13px;
}

/* =========================
   Mobile Button
========================= */

.menu-toggle {

    display: none;

    width: 40px;

    height: 40px;

    cursor: pointer;

    position: relative;

}

.menu-toggle span {

    position: absolute;

    left: 0;

    width: 100%;

    height: 3px;

    background: var(--primary);

    transition: .3s;

}

.menu-toggle span:nth-child(1) {

    top: 8px;
}

.menu-toggle span:nth-child(2) {

    top: 18px;
}

.menu-toggle span:nth-child(3) {

    top: 28px;
}

/* ハンバーガー → バツ アニメーション */

.menu-toggle.active span:nth-child(1) {
    top: 18px;
    transform: rotate(45deg);
}

.menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.active span:nth-child(3) {
    top: 18px;
    transform: rotate(-45deg);
}

/* =========================
   Mobile Menu
========================= */

.mobile-nav {

    display: none;
}

/* =========================
   Responsive
========================= */

@media screen and (max-width: 1200px) {

    .header nav {

        gap: 14px;
    }

}

@media screen and (max-width: 992px) {

    .header {

        height: 70px;
    }

    .header nav {

        gap: 10px;
    }

    .header nav a {

        font-size: 12px;
    }

    .header-cta .btn {

        min-width: 120px;
        font-size: 12px;
    }

}

@media screen and (max-width: 768px) {

    .header {

        height: 70px;
    }

    .header nav {

        display: none;
    }

    .menu-toggle {

        display: block;
    }

    .logo img {

        height: 40px;
    }

}

/* =========================
   Mobile Drawer
========================= */

.mobile-nav.active {

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    gap: 30px;

    position: fixed;

    top: 70px;
    left: 0;

    width: 100%;

    height: calc(100vh - 70px);

    background: #ffffff;

    z-index: 9998;
}

.mobile-nav a {

    color: var(--primary);

    text-decoration: none;

    font-size: 20px;

    font-weight: 700;
}

/* =========================
   Header Spacer
========================= */

body {

    padding-top: 80px;

}

@media screen and (max-width:768px) {

    body {

        padding-top: 70px;
    }

}