@charset "utf-8";

html {font-size: 62.5%;}
body {color: var(--col-bk); font-family: 'Pretendard', sans-serif; font-size: 1.6rem; font-weight: 400; letter-spacing: 0;}
@media (max-width: 992px) {
    html {font-size: 58.6%;} /* 15px */
}

/* scrollbar */
body::-webkit-scrollbar {width: 8px; height: 8px;}
body::-webkit-scrollbar-track {background-color: transparent;}
body::-webkit-scrollbar-thumb {background-color: var(--col-theme); border-radius: 50px;}



/* ============================================================
* container
* ============================================================ */
.container {width: 100%; max-width: 1542px; margin: 0 auto;}
@media (max-width: 1590px) {
    .container {padding: 0 4rem;}
}
@media (max-width: 992px) {
    .container {padding: 0 2rem;}
}



/* ============================================================
* header
* ============================================================ */
header {position: relative; top: 0; left: 0; right: 0; height: var(--hd-height); z-index: 2; transition: var(--trans-25);}

header .container {position: relative; display: flex; justify-content: space-between; align-items: center; height: 100%;}
header h1 a {display: block; width: 18rem; aspect-ratio: 194/34; background-image: url("../img/logo/horiz_bk.png"); background-position: left center; background-size: contain; background-repeat: no-repeat;}

/* 한영 전환 */
header .right {display: flex; align-items: center; gap: 7.2rem;}
.lang-toggle {position: relative; display: inline-block;}
.lang-btn {position: relative; padding: 0.8rem 2rem 0.8rem 0.8rem; color: var(--col-bk); cursor: pointer;}
.lang-btn::after {content: ""; position: absolute; top: 1.3rem; right: 0; width: 1.2rem; aspect-ratio: 12/8; background-image: url("../img/arrow_bk_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%); 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;}

@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: 992px) {
    header {height: var(--hd-height-m);}
}





/* ============================================================
* nav
* ============================================================ */
nav {height: 100%;}
nav .depth1 {display: flex; justify-content: center; gap: 5.6rem; height: 100%;}
nav .depth1 > li {flex: 1 0 auto; position: relative; min-width: 7.6rem;}
nav .depth1 > li > a {position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; padding: 0 1rem; color: var(--col-bk); font-size: 1.6rem; font-weight: 700; 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: 1px; background: var(--col-bk); 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: none; width: 36px; height: 36px;}
.btn-snb .icon-burger {position: relative; display: block; width: 27px; height: 2px; margin: 0 auto; background: var(--col-bk); transition: var(--trans-25);}
.btn-snb .icon-burger:before,
.btn-snb .icon-burger:after {content: ''; position: absolute; width: 100%; height: 100%; display: block; background: var(--col-bk); transition: var(--trans-25);}
.btn-snb .icon-burger:before {top: 8px;}
.btn-snb .icon-burger:after {top: -8px;}

body.open {overflow: hidden;}
body.open .btn-snb .icon-burger {background: transparent;}
body.open .btn-snb .icon-burger:before,
body.open .btn-snb .icon-burger:after {top: 0; background: var(--col-bk);}
body.open .btn-snb .icon-burger:before {transform: rotate(-45deg);}
body.open .btn-snb .icon-burger:after {transform: rotate(45deg);}

@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: 992px) {
    header .right {gap: 2rem;}
    .btn-snb {display: block;}
    nav,
    .hd-link {display: none;}
}



/* ============================================================
* SNB
* ============================================================ */
body.open .snb {opacity: 1; visibility: visible; height: 100dvh;}

.snb {opacity: 0; visibility: hidden; position: absolute; top: 0; left: 0; right: 0; height: 70dvh; background: #fff; transition: var(--trans-25);}
.snb-header {height: var(--hd-height-m);}
.snb-header .container {justify-content: flex-end;}

.snb ul {display: flex; flex-direction: column; justify-content: center; align-items: center; height: calc(100% - var(--hd-height-m)); padding: 1rem 0 9rem;}
.snb ul li + li {margin-top: 2rem;}
.snb ul li a {color: var(--col-theme); 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);}

@media (hover: hover) and (pointer: fine) {
    .snb ul li a:hover span::before {width: 100%;}
}



/* ============================================================
* footer
* ============================================================ */
footer {padding: 6.2rem 0; background: #000; color: rgba(255,255,255,0.7);}
footer .container {display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4rem;}
footer .ft-logo {flex: 0 0 auto; width: 20rem; aspect-ratio: 205/35; background:url(../img/logo/ft_logo.png) left center/contain no-repeat;}
footer .ft-com-logo {flex: 0 0 auto; width: 13rem; aspect-ratio: 134/39; background:url(../img/logo/ft_com_logo.png) right center/contain no-repeat;}

.ft-info {flex: 1 0 0; max-width: 683px; display: flex; flex-wrap: wrap; align-items: center;}
.ft-info dl {position: relative; display: inline-flex; flex-wrap: wrap; margin-right: 0.6rem; font-size: 1.5rem; font-weight: 400; line-height: 1.75;}
.ft-info dl::after {content: "|"; display: block; margin-left: 0.5rem;}
.ft-info dl:last-of-type::after,
.ft-info .ft-address::after {display: none;}
.ft-info dt {position: relative; padding-right: 16px;}
.ft-info dt::after {content: ":"; position: absolute; top: 0; right: 6px;}

.ft-info .ft-address {width: 100%;}
.ft-info .ft-address dt {display: none;}

footer copyright {margin-top: 2.4rem;}

@media (max-width: 1200px) {
    footer .container {flex-direction: column;}
    footer copyright {width: 100%;}
    footer .ft-com-logo {margin: 0 0 0 auto;}
}
@media (max-width: 768px) {
    .ft-info dl::after {display: none;}
    .ft-info dl {width: 100%;}
}



/* ============================================================
* 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;}
}
