/* Root */
:root {
	--transition-basic:all .3s;
	--transition-basic2:all .6s;
	--transition-basic3:all .9s;
	--transition-basic4:all .45s ease-out;
}

/* Reset */
*, *::before, *::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	overflow-x: hidden;
	color: #191919;
	font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
	font-size: 62.5% !important;
	letter-spacing: -0.02em;
	word-break: keep-all;
	word-wrap: break-word;
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
	-webkit-tap-highlight-color : transparent !important;
	animation:entry .4s ease forwards;
  opacity: 0;
}

html::-webkit-scrollbar {
	display: none;
}

html {
	-ms-overflow-style: none;
	scrollbar-width: none;
}

body {
	font-size: 1.6rem;
}

a {
	color: inherit;
	outline: none;
	text-decoration: none;
}

ol, ul {
	list-style: none;
}

b, strong {
	font-weight: 700;
}

img {
	max-width: 100%;
}

button {
	font-family: inherit;
	border: none;
	outline: none;
	cursor: pointer;
	color: inherit;
	-webkit-appearance: none;
	background: none;
}

select {
	outline: none;
	border: 1px solid transparent;
	font-family: inherit;
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
}

input, textarea {
	font-family: inherit;
	outline: none;
	border: 1px solid transparent;
}

:focus {
	outline: none;
}

::placeholder {
	
}

em, i {
	font-style: normal;
}

@-webkit-keyframes entry {
	to{opacity: 1;}
}

@keyframes entry {
	to{opacity: 1;}
}

@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {

}
@media screen and (max-width:768px) {

}
@media screen and (max-width:480px) {

}


#smooth-content { 
  will-change: transform;
}


/* Hidden */
.hidden {
	overflow: hidden;
}

/* Ellip */
.ellip {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}


/* Blind */
.blind {
	overflow: hidden;
	position: absolute;
	width: 1px;
	height: 1px;
	clip: rect(1px, 1px, 1px, 1px);
}


/* Overflow */
@media screen and (max-width:1200px) {
	.overflow-y-lg-auto {
		overflow-y: auto;
	}
}


/* Media */
.xs {display:block;}
.md {
	display: block;
}

.xxl {
	display: block;
}

.max-xs {
	display: none;
}
@media screen and (max-width:1366px) {
	.xxl {
		display: none;
	}
}
@media screen and (max-width:1200px) {
	.lg {
		display: none;
	}
}
@media screen and (max-width:1024px) {
	.md {
		display: none;
	}
}
@media screen and (max-width:768px) {
	.sm {
		display: none;
	}
}
@media screen and (max-width:480px) {
	.xs {
		display:none;
	}

	.max-xs {
		display: block;
	}
}


/* Display */
.d-block {
	display: block;
}

.d-flex {
	display: flex;
}

@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {
	.d-md-flex {
		display: flex;
	}
}
@media screen and (max-width:768px) {

}
@media screen and (max-width:480px) {
	
}


/* Column */
.flex-column {
	flex-direction: column;
}

@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {

}
@media screen and (max-width:768px) {

}
@media screen and (max-width:480px) {
	
}

/* Wrap */
.flex-wrap {
	flex-wrap: wrap;
}

@media screen and (max-width:1200px) {
	.flex-lg-wrap {
		flex-wrap: wrap;
	}
}
@media screen and (max-width:1024px) {
	.flex-md-wrap {
		flex-wrap: wrap;
	}
}
@media screen and (max-width:768px) {
	.flex-sm-wrap {
		flex-wrap: wrap;
	}
}
@media screen and (max-width:480px) {
	
}


/* Justify Content */
.justify-center {
	justify-content: center;
}

.justify-between {
	justify-content: space-between;
}

@media screen and (max-width:1200px) {
	.justify-lg-between {
		justify-content: space-between;
	}
}
@media screen and (max-width:1024px) {
	.justify-lg-start {
		justify-content: flex-start;
	}

	.justify-lg-center {
		justify-content: center;
	}
}
@media screen and (max-width:768px) {
	.justify-sm-center {
		justify-content: center;
	}
}
@media screen and (max-width:480px) {
	
}

