/* =========================================================
   KSystem Overrides
   ========================================================= */
:root{
	--brand:#6D91B6;
	--brand-2:rgba(109,145,182,.2);
	--brand-8:rgba(109,145,182,.8);
	--brand-10:rgba(109,145,182,.10);
	--brand-35:rgba(109,145,182,.35);

	--bg-soft:#f6f9fc;
	--text-strong:#1f2a37;
	--text-muted:#4b5563;

	--radius-xl:1rem;
	--radius-lg:.75rem;
	--shadow-soft:0 10px 20px rgba(17,24,39,.06), 0 2px 6px rgba(17,24,39,.04);
}

/* Base */
html { 
	scroll-behavior:smooth; 
}
body{
	font-family:"Noto Sans KR",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
	color:var(--text-strong);
	background:var(--bg-soft);
	line-height:1.6;
}
a{
	color:var(--brand); 
}
a:hover, a:focus{
	color:#416b98; 
	text-decoration:underline; 
}

/* Nav / Buttons / Badges */
.navbar,.gnb,nav[role="navigation"]{ 
	font-weight:600; 
	letter-spacing:.01em; 
}
.btn,.xe-btn,button,input[type=submit]{
	border-radius:.6rem; 
}
.btn-primary,.xe-btn-primary{ 
	background:var(--brand); 
	border-color:var(--brand); 
}
.badge,.label{ 
	border-radius:.5rem; 
}

/* Cards & content shells */
.card,.xe-card,.widget,.board,.content,.document_{
	background:#fff;
	border-radius:var(--radius-xl);
	box-shadow:var(--shadow-soft);
	border:1px solid rgba(17,24,39,.06);
}

/* Footer */
.footer{ 
	background:#2c3a52; 
}
.footer .sub_desc{ 
	color:#f0f4fa; 
}
.footer a{ 
	color:#e2e8f0; 
}
.footer .copyright{ 
	opacity:.85; 
}

/* Tables */
.table,table{
	border-collapse:separate; 
	border-spacing:0; 
}
.table th,.table td{
	padding:.85rem 1rem; 
}
.table thead th{
	background:#eef3f9; 
	color:#0f172a; 
}
.table tbody tr:hover{ 
	background:#f8fafc; 
}

/* Forms */
.form-control,input,select,textarea{
	border-radius:.75rem;
	border:1px solid #d1d5db;
	padding:.7rem .9rem;
}
.form-control:focus,input:focus,select:focus,textarea:focus{
	outline:none;
	border-color:var(--brand);
	box-shadow:0 0 0 .25rem var(--brand-2);
}

/* Alerts */
.alert,.message{ 
	border-radius:.75rem; 
}
.alert-info{ 
	background:#eef6ff; 
	color:#0b3d71; 
	border-color:#cfe3ff; 
}

/* Tagline banner */
.tagline-banner{
	display:flex; 
	align-items:center; 
	gap:.75rem;
	padding:.6rem 1rem;
	background:linear-gradient(90deg,var(--brand) 0%,#8fb0d2 100%);
	color:#fff; 
	font-weight:600; 
	border-radius:.75rem;
	margin:.75rem 0;
}
.tagline-banner .emoji{
	filter:drop-shadow(0 2px 6px rgba(0,0,0,.15)); 
}

/* Screen reader only */
.sr-only{
	position:absolute; 
	width:1px; 
	height:1px; 
	padding:0; 
	margin:-1px;
	overflow:hidden; 
	clip:rect(0,0,0,0); 
	white-space:nowrap; 
	border:0;
}

/* ===== Hamburger (3-line icon) ===== */
.menu_btn{
	position:relative; 
	z-index:5; 
	display:inline-flex; 
	align-items:center; 
	justify-content:center;
	width:56px; 
	height:56px; 
	background:transparent; 
	box-shadow:none; 
	border:0; 
	cursor:pointer;
	border-radius:.6rem; 
	transition:background-color .2s ease;
}
.menu_btn:hover,.menu_btn:focus{
	background-color:var(--brand-8); 
	outline:none; 
}
.header .menu_btn{
	margin-left:auto;
	margin-right:8px; 
}

.hamburger{ 
	position:relative; 
	width:28px; 
	height:20px; 
	display:block; 
}
.hamburger i{
	position:absolute; 
	left:0; 
	right:0; 
	height:3px; 
	background:var(--text-strong);
	border-radius:2px; 
	transition:transform .25s,opacity .25s;
}
.hamburger i:nth-child(1){ 
	top:0; 
}
.hamburger i:nth-child(2){ 
	top:8.5px; 
}
.hamburger i:nth-child(3){ 
	bottom:0; 
}
.menu_btn.active .hamburger i:nth-child(1){ 
	transform:translateY(8.5px) rotate(45deg); 
}
.menu_btn.active .hamburger i:nth-child(2){
	opacity:0; 
}
.menu_btn.active .hamburger i:nth-child(3){
	transform:translateY(-8.5px) rotate(-45deg); 
}

/* ===== Responsive basics ===== */
@media (max-width:768px){
	.card,.xe-card{
		border-radius:.9rem; 
	}
}

/* ===== GNB toggle rules ===== */
@media (min-width:992px){
	.menu_btn{ 
		display:none; 
	}
	#gnb>ul{ 
		display:flex; 
	}
}
@media (max-width:991.98px){
	#gnb{ 
		display:block; 
	}
	#gnb>ul{ 
		display:none; 
	}
	#gnb.is-open>ul{
		display:block; 
	}
}

