@charset 'utf-8';

/* ���� */
:root{
    --baseFont: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	--engFont: 'Montserrat', 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	--mainColor: #004FA2;
	--headerH: 100px;
	--aosPlus: 100px;
	--aosMinus: -100px;
}

*{  box-sizing: border-box; word-break: keep-all; line-height: 1.3; letter-spacing: -0.02em; }

.w1830{ max-width: 1830px; width: 100%; margin: 0 auto; }
.w1740{ max-width: 1740px; width: 100%; margin: 0 auto; }
.w1600{ max-width: 1600px; width: 100%; margin: 0 auto; }

@media screen and (max-width: 1870px){
	.w1830{ padding: 0 20px; }
}

@media screen and (max-width: 1780px){
	.w1740{ padding: 0 20px; }
}

@media screen and (max-width: 1640px){
	.w1600{ padding: 0 20px; }
}

@media screen and (max-width: 1280px){
	--aosPlus: 50px;
	--aosMinus: -50px;
}

@media screen and (max-width: 1200px){
	:root{
		--headerH: 70px;
	}
}

/* privacy */
.privacy * { font-size: 1.6rem; line-height: 1.625; }
.privacy h3 { font-weight: 700; }
.privacy h4{ font-weight: 700; }
.privacy .textBox,
.privacy .pBox,
.privacy .dlBox,
.privacy .subTextBox { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }

.privacy .textBox { gap: 100px 0; }
.privacy .textBox h3{ font-size: 2.2rem; margin-bottom: 5px; }

.privacy .pBox { gap: 30px 0; margin: 40px 0; }

.privacy .dlBox { gap: 50px 0; }
.privacy .dlBox > dl > dt { font-size: 1.8rem; font-weight: 500; }
.privacy .dlBox > dl > dd p { margin: 5px 0; }
.privacy .dlBox > dl > dd > ul { padding: 0 0 0 20px; }
.privacy .dlBox > dl > dd ul:only-child{ margin-top: 5px; }
.privacy .dlBox > dl > dd ul li:not(:last-of-type){ margin-bottom: 5px; }

.privacy .square { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; gap: 0 5px; position: relative; padding-left: 12px; }
.privacy .square::before { content: "-"; position: absolute; top: 0; left: 0; }
.privacy .square > p { width: 100%; padding: 0 0 0 13px; }

.privacy .subTextBox { gap: 24px 0; }
.privacy .subTextBox h6 { font-weight: 500; margin: 0 0 4px; }
.privacy .subText { margin: 4px 0; }
.privacy .subText dd { padding: 0 0 0 11px; }

.privacy .contact { margin: 60px 0 0; }
.privacy .contact ol { margin: 30px 0 0; }

@media screen and (max-width: 1250px){
	.privacy .textBox h3{ font-size: 2rem; }
	.privacy .textBox { gap: 80px 0; }

	.privacy .pBox{ gap: 15px 0; }
	
	.privacy .dlBox { gap: 30px 0; }
}

@media screen and (max-width: 900px){
	.privacy .dlBox > dl > dt { font-size: 1.7rem; }
	.privacy * { font-size: 1.5rem; }
	.privacy .dlBox > dl > dd > ul { padding: 0 0 0 10px; }
}


/* header */
#header{ width: 100%; position: fixed; top: 0; left: 0; z-index: 1000; background: transparent; border-bottom: 1px solid transparent; transition: background 0.5s, border 0.5s, transform 0.7s; }
#header::before{ content: ""; width: 100%; height: calc(var(--headerH) + var(--navH)); background: #fff; position: absolute; top: 0; left: 0; z-index: -5; transform: scaleY(0); transform-origin: top; transition: transform 0.5s 0.2s, opacity 0.5s 0.5s; box-shadow: 0px 0px 20px #F5F5F5; }
#header::after{ content: ""; width: 100%; height: 1px; background: #EEE; position: absolute; bottom: 0; left: 50%; z-index: -1; transform: translateX(-50%) scaleX(0); transition: transform 0.5s 0.1s; pointer-events: none; }
#header .flex-box{ height: var(--headerH); display: flex; justify-content: space-between; align-items: center; }
#header .logo{ display: inline-block; position: relative; opacity: 1; transition: opacity 0.5s; }
#header .logo img{ opacity: 1; transition: opacity 0.5s 0.4s; }
#header .logo::after{ content: ""; width: 100%; height: 100%; background: url("/img/common/sanil_logo_color.svg") no-repeat center center / contain; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 0.5s 0.4s; }
#header .logo a{ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 10; }

