@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: #F57D21;
	--blue: #7A98FF;
	--gradient: linear-gradient(180deg, var(--mainColor) , #A15216);
	--blueShadow: 5px 5px 30px rgba(15, 41, 107, 0.08);
	--headerH: 100px;
	--aosPlus: 100px;
	--aosMinus: -100px;
	--vh: 100%;
}

/* common */
*{  box-sizing: border-box; word-break: keep-all; line-height: 1.3; }
body.lock{ overflow: hidden; }
.ptH{ padding-top: var(--headerH); }
.eng{ font-family: var(--engFont); }

.w1700{ max-width: 1700px; width: 100%; margin: 0 auto; }
.w1620{ max-width: 1620px; width: 100%; margin: 0 auto; }

.al_r {text-align:right;}

/* mousemove event */
.mm{ position: relative; overflow: hidden; z-index: 10; }
.mm .hover{ width: 0; height: 0; background: var(--gradient); border-radius: 50%; position: absolute; top: 0; left: 0; z-index: -1; transform: translate(-50%, -50%); transition: width 1s, height 1s; }

@media screen and (hover: hover){
	/* mousemove event */
	.mm:hover .hover{ width: 100vw; height: 100vw; }
}

@media screen and (max-width: 1740px){
	.w1700{ padding: 0 20px; }
}

@media screen and (max-width: 1660px){
	.w1620{ padding: 0 20px; }
}

@media screen and (max-width: 1350px){
	:root{
		--headerH: 85px;
	}
}

@media screen and (max-width: 1280px){
	:root{
		--headerH: 70px;
		--aosPlus: 50px;
		--aosMinus: -50px;
	}
}

@media screen and (max-width: 1200px) and (hover: hover){
	/* mousemove event */
	.mm:hover .hover{ width: 200vw; height: 200vw; }
}

/* 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 .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: 999; }
#header::before{ content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
#header .flex-box{ height: var(--headerH); display: flex; justify-content: space-between; align-items: center; }
#header .logo{ display: inline-block; position: relative; z-index: 20; }
#header .logo img{ width: auto; }
#header .logo a{ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 10; }

#header nav{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.2); backdrop-filter: blur(0); -webkit-backdrop-filter: blur(0); transition: background 0.5s, border 0.5s, backdrop-filter 0.5s; }
#header nav a{ display: inline-block; }

#header .depth01{ display: flex; justify-content: center; opacity: 1; transition: opacity 0.5s; }
#header .depth01 > li > a{ height: var(--headerH); display: flex; justify-content: center; align-items: center; font-family: var(--engFont); font-size: 1.8rem; font-weight: 600; color: #fff; padding: 0 35px; transition: color 0.5s; }
#header .depth01 > li.target span{ display: inline-block; width: 12px; height: 12px; margin-left: 7px; position: relative; opacity: 1; filter: invert(0); -webkit-filter: invert(0); transition: opacity 0.5s, filter 0.5s; }
#header .depth01 > li.target span::before, #header .depth01 > li.target span::after{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
#header .depth01 > li.target span::before{ content: url("/img/common/target_icon.svg"); opacity: 1; filter: invert(0); -webkit-filter: invert(0); transition: filter 0.5s, opacity 0.5s; }
#header .depth01 > li.target span::after{ content: url("/img/common/target_icon_on.svg"); opacity: 0; transition: opacity 0.5s; }

#header .depth-wrap{ width: 100vw; padding-top: var(--headerH); background: #fff; border-bottom: 1px solid #DDD; clip-path: inset(var(--headerH) 0 0 0); position: absolute; top: 0; left: 50%; z-index: -1; transform: translateX(-50%); display: none; }
#header .depth02{ width: auto; display: flex; justify-content: center; padding: 15px 0; margin: 0 auto; }
#header .depth02 > li:not(:last-of-type){ margin-right: 70px; }
#header .depth02 a{ font-size: 1.8rem; letter-spacing: -0.02em; transform: translateY(100%); clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); transition: transform 0.8s 0.3s, clip-path 0.8s 0.3s, color 0.5s; }
#header .depth02 > li > a{ font-weight: 500; color: #333; padding: 15px 10px; }

#header .depth03{ padding-bottom: 5px; }
#header .depth03 > li > a{ width: 100%; font-weight: 400; color: #666; padding: 10px; }

#header .right{ display: flex; align-items: center; position: relative; z-index: 20; }

#header .lang{ width: 65px; border: 1px solid #fff; border-radius: 38px; padding: 0 10px; margin-right: 10px; opacity: 1; transition: border 0.5s, width 0.5s, opacity 0.5s; }
#header .lang ul{ display: flex; overflow: hidden; }
#header .lang ul li{ position: relative; }
#header .lang ul li.on::before{ content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 10; }
#header .lang ul li::after{ content: ""; width: 1px; height: 4px; background: #C7C7C7; border-radius: 50px; position: absolute; top: 50%; right: 0; transform: translate(100%, -50%); }
#header .lang ul li:last-of-type::after{ display: none; }
#header .lang ul li a{ display: inline-block; font-family: var(--engFont); font-size: 1.6rem; font-weight: 600; color: #fff; padding: 8px 10px; transition: color 0.5s; }

#header .lang.on{ width: 110px; }
#header .lang ul li:hover a{ color: var(--mainColor) !important; }

#header .menu{ background: none; border: none; padding: 20px; margin-right: -20px; overflow: hidden; }
#header .menu span{ display: inline-block; width: 22px; height: 2px; background: #fff; border-radius: 50px; vertical-align: middle; position: relative; transition: background 0.5s, transform 0.5s; }
#header .menu span::before, #header .menu span::after{ content: ""; width: 100%; height: 100%; background: #fff; border-radius: inherit; position: absolute; left: 0; transition: background 0.5s, transform 0.5s, top 0.5s; }
#header .menu span::before{ top: -7px; }
#header .menu span::after{ top: 7px; }

/* header - scroll */
#header.scroll nav{ background: #fff; border-bottom: 1px solid #DDD; }
#header.scroll .depth01 > li > a{ color: #9E9E9E; }
#header.scroll .depth01 > li.target span::before{ filter: invert(0.4); }
#header.scroll .lang{ border: 1px solid #111; }
#header.scroll .lang ul li a{ color: #111; }
#header.scroll .menu span, #header.scroll .menu span::before, #header.scroll .menu span::after{ background: #111; }

