/* -------------------body--------------------- */
body {
    opacity: 0;
    transition: .5s ease;
}

body.fade-in {
    opacity: 1;
}

body.no-scroll {
    overflow: hidden;
}

/*--------------------------- header ---------------------------*/
/*-- h_top --*/
.h_ham, .ham_popup {
    display: none;
}
.h_top {
    width: 100%;
    height: auto;
    position: fixed;
    top: 0px;
    left: 0;
    background: transparent;
    transform: translateY(0);
    z-index: 99;
    transition: transform .5s ease, background .5s ease;
    padding: 10px;
}

.h_inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    border-radius: var(--border-radius-sm);
    transition: background .5s ease;
}

.h_nav>ul {
    display: flex;
    align-items: center;
    gap: 20px;
}

.h_nav>ul>li {
    position: relative;
}

.h_inner .h_r {
    display: flex;
    gap: var(--con-gap);
}

.h_menu {
    padding: 5px 10px;
    font-size: var(--ft16);
    text-transform: uppercase;
    font-weight: var(--medium);
    color: var(--ft-main);
}

.h_menu::before {
    content: '';
    display: block;
    width: 0;
    height: 2px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity .2s ease, width .5s ease;
    background: linear-gradient(to right, transparent, var(--gray-400) 15%, var(--gray-400) 85%, transparent);
    z-index: -1;
}

.h_menu:hover::before,
.h_menu.on::before {
    opacity: 1;
    width: 100%;
}

.h_sub {
    min-width: max-content;
    position: absolute;
    top: 100%;
    left: 50%;
    background: pink;
    border-radius: var(--border-radius-sm);
    background: var(--gray-100);
    padding: 10px;
    transform: translate(-50%, -10px);
    transition: transform .5s ease, opacity .2s ease;
    pointer-events: none;
    opacity: 0;
    box-shadow: 0 14px 20px #00000020;
}

.h_sub.on {
    transform: translate(-50%, 0);
    opacity: 1;
    pointer-events: visible;
}

.h_sub_menu {
    padding: 6px 12px;
    border-radius: var(--border-radius-sm);
    font-size: .9em;
    font-weight: var(--medium);
    text-align: center;
}

.h_sub li:hover .h_sub_menu {
    background: var(--gray-200);
}

.h_logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 0;
    transition: filter .3s ease;
}

.h_logo a {
    width: 180px;
    height: auto;
    position: relative;
    transition: all .3s ease;
}

.h_logo_img .logo_w {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
}

.h_language {
    display: flex;
    align-items: center;
    gap: 20px;
}

.h_language li {
    font-size: var(--ft16);
    font-weight: var(--medium);
    opacity: 0.4;
    cursor: pointer;
}

.h_language li.on {
    opacity: 1;
}

/* 헤더 scroll */
.h_top.scroll {
    transform: translateY(-100%);
}

.h_top.scroll.up {
    transform: translateY(0);
}

.h_top.scroll.up .h_inner {
    backdrop-filter: blur(8px) saturate(120%);
    -webkit-backdrop-filter: blur(6px) saturate(120%);
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 6px 20px #00000020;
}

