@charset "utf-8";

@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@300;400;500;600;700&display=swap");

:root{
	--ink:#24211f;
	--brown:#615147;
	--sand:#b69b79;
	--cream:#f5f1eb;
	--line:#ded7ce;
	--white:#fff;
}

*{
	box-sizing:border-box;
}

html,body{
	margin:0;
	padding:0;
	font-family:'Pretendard','Noto Sans KR','Malgun Gothic',Arial,sans-serif;
	color:#071733;
	background:#fff;
}

body{
	padding:0;
}

a{
	color:inherit;
	text-decoration:none;
}

ul,li{
	margin:0;
	padding:0;
	list-style:none;
}


/*
|--------------------------------------------------------------------------
| 공통
|--------------------------------------------------------------------------
*/

.gj_main{
	width:100%;
	max-width:100%;
	overflow:hidden;
	color:var(--ink);
	font-family:"Noto Serif KR","Nanum Myeongjo",serif;
}

.gj_main *{
	box-sizing:border-box;
	font-family:"Noto Serif KR","Nanum Myeongjo",serif;
}

.gj_main img,
.gj_main iframe,
.gj_main video{
	display:block;
	max-width:100%;
}

.gj_main a{
	color:inherit;
	text-decoration:none;
}

.gj_main button{
	font-family:inherit;
}

.gj_inner{
	width:calc(100% - 40px);
	max-width:1320px;
	margin:0 auto;
}

/*
|--------------------------------------------------------------------------
| GJ HEADER
|--------------------------------------------------------------------------
*/

.gj_header,
.gj_header *,
.gj_mobile_menu,
.gj_mobile_menu *,
.gj_mobile_menu_dim{
	box-sizing:border-box;
}

.gj_header{
	position:relative;
	z-index:1000;
	width:100%;
	height:92px;
	background:rgba(255,255,255,0.96);
	border-bottom:1px solid rgba(18,31,29,0.08);
	font-family:"Pretendard","Noto Sans KR",Arial,sans-serif;
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	transition:
		background-color 0.3s ease,
		box-shadow 0.3s ease,
		transform 0.3s ease;
}

.gj_header.is_scrolled{
	position:fixed;
	top:0;
	left:0;
	background:rgba(255,255,255,0.92);
	box-shadow:0 12px 35px rgba(18,31,29,0.08);
}

.gj_header_inner{
	display:flex;
	align-items:center;
	width:100%;
	max-width:1340px;
	height:100%;
	margin:0 auto;
	padding:0 20px;
}

.gj_logo{
	display:flex;
	flex:0 0 auto;
	align-items:center;
	text-decoration:none;
}

.gj_logo img{
	display:block;
	width:180px;
	height:auto;
	max-height:55px;
	object-fit:contain;
}


/*
|--------------------------------------------------------------------------
| PC NAVIGATION
|--------------------------------------------------------------------------
*/

.gj_nav{
	display:flex;
	align-items:stretch;
	justify-content:center;
	align-self:stretch;
	gap:0;
	min-width:0;
	margin:0 auto;
	padding:0 24px;
}

.gj_nav_item{
	position:relative;
	display:flex;
	align-items:stretch;
	height:100%;
}

.gj_nav_main{
	position:relative;
	display:flex;
	align-items:center;
	gap:7px;
	height:100%;
	padding:0 23px;
	color:#222927;
	font-family:"Pretendard","Noto Sans KR",Arial,sans-serif;
	font-size:17px;
	font-weight:650;
	line-height:1;
	letter-spacing:-0.035em;
	text-decoration:none;
	white-space:nowrap;
	transition:color 0.25s ease;
}

.gj_nav_main:after{
	position:absolute;
	right:23px;
	bottom:0;
	left:23px;
	height:3px;
	border-radius:3px 3px 0 0;
	background:#2f6558;
	content:"";
	transform:scaleX(0);
	transform-origin:center;
	transition:transform 0.28s ease;
}

.gj_nav_item:hover .gj_nav_main,
.gj_nav_item:focus-within .gj_nav_main,
.gj_nav_item.is_active .gj_nav_main{
	color:#245f51;
}

.gj_nav_item:hover .gj_nav_main:after,
.gj_nav_item:focus-within .gj_nav_main:after,
.gj_nav_item.is_active .gj_nav_main:after{
	transform:scaleX(1);
}

