/* ============================================================
   layout.css : 전체 틀 · 헤더(PC/모바일 메뉴) · 서브메뉴 · 페이지 제목
                · 섹션 · 그리드 · 푸터
   반응형 기준 : 1239px(고정폭 해제) / 1024px(모바일 메뉴) / 768px(1단)
   ============================================================ */

/***** 전체 틀 *****/
.softice_wrap {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-width: 1200px;
}
.softice_body {
	position: relative;
	flex: 1;
}
.inner {
	position: relative;
	width: 1200px;
	margin: 0 auto;
}
section {
	position: relative;
	width: 100%;
	padding: 20px 0;
}

@media (max-width: 1239px) {
	.softice_wrap {
		min-width: 0;
	}
	.inner {
		width: auto;
		max-width: 1200px;
		padding: 0 20px;
	}
}
@media (max-width: 768px) {
	.inner {
		padding: 0 16px;
	}
}


/***** 헤더 *****/
.softice_header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
	width: 100%;
	height: 100px;
	line-height: 100px;
	box-sizing: border-box;
	color: #fff;
	transition: all .25s ease;
}
.softice_header.on {
	background: var(--color-navy);
	color: #fff;
	transition: all .25s ease;
}
.softice_header.on .top_logo {
	margin-top: 0;
	height: 100px;
	background: transparent;
}
.softice_header.on .top_logo img {
	width: 100%;
}

.top_logo {
	float: left;
	background-size: contain;
	width: 210px;
	margin-top: 0px;
	padding: 30px;
	line-height: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	cursor: pointer;
	transition: all .25s ease;
}
.top_logo img {
	width: 100%;
	margin: 0;
}
.logo-lg {
	display: inline-block;
}
.logo-lg.on {
	display: none;
}
.logo-md {
	display: none;
}
.logo-md.on {
	display: inline-block;
}

.top_nav {
	display: inline-block;
	margin-left: 60px;
}
.top_nav ul li {
	float: left;
	margin-left: 50px;
}
.top_nav ul li a {
	padding: 0;
	position: relative;
	height: 100%;
	display: inline-block;
	font-size: 18px;
	font-weight: 100;
	text-transform: uppercase;
}
.top_nav ul li a:hover {
	color: #3a8deb;
}
.top_nav ul li a:before {
	content: '';
	display: inline-block;
	width: 0;
	height: 3px;
	background: #ffffff;
	position: absolute;
	bottom: 25px;
	left: 0;
	transition: width .25s ease;
}
.top_nav ul li a.on:before {
	width: 100%;
	transition: width .25s ease;
}
#gnb a.gnb_tel,
#gnb a.gnb_tel:hover {
	color: orange;
	font-weight: 700;
}

.top_right {
	float: right;
}
.btn_top {
	padding: 10px 30px;
	border: 1px solid #fff;
	color: #fff;
}
.btn_top:hover {
	background: #fff;
	color: #0078ff;
}

/* 모바일 메뉴 버튼 / 메뉴 안 '온라인 문의' (js/mobile-nav.js 가 추가) */
.m_menu_btn,
#gnb .m_only {
	display: none;
}

@media (max-width: 1239px) {
	.top_nav {
		margin-left: 20px;
	}
	.top_nav ul li {
		margin-left: 28px;
	}
	.top_nav ul li a {
		font-size: 16px;
	}
}

@media (max-width: 1024px) {
	.softice_header,
	.softice_header.on {
		height: 64px;
		line-height: 64px;
		background: var(--color-navy);
	}
	.header_wrap {
		position: relative;
		height: 64px;
	}
	.top_logo,
	.softice_header.on .top_logo {
		width: 140px;
		height: 64px;
		padding: 12px 0;
	}
	.top_right {
		display: none;
	}

	.m_menu_btn {
		display: block;
		position: absolute;
		top: 12px;
		right: 20px;
		width: 40px;
		height: 40px;
		padding: 10px 8px;
		background: transparent;
		cursor: pointer;
	}
	.m_menu_btn span {
		display: block;
		height: 2px;
		margin-bottom: 7px;
		background: #fff;
		transition: all .25s ease;
	}
	.m_menu_btn span:last-child {
		margin-bottom: 0;
	}
	.nav_open .m_menu_btn span:nth-child(1) {
		transform: translateY(9px) rotate(45deg);
	}
	.nav_open .m_menu_btn span:nth-child(2) {
		opacity: 0;
	}
	.nav_open .m_menu_btn span:nth-child(3) {
		transform: translateY(-9px) rotate(-45deg);
	}

	.top_nav {
		display: none;
		position: fixed;
		top: 64px;
		left: 0;
		right: 0;
		margin: 0;
		background: var(--color-navy);
		border-top: 1px solid rgba(255, 255, 255, .15);
		box-shadow: 0 8px 16px rgba(0, 0, 0, .3);
	}
	.nav_open .top_nav {
		display: block;
	}
	.top_nav ul li {
		float: none;
		margin: 0;
		border-bottom: 1px solid rgba(255, 255, 255, .1);
	}
	.top_nav ul li a {
		display: block;
		padding: 0 20px;
		line-height: 52px;
		font-size: 16px;
		font-weight: 300;
	}
	.top_nav ul li a:before {
		display: none;
	}
	.top_nav ul li a.on {
		font-weight: 700;
	}
	#gnb .m_only {
		display: block;
	}
}