/* 헤더 white */
.h_top.white:not(.scroll) {
    background: linear-gradient(to top, transparent, #00000040);
}

.h_top.white:not(.scroll) .h_menu {
    color: white;
}

.h_top.white:not(.scroll) .h_language {
    color: white;
}


header.m_open .h_top.white:not(.scroll) {
    background: transparent;
}

.h_top.white:not(.open):not(.up) .gnb_item a {
    color: white;
    transition: color .3s ease;
}

header:not(.m_open) .h_top.white:not(.open):not(.up) .h_logo .logo_w {
    opacity: 1;
}

header:not(.m_open) .h_top.white:not(.open):not(.up) .h_logo .logo_b {
    opacity: 0;
}

/* 모바일 gnb */
.ham_btn {
    width: 40px;
    height: 40px;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-direction: column;
    position: relative;
    cursor: pointer;
    z-index: 99;
}

.ham_btn>div {
    width: 80%;
    height: 3px;
    position: absolute;
    background: var(--gray-600);
    transition: transform .3s ease;
}

.h_top.white .ham_btn>div {
    background: white;
}

.h_top.scroll .ham_btn>div,
header.m_open .h_top .ham_btn>div {
    background: var(--gray-600) !important;
}

.ham_btn>div:first-child {
    transform: translateY(-5px) rotate(0);
}

.ham_btn>div:last-child {
    transform: translateY(5px) rotate(0);
}

header.m_open .ham_btn>div:first-child {
    transform: translateY(0) rotate(45deg);
}

header.m_open .ham_btn>div:last-child {
    transform: translateY(0) rotate(-45deg);
}

.m_gnb {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100vw;
    height: 100dvh;
    background: white;
    opacity: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 50px;
    padding: 80px 0 0;
    transition: right .8s ease;
    overflow: hidden;
}

.m_gnb .inner {
    width: 100%;
    height: 100%;
    padding: 0 40px 40px;
    overflow-y: auto;
}

.m_gnb_menu {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
}

.m_gnb_item {
    border-top: 1px solid var(--primary-200);
    position: relative;
    cursor: pointer;
}

.m_gnb_item>a,
.m_gnb_item .m_gnb_head {
    padding: 14px 10px;
}

.m_gnb_item.m_my {
    border-top: 0;
    display: flex;
    flex-direction: column;
    padding-top: 20px;
}

.m_gnb_item.m_my p {
    font-size: var(--ft18);
    margin-bottom: 10px;
    padding-left: 10px;
}

.m_gnb_item.m_login {
    border: 0;
    font-size: var(--ft18);
    border: 1px solid var(--primary-300);
    border-radius: var(--border-radius);
    text-align: center;
    margin-bottom: 20px;
}

.m_gnb_head {
    font-size: var(--ft24);
    font-weight: var(--medium);
}

.m_gnb_item.on .m_gnb_head {
    color: var(--primary);
}

.m_gnb_sub {
    padding: 10px;
}

.m_gnb_sub_item {
    font-size: var(--ft20);
    color: var(--gray-500);
}

.m_gnb_sub_item a {
    padding: 6px 0;
}

.m_gnb_menu .text_wrap {
    width: 100%;
}

.m_gnb_drop {
    position: relative;
}

.m_gnb_drop::after {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    background: var(--gray-600);
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(0);
    transition: transform .3s ease;
    mask: url('/images/icon/drop_arrow.svg') no-repeat center / contain;
    -webkit-mask: url('/images/icon/drop_arrow.svg') no-repeat center / contain;
}

.m_gnb_item.open .m_gnb_drop::after {
    transform: translateY(-50%) rotate(-180deg);
}

.m_gnb_footer * {
    font-size: var(--ft16);
}

.m_gnb_info {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.m_gnb_info .list dt {
    font-weight: var(--bold);
    margin-bottom: 6px;
}

.m_gnb_copyright {
    margin-top: 30px;
}

.m_gnb_copyright .link {
    text-decoration: underline;
}





/* open */
/* .h_top.open {
    background: white !important;
    filter: drop-shadow(0 4px 16px #00000010);
}

.h_top::after {
    content: '';
    display: block;
    width: 100%;
    position: relative;
    bottom: 0;
    left: 0;
    height: 0;
    transition: height .3s ease;
}
.h_top.open::after {
    height: 240px;
}
.h_top.open .gnb_sub:hover::after {
    opacity: 1;
} */

.m_gnb_btn,
.m_gnb {
    display: none;
}


/* quick_menu */
.quick_menu {
    position: fixed;
    right: 40px;
    bottom: 50px;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: end;
    gap: 20px;
    z-index: 99;

}

.quick-list {
    width: 100%;
}

.quick-btn,
.top_btn {
    border-radius: var(--border-radius);
    background: var(--point2);
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.quick-btn .icon,
.top_btn .icon {
    width: 44%;
    height: 44%;
    overflow: hidden;
}

.top_btn {
    background: var(--glass);
    backdrop-filter: blur(6px);
    pointer-events: none;
    opacity: 0;
    transition: opacity .5s ease;
}

.top_btn.show {
    opacity: 1;
    pointer-events: visible;
}

.top_btn:hover .icon img {
    transform: translateY(-100%);
    transition: transform .5s ease;
}



/* modal */

.modal {
    display: none;
    position: fixed;
    z-index: 999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.6);
}

.modal-content {
    background-color: #fff;
    margin: 15% auto;
    padding: 60px 30px 30px;
    border-radius: var(--border-radius);
    width: 90%;
    max-width: 400px;
    text-align: center;
    position: relative;
}

.modal-con {
    margin-bottom: 50px;
}

.modal-text {
    font-size: var(--ft18);
}

.modal-btn {
    cursor: pointer;
    padding: 8px 16px;
    background: var(--point);
    color: #fff;
    border-radius: var(--border-radius);
    height: var(--btn);
    font-size: var(--ft16);
    width: 100%;
}

.modal-close {
    cursor: pointer;
    width: var(--icon-btn-sm);
    height: var(--icon-btn-sm);
    color: var(--ft-main);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--border-radius);
    position: absolute;
    right: 10px;
    top: 10px;
    padding: 10px;
}

.tel-modal {
    display: none;
    /* 기본 숨김 */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

.tel-modal-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.tel-modal-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    /* backdrop-filter: blur(4px); */
    padding: 20px;
    border-radius: calc(var(--border-radius) * 2);
    text-align: center;
}

.tel-modal-content a {
    display: block;
    font-size: 18px;
    color: var(--ft-main);
    border-radius: var(--border-radius);
    background: white;
    padding: 10px 20px;
    white-space: nowrap;
    font-weight: var(--semi-bold);
    transition: filter .3s ease;
}

.tel-modal-content a:hover {
    filter: brightness(.9);
}

.tel-modal-close {
    width: 100%;
    border-radius: var(--border-radius);
    background: var(--gray-200);
    font-size: var(--ft16);
    margin-top: 10px;
    padding: 10px 20px;
    transition: opacity .3s ease;
}

.tel-modal-close:hover {
    opacity: .6;
}




/*--------------------------- footer ---------------------------*/
footer {
    width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--bg-dark);
    position: relative;
    z-index: 2;
}

