@charset 'utf-8';

/* ���� */
:root{
    --baseFont: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	 --NanumEB: 'NanumMyeongjoExtraBold', 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	 --NanumB: 'NanumMyeongjoBold', 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	 --Nanum: 'NanumMyeongjo', 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana', sans-serif;
	--engFont: "Cormorant", serif;
	--headerH: 80px;
	--baseBg: #F5F3EC;
	--beigeBg: #ECE9E1;
	--mainColor: #231815;
}

body{ background: var(--baseBg); }
body.lock{ overflow: hidden; }
.w1920{ max-width: 1920px; width: 100%; margin: 0 auto; }
.w1700{ max-width: 1700px; width: 100%; margin: 0 auto; }

@media screen and (max-width: 1740px){
	:root{
		--headerH: 75px;
	}

	.w1700{ padding: 0 20px; }
}

@media screen and (max-width: 1280px){
	:root{
		--headerH: 70px;
	}
}

/* privacy */
.privacy *{ font-size: 1.6rem; line-height: 1.625; color: #111; }
.privacy h3 { font-weight: 700; }
.privacy h4{ font-size: 2.2rem; font-weight: 700; margin-bottom: 10px; }
.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 .subTextBox{ margin: 5px 0; }

.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{ color: #333; }
.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 .dot { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; gap: 0 5px; position: relative; padding-left: 12px; }
.privacy .dot::before { content: "·"; position: absolute; top: 0; left: 0; }
.privacy .dot > 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; color: #333; }

.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; margin: 20px 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%; background: transparent; position: fixed; top: 0; left: 0; z-index: 999; transition: background 0.4s, transform 0.4s; }
#header::after{ content: ""; width: 1700px; height: 1px; background: #FFF; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); pointer-events: none; transition: width 0.4s, background 0.4s; }
#header .flex-box{ display: flex; justify-content: space-between; align-items: center; }
#header .flex-box > div{ display: flex; align-items: center; }
#header .txtL a{ text-align: left !important; }

#header h1{ margin-right: 63px; }
#header h1 img{ filter: invert(1); -webkit-filter: invert(1); transition: filter 0.4s; }

#header nav a{ line-height: 1.3; }
#header nav .all{ display: none; }
#header .depthBox{ min-width: 130px; width: max-content; padding-top: 10px; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); display: none; }

#header .depth01{ display: flex; }
#header .depth01 > li{ position: relative; }
#header .depth01 > li > a{ height: var(--headerH); display: flex; justify-content: center; align-items: center; font-size: 19px; font-weight: 500; color: #FFF; letter-spacing: -0.02em; padding: 0 27px; transition: color 0.4s; }

#header .depth02{ background: var(--baseBg); box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); padding: 13px 0; position: relative; }
#header .depth02 > li > .depthBox{ display: block; padding-top: 0; top: 0; left: 100%; z-index: -1; transform: translateY(25px); opacity: 0; transition: transform 0.5s, opacity 0.5s; pointer-events: none; }
#header .depth02 > li > a{ display: block; font-size: 18px; font-weight: 400; color: #111; letter-spacing: -0.02em; padding: 7px 20px; text-align: center; }
#header .depth02 .arrow::after{ content: ""; width: 13px; height: 9px; display: inline-block; background: url("/img/common/depth_arrow.svg") no-repeat center center / contain; vertical-align: middle; margin-left: 10px; transform: translateY(-2px) rotate(0); transition: transform 0.4s; }

#header .depth03{ background: var(--mainColor); padding: 13px 0; }
#header .depth03 > li > a{ display: block; font-size: 17px; font-weight: 300; color: rgba(255, 255, 255, 0.8); padding: 7px 20px; }

#header .depth02 > li.hover > .depthBox{ transform: translateY(0); opacity: 1; pointer-events: auto; }
#header .depth02 > li.hover > .arrow{ text-decoration: underline; text-underline-offset: 3px; } 
#header .depth02 > li.hover > .arrow::after{ transform: translateY(-2px) rotate(180deg); }


#header .header{ display: flex; margin-right: -12px; }
#header .header > div{ position: relative; }
#header .header button{ height: var(--headerH); background: none; border: none; padding: 12px; }
#header .header button img{ filter: invert(1); -webkit-filter: invert(1); transition: filter 0.4s; }

#header .lang .depthBox{ min-width: unset; }

#header .menu{ margin-left: 25px; }
#header .menu span{ display: inline-block; width: 25px; height: 1px; background: #FFF; vertical-align: middle; position: relative; transition: background 0.4s; }
#header .menu span::before,
#header .menu span::after{ content: ""; width: 100%; height: 100%; background: #FFF; position: absolute; left: 0; transition: background 0.4s; }
#header .menu span::before{ top: -7px; }
#header .menu span::after{ top: 7px; }

/* header - down */
#header.down{ transform: translateY(-100%); }

/* header - scroll */
#header.scroll{ background: var(--baseBg); }
#header.scroll::after{ width: 100%; background: var(--mainColor); }
#header.scroll h1 img{ filter: unset; -webkit-filter: unset; }
#header.scroll .depth01 > li > a{ color: var(--mainColor); }
#header.scroll .header button img{ filter: unset; -webkit-filter: unset; }
#header.scroll .menu span,
#header.scroll .menu span::before,
#header.scroll .menu span::after{ background: var(--mainColor); }

@media screen and (max-width: 1740px){
	#header::after{ width: calc(100% - 40px); }
}

@media screen and (max-width: 1700px){
	#header .depthBox{ min-width: 120px; }
	#header .depth01 > li > a{ font-size: 18px; }

	#header .depth02{ padding: 8px 0; }
	#header .depth02 > li > a{ font-size: 17px; padding: 7px 17px; }
	#header .depth02 .arrow::after{ width: 10px; }

	#header .depth03{ padding: 8px 0; }
	#header .depth03 > li > a{ padding: 7px 17px; }
}

@media screen and (max-width: 1200px){
	#header nav{ display: none; }
	#header .depth02{ padding: 8px 0; }
	#header .depth02 > li > a{ padding: 5px 15px; }

	#header .menu{ margin-left: 0; }
}


/* menu */
#menu{ width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 1000; display: none; }
#menu .blank{ width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); }
#menu .btn{ text-align: right; }
#menu .close{ height: var(--headerH); background: none; border: none; padding: 12px; position: relative; margin-right: -12px; }
#menu .close span{ display: inline-block; width: 25px; height: 1px; background: var(--mainColor); vertical-align: middle; transform: rotate(-45deg); }
#menu .close span:last-of-type{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg); }
#menu .inner{ max-width: 800px; width: 100%; height: 100%; background: var(--baseBg); padding-bottom: 65px; padding-left: 80px; position: absolute; top: 0; right: 0; transform: translateX(100%); transition: transform 0.5s; }

#menu .nav{ height: calc(100% - var(--headerH)); overflow-x: clip; overflow-y: auto;  -ms-overflow-style: none; scrollbar-width: none; }
#menu .nav a{ display: block; }
#menu .depthBox{ display: none; }
#menu .depthBox a{ padding-inline: 40px; }

#menu .depth01 > li > a{ font-size: 5.5rem; font-weight: 700; color: #111; padding: 40px 0; padding-right: 100px; border-bottom: 1px solid #111; position: relative; }
#menu .depth01 > li > a::after{ content: ""; width: 75px; height: 75px; background: url("/img/common/menu_after.svg") no-repeat center center / contain; position: absolute; top: 50%; right: 25px; transform: translateY(-50%); opacity: 0; transition: right 0.4s, opacity 0.4s; }
#menu .depth01 > li.on > a::after{ right: 0; opacity: 1; }

#menu .depth02{ background: var(--mainColor); padding: 10px 0; }
#menu .depth02 > li > a{ font-size: 18px; font-weight: 300; color: #FFF; padding-block: 10px; }
#menu .depth02 > li > a.arrow::after{ content: ""; display: inline-block; width: 13px; height: 9px; background: url("/img/common/depth_arrow.svg") no-repeat center center / contain; filter: invert(1); -webkit-filter: invert(1); transform: translateY(-2px) rotate(0); margin-left: 10px; transition: transform 0.4s; }
#menu .depth02 > li.on > a.arrow{ text-decoration: underline; text-underline-offset: 3px; }
#menu .depth02 > li.on > a.arrow::after{ transform: translateY(-2px) rotate(180deg); }

#menu .depth03{ background: #100B0A; padding: 10px 0; margin: 10px 0; }
#menu .depth03 > li > a{ font-size: 16px; font-weight: 300; color: #FFF; padding-block: 10px; }
#menu .depth02 > li:last-of-type .depth03{ margin-bottom: -10px; }

/* body - open */
body.open{ overflow: hidden; }
body.open #header{ transform: translateY(0); }
body.open #menu .inner{ transform: translateX(0); transition-delay: 0.5s; }

@media screen and (max-width: 1740px){
	#menu .inner{ padding-right: 20px !important; }
}

@media screen and (max-width: 1700px){
	#menu .inner{ padding-left: 50px; padding-bottom: 50px; }
	#menu .depthBox a{ padding-inline: 30px; }

	#menu .depth01 > li > a{ font-size: 4.5rem; padding: 30px 0; }
	#menu .depth01 > li > a::after{ width: 60px; height: 60px; }
}

@media screen and (max-width: 1280px){
	#menu .inner{ padding-left: 30px; padding-bottom: 30px; }
	#menu .depthBox a{ padding-inline: 20px; }

	#menu .depth01 > li > a{ font-size: 3.5rem; padding: 20px 0; }
	#menu .depth01 > li > a::after{ width: 50px; height: 50px; }
}

@media screen and (max-width: 900px){
	#menu .inner{ padding-left: 20px; }
	#menu .depth01 > li > a{ font-size: 3rem; }
}


/* search */
#search{ width: 100%; height: 100vh; position: fixed; top: 0; left: 0; z-index: 900; display: none; }
#search .blank{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
#search .inner{ background: var(--baseBg); box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); padding-top: var(--headerH); position: relative; z-index: 10; display: none; }
#search form{ padding: 95px 0 60px; }
#search .input{ max-width: 800px; width: 100%; margin: 0 auto; position: relative; }
#search .input input{ width: 100%; font-family: var(--baseFont); font-size: 2rem; font-weight: 400; color: #111; letter-spacing: -0.02em; padding: 20px; padding-right: 45px; padding-left: 0 !important; background: var(--baseBg); border: none; border-bottom: 1px solid #111; border-radius: 0; -webkit-border-radius: 0; outline: none; }
#search .input input::placeholder{ color: #111; }
#search .input button{ height: 100%; position: absolute; bottom: 0; right: -20px; padding: 0 20px; }


body.search #header{ background: var(--baseBg); transform: translateY(0); }
body.search #header::after{ width: 100%; background: var(--mainColor); }
body.search #header h1 img{ filter: unset; -webkit-filter: unset; }
body.search #header .depth01 > li > a{ color: var(--mainColor); }
body.search #header .header button img{ filter: unset; -webkit-filter: unset; }
body.search #header .menu span,
body.search #header .menu span::before,
body.search #header .menu span::after{ background: var(--mainColor); }

@media screen and (max-width: 1700px){
	#search form{ padding: 70px 0 50px; }
	#search .input input{ font-size: 1.9rem; }
}

@media screen and (max-width: 1280px){
	#search form{ padding: 50px 0 40px; }
	#search .input input{ font-size: 1.8rem; padding: 10px; padding-right: 35px; }
	#search .input button img{ width: 18px; margin-top: -3px; }
}

@media screen and (max-width: 900px){
	#search form{ padding: 35px 0 25px; }
	#search .input input{ font-size: 1.7rem; }
}


/* footer */
#footer{
	--border: rgba(255, 255, 255, 0.13);
}
#footer{ background: #121212; overflow: hidden; }
#footer *{ color: #FFF; }
#footer h2{ font-size: 3rem; font-weight: 500; letter-spacing: -0.02em; margin-bottom: 70px; }

