/* common */
main{
	--innerPadding: 64px;
}
main{ overflow: hidden; }
.ptH{ padding-top: var(--headerH); }
.w1600{ max-width: calc(1600px + (var(--innerPadding) * 2)); padding: 0 var(--innerPadding); }


/* sec-title */
.sec-title{ text-align: center; margin-bottom: 50px; }
.sec-title h3{ font-family: var(--engFont); font-size: 7rem; font-weight: 500; color: #000; letter-spacing: -0.02em; }


/* nav */
#nav{ text-align: right; position: fixed; top: 50%; left: 0; right: 0; z-index: 800; transform: translateY(-50%); pointer-events: none; }

#fp-nav{ max-width: 1860px; width: 100%; text-align: right; padding: 0 20px; top: 50%; left: 50%; right: unset !important; transform: translate(-50%, -50%); margin: 0 !important; pointer-events: none; }
#fp-nav ul{ display: inline-flex; flex-direction: column; align-items: center; pointer-events: auto; }
#fp-nav ul li{ width: auto !important; height: auto !important; display: inline-flex; margin: 0 !important; position: relative; }
#fp-nav ul li:not(:first-of-type){ margin-top: 20px !important; }
#fp-nav ul li:last-of-type{ display: none; }
#fp-nav ul li a{ display: inline-block; width: 8px; height: 8px; background: rgba(255, 255, 255, 0.3); transition: background 0.4s; }
#fp-nav ul li a span{ display: none; }

#fp-nav ul li:first-of-type{ padding-bottom: 50px; }
#fp-nav ul li:first-of-type::after{ content: ""; width: 2px; height: 30px; background: rgba(255, 255, 255, 0.3); position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); transition: background 0.4s; }
#fp-nav ul li:first-of-type a{ width: 24px; height: 24px; background: url("/img/main/icon_nav_home.svg") no-repeat center center / contain !important; filter: invert(1); -webkit-filter: invert(1); opacity: 0.3; transition: filter 0.4s, opacity 0.3s; }

#fp-nav ul li a.active{ background: #FFF; }
#fp-nav ul li:first-of-type a.active{ opacity: 1; }

#fp-nav.color ul li a{ background: rgba(17, 17, 17, 0.3); }
#fp-nav.color ul li:first-of-type::after{ background: rgba(17, 17, 17, 0.3); }
#fp-nav.color ul li:first-of-type a{ filter: unset; -webkit-filter: unset; }
#fp-nav.color ul li a.active{ background: var(--mainColor); }

#fp-nav.opacity{ opacity: 0; }
#fp-nav.opacity{ pointer-events: none; }


@media screen and (max-height: 700px){
	/* common */
	main{
		--innerPadding: 20px;
	}
	.ptH{ display: none; }
}

@media screen and (max-width: 1728px){
	/* common */
	main{
		--innerPadding: 48px;
	}

	/* nav */
	#fp-nav{ padding: 0 12px; }
}

@media screen and (max-width: 1700px){
	/* sec-title */
	.sec-title h3{ font-size: 6.5rem; }
}

@media screen and (max-width: 1280px){
	/* sec-title */
	.sec-title{ margin-bottom: 35px; }
	.sec-title h3{ font-size: 6rem; }
}

@media screen and (max-width: 1024px){
	/* common */
	main{
		--innerPadding: 20px;
	}
	.ptH{ display: none; }
}


/* visual */
#visual{
	--square: 60px;
	--iconH: 24px;
	--rgba: rgba(255, 255, 255, 0.2);
}
#visual{ position: relative; overflow: hidden; }
#visual .visual{ max-height: 100svh; height: 100vh; position: relative; }
#visual .visual video{ 
	min-height: 110vh;
	min-width: 177.77vh; /* Given a 16:9 aspect ratio, 16/9*100 = 177.77 */
	width: 100vw;
	height: 60vw; /* Given a 16:9 aspect ratio, 9/16*100 = 56.25 */
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%); 
	pointer-events: none;
}

#visual .cover{ padding-bottom: 60px; position: absolute; bottom: 0; left: 0; right: 0; z-index: 10; }
#visual .cover .inner{ padding: 0 30px; }
#visual .cover .flex-box{ display: flex; justify-content: space-between; align-items: center; margin-top: 40px; }


#visual .txt-wrap,
#visual .txt-wrap .slick-list{ overflow: visible; }
#visual .txt{ opacity: 1 !important; }
#visual .txt h2{ font-family: var(--engFont); font-size: 11rem; font-weight: 600; color: #FFF; letter-spacing: -0.02em; line-height: 1.2; opacity: 0; transform: translateX(var(--x)); transition: opacity var(--aosT), transform var(--aosT); transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1); }
#visual .txt h2:first-of-type{ --x: 30%; }
#visual .txt h2:last-of-type{ --x: -30%; }
#visual .txt.animated h2{ opacity: 1; transform: translateX(0); }
#visual .txt.hidden h2{ opacity: 0; transform: translateX(calc(var(--x) * -1)); }