.f_contact {
    width: 100%;
    position: relative;
    margin-top: calc(var(--border-radius-lg) * -1);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
}

.f_contact-bg {
    position: absolute;
    top: 0;
    left: 0;
    inset: 0;
    background: var(--gray-400);
    filter: brightness(0.7);
}

.f_contac-title {
    color: white;
    font-size: var(--t3);
    font-weight: var(--semi-bold);
}

.f_contact-inner {
    position: relative;
    padding: 160px 0;
}

.f_contact-inner .btn_wrap {
    margin-top: 50px;
    gap: 40px;
    justify-content: center;
}

.f_inner {
    padding: var(--con-gap);
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--con-gap);
    flex-wrap: wrap;
}

.f_inner p {
    font-size: 14px;
}

.f_l * {
    color: var(--gray-100);
}

.f_l {
    flex-grow: 1;
}

.f_logo {
    width: 300px;
    height: auto;
}

.f_top {
    margin-bottom: 50px;
}

.f_privacy {
    font-size: var(--ft16);
}

.f_menu,
.f_info,
.f_copyright {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
}

.f_menu {
    margin-bottom: 30px;
}

.f_info {
    margin-bottom: 10px;
}

.f_copyright {
    margin-top: 30px;
    display: block;
}

.f_copyright p {
    display: inline;
    margin-right: 10px;
}

.f_copyright a {
    width: fit-content;
    text-decoration: underline;
    display: inline;
    font-size: 13px;
}

.f_info li p {
    display: inline-block;
    color: var(--gray-300);
}

.f_info li p.bold {
    color: white;
    margin-right: 6px;
}

.f_r {
    padding-right: var(--con-gap);
}

/*--------------------------- btn ---------------------------*/

/*-- btn --*/
.btn {
    font-size: var(--ft20);
    display: flex;
    justify-content: center;
    align-items: center;
}

.btn span {
    display: block;
}

.btn .text_wrap {
    height: 1em;
    display: flex;
    overflow: hidden;
    position: relative;
    font-weight: var(--bold);
    text-transform: uppercase;
}

.btn .text_wrap.center {
    justify-content: center;
}

.btn .text_wrap>span {
    text-align: center;
    display: flex;
    align-items: center;
    line-height: 1em;
    font-size: inherit;
    font-weight: var(--bold);
}

.btn .text_wrap>span:last-child {
    position: absolute;
    top: 100%;
}

.btn:hover .text_wrap>span:not(.split) {
    transform: translateY(-100%);
    transition: transform .3s ease;
}

/* 링크버튼 */
.btn-link {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 20px;
    color: var(--ft-sub);
}

.btn-text {
    font-size: var(--ft18);
    color: inherit;
}

.btn-icon,
.link-icon {
    width: var(--icon-btn);
    height: var(--icon-btn);
    border-radius: var(--border-radius-sm);
    background: var(--gray-200);
    display: flex;
    align-items: center;
    justify-content: center;

    position: relative;
    overflow: hidden;
}

.link-icon {
    width: var(--icon-btn-sm);
    height: var(--icon-btn-sm);
    background: var(--glass);
}

.btn-icon::before,
.link-icon::before {
    position: absolute;
    content: '';
    display: block;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: var(--point);
    transform: translate(-50%, -50%);
    overflow: hidden;
    border-radius: 50%;
    transition: all .5s ease-out;
}

.btn-icon::after,
.link-icon::after {
    position: relative;
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: url('/images/icon/link_arrow.svg') no-repeat center / 42%;
    transition: background-image .4s ease;
}

.link-icon::before {
    background: var(--gray-300);
}

.link-icon::after {
    background-image: url('/images/icon/link_arrow_w.svg');
}
.link-icon.download::after {
    background-image: url('/images/icon/download.svg');
}
.btn:hover .btn-icon::before,
a:hover .link-icon::before {
    width: 120%;
    height: 120%;
    border-radius: var(--border-radius);
}
a:hover .link-icon.download::after {
    background-image: url('/images/icon/download_w.svg');
}
a:hover .link-icon::after {
    background-image: url('/images/icon/link_arrow.svg');
}

.btn:hover .btn-icon::after {
    background-image: url('/images/icon/link_arrow_w.svg');
}

.primary_btn.download .icon::after {
    background-image: url('/images/icon/download.svg');
}

.primary_btn.download:hover .icon::after {
    background-image: url('/images/icon/download_w.svg');
}


/* 더보기 */
.more_btn {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 20px;
    color: var(--gray-600);
}

.more_btn:hover,
.more_btn.white:hover {
    color: var(--point);
}

.more_btn .btn-text {
    transition: color .4s ease;
}

.more_btn.white {
    color: var(--gray-200);
}

.text-center .more_btn {
    margin-left: auto;
    margin-right: auto;
}

/* 기본버튼 */
.primary_btn {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 20px;
    color: var(--gray-600);
    border-bottom: 1px solid var(--gray-300);
    border-radius: var(--border-radius);
    padding: 10px;
}

.primary_btn .btn-text {
    padding-left: 10px;
    display: inline-block;
}

