.page_42_wrap{
	--page_42_navy:#142d59;
	--page_42_blue:#3269aa;
	--page_42_light:#f4f7fb;
	--page_42_text:#252c36;
	--page_42_sub:#687383;
	--page_42_line:#e1e7ef;

	width:100%;
	margin:0;
	padding:0;
	background:#fff;
	color:var(--page_42_text);
	font-family:
		Pretendard,
		"Noto Sans KR",
		"Malgun Gothic",
		Arial,
		sans-serif;
	box-sizing:border-box;
	overflow:hidden;
}

.page_42_wrap *,
.page_42_wrap *:before,
.page_42_wrap *:after{
	box-sizing:border-box;
}

.page_42_wrap a{
	text-decoration:none;
}

/* =========================================================
   상단 히어로
========================================================= */

.page_42_hero{
	position:relative;
	display:flex;
	align-items:center;
	width:100%;
	min-height:500px;
	padding:100px 30px;
	background:
		linear-gradient(
			135deg,
			#0c2348 0%,
			#142d59 48%,
			#31577f 100%
		);
	overflow:hidden;
}

.page_42_hero:before{
	content:"";
	position:absolute;
	right:-100px;
	top:-180px;
	width:520px;
	height:520px;
	border:1px solid rgba(255,255,255,.13);
	border-radius:50%;
}

.page_42_hero:after{
	content:"";
	position:absolute;
	right:150px;
	bottom:-270px;
	width:500px;
	height:500px;
	border:100px solid rgba(255,255,255,.04);
	border-radius:50%;
}

.page_42_hero_inner{
	position:relative;
	z-index:2;
	width:100%;
	max-width:1320px;
	margin:0 auto;
}

.page_42_eyebrow{
	display:flex;
	align-items:center;
	gap:12px;
	margin:0 0 22px;
	color:#b9cce7;
	font-size:14px;
	font-weight:700;
	letter-spacing:.18em;
}

.page_42_eyebrow:before{
	content:"";
	display:block;
	width:38px;
	height:1px;
	background:#b9cce7;
}

.page_42_title{
	margin:0;
	color:#fff;
	font-size:54px;
	font-weight:300;
	line-height:1.2;
	letter-spacing:-.05em;
}

.page_42_title strong{
	font-weight:700;
}

.page_42_hero_text{
	max-width:650px;
	margin:22px 0 0;
	color:rgba(255,255,255,.78);
	font-size:17px;
	font-weight:400;
	line-height:1.8;
	letter-spacing:-.02em;
}

.page_42_hero_badges{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:34px;
}

.page_42_hero_badge{
	display:inline-flex;
	align-items:center;
	min-height:42px;
	padding:0 18px;
	border:1px solid rgba(255,255,255,.23);
	border-radius:50px;
	background:rgba(255,255,255,.08);
	color:#fff;
	font-size:14px;
	font-weight:600;
}

/* =========================================================
   공통 섹션
========================================================= */

.page_42_section{
	width:100%;
	padding:100px 30px;
}

.page_42_section_inner{
	width:100%;
	max-width:1320px;
	margin:0 auto;
}

.page_42_section_head{
	margin-bottom:45px;
	text-align:center;
}

.page_42_section_kicker{
	margin:0 0 12px;
	color:var(--page_42_blue);
	font-size:13px;
	font-weight:800;
	letter-spacing:.18em;
}

.page_42_section_title{
	margin:0;
	color:var(--page_42_navy);
	font-size:38px;
	font-weight:700;
	line-height:1.35;
	letter-spacing:-.05em;
}

.page_42_section_desc{
	margin:14px 0 0;
	color:var(--page_42_sub);
	font-size:16px;
	line-height:1.8;
	letter-spacing:-.025em;
}

/* =========================================================
   주소 및 기본 정보
========================================================= */

.page_42_location_grid{
	display:grid;
	grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
	gap:24px;
	align-items:stretch;
}

.page_42_address_card{
	position:relative;
	min-height:100%;
	padding:52px;
	border-radius:28px;
	background:var(--page_42_navy);
	box-shadow:0 24px 50px rgba(20,45,89,.14);
	overflow:hidden;
}