#visual .btns{ display: flex; }
#visual .btns button{ width: var(--square); height: var(--square); display: inline-flex; justify-content: center; align-items: center; background: var(--rgba); border: none; padding: 0; transition: background 0.4s; }
#visual .btns button:not(:last-of-type){ margin-right: 10px; }
#visual .btns button i{ width: var(--iconH); height: var(--iconH); display: block; position: relative; overflow: hidden; }
#visual .btns button i::before,
#visual .btns button i::after{ content: ""; width: 100%; height: 100%; display: inline-block; background: url("/img/main/icon_btns_arrow.svg") no-repeat center center / contain; filter: brightness(20); -webkit-filter: brightness(20); transition: filter 0.4s, transform 0.4s, left 0.4s; }
#visual .btns button i::before{ transform: translateX(0); }
#visual .btns button i::after{ position: absolute; top: 0; left: -8px; transform: translateX(-100%); }
#visual .btns .prev i{ transform: scaleX(-1); }

#visual .scrolldown{ width: var(--square); height: var(--square); background: var(--rgba); display: inline-flex; justify-content: center; align-items: center; }
#visual .scrolldown div{ display: flex; position: relative; overflow: hidden; }
#visual .scrolldown i{ display: inline-block; }
#visual .scrolldown i:first-of-type{ position: relative; top: 0; transform: translateY(0); animation: scrollDown01 2.5s infinite; }
#visual .scrolldown i:last-of-type{ position: absolute; top: -8px; left: 0; transform: translateY(-100%); animation: scrollDown02 2.5s infinite; }
#visual .scrolldown i::before{ content: ""; width: var(--iconH); height: var(--iconH); display: block; background: url("/img/main/icon_btns_arrow.svg") no-repeat center center / contain; transform: rotate(90deg); filter: invert(1); filter: brightness(20); -webkit-filter: brightness(20); }

@media screen and (hover: hover) and (pointer: fine){
	#visual .btns button:hover{ background: #FFF; }
	#visual .btns button:hover i::before,
	#visual .btns button:hover i::after{ filter: unset; -webkit-filter: unset; }
	#visual .btns button:hover i::before{ transform: translateX(100%); }
	#visual .btns button:hover i::after{ left: 0; transform: translateX(0); }
}

@media screen and (max-width: 1700px){
	#visual{
		--square: 55px;
		--iconH: 22px;
	}
}

@media screen and (max-width: 1280px){
	#visual{
		--square: 50px;
		--iconH: 20px;
	}
	#visual .cover .inner{ padding: 0 15px; }
	#visual .txt h2{ font-size: 9rem; }
}

@media screen and (max-width: 900px){
	#visual .cover .inner{ padding: 0; }
	#visual .txt h2{ font-size: 7.5rem; }
}


/* product */
#product .fade{ opacity: 1; transition-timing-function: var(--aosTF); }
#product .product-wrap,
#product .product-wrap .slick-list{ overflow: visible; }
#product .product-wrap{ margin-top: -20px; position: relative; }
#product .product-wrap .slick-list{ margin-right: -20px; }
#product .product{ padding-top: 20px; margin-right: 20px; position: relative; }
#product .product::after{ content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
#product .product a{ display: block; background: #F5F5F5; position: relative; transform: translateY(0); transition: background 0.4s, transform 0.4s; will-change: background, transform; }
#product .product .txt{ display: flex; flex-direction: column; text-align: right; padding: 40px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 10; }
#product .product .txt h6{ flex: 1 0 auto; font-family: var(--engFont); font-size: 36px; font-weight: 500; color: #333; letter-spacing: -0.01em; margin-bottom: 40px; transition: color 0.4s; }
#product .product .txt i{ display: block; }
#product .product .txt i::before{ content: ""; width: 24px; height: 24px; display: inline-block; background: url("/img/main/icon_plus.svg") no-repeat center center / contain; transform: rotate(0); transition: filter 0.4s, transform 0.4s; }
#product .product figure{ display: block; padding-bottom: 100%; position: relative; overflow: hidden; }
#product .product figure img{ width: 100%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

#product .slick-dots{ display: flex; justify-content: center; margin-top: 20px; }
#product .slick-dots li{ width: 10px; height: 10px; border: 2px solid var(--mainColor); cursor: pointer; transition: width 0.4s, background 0.4s; will-change: width, background; }
#product .slick-dots li.slick-active{ width: 30px; background: var(--mainColor); }
#product .slick-dots li:not(:last-of-type){ margin-right: 5px; }
#product .slick-dots li button{ display: none; }