.primary_btn:hover,
.primary_btn.white:hover {
    color: var(--point);
}

.primary_btn.white {
    color: var(--gray-200);
}


/* 파티클 버튼 */
.particle-btn {
    position: relative;
}

.btn-particle {
    width: 6px;
    height: 6px;
    /* background: url('/images/deco_f_1.svg') no-repeat center / contain; */
    background: white;
    border-radius: 50%;
    opacity: 0;
}

.particle-btn:hover .btn-particle {
    opacity: 1;
}

.p-1 {
    position: absolute;
    top: 24%;
    left: 31%;
    scale: 1;
    z-index: -1;
    transition: all 1s cubic-bezier(0.05, 0.83, 0.43, 0.96);
}

.p-2 {
    position: absolute;
    top: 41%;
    left: 36%;
    scale: .9;
    z-index: -1;
    transition: all 1s cubic-bezier(0, 0.4, 0, 1.01);
}

.p-3 {
    position: absolute;
    top: 43%;
    left: 42%;
    scale: .5;
    z-index: -1;
    transition: all 1s cubic-bezier(0, 0.4, 0, 1.01);
}

.p-4 {
    position: absolute;
    top: 42%;
    left: 50%;
    scale: .7;
    z-index: -1;
    transition: all .8s cubic-bezier(0, 0.4, 0, 1.01);
}

.p-5 {
    position: absolute;
    top: 35%;
    left: 45%;
    scale: 1.1;
    z-index: -1;
    transition: all .6s cubic-bezier(0, 0.4, 0, 1.01);
}

.p-6 {
    position: absolute;
    top: 35%;
    left: 60%;
    scale: .4;
    z-index: -1;
    transition: all .8s ease;
}



