.top_header
{
    width:100vw;
    position: fixed;
    display:flex;
    background-color: #121334;
    color:white;
    align-items: start;
    z-index: 999;
    top:0px;
}


.top_header--menu
{
    display:flex;
    font-weight:700;
    min-height:4rem;
    align-items: center;
}

.top_header--icon
{
    width:3rem;
    margin:4px;
}

.top_header--icon_wrapper
{
    height:4rem;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.top_header--menu_item
{
    border-right: solid 1px white;
    min-width: 8rem;
    text-align: center;
    position:relative;
}

.top_header--sub_menu
{
    background-color: #121334;
    display:none;
    position:absolute;
    width:max-content;
    min-width:8rem;
    font-size:90%;
    padding:1rem 4px 4px 4px;
}

.top_header--menu_item:hover .top_header--sub_menu
{
    /* background-color:red; */
    display:block;
}

.top_header--menu_item:hover .top_header--sub_menu li
{
    text-align: left;
    padding: 8px;
}

.top_header--btn_wrapper
{
    display: flex;
    flex-grow: 1;
    padding:0 calc(1rem + 1%) 0 1rem;
    min-height:4rem;
    align-items: center;
}
.top_header--btn_wrapper button
{
    white-space: nowrap;
}


.top_header--btn_change_language
{
    border-radius: 4px;
    background-color: transparent;
    font-weight: 700;
    padding:8px 1.5rem;
    color: white;
}
.top_header--btn_register
{
    border-radius: 4px;
    background-color: white;
    font-weight: 700;
    min-width: 8rem;
    padding:8px;
}

.top_header--btn_login
{
    border-radius: 4px;
    color: white;
    font-weight: 700;
    min-width: 8rem;
    padding:8px;
}

.top_header--btn_mypage
{
    color: white;
    font-weight: 700;
    min-width: 4rem;
    max-width: 10rem;
    margin: 0 6px;
    padding:8px;
    text-overflow: ellipsis;
    overflow: hidden;
}

.top_header--flex_spacer
{
    flex-grow: 1;
}

.top_header--close_button
{
    display: none;
}

.top_header--show_button
{
    color: white;
    display: none;
}

#top_header--btn_close_menu
{
    width: 1.5rem;
}

#top_header--btn_show_menu
{
    width: 1.5rem;
}

.top_header--site_search
{
    width:20rem;
    display: none;
    flex-grow:1;
    
    position:fixed;
    top:5rem;
    right:10rem;
    z-index:1001;
}

.top_header--close_site_search
{
    display: none;
}

.top_header--site_search_block
{
    display: block;
    flex-grow: 1;
    width:100%;
}

#top_header--btn_close_site_search
{
    width:2rem;
}

#top_header--btn_search
{
    flex-shrink: 0;
}
@media screen and (max-width: 1300px) 
{
    .top_header
    {
        background-color: #121334;
    }
    
    .top_header--menu
    {
        display: block;
        position:absolute;
        max-width:100%;
        height:100vh;
        overflow-y: auto;
        padding-top: 2rem;
        background-color: #121334;
        left:-576px;
    }
    
    .top_header--sub_menu
    {
        display: block;
        position:static;
        padding: 4px 4px 4px 2rem;
    }

    .top_header--sub_menu li
    {
        padding :4px;
    }

    .top_header--menu_item
    {
        padding-left: 2rem;
        text-align: left;
        border-right: none;
        min-width: 375px;
    }

    .top_header--close_button
    {
        display: block;
        position: absolute;
        z-index:1;
        left:12px;
        top:4px;
    }
    
    .top_header--menu_item:hover .top_header--sub_menu li
    {
        text-align: left;
        padding: 4px;
    }

    .top_header--show_button
    {
        display: flex;
        height: 4rem;
        align-items: center;
    }
    
    
    .top_header--site_search
    {
        width:calc(100% - 4rem + 1px);
        height:4rem;
        display: none;
        align-items: center;
        
        position:fixed;
        top:0;
        left:0;
        z-index:1001;
    }
    
    .top_header--close_site_search
    {
        display: flex;
        align-items: center;
        justify-content: center;
        position:fixed;
        z-index:1001;
        right:0;
        width:4rem;
        height:4rem;
        background-color: #121334;
    }
    
    .top_header--site_search_block
    {
        background-color: #121334;
    }
}

@media screen and (max-width: 576px) 
{
    .top_header--btn_login
    {
        min-width: 4rem;
        font-size: 80%;
    }
    
    .top_header--btn_register
    {
        min-width: 4rem;
        font-size: 80%;
    }
    
    .btn_change_language
    {
        min-width: 4rem;
    }
    
    .top_header--menu_item
    {
        width: 100vw;
    }
    
    .top_header--btn_change_language
    {
        font-size: 80%;
        padding:8px;
    }
}