@media (max-width: 768px) {
	.m_menu_btn {
		right: 16px;
	}
}


/***** 서브메뉴 *****/
.sub_nav {
	position: sticky;
	top: 100px;
	background: #ffffff;
	-webkit-box-shadow: 6px 8px 16px 0 rgb(0 0 0 / 10%);
	-moz-box-shadow: 6px 8px 16px 0 rgba(0, 0, 0, .1);
	box-shadow: 6px 8px 16px 0 rgb(0 0 0 / 10%);
	z-index: 10;
}
.sub_nav ul {
	display: flex;
}
.sub_nav ul li {
	flex: 1;
	position: relative;
	font-size: 1rem;
	font-weight: 700;
	border-left: 1px solid rgba(0, 0, 0, .1);
}
.sub_nav ul li:last-child {
	border-right: 1px solid rgba(0, 0, 0, .1);
}
.sub_nav ul li a {
	width: 100%;
	padding: 20px;
	display: inline-block;
	text-align: center;
	color: #000;
}
.sub_nav ul li a:hover {
	color: var(--color-point);
}
.sub_nav ul li.active a {
	color: #fff;
	background: var(--color-point);
}

@media (max-width: 1024px) {
	.sub_nav {
		top: 64px;
	}
}
@media (max-width: 768px) {
	.sub_nav ul {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0;
	}
	.sub_nav ul li {
		flex: 0 0 auto;
		font-size: 14px;
	}
	.sub_nav ul li a {
		padding: 14px 16px;
		white-space: nowrap;
	}
}


/***** 페이지 제목 *****/
.page_title {
	position: relative;
	height: 200px;
	padding-top: 100px;
	color: #fff;
	text-align: center;
	background-color: #343b58;
	background-size: cover;
	background-position: center center;
}
.page_title h2 {
	font-size: 42px;
	font-weight: 700;
}
.page_title h3 {
	font-size: 20px;
	font-weight: 300;
}
.page_title.solution {
	background-image: url(../img/title_solution_bg.webp);
}
.page_title.service {
	background-image: url(../img/title_service_bg.webp);
}
.page_title.support {
	background-image: url(../img/title_support_bg.webp);
}

@media (max-width: 1024px) {
	.page_title {
		height: auto;
		padding: 104px 0 40px;
	}
	.page_title h2 {
		font-size: 30px;
	}
}


/***** 그리드 (12칸) *****/
.grid_wrap {
	width: 100%;
	display: grid;
	grid-gap: 30px;
	margin: 0 auto;
	grid-template-columns: repeat(12, 1fr);
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.span-4 {
	grid-column: span 4;
}
.span-6 {
	grid-column: span 6;
}
.span-3 {
	grid-column: span 3;
}

@media (max-width: 1024px) {
	.span-3,
	.span-4 {
		grid-column: span 6;
	}
}
@media (max-width: 768px) {
	.grid_wrap {
		grid-gap: 20px;
	}
	.span-3,
	.span-4,
	.span-6 {
		grid-column: span 12;
	}
}


/***** 푸터 *****/
.softice_footer {
	padding: 20px 0;
	background: #323237;
	color: #cccccc;
	font-size: 12px;
}
.footer_wrap {
	display: flex;
}
.footer_info {
	font-size: 1rem;
	flex: 1;
}
.footer_info h2 {
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 5px;
}
.copyright {
	margin: 15px 0;
}

@media (max-width: 768px) {
	.address,
	.copyright {
		text-align: center;
	}
}