.particle-btn:hover .p-1 {
    top: -11%;
    left: -20%;
    filter: drop-shadow(0 0 10px #fffdef);
    z-index: 2;
}

.particle-btn:hover .p-2 {
    top: 12%;
    left: -2%;
    filter: drop-shadow(0 0 10px #fffdef);
    z-index: 2;
}

.particle-btn:hover .p-3 {
    top: 58%;
    left: -2%;
    filter: drop-shadow(0 0 10px #fffdef);
    z-index: 2;
}

.particle-btn:hover .p-4 {
    top: 38%;
    left: 95%;
    filter: drop-shadow(0 0 10px #fffdef);
    z-index: 2;
}

.particle-btn:hover .p-5 {
    top: 29%;
    left: 107%;
    filter: drop-shadow(0 0 10px #fffdef);
    z-index: 2;
}

.particle-btn:hover .p-6 {
    top: 5%;
    left: 60%;
    filter: drop-shadow(0 0 10px #fffdef);
    z-index: 2;
}

.fil0 {
    fill: #FFFDEF
}



/*--------------------------- page ---------------------------*/
.load_up,
.load_right,
.load_left {
    opacity: 0;
}

/* .hero_sec {
    padding: var(--sec-gap) 0 calc(var(--sec-gap) / 2);
} */
.hero-title {
    color: var(--ft-main);
    font-weight: var(--medium);
    /* font-size: var(--t1); */
    font-size: clamp(60px, 6.25vw, 120px);
    text-transform: uppercase;
    line-height: 1;
}

.hero-title.text-left {
    text-align: left;
}

.hero-subtitle {
    font-size: var(--ft20);
    color: var(--ft-sub);
    text-align: center;
    margin-top: 40px;
}

.sec-title {
    font-size: var(--sec-title);
    color: var(--ft-main);
    font-weight: var(--semi-bold);
}

.sec-subtitle {
    font-size: var(--sec-subtitle);
    color: var(--ft-main);
}

.sec-title+.sec-subtitle {
    margin-top: 40px;
}

.sec-name {
    padding: 2px 12px;
    border-radius: 99px;
    border-left: 1px solid var(--gray-300);
    border-right: 1px solid var(--gray-300);
    width: fit-content;
    color: var(--primary);
    font-size: var(--ft16);
    text-transform: uppercase;
    font-weight: var(--semi-bold);
    margin-bottom: 20px;
}

.sec-name.white {
    color: white;
}

.text-center .sec-name {
    margin: 0 auto 20px;
}

.hero-title_wrap {
    position: relative;
    display: flex;
}

.hero-title_wrap .count {
    font-size: var(--t7);
    color: var(--primary);
    font-weight: var(--semi-bold);
    padding-left: 20px;
    display: inline-block;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ft-sub);
    font-size: var(--ft14);
}

.breadcrumb a {
    width: fit-content;
}

.sub_page .hero_sec {
    padding-top: var(--sec-gap);
}

.sub_page .hero-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    flex-wrap: wrap-reverse;
    gap: 40px var(--con-gap);
    margin-bottom: 50px;
}

.sub_page .hero-content {
    padding: 10px;
    position: relative;
    display: flex;
    align-items: end;
    justify-content: center;
}

.sub_page .hero-content .sec-bg {
    border-radius: var(--border-radius-lg);
    background: var(--img);
    /* height: 80vh; */
    aspect-ratio: 2 / 1;
    width: 100%;
    filter: brightness(.7);
}

.sub_page .hero-title {
    font-weight: var(--bold);
    display: flex;
    opacity: 0;
    flex-wrap: wrap;
}

.sub_page .hero-title .char-box {
    overflow: hidden;
    display: inline-block;
}

.sub_page .hero-title .char {
    display: block;
    transform: translateX(-100%);
    opacity: 0;
    line-height: 1;
    min-width: .5ch;
}

.sub_page .hero-text {
    position: absolute;
    inset: 0;
    padding: 160px 0;
    display: flex;
    align-items: end;
}

.sub_page .hero-text p {
    font-size: var(--t6);
    color: white;
}

.sub_page .sec-title {
    font-size: var(--ft42);
    color: var(--ft-main);
    font-weight: var(--semi-bold);
}

.sub_page main {
    padding-bottom: var(--sec-gap);
}

.tab-area {
    position: sticky;
    bottom: 40px;
    width: fit-content;
    margin: 40px auto;
    z-index: 5;
    padding: 0 16px;
    max-width: 100%;
}

.tab-box {
    background: var(--glass-white);
    backdrop-filter: blur(6px);
    filter: drop-shadow(0 4px 6px #00000030);
    border-radius: var(--border-radius);
    padding: 6px;
}

.tab-list {
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
    position: relative;
}


.tab {
    padding: 8px 16px;
    border-radius: calc(var(--border-radius) * .8);
    font-size: var(--ft15);
    cursor: pointer;
    color: #444;
    font-weight: var(--medium);
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

.tab::before {
    opacity: 0;
    content: '';
    display: block;
    height: 3px;
    width: var(--bar-width, 0%);
    background: linear-gradient(to bottom, transparent, var(--point2) 20%);
    position: absolute;
    bottom: 0;
    left: 0;
}

.tab.active {
    background: var(--gray-500);
    transition: background .3s .3s ease;
    color: #fff;
}

.tab.active::before {
    opacity: 1;
}

.slider {
    position: absolute;
    height: 100%;
    top: 0;
    left: 0;
    background: var(--gray-300);
    pointer-events: none;
    z-index: -1;
    border-radius: calc(var(--border-radius) * .8);
}







/* detail_page */

.detail_page .page-title_sec {
    padding-top: var(--sec-gap);
}

.detail_page .page-title {
    font-size: var(--t2);
    text-transform: uppercase;
}

.detail_page .sec-title {
    font-size: var(--t5);
    font-weight: var(--medium);
}





/* side_category */
.side_category-area,
.side_sticky-area {
    width: 100%;
    height: fit-content;
    position: sticky;
    top: var(--sticky-top);
}

.side_category-wrap {
    display: flex;
    flex-direction: column;
    gap: 14px;

}

.side_category-item {
    position: relative;
    width: 100%;
    border-bottom: 1px solid var(--gray-200);
}

.side_category-item a {
    font-size: var(--ft18);
    color: var(--gray-400);
    padding: 1rem 0;
    font-weight: var(--medium);
}

.side_category-item:not(.active):hover a {
    color: var(--ft-sub);
}

.side_category-item::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 0;
    height: 2px;
    background-color: var(--gray-600);
    transition: width .5s ease;
}

.side_category-item.active::after {
    width: 100%;
    left: 0;
    right: auto;
}

.side_category-item.active a {
    color: var(--ft-main);
}

/* page-contetn */
.page_content-area {
    display: grid;
    grid-template-columns: clamp(200px, 17vw, 320px) 1fr;
    width: 100%;
    gap: var(--con-gap);
    padding-bottom: var(--sec-gap);
    align-items: start;
}


/* tab_menu */
.tab_menu {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
}

.tab_menu .btn span {
    padding: 10px 20px;
}

.tab_menu .btn.active {
    background: var(--primary);
    color: white;
}

/* pagination */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: var(--con-gap);
}

.pagination_number {
    display: flex;
    align-items: center;
    justify-content: center;
}

.pagination_btn a,
.pagination_number li a {
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: .6;
    transition: opacity .3s ease, background .3s ease;
    border-radius: var(--border-radius-sm);
}

.pagination_btn a:hover,
.pagination_number li a:hover {
    background: var(--gray-100);
    opacity: .8;
}

.pagination_btn a {
    width: 36px;
    aspect-ratio: 1;
}

.pagination_btn a .icon {
    width: 18px;
    aspect-ratio: 1;
}

.pagination_number li a {
    min-width: var(--icon-btn-sm);
    height: var(--icon-btn-sm);
    padding: 0 10px;
    font-size: var(--ft16);
    position: relative;
}


.pagination_number li.page_click a {
    color: var(--primary);
    opacity: 1;
    font-weight: var(--bold);
}



/* -------------------- drop down -------------------- */
.drop_down {
    width: auto;
    height: var(--input-height);
    min-width: fit-content;
    cursor: pointer;
    position: relative;
    padding: 0 16px;
    font-size: var(--ft18);
    background: white;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--ft18);
    margin-left: auto;
}

.drop_down .icon {
    display: block;
}

.drop_down.active .icon {
    transform: rotate(180deg);
}

.drop_down_list {
    width: 100%;
    min-width: fit-content;
    padding: 6px 0;
    position: absolute;
    top: 100%;
    margin-top: 10px;
    padding: 6px;
    left: 0;
    color: var(--sub-ft);
    background-color: white;
    display: none;
    backdrop-filter: blur(4px);
    box-shadow: var(--box-shadow);
    border-radius: var(--border-radius-sm);
    z-index: 3;
}

.drop_down_list li {
    padding: 12px 20px;
    font-size: var(--ft16);
    border-radius: var(--border-radius-sm);
    color: inherit;
    text-wrap: nowrap;
    transition: .3s ease;
}

.drop_down_list li:hover {
    background-color: var(--hover);
    color: var(--primary);
}


/* ---------------- form ---------------- */



/* ----------------input----------------- */
/* search_input */

.search-input_box {
    width: 300px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border: 1px solid var(--gray-300);
    padding: 10px;
    border-radius: var(--border-radius);
    backdrop-filter: blur(6px);
    background: var(--glass-white);
}

.search-input_box .search-input {
    font-size: clamp(16px, var(--ft18), 18px);
    flex: 1 0 0;
    padding-left: 10px;
    font-size: 16px;
}

.search-input_box .search-btn {
    /* width: var(--icon-btn-sm);
    height: var(--icon-btn-sm); */
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.search-input_box .search-btn .icon {
    flex-shrink: 0;
    background: transparent;
}

.search-input_box .search-btn .icon::after {
    background-image: url('/images/icon/search.svg');
    filter: invert(1);
}

.search-input_box:has(input:focus),
.input_box:has(input:focus),
.input_box:has(textarea:focus) {
    border-color: var(--primary);
}




/* checkbox */
.checkbox {
    display: flex;
    align-items: center;
}

.checkbox span {
    width: 18px;
    height: 18px;
    border: 1px solid var(--gray-300);
    border-radius: 4px;
    margin-right: 8px;
    position: relative;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.checkbox input:checked+span {
    background-color: var(--gray-500);
    border-color: var(--gray-500);
}

.checkbox input:checked+span::after {
    content: '';
    position: absolute;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) translate(-1px, -1px);
}



/* ------------layout-------------- */
.row {
    display: flex;
    align-items: center;
}

.text_center {
    text-align: center;
}

/* -------------swiper------------ */

.swiper-pagination-bullet {
    width: 24px;
    height: 4px;
    border-radius: 0;
}

.swiper-pagination-progressbar {
    background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .1));
}

.swiper-navigation {
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
}

.swiper-navigation.hide {
    display: none;
}

.swiper-prev,
.swiper-next {
    width: var(--icon-btn);
    height: var(--icon-btn);
    border-radius: var(--border-radius-sm);
    background: var(--gray-200);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    transition: transform .3s ease
}

.swiper-prev::before,
.swiper-next::before {
    position: absolute;
    content: '';
    display: block;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: var(--point);
    transform: translate(-50%, -50%);
    overflow: hidden;
    border-radius: 50%;
    transition: all .5s ease-out;
}

.swiper-prev::after,
.swiper-next::after {
    position: relative;
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: url('/images/icon/chevron_left.svg') no-repeat center / 42%;
    transition: background-image .4s ease;
}

.swiper-next::after {
    background-image: url('/images/icon/chevron_right.svg');
}

.swiper-prev:hover::before,
.swiper-next:hover::before {
    width: 120%;
    height: 120%;
    border-radius: var(--border-radius);
}

/* .swiper-prev:hover::after {
    background-image: url('/images/icon/chevron-left_w.svg');
}
.swiper-next:hover::after {
    background-image: url('/images/icon/chevron-right_w.svg');
} */


/* .swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
    opacity: 0;
} */


/* ----------------popup------------------- */
/* .popup {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    display: none;
    opacity: 0;
    transition: opacity .5s ease;
}
.popup.show {
    display: flex;
    opacity: 1;
}

.popup-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.popup-box {
    position: relative;
}

.popup-con {
    background: #fff;
    width: 400px;
    text-align: center;
}

.popup-img {
    width: 100%;
    height: 500px;
    display: block;
    border-radius: 8px;
}

.popup-bot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px;
}
.popup-bot .checkbox {
    cursor: pointer;
}
.popup-bot label p {
    font-size: 14px;
}

.popup-bot .popup-close {
    padding: 5px 12px;
    cursor: pointer;
    font-size: var(--ft14);
}
.popup-bot .popup-close:hover {
    background: var(--gray-100);
}
.popup-bot .popup-close .icon {
    width: 26px;
    height: 26px;
}

.popup-swiper-pagination {
    bottom: 0 !important;
    transform: translateY(calc(100% + 10px));
}

.popup-swiper-pagination .swiper-pagination-bullet {
    background: #f9f8f477;
}

.popup-swiper-pagination .swiper-pagination-bullet-active {
    background: #f9f8f4e1;
} */

/* popup */
/* ----------------popup------------------- */
.popup {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    display: none;
    opacity: 0;
    transition: opacity .5s ease;
}

.popup.show {
    display: flex;
    opacity: 1;
}

.popup-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.popup-box {
    position: relative;
    background: white;
    padding: 20px;
    width: calc(100% - 40px);
    max-width: 500px;
    max-height: 80vh;
    border-radius: var(--border-radius);

}

.popup-header {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--primary-200);
}

.popup-title {
    font-size: var(--ft18);
    font-weight: var(--semi-bold);
    text-align: center;
}

.popup-con {
    padding: 40px 20px var(--con-gap);
}

.popup-list {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 20px;
}

.popup-list dt {
    color: var(--ft-main);
    font-size: var(--ft16);
    font-weight: var(--medium);
}

.popup-list dd {
    color: var(--ft-sub);
    font-size: var(--ft16);
    word-break: break-all;
    max-height: 200px;
    overflow-y: auto;
    white-space: pre-line;
}

.popup-bot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px;
}

