@charset "utf-8";

:root {

/* Colors: */
--main: #262B2F;
--blueblack: #343A40;
--white-100: #FFFFFF;
--white-200: #F5F6F7;
--primary: #3e78ff;
--gray-50: #eff0f2;
--gray-100: #E3E3E3;
--gray-200: #9c9c9c;
--gray-300: #7C7F82;
--gray-400: #393939;



/* Animation */
--expoOut: cubic-bezier(0.16, 1, 0.3, 1);
--expoInOut: cubic-bezier(0.87, 0, 0.13, 1);
--ease-out: cubic-bezier(0.050, 0.760, 0.380, 1.015);
--ease-in-out: cubic-bezier(0.895, 0.000, 0.180, 1.000);

/* Font system */
--font-family-eng:'Montserrat';
--font-family-kor:'Montserrat', 'Pretendard';
--font-style-normal: normal;
--font-weight-thin: 100;
--font-weight-exlight: 200;
--font-weight-light: 300;
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--font-weight-black: 800;

--font-size-xs-1: 15px;
--font-size-xs-2: 16px;
--font-size-sm-1: 17px;
--font-size-sm-2: 18px;
--font-size-sm-3: 20px;
--font-size-md-1: 22px;
--font-size-md-2: 24px;
--font-size-md-3: 26px;
--font-size-lg-1: 36px;
--font-size-xl-1: 46px;
--font-size-xl-2: 66px;
--font-size-xxx: 72px;

--line-height-0: 0;
--line-height-xs: 1.64;
--line-height-sm: 1.73;
--line-height-md: 1.56;
--line-height-lg: 1.43;
--line-height-xl: 1.34;

--letter-spacing-xs: -0.025em;
--letter-spacing-sm: -0.03em;
--letter-spacing-md: -0.064em;
--letter-spacing-lg: -0.04em;
--letter-spacing-xl: -0.05em;
--letter-spacing-xxx: -0.2em;

/* margin */
--margin-top-10: 10px;
--margin-top-20: 20px;
--margin-top-30: 30px;
--margin-top-40: 40px;
--margin-top-50: 50px;
--margin-top-60: 60px;
--margin-top-70: 70px;
--margin-space-1: 120px;
--margin-space-2: 160px;

--menu-image-width: 566px;
}