#footer .grid-box{ display: grid; grid-template-columns: 51.5% 48.5%; }
#footer .grid-box > *{ position: relative; }
#footer .item01,
#footer .item02{ padding-block: 115px 60px; }
#footer .item03,
#footer .item04{ padding-block: 50px; }
#footer .item02,
#footer .item03{ padding-left: 70px; border-left: 1px solid var(--border); }

#footer .item01{ padding-right: 70px; }
#footer .item02{ display: flex; flex-direction: column; padding-right: 50px; }
#footer .item03{ order: 4; display: flex; justify-content: space-between; align-items: center; }
#footer .item03::before{ content: ""; width: 100vw; height: 1px; background: var(--border); position: absolute; top: 0; left: 1px; }
#footer .item04{ order: 3; display: flex; align-items: center; }

#footer .depth01{ display: flex; justify-content: space-between; }
#footer .depth01 a{ display: block; line-height: 1.3; }
#footer .depth01 .all{ display: none; }
#footer .depth01 > li:not(:last-of-type){ margin-right: 20px; }
#footer .depth01 > li > a{ font-size: 20px; font-weight: 600; padding: 8px 0; }

#footer .depth02 > li > a{ font-size: 16px; font-weight: 300; color: rgba(255, 255, 255, 0.7); padding: 6px 0; }