.popup-bot .checkbox {
    cursor: pointer;
}

.popup-btn_wrap {
    width: 100%;
    display: flex;
    gap: 20px;
}

.popup-btn {
    width: 100%;
    height: var(--btn);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--ft16);
    padding: 10px 20px;
}

.popup-btn:hover {
    opacity: 0.8;
}

.popup-btn.first {
    background: var(--primary);
    color: white;
}

.popup-btn.popup-close,
.popup-btn.popup-cancel {
    background: var(--gray-600);
    color: white;
}

.popup-btn.popup-delete {
    background: transparent;
    color: var(--warning);
    width: fit-content;
}

.popup-box>.popup-close {
    padding: 5px 12px;
    cursor: pointer;
    position: absolute;
    right: 0;
    top: 0;
    padding: 10px;
    transform: translateX(calc(100% + 10px));
    filter: invert(1);
}

.popup-box>.popup-close .icon {
    width: 26px;
    height: 26px;
}

@media (hover:hover) and (pointer:fine) {

    /* ------------cursor-------------- */
    .cursor {
        width: 80px;
        height: 80px;
        /* aspect-ratio: 1 / 2; */
        background: #ffffff10;
        backdrop-filter: blur(4px);
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        font-size: var(--ft16);
        z-index: 99;
        pointer-events: none;
        opacity: 0;
        transform: translate(-50%, -50%) scale(0);
        transform-origin: 50% 0%;
        transition: transform .5s ease, opacity 0.4s ease;
        border-radius: 50%;
        border: 1px solid var(--gray-300);
    }

    .cursor.view {
        opacity: 1;
        color: var(--ft-main);
        transform: translate(-50%, -50%) scale(1);
    }

    .cursor.name.view {
        color: white;
    }

    /* swiper btn */
    .swiper-prev,
    .swiper-next {
        opacity: 0.7;
    }


    .swiper-next:hover {
        opacity: 1;
        transform: translateX(4px);
    }

    .swiper-prev:hover {
        opacity: 1;
        transform: translateX(-4px);
    }
}