.page_42_address_card:after{
	content:"";
	position:absolute;
	right:-110px;
	bottom:-150px;
	width:340px;
	height:340px;
	border:70px solid rgba(255,255,255,.04);
	border-radius:50%;
}

.page_42_address_label{
	position:relative;
	z-index:1;
	margin:0 0 18px;
	color:#aebfda;
	font-size:13px;
	font-weight:700;
	letter-spacing:.18em;
}

.page_42_address{
	position:relative;
	z-index:1;
	margin:0;
	color:#fff;
	font-size:28px;
	font-weight:700;
	line-height:1.55;
	letter-spacing:-.04em;
}

.page_42_floor{
	position:relative;
	z-index:1;
	display:inline-flex;
	align-items:center;
	margin-top:20px;
	padding:8px 14px;
	border-radius:6px;
	background:rgba(255,255,255,.11);
	color:#d9e4f3;
	font-size:14px;
	font-weight:600;
}

.page_42_action_group{
	position:relative;
	z-index:1;
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:36px;
}

.page_42_action{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	padding:0 20px;
	border:1px solid rgba(255,255,255,.22);
	border-radius:8px;
	background:rgba(255,255,255,.08);
	color:#fff !important;
	-webkit-text-fill-color:#fff !important;
	font-family:inherit;
	font-size:14px;
	font-weight:700;
	cursor:pointer;
	transition:.25s ease;
}

.page_42_action:hover{
	border-color:#fff;
	background:#fff;
	color:var(--page_42_navy) !important;
	-webkit-text-fill-color:var(--page_42_navy) !important;
	transform:translateY(-2px);
}

.page_42_info_cards{
	display:grid;
	grid-template-columns:1fr;
	gap:16px;
}

.page_42_info_card{
	display:flex;
	align-items:center;
	gap:22px;
	min-height:128px;
	padding:27px 30px;
	border:1px solid var(--page_42_line);
	border-radius:20px;
	background:#fff;
	box-shadow:0 12px 35px rgba(30,49,77,.055);
}

.page_42_info_icon{
	display:flex;
	flex:0 0 58px;
	align-items:center;
	justify-content:center;
	width:58px;
	height:58px;
	border-radius:18px;
	background:#edf3fa;
	color:var(--page_42_navy);
	font-size:25px;
	font-weight:800;
}

.page_42_info_label{
	margin:0 0 7px;
	color:#8791a0;
	font-size:12px;
	font-weight:800;
	letter-spacing:.12em;
}

.page_42_info_value{
	margin:0;
	color:var(--page_42_text);
	font-size:20px;
	font-weight:700;
	line-height:1.5;
	letter-spacing:-.03em;
}

.page_42_phone_link{
	color:var(--page_42_navy) !important;
	-webkit-text-fill-color:var(--page_42_navy) !important;
	font-size:25px;
	font-weight:800;
}

/* =========================================================
   카카오맵
========================================================= */

.page_42_map_section{
	background:var(--page_42_light);
}

/*
	지도 400px + 카카오 장소 정보 영역 약 60px
*/
.page_42_map_box{
	position:relative;
	width:100%;
	max-width:100%;
	height:460px;
	margin:0;
	padding:0;
	border-radius:28px;
	background:#e7ebf0;
	box-shadow:0 24px 55px rgba(23,40,65,.11);
	overflow:hidden;
}

/* 카카오맵 최상위 영역 */
.page_42_map_box .root_daum_roughmap{
	display:block !important;
	width:100% !important;
	max-width:100% !important;
	height:460px !important;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	box-sizing:border-box !important;
}

/* 실제 지도 영역 */
.page_42_map_box .root_daum_roughmap .wrap_map{
	width:100% !important;
	max-width:none !important;
	height:400px !important;
	margin:0 !important;
	padding:0 !important;
}

/* 지도 내부 map 영역 */
.page_42_map_box .root_daum_roughmap .map{
	width:100% !important;
	max-width:none !important;
}

/* 카카오맵 하단 정보 영역 */
.page_42_map_box .root_daum_roughmap .wrap_controllers{
	width:100% !important;
	max-width:none !important;
	height:60px !important;
	margin:0 !important;
	box-sizing:border-box !important;
	border:0 !important;
	border-top:1px solid #e1e5eb !important;
	background:#fff !important;
}