.gj_nav_arrow{
	display:block;
	width:6px;
	height:6px;
	margin-top:-3px;
	border-right:1.5px solid currentColor;
	border-bottom:1.5px solid currentColor;
	transform:rotate(45deg);
	transition:transform 0.25s ease;
}

.gj_nav_item:hover .gj_nav_arrow,
.gj_nav_item:focus-within .gj_nav_arrow{
	margin-top:3px;
	transform:rotate(225deg);
}


/*
|--------------------------------------------------------------------------
| PC SUBMENU
|--------------------------------------------------------------------------
*/

.gj_nav_sub_wrap{
	position:absolute;
	top:calc(100% - 1px);
	left:50%;
	z-index:20;
	min-width:200px;
	padding-top:12px;
	visibility:hidden;
	opacity:0;
	pointer-events:none;
	transform:translate(-50%, 10px);
	transition:
		opacity 0.22s ease,
		transform 0.22s ease,
		visibility 0.22s ease;
}

.gj_nav_item:hover .gj_nav_sub_wrap,
.gj_nav_item:focus-within .gj_nav_sub_wrap{
	visibility:visible;
	opacity:1;
	pointer-events:auto;
	transform:translate(-50%, 0);
}

.gj_nav_sub{
	position:relative;
	overflow:hidden;
	min-width:210px;
	padding:10px;
	border:1px solid rgba(22,49,43,0.09);
	border-radius:16px;
	background:rgba(255,255,255,0.98);
	box-shadow:
		0 20px 50px rgba(20,45,39,0.13),
		0 3px 10px rgba(20,45,39,0.04);
	backdrop-filter:blur(16px);
	-webkit-backdrop-filter:blur(16px);
}

.gj_nav_sub:before{
	position:absolute;
	top:0;
	left:18px;
	width:34px;
	height:3px;
	border-radius:0 0 4px 4px;
	background:#366f60;
	content:"";
}

.gj_nav_sub a{
	position:relative;
	display:flex;
	align-items:center;
	min-height:43px;
	padding:10px 13px;
	border-radius:10px;
	color:#4c5653;
	font-size:14px;
	font-weight:550;
	line-height:1.35;
	letter-spacing:-0.025em;
	text-decoration:none;
	white-space:nowrap;
	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		padding-left 0.2s ease;
}

.gj_nav_sub a:hover,
.gj_nav_sub a:focus,
.gj_nav_sub a.is_active{
	padding-left:17px;
	color:#245f51;
	background:#f0f6f4;
	outline:none;
}

.gj_nav_sub a.is_active{
	font-weight:700;
}


/*
|--------------------------------------------------------------------------
| HEADER UTIL
|--------------------------------------------------------------------------
*/

.gj_header_util{
	display:flex;
	flex:0 0 auto;
	align-items:center;
	gap:19px;
}

.gj_header_tel{
	color:#294a42;
	font-size:15px;
	font-weight:750;
	letter-spacing:0.03em;
	text-decoration:none;
	white-space:nowrap;
}