@media all and (max-width: 1700px) {
    .sub_page .hero-text {
        padding: 100px;
    }
}

@media all and (max-width: 1200px) {
    /* 모바일 gnb */

    /* header */
    .h_inner {
        padding: 0 20px;
    }

    .h_inner .h_r {
        gap: 40px;
    }

    .h_logo a {
        width: 150px;
    }

    /* footer */
    .f_info .list {
        gap: 10px;
    }

    /* quick_menu */
    .quick_menu {
        right: 30px;
        bottom: 40px;
    }

    /* tabmenu */
    .tab_menu {
        gap: 20px;
    }

    .tab_menu .btn span {
        padding: 6px 12px;
    }

    /* page */


}

@media all and (max-width: 960px) {

    /* header */
    .h_top {
        padding: 20px;
    }

    .h_inner {
        padding: 0;
    }

    .h_top.scroll {
        transform: unset;
    }

    .h_top.scroll.up .h_inner {
        background: unset;
        box-shadow: unset;
        backdrop-filter: unset;
    }
    .h_top.white.scroll .h_logo .logo_w {
        opacity: 0 !important;
    }
      .h_top.white.scroll .h_logo .logo_b {
        opacity: 1 !important;
    }
   
   

    .h_nav,
    .h_language:not(.ham_language) {
        display: none;
    }
    .h_language {
        padding-left: 10px;
        margin-top: 30px;
    }
    .h_language a {
        color: white;
        padding-bottom: 2px;
        font-size: var(--ft18);
    }
    .h_language li.on a {
        border-bottom: 1px solid white;
    }

    .h_ham {
        width: var(--btn);
        height: var(--btn);
        border-radius: var(--border-radius);
        background: color-mix(in srgb, var(--gray-200), transparent 50%);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        cursor: pointer;
        transition: background .4s ease;
        z-index: 9;
        pointer-events: all;
    }

    .h_ham span {
        width: 24px;
        height: 2px;
        border-radius: 1px;
        background-color: var(--gray-600);
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        transition: transform .3s ease, top .3s .3s ease;
    }

    .h_ham span:nth-child(1) {
        top: calc(50% - 6px);
    }
    .h_ham span:nth-child(3) {
        top: calc(50% + 6px);
    }
    .h_ham.active span:nth-child(1) {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
        transition: transform .3s .3s ease, top .3s ease;
    }
    .h_ham.active span:nth-child(3) {
        top: 50%;
        transform: translateY(-50%) rotate(-45deg);
        transition: transform .3s .3s ease, top .3s ease;
    }
    .h_ham.active span:nth-child(2) {
        opacity: 0;
    }

    .ham_popup {
        position: fixed;
        padding: 10px;
        inset: 0;
        backdrop-filter: blur(14px);
        background: var(--glass);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .35s ease, visibility .35s ease;
        display: flex;
        justify-content: flex-end;
        z-index: 9;
        overflow-y: auto;
        scrollbar-width: none;
    }

    .ham_popup.active {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
    header:has(.ham_popup.active) .h_logo {
        opacity: 0;
        pointer-events: none;
    }

    .ham_box {
        width: 100%;
        min-height: 100%;
        height: fit-content;
        background: #000000cf;
        border-radius: var(--border-radius);
        backdrop-filter: blur(18px);
        padding: 80px 30px 50px;
        box-sizing: border-box;
        transform: scale(0.9);
        transition: transform .4s cubic-bezier(.25, .8, .25, 1);
        border-left: 1px solid rgba(255, 255, 255, 0.06);
    }

    .ham_popup.active .ham_box {
        transform: scale(1);
    }

    .ham_close:hover {
        opacity: 1;
    }

    .ham_nav>li {
        margin-bottom: 30px;
        opacity: 0;
        transform: translateY(20px);
        padding: 0 10px;
    }
    .ham_nav>li:has(.ham_sub_menu) {
        padding: 30px;
        background: #00000080;
        border-radius: var(--border-radius);
        margin-bottom: 10px;       
    }
    .ham_nav>li:has(.ham_sub_menu) .ham_menu {
        opacity: 1;
        font-weight: var(--normal);
        font-size: var(--ft20);
    }
    .ham_menu {
        display: block;
        font-size: var(--ft28);
        font-weight: var(--semi-bold);
        letter-spacing: -.2px;
        color: white;
        opacity: .6;
        transition: color .25s ease;
    }
    .ham_menu.on {
        opacity: 1;
    }
    .ham_menu:hover {
        color: var(--point);
    }

    .ham_sub_menu {
        margin-top: 8px;
        padding-left: 20px;
        list-style: none;
        border-left: 1px solid rgba(255, 255, 255, .12);
    }

    .ham_sub_menu a {
        font-size: 15px;
        padding: 6px 0;
        color: white;
        opacity: 0.5;
        transition: opacity .25s ease, color .25s ease;
        display: block;
    }
    .ham_sub_menu a:hover {
        opacity: .8;
    }
    .ham_sub_menu a.on {
        opacity: 1;
    }

    .ham_sub_menu a:hover {
        opacity: 1;
        color: #CAEAFF;
    }


    /* quick menu */
    .quick_menu {
        right: 20px;
        bottom: 30px;
        gap: 10px;
        width: var(--btn);
    }

    .quick-btn,
    .top_btn {
        width: 100%;
        height: auto;
        aspect-ratio: 1;
    }

    /* btn */
    .btn-link {
        gap: 10px;
    }

    .btn-icon .icon {
        width: 18px;
        height: 18px;
    }

    /* page */
    .sub_page .hero-content .sec-bg {
        aspect-ratio: 1.5 / 1;
    }

    .sub_page .hero-text {
        padding: 80px;
    }

    /* input */
    .search-input_box {
        width: 240px;
    }

    .tab-box {
        padding: 6px;
    }


}

@media all and (max-width:730px) {
    /* footer */
    .f_inner {
        padding: var(--con-gap) 40px;
    }
    /* btn */
    .primary_btn {
        padding: 6px;
    }

    /* page */
    .sub_page .hero-header {
        flex-direction: column-reverse;
        align-items: flex-end;
    }

    .sub_page .hero-content .sec-bg {
        aspect-ratio: 1;
    }

    .sub_page .hero-text {
        padding: 60px;
    }

    .sub_page .sec-title {
        font-size: var(--t4);
    }
    
}

@media all and (max-width: 500px) {
    .f_logo {
        width: 230px;
        margin-bottom: 50px;
    }

    .drop_down_list li {
        padding: 8px 16px;
    }

    /* footer */
    .f_top {
        gap: 40px;
    }

    .f_bot .copyright {
        font-size: var(--ft18);
        row-gap: 4px;
    }

    /* pagination */
    .pagination_btn a {
        width: 32px;
    }

    .pagination_number li a {
        min-width: 36px;
        height: 36px;
    }



    /* quickmenu */
    .quick_menu {
        right: 10px;
        width: 44px;
    }



    /* btn */
    
    /* page */
    .hero-title {
        font-size: var(--ft46);
    }

    .sub_page .hero-header {
        gap: 24px 40px;
    }

    .sub_page .hero-text {
        padding: 40px;
    }

    .sub_page .hero-content .sec-bg {
        aspect-ratio: 1 / 1.2;
    }

    .sub_page .hero-text p {
        font-size: var(--t7);
    }

    /* popup */
    .popup-con {
        padding: 20px 0px var(--con-gap);
    }

    .popup-bot {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 14px 0 0;
    }


}