/* Header & GNB look */
.gnb{
	background:transparent !important; 
	box-shadow:none !important; 
}
.header{
	border-bottom:1px solid rgba(17,24,39,.06); 
}

/* GNB layout & states */
.gnb>ul{
	display:flex; 
	gap:1.4rem; 
	align-items:center; 
}
.gnb a{
	color:#667085;
	text-decoration:none;
	padding:.75rem .25rem;
}
.gnb a:hover{
	color:var(--text-strong);
}
.gnb .is-active>a{
	color:var(--text-strong);
	border-bottom:2px solid var(--brand);
	margin-bottom:-2px;
}

/* LNB */
.lnb li a{
	display:block; 
	padding:.9rem 1.1rem; 
	border-radius:.5rem;
	color:#374151; 
	text-decoration:none;
}
.lnb li a:hover{
	background:var(--brand-10);
	color:#1f2937;
}
.lnb li.on > a,
.lnb li.active > a,
.lnb li.current > a,
.lnb li > a[aria-current="page"]{
	background:var(--brand);
	color:#fff !important;
	font-weight:700;
	box-shadow:0 2px 6px var(--brand-35);
}

/* Sub visual band */
.visual.sub{
	position:relative;
	padding:35px 0;
	background-color:var(--brand);
	line-height:30px;
}
.visual.sub .sub_title h1{
	color:#1d3a5a;
	font-weight:700;
}

/* Content shell tweaks */
.content{
	box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.content > :first-child{
	padding:.75rem 1rem;
}
.content h1 + hr{
	margin:.8rem 0 1.2rem;
	opacity:.4;
}
@media (max-width:768px){
	.content, .content > :first-child{
		box-shadow:0 4px 10px rgba(0,0,0,.05); 
	}
	.content h1 + hr{
		margin:.5rem 0 .8rem; 
	}
}
.body.fixed-width .lnb > ul > li{
	margin-bottom:.35rem;
}
.body.fixed-width .lnb > ul > li > a{
	font-weight:600;
}

/* ===== Swiper (Main visual) ===== */

/* Desktop default height */
.swiper-container > div > div{ 
	height:350px; 
}

/* Mobile: thinner banner */
@media (max-width:768px){
	.visual.swiper-container{
		margin-top:10px;
		height:200px;
		width:100%;
		margin-left:0; margin-right:0;
		border-radius:0;
	}

	/* Fit inner wrapper/slide to container height (절반 배너 사용 시) */
	.visual .swiper-wrapper,
	.visual .swiper-slide{
		height:50%;
	}

	.visual .swiper-slide img{
		width:100%; height:100%; display:block; object-fit:cover;
	}
}

/* Content top spacing when LNB is side-fixed */
.body.fixed-width.left .content,
.body.fixed-width.right .content{ 
	padding-top:20px; 
}