.gj_menu_btn{
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	gap:5px;
	width:46px;
	height:46px;
	margin:0;
	padding:0;
	border:0;
	border-radius:50%;
	background:#264f45;
	cursor:pointer;
	transition:
		background-color 0.25s ease,
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.gj_menu_btn:hover{
	background:#1e4038;
	box-shadow:0 8px 20px rgba(30,64,56,0.18);
	transform:translateY(-2px);
}

.gj_menu_btn i{
	display:block;
	width:18px;
	height:1.5px;
	border-radius:2px;
	background:#fff;
	transition:
		width 0.25s ease,
		transform 0.25s ease;
}

.gj_menu_btn:hover i:nth-child(2){
	width:13px;
}


/*
|--------------------------------------------------------------------------
| MOBILE MENU BACKGROUND
|--------------------------------------------------------------------------
*/

.gj_mobile_menu_dim{
	position:fixed;
	inset:0;
	z-index:1990;
	visibility:hidden;
	background:rgba(8,17,15,0.44);
	opacity:0;
	backdrop-filter:blur(3px);
	-webkit-backdrop-filter:blur(3px);
	transition:
		opacity 0.32s ease,
		visibility 0.32s ease;
}

.gj_mobile_menu_dim.is_open{
	visibility:visible;
	opacity:1;
}


/*
|--------------------------------------------------------------------------
| MOBILE MENU PANEL
|--------------------------------------------------------------------------
*/

.gj_mobile_menu{
	position:fixed;
	top:0;
	right:0;
	z-index:2000;
	display:flex;
	flex-direction:column;
	visibility:hidden;
	width:100%;
	max-width:430px;
	height:100%;
	height:100dvh;
	background:#fff;
	box-shadow:-24px 0 60px rgba(15,33,29,0.2);
	opacity:0;
	transform:translateX(100%);
	transition:
		transform 0.38s cubic-bezier(0.22,1,0.36,1),
		opacity 0.3s ease,
		visibility 0.38s ease;
	font-family:"Pretendard","Noto Sans KR",Arial,sans-serif;
}

.gj_mobile_menu.is_open{
	visibility:visible;
	opacity:1;
	transform:translateX(0);
}

.gj_mobile_menu_top{
	display:flex;
	flex:0 0 auto;
	align-items:center;
	justify-content:space-between;
	min-height:86px;
	padding:18px 24px;
	border-bottom:1px solid #edf0ef;
}

.gj_mobile_menu_brand{
	display:flex;
	flex-direction:column;
	gap:3px;
}

.gj_mobile_menu_brand span{
	color:#7b8884;
	font-size:10px;
	font-weight:700;
	line-height:1;
	letter-spacing:0.16em;
}

.gj_mobile_menu_brand strong{
	color:#234d42;
	font-size:17px;
	font-weight:800;
	line-height:1.2;
	letter-spacing:0.03em;
}

.gj_mobile_menu_close{
	position:relative;
	width:43px;
	height:43px;
	margin:0;
	padding:0;
	border:0;
	border-radius:50%;
	background:#f1f5f4;
	cursor:pointer;
	transition:
		background-color 0.25s ease,
		transform 0.25s ease;
}

.gj_mobile_menu_close:hover{
	background:#e4eeeb;
	transform:rotate(5deg);
}

.gj_mobile_menu_close i{
	position:absolute;
	top:50%;
	left:50%;
	width:17px;
	height:1.5px;
	border-radius:2px;
	background:#254e43;
}

.gj_mobile_menu_close i:first-child{
	transform:translate(-50%,-50%) rotate(45deg);
}

.gj_mobile_menu_close i:last-child{
	transform:translate(-50%,-50%) rotate(-45deg);
}

.gj_mobile_menu_body{
	overflow-x:hidden;
	overflow-y:auto;
	flex:1 1 auto;
	padding:13px 24px 32px;
	overscroll-behavior:contain;
	-webkit-overflow-scrolling:touch;
}

.gj_mobile_nav{
	display:block;
	width:100%;
}

.gj_mobile_nav_item{
	border-bottom:1px solid #eef1f0;
}

.gj_mobile_nav_head{
	display:flex;
	align-items:stretch;
	width:100%;
	min-height:61px;
}

.gj_mobile_nav_link{
	display:flex;
	flex:1 1 auto;
	align-items:center;
	min-width:0;
	padding:16px 5px;
	color:#202825;
	font-size:18px;
	font-weight:680;
	line-height:1.35;
	letter-spacing:-0.04em;
	text-decoration:none;
	transition:
		color 0.25s ease,
		padding-left 0.25s ease;
}

.gj_mobile_nav_item.is_current > .gj_mobile_nav_head .gj_mobile_nav_link{
	padding-left:10px;
	color:#286152;
}

.gj_mobile_sub_toggle{
	position:relative;
	flex:0 0 52px;
	width:52px;
	margin:0;
	padding:0;
	border:0;
	background:transparent;
	cursor:pointer;
}

.gj_mobile_sub_toggle:before{
	position:absolute;
	top:50%;
	left:50%;
	width:34px;
	height:34px;
	border-radius:50%;
	background:#f3f6f5;
	content:"";
	transform:translate(-50%,-50%);
	transition:background-color 0.25s ease;
}

.gj_mobile_sub_toggle i{
	position:absolute;
	top:50%;
	left:50%;
	z-index:1;
	width:8px;
	height:8px;
	margin-top:-3px;
	border-right:1.5px solid #3b5650;
	border-bottom:1.5px solid #3b5650;
	transform:translate(-50%,-50%) rotate(45deg);
	transition:
		margin-top 0.3s ease,
		transform 0.3s ease;
}

.gj_mobile_nav_item.is_open .gj_mobile_sub_toggle:before{
	background:#e4efec;
}

.gj_mobile_nav_item.is_open .gj_mobile_sub_toggle i{
	margin-top:3px;
	transform:translate(-50%,-50%) rotate(225deg);
}


/*
|--------------------------------------------------------------------------
| MOBILE SUBMENU
|--------------------------------------------------------------------------
*/

.gj_mobile_submenu{
	overflow:hidden;
	height:0;
	opacity:0;
	transition:
		height 0.38s cubic-bezier(0.22,1,0.36,1),
		opacity 0.25s ease;
}

.gj_mobile_nav_item.is_open .gj_mobile_submenu{
	opacity:1;
}

.gj_mobile_submenu_inner{
	margin:0 0 14px;
	padding:9px;
	border-radius:14px;
	background:#f5f8f7;
}

.gj_mobile_submenu a{
	position:relative;
	display:flex;
	align-items:center;
	min-height:43px;
	padding:10px 13px 10px 27px;
	border-radius:9px;
	color:#66706d;
	font-size:14px;
	font-weight:520;
	line-height:1.4;
	letter-spacing:-0.025em;
	text-decoration:none;
	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		padding-left 0.2s ease;
}

.gj_mobile_submenu a:before{
	position:absolute;
	top:50%;
	left:14px;
	width:4px;
	height:4px;
	border-radius:50%;
	background:#aab5b2;
	content:"";
	transform:translateY(-50%);
	transition:background-color 0.2s ease;
}

.gj_mobile_submenu a:hover,
.gj_mobile_submenu a:focus,
.gj_mobile_submenu a.is_active{
	padding-left:30px;
	color:#245f51;
	background:#fff;
	outline:none;
}

.gj_mobile_submenu a:hover:before,
.gj_mobile_submenu a:focus:before,
.gj_mobile_submenu a.is_active:before{
	background:#2d6b5b;
}

.gj_mobile_submenu a.is_active{
	font-weight:700;
	box-shadow:0 3px 12px rgba(30,71,61,0.06);
}


/*
|--------------------------------------------------------------------------
| MOBILE MEMBER LINKS
|--------------------------------------------------------------------------
*/

.gj_mobile_member{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:9px;
	margin-top:25px;
}

.gj_mobile_member a{
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	min-width:0;
	min-height:105px;
	padding:17px;
	border-radius:15px;
	background:#eef4f2;
	color:#294f45;
	text-decoration:none;
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.gj_mobile_member a:last-child{
	background:#294f45;
	color:#fff;
}

.gj_mobile_member a:hover{
	box-shadow:0 10px 24px rgba(32,70,60,0.12);
	transform:translateY(-3px);
}

.gj_mobile_member span{
	font-size:14px;
	font-weight:700;
	line-height:1.4;
	letter-spacing:-0.025em;
}

.gj_mobile_member i{
	align-self:flex-end;
	font-size:17px;
	font-style:normal;
}


/*
|--------------------------------------------------------------------------
| BODY MENU OPEN
|--------------------------------------------------------------------------
*/

html.gj_menu_open,
body.gj_menu_open{
	overflow:hidden;
}


/*
|--------------------------------------------------------------------------
| MOBILE
|--------------------------------------------------------------------------
*/

@media (max-width:768px){

	.gj_header{
		height:70px;
	}

	.gj_header.is_scrolled{
		position:fixed;
	}

	.gj_header_inner{
		padding:0 16px;
	}

	.gj_logo img{
		width:145px;
		max-height:45px;
	}

	.gj_nav{
		display:none;
	}

	.gj_header_util{
		margin-left:auto;
		gap:10px;
	}

	.gj_header_tel{
		display:none;
	}

	.gj_menu_btn{
		width:42px;
		height:42px;
	}

	.gj_mobile_menu{
		max-width:none;
	}

	.gj_mobile_menu_top{
		min-height:76px;
		padding:15px 18px;
	}

	.gj_mobile_menu_body{
		padding:10px 18px 26px;
	}

	.gj_mobile_nav_link{
		font-size:17px;
	}

	.gj_mobile_member{
		grid-template-columns:1fr 1fr;
	}
}




/*
|--------------------------------------------------------------------------
| 푸터
|--------------------------------------------------------------------------
*/

.gj_footer{
	padding:75px 0 50px;
	color:#bbb;
	background:#211f1e;
}

.gj_footer_time{
	padding-bottom:45px;
	border-bottom:1px solid #444;
}

.gj_footer_time strong{
	display:block;
	margin-bottom:18px;
	color:#fff;
	font-size:18px;
}

.gj_footer_time p{
	color:#fff;
}

.gj_footer_time i{
	display:inline-block;
	height:12px;
	margin:0 18px;
	border-left:1px solid #555;
}

.gj_footer_time span{
	font-size:12px;
}

.gj_footer_info{
	position:relative;
	padding-top:45px;
}

.gj_logo.white{
	position:absolute;
	top:45px;
	right:0;
	color:#fff;
}

.gj_footer_info p{
	font-size:12px;
	line-height:2;
}

.gj_footer_info small{
	font-size:10px;
}

/*
|--------------------------------------------------------------------------
| SNS 팝업
|--------------------------------------------------------------------------
*/

.gj_sns_popup{
	position:fixed;
	z-index:40;
	right:30px;
	bottom:30px;
	width:260px;
	padding:15px;
	color:#fff;
	background:#8b7362;
	box-shadow:0 10px 40px rgba(0,0,0,0.2);
}

.gj_sns_popup > a{
	display:block;
	padding:30px 15px;
	background:rgba(255,255,255,0.08);
}

.gj_sns_popup span,
.gj_sns_popup em{
	display:block;
	font-size:10px;
	letter-spacing:1px;
}

.gj_sns_popup strong{
	display:block;
	margin:15px 0 35px;
	font-size:21px;
}

.gj_sns_popup em{
	font-style:normal;
}

.gj_sns_popup > button{
	position:absolute;
	top:5px;
	right:8px;
	border:0;
	color:#fff;
	background:none;
	font-size:20px;
	cursor:pointer;
}

.gj_sns_popup label{
	display:block;
	padding-top:12px;
	font-size:11px;
}

.gj_mobile_quick{
	display:none;
}
/*
|--------------------------------------------------------------------------
| 모바일
| PC 설정은 위에서 유지하고 768px 이하에서만 1열로 변경
|--------------------------------------------------------------------------
*/

@media (max-width:768px){

	html,
	body{
		width:100%;
		max-width:100%;
		margin:0;
		overflow-x:hidden;
	}

	.gj_main,
	.gj_main section,
	.gj_main header,
	.gj_main footer{
		width:100%;
		max-width:100%;
		overflow-x:hidden;
	}

	.gj_main *,
	.gj_main *:before,
	.gj_main *:after{
		min-width:0;
	}

	.gj_main img,
	.gj_main iframe,
	.gj_main video{
		width:auto;
		max-width:100%;
		height:auto;
	}

	.gj_main h1,
	.gj_main h2,
	.gj_main h3,
	.gj_main h4,
	.gj_main p,
	.gj_main span,
	.gj_main strong,
	.gj_main a{
		overflow-wrap:break-word;
		word-break:keep-all;
	}

	.gj_inner{
		width:calc(100% - 32px);
		max-width:none;
	}
	/*
	| 모바일 헤더
	*/

	.gj_header{
		height:66px;
	}

	.gj_header.is_fixed{
		height:66px;
	}

	.gj_header_inner{
		padding:0 16px;
	}

	.gj_logo{
		flex:0 0 auto;
		width:145px;
		height:auto;
	}

	.gj_logo img{
		width:145px;
		height:auto;
		max-width:100%;
	}

	.gj_nav,
	.gj_header_util > a{
		display:none;
	}

	.gj_mobile_menu{
		right:0;
		width:100%;
		max-width:100%;
		padding:24px 20px;
	}
	/*
	| 푸터
	*/

	.gj_footer{
		padding-bottom:95px;
	}

	.gj_footer_time p{
		line-height:2;
	}

	.gj_footer_time i{
		display:none;
	}

	.gj_footer_time b{
		margin-right:14px;
	}

	.gj_logo.white{
		position:static;
		margin-bottom:25px;
	}

	/*
	| SNS 팝업
	*/

	.gj_sns_popup{
		right:16px;
		bottom:78px;
		width:calc(100% - 32px);
		max-width:calc(100% - 32px);
	}

	/*
	| 모바일 하단 메뉴
	*/

	.gj_mobile_quick{
		position:fixed;
		z-index:45;
		right:0;
		bottom:0;
		left:0;
		display:grid;
		grid-template-columns:repeat(3,minmax(0,1fr));
		width:100%;
		height:58px;
		color:#fff;
		background:#3b3430;
	}

	.gj_mobile_quick a{
		display:flex;
		align-items:center;
		justify-content:center;
		min-width:0;
		border-right:1px solid rgba(255,255,255,0.15);
		font-size:12px;
	}

	.gj_mobile_quick a:last-child{
		border-right:0;
	}
}