#footer .depth03{ margin: 9px 0; }
#footer .depth03 > li > a{ font-size: 15px; font-weight: 300; color: rgba(255, 255, 255, 0.5); padding: 5px 0; }

#footer address{ flex: 1 0 auto; margin-bottom: 30px; }
#footer address dl{ display: grid; grid-template-columns: 115px calc(100% - 115px); font-size: 17px; }
#footer address dl:not(:last-of-type){ margin-bottom: 15px; }
#footer address dt{ font-weight: 400; }
#footer address dd{ font-weight: 200; }

#footer .policy ul{ display: flex; margin: -7px -14px; }
#footer .policy ul li a{ display: block; font-size: 17px; font-weight: 400; padding: 7px 14px; }

#footer .sns ul{ display: flex; margin: -20px; }
#footer .sns ul li a{ display: block; padding: 20px; }

#footer .copyright{ font-size: 14px; font-weight: 300; color: rgba(255, 255, 255, 0.3); }


/* top */
#top{ background: none; border: none; font-family: var(--engFont); font-size: 17px; font-weight: 500; writing-mode: sideways-rl; padding: 20px; padding-top: 70px; position: absolute; top: 115px; right: -20px; outline: none; }
#top::before{ content: url("/img/common/top_icon.svg"); position: absolute; top: 0; left: 47%; transform: translateX(-50%); animation: topArrow 1.3s linear infinite; }

