@charset "utf-8";

html {font-size: 62.5%;}
body {background-color: #030A38; background-image: url("../img/page/bg_circle.png"); background-position: center top; background-size: 100%; background-repeat: no-repeat; color: #FFF; font-family: 'Pretendard', sans-serif; font-size: 1.6rem; font-weight: 400; letter-spacing: 0;}
body.mainPage {background: #030A38;}
@media (max-width: 992px) {
    html {font-size: 58.6%;} /* 15px */
}
@media (max-width: 768px) {
    body {background-size: 300%;}
}

/* 다국어 지원 */
html[lang="zh-cn"] body {font-family: 'Noto Sans SC', sans-serif; word-break: break-all;} /* 중국어 */
html[lang="ja"] body {font-family: 'Noto Sans JP', sans-serif; word-break: break-all;} /* 일본어 */
html[lang="vi"] body {font-family: 'Noto Sans', sans-serif; word-break: break-all;} /* 베트남어 */
html[lang="id"] body {font-family: 'Noto Sans', sans-serif; word-break: break-all;} /* 인도네시아어 */

/* scrollbar */
body::-webkit-scrollbar {width: 8px; height: 8px;}
body::-webkit-scrollbar-track {background-color: transparent;}
body::-webkit-scrollbar-thumb {background-color: #fff; border-radius: 50px;}



/* ============================================================
* container
* ============================================================ */
.container {width: 100%; max-width: 1420px; margin: 0 auto;}
@media (min-width: 1921px) {
    .container {max-width: 1860px;}
}
@media (max-width: 1480px) {
    .container {padding: 0 4rem;}
}
@media (max-width: 1200px) {
    .container {padding: 0 2rem;}
}



/* ============================================================
* header
* ============================================================ */
header {position: fixed; top: 0; left: 0; right: 0; height: var(--hd-height); z-index: 2; transition: var(--trans-25);}
header.hd-scroll {background: #030A38;}

header .container {position: relative; display: flex; justify-content: space-between; align-items: center; height: 100%;}
header h1 a {display: block; width: 6rem; aspect-ratio: 144/154; background-image: url("../img/logo/horiz_wt.png"); background-position: left center; background-size: contain; background-repeat: no-repeat;}


header .right {display: flex; align-items: center; gap: 1rem;}
/* 한영 전환 */
.lang-toggle {position: relative; display: inline-block;}
.lang-btn {position: relative; padding: 0.8rem 2rem 0.8rem 0.8rem; color: #fff; cursor: pointer;}
.lang-btn::after {content: ""; position: absolute; top: 50%; right: 0; transform: translateY(-50%); width: 1.2rem; aspect-ratio: 12/8; background-image: url("../img/arrow_wt_b.svg"); background-position: center; background-size: contain; background-repeat: no-repeat;}
.lang-options {opacity: 0; visibility: hidden; height: 0; transition: var(--trans-25); position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: max-content; background: #fff; z-index: 100;}
.lang-options button {display: block; width: 100%; padding: 1rem 1.5rem; color: var(--col-bk); transition: var(--trans-25);}
.lang-options button + button {border-top: 1px solid var(--col-bd-gray);}
.lang-toggle.active .lang-options {opacity: 1; visibility: visible; height: auto;}
.login-box{display: flex; justify-content: center; align-items: center;  height: 4rem; aspect-ratio: 80/40; border-radius: 5rem; background: #222186; color: #fff; }

@media (hover: hover) and (pointer: fine) {
    .lang-toggle:hover .lang-options {opacity: 1; visibility: visible; height: auto;}
    .lang-options button:hover {color: var(--col-theme);}
}

@media (max-width: 1100px) {
    header {height: var(--hd-height-m);}
    header h1 a {width: 4.6rem;}
}



/* ============================================================
* nav
* ============================================================ */
nav {position: absolute; top: 0; left: 50%; transform: translateX(-50%); height: 100%;}
nav .depth1 {display: flex; justify-content: center; gap: 6rem; height: 100%;}
nav .depth1 > li {flex: 1 0 auto; position: relative;}
nav .depth1 > li > a {position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; padding: 0 1rem; font-size: 1.8rem; font-weight: 600; transition: var(--trans-25);}
nav .depth1 > li > a span {position: relative;}
nav .depth1 > li > a span::before {content: ""; position: absolute; bottom: -0.5rem; left: 50%; transform: translateX(-50%); width: 0; height: 2px; background: #fff; transition: var(--trans-25);}

/* depth2 */
nav .depth2 {display: none; position: absolute; top: calc(100% + 1rem); left: 50%; transform: translateX(-50%); width: max-content; min-width: 14rem; padding: 1.2rem 0; background: rgba(255,255,255,0.8); border-radius: 1rem; overflow: hidden;}
nav .depth2 > li > a {display: block; width: 100%; height: 100%; padding: 0.8rem; text-align: center; font-size: 1.4rem; font-weight: 400; transition: var(--trans-25);}

/* button open navigation */
.btn-snb {display: flex; justify-content: center; align-items: center; gap: 1.2rem; height: 4rem; aspect-ratio: 154/40; border-radius: 5rem; background: #222186; color: #fff; transition: var(--trans-25);}

@media (hover: hover) and (pointer: fine) {
    nav .depth1 > li > a:hover span::before {width: 100%;}
    nav .depth2 > li > a:hover {background: #FFF; color: #333;}
}
@media (max-width: 1200px) {
    nav .depth1 {gap: 2rem;}
}
@media (max-width: 1100px) {
    header .right {gap: 0.5rem;}
    .btn-snb {display: block; aspect-ratio: 1; font-size: 0;}
    nav,
    .hd-link {display: none;}
}



/* ============================================================
* SNB
* ============================================================ */
body.open {overflow: hidden;}
body.open .snb {opacity: 1; visibility: visible; right: 0;}
body.open .btn-close .icon-burger {background: transparent;}
body.open .btn-close .icon-burger:before,
body.open .btn-close .icon-burger:after {top: 0; background: #fff;}
body.open .btn-close .icon-burger:before {transform: rotate(-45deg);}
body.open .btn-close .icon-burger:after {transform: rotate(45deg);}

.snb {opacity: 0; visibility: hidden; position: fixed; top: 0; right: -30rem; bottom: 0; width: 42rem; max-width: 100%; padding: 0 4.5rem 2rem; background: #000; transition: var(--trans-25);}
.snb-header {display: flex; justify-content: flex-end; align-items: center; height: var(--hd-height);}
.btn-close .icon-burger {position: relative; display: block; width: 27px; height: 2px; margin: 0 auto; background: var(--col-bk); transition: var(--trans-25);}
.btn-close .icon-burger:before,
.btn-close .icon-burger:after {content: ''; position: absolute; width: 100%; height: 100%; display: block; background: var(--col-bk); transition: var(--trans-25);}
.btn-close .icon-burger:before {top: 8px;}
.btn-close .icon-burger:after {top: -8px;}

.snb ul {display: none; max-height: calc(100% - var(--hd-height-m) - 20rem - 8rem); padding-bottom: 4rem; overflow: hidden auto;}
.snb ul li + li {margin-top: 2rem;}
.snb ul li a {color: #fff; font-size: 3.2rem; font-weight: 700}
.snb ul li a span {position: relative;}
.snb ul li a span::before {content: ""; position: absolute; bottom: -0.5rem; left: 50%; transform: translateX(-50%); width: 0; height: 1px; background: var(--col-theme); transition: var(--trans-25);}

.snb-family a {display: flex; align-items: center; gap: 1.6rem; font-weight: 700;}
.snb-family a small {display: block; margin-top: .4rem; font-size: 12px; font-weight: 400;}
.snb-family a + a {margin-top: 2.6rem;}

@media (hover: hover) and (pointer: fine) {
    .snb ul li a:hover span::before {width: 100%;}
}
@media (max-width: 992px) {
    .snb {padding: 0 2rem 2rem;}
    .snb-header {height: var(--hd-height-m);}
    .snb ul {display: block;}
}



/* ============================================================
* footer
* ============================================================ */
footer {padding: 4rem 0; background: #030A38; border-top: 1px solid #4D5466;}
footer copyright {color: #9CA3AF; font-size: 1.5rem;}



/* ============================================================
* sub visual
* ============================================================ */
.sub-visual {position: relative; height: 50rem; background-size: cover; background-position: center; background-repeat: no-repeat; background-color: #3D3D3D;}
.sub-visual.company {background-image: url("../img/subvisual/01.png");}
.sub-visual.brand {background-image: url("../img/subvisual/02.png");}
.sub-visual.business {background-image: url("../img/subvisual/03.png");}
.sub-visual.board {background-image: url("../img/subvisual/04.png");}

.sub-visual > .container {display: flex; flex-direction: column; justify-content: center; gap: 2.4rem; height: 100%; padding-bottom: 8rem;}
.sub-visual h2 {color: #fff; font-size: 5.6rem; font-weight: 700;}
.sub-visual p {color: #fff; font-size: 1.8rem; font-weight: 300;}

@media (max-width: 992px) {
    .sub-visual {height: 34rem;}
    .sub-visual > .container {padding-bottom: 6rem;}
    .sub-visual h2 {font-size: 4rem;}
}
@media (max-width: 576px) {
    .sub-visual {height: 28rem;}
    .sub-visual > .container {gap: 1.2rem;}
    .sub-visual h2 {font-size: 3.4rem;}
}



/* ============================================================
* menu tab
* ============================================================ */
.menu-tab {height: 7rem;}
.menu-tab .current {line-height: 7rem;}

.menu-tab {position: absolute; bottom: 0; left: 0; right: 0; height: 7rem; border-top: 1px solid #fff; z-index: 1;}
.menu-tab .container {display: flex; height: 100%;}
.menu-tab .home {height: 100%; aspect-ratio: 1; background: url("../img/home_wt.svg") center/auto no-repeat; border-right: 1px solid #fff;}
.menu-tab .home a {display: block; width: 100%; height: 100%;}
.menu-tab .current {position: relative; padding: 0 4rem 0 2rem; width: 26rem; height: 100%; border-right: 1px solid #fff; color: #fff; font-size: 1.8rem; font-weight: 700; cursor: pointer; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
.menu-tab .current::after {content: ""; position: absolute; top: 50%; right: 1.2rem; transform: translateY(-50%); width: 1.4rem; aspect-ratio: 12/8; background-image: url("../img/arrow_wt_b.svg"); background-position: center; background-size: contain; background-repeat: no-repeat; transition: var(--trans-25);}

.menu-tab .depth1,
.menu-tab .depth2 {position: relative;}
.menu-tab .depth2 {margin-left: -1px;}
.menu-tab ul {opacity: 0; visibility: hidden; position: absolute; top: calc(80% - 1px); left: 0; right: 0; border: 1px solid var(--col-theme); background: #fff; z-index: 1; transition: var(--trans-25);}
.menu-tab ul li a {display: block; padding: 1rem 2rem; transition: var(--trans-25); text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}

.menu-tab .depth1.active .current::after,
.menu-tab .depth2.active .current::after {transform: translateY(-50%) rotate(180deg);}
.menu-tab .depth1.active ul,
.menu-tab .depth2.active ul {opacity: 1; visibility: visible; top: calc(100% - 1px);}

@media (hover: hover) and (pointer: fine) {
    .menu-tab ul li a:hover {background: var(--col-theme); color: #fff;}
}
@media (max-width: 768px) {
    .menu-tab {height: 6rem;}
    .menu-tab .current {line-height: 6rem;}

    .menu-tab .home {display: none;}
    .menu-tab .container {padding: 0;}
    .menu-tab .depth1,
    .menu-tab .depth2 {width: 50%;}
    .menu-tab .depth2 .current {border: 0;}
    .menu-tab .current {width: 100%; font-size: 1.5rem;}
}