/* 사이트 공통 img max-width 충돌 방지 */
.page_42_map_box .root_daum_roughmap img{
	max-width:none !important;
}

/* 지도 로딩 안내 */
.page_42_map_loading{
	position:absolute;
	left:0;
	top:0;
	z-index:0;
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	color:#788596;
	font-size:14px;
	font-weight:600;
}

/* 지도 서비스 버튼 */
.page_42_navigation{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:14px;
	margin-top:22px;
}

.page_42_navigation_link{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:62px;
	padding:0 18px;
	border:1px solid var(--page_42_line);
	border-radius:14px;
	background:#fff;
	color:#252b35 !important;
	-webkit-text-fill-color:#252b35 !important;
	font-size:15px;
	font-weight:700;
	text-align:center;
	transition:.25s ease;
}

.page_42_navigation_link:hover{
	border-color:var(--page_42_navy);
	color:var(--page_42_navy) !important;
	-webkit-text-fill-color:var(--page_42_navy) !important;
	transform:translateY(-3px);
	box-shadow:0 10px 25px rgba(20,45,89,.1);
}

/* =========================================================
   교통 및 주차 안내
========================================================= */

.page_42_guide_grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:20px;
}

.page_42_guide_card{
	position:relative;
	min-height:290px;
	padding:38px 34px;
	border:1px solid var(--page_42_line);
	border-radius:22px;
	background:#fff;
	transition:.25s ease;
	overflow:hidden;
}

.page_42_guide_card:hover{
	transform:translateY(-5px);
	box-shadow:0 18px 38px rgba(25,44,72,.09);
}

.page_42_guide_number{
	display:flex;
	align-items:center;
	justify-content:center;
	width:48px;
	height:48px;
	margin-bottom:28px;
	border-radius:14px;
	background:var(--page_42_navy);
	color:#fff;
	font-size:14px;
	font-weight:800;
}

.page_42_guide_title{
	margin:0 0 15px;
	color:var(--page_42_navy);
	font-size:22px;
	font-weight:800;
	letter-spacing:-.04em;
}

.page_42_guide_text{
	margin:0;
	color:var(--page_42_sub);
	font-size:15px;
	line-height:1.85;
	letter-spacing:-.02em;
}

.page_42_guide_emphasis{
	display:block;
	margin-top:15px;
	color:var(--page_42_blue);
	font-size:15px;
	font-weight:800;
}

/* =========================================================
   주차 강조 영역
========================================================= */

.page_42_parking{
	margin-top:24px;
	padding:48px 55px;
	border:1px solid #dce6f2;
	border-radius:24px;
	background:linear-gradient(135deg,#edf3fa 0%,#f7f9fc 100%);
}

.page_42_parking_inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:40px;
}

.page_42_parking_title{
	margin:0 0 10px;
	color:var(--page_42_navy);
	font-size:28px;
	font-weight:800;
	letter-spacing:-.04em;
}

.page_42_parking_text{
	margin:0;
	color:#5f6b7b;
	font-size:15px;
	line-height:1.8;
}

.page_42_parking_count{
	flex:0 0 auto;
	color:var(--page_42_navy);
	font-size:20px;
	font-weight:700;
	text-align:right;
}

.page_42_parking_count strong{
	display:block;
	font-size:58px;
	line-height:1;
	letter-spacing:-.05em;
}

.page_42_notice{
	margin:18px 0 0;
	color:#7b8491;
	font-size:13px;
	line-height:1.7;
	text-align:center;
}

/* =========================================================
   하단 전화 문의
========================================================= */

.page_42_contact{
	width:100%;
	padding:78px 30px;
	background:var(--page_42_navy);
	text-align:center;
}

.page_42_contact_title{
	margin:0;
	color:#fff;
	font-size:31px;
	font-weight:700;
	letter-spacing:-.04em;
}

.page_42_contact_desc{
	margin:13px 0 27px;
	color:rgba(255,255,255,.68);
	font-size:15px;
	line-height:1.7;
}

.page_42_contact_call{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:60px;
	padding:0 31px;
	border-radius:50px;
	background:#fff;
	color:var(--page_42_navy) !important;
	-webkit-text-fill-color:var(--page_42_navy) !important;
	font-size:20px;
	font-weight:800;
	box-shadow:0 10px 30px rgba(0,0,0,.15);
	transition:.25s ease;
}

