/* ヘッダー */
#header {
    position: fixed;
    z-index: 9999;
    top: 0;
    max-height: 100px;
    width: 100%;
}

#header .header_content {
    background-color: rgba(14, 8, 8, 0.5);
    display: flex;
    height: 100px;
    width: 100%;
}

#header .header_content .logo {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 40px;
}

#header .header_content .logo .title{
    color: rgba(246, 244, 244, 1);
    font-weight: 900;
}

/* TB用 */
@media screen and (min-width: 821px) and (max-width: 1024px){
    #header .header_content #navi .menu li a {
        padding:0 10px;
        font-size:16px;
    }
}

@media screen and (min-width: 1025px) and (max-width: 1450px){
    #header .header_content #navi .menu li a {
        padding:0 20px;
        font-size:20px;
    }
}

/* PC用 */
@media screen and (min-width: 1451px){
    #header .header_content #navi .menu li a {
        font-size:20px;
        padding:0 30px;
    }
}

/* PC用 */
@media screen and (min-width: 1025px) {
    #header .header_content .logo{
        max-width:30%;
    }

    #header .header_content .logo .title{
        font-size: 24px;
    }

    #header .header_content .logo a {
        margin: 0 10px;
    }

    #header .header_content .logo a img {
        height: 50px;
    }

    #header .header_content #nav_button{
        display: none;
    }

    #header .header_content .nav_menu {
        width: 100%;
    }

    #header .header_content #navi {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin: 0 20% 0 5%;
        height: 100%;
    }

    #header .header_content #navi .menu {
        padding-left: 0;
        text-align: left;
        width: 100%;
        display: flex;
        margin:0px;
        height:100%;
        justify-content: center;
        /* gap:50px; */
    }

    #header .header_content #navi .menu li {
        display: flex;
        justify-content: center;
        /* align-items: center; */
        list-style: none;
        position: relative;
    }

    #header .header_content #navi .menu li a {
        text-decoration: none;
        font-weight: 700;
        color: rgba(246, 244, 244, 1);
        /* font-size: 20px; */
        width:100%;
        height:100%;
        display: flex;
        align-items: center;
        /* padding:0px 50px; */
        box-sizing: border-box;
    }

    /* カーソルを合わせると出てくるメニュー */
    #header .header_content #navi>.menu>li>.sub-menu {
         opacity: 0;

        padding:0px;
        width:240px;
        background-color: rgba(14, 8, 8, 0.5);
        position:absolute;
        margin-left:-120px;
        top:100%;
        left:50%;
    }

    /* カーソルを合わせてないときの挙動 */
    #header .header_content #navi .menu>li:not(:hover)>ul.sub-menu {
        top:50%;

        /* height:0px;
        transform: none; */
    }

    #header .header_content #navi .menu>li:not(:hover)>ul.sub-menu>li {
        height:0px;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li:not(.active)>ul,
    #header .header_content #navi .menu>li>ul.sub-menu>li:not(.active)>ul>li, 
    #header .header_content #navi .menu>li>ul.sub-menu>li:not(.active)>ul>li>a{
        display:none;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li>a{
        width:200px;
        padding:0px 10px 5px 10px;
        font-size: 18px;
    }

    #header .header_content #navi .menu>li:hover>ul.sub-menu {
        transition: 0.3s;
        opacity: 1;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li{
        width:100%;
        margin:15px 0px;
        box-sizing: border-box;
        flex-direction: column;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li.active>ul{
        height:100%;
        display:block;
        padding-left:30px;
        margin-top:5px;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li.active>ul>li{
        display: block;
        align-items: start;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li.active>ul>li>a{
        display:block;
        margin-right:120px;
        width:90%;
        height:100%;
        padding:5px 0px;
        font-size: 16px;
    }


     #header .header_content #navi .menu>li>ul.sub-menu>li>.line{
        position: relative;
        width:220px;
     }

     #header .header_content #navi .menu>li>ul.sub-menu>li>.line::after{
        content:"";
        border-bottom: solid 1px rgba(246, 244, 244, 1);
        display: block;
        width:100%;
        position: absolute;
        bottom: 0px;
        left:10px;
     }

    /* #header .header_content #navi .menu>li>ul.sub-menu>li.active>ul>li::after{
        width:100px;
    }  */

    #header .header_content #navi .menu>li>ul.sub-menu>li:has(.sub-menu){
        position: relative;
        cursor: pointer;
    }
    
    #header .header_content #navi .menu>li>ul.sub-menu>li:has(.sub-menu)>.pulldown::after{
        content:"";
        position: absolute;
        width:10px;
        height:10px;
        border-top: 2px solid rgba(246, 244, 244, 1);
        border-right: 2px solid rgba(246, 244, 244, 1);
        transform:translate(32px, -5px) rotate(135deg);
        transition: 0.3s ease-in-out;
        right:45px;
        top:15px;
    }

    #header .header_content #navi .menu>li>ul.sub-menu>li.active:has(.sub-menu)>.pulldown::after{
        transform:translate(32px, -2px) rotate(-45deg);
        transition: 0.3s ease-in-out;
    }
    
}

