:root {
    --header-inner-width: 1920rem;
}

/* header common */
header.visual_header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff;

    display: flex;
        justify-content: center;
        align-items: flex-start;
}


header>nav {
    width: 90%;
    position: relative;
}

.company_logo {
    max-width: 120rem;
    width: auto;
    height: auto;

}

/* header active */

header.header_fixed {
    position: fixed;
    background-color: transparent;
}
header.header_fixed .menu-container.static_menu_btn {display: none;}

header.header_fixed nav {
    padding-top: 35rem;
}

header.header_fixed .hd_gnb_ul_wrap {
    height: auto;
    pointer-events: all;
    transform: translateY(0);
    transition: transform 0.3s ease;

    overflow: visible;
    box-shadow: 0 2rem 10rem rgba(0, 0, 0, 0.1);
}
header.header_fixed .hd_gnb_ul_wrap.nav_nonview {
    transform: translateY(-200%);
    position: relative;
}

.sidemunu_active header.header_fixed .menu-container.static_menu_btn {display: flex;}

/* GNB 메뉴 상단  */

.hd_top_wrap {
    width: 100%;
    padding: 24rem 0;
}

.hd_top_inner {
    width: var(--header-inner-width);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.infos_box {
    display: flex;
    align-items: center;
    gap: 10rem;
}

.infos_box a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border: 1px solid #000;
    color: #000;
    padding: 10rem 40rem;
    font-size: 14rem;

    transition: all 0.3s ease;

}

.infos_box a:hover,
.infos_box a:focus {
    border-color: #bbb;
}

.infos_box a:first-of-type {
    border-color: transparent;
    background: #000;
    color: #fff;
}

.infos_box a:first-of-type:hover,
.infos_box a:first-of-type:focus {
    border-color: transparent;
    background: #d3ccb6;
    color: #fff;
}

.nav_btns_box {
    display: flex;
    align-items: center;
    margin-right: 70rem;
}

.nav_btns_box .nav_btn {}

.nav_btns_box .nav_btn a {
    font-size: 14rem;
}

.nav_btns_box .nav_btn+.nav_btn {
    padding-left: 30rem;
    position: relative;
}

.nav_btns_box .nav_btn+.nav_btn::before {
    content: '';
    position: absolute;
    width: 1rem;
    height: 10rem;
    background: #000;
    left: 15rem;
    top: 50%;
    transform: translateY(-50%);
}

.menu-container.static_menu_btn {
    position: absolute;
    right: 55rem;
    top: 53rem;
}

.sidemunu_active .menu-container {
    position: fixed;
    right: 55rem;
    top: 53rem;
    transform: none;
    z-index: 2004;
}
.sidemunu_active .menu-container .menu-trigger span {
    background-color: #fff;
}

.hd_top_wrap .hd_btns_box a {
    display: inline-flex;
    padding: 10rem 0;
}


.hd_gnb_ul_wrap {
    position: relative;
    transform: translateY(-200%);
    display: flex;
    align-items: center;
    justify-content: center;
    height: 0;
    overflow: hidden;
    pointer-events: none;

    max-width: 1440rem;
    margin: 0 auto;
    background-color: #ffffffaa;
    border-radius: 10px;
    backdrop-filter: blur(5px);
}

.hd_gnb_ul_wrap #hd_gnb_ul {
    display: flex;

}

.hd_gnb_ul_wrap .hd_gnb_logo {
    position: absolute;
    left: 48rem;
    top: 50%;
    transform: translateY(-50%);
}

.hd_gnb_ul_wrap .hd_gnb_logo a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    max-width: 80rem;
    width: 100%;
    height: auto;
    padding-top: 6rem;
}

.hd_gnb_ul_wrap .hd_gnb_logo a img {
    max-width: inherit;
}

#hd_gnb_ul {
    gap: 40rem;
}

#hd_gnb_ul>li {
    position: relative;
}

#hd_gnb_ul .gnb_li_box {list-style: none;}

#hd_gnb_ul .gnb_li_box .gnb_title {
    padding: 20rem 8rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

#hd_gnb_ul .gnb_li_box .gnb_title span {
    font-size: 15rem;

}

#hd_gnb_ul>li ol {
    position: absolute;
    min-width: 240rem;
    top: calc(100% - 10rem);
    background-color: #000;
    border-radius: 7px;


    height: 0;
    overflow: hidden;
    padding: 0;
    transform: translateY(10rem);




    transition: transform .2s, height .2s, overflow .2s ease-in-out;
}

#hd_gnb_ul>li.gnb_active ol {
    padding: 20rem;
    transform: translateY(0);
    overflow: visible;
    height: auto;
}

#hd_gnb_ul>li ol>li {
    width: 100%;
    border-radius: 7px;
}

#hd_gnb_ul>li ol>li:hover,
#hd_gnb_ul>li ol>li:focus {
    background-color: #fff;
}

#hd_gnb_ul>li ol>li:hover a,
#hd_gnb_ul>li ol>li:focus a {
    color: #000;

}

#hd_gnb_ul>li ol>li a {
    color: #b6b6b6;
    font-family: var(--font-family-montserrat);
    display: flex;
    width: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: 10rem 0 10rem 12rem;
    font-size: 14rem;
}

.fixed_nav_btns {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: absolute;
    right: 20rem;
    top: 50%;
    transform: translateY(-50%);
}

/* 유저 nav 말풍선 */
.user_li {
    position: relative;
    display: flex;
        justify-content: center;
        align-items: center;
        width: 36rem;
        height: 34rem;
}

.user_li .nav_btn i {
    font-size: 20rem;
}

