@charset 'utf-8';

/* ���� */
:root{
    --baseFont: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	--engFont: 'Poppins', 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	--Lato: 'Lato', 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	--mainColor: #00A550;
	--aosPlus: 100px;
	--aosMinus: -100px;
	--headerH: 90px;
	--vh: 100%;
}

*{  box-sizing: border-box; word-break: keep-all; line-height: 1.3; }
body{ font-size: 16px; -ms-overflow-style: none; }
body::-webkit-scrollbar{ display: none; }
body.lock{ overflow: hidden; }
body *{ font-size: inherit; }
.fp-auto-height{ position: relative; z-index: 100; }

.w1760{ max-width: 1800px; width: 100%; margin: 0 auto; padding: 0 20px; }
.w1600{ max-width: 1640px; width: 100%; margin: 0 auto; padding: 0 20px; }

@media screen and (max-width: 1700px){
	html{ font-size: 50%; }
}

@media screen and (max-width: 1280px){
	:root{
		--aosPlus: 50px;
		--aosMinus: -50px;
	}

	html{ font-size: 40%; }
}

@media screen and (max-width: 900px){
	html{ font-size: 30%; }
}

/* privacy */
.privacy *{ font-size: 17px; font-weight: 400; color: #333; line-height: 1.5; }
.privacy h3{ margin-bottom: 5px; }
.privacy p{ margin-bottom: 10px; }
.privacy dl:not(:last-child){ margin-bottom: 30px; }
.privacy dl dt{ font-weight: 600; margin-bottom: 5px; }
.privacy dl dd ul{ margin-top: 5px; }
.privacy dl dd ul li:not(:last-of-type){ margin-bottom: 5px; }
.privacy dl dd ul.gap li{ margin-top: 15px; }
.privacy .sTxt{ margin-top: 10px; }

.privacy .hyphen{ padding-left: 12px; position: relative; }
.privacy .hyphen::before{ content: "-"; line-height: inherit; position: absolute; top: 0; left: 0; }

@media screen and (max-width: 1280px){
	.privacy *{ font-size: 16px; }
}

/* header */
#header{ width: 100%; position: fixed; top: 0; left: 0; z-index: 999; transition: background 0.3s, top 0.5s; }
#header .flex-box{ height: var(--headerH); display: flex; justify-content: space-between; align-items: center; position: relative; }
#header .logo{ display: inline-block; transition: opacity 0.5s; }
#header .logo a{ display: block; position: relative; }
#header .logo a::after{ content: ""; background: url("/img/common/logo01.svg") no-repeat center center / contain; position: absolute; top: 0; right: 0; bottom: 0; left: 0; opacity: 0; transition: opacity 0.3s; }
#header .logo img{ filter: grayscale(1) brightness(10); -webkit-filter: grayscale(1) brightness(10); opacity: 1; transition: opacity 0.5s; }


#header nav{ position: absolute; top: 0; left: 50%; transform: translateX(-50%); transition: opacity 0.5s; }
#header .depth01{ display: flex; }
#header .depth01 > li{ width: 140px; position: relative; }
#header .depth01 > li > a{ height: var(--headerH); display: flex; justify-content: center; align-items: center; font-family: var(--engFont); font-size: 18px; font-weight: 500; color: #fff; letter-spacing: -0.02em; /* padding: 0 40px; */ transition: color 0.3s; }

#header .depth02{ display: none; width: 100%; background: rgba(0, 0, 0, 0.8); border-radius: 10px; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding: 15px 0; backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); }
#header .depth02 > li{ overflow: hidden; }
#header .depth02 > li > a{ display: block; font-size: 16px; font-weight: 600; color: #FFF; letter-spacing: -0.02em; line-height: 1.3; padding: 5px 10px; text-align: center; opacity: 0.3; transform: translateY(100%); transition: opacity 0.3s, transform 0.5s 0.3s; }
#header .depth02.active > li > a{ transform: translateY(0); }


#header .right{ display: flex; align-otems: center; }
#header .right > *{ position: relative; }
#header .right > *:not(:last-child){ margin-right: 5px; }
#header .right button{ height: 40px; border-radius: 100px; padding: 0 20px; font-family: var(--engFont); font-size: 16px; font-weight: 600; letter-spacing: -0.02em; outline: none; }

#header .group{ font-family: var(--baseFont); background: transparent; border: 2px solid #E5E5E5; color: #FFF; transition: color 0.3s; }

#header .lang button{ background: transparent; border: 2px solid #E5E5E5; color: #fff; transition: color 0.3s; }
#header .lang button::after{ content: ""; display: inline-block; width: 8px; height: 5px; background: url("/img/common/lang_arrow.svg") no-repeat center center / contain; margin-left: 10px; vertical-align: middle; position: relative; top: 0; transform: scaleY(1); filter: unset; -webkit-filter: unset; transition: transform 0.3s, top 0.3s, filter 0.3s; }
#header .lang.active button::after{ top: -1px; transform: scaleY(-1); }
#header .lang ul{ display: none; width: 100%; background: #FFF; border: 2px solid #E5E5E5; border-radius: 15px; position: absolute; top: calc(100% + 5px); left: 50%; transform: translateX(-50%); padding: 3px 0; }
#header .lang ul li a{ display: block; font-family: var(--engFont); font-size: 16px; font-weight: 600; color: #CCC; letter-spacing: -0.02em; line-height: 1.3; text-align: center; padding: 5px 10px; }
#header .lang ul li.on a{ color: #111; }

#header .menu{ position: relative; top: 0; transition: top 0.5s; }
#header .menu button{ background: #000; border: none; color: #FFF; overflow: hidden; transition: background 0.3s, color 0.3s; }
#header .menu button.close{ opacity: 0; pointer-events: none; position: absolute; top: 0; left: 0; }
#header .menu button span{ display: inline-block; width: 12px; height: 2px; background: #fff; vertical-align: middle; margin-right: 10px; position: relative; top: -1px; transition: background 0.3s, transform 0.3s; }
#header .menu button span::before, #header .menu button span::after{ content: ""; width: 100%; height: 100%; background: #FFF; position: absolute; left: 0; transition: background 0.3s, top 0.3s, transform 0.3s; }
#header .menu button span::before{ top: -5px; }
#header .menu button span::after{ top: 5px; }

/* header - white */
#header.white .menu button{ background: #FFF; color: #111; }
#header.white .menu span, #header.white .menu span::before, #header.white .menu span::after{ background: #000; }


/* header - scroll */
#header.scroll .logo a::after{ opacity: 1; }
#header.scroll .logo img{ opacity: 0; }
#header.scroll .depth01 > li > a{ color: #111; }
#header.scroll .group, 
#header.scroll .lang button{ color: #111; }
#header.scroll .lang button::after{ filter: invert(1); -webkit-filter: invert(1); }
#header.scroll .menu button{ background: #000; color: #FFF; }
#header.scroll .menu button span, #header.scroll .menu button span::before, #header.scroll .menu button span::after{ background: #FFF; }

/* header - bg */
#header.bg{ background: #fff; }
#header.bg .logo a::after{ opacity: 1; }
#header.bg .logo img{ opacity: 0; }
#header.bg .depth01 > li > a{ color: #111; }
#header.bg .group{ background: #FFF; color: #111; }
#header.bg .lang button{ color: #111; }
#header.bg .lang button::after{ filter: invert(1); -webkit-filter: invert(1); }
#header.bg .menu button{ background: #000; color: #FFF; }
#header.bg .menu button span, #header.bg .menu button span::before, #header.bg .menu button span::after{ background: #FFF; }

/* header - down */
#header.down{ top: calc(var(--headerH) * -1); }
#header.down .menu{ top: var(--headerH); }

@media screen and (hover: hover){
	#header .depth02 > li:hover > a{ opacity: 1; }
}

@media screen and (max-width: 1500px){
	:root{
		--headerH: 80px;
	}

	/* #header .depth01 > li > a{ padding: 0 20px; } */
	#header .depth02{ min-width: 120px; }
}

@media screen and (max-width: 1350px){
	:root{
		--headerH: 70px;
	}

	#header .logo img{ width: auto; height: 40px; }
	#header nav{ display: none; }
	#header .right button{ height: 37px; padding: 0 15px; }
}

@media screen and (max-width: 650px){
	#header .logo img{ height: 32px; }
	#header .right button{ font-size: 14px; padding: 0 13px; }
	#header .gruop{ font-size: 15px; }
}


/* menu */
#menu{ display: none; width: 100%; height: 100%; background: var(--mainColor); position: fixed; top: 0; left: 0; z-index: 900; padding-top: calc(var(--headerH) * 2); }
#menu .motion{ display: flex; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
#menu .motion div{ width: calc(100% / 4); height: 100%; background: #111; transform: scaleY(0); transform-origin: top; transition: transform 1s; }
#menu .motion div:nth-of-type(odd){ transition-delay: 0.8s; }
#menu .motion div:nth-of-type(even){ transition-delay: 1s; }
#menu .motion div:not(:last-of-type){ border-right: 1px solid rgba(255, 255, 255, 0.1); }

#menu nav{ position: relative; z-index: 10; text-align: center; }
#menu .mobile{ display: none; }
#menu nav a{ display: block; line-height: 1.3; transition: opacity 0.3s; }
#menu .depth01{ display: flex; flex-wrap: wrap; margin-bottom: -80px; }
#menu .depth01 > li{ width: calc(100% / 4); margin-top: -33px; margin-bottom: 80px; opacity: 0; transition: opacity 1s 0.8s; }
#menu .depth01 > li > a{ font-size: 3.2rem; font-weight: 700; color: #FFF; letter-spacing: -0.02em; opacity: 0.2; padding: 33px 20px; }
#menu .depth01 > li.on > a{ opacity: 1; }

#menu .depth02 > li > a{ font-size: 20px; font-weight: 600; color: #FFF; letter-spacing: -0.02em; opacity: 0.2; padding: 7px 20px; }

@media screen and (hover: hover){
	#menu .depth01 > li:hover > a{ opacity: 1; }
	#menu .depth02 > li:hover > a{ opacity: 1; }
}

@media screen and (max-width: 1700px){
	#menu{ padding-top: calc(var(--headerH) + 40px); }	
	#menu .depth01 > li > a{ padding: 20px; }
	#menu .depth02 > li > a{ font-size: 18px; }
}

@media screen and (max-width: 1280px){
	#menu .depth01{ margin-bottom: -60px; }
	#menu .depth01 > li{ margin-bottom: 60px; }
	#menu .depth01 > li > a{ padding: 15px 20px; }
	#menu .depth02 > li > a{ font-size: 17px; }
}

@media screen and (max-width: 900px){
	#menu{ padding-top: var(--headerH); }
	#menu .pc{ display: none; }
	#menu .mobile{ display: block; }

	#menu .motion div{ width: 100%; }
	#menu .motion div:not(:first-of-type){ display: none; }

	#menu nav{ height: 100%; overflow-x: clip; overflow-y: auto; -ms-overflow-style: none; padding: 30px 0; }
	#menu nav::-webkit-scrollbar{ display: none; }
	#menu .depth01{ display: block; margin-bottom: 0; }
	#menu .depth01 > li{ width: 100%; margin: 0; }
	#menu .depth01 > li > a{ font-size: 6rem; padding: 15px 20px; }
	#menu .depth02{ display: none; }
	#menu .depth02 > li > a{ font-size: 22px; padding: 10px 20px; }
}


/* body - open */
body.open{ overflow: hidden; }
body.open #header{ background: transparent; }
body.open #header .logo{ opacity: 0; pointer-events: none; }
body.open #header nav{ opacity: 0; pointer-events: none; }
body.open #header .lang button{ color: #FFF; }
body.open #header .lang button::after{ filter: invert(0); -webkit-filter: invert(0); }
body.open #header .menu button{ background: #FFF; color: #111; }
body.open #header .menu button span{ background: #000; transform: translateX(-50px); }
body.open #header .menu button span::before, body.open #header .menu button span::after{ background: #000; top: 0; }
body.open #header .menu button span::before{ transform: translateX(50px) rotate(45deg); }
body.open #header .menu button span::after{ transform: translateX(50px) rotate(-45deg); }


body.open #menu .motion div{ transform: scaleY(1); }
body.open #menu .depth01 > li{ opacity: 1; }


/* footer */
#footer{ background: #000; }
#footer > div{ position: relative; }
#footer *{ color: #FFF; }
#footer .flex-box{ display: flex; justify-content: space-between; }
#footer .line01{ padding: 80px 0 60px; }
#footer .line02{ padding: 30px 0; border-top: 1px solid rgba(255, 255, 255, 0.1); }
#footer .line02 .flex-box{ align-items: center; }

#footer nav a{ display: block; line-height: 1.3; }
#footer .depth01{ display: flex; margin: -10px 0; margin-left: -5px; }
#footer .depth01 > li{ min-width: 160px; }
#footer .depth01 > li > a{ font-size: 18px; font-weight: 600; letter-spacing: -0.02em; padding: 15px 5px; text-transform: uppercase; }

#footer .depth02 > li > a{ font-size: 16px; font-weight: 500; color: #555; letter-spacing: -0.02em; padding: 5px; }

#footer .info{ display: flex; flex-direction: column; }

#footer .policy{ flex: 1 0 auto; text-align: right; padding-bottom: 30px; margin-right: -9px; }
#footer .policy ul li a{ display: inline-block; font-size: 20px; font-weight: 600; color: #fff; letter-spacing: -0.02em; line-height: 1.3; padding: 9px; position: relative; }
#footer .policy ul li a::after{ content: ""; display: inline-block; width: 15px; height: 15px; background: url("/img/common/link_arrow.svg") no-repeat center center / contain; margin-left: 15px; vertical-align: middle; }

#footer .dl > *:not(:last-child){ margin-bottom: 10px; }
#footer .dl dl{ display: flex; }
#footer .dl dl *{ font-size: 16px; color: #AAA; letter-spacing: -0.02em; }
#footer .dl dl dt{ font-family: var(--engFont); font-weight: 600; padding-right: 10px; }
#footer .dl dl dd{ font-weight: 300; }
#footer .dl .flex{ display: flex; gap: 10px 30px; }

#footer .logo{ display: inline-block; }
#footer .logo img{ filter: grayscale(1) brightness(10); -webkit-filter: grayscale(1) brightness(10); }

#footer .copyright{ font-family: var(--engFont); font-size: 16px; font-weight: 500; color: #AAA; letter-spacing: -0.02em; }


/* top */
#top{ width: 80px; height: 80px; display: flex; flex-direction: column; justify-content: center; align-items: center; background: var(--mainColor); border: none; border-radius: 0; -webkit-border-radius: 0; font-family: var(--engFont); font-size: 16px; font-weight: 600; color: #FFF; letter-spacing: -0.02em; line-height: 1.3; position: fixed; bottom: 20px; right: 20px; z-index: 100; padding: 0; transition: opacity 0.3s; }
#top::before{ content: ""; display: inline-block; width: 8px; height: 6px; background: #FFF; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%); margin-bottom: 5px; }
#top.opacity{ opacity: 0; pointer-events: none; }

@media screen and (max-width: 1700px){
	#footer .policy ul li a{ font-size: 18px; }
	#footer .policy ul li a::after{ margin-left: 10px; }

	#top{ width: 70px; height: 70px; }
}

@media screen and (max-width: 1550px){
	#footer nav{ display: none; }
	#footer .line01 .flex-box{ justify-content: flex-end; }
}

@media screen and (max-width: 1280px){
	#footer .line01{ padding: 60px 0 30px; }
	#footer .line02{ padding: 20px 0; }
	
	#footer .policy{ padding-bottom: 20px; }
	#footer .policy ul li a{ font-size: 17px; }
	#footer .policy ul li a::after{ width: 13px; height: 13px; vertical-align: unset; }

	#footer .copyright{ font-size: 15px; }

	#top{ width: 60px; height: 60px; font-size: 15px; }
}

@media screen and (max-width: 650px){
	#footer .line01{ padding: 50px 0 20px; }
	#footer .line01 .flex-box{ display: block; }
	#footer .line02 .flex-box{ flex-direction: column; align-items: flex-start; }
	#footer .copyright{ margin-top: 15px; }
}