html {scroll-behavior: smooth;}
body {padding:0;overflow-x: hidden;font-family: var(--font-family-kor);color:var(--blueblack);}
a {text-decoration: none; color: inherit;}
a:hover {color: inherit;}
*::selection {background-color: var(--main);color: var(--white-200);}
div, p, h1, h2, h3, h4, h5, h6 {line-height: 1.6;margin: 0;}
ul {list-style:none;padding:0;margin:0;}
main img {width:100%}
.form-select.line-style {border: none;border-bottom: 1px solid #191919;border-radius: 0;}
.form-select.line-style:focus {box-shadow: none;}
.margin-space-1 {margin-top: var(--margin-space-1);}
.margin-space-2 {margin-top: var(--margin-space-2);}
.m-0 {margin: 0 !important;}
.ellipsis-1 {width: 100%;display: -webkit-box;overflow: hidden;text-overflow: ellipsis;white-space: normal;-webkit-line-clamp: 1;-webkit-box-orient: vertical;word-break: break-all;}
.ellipsis-2 {width: 100%;display: -webkit-box;overflow: hidden;text-overflow: ellipsis;white-space: normal;-webkit-line-clamp: 2;-webkit-box-orient: vertical;word-break: break-word;}
.ellipsis-3 {width: 100%;display: -webkit-box;overflow: hidden;text-overflow: ellipsis;white-space: normal;-webkit-line-clamp: 3;-webkit-box-orient: vertical;word-break: break-word;}

.f-title {font-size: var(--font-size-xs-2);font-weight: var(--font-weight-semibold);color:var(--white-200);margin-bottom: 30px;text-transform: uppercase;letter-spacing: var(--letter-spacing-xs);}
.f-text {font-size: var(--font-size-xs-2);font-weight: var(--font-weight-exlight);color:var(--white-200);margin-bottom: 8px;letter-spacing: var(--letter-spacing-xs);opacity: 0.8;line-height: 1.6;}
.f-text a {color:inherit;}
.f-copy {font-size: var(--font-size-xs-2);font-weight: var(--font-weight-normal);color:var(--gray-300);margin-top:70px;}


/* header */
#header {position: fixed;top: 0;left: 0;right: 0;height: 135px;z-index: 101;color:var(--white-100);transition: all .6s var(--expoOut);}
#header .container-fluid {max-width: 1760px;width: 95%;height: 100%;}
#header .container-fluid .row {height: 100%;}
#header .container-fluid .row .col {padding: 0;}
#header .gnb-logo svg {width: 145px;fill: var(--white-100);position: relative;z-index: 100;transition: all .6s var(--expoOut);}
#header nav.gnb ul li {display: inline-block;}
#header nav.gnb ul li a {padding: 20px;position: relative;}
#header nav.gnb ul li a::after {content:'';position: absolute;left: 20px;transition: all 0.4s var(--ease-out);opacity: 0;width: 0;bottom: 12px;height:18px;background: var(--primary);z-index:-1;}
#header .menu-btn {padding: 6px 0 6px 35px;cursor: pointer;z-index: 999;}
#header .menu-btn .bar-1 {width: 34px;height: 2px;background-color: var(--white-100);margin-bottom: 5px;transition: all .6s var(--expoOut);}
#header .menu-btn .bar-2 {width: 34px;height:2px;background-color: var(--white-100);transition: all .6s var(--expoOut);}
button.round-btn {display: inline-flex;justify-content: center;align-items: center;cursor: pointer;font-size: var(--font-size-sm-2);font-weight: var(--font-weight-medium);letter-spacing: var(--letter-spacing-sm);position: relative;background: none;border: none;width: auto;color: var(--white-200);padding: 14px 30px;}
button.round-btn.white {color: var(--blueblack);}
button.round-btn.white::before {background: var(--white-100);}
button.round-btn::before {content: "";display: block;position: absolute;z-index: -1;width: 100%;height: 100%;left: 0;top: 0;right: 0;bottom: 0;transform: scale(1);border-radius: 50px;background-color: var(--blueblack);transition: all .6s var(--expoOut);will-change: transform;}
#header.fixed {color: var(--white-200);height: 90px;background: rgb(43 45 46 / 95%);transition: all .6s var(--expoOut);}
#header.fixed .gnb-logo svg {width: 130px;transition: all .6s var(--expoOut);}


/* spread menu */
#nav {color:var(--blueblack);position: fixed;top: 0;left: 0;right: 0;bottom: 100%;background: var(--white-200);overflow:hidden;display: flex;align-items: center;}
#header .nav-mask {background-color: #000;opacity: 0.0001;display: none;position: fixed;top: 0;right: 0;left: 0;bottom: 0;z-index: 0;}
#nav .left-wrap {position: relative;padding-left: 30px;}
#nav .img-wrap {height: 85%;min-height: 530px;width: var(--menu-image-width);max-width:var(--menu-image-width); overflow: hidden;display: flex;align-items: center;position: relative;width: 0px;}
#nav .img-wrap img {position: absolute;width: var(--menu-image-width);opacity: 0;height: 100%;transition: opacity .6s var(--ease-out);object-fit: cover;}
#nav .link-wrap .member {padding-bottom: 100px;}
#nav .menu .mask {overflow: hidden;display: block;line-height: 1;margin-bottom: 12px;}
#nav .link-wrap .menu .n-main {font-size: var(--font-size-md-3);font-weight: var(--font-weight-semibold);letter-spacing: var(--letter-spacing-md);cursor: pointer;line-height: 1;transform: translateY(30px);}
#nav .link-wrap .menu .n-sub {font-size: var(--font-size-sm-3);font-weight: var(--font-weight-normal);letter-spacing: var(--letter-spacing-sm);cursor: pointer;padding: 10px 0;opacity: 0.4;display:block;transition: opacity 400ms var(--ease-out);transform: translateY(30px);will-change: transform;}
#nav .link-wrap .member button:first-child {margin-right: 6px;}
#nav .contact {padding-bottom: 30px;}
#nav .contact {color: var(--blueblack);padding-top: 45px;}
#nav .contact .sns {margin-bottom: 26px;margin-left: -20px;}
#nav .contact .sns a {padding: 10px 20px;font-size: 22px;opacity: 0;}
#nav .contact .c-text {font-size: var(--font-size-sm-3);letter-spacing: var(--letter-spacing-sm);margin-bottom: 10px;opacity: 0;}
#nav .container-xxl > .row {height: calc(100vh - 120px);max-height: 800px;}
#nav .img-wrap img.show {opacity: 1;transition: opacity .6s var(--ease-out);}
#nav .img-wrap::before {content: '';width: 100%;height: 100%;background: var(--blueblack);}
#nav .img-wrap .mask {width: 0;height: 100%;position: absolute;top: 0;left: 0;overflow: hidden;}

/* footer */
#footer {padding: 110px 0;background-color: var(--main);}
#footer .f-logo {margin-bottom: 70px;}
#footer .f-logo a {width: 138px;display: block;}
#footer .f-logo a img {width: 100%;}
#footer .social a {width: 50%;color: var(--gray-300);}
#footer .f-text a {width: 170px;display: block;}
#footer .f-text a i {float: right;}

/* *********************************************
 * Page loader
 ******************************************** */
#page-loader {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: var(--white-100);z-index: 9990}
#page-loader .loader-stage {position: relative;display: flex;width: 300px;height: 100%;margin: auto;justify-content: center;align-items: center;overflow: hidden}
#page-loader .dot-floating {color: var(--main);background-color: var(--main);}
#page-loader .dot-floating:before, #page-loader .dot-floating:after {color: var(--main);background-color: var(--main);}

/* *********************************************
  * Layer popup
  ******************************************** */
.px-layer-popup {display: none; position: fixed; box-shadow: 0 5px 25px 0 rgba(72,77,85,.4); z-index: 1130}
.px-layer-popup .popup-content > a {display: block}
.px-layer-popup .popup-footer {display: -ms-flexbox;display: flex;-ms-flex-wrap: wrap;flex-wrap: wrap;align-items: center;justify-content: space-between;background-color: var(--main);}
.px-layer-popup .popup-footer .inner-grid {width: 100%}
.px-layer-popup .popup-footer button {height: 3.375rem; border: 0; outline: 0}
.px-layer-popup .popup-footer .btn-cookie-close {font-size: 15px; font-weight: 500; color: var(--white-100); letter-spacing: -0.02em; padding: 0 24px; background-color: var(--main)}
.px-layer-popup .popup-footer .btn-normal-close {color: var(--white-100); padding: 0 16px; background-color: transparent}
.px-layer-popup .popup-footer .btn-normal-close svg {width: 1.25rem; height: 1.25rem}

/* quick menu */
#quick-btns {position: fixed;bottom: 50px;right: -60px;z-index: 10;transition: all 0.5s cubic-bezier(0.42,0,0.14,1.01);}
#quick-btns.show {right:60px;transition: all 0.5s cubic-bezier(0.42,0,0.14,1.01);}
#quick-btns a {background: var(--blueblack);width: 56px;height: 56px;display: block;box-shadow: 0px 9px 23px -4px rgb(34 35 38 / 60%);text-align: center;color: var(--white-100);font-size: 36px;border-radius: 14px;transition: all 0.4s var(--ease-out);}
#quick-btns #kakao-btn {margin-bottom: 10px;background: #fee500;font-size: 34px;color: var(--blueblack);padding-top: 3px;border-radius: 14px;box-shadow: 0px 5px 25px -2px rgb(247 209 0 / 60%);}

@media (hover: hover) {
	a:hover {text-decoration: none; color: inherit;}
    button.round-btn:hover::before {transform: scale(1.12);transition: all .4s var(--expoOut);}
    #header nav.gnb ul li a:hover::after {opacity: 1;width: calc(100% - 40px);}
    #nav .link-wrap .menu .n-sub:hover {opacity: 1;transition: opacity 400ms var(--ease-out);}
    #nav .contact .sns a:hover {opacity: 0.8;}
    #footer .social a:hover {color: var(--white-200); transform: scale(1.1);}
    #footer .f-text a:hover {text-decoration: underline;}
    #quick-btns a:hover {transition: all 0.4s var(--ease-out);transform: scale(1.15);}
}
@media (max-width: 1480px) {
    :root {
        --font-size-md-1: 20px;
        --font-size-md-2: 22px;
        --font-size-xl-2: 58px;
        --font-size-xxx: 62px;
    }
    #nav .container-xxl {width: 95%;}
}
@media (max-width: 1100px) {
    :root {
        --menu-image-width: 430px;
    }
    #nav .img-wrap {height: 70%;transform: scale(0.9);}
}

@media (max-height: 1040px) {
    :root {
        --menu-image-width: 460px;
    }
    #nav .container-xxl {margin-top: 10%;}
    #nav .img-wrap {height: 75%;}
    #nav .link-wrap .member {padding-bottom: 80px;}
}
@media (max-height: 990px), (max-width: 1200px) {
    :root {
        --font-size-sm-2: 16px;
        --font-size-sm-3: 18px;
        --font-size-md-3: 24px;
    }
    button.round-btn {padding: 12px 26px;}
    #nav .menu .mask {margin-bottom: 10px;}
    #nav .menu .mask.mt-70 {margin-top: 50px !important;}
    #nav .menu .mask.mb-30 {margin-bottom: 20px !important;}
    #nav .link-wrap .menu .n-sub {padding: 8px 0;}
    #nav .contact .sns a {font-size: 20px;}
}

@media (max-width: 991px) {
    #nav .img-wrap {display: none;}
    #nav .container-xxl {margin-top: 120px;}
    #nav .container-xxl > .row {display: table;width: 100%;}
    #nav .left-wrap {display: table-footer-group;}
    #nav .link-wrap {display: table-header-group;}
    #nav .link-wrap .member {padding-bottom: 50px;padding-top: 30px;}
    #header .gnb {display: none;}
    #nav .left-wrap {padding-left: calc(var(--bs-gutter-x) * .5);}
    #footer {padding: 80px 30px;}
    #footer .f-logo {margin-bottom: 20px;}
    #footer > .container-xxl > .row > .row > div {margin-top: 30px;}
    #footer .f-title {margin-bottom: 20px;}
    #footer .social {margin-top: 30px;height:200px;}
    #footer .social a {max-width: 45px;min-width: none;}
    #nav .link-wrap .member {padding: 30px 10px 50px 10px;}
    #nav .link-wrap .menu {padding: 0 10px;}
    #nav .contact {padding-left: 10px;}
}


@media (max-width: 767px) {
    .px-layer-popup {top: 100px !important;left: 50% !important;width: calc(100% - 50px);transform: translateX(-50%)}
    .px-layer-popup .popup-content img {display: block;width: 100%}
    .px-layer-popup .popup-footer .btn-cookie-close {font-size: 14px;padding: 0 16px}
    #quick-btns.show {right: 25px;}
}
@media (max-width: 576px) {
    #header {height: 110px;}
    #header .gnb-logo svg {width: 120px;}
    #header.fixed {height: 80px;}
    #header.fixed .gnb-logo svg {width: 120px;}
    #nav .container-xxl {margin-top: 80px;height: calc(100% - 80px);overflow-y: auto;}
    #nav .link-wrap .member {padding-bottom: 40px;}
    #nav .link-wrap .menu .col-6:last-child {margin-top: 50px;}
}