.user_li .user_list {
    position: absolute;
    top: 21rem;
    left: 50%;
    transform: translate(-50%, 0);
    border: 1px solid #ddd;
    background-color: #fff;
    z-index: 130;
    min-width: 83rem;
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: 17rem 10rem;
    gap: 10rem;
    border-radius: 10px;
    opacity: 0;
    visibility: hidden;

    transition: all 0.3s ease;
}

.user_li:hover .user_list {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 10rem);
}

.user_list .triangle {
    position: absolute;
    top: -3rem;
    left: 50%;
    transform: translateX(-50%) rotate(316deg);
    width: 0;
    height: 0;
    border-left: 2px solid #fff;
    border-right: 5px solid #fff;
    border-bottom: 7px solid white;
    box-shadow: 1px -1px 1px #bbb;
}

.user_li .user_list a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.user_li .user_list a span {
    display: inline-flex;
    font-weight: normal;
    font-size: 14rem;
}

.user_list .triangle {
    position: absolute;
    top: -3rem;
    left: 50%;
    transform: translateX(-50%) rotate(316deg);
    width: 0;
    height: 0;
    border-left: 2px solid #fff;
    border-right: 5px solid #fff;
    border-bottom: 7px solid white;
    box-shadow: 1px -1px 1px #bbb;
}

.mobile_reserve_btn {
    display: inline-flex;
    height: auto;

    position: absolute;
    top: 2.5px;
    left: 0;
}
#mega .mobile_reserve_btn {top:1px;}
.mobile_reserve_btn dotlottie-wc {
    width: 37px;
    height: 30px;
}

/* GNB BUTTON */
#threadBtn {
    position: absolute;
    right: 55rem;
    top: 55rem;

    width: 40rem;
    height: 40rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    z-index: 1002;
}

#threadBtn span {
    position: absolute;
    bottom: 12rem;
    left: 50%;
    transform: translateX(-50%);
    height: 2rem;
    width: 24rem;
    background-color: #1c1c1c;
    transform-origin: center;
    /* 중심 기준으로 스케일 줄이기 */
    transform: scaleX(1);
    /* 기본 상태 */
    transition: transform 0.4s ease;
    /* 애니메이션 */
}

#threadBtn #threadCanvas {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transform: translateY(0);
    transition: transform 0.4s ease;

}

#threadBtn.btn_active:hover span {
    transform: scaleX(0);
}

#threadBtn.btn_active:hover #threadCanvas {
    transform: translateY(10rem);
}

.menu-container {
    display: grid;
    grid-template-rows: 1fr auto;
    grid-template-columns: 1fr auto;

    padding: 10rem;
}


.menu-trigger {
    position: relative;
    width: 24rem;
    height: 18rem;
    cursor: pointer;

    overflow: hidden;
}

.menu-trigger:hover span:nth-of-type(1),
.menu-trigger:hover span:nth-of-type(3) {
    width: 100%;
}

.fixed_nav_btns .menu-trigger {
    width: 16rem;
    height: 14rem;
}

.menu-container.standard_menu_btn {
    position: absolute;
    right: 55rem;
    top: 55rem;
}

.menu-trigger span {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 2rem;
    background-color: #000;
    border-radius: 2px;
    transition: width 0.1s ease-in-out;
}

.menu-trigger span:nth-of-type(1) {
    top: 0;
    width: 70%;
}

.menu-trigger span:nth-of-type(2) {
    top: 50%;
    transform: translate(-50%, -50%);
}

.menu-trigger span:nth-of-type(3) {
    width: 70%;
    top: 85%;
}

.sidemunu_active .menu-container.static_menu_btn .menu-trigger span:nth-of-type(1) {
    top: 50%;
    width: 100%;
    transform: translate(-50%, -50%) rotate(45deg);
}
.sidemunu_active .menu-container.static_menu_btn .menu-trigger span:nth-of-type(2) {
    transform: translate(100%, -50%);
}
.sidemunu_active .menu-container.static_menu_btn .menu-trigger span:nth-of-type(3) {
    top: 50%;
    width: 100%;
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* 모바일 멤버십 카드 */
    .mobile_membercard_modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.0);
        z-index: 1000;
        transition: all 0.4s ease-out;
    }
    .modal_content {
        position: absolute;
        top: 200%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 80%;
        background-image: url(../img/member/membercardbg_03.png);
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 100% 100%;
        padding: 40rem 0 20rem;
        border-radius: 30rem;
        max-width: 400rem;
        opacity: 0;
        transition: all 0.4s ease-out;
    }
    .modal_header {
        text-align: center;
        margin-bottom: 20rem;
    }
    .modal_header img {
        width: 120rem;
    }
    .modal_body {
        text-align: center;
    }

    .modal_body_inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 30rem;
    }

    .modal_body_inner_item {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 30rem;
    }

    .modal_body_inner_img {
        width: 150rem;
        box-shadow: 0 0 10rem rgba(0, 0, 0, 0.1);
        border-radius: 20rem;
        overflow: hidden;
        height: 220rem;
        background-color: #fff;
    }
    .modal_body_inner_img img{
        width: 100%;
        height: 100%;
        object-fit: contain;
        vertical-align: bottom;
    }

    .modal_body_inner_text{
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 5rem;
    }

    .modal_body_inner_text::before{
        content: '';
        display: block;
        width: 20rem;
        height: 1px;
        background-color: #000;
        margin-bottom: 15rem;
    }
    .modal_body_inner_text p{
        font-size: 16rem;
        font-weight: 500;
        color: #000;
    }
    .modal_body_inner_text span{
        font-weight: 700;
        color: #000;
        margin-left: 10rem;
    }

    .modal_body_inner i{
        font-size: 11rem;
        color: #000;
        font-style: normal;
        display: block;
    }






