/* ---------------------------------------- */
/* ---------------- ヘッダー ---------------- */
/* ---------------------------------------- */
.header {
    width: 100vw; margin: 0 auto;
    height: 70px;
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 0px; 
    background: var(--white); 
    position: fixed; top: 0;
    z-index: 1000;
}

header .header-wrapper{
    width: 90%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo {display: flex;}
.logo img { height: 35px; }
.logo img:nth-child(1) { margin-right: 30px; }
.nav ul { display: flex; list-style: none; }
.nav ul li { margin-left: 20px; }
.nav ul li a { text-decoration: none; color: #333; font-weight: bold; font-size: var(--font-normal);}
.hamburger { display: none; cursor: pointer; }
.hamburger span { display: block; width: 25px; height: 3px; margin: 5px; background: #333; }


@media (max-width: 1200px) {
    .header{ height: auto;}
    .header-wrapper .logo{
        flex-direction: column;
        width: auto;
        height: 60px;
    }

    .header-wrapper .logo img{
        width: auto;
        height: 25px;
    }

    .header-wrapper .logo img:nth-child(1){margin-bottom: 10px;}
}



@media (max-width: 992px) {
    .header-wrapper .nav ul li a{font-size: var(--font-semi-normal);}
}

@media (max-width: 768px){
    .header{padding: 15px 0;}
    header .header-wrapper{justify-content: center; position: relative; width: 100%;} 
    header .header-wrapper .logo{flex-direction: row; gap: 15px; height: 20px; width: auto;}
    header .header-wrapper .logo img{margin-bottom: 0; height: 100%;}
    .header-wrapper .logo img:nth-child(1){margin-bottom: 0px;}
    /* ヘッダー ナビ */
    .nav { 
        display: none; 
    }
    .hamburger { 
        display: block; 
        position: absolute;
        right: 5%;
    }
  
    .nav.active { 
        display: block; 
        position: absolute; 
        height: calc(100vh - 30px);
        width: 100vw;
        top: 30px; 
        left: 0; 
        background: #fff; 
        width: 100%; 
        border-top: 1px solid #ddd;
    }
  
    .nav ul { 
        flex-direction: column; 
        padding: 16px 20px; 
    }
  
    .nav ul li { 
        margin: 8px 0;
        text-align: center;
    }
  
    .header-wrapper .nav ul li a{
        display: block;
        padding: 8px 0;
        font-size: var(--font-normal);
    }
}

@media (max-width: 480px){
    .logo img:nth-child(1) { margin-right: 0px; }
    header .header-wrapper .logo{flex-direction: column; gap: 5px; height: 45px;}
    header .header-wrapper .logo a{height: 20px; width: auto;}
    .header-wrapper .logo img:nth-child(1){margin-bottom: 0px;}
}