@keyframes topArrow{
	0%{ top: 20px; }
	50%{ top: 5px; }
	100%{ top: 20px; }
}

@media screen and (max-width: 1700px){
	#footer .grid-box{ grid-template-columns: 60% 40%; }
	#footer .item01,
	#footer .item02{ padding-block: 70px 50px; }
	#footer .item03,
	#footer .item04{ padding-block: 35px; }
	#footer .item02,
	#footer .item03{ padding-left: 35px; }

	#footer .item01{ padding-right: 35px; }

	#footer h2{ font-size: 2.6rem; margin-bottom: 40px; }

	#footer .depth01 > li > a{ font-size: 18px; }

	#footer .sns ul{  margin: -15px; }
	#footer .sns ul li a{ padding: 15px; }

	/* top */
	#top{ top: 70px; }
}

@media screen and (max-width: 1280px){
	#footer .grid-box{ grid-template-columns: 60% 40%; }
	#footer .item01,
	#footer .item02{ padding-block: 40px 30px; }
	#footer .item03,
	#footer .item04{ padding-block: 20px; }
	#footer .item02,
	#footer .item03{ padding-left: 25px; }

	#footer .item01{ padding-right: 25px; }

	#footer h2{ font-size: 2.2rem; margin-bottom: 30px; }

	#footer .depth01 > li > a{ font-size: 17px; }

	#footer address dl{ grid-template-columns: 100px calc(100% - 100px); font-size: 16px; }
	#footer address dl:not(:last-of-type){ margin-bottom: 10px; } 

	#footer .policy ul li a{ font-size: 16px; }

	/* top */
	#top{ top: 40px; }
}

@media screen and (max-width: 1200px){
	#footer{ position: relative; }
	#footer .grid-box{ grid-template-columns: repeat(1, 100%); }
	#footer .item{ position: static; }
	#footer .item02,
	#footer .item03{ padding-left: 0; border-left: none; }

	#footer .item01{ padding-right: 0; padding-bottom: 0; }
	#footer .item02{ padding-block: 20px 30px; }
	#footer .item03{ order: 3; text-align: center; position: relative; margin-inline: -20px; }
	#footer .item03::before{ left: -20px; }
	#footer .item03::after{ content: ""; width: 100vw; height: 1px; background: var(--border); position: absolute; bottom: 0; left: -20px; }
	#footer .item03 > *{ width: 50%; position: relative; }
	#footer .item03 > *::after{ content: ""; width: 1px; height: calc(100% + 40px); background: var(--border); position: absolute; top: -20px; left: 0; }
	#footer .item03 > *:first-child::after{ display: none; }
	#footer .item04{ order: 4; }

	#footer nav{ display: none; }
	#footer h2{ margin-bottom: 0; }

	#footer .sns ul{ justify-content: space-evenly; margin: 0; }

	/* top */
	#top{ top: 25px; right: 0; }
}