/* reset */
*{ box-sizing:border-box; }
html.lenis{ height:auto; }
.lenis{ overflow-x:hidden; }
.lenis-smooth{ scroll-behavior:auto; }
html, body{
	margin:0;
	padding:0;
	width:100%;
	height:auto !important;
	overflow:visible !important;
	scroll-behavior:smooth;
	overscroll-behavior:none;
}
html, body, input, textarea, select, button, table{
	font-family:'pf', 'pretendard', sans-serif;
	-webkit-font-smoothing:antialiased;
	letter-spacing:-0.5px;
}
form, fieldset, h1, h2, h3, h4, h5, h6, p{ margin:0; padding:0; word-break:keep-all; }
form, fieldset, button{ border:none; }
ol, ul, li{ list-style:none; margin:0; padding:0; word-break:keep-all; }
img{ max-width:100%; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:none; }

.d-lg-none{ display:none; }
.d-lg-block{ display:block; }
#nc_container{ z-index:9999999999 !important; }
.article_mover{ position:absolute; z-index:-1; bottom:100%; }

/* cursor */
.cursor-outer,
.cursor-inner{
	position:fixed;
	z-index:9999;
	border-radius:50%;
	pointer-events:none;
	transform:translate(-50%, -50%);
}
.cursor-outer{ width:40px; height:40px; border:1px solid #D8151B; transition:all .2s ease; }
.cursor-inner{ width:8px; height:8px; background:#D8151B; transition:all .1s ease; }
@media(hover:none), (pointer:coarse){
	.cursor-outer, .cursor-inner{ display:none; }
}

/* header */
header{ position:fixed; z-index:99999999; top:0; left:0; width:100%; transition:all .5s; }
.hd_bt{ position:relative; z-index:5; }
.hd_con{
	position:relative;
	display:flex;
	justify-content:space-between;
	align-items:center;
	width:100%;
	margin:0 auto;
	padding:0 150px;
}
.lg > a{ display:block; font-size:20px; line-height:1em; white-space:nowrap; }
.lg > a > img{ display:block; width:200px; transition:.5s; }
.mn{ display:flex; align-items:center; }

.phone{
	display:flex;
	align-items:center;
	padding:6px 20px 8px;
	border:1px solid #fafafa;
	font-size:16px;
	font-weight:400;
	color:#fafafa;
	transition:.4s;
}
.phone > span{ display:inline-block; margin-right:8px; font-size:12px; }
.phone:hover{ border-radius:8px; }

/* gnb */
#gnb{ position:relative; z-index:5; }
#gnb > ul{ display:flex; flex-flow:row wrap; }
#gnb > ul > li{ position:relative; z-index:1; }
#gnb > ul > li > a{
	position:relative;
	display:block;
	padding:50px 25px;
	font-size:18px;
	font-weight:700;
	color:#fafafa;
	transition:all .5s;
}
#gnb > ul > li > a::before{
	content:"";
	position:absolute;
	top:50%;
	left:-2px;
	width:4px;
	height:4px;
	border-radius:50%;
	background-color:#fafafa;
	transform:translateY(-50%);
}
#gnb > ul > li:first-child > a::before{ display:none; }
#gnb > ul > li > ul{
	position:absolute;
	z-index:1;
	top:100%;
	left:50%;
	display:none;
	width:100%;
	min-width:200px;
	padding:25px 15px;
	background-color:#fff;
	text-align:center;
	box-shadow:0 12px 30px -2px rgba(0, 0, 0, .1);
	transform:translateX(-50%);
}
#gnb > ul > li > ul > li > a{
	display:block;
	padding:8px 0;
	font-size:14px;
	color:#666;
	white-space:nowrap;
}