/* スマホ・TB用 */
@media screen and (max-width: 1024px) {
    .menu-active{
        overflow:hidden;
    }
    
    #header {
        max-height:80px;
     }
     
     #header .header_content {
        height:80px;
     }

     #header .header_content .logo{
        margin:0px 10px;
     }

     #header .header_content .logo .title{
        font-size:14px;
        margin: 0 5px;
    }

    #header .header_content .logo a {
        margin: 0 5px;
    }

    #header .header_content .logo a img {
        height: 40px;
    }

    #header .nav_button {
        position: absolute;
        z-index: 10;
        top: 50%;
        right: 1rem;
        display: block;
        cursor: pointer;
        transform: translateY(-50%);
        border: 0;
        background-color: transparent;
    }

    #header .nav_button:focus {
        outline: 0;
    }

    #header .nav_button::after {
        font-family: "Material Symbols Outlined";
        font-size: 2.5rem;
        content: "\e5d2";
        color: rgba(246, 244, 244, 1);
    }

    #header .menu-active .nav_button::after {
        content: "\e5cd";
        color: rgba(246, 244, 244, 1);
    }

    #header .nav_menu {
        position: fixed;
        z-index: 9;
        top: 0;
        left: 0;
        display: none;
        /* overflow-y: auto; */
        width: 100%;
        background-color: rgba(14, 8, 8, 0.5);

        height:100%;
        overflow-y: scroll;
    }

    #header .nav_menu .nav {
        margin: 0px !important;
    }

    #header .nav_menu .nav .menu {
        width: 100%;
        display: flex;
        flex-direction: column;
        padding-top: 50px;
        padding-left:0px;
        list-style-type:none;
    }

    #header .nav_menu .nav ul {
        list-style-type:none;
    }

    #header .nav li {
        margin: 10px 30px !important;
        text-align: left;
    }

    #header .nav li a {
        display: block;
        font-size: 20px;
        font-weight: 600;
        text-align: left;
        color: rgba(246, 244, 244, 1);
        text-decoration: none;
    }

    #header .header_content #navi .menu li .sub-menu {
        display: none;
        padding-left: 10px;
    }

     #header .header_content #navi .menu li .sub-menu li{
        margin: 10px!important;
    }

    #header .header_content #navi .menu li .sub-menu li a{
       font-size: 16px;
        padding-bottom:5px;
    }

    #header .header_content #navi .menu>li>a{
        width:80%;
    }

    #header .header_content #navi .menu>li>.sub-menu>li>ul{
        padding-left:0px;
    }

    #header .header_content #navi .menu>li>.sub-menu>li>ul>li{
       margin: 10px!important;
    }

    #header .header_content #navi .menu>li>.sub-menu>li>ul>li>a{
       font-size: 14px;
       border-bottom: none;
    }

    #header .header_content #navi .menu li:has(.sub-menu){
        position: relative;
    }

    #header .header_content #navi .menu li:has(.sub-menu)>.line{
        position: relative;
     }

    #header .header_content #navi .menu li:has(.sub-menu)>.line::after{
        content:"";
        border-bottom: solid 1px rgba(246, 244, 244, 1);
        display: block;
        width:100%;
        position: absolute;
        bottom: 0px;
     }

    #header .header_content #navi .menu li:has(.sub-menu)>.pulldown::after{
        content:"";
        position: absolute;
        width:10px;
        height:10px;
        border-top: 2px solid rgba(246, 244, 244, 1);
        border-right: 2px solid rgba(246, 244, 244, 1);
        transform:translate(32px, -5px) rotate(135deg);
        transition: 0.3s ease-in-out;
        right:35px;
        top:15px;
    }

    #header .header_content #navi .menu li.active:has(.sub-menu)>.pulldown::after{
        transform:translate(32px, -2px) rotate(-45deg);
        transition: 0.3s ease-in-out;
    }

    /* #header .header_content #navi .menu li:has(.sub-menu)::after{
        content:"";
        position: absolute;
        width:10px;
        height:10px;
        border-top: 2px solid rgba(246, 244, 244, 1);
        border-right: 2px solid rgba(246, 244, 244, 1);
        transform:translate(32px, -5px) rotate(135deg);
        transition: 0.3s ease-in-out;
        right:30px;
        top:15px;
    }

    #header .header_content #navi .menu li.active:has(.sub-menu)::after{
        transform:translate(32px, -2px) rotate(-45deg);
        transition: 0.3s ease-in-out;
    } */

}

/* ヘッダー終了 */