#header nav{ width: 1200px; position: absolute; top: 0; left: 50%; transform: translateX(-50%); text-align: center; opacity: 1; transition: opacity 0.5s; }
#header nav .arrow > a::after{ content: ""; display: inline-block; width: 8px; height: 6px; background: url("/img/common/header_arrow.svg") no-repeat center center / contain; vertical-align: middle; margin-left: 10px; transform: translateY(-2px); transition: transform 0.5s; }

#header .depth01{ display: flex; justify-content: center; margin: 0 auto; }
#header .depth01 > li{ width: 160px; position: relative; transition: width 0.5s; transition-delay: 0.5s; }
#header .depth01 > li > a{ display: flex; justify-content: center; align-items: center; height: var(--headerH); font-size: 2rem; font-weight: 500; color: #fff; padding: 35px 0; transition: color 0.5s 0.5s; }

#header .depthBox{ width: 100%; height: var(--navH); position: absolute; top: 100%; pointer-events: none; }
#header .depth02{ padding: 30px 0 40px; }
#header .depth02 > li{ overflow: hidden; }
#header .depth02 > li > a{ display: inline-block; width: 100%; font-size: 1.8rem; font-weight: 300; color: #555; line-height: 1.3; padding: 7.5px; transform: translateY(100%); transition: color 0.5s, transform 0.5s; }

#header .depth03{ display: none; }
#header .depth03 > li > a{ display: inline-block; font-size: 1.7rem; font-weight: 400; color: #999; letter-spacing: -0.02em; line-height: 1.3; padding: 7.5px; }

#header .right{ display: flex; align-items: center; margin-right: -20px; }
#header .right > div{ opacity: 1; transition: opacity 0.5s; }
#header button{ background: none; border: none; padding: 20px; position: relative; overflow: hidden; }
#header button img{ opacity: 1; transition: opacity 0.5s 0.4s, filter 0.5s 0.4s; filter: invert(0); -webkit-filter: invert(0); }
#header button span{ display: inline-block; width: 35px; height: 2px; background: #fff; position: relative; top: -3px; transition: background 0.5s 0.4s, transform 0.5s; }
#header button span::before, #header button span::after{ content: ""; display: inline-block; width: 100%; height: 100%; background: #fff; position: absolute; left: 0; transition: background 0.5s 0.4s, top 0.5s, transform 0.5s; will-change: background top transform; }
#header button span::before{ top: -7px; }
#header button span::after{ top: 7px; }

#header .lang{ position: relative; }
#header .lang button{ position: relative; z-index: 10; }
#header .lang button img{ opacity: 1;}
#header .lang button::after{ content: url("/img/common/lang_icon_color.svg"); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0; transition: opacity 0.5s 0.4s, filter 0.5s 0.5s; filter: invert(0); -webkit-filter: invert(0); }
#header .lang ul{ width: 45px; position: absolute; top: 10px; left: 50%; transform: translateX(-50%); text-align: center;  padding: 45px 0 10px; pointer-events: none; }
#header .lang ul::before{ content: ""; width: 100%; height: 100%; background: var(--mainColor); border-radius: 10px; position: absolute; bottom: 0; left: 0; z-index: -5; transform: scaleY(0); transform-origin: top; transition: transform 0.5s 0.3s; }
#header .lang ul li{ overflow: hidden; }
#header .lang ul li a{ display: block; font-family: var(--engFont); font-size: 1.5rem; font-weight: 600; color: #fff; padding: 5px 0; opacity: 0; transform: translateY(100%); transition: transform 0.5s, opacity 0.5s; }

#header .lang.on button img{ opacity: 1 !important; filter: invert(0); filter: invert(0); -webkit-filter: invert(0); transition-delay: unset !important; }
#header .lang.on button::after{ opacity: 0 !important; filter: invert(0); -webkit-filter: invert(0); transition-delay: unset !important; }
#header .lang.on ul{ pointer-events: auto; }
#header .lang.on ul::before{ transform: scaleY(1); transition-delay: unset; }
#header .lang.on ul li a{ transform: translateY(0); opacity: 1; transition-delay: 0.3s; }

#header .menu button{ height: var(--headerH); }