@media screen and (min-width:1201px) {
	
}
@media screen and (min-width:1025px) {
	.justify-min-lg-between {
		justify-content: space-between;
	}
}
@media screen and (min-width:769px) {

}
@media screen and (min-width:481px) {
	
}


/* Align Items */
.align-center {
	align-items: center;
}


.align-end {
	align-items: flex-end;
}

@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {

}
@media screen and (max-width:768px) {

}
@media screen and (max-width:480px) {
	
}
@media screen and (min-width:1201px) {
	.align-min-xl-center {
		align-items: center;
	}
}
@media screen and (min-width:1025px) {
	.align-min-lg-end {
		align-items: flex-end;
	}
}
@media screen and (min-width:769px) {

}
@media screen and (min-width:481px) {

}
	

/* Width */
.w100 {
	width: 100%;
}

.mw-1200 {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
}


/* Height */
.h100 {
	height: 100%;
}


/* Position */
.position-relative {
	position: relative;
}


/* Wrap */
.wrap {
	overflow: hidden;
}

.wrap--sub #main {
  padding-top: 100px;
}

@media screen and (max-width:1200px) {
	.wrap--sub #main {
		padding-top: 70px;
	}
}
@media screen and (max-width:1024px) {

}
@media screen and (max-width:768px) {

}
@media screen and (max-width:480px) {
	
}


/* Main */
#main {
	min-height:calc(100vh - 260px);
	/* overflow: hidden; */
}


/* Container */
.container {
	max-width:1500px;
	width: 95%;
	margin:0 auto;
}

.container-full {
	max-width:1920px;
	width: 100%;
	margin: 0 auto;
}


/* Header */
#header {
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height:100px;
	z-index:99;
	background-color: #fff;
}

#header .h-container {
	max-width:1800px;
	width: 95%;
	height: 100%;
	margin:0 auto;
}

#header .h-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 100%;
}

#header .h_sns {
	position: absolute;
	top:50%;
	left:0;
	transform: translateY(-50%);
}

#header .h_logo {
	width:200px;
	height:45px;	
}

#header .h_logo a {
	display: block;
	width: 100%;
	height:100%;
	background: url('/asset/img/common/header_logo.png') no-repeat center;
}

#header .h_util {
	position: absolute;
	top:50%;
	right:0;
	transform: translateY(-50%);
}

#header .h_ele {
	display:block;
	position: relative;
	padding-left:26px;
	font-size:1.8rem;
}

#header .h_ele i {
	display: block;
	position: absolute;
	top:50%;
	left:0;
	transform: translateY(-50%);
	width:15px;
	height:21px;
	background: url('/asset/img/common/header_ico.png') no-repeat center;
}

#header .h_site {
	width:35px;
	height:35px;
}

#header .h_site button {
	display: inline-block;
	position: relative;
	width: 100%;
	height:100%;
}

#header .h_site button span {
	display: block;
	width: 100%;
	height:2px;
	margin:0 auto;
	background-color: #0d5b44;
}

#header .h_site button span::before,
#header .h_site button span::after {
	content: "";
	display: block;
	position: absolute;
	width:100%;
	height: 2px;
	background-color: #0d5b44;
}

#header .h_site button span::before {
	margin-top:-12px;
}

#header .h_site button span::after {
	margin-top:12px;
}

@media screen and (max-width:1200px) {
	#header {
		height:70px;
	}

	#header .h-container {
		width: 100%;
	}

	#header .h_sns {
		left:20px;
	}

	#header .h_sns img {
		width: 33px;
	}

	#header .h_logo {
		height:35px;
	}

	#header .h_logo a {
		background-size:auto 35px;
	}

	#header .h_util {
		right:20px;
	}
}
@media screen and (max-width:1024px) {
	#header .h_ele {
		display: none;
	}

	#header .h_site {
		width:30px;
		height:30px;
	}

	#header .h_site button span::before {
		margin-top:-10px;
	}

	#header .h_site button span::after {
		margin-top:10px;
	}
}
@media screen and (max-width:768px) {

}
@media screen and (max-width:480px) {
	#header .h_logo {
		width: 136px;
		height:30px;
	}

	#header .h_logo a {
		background-size:auto 30px;
	}
}