#product .product.aos-animate::after{ animation: displayNone 0.1s var(--aosT) both; }

@media screen and (hover: hover) and (pointer: fine){
	#product .product a:hover{ background: var(--mainColor); transform: translateY(-20px); }
	#product .product a:hover .txt h6{ color: #FFF; }
	#product .product a:hover .txt i::before{ filter: brightness(20); -webkit-filter: brightness(20); transform: rotate(90deg); }
}

@media screen and (max-height: 700px){
	#product{ padding: 100px 0; }
}

@media screen and (max-width: 1700px){
	#product .product .txt{ padding: 30px; }	
	#product .product .txt h6{ font-size: 32px; }
}

@media screen and (max-width: 1280px){
	#product .product .txt{ padding: 20px 25px; }	
	#product .product .txt h6{ font-size: 28px; }
	#product .product .txt i::before{ width: 20px; height: 20px; }
}

@media screen and (max-width: 1024px){
	#product{ padding: 60px 0 80px; }
	#product .sec-title{ margin-bottom: 45px; }
	#product .product .txt h6{ font-size: 25px; }
}

@media screen and (max-width: 1000px){
	#product .fade{ transform: translateY(var(--aosP)); opacity: 0; }
	#product .fade.aos-animate{ transform: translateY(0); opacity: 1; }

	#product .product-wrap{ width: calc(100% + (var(--innerPadding) * 2)); margin-left: calc(var(--innerPadding) * -1); overflow: hidden; }
	#product .product-wrap .slick-list{ margin-right: 0; }
	#product .product{ width: 350px; transform: translateY(0) !important; }
	#product .product a:hover{ background: #F5F5F5; transform: translateY(0); }
	#product .product a:hover .txt h6{ color: #333; }
	#product .product a:hover .txt i::before{ filter: unset; -webkit-filter: unset; transform: rotate(0); }

	#product .product.slick-current a{ background: var(--mainColor); transform: translateY(-20px); }
	#product .product.slick-current a .txt h6{ color: #FFF; }
	#product .product.slick-current a .txt i::before{ filter: brightness(20); -webkit-filter: brightness(20); transform: rotate(90deg); }

	#product .product.slick-now a{ background: var(--mainColor); transform: translateY(-20px); }
	#product .product.slick-now a .txt h6{ color: #FFF; }
	#product .product.slick-now a .txt i::before{ filter: brightness(20); -webkit-filter: brightness(20); transform: rotate(90deg); }
}


/* news */
#news .grid-box{ display: grid; grid-template-columns: repeat(2, 50%); margin: -5px; }
#news .grid-box > *{ margin: 5px; }
#news .grid-box > * h6{ display: -webkit-box; height: 3em; letter-spacing: -0.02em; line-height: 1.5; text-overflow: ellipsis; word-break: break-all; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

#news .left a{ height: 100%; display: block; position: relative; }
#news .left figure{  }
#news .left figure{ height: 100%; display: block; padding-bottom: 67.925%; position: relative; overflow: hidden; }
#news .left figure::after{ content: ""; width: 100%; height: 100%; background: linear-gradient(to bottom, transparent, #000); position: absolute; bottom: 0; left: 0; transition: height 0.5s; transition-timing-function: var(--aosTF); }
#news .left figure img{ width: 100%; height: 100%; object-fit: cover; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(1); transition: transform 0.5s; transition-timing-function: var(--aosTF); }
#news .left .txt{ position: absolute; bottom: 0; left: 0; right: 0; padding: 50px; }
#news .left .txt h6{ height: unset; max-height: 3em; font-family: var(--engFont); font-size: 4.6rem; font-weight: 500; color: #FFF; margin-bottom: 17px; }
#news .left .txt .viewmore,
#news .left .txt .viewmore span,
#news .left .txt .viewmore i{ transition-duration: 0.5s; transition-timing-function: var(--aosTF); }

#news .right ul li{ transition-delay: calc(var(--idx) * 100ms); }
#news .right ul li:not(:last-of-type){ margin-bottom: 10px; }
#news .right a{ display: grid; grid-template-columns: 200px calc(100% - 200px); background: #F5F5F5; padding: 30px; transition: background 0.4s; will-change: background; }
#news .right figure{ display: block; padding-bottom: 56.5%; position: relative; overflow: hidden; }
#news .right figure img{ width: 100%; height: 100%; object-fit: cover; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(1); transition: transform 0.4s; }
#news .right .txt{ display: flex; flex-direction: column; justify-content: space-between; padding-left: 40px; font-family: var(--engFont); }
#news .right .txt h6{ font-size: 24px; font-weight: 500; color: #000; margin-bottom: 20px; transition: color 0.4s; }
#news .right .txt .data{ display: flex; font-size: 16px; font-weight: 500; }
#news .right .txt .data p{ flex: 1 1 auto; min-width: 0; color: var(--mainColor); padding-right: 20px; transition: color 0.4s; }
#news .right .txt .data span{ flex-shrink: 0; color: #BBB; }