/* header - black */
#header.black nav{ background: rgba(0, 0, 0, 0.5); border-bottom: 1px solid rgba(255, 255, 255, 0.2); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }

/* header - transparent */
#header.transparent nav{ background: transparent; border-bottom: 1px solid #DDD; }

/* header - hover */
#header.hover nav{ background: #fff; border-bottom: 1px solid #DDD; transition-delay: unset; }
#header.hover .depth01 > li > a{ color: #9E9E9E; }
#header.hover .depth01 > li.target span::before{ filter: invert(0.4); }
#header.hover .lang{ border: 1px solid #111; }
#header.hover .lang ul li a{ color: #111; }
#header.hover .menu span, #header.hover .menu span::before, #header.hover .menu span::after{ background: #111; }

#header .depth01 > li:hover > a{ color: #111; }
#header.hover .depth01 > li.target:hover > a{ color: var(--mainColor); }
#header.hover .depth01 > li.target:hover span::before{ opacity: 0; }
#header.hover .depth01 > li.target:hover span::after{ opacity: 1; }
#header.hover .depth01 > li:hover .depth02 a{ transform: translateY(0); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
#header .depth02 > li > a:hover{ color: var(--mainColor); }
#header .depth03 > li:hover > a{ color: var(--mainColor); }

@media screen and (max-width: 1700px){
	#header .depth01{ margin-left: 100px; }
}

@media screen and (max-width: 1500px){
	#header .depth01 > li > a{ padding: 0 20px; }
}

@media screen and (max-width: 1350px){
	#header nav .depth01{ display: none; }
}

@media screen and (max-width: 1200px){
	#header .logo img{ height: 28px; }
	#header .lang{ margin-right: 0; }
}

/* menu */
#menu{ width: 100%; height: 100%; background: #fff; position: fixed; top: 0; left: 0; z-index: 990; overflow: hidden; display: none; }
#menu .mobile{ display: none; }
#menu .nav{ height: calc(100% - var(--headerH)); overflow-x: clip; overflow-y: scroll; scrollbar-width: none; }
#menu .nav::-webkit-scrollbar{ display: none; }
#menu .nav a{ display: inline-block; line-height: 1.3; }