/* Site Map */
.sitemap {
	position: fixed;
	top:0;
	left:0;
	width:100%;
	height:0;
	overflow: hidden;
	background-color: #0a5536;
	z-index: 999;
	transition: height 1s ease .1s;
}

.sitemap .smap-overview {
	position: relative;
	width: 100%;
	height: 100%;
	/* height: calc(var(--vh, 1vh)*100); */
	/* height: 100dvh; */
}

.sitemap .smap-wrap {
	position: absolute;
	top:70px;
	left:50%;
	transform: translateX(-50%);
	max-width:1500px;
	width: 95%;
	margin: 0 auto;
}

.sitemap .smap-inner {
	opacity:0;
	transform: translateY(-60px);
	transition: transform 1s ease .3s, opacity 1s ease .3s;
}

.sitemap .smap-mo {
	display: none;
}

.sitemap .hd {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 38px;
	margin-bottom:40px;
	border-bottom: 1px solid #ffffff;
}

.sitemap .smap-tit {
	font-size:5.8rem;
	line-height: 1;
	letter-spacing: -0.01em;
}

.sitemap .smap-close {
	display: block;
	width:23px;
	height:23px;
	background: url('/asset/img/common/sitemap_close.png') no-repeat center;
}

.sitemap.open {
	height: 486px;
	/* height: calc(var(--vh, 1vh)*100);
	height: 100svh; */
	/* height: 100%; */
}

.sitemap.open .smap-inner {
	opacity: 1;
	transform: translateY(0);
}

@media screen and (min-width:1201px) {
	.sitemap .smap-pc {
		display: flex;
		flex-wrap: wrap;
		gap:40px 0px;
	}

	.sitemap .smap-pc .gnb {
		flex:0 0 16.6667%;
	}

	.sitemap .smap-pc .gnb-tit {
		font-size:2rem;
	}

	.sitemap .smap-pc .gnb-ul {
		display: flex;
		flex-wrap: wrap;
		gap:11px;
	}

	.sitemap .smap-pc .gnb-ul li {
		flex:1 1 calc(100% - 11px);
	}

	.sitemap .smap-pc .gnb-ul--custom li:nth-child(1),
	.sitemap .smap-pc .gnb-ul--custom li:nth-child(2),
	.sitemap .smap-pc .gnb-ul--custom li:nth-child(3),
	.sitemap .smap-pc .gnb-ul--custom li:nth-child(4) {
		flex:1 1 calc(50% - 11px);
	}

	.sitemap .smap-pc .gnb-ul a {
		font-size:1.6rem;
		color:#fff;
	}

	.sitemap .smap-pc .gnb-ul a:hover {
		color:#c9e19c;
		text-decoration: underline;
		text-underline-offset:3px;
	}
}
@media screen and (max-width:1200px) {
	.sitemap.open {
		height: calc(var(--vh, 1vh)*100);
		height: 100svh;
		/* height: 100%; */
	}
}
@media screen and (max-height:920px) {	
	.sitemap .smap-wrap {
		position: absolute;
		top:50px;
	}
}
@media screen and (max-height:800px) {

}
@media screen and (max-width:1200px) {
	.sitemap.open .smap-overview {
		overflow-y: auto;
	}

	.smap-overview::-webkit-scrollbar {
		display: none;
	}

	.sitemap .smap-pc {
		display: none;
	}

	.sitemap .smap-mo {
		display: block;
	}

	.sitemap .smap-wrap {
		top:40px;
	}

	.sitemap .hd {
		padding-bottom:28px;
		margin-bottom:28px;
	}

	.sitemap .smap-tit {
		font-size:4.4rem;
	}

	.sitemap .gnb__li {
		position: relative;
	}

	.sitemap .gnb_link {
		display: block;
		position: relative;
		font-size: 1.8rem;
		padding:15px 0px;
	}

	.sitemap .gnb_link::before,
	.sitemap .gnb_link::after {
		content: "";
    display: block;
    position: absolute;
    top: 50%;
    right:0px;
    width: 10px;
    margin-top: -1px;
    background-color: #fff;
    height: 2px;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transition:all .4s ease;
    transition:all .4s ease;
	}

  .sitemap .gnb_link::before {
    z-index: 2;
    -webkit-transform: rotate(-90deg);
		transform: rotate(-90deg);
    opacity: 1;
  }
	
	.sitemap .gnb_sub {
		height:auto;
		max-height: 0px;
		overflow: hidden;
		visibility: visible;
		transition: all .8s ease;
	}

	.sitemap .gnb_sub li {
		margin-top:10px;
	}

	.sitemap .gnb_sub a {
		font-size:1.6rem;
		color:#fff;
	}

	.sitemap .gnb_link.toggle + .gnb_sub {
		max-height:320px;
		margin:0px 0px 20px;
	}
}
@media screen and (max-width:1024px) {
	.sitemap .hd {
		padding-bottom:20px;
		margin-bottom:20px;
	}
}
@media screen and (max-width:768px) {
	.sitemap .smap-tit {
		font-size:3.2rem;
	}

	.sitemap .smap-close {
		width:21px;
		height:21px;
		background-size:auto 21px;
	}
}
@media screen and (max-width:480px) {
	.sitemap .smap-tit {
		font-size:2.6rem;
	}
}