/* header - scroll */
#header.scroll{ background: #fff; }
#header.scroll .logo img{ opacity: 0; transition-delay: unset; }
#header.scroll .logo::after{ opacity: 1; transition-delay: unset; }
#header.scroll .depth01 > li > a{ color: #111; transition-delay: unset; }
#header.scroll .lang button img{ opacity: 0; transition-delay: unset, 0.5s }
#header.scroll .lang button::after{ opacity: 1; transition-delay: unset, 0.5s; }
#header.scroll .menu button span{ background: #111; transition-delay: unset; }
#header.scroll button span::before, #header.scroll button span::after{ background: #111; transition-delay: unset; }

/* header - hover */
#header.hover::before{ transform: scaleY(1); transition-delay: unset; }
#header.hover::after{ transform: translateX(-50%) scaleX(1); transition-delay: unset; }
#header.hover .logo img{ opacity: 0; transition-delay: unset; }
#header.hover .logo::after{ opacity: 1; transition-delay: unset; }
#header.hover .depth01 > li{ width: calc(100% / 6) !important; transition-delay: unset; }
#header.hover .depth01 > li > a{ color: #111; transition-delay: unset; }
#header.hover .depthBox{ pointer-events: auto; }
#header.hover .depth02 > li > a{ transform: translateY(0); transition-delay: 0.3s; }
#header.hover .lang button img{ opacity: 0; transition-delay: unset; }
#header.hover .lang button::after{ opacity: 1; transition-delay: unset; }
#header.hover .menu button span{ background: #111; transition-delay: unset; }
#header.hover button span::before, #header.hover button span::after{ background: #111; transition-delay: unset; }

@media screen and (hover: hover){
	#header .depth01 > li:hover > a{ color: var(--mainColor); transition-delay: unset; }
	#header .depth02 > li:hover > a{ font-weight: 500; color: #111; }
	#header .depth02 > li:hover > a::after{ transform: translateY(-2px) rotate(-180deg); }
}

@media screen and (max-width: 1350px){
	#header nav{ width: 1000px; }
	#header .depth01 > li > a{ font-size: 1.9rem; }
	#header .depth02 > li > a{ font-size: 1.7rem; }
}

@media screen and (max-width: 1300px){
	#header nav{ display: none; }

	#header .right{ margin-right: -10px; }
	#header button{ padding: 10px; }
	#header .lang ul{ top: 0; }
}


/* menu */
#menu{ width: 100%; height: 100%; background: var(--mainColor); position: fixed; top: 0; left: 0; z-index: 999; display: none; }
#menu::after{ content: ""; max-width: 1182px; width: 100%; height: 191px; background: url("/img/common/menu_logo.svg") no-repeat center bottom / contain; position: absolute; bottom: 0; right: 0; z-index: -1; transform: translateX(100%); transition: transform 1s; transition-delay: 0.7s; }
#menu *{ color: #fff !important; }
#menu .inner{ max-width: 1550px; width: 100%; margin: 0 auto; padding-top: calc(var(--headerH) + 40px); }
#menu .title{ position: relative; }
#menu .title::before{ content: ""; width: 100%; height: 1px; background: rgba(255, 255, 255, 0.2); position: absolute; bottom: 0; left: 0; transform: scaleX(0); transform-origin: left; transition: transform 1s; transition-delay: 0.7s; }
#menu .title h2{ font-family: var(--engFont); font-size: 8rem; font-weight: 700; letter-spacing: 0; padding-bottom: 40px; transform: translateY(-100px); opacity: 0; transition: opacity 1s, transform 1s; transition-delay: 0.7s; }
#menu .mobile{ display: none; }

#menu .nav{ padding-top: 30px; }
#menu .nav .arrow > a::after{ content: ""; display: inline-block; width: 9px; height: 7px; background: url("/img/common/menu_arrow.svg") no-repeat center center / contain; vertical-align: middle; transform: translateY(-2px); margin-left: 10px; transition: transform 0.5s; }
#menu .nav .arrow.on > a::after{ transform: translateY(-2px) rotate(-180deg); }