#menu .depth01 > li{ display: flex; align-items: baseline; padding: 20px 0; position: relative; }
#menu .depth01 > li::after{ content: ""; width: 100%; height: 1px; background: #ECECEC; position: absolute; bottom: 0; left: 0; transform: scaleX(0); transform-origin: left; transition: transform 2s 0.5s; }
#menu .depth01 > li:last-of-type::after{ display: none; }
#menu .depth01 > li > a{ width: 310px; font-family: var(--engFont); font-size: 3rem; font-weight: 700; color: #111; letter-spacing: -0.02em; padding: 20px 0; transform: translateX(-100px); opacity: 0; transition: transform 1s 0.5s, opacity 1s 0.5s; }
#menu .depth01 > li.target > a span::after{ content: url("/img/common/menu_target_icon.svg"); }

#menu .depth02{ width: calc(100% - 310px); display: flex; }
#menu .depth02 a{ font-size: 1.8rem; letter-spacing: -0.02em; }
#menu .depth02 > li{  transform: translateX(100px); opacity: 0; transition: transform 1s, opacity 1s; }
#menu .depth02 > li > a{ font-weight: 600; color: #333;padding: 13px 0; padding-right: 120px !important; }

#menu .depth03{ padding-bottom: 13px; }
#menu .depth03 > li > a{ width: 100%;  font-weight: 400; color: #666; padding: 7px 0; transition: color 0.5s; }

/* body - open */
.open{ overflow: hidden; }
.open #header nav{ background: #fff !important; border-bottom: 1px solid #DDD; }
.open #header .depth01{ opacity: 0; pointer-events: none; }
.open #header .depth01 > li.target span::before{ filter: invert(0.4); }
.open #header .lang{ opacity: 0; pointer-events: none; }
.open #header .menu span, .open #header .menu span::before, .open #header .menu span::after{ background: #111; }
.open #header .menu span{ transform: translateX(100px); }
.open #header .menu span::before, .open #header .menu span::after{ top: 0; }
.open #header .menu span::before{ transform: translateX(-100px) rotate(45deg); }
.open #header .menu span::after{ transform: translateX(-100px) rotate(-45deg); }

.open #menu .depth01 > li::after{ transform: scaleX(1); }
.open #menu .depth01 > li > a{ transform: translateX(0); opacity: 1; }
.open #menu .depth02 > li{ transform: translateX(0); opacity: 1; }

@media screen and (hover: hover){
	#menu .depth03 > li:hover a{ color: var(--mainColor); }
}

@media screen and (max-width: 1700px){
	#menu .depth01 > li{ padding: 0; }
	#menu .depth01 > li > a{ width: 200px; font-size: 2.6rem; }
	#menu .depth02{ width: calc(100% - 200px); }
	#menu .depth02 > li > a{ padding: 10px 0; }
	#menu .depth03{ padding-bottom: 10px; }
}

@media screen and (max-width: 1600px){
	#menu .depth01 > li{ display: block; } 
	#menu .depth01 > li > a{ width: 100%; }
	#menu .depth02{ width: 100%; }
	#menu .depth02{ padding-bottom: 10px; }
	#menu .depth03{ padding-bottom: 3px; }
}

@media screen and (max-width: 1400px){
	#menu .depth01 > li > a{ font-size: 2.4rem; }
	#menu .depth01 > li.target > a span::after{ display: inline-block; transform: translateY(1px) scale(0.8); transform-origin: left; }
	#menu .depth02 a{ font-size: 1.6rem; } 
	#menu .depth02 > li > a{ padding-right: 100px !important; }
}