/* Footer */
#footer {
	padding:60px 0px;
	border-top: 1px solid #d2d2d2;
}

#footer .f-container {
	max-width:1500px;
	width: 95%;
	margin:0 auto;
}

#footer .f-inner {
	position: relative;
}

#footer .f_logo {
	width:200px;
	height: 45px;
	margin-bottom:30px;
	background: url('/asset/img/common/footer_logo.png') no-repeat center;
}

#footer .f_mem {
	margin:0px -15px;
	font-size:0px;
}

#footer .f_mem li {
	display: inline-block;
	position: relative;
	font-size:1.6rem;
	color:#4c4c4c;
	padding:0px 15px;
}

#footer .f_mem li:not(:last-child)::after {
	content: "";
	display: inline-block;
	width:1px;
	height: 14px;
	position: absolute;
	top:50%;
	right:0;
	transform: translateY(-50%);
	background-color: #4c4c4c;
}

#footer .f_info {
	display: flex;
	flex-wrap: wrap;
	max-width:690px;
	margin:-2px -15px;
}

#footer .f_info dd {
	position: relative;
	font-size:1.6rem;
	line-height:1.6;
	color:#4c4c4c;
	padding:2px 15px;
}

#footer .f_info dd:first-child {
	width: 100%;
}

#footer .f_info dd:not(:first-child):not(:last-child)::after {
	content: "";
	display: block;
	width:1px;
	height: 14px;
	position: absolute;
	top:50%;
	right:0;
	transform: translateY(-50%);
	background-color: #4c4c4c;
}

#footer .f_copy {
	font-size:1.4rem;
	color:#959595;
	margin-top:20px;
}

@media screen and (min-width:769px) {
	#footer .f_mem {
		position: absolute;
		top:14px;
		right:0;
	}
}
@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {
	#footer .f_logo {
		width:172px;
		height: 38px;
		margin-bottom:20px;
		background-size: auto 38px;
	}

	#footer .f_mem {
		margin:0px -10px;
	}

	#footer .f_mem li {
		font-size:1.5rem;
		padding:0px 10px;
	}

	#footer .f_mem li:not(:last-child)::after {
		height: 11px;
	}

	#footer .f_info {
		margin:-2px -10px;
	}

	#footer .f_info dd {
		font-size:1.5rem;
		padding:2px 10px;
	}

	#footer .f_info dd:not(:first-child):not(:last-child)::after {
		height:11px;
	}

	#footer .f_copy {
		font-size:1.3rem;
		margin-top: 12px;
	}
}
@media screen and (max-width:768px) {
	#footer {
		padding:40px 0px;
	}

	#footer .f_logo {
		margin: 0 auto 20px;
	}

	#footer .f_mem {
		margin: 0px -10px 20px;
	}

	#footer .f_mem li {
		font-size:1.4rem;
	}
	
	#footer .f_info dd {
		width: 100%;
		font-size:1.4rem;
	}

	#footer .f_info dd:not(:first-child):not(:last-child)::after {
		display: none;
	}

	#footer .f_copy {
		font-size:1.2rem;
	}
}
@media screen and (max-width:480px) {
		#footer .f_logo {
			width:136px;
			height: 30px;
			margin:0 auto 16px;
			background-size: auto 30px;
		}

		#footer .f_mem {
			margin:-2px -8px 10px;
		}

		#footer .f_mem li {
			font-size:1.3rem;
			padding:2px 8px;
		}

		#footer .f_mem li:not(:last-child)::after {
			height:10px;
		}

		#footer .f_info {
			margin:-2px -6px;
		}

		#footer .f_info dd {
			font-size:1.3rem;
			line-height:1.4;
			padding:2px 6px;
		}

		#footer .f_copy {
			font-size:1.1rem;
			margin-top:8px;
		}
}