#menu .depth01{ display: flex; justify-content: space-between; }
#menu .depth01 a{ display: block; line-height: 1.3; transform: translateY(100%); opacity: 0; transition: transform 0.8s, opacity 0.8s; }
#menu .depth01 > li > a{ font-size: 4rem; font-weight: 600; padding: 20px; }
#menu .depth02 > li > a{ font-size: 1.8rem; font-weight: 300; padding: 7px 20px; }
#menu .depth03{ display: none; padding: 5px 0; }
#menu .depth03 > li > a{ font-size: 1.7rem; font-weight: 400; color: rgba(255, 255, 255, 0.4) !important; transition: color 0.5s; transition-delay: unset !important; padding: 5px 20px; }

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{ opacity: 0; pointer-events: none; }
body.open #header button span{ background: #fff; transform: translateX(100px); } 
body.open #header button span::before, body.open #header button span::after{ background: #fff; top: 50%; }
body.open #header button span::before{ top: 0; transform: translateX(-100px) rotate(45deg); }
body.open #header button span::after{ top: 0; transform: translateX(-100px) rotate(-45deg); }
body.open #menu::after{ transform: translateX(0); }
body.open #menu .title::before{ transform: scaleX(1); }
body.open #menu .title h2{ transform: translateY(0); opacity: 1; }
body.open #menu .depth01 a{ transform: translateY(0); opacity: 1; }

@media screen and (hover: hover){
	#menu .depth03 > li:hover > a{ color: #FFF !important; }
	#menu .nav .pc .arrow:hover > a::after{ transform: translateY(-2px) rotate(-180deg); }
}

@media screen and (max-width: 1700px){
	#menu .title h2{ font-size: 6.5rem; }
	#menu .depth01 > li > a{ font-size: 3.5rem; }
}

@media screen and (max-width: 1590px){ 
	#menu .inner{ padding: 0 20px; padding-top: calc(var(--headerH) + 20px); }

	#menu .title h2{ font-size: 5.5rem; padding-bottom: 20px; }

	#menu .nav{ padding-top: 10px; }
	#menu .depth01 > li > a{ font-size: 3rem; }
}

@media screen and (max-width: 1280px){
	#menu .title h2{ font-size: 4.5rem; }

	#menu .nav{ padding-top: 15px; }
	#menu .depth01 > li > a{ font-size: 2.8rem; padding: 10px 20px; }
}

@media screen and (max-width: 850px){
	#menu .inner{ height: 100%; }
	#menu .pc{ display: none; }
	#menu .mobile{ display: block; }
	#menu .title h2{ font-size: 4rem; }

	#menu .nav{ height: calc(100% - 72px); overflow-y: auto; padding: 25px 0; }
	#menu .nav::-webkit-scrollbar{ width: 20px; padding-left: 20px; }
	#menu .nav::-webkit-scrollbar-thumb{ height: 20px; background: #fff; border-radius: 100px; background-clip: padding-box; border: 9px solid transparent; }
	#menu .nav::-webkit-scrollbar-track{ background: rgba(255, 255, 255, 0.5); border-radius: 100px; background-clip: padding-box; border: 9px; border: 9px solid transparent; }
	#menu .depth01{ display: block; text-align: center; }
	#menu .depth01 > li{ position: relative; }
	#menu .depth01 > li.depth::after{ content: ""; width: 100%; height: 76px; position: absolute; top: 0; left: 0; z-index: 10; cursor: pointer; }
	#menu .depth01 > li > a{ font-size: 3.5rem; padding: 15px 0; }
	#menu .depth02{ padding-bottom: 10px; display: none; }
}


/* footer */
#footer{ background: #232323; padding: 75px 0 65px; }
#footer *{ color: #fff; }
#footer .flex-box{ display: flex; justify-content: space-between; }
#footer .logo{ display: inline-block; position: relative; }
#footer .logo a{ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 10; }

#footer .dl{ margin: 65px 0 60px; }
#footer .dl dl{ display: flex; }
#footer .dl dl *{ font-size: 1.8rem; line-height: 1.6; }
#footer .dl dl dt{ font-weight: 500; padding-right: 10px; }
#footer .dl dl dd{ font-weight: 200; opacity: 0.8; }

#footer .copyright{ font-size: 1.6rem; font-weight: 200; opacity: 0.5; }

#footer .nav{ margin-top: -25px; margin-right: -15px; }
#footer .depth01{ display: flex; gap: 40px; }
#footer .depth01 a{  line-height: 1.3; }
#footer .depth01 > li > a{ display: inline-block; font-size: 2rem; font-weight: 500; padding: 25px 20px; }
#footer .depth02 > li > a{ display: block; font-size: 1.7rem; font-weight: 200; opacity: 0.8; padding: 5px 15px; }
#footer .depth03{ display: none; }