@media screen and (max-width: 1200px){
	#menu .pc{ display: none; }
	#menu .mobile{ display: block; }

	#menu .depth01 > li{ padding: 0; }
	#menu .depth01 > li:last-of-type::after{ display: block; }
	#menu .depth01 > li > a{ padding: 20px 0; }
	#menu .depth02{ display: none; border-top: 1px solid #ECECEC; padding: 10px 0; }
	#menu .depth02 a{ font-size: 1.8rem; } 
	#menu .depth02 > li > a{ width: 100%; padding: 10px 15px; padding-right: 15px !important; position: relative; }
	#menu .depth02 > li.depth > a::after{ content: url("/img/common/depth_arrow.svg"); position: absolute; top: 50%; right: 20px; transform: translateY(-50%); transition: transform 0.5s; }
	#menu .depth02 > li.depth.on > a::after{ transform: translateY(-50%) rotate(-180deg); }
	#menu .depth03{ display: none; background: var(--mainColor); padding: 5px 0; border-radius: 5px; }
	#menu .depth03 > li > a{ color: #fff !important; padding: 10px 15px; }
}


/* footer */
#footer{ background: #161616; padding: 70px 0 60px; position: relative; z-index: 100; }
#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 .certify{ margin-top: 20px; }
#footer .certify ul{ display: flex; align-items: center; margin: -15px; }
#footer .certify ul li{ padding: 15px; }

#footer .dl{ margin-top: 50px; }
#footer .dl dl dt{ font-size: 1.7rem; font-weight: 600; color: #E4E4E4; margin-bottom: 20px; }
#footer .dl dl dd{ display: flex; flex-wrap: wrap; gap: 5px 10px; font-size: 1.6rem; font-weight: 300; opacity: 0.5; }
#footer .dl dl dd:not(:last-of-type){ margin-bottom: 10px; }

#footer .nav{ margin-top: -15px; }
#footer .nav a{ display: block; line-height: 1.3; }
#footer .nav .depth01{ display: flex; }
#footer .nav .depth01 > li{ width: 170px; }
#footer .nav .depth01 > li > a{ font-family: var(--engFont); font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; padding: 15px 0; }
#footer .nav .depth01 > li.target span{ display: inline-block; width: 12px; height: 12px; background: url("/img/common/target_icon.svg") no-repeat center center / auto; margin-left: 5px; position: relative; top: -1px; }
#footer .nav .depth02 > li > a{ font-size: 1.6rem; font-weight: 300; letter-spacing: -0.02em; opacity: 0.5; padding: 5px 0; }
#footer .nav .depth03{ display: none; }

#footer .line02{ margin-top: 45px; }
#footer .line02 .flex-box{ align-items: center; }

#footer .link{ display: flex; }
#footer .link li{ position: relative; border-radius: 5px; }
#footer .link li:not(:last-of-type){ margin-right: 10px; }
#footer .link li::before{ content: ""; width: 100%; height: 100%; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: inherit; box-sizing: border-box; position: absolute; top: 0; left: 0; z-index: -1; }
#footer .link li a,
#footer .link li button{ display: flex; justify-content: center; align-items: center; background: none; border: none; font-size: 1.6rem; font-weight: 500; line-height: 1.3; opacity: 0.7; padding: 15px 25px; transition: opacity 1s; } 
#footer .link li button{ font-family: var(--engFont); }
#footer .link li i{ display: inline-block; width: 16px; height: 16px; background: url("/img/common/familysite.svg") no-repeat center center / contain; margin-left: 10px; transform: translateY(-1px); }

#footer .copyright{ font-family: var(--engFont); font-size: 1.6rem; font-weight: 400; color: #555; }

@media screen and (hover: hover){
	#footer .link li:hover a,
	#footer .link li:hover button{ opacity: 1; }
}

@media screen and (max-width: 1700px){
	#footer .nav .depth01 > li{ width: 150px; }
}

@media screen and (max-width: 1550px){
	#footer{ padding: 50px 0 30px; }

	#footer .nav .depth01 > li{ width: 130px; }
	#footer .nav .depth01 > li > a{ font-size: 1.8rem; }
	#footer .nav .depth02 > li > a{ font-size: 1.5rem; }
}

@media screen and (max-width: 1450px){
	#footer .nav{ display: none; }

	#footer .dl{ margin-top: 30px; }
	#footer .line02{ margin-top: 30px; }
}

@media screen and (max-width: 1000px){
	#footer .line02 .flex-box{ flex-direction: column; align-items: flex-start; }

	#footer .link li a,
	#footer .link li button{ font-size: 1.5rem; padding: 12px 18px; }

	#footer .copyright{ font-size: 1.5rem; margin-top: 20px; }
}