/* fullscreen menu */
.menupc{ position:relative; z-index:99999; width:50px; padding:6px 0; cursor:pointer; }
.menupc::before,
.menupc::after,
.mn-bar{ content:""; display:block; height:1px; margin:7px 0; background:#fff; transition:.5s; }
.menupc.open::before{ background:#fff; transform:translateY(8px) rotate(135deg); }
.menupc.open::after{ background:#fff; transform:translateY(-8px) rotate(-135deg); }
.menupc.open .mn-bar{ background:#fff; transform:scale(0); }

.menupc-wrap{
	position:fixed;
	z-index:99998;
	top:0;
	left:0;
	display:flex;
	width:100%;
	height:100vh;
	height:100dvh;
	padding:4rem;
	overflow-x:hidden;
	overflow-y:auto;
	overscroll-behavior:contain;
	background:#0A0A0A;
	visibility:hidden;
	transform:translateY(-100%);
	transition:transform .8s ease-in-out, visibility 0s .8s;
}
.menupc-wrap.mt-open{ visibility:visible; transform:none; transition-delay:0s; }
.menupc-wrap::after{
	content:"";
	position:fixed;
	z-index:1;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:radial-gradient(137.42% 85.89% at 20% 50%, rgba(120, 119, 198, 0.15) 0%, rgba(120, 119, 198, 0.00) 50%), radial-gradient(150.94% 94.34% at 80% 80%, rgba(255, 119, 198, 0.10) 0%, rgba(255, 119, 198, 0.00) 50%), radial-gradient(124.96% 78.1% at 40% 20%, rgba(119, 198, 255, 0.10) 0%, rgba(119, 198, 255, 0.00) 50%);
	pointer-events:none;
}
.menupc-wrap > nav{ position:relative; z-index:3; width:100%; max-width:1200px; margin:auto; }
.menupc-wrap > nav > ul{ counter-reset:menu; }
.menupc-wrap > nav > ul > li{
	position:relative;
	padding:20px 0 40px 90px;
	border-bottom:1px solid rgba(255, 255, 255, 0.08);
	text-align:left;
	counter-increment:menu;
	transition:.3s;
}
.menupc-wrap > nav > ul > li::before{
	content:counter(menu, decimal-leading-zero);
	position:absolute;
	top:50%;
	left:0;
	font-size:12px;
	font-weight:400;
	color:rgba(255, 255, 255, 0.3);
	transform:translateY(-50%);
}
.menupc-wrap > nav > ul > li::after{
	content:"";
	position:absolute;
	left:0;
	bottom:0;
	width:0;
	height:1px;
	background:linear-gradient(90deg, #7877C6, #FF77C6);
	transition:width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.menupc-wrap > nav > ul > li > a{
	display:inline-block;
	font-size:70px;
	font-weight:300;
	line-height:1;
	color:#fff;
	transition:.4s;
}
.menupc-wrap > nav > ul > li > span{
	position:absolute;
	top:50%;
	right:30px;
	font-size:16px;
	color:#fff;
	opacity:0;
	transform:translateY(-50%);
	transition:.4s;
}
.menupc-wrap > nav > ul > li > ul{ display:flex; flex-wrap:wrap; gap:4px 18px; margin-top:12px; }
.menupc-wrap > nav > ul > li > ul > li > a{ font-size:15px; font-weight:300; color:rgba(255, 255, 255, 0.5); transition:.3s; }
.menupc-wrap > nav > ul > li > ul > li > a:hover{ color:#fff; }
.menupc-wrap > nav > ul > li:hover{ padding-left:110px; }
.menupc-wrap > nav > ul > li:hover::after{ width:100%; }
.menupc-wrap > nav > ul > li:hover > span{ right:15px; opacity:1; }
.menupc-wrap > nav > ul > li:hover > a{
	background:linear-gradient(90deg, #7877C6 0%, #FF77C6 100%);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
}

.nvpc-wrap{ display:flex; align-items:center; justify-content:space-between; width:100%; padding-top:50px; }
.nvinfo-wrap{ display:flex; align-items:center; gap:40px; }
.nvinfo-box{ display:flex; align-items:center; }
.nvinfo-box > span{
	display:flex;
	justify-content:center;
	align-items:center;
	width:40px;
	height:40px;
	border:1px solid rgba(255, 255, 255, 0.10);
	border-radius:50%;
	background:rgba(255, 255, 255, 0.05);
}
.nvinfo{ padding-left:1rem; }
.nvinfo > h5{ margin-bottom:2px; font-size:11px; font-weight:300; line-height:1; color:rgba(255, 255, 255, 0.4); }
.nvinfo > p{ font-size:15px; font-weight:400; color:rgba(255, 255, 255, 0.6); }
.nvpc-wrap > ul{ display:flex; }
.nvpc-wrap > ul > li{
	position:relative;
	margin-left:12px;
	padding-left:12px;
	font-size:15px;
	font-weight:300;
	color:#fff;
}
.nvpc-wrap > ul > li::before{
	content:"";
	position:absolute;
	top:50%;
	left:0;
	width:1px;
	height:12px;
	background-color:rgba(255, 255, 255, 0.4);
	transform:translateY(-50%);
}
.nvpc-wrap > ul > li:first-child{ margin-left:0; padding-left:0; }
.nvpc-wrap > ul > li:first-child::before{ display:none; }

.glow-effect{
	position:fixed;
	z-index:0;
	top:0;
	left:0;
	width:400px;
	height:400px;
	margin:-200px 0 0 -200px;
	border-radius:50%;
	background:radial-gradient(circle, rgba(120, 119, 198, 0.15) 0%, transparent 70%);
	opacity:0;
	pointer-events:none;
	transition:opacity 0.3s ease;
}

/* mobile fixed bar */
.mo-fixed{ display:none; }

/* footer */
footer{ position:relative; z-index:1; padding:100px 0; overflow:hidden; background-color:#000; }
.ft_tp{ padding-bottom:100px; }
.ft_tp > h4{ margin-bottom:60px; font-size:25px; font-weight:800; color:#fff; text-align:center; }
.ftSli{ display:flex; align-items:center; height:auto !important; padding:0 10px; }
.ftSli img{ display:block; width:100%; height:auto; }

.ft_md{ width:100%; margin:0 auto; padding:0 150px 100px; }
.ft_iw{ display:flex; flex-flow:row wrap; margin:0 -20px; }
.ft_ip{ width:25%; padding:0 20px; }
.ft_ip > h4{ margin-bottom:20px; font-size:16px; font-weight:700; color:#fff; letter-spacing:0.3em; }
.ft_ip > p{ font-size:14px; font-weight:300; line-height:1.5em; color:#fff; }
.ft_ip > p.mail{ text-decoration:underline; }
.ft_ip > ul > li{ font-size:14px; font-weight:300; color:#fff; }
.ft_ip > ul > li:not(:last-child){ margin-bottom:5px; }
.ft_ip > ul > li > a{ display:block; }

.ft_bt{ width:100%; margin:0 auto; padding:0 15px; }
.ft_bt > .copy{ font-size:14px; font-weight:300; color:#fff; text-align:center; }
.ft_bt > .copy > br{ display:none; }

/* responsive */
@media(min-width:1025px){
	.lg{ margin-right:30px; }
	.mnwrap{ margin-left:25px; }
}

@media(max-width:1600px){
	.hd_con{ padding:0 100px; }
	.ft_md{ padding:0 100px 100px; }
	.menupc-wrap > nav{ max-width:1100px; }
	.menupc-wrap > nav > ul > li{ padding:16px 0 32px 60px; }
	.menupc-wrap > nav > ul > li:hover{ padding-left:70px; }
	.menupc-wrap > nav > ul > li > a{ font-size:50px; }
	.nvpc-wrap{ padding-top:30px; }
}

@media(max-width:1400px){
	.hd_con{ padding:0 60px; }
	.ft_md{ padding:0 60px 60px; }
	.phone{ padding:6px 16px 8px; }
	.menupc-wrap > nav{ max-width:900px; }
	.menupc-wrap > nav > ul > li > a{ font-size:40px; }
}

@media(max-width:1280px){
	.hd_con{ padding:0 30px; }
	.ft_md{ padding:0 30px 30px; }
	.phone{ padding:6px 12px 8px; font-size:14px; }
	#gnb > ul > li > a{ padding:50px 20px; font-size:16px; }
	#gnb > ul > li > a::before{ width:3px; height:3px; }
	.mnwrap{ margin-left:20px; }
}

@media(max-width:1024px){
	.d-none{ display:none; }
	.d-block{ display:block; }

	.hd_con{ padding:0 20px; }
	.lg > a{ padding:20px 0; }
	.lg > a > img{ max-width:150px; }
	#gnb, .phone{ display:none; }

	.menupc{ width:40px; }
	.menupc-wrap > nav{ max-width:700px; }
	.menupc-wrap > nav > ul > li,
	.menupc-wrap > nav > ul > li:hover{ padding:12px 0 24px 40px; }
	.menupc-wrap > nav > ul > li > a{ font-size:30px; }
	.menupc-wrap > nav > ul > li > span{ font-size:14px; }
	.menupc-wrap > nav > ul > li > ul > li > a{ font-size:14px; }
	.nvpc-wrap{ flex-direction:column; align-items:flex-start; }
	.nvinfo-wrap{ gap:20px; }
	.nvinfo{ padding-left:10px; }
	.nvpc-wrap > ul{ margin-top:1rem; }

	footer{ padding:40px 20px 80px; }
	.ft_md{ padding:0 0 30px; }
}

@media(max-width:850px){
	.ft_ip.ip01{ width:100%; margin-bottom:40px; }
	.ft_ip.ip02, .ft_ip.ip03{ width:50%; margin-bottom:40px; }
	.ft_ip.ip04{ width:100%; }
}

@media(max-width:840px){
	.menupc-wrap{ padding:4rem 20px; }
}

@media(max-width:690px){
	.menupc-wrap > nav > ul > li,
	.menupc-wrap > nav > ul > li:hover{ padding:20px 0 20px 30px; }
	.menupc-wrap > nav > ul > li > a{ font-size:24px; }
	.menupc-wrap > nav > ul > li > ul{ margin-top:8px; }
	.nvinfo-box > span{ width:34px; height:34px; }
	.nvinfo > p{ font-size:13px; }
	.nvpc-wrap{ padding-top:30px; }
	.nvpc-wrap > ul{ flex-wrap:wrap; margin-top:20px; }
	.nvpc-wrap > ul > li,
	.nvpc-wrap > ul > li:first-child{ width:50%; margin-left:0; margin-bottom:5px; padding-left:12px; }
	.nvpc-wrap > ul > li:last-child{ margin-bottom:0; }
	.nvpc-wrap > ul > li::before,
	.nvpc-wrap > ul > li:first-child::before{
		display:block;
		width:3px;
		height:3px;
		border-radius:50%;
		background-color:rgba(255, 255, 255, 0.3);
	}

	.ft_tp{ padding-bottom:30px; }
	.ft_tp > h4{ margin-bottom:30px; }
	.ftSli{ padding:0; }

	.mo-fixed{
		position:fixed;
		z-index:8888;
		left:0;
		bottom:0;
		display:flex;
		width:100%;
		padding-bottom:env(safe-area-inset-bottom);
		background-color:#D8151B;
		color:#fff;
		opacity:0;
		transform:translateY(100%);
		transition:.5s linear .2s;
	}
	.mo-fixed.scr{ opacity:1; transform:none; }
	.mo-fixed::after{
		content:"";
		position:absolute;
		top:50%;
		left:50%;
		width:1px;
		height:50%;
		background-color:rgba(255, 255, 255, 0.4);
		transform:translate(-50%, -50%);
	}
	.mo-fixed > a{ flex:1 1 auto; width:50%; padding:14px 5px 16px; font-size:16px; font-weight:400; text-align:center; }
	.mo-fixed > a > span{ display:inline-block; margin-right:5px; font-size:12px; transform:translateY(-1px); }
}

@media(max-width:600px){
	.ft_bt > .copy > br{ display:block; }
}

@media(max-width:500px){
	.ft_bt{ padding:0 20px; }
	.ft_ip.ip02, .ft_ip.ip03{ width:100%; }
}