.page_42_contact_call:hover{
	transform:translateY(-3px);
	box-shadow:0 15px 35px rgba(0,0,0,.23);
}

/* =========================================================
   주소 복사 알림
========================================================= */

.page_42_copy_message{
	position:fixed;
	left:50%;
	bottom:35px;
	z-index:9999;
	padding:13px 20px;
	border-radius:50px;
	background:rgba(16,30,50,.92);
	color:#fff;
	font-size:14px;
	font-weight:600;
	white-space:nowrap;
	opacity:0;
	visibility:hidden;
	transform:translate(-50%,15px);
	transition:.25s ease;
}

.page_42_copy_message.page_42_show{
	opacity:1;
	visibility:visible;
	transform:translate(-50%,0);
}

/* =========================================================
   모바일
========================================================= */

@media (max-width:768px){

	.page_42_hero{
		min-height:400px;
		padding:72px 22px;
	}

	.page_42_hero:before{
		right:-230px;
		top:-180px;
	}

	.page_42_hero:after{
		right:-170px;
		bottom:-330px;
	}

	.page_42_title{
		font-size:38px;
		line-height:1.3;
	}

	.page_42_hero_text{
		margin-top:18px;
		font-size:15px;
		line-height:1.75;
	}

	.page_42_hero_text br{
		display:none;
	}

	.page_42_hero_badges{
		margin-top:27px;
	}

	.page_42_hero_badge{
		min-height:38px;
		padding:0 14px;
		font-size:12px;
	}

	.page_42_section{
		padding:70px 18px;
	}

	.page_42_section_head{
		margin-bottom:32px;
	}

	.page_42_section_title{
		font-size:29px;
	}

	.page_42_section_desc{
		font-size:14px;
	}

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

	.page_42_address_card{
		padding:36px 25px;
		border-radius:20px;
	}

	.page_42_address{
		font-size:22px;
	}

	.page_42_action_group{
		display:grid;
		grid-template-columns:1fr 1fr;
		width:100%;
		margin-top:29px;
	}

	.page_42_action{
		width:100%;
		padding:0 12px;
		font-size:13px;
	}

	.page_42_info_card{
		min-height:112px;
		padding:22px 20px;
		gap:17px;
	}

	.page_42_info_icon{
		flex-basis:50px;
		width:50px;
		height:50px;
		border-radius:15px;
		font-size:19px;
	}

	.page_42_info_value{
		font-size:17px;
	}

	.page_42_phone_link{
		font-size:21px;
	}

	/*
		모바일 지도 340px + 하단 정보 60px
	*/
	.page_42_map_box{
		width:100%;
		max-width:100%;
		height:400px;
		border-radius:19px;
	}

	.page_42_map_box .root_daum_roughmap{
		width:100% !important;
		max-width:100% !important;
		height:400px !important;
	}

	.page_42_map_box .root_daum_roughmap .wrap_map{
		width:100% !important;
		height:340px !important;
	}

	.page_42_map_box .root_daum_roughmap .wrap_controllers{
		width:100% !important;
		height:60px !important;
	}

	.page_42_navigation{
		grid-template-columns:1fr;
		gap:10px;
	}

	.page_42_navigation_link{
		min-height:54px;
	}

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

	.page_42_guide_card{
		min-height:auto;
		padding:30px 25px;
	}

	.page_42_parking{
		padding:32px 25px;
	}

	.page_42_parking_inner{
		display:block;
	}

	.page_42_parking_title{
		font-size:23px;
	}

	.page_42_parking_text br{
		display:none;
	}

	.page_42_parking_count{
		margin-top:25px;
		text-align:left;
	}

	.page_42_parking_count strong{
		display:inline;
		margin-right:5px;
		font-size:45px;
	}

	.page_42_contact{
		padding:62px 20px;
	}

	.page_42_contact_title{
		font-size:25px;
	}

	.page_42_contact_call{
		width:100%;
		max-width:340px;
		padding:0 20px;
		font-size:18px;
	}

	.page_42_copy_message{
		max-width:calc(100% - 30px);
		font-size:13px;
	}
}