/* familysite */
#familysite{ width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); padding: 30px 20px; position: fixed; top: 0; left: 0; z-index: 1000; display: none; }
#familysite .blank{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
#familysite .inner{ max-width: 1840px; width: 100%; height: 100%; display: flex; flex-direction: column; background: #FFF; border-radius: 20px; margin: 0 auto; position: relative; z-index: 10; }

#familysite .tit{ display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid #CE712A; padding: 40px; }
#familysite .tit h5{ font-family: var(--engFont); font-size: 3rem; font-weight: 700; color: #CE712A; padding-left: 40px; }
#familysite .tit .close{ background: none; border: none; padding: 10px; margin: -10px; }

#familysite .content{ flex: 1 0 auto; max-height: calc(100% - 122px); overflow: overlay; }
#familysite .os-theme-dark > .os-scrollbar-vertical, 
#familysite .os-theme-light > .os-scrollbar-vertical{ width: 60px; padding: 25px; }
#familysite .os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle{ background: #EEE; cursor: pointer; }

#familysite .content dl:not(:last-child){ border-bottom: 1px solid #DDD; }
#familysite dl{ display: grid; grid-template-columns: 420px calc(100% - 420px); align-items: baseline; padding: 70px 80px; }
#familysite dl dt{ font-size: 3.6rem; font-weight: 700; color: #333; letter-spacing: -0.02em; }
#familysite dl dd ul{ display: grid; grid-template-columns: repeat(4, 25%); margin: -20px -10px; }
#familysite dl dd a{ display: block; font-family: var(--engFont); font-size: 2rem; font-weight: 500; color: #555; line-height: 1.3; letter-spacing: -0.02em; padding: 20px 10px; }

@media screen and (max-width: 1700px){
	#familysite .tit{ padding: 30px; }
	#familysite .tit h5{ font-size: 2.6rem; padding-left: 20px; }

	#familysite .content{ max-height: calc(100% - 102px); }
	#familysite dl{ grid-template-columns: 350px calc(100% - 350px); padding: 40px 50px; }
	#familysite dl dt{ font-size: 3rem; }
	#familysite dl dd a{ font-size: 1.8rem; }
}

@media screen and (max-width: 1280px){
	#familysite .tit{ padding: 25px; }
	#familysite .tit h5{ font-size: 2.3rem; padding-left: 0; }
	#familysite .tit .close img{ width: 30px; }

	#familysite .content{ max-height: calc(100% - 82px); }
	#familysite .os-theme-dark > .os-scrollbar-vertical, 
	#familysite .os-theme-light > .os-scrollbar-vertical{ width: 30px; padding: 12px; }

	#familysite dl{ grid-template-columns: 280px calc(100% - 280px); padding: 30px 25px; }
	#familysite dl dt{ font-size: 2.6rem; }
	#familysite dl dd ul{ grid-template-columns: repeat(3, calc(100% / 3)); margin: -10px; }
	#familysite dl dd a{ font-size: 1.7rem; padding: 10px; }
}

@media screen and (max-width: 1000px){
	#familysite dl{ display: block; }
	#familysite dl dt{ margin-bottom: 20px; }
}

@media screen and (max-width: 900px){
	#familysite .tit{ padding: 20px; }
	#familysite .tit h5{ font-size: 2rem; }

	#familysite .content{ max-height: calc(100% - 72px); }

	#familysite dl{ padding: 20px; }
	#familysite dl dt{ font-size: 2.3rem; }
	#familysite dl dd ul{ grid-template-columns: repeat(2, 50%); }
}

@media screen and (max-width: 600px){
	#familysite dl dd ul{ display: block; }
}


/* top */
#top{ width: 60px; height: 60px; background: rgba(255, 255, 255, 0.1); border: 1px solid #CCC; border-radius: 50%; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 0 20px rgba(0, 0, 0, 0.08); position: fixed; bottom: 40px; right: 30px; z-index: 900; opacity: 1; transition: opacity 0.5s; }
#top.opacity{ opacity: 0; pointer-events: none; }

@media screen and (max-width: 1280px){
	#top{ width: 55px; height: 55px; right: 20px; }
}