@media screen and (hover: hover) and (pointer: fine){
	#news .left figure::after{ height: 55%; }

	#news .left:hover figure::after{ height: 100%; }
	#news .left:hover figure img{ transform: translate(-50%, -50%) scale(1.07); }
	#news .left:hover .viewmore{ background: var(--mainColor); border-color: var(--mainColor); }
	#news .left:hover .viewmore span{ transform: translateX(0); }
	#news .left:hover .viewmore i{ transform: rotate(180deg); }

	#news .right ul li:hover a{ background: #E9ECF3; }
	#news .right ul li:hover figure img{ transform: translate(-50%, -50%) scale(1.07); }
	#news .right ul li:hover .txt h6{ color: var(--mainColor); }
	#news .right ul li:hover .txt .data p{ color: rgba(0, 0, 0, 0.56); }
}

@media screen and (max-width: 1700px){
	#news .left .txt{ padding: 40px; }

	#news .right a{ padding: 25px; }
	#news .right .txt h6{ font-size: 22px; }
}

@media screen and (max-width: 1280px){
	#news .left .txt{ padding: 25px 30px; }

	#news .right a{ grid-template-columns: 170px calc(100% - 170px); padding: 20px; }
	#news .right .txt{ padding-left: 30px; }
	#news .right .txt h6{ font-size: 20px; }
	#news .right .txt h6{ margin-bottom: 15px; }
	#news .right .txt .data{ font-size: 15px; }
}

@media screen and (max-width: 1000px){
	#news .grid-box{ grid-template-columns: repeat(1, 100%); }
}

@media screen and (max-width: 700px){
	#news .left .txt{ padding: 20px 25px; }

	#news .right ul li{ transform: translateY(var(--aosP)); transition-delay: unset; }
	#news .right ul li.aos-animate{ transform: translateY(0); }
	#news .right a{ grid-template-columns: 155px calc(100% - 155px); padding: 15px; }
	#news .right .txt{ padding-left: 20px; }
	#news .right .txt h6{ font-size: 19px; margin-bottom: 10px; }
}


/* project */
#project .flex-box{ height: 100%; display: flex; flex-direction: column; }
#project .top{ height: calc(var(--headerH) + (var(--headerT) * 2)); }
#project .bottom{ height: calc(100% - (var(--headerH) + (var(--headerT) * 2))); display: flex; flex-direction: column; justify-content: flex-end; opacity: 1; position: relative; overflow: hidden; }
#project .bottom .bg{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: -1; overflow: hidden; }
#project .bottom .bg::before{ content: ""; display: block; height: 100%; background: url("/img/main/project_bg.jpg") no-repeat center center / cover; transform: scale(1.07); transition: transform var(--aosT); transition-timing-function: var(--aosTF); }
#project .bottom .box{ padding: 120px 0; transform: translateX(var(--aosP)); opacity: 0; transition: transform var(--aosT), opacity var(--aosT); transition-timing-function: var(--aosTF); }
#project .bottom h3{ font-family: var(--engFont); font-size: 10rem; font-weight: 500; color: #FFF; }
#project .bottom p{ font-size: 20px; font-weight: 300; color: rgba(255, 255, 255, 0.8); margin: 30px 0 60px; }

#project .bottom.aos-animate .bg::before{ transform: scale(1); }
#project .bottom.aos-animate .box{ transform: translateX(0); opacity: 1; }

@media screen and (max-height: 700px){
	#project{ padding-top: 100px; }
	#project .flex-box{ height: unset; }
	#project .top{ display: none; }
	#project .bottom{ height: unset; }

	#project .bottom h3{ font-size: 8rem; }
	#project .bottom p{ font-size: 19px; }
}

@media screen and (max-width: 1024px){
	#project{ padding-top: 80px; }
	#project .flex-box{ height: unset; }
	#project .top{ display: none; }
	#project .bottom{ height: unset; }

	#project .bottom h3{ font-size: 7.5rem; }
	#project .bottom p{ font-size: 18px; margin: 15px 0 50px; }
}

@media screen and (max-width: 600px){
	#project .bottom .box{ padding: 50px 0 190px; }
	#project .bottom p span{ display: block; }
}