/* Quick */
#quick {
	position: fixed;
	right:30px;
	bottom:60px;
	z-index: 99;
	animation: quick-ani 2s ease-in-out infinite;
}

#quick li {
	width:150px;
	height:45px;
}

#quick li:not(:last-child) {
	margin-bottom:10px;
}

#quick a {
	display: flex;
	align-items: center;
	gap:10px;
	width: 100%;
	height:100%;
	padding:0px 20px;
	border-radius:100px;
	background-color: #c9e19c;
	transition:var(--transition-basic2);
}

#quick span {
	font-size: 1.4rem;
	color:#0a5536;
	transition:var(--transition-basic2);
}

#quick i {
	display: block;
	background-repeat: no-repeat;
	background-position: center;
	transition:var(--transition-basic2);
}

#quick .icon {
	width: 20px;
	height:21px;
}

#quick .icon01 {
	background-image: url('/asset/img/common/quick_ico01_off.png');
}

#quick .icon02 {
	background-image: url('/asset/img/common/quick_ico02_off.png');
}

#quick .icon03 {
	background-image: url('/asset/img/common/quick_ico03_off.png');
}

#quick .scroll-top {
	display: flex;
	justify-content: center;
	align-items: center;
	gap:10px;
	width: 100%;
	height:100%;
	padding:0px 20px;
	border:1px solid #c9e19c;
	border-radius:100px;
	background-color: #fff;
	transition:var(--transition-basic2);
}

#quick .arr {
	width:10px;
	height:6px;
	background-image: url('/asset/img/common/quick_arr_off.png');
}

@media screen and (min-width:1201px) {
	#quick a:hover {
		background-color:#0a5536;
	}

	#quick a:hover span {
		color:#fff;
	}

	#quick a:hover .icon01 {
		background-image: url('/asset/img/common/quick_ico01_on.png');
	}

	#quick a:hover .icon02 {
		background-image: url('/asset/img/common/quick_ico02_on.png');
	}

	#quick a:hover .icon03 {
		background-image: url('/asset/img/common/quick_ico03_on.png');
	}
}
@media screen and (max-width:1200px) {
	#quick {
		right:20px;
	}
}
@media screen and (max-width:1024px) {
	#quick {
		bottom:40px;
	}

	#quick li {
		width:130px;
		height:38px;
	}

	#quick li:not(:last-child) {
		margin-bottom:6px;
	}
	
	#quick a {
		gap:6px;
		padding:0px 16px;
	}

	#quick span {
		font-size:1.3rem;
	}

	#quick .icon {
		width:14px;
		height:15px;
		background-size:auto 15px;
	}

	#quick .scroll-top {
		gap:6px;
		padding:0px 16px;
	}

	#quick .arr {
		height:5px;
		background-size:auto 5px;
	}
}
@media screen and (max-width:768px) {
	#quick span {
		font-size:1.2rem;
	}
}
@media screen and (max-width:480px) {
	#quick {
		right:12px;
		bottom:30px;
	}

	#quick li {
		width:110px;
		height:34px;
	}

	#quick li:not(:last-child) {
		margin-bottom:4px;
	}

	#quick a {
		gap:4px;
	}

	#quick span {
		font-size:1.1rem;
	}

	#quick .icon {
		width:14px;
		height:14px;
		background-size:auto 14px;
	}
}


/* Animation */
@keyframes quick-ani {
	0% {
		transform: translateY(0px);
	}
	50% {
		transform: translateY(15px);
	}
	100% {
		transform: translateY(0px);
	}
}