#footer .line02{ margin-top: 120px; }
#footer .line02 .flex-box{ align-items: flex-end; }
#footer .link{ max-width: 500px; width: 100%; }
#footer .link ul{ display: flex; flex-wrap: wrap; gap: 10px; }
#footer .link ul li{ max-width: 160px; width: calc((100% - 10px) / 3); }
#footer .link ul li a{ display: flex; justify-content: center; align-items: center; height: 55px; border-radius: 5px; font-size: 1.6rem; font-weight: 200; color: rgba(255, 255, 255, 0.9); text-align: center; position: relative; z-index: 10; overflow: hidden; padding: 10px; transition: color 0.5s; }
#footer .link ul li a::before{ content: ""; width: 5px; padding-bottom: 5px; background: var(--mainColor); border-radius: 50%; position: absolute; top: 50%; left: 50%; z-index: -1; transform: translate(-50%, -50%); opacity: 0; box-sizing: border-box; transition: all 0.7s; }
#footer .link ul li a::after{ content: ""; width: 100%; height: 100%; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: inherit; position: absolute; top: 50%; left: 50%; z-index: -5; transform: translate(-50%, -50%); box-sizing: border-box; }

@media screen and (hover: hover){
	#footer .link ul li a:hover{ color: #fff; }
	#footer .link ul li a:hover::before{ width: 150%; padding-bottom: 150%; opacity: 1; }
}

@media screen and (max-width: 1700px){
	#footer .line02{ margin-top: 60px; }
}

@media screen and (max-width: 1500px){
	#footer .dl{ margin: 30px 0; }
	#footer .dl dl *{ font-size: 1.7rem; }

	#footer .nav{ margin-top: -15px; }
	#footer .depth01{ gap: 20px; }
	#footer .depth01 > li > a{ font-size: 1.8rem; padding: 15px 20px; }
	#footer .depth02 > li > a{ font-size: 1.6rem; }
}

@media screen and (max-width: 1250px){
	#footer{ padding: 30px 0; }
	#footer .nav{ display: none; }

	#footer .line02{ margin-top: 15px; }
	#footer .link ul li{ max-width: 140px; }
	#footer .link ul li a{ font-size: 1.5rem; height: 50px; }
}

@media screen and (max-width: 700px){
	#footer .line02{ position: relative; }
	#footer .top{ position: absolute; top: -30px; right: 0; transform: translateY(-100%); }
}




/* top button */
#top{ width: 75px; height: 75px; border-radius: 50%; border: none; background: none; position: relative; z-index: 10; }
#top::before{ content: ""; width: 5px; padding-bottom: 5px; background: var(--mainColor); border-radius: 50%; position: absolute; top: 50%; left: 50%; z-index: -1; transform: translate(-50%, -50%); opacity: 0; box-sizing: border-box; transition: all 0.5s; }
#top::after{ content: ""; width: 100%; height: 100%; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: inherit; position: absolute; top: 50%; left: 50%; z-index: -5; transform: translate(-50%, -50%); box-sizing: border-box; }

@media screen and (hover: hover){
	#top:hover::before{ width: 100%; padding-bottom: 100%; opacity: 1; }
}

@media screen and (max-width: 1200px){
	#top{ width: 60px; height: 60px; }
}


/* scrolldown */
.scrolldown{ position: absolute; left: 50%; z-index: 900; transform: translateX(-50%); padding-bottom: 0; }
.scrolldown::after, .scrolldown::before, .scrolldown span{ display: inline-block; width: 22px; height: 13px; background: url("/img/main/scrolldown.svg") no-repeat center center / contain; animation: scrollDown 3s ease-out infinite; opacity: 0; transform: translateY(0); }
.scrolldown::after, .scrolldown::before{ content: ""; position: absolute; left: 0; }
.scrolldown::after{ bottom: 0; animation-delay: 1s; }
.scrolldown::before{ bottom: 0; animation-delay: 2s; }
.scrolldown span{ display: inline-block; }

@keyframes scrollDown {
  25% { opacity: 1; }
  33% { opacity: 1; transform: translateY(20px); }
  67% { opacity: 1; transform: translateY(30px); }
  100% { opacity: 0; transform: translateY(40px); }
}