@charset "UTF-8";
@import url('root.css');
@import url('OneMobile.css');
@import url('Pretendard.css');




/*#codeigniter_profiler { display:none; }*/


/* CSS Document */
* { margin:0; padding:0; word-break:keep-all; }
a > * { line-height:0; }
img { border:medium none; }
html { font-size:14px; line-height:14px; }
body { 
	font-family: var(--font-family-base, 'Pretendard', sans-serif) !important; 
	font-weight: 500; line-height: inherit; overflow-x: hidden !important; 
}

/* 중문 페이지(html lang="zh")에서만 기본 폰트 변경 */
:lang(zh) {
	font-family: var(--font-family-base, 'Pretendard', sans-serif) !important;
}

/* 아이콘 폰트는 위 :lang(zh) 전역 폰트 오버라이드에서 예외 (FontAwesome 복원) 2026.07 */
/* 위 규칙(0,1,0 !important)이 .fa 아이콘까지 Pretendard로 강제해 중문에서 아이콘이 깨지던 문제 수정 */
:lang(zh) .fa {
	font-family: 'FontAwesome' !important;
}

/* 서브메뉴(.sub_menu container) 메뉴 링크는 언어와 무관하게 항상 Pretendard 로 표시 (2026.07)
   - 명시도(0,2,3) + !important 로 전역 :lang(zh) 폰트(0,1,0)까지 override → 중문 포함 모든 언어 적용 */
.sub_menu.container ul li a {
	font-family: 'Pretendard', sans-serif !important;
    font-weight: 700 !important;
}

a { color:var(--color-text-default, #000); text-decoration:none; -webkit-transition:all 0.2s ease-in-out 0s; -o-transition:all 0.2s ease-in-out 0s; -moz-transition:all 0.2s ease-in-out 0s; transition:all 0.2s ease-in-out 0s; }
a:hover { color: var(--color-link-hover); text-decoration:none; -webkit-transition:all 0.2s ease-in-out 0s; -o-transition:all 0.2s ease-in-out 0s; -moz-transition:all 0.2s ease-in-out 0s; transition:all 0.2s ease-in-out 0s; }
a:focus { outline:none; }
a:focus, a:active { text-decoration:none; }
:hover { -webkit-transition:all 0.2s ease-in-out 0s; -o-transition:all 0.2s ease-in-out 0s; -moz-transition:all 0.2s ease-in-out 0s; transition:all 0.2s ease-in-out 0s; }

p, ol, ul { padding:0; margin:0; }
.clear,
.clear:after { content:""; display:block; clear:both; }
label { font-weight:normal; }

	@media (max-width:768px) {
		html { font-size:13px; }
	}

h1, h2, h3, h4, h5, h6,.h1,.h2,.h3,.h4,.h5,.h6 { margin:0; }
li{list-style:none; }

.clearfix {clear:both; }
.clear:after { content:""; display:block; clear:both; }
.bold {font-weight:bold; }

.txt_center { text-align:center !important; }
.txt_left { text-align:left !important; }
.txt_right { text-align:rigsht !important; }

.left { float:left; }
.right { float:right; }

/*.pd10 { padding:10px; }
.pd15 { padding:15px; }
.pd20 { padding:20px; }
.pd30 { padding:30px; }
.pd40 { padding:40px; }
.pd50 { padding:50px; }
.pd100 { padding:100px; }

.pb10 { padding-bottom:10px; }
.pb20 { padding-bottom:20px; }
.pb30 { padding-bottom:30px; }
.pb40 { padding-bottom:40px; }
.pb50 { padding-bottom:50px; }
.pb100 { padding-bottom:100px; }

.pt10 { padding-top:10px; }
.pt20 { padding-top:20px; }
.pt30 { padding-top:30px; }
.pt40 { padding-top:40px; }
.pt50 { padding-top:50px; }
.pt100 { padding-top:100px; }

.pr10 { padding-right:10px; }
.pr20 { padding-right:20px; }
.pr30 { padding-right:30px; }
.pr40 { padding-right:40px; }
.pr50 { padding-right:50px; }
.pr100 { padding-right:100px; }

.pl10 { padding-left:10px; }
.pl20 { padding-left:20px; }
.pl30 { padding-left:30px; }
.pl40 { padding-left:40px; }
.pl50 { padding-left:50px; }
.pl100 { padding-left:100px; }

.mg10 { margin:10px; }
.mg15 { margin:15px; }
.mg20 { margin:20px; }
.mg30 { margin:30px; }
.mg40 { margin:40px; }
.mg50 { margin:50px; }
.mg100 { margin:100px; }

.mb10 { margin-bottom:10px; }
.mb20 { margin-bottom:20px; }
.mb30 { margin-bottom:30px; }
.mb40 { margin-bottom:40px; }
.mb50 { margin-bottom:50px; }
.mb100 { margin-bottom:100px; }

.mt10 { margin-top:10px; }
.mt20 { margin-top:20px; }
.mt30 { margin-top:30px; }
.mt40 { margin-top:40px; }
.mt50 { margin-top:50px; }
.mt100 { margin-top:100px; }

.mr10 { margin-right:10px; }
.mr20 { margin-right:20px; }
.mr30 { margin-right:30px; }
.mr40 { margin-right:40px; }
.mr50 { margin-right:50px; }
.mr100 { margin-right:100px; }

.ml10 { margin-left:10px; }
.ml20 { margin-left:20px; }
.ml30 { margin-left:30px; }
.ml40 { margin-left:40px; }
.ml50 { margin-left:50px; }
.ml100 { margin-left:100px; }

.per5 { width:5%; }
.per10 { width:10%; }
.per15 { width:15%; }
.per20 { width:20%; }
.per25 { width:25%; }
.per30 { width:30%; }
.per35 { width:35%; }
.per40 { width:40%; }
.per45 { width:45%; }
.per50 { width:50%}
.per55 { width:55%; }
.per60 { width:60%}
.per65 { width:65%; }
.per70 { width:70%}
.per75 { width:75%; }
.per80 { width:80%}
.per85 { width:85%; }
.per90 { width:90%}
.per95 { width:95%; }
.per100 { width:100%; }

.px10 { width:10px; }
.px20 { width:20px; }
.px30 { width:30px; }
.px40 { width:40px; }
.px50 { width:50px; }
.px60 { width:60px; }
.px70 { width:70px; }
.px80 { width:80px; }
.px90  { width:90px; }
.px100 { width:100px; }
.px150 { width:150px; }
.px200 { width:200px; }
.px250 { width:250px; }
.px300 { width:300px; }
.px350 { width:350px; }
.px400 { width:400px; }
.px450 { width:450px; }
.px500 { width:500px; }
.px550 { width:550px; }
.px600 { width:600px; }
.px650 { width:650px; }
.px700 { width:700px; }
*/

.btn-default { color:#666; background-color:#ddd; border:1px #ddd solid !important; background-image:none; text-shadow:none; }
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.open .dropdown-toggle.btn-default { color:#666; background-color:#f5f5f5 !important; border-color:#ccc !important; }
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active { background-color:#333; border-color:#333; color:#fff; }
.btn-default .badge { color:#333; background-color:#fff; }


/* .btn-primary — 게시판 검색(돋보기) 버튼 등이 쓰는 기본 버튼.
   종전엔 var(--color-primary, #f98310) 였는데 --color-primary 는 root.css 에도 어디에도 정의된 적이
   없어(전 프로젝트에서 이 한 줄이 유일한 사용처) 항상 폴백 주황 #f98310 으로 렌더됐다.
   → 실제로 존재하는 --color-primary-light 로 교체. hover 가 이미 --color-primary-dark 이라
   밝은톤(기본) → 어두운톤(hover) 위계도 맞는다. 학과 홈은 layout.php 가 이 변수를 학과색으로
   덮으므로 학과별 키컬러가 자동 적용된다. 2026.08 */
.btn-primary { color:#fff; background-color:var(--color-primary-light); border-color:var(--color-primary-light); background-image:none; }
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary { color:#fff; background-color:var(--color-primary-dark, #d06302) !important; border-color:var(--color-primary-dark, #d06302) !important; }
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active { background-color:#608068; border-color:#608068; }
.btn-primary .badge { color:#608068; background-color:#fff; }

.btn-danger { color:#fff; background-color:var(--color-danger, #ff5c57); border-color:var(--color-danger, #ff5c57); background-image:none; }
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.open .dropdown-toggle.btn-danger { color:#fff; background-color:var(--color-danger-dark, #ce4741) !important; border-color:var(--color-danger-dark, #ce4741) !important; }
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active { background-color:#ff5c57; border-color:#ff5c57; }
.btn-danger .badge { color:#ff5c57; background-color:#fff; }

.btn-turquoise { color:#fff; background-color:#00acac; border-color:#00acac; background-image:none; }
.btn-turquoise:hover,
.btn-turquoise:focus,
.btn-turquoise:active,
.btn-turquoise.active,
.open .dropdown-toggle.btn-turquoise { color:#fff; background-color:#008a8c !important; border-color:#008a8c !important; }
.btn-turquoise.disabled,
.btn-turquoise[disabled],
fieldset[disabled] .btn-turquoise,
.btn-turquoise.disabled:hover,
.btn-turquoise[disabled]:hover,
fieldset[disabled] .btn-turquoise:hover,
.btn-turquoise.disabled:focus,
.btn-turquoise[disabled]:focus,
fieldset[disabled] .btn-turquoise:focus,
.btn-turquoise.disabled:active,
.btn-turquoise[disabled]:active,
fieldset[disabled] .btn-turquoise:active,
.btn-turquoise.disabled.active,
.btn-turquoise[disabled].active,
fieldset[disabled] .btn-turquoise.active { background-color:#00acac; border-color:#00acac; }
.btn-turquoise .badge { color:#00acac; background-color:#fff; }

.btn-royalblue { color:#fff; background-color:#717bb6; border-color:#717bb6; background-image:none; }
.btn-royalblue:hover,
.btn-royalblue:focus,
.btn-royalblue:active,
.btn-royalblue.active,
.open .dropdown-toggle.btn-royalblue { color:#fff; background-color:#464a6f !important; border-color:#464a6f !important; }
.btn-royalblue.disabled,
.btn-royalblue[disabled],
fieldset[disabled] .btn-royalblue,
.btn-royalblue.disabled:hover,
.btn-royalblue[disabled]:hover,
fieldset[disabled] .btn-royalblue:hover,
.btn-royalblue.disabled:focus,
.btn-royalblue[disabled]:focus,
fieldset[disabled] .btn-royalblue:focus,
.btn-royalblue.disabled:active,
.btn-royalblue[disabled]:active,
fieldset[disabled] .btn-royalblue:active,
.btn-royalblue.disabled.active,
.btn-royalblue[disabled].active,
fieldset[disabled] .btn-royalblue.active { background-color:#717bb6; border-color:#717bb6; }
.btn-royalblue .badge { color:#717bb6; background-color:#fff; }

.btn-warning { color:#fff; background-color:#f49b1b; border-color:#f49b1b; background-image:none; }
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
.open .dropdown-toggle.btn-warning { color:#fff; background-color:#c57e00 !important; border-color:#c57e00 !important; }
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active { background-color:#f49b1b; border-color:#f49b1b; }
.btn-warning .badge { color:#f49b1b; background-color:#fff; }

.btn-info { color:#fff; background-color:#ad987e; border-color:#ad987e; background-image:none; }
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.open .dropdown-toggle.btn-info { color:#fff; background-color:#947a59 !important; border-color:#3492ac !important; }
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active { background-color:#947a59; border-color:#947a59; }
.btn-info .badge { color:#947a59; background-color:#fff; }

/* .btn-success — 사이트별 메인컬러 사용. 색을 하드코딩하지 않고 root.css 의 :root 변수를 쓰므로
   학과 홈에서는 layout.php 가 덮어쓴 그 학과 키컬러로 자동 렌더된다(major_sites.php: major_theme).
     기본      : --color-primary-dark  (메인컬러)
     hover·focus: --color-primary-light (같은 계열의 밝은 톤)
     active    : 메인컬러 유지 + inset 그림자로 눌린 느낌(텍스트 색에 영향 없음)
   var() 두번째 인자는 변수 미정의 시 폴백(본부 기본값). 2026.07
   (이전에는 기본 #d5a23c 황금색 / hover #3c7b44 녹색으로 서로 무관한 색이었다.) */
.btn-success {
	color:#fff;
	background-color: var(--color-primary-dark, #881241) !important;
	border-color: var(--color-primary-dark, #881241) !important;
	background-image:none;
}
.btn-success:hover,
.btn-success:focus,
.open .dropdown-toggle.btn-success {
	color:#fff;
	background-color: var(--color-primary-light, #b32b5c) !important;
	border-color: var(--color-primary-light, #b32b5c) !important;
}
.btn-success:active,
.btn-success.active {
	color:#fff;
	background-color: var(--color-primary-dark, #881241) !important;
	border-color: var(--color-primary-dark, #881241) !important;
	box-shadow: inset 0 3px 6px rgba(0,0,0,.22);
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
	/* 비활성도 메인컬러 계열 — 흐림 처리는 부트스트랩의 .btn.disabled{opacity:.65} 가 담당 */
	background-color: var(--color-primary-light, #b32b5c) !important;
	border-color: var(--color-primary-light, #b32b5c);
	box-shadow: none;
}
.btn-success .badge { color: var(--color-primary-dark, #881241); background-color:#fff; }


.btn-silver { color:#fff; background-color:#b7c2c8; border-color:#b7c2c8; background-image:none; }
.btn-silver:hover,
.btn-silver:focus,
.btn-silver:active,
.btn-silver.active,
.open .dropdown-toggle.btn-silver { color:#fff; background-color:#929ba2 !important; border-color:#929ba2 !important; }
.btn-silver.disabled,
.btn-silver[disabled],
fieldset[disabled] .btn-silver,
.btn-silver.disabled:hover,
.btn-silver[disabled]:hover,
fieldset[disabled] .btn-silver:hover,
.btn-silver.disabled:focus,
.btn-silver[disabled]:focus,
fieldset[disabled] .btn-silver:focus,
.btn-silver.disabled:active,
.btn-silver[disabled]:active,
fieldset[disabled] .btn-silver:active,
.btn-silver.disabled.active,
.btn-silver[disabled].active,
fieldset[disabled] .btn-silver.active { background-color:#b7c2c8; border-color:#b7c2c8; }
.btn-silver .badge { color:#b7c2c8; background-color:#fff; }

.btn-black { color:#fff; background-color:#2c353c; border-color:#2c353c; background-image:none; }
.btn-black:hover,
.btn-black:focus,
.btn-black:active,
.btn-black.active,
.open .dropdown-toggle.btn-black { color:#fff; background-color:#000 !important; border-color:#000 !important; }
.btn-black.disabled,
.btn-black[disabled],
fieldset[disabled] .btn-black,
.btn-black.disabled:hover,
.btn-black[disabled]:hover,
fieldset[disabled] .btn-black:hover,
.btn-black.disabled:focus,
.btn-black[disabled]:focus,
fieldset[disabled] .btn-black:focus,
.btn-black.disabled:active,
.btn-black[disabled]:active,
fieldset[disabled] .btn-black:active,
.btn-black.disabled.active,
.btn-black[disabled].active,black
fieldset[disabled] .btn-black.active { background-color:#2c353c; border-color:#2c353c; }
.btn-black .badge { color:#2c353c; background-color:#fff; }
 


/* navbar */


/* navbar-utility : 유틸리티 메뉴 영역 (주요링크 버튼 등) */
.navbar-utility { 
	display:flex; align-items:center; justify-content: flex-end; 
	background: var(--color-primary-dark) ;
	height:45px; 
	padding: 0 var(--layout-padding); 
}
.navbar-utility ul { display:flex; align-items:center;}
.navbar-utility ul li {
	display:flex; align-items:center;
	border-right:rgba( 256, 256, 256, 0.25 ) 1px solid; 
	padding: 0 16px; height: 23px; 
}
.navbar-utility ul li:last-child { border-right:none; padding-right:0; }




.navbar {
	/* 설정 : 메뉴바 배경 */
	background:rgba(0, 0, 0, .0);
	border: 0; border-radius:0; box-shadow:none; 
	z-index:9994; 
	margin-bottom:0; 
	position:fixed; 
	width:100%; 
	transition: top 0.2s ease, background-color 0.2s ease;
}

.navbar_menu { 
	width:100%;
	padding: 0 var(--layout-padding);
}
.navbar_menu_inner {
	display: flex; align-items: center; justify-content: space-between;
	/* 로고 ↔ 메뉴 ↔ 언어버튼 사이 최소 간격. 메뉴(#topmenu-navbar-collapse)가 flex:1 로
	   남는 폭을 모두 차지하므로 space-between 이 아니라 이 gap 이 실제 간격을 만든다. 2026.07 */
	gap: clamp(20px, 2.5vw, 48px);
	height: var(--height-header);
	position: relative;   /* 메뉴 화면중앙 절대배치 기준 */
}


.navbar-default .navbar-brand {
	padding:0; font-size:0;
	display:inline-block; outline:0;
	flex-shrink: 0;

	/* 설정 : 로고 — root.css의 --navbar-logo-width / --navbar-logo-height 로 조정 */
	width: var(--navbar-logo-width); height: var(--navbar-logo-height);
	background-image: var(--logo-image, url(../images/logo_en.png));
	background-repeat: no-repeat;
	background-color: var(--logo-color, transparent);
	background-size: var(--navbar-logo-width) var(--navbar-logo-height);

	/* 로고 단색화용 마스크 슬롯 — 기본값 none 이라 평소엔 원본 이미지가 그대로 보인다.
	   --logo-image / --logo-color / --logo-mask 세 변수를 함께 바꾸면 로고 모양만 오려내
	   지정한 색으로 칠해진다. 실제 사용처는 아래 "로고 : 메인키컬러 단색 처리" 블록. 2026.08 */
	-webkit-mask-image: var(--logo-mask, none);
	        mask-image: var(--logo-mask, none);
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-position: center;
	        mask-position: center;
	-webkit-mask-size: 100% 100%;
	        mask-size: 100% 100%;
	transition: background-color 0.3s ease;
}

/* 설정 : 학과 홈 로고(_layout/major) — 학과마다 로고 비율이 달라 고정 가로·세로를 쓰지 않는다.
   높이만 53px 로 고정하고 가로는 원본 비율대로 자동. 배경이미지 방식은 해제.
   (.navbar-brand 클래스를 함께 유지하므로 flex-shrink:0 / 모바일 반전 필터 등은 그대로 적용) */
.navbar-default .navbar-brand-dept {
	width: auto; height: auto;
	background: none;
	display: flex; align-items: center;
}
.navbar-default .navbar-brand-dept img {
	display: block;
	/* 학과 로고 높이 — 넓은 화면은 기존 53px 유지, 좁아지면 축소.
	   고정 53px 일 때 로고 가로가 288px 로 전 구간 불변이어서, 900px 대에선 헤더 콘텐츠폭의
	   1/3 을 점유해 영문 1차 메뉴가 서로 겹쳐 읽혔다(실측). 본부 로고는 root.css 의
	   --navbar-logo-width 로 이미 단계 축소되므로 동작을 맞춘 것. 2026.07 */
	height: clamp(36px, 3.4vw, 53px);
	width: auto;             /* 가로는 비율 유지 */
	max-width: 100%;
}

.navbar-brand, .navbar-nav>li>a { text-shadow:none; }
.navbar-header { 
	display: flex; align-items: center; justify-content: space-between;
	height: var(--height-header); 
}
.navbar-default .container { position:relative; }

.navbar-default .navbar-nav, 
.navbar-default .navbar-nav>li {float: none !important; /* 부트스트랩 기본 float 제거 */ }

.navbar-default .navbar-nav {
	display:flex; align-items:center; height:100%;
	justify-content: center;
	flex-wrap: nowrap;   /* 공간 부족 시 해도 한줄로 */
	/* 항목 사이 최소 간격 — 좁은 화면에서 메뉴명이 서로 붙어 한 단어처럼 읽히는 것 방지
	   (li 가 flex-grow 로 남는 폭을 나눠 갖더라도 이 간격은 항상 확보된다). 2026.07 */
	column-gap: clamp(6px, 0.8vw, 16px);
}
/* 공간이 부족하면 항목이 줄어들도록 flex 축소 허용. 로고/언어영역은
   .navbar-brand / .lang 의 flex-shrink:0 로 고정되어 안 줄어든다.
   항목 가로폭 기준은 여기(flex-basis)에서 잡는다 — 넓은 화면 160px, 좁아지면 함께 축소.
   자식 a 에 min-width 를 주면 li 가 줄어도 a 가 버텨 옆 항목과 겹치므로 금지. 2026.07 */
/* grow:1 — 로고~언어 사이 폭을 항목들이 균등하게 나눠 채운다(기존 grow:0 이라 항목이 내용폭만
   차지하고 ul 안에서 가운데로 몰려, 로고·언어 쪽에 큰 빈 틈이 생겼다).
   flex-basis 는 기준폭이고 실제 폭은 여기에 남는 공간을 균등 분배한 값이 된다. 2026.07 */
.navbar-default .navbar-nav>li { flex: 1 1 clamp(72px, 11vw, 160px); min-width: 0; }
.navbar-default .navbar-nav>li>a {
	/* 설정 : 1차 메뉴 글자 (화면폭에 따라 자동 축소 → 1400px 이하 잘림 방지) */
	color:#fff;
	font-size: clamp(15px, 1.3vw, 20px);   /* 넓은 화면 20px 유지, 좁으면 최소 15px */
	/* 상하 패딩은 헤더 높이를 채우는 용도(유지), 좌우는 좁아지면 축소 → 항목 간 겹침 방지 */
	padding: clamp(12px, 2vw, 48px) clamp(4px, 1vw, 24px);
	font-family:'OneMobileT';
	/* 항목 가로폭은 부모 li 의 flex-basis 가 결정. a 는 그 폭을 그대로 채우기만 한다
	   (min-width 를 주면 li 축소 시 a 가 넘쳐 옆 메뉴명과 겹침). */
	display: block;
	width: 100%;
	min-width: 0;
	white-space: normal;                    /* 폭 초과 시 다음 줄로 넘김 */
	word-break: keep-all;                   /* 단어 단위로만 줄바꿈(단어 중간 안 끊음) */
	/* 넘칠 때도 단어 중간을 자르지 않고 단어 단위로 다음 줄에 내린다.
	   (break-word 였을 때 "Undergradu / ate" 처럼 단어가 끊겼다. 2026.07) */
	overflow-wrap: normal;
	text-align: center;                     /* 여러 줄일 때 가운데 정렬 */
	line-height: 1.2;
}
:lang(zh) .navbar-default .navbar-nav>li>a  {
	font-weight: 600;
}
:lang(en) .navbar-default .navbar-nav>li>a {
	/* 영문 1차 메뉴: 국문(clamp(15px,1.3vw,20px))보다 완만한 계수로 유동 축소.
	   1200px 초과 구간이 18px 고정이라 항목 폭이 좁아지면 "Undergradu/ate" 처럼 단어 중간에서
	   끊겼다(1280·1440px 실측). 좌우 여백도 줄여 한 줄에 들어갈 폭을 확보한다. 2026.07 */
	font-size: clamp(13px, 1.05vw, 18px);
	padding-left: clamp(2px, 0.45vw, 24px);
	padding-right: clamp(2px, 0.45vw, 24px);
}
/* 영문 항목 가로폭도 li 에서 잡는다(축소 가능). 영문 메뉴명이 길어 국문보다 넓게. */
:lang(en) .navbar-default .navbar-nav>li { flex-basis: clamp(90px, 13vw, 190px); }
@media (max-width:1200px) {
	/* 786~1200: 축소 — 항목이 2줄로 접혀도 그대로 유지 */
	:lang(en) .navbar-default .navbar-nav>li>a { font-size: 15px; padding: 6px 8px; }
}
@media (max-width:786px) {
	:lang(en) .navbar-default .navbar-nav>li>a { font-size: 14px; padding: 4px 6px; }
}

.navbar-default .navbar-nav>li>a:hover { color:#fff; }
.navbar-default .navbar-nav>.active>a,
.navbar-default .navbar-nav>.active>a:hover,
.navbar-default .navbar-nav>.active>a:focus { color: #ebff46;}
.navbar-default .navbar-nav>.open>a,
.navbar-default .navbar-nav>.open>a:hover,
.navbar-default .navbar-nav>.open>a:focus { color:#fff; box-shadow:none; background:none; }

/* navbar : fixed */
/* 스크롤 고정 시 : hover(mega-open) 와 동일하게 흰 배경 + 1차 메뉴 자주색 글자 (2026.07)
   기존엔 검은 반투명(rgba(0,0,0,.7)) 이었으나, over 상태와 통일. util 바(.navbar-utility)와
   언어버튼(.lang a)은 자체 배경색을 가져 흰 배경에서도 그대로 읽힘 → 별도 처리 불필요. */
.navbar_box_fixed.navbar {
	top: 0;
	background: transparent;   /* 자식 .navbar-utility(자주색) + .navbar_menu(흰색)가 바를 채움 */
	box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}
.navbar_box_fixed .navbar_menu { background: #fff; }
/* navbar_box_fixed 와 navbar-default 는 같은 <nav> 요소의 클래스이므로 붙여써야 매칭됨(자손 X) */
.navbar_box_fixed.navbar-default .navbar-nav > li > a,
.navbar_box_fixed.navbar-default .navbar-nav > .active > a,
.navbar_box_fixed.navbar-default .navbar-nav > .active > a:hover,
.navbar_box_fixed.navbar-default .navbar-nav > .open > a { color: var(--color-primary-dark); }
.navbar_box_fixed.navbar-default .navbar-nav > li > a:hover { color: var(--color-primary-light); }
.navbar_box_fixed.navbar-default .navbar-toggle .icon-bar { background-color: var(--color-primary-dark); }

/* ===== 로고 : 메인키컬러(--color-primary-dark) 단색 처리 =====
   적용 상태 — ① 메뉴 마우스오버(body.mega-open)  ② 스크롤 고정(.navbar_box_fixed)  ③ 모바일(≤960px)
   원본 logo_en.png 는 2색(#B32B5C 심볼 + #881241 문자)이라 filter 조합으로는 특정 단색을 정확히
   만들 수 없다. → mask 로 로고 모양만 오려내고 background-color 로 칠하는 방식을 쓴다.
   background-image 를 none 으로 지우지 않으면 마스크가 원본 이미지를 그대로 오려내 색이 안 바뀐다.
   색상 변경은 root.css 의 --color-primary-dark 한 곳만 고치면 전 상태에 반영된다.
   학과 홈 로고(.navbar-brand-dept)는 <img> 자식 구조 + 학과별 색이 달라 대상에서 제외. 2026.08 */
.navbar_box_fixed.navbar-default .navbar-brand:not(.navbar-brand-dept),
body.mega-open .navbar-default .navbar-brand:not(.navbar-brand-dept) {
	--logo-image: none;
	--logo-color: var(--color-primary-dark);
	--logo-mask: url(../images/logo_en.png);
	filter: none;   /* 모바일 흰색 반전(@media max-width:960px) 해제 */
}
/* 학과 홈 로고(_layout/major)도 같은 두 상태에서 학과 키컬러 단색으로.
   본부 로고와 달리 <img src> 라 CSS 가 파일 경로를 모른다 → major/layout.php 가 <img> 와 같은
   파일을 :root{--dept-logo:url(...)} 로 주입하고 그것을 마스크 소스로 쓴다.
   --color-primary-dark 역시 같은 :root 블록에서 학과 테마색(그린/블루/브라운)으로 덮여 있으므로
   결과적으로 학과별 키컬러가 적용된다.
   학과 로고 3종은 모두 단색 PNG(#57B15E / #4687DA / #BA7B1D, 음영은 알파로만 표현)라
   단색으로 칠해도 형태 손실이 없다. 원본 픽셀은 <img> 를 visibility:hidden 으로 감추고
   (크기는 유지) 부모 <a> 의 배경색을 마스크로 오려 대신 그린다.
   filter:none — 모바일 흰색 반전(@media max-width:960px) 해제도 겸한다. 2026.08 */
.navbar_box_fixed.navbar-default .navbar-brand-dept,
body.mega-open .navbar-default .navbar-brand-dept {
	background-color: var(--dept-logo-paint, transparent);
	-webkit-mask-image: var(--dept-logo, none);
	        mask-image: var(--dept-logo, none);
	-webkit-mask-position: left center;
	        mask-position: left center;
	-webkit-mask-size: 100% 100%;
	        mask-size: 100% 100%;
	filter: none;
}
.navbar_box_fixed.navbar-default .navbar-brand-dept img,
body.mega-open .navbar-default .navbar-brand-dept img {
	/* 세 var() 의 폴백(transparent / none / visible)이 곧 안전장치다 —
	   layout.php 가 변수를 안 내보내면 단색화가 통째로 꺼지고 원본 로고가 그대로 보인다.
	   폴백 없이 배경색만 칠하면 마스크가 없는 사각형이 로고를 덮는다(실제로 확인함). */
	visibility: var(--dept-logo-hide, visible);
}
.header {
	transition: opacity 0.2s ease;
}
.header.header_fixed {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}



/* 메뉴 영역 — root.css의 --navbar-menu-flex 로 조정 */
/* 1차 메뉴: 로고~언어버튼 사이 공간을 채우고 그 안에서 가운데 정렬(겹침 없이 중앙 배치) */
#topmenu-navbar-collapse { flex: 1 1 auto; min-width: 0; }


.navbar .dropdown-menu { 
	min-width: 250px;
	padding:10px 0; 
	margin:0 0 0 5px; 
	border: 3px solid var(--color-primary-dark); 
	border-radius:27px !important; 
	background-color:rgba(256,256,256, 1); 
	background-repeat:no-repeat;
	background-position:right -14px bottom 10px;
	background-size:var(--navbar-dropdown-bg-size, auto);
	box-shadow:rgba(0,0,0,0.1) 9px 5px 13px; 
	top:100%;
	display: flex; flex-direction: column; gap:0; align-items: center
}

/* 1차 메뉴 hover 시 드롭다운이 위 70px에서 내려오며 나타나도록 처리 */
.navbar-default .navbar-nav > li.dropdown > .dropdown-menu {
	display:flex !important;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transform:translateY(0);
	transition:transform 0.35s ease, opacity 0.35s ease, visibility 0.35s ease;
	padding: 20px;
}

.navbar-default .navbar-nav > li.dropdown.open > .dropdown-menu,
.navbar-default .navbar-nav > li.dropdown:hover > .dropdown-menu,
.navbar-default .navbar-nav > li.dropdown:focus-within > .dropdown-menu {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transform:translateY(-75px);
}

.navbar-default .navbar-nav > li:nth-child(1) > .dropdown-menu { background-image: var(--navbar-dropdown-bg-1, none); min-width: 230px; margin-left: -55px; }
.navbar-default .navbar-nav > li:nth-child(2) > .dropdown-menu { background-image: var(--navbar-dropdown-bg-2, none); }
.navbar-default .navbar-nav > li:nth-child(3) > .dropdown-menu { background-image: var(--navbar-dropdown-bg-3, none); }
.navbar-default .navbar-nav > li:nth-child(4) > .dropdown-menu { background-image: var(--navbar-dropdown-bg-4, none); min-width: 200px; margin-left: -15px; }


/* ===== 전체 메가메뉴 (개별 드롭다운 대체. 2026.07) ===== */
/* 기존 개별 드롭다운 마크업은 남아있으나 메가메뉴로 대체되어 숨김 */
.navbar .dropdown-menu,
.navbar .dropdown-menu-bg { display: none !important; }

/* 헤더 바는 딤 오버레이 위에 밝게 유지 */
.navbar_menu { position: relative; z-index: 3; transition: background-color 0.3s ease; }
.navbar-utility { position: relative; z-index: 3; }

/* 풀다운 열림 시 : 메뉴바 전체 흰색 배경 + 1차 메뉴 자주색 글자 (패널과 통일). 2026.07 */
.navbar-default .navbar-nav > li > a { transition: color 0.3s ease; }
body.mega-open .navbar_menu { background: #fff; }
body.mega-open .navbar-default .navbar-nav > li > a,
body.mega-open .navbar-default .navbar-nav > .active > a,
body.mega-open .navbar-default .navbar-nav > .active > a:hover,
body.mega-open .navbar-default .navbar-nav > .open > a { color: var(--color-primary-dark); }
body.mega-open .navbar-default .navbar-nav > li > a:hover { color: var(--color-primary-light); }

/* 풀와이드 패널 : 헤더(.navbar) 바로 아래에 붙음 */
.navbar .mega-menu {
	position: absolute;
	left: 0;
	top: 100%;
	width: 100%;
	background: #fff;
	border-top: 3px solid var(--color-primary-dark);
	box-shadow: 0 12px 24px rgba(0,0,0,.12);
	z-index: 2;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	transition: transform 0.35s ease, opacity 0.35s ease, visibility 0.35s ease;
}
body.mega-open .navbar .mega-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.mega-menu-inner {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;            /* 컬럼 정렬 기준 고정 (좌표 정렬 JS 와 함께 사용) */
	gap: 0;                                 /* 컬럼 간격은 alignMegaColumns() 가 margin-left 로 잡음 */
	padding: 36px var(--layout-padding);
	/* 상단 바(.navbar_menu)와 동일한 전체폭 기준.
	   각 컬럼의 left/width/margin 은 layout.php 의 alignMegaColumns() 가
	   상단 1차 메뉴 항목 좌표를 측정해 인라인 스타일로 맞춘다.
	   (상단 바와 패널이 서로 다른 DOM 이라 CSS 만으로 1:1 정렬 불가. 2026.07) */
}
/* flex:1 1 0 은 JS 미동작 시 폴백. 정상 시 alignMegaColumns() 가 flex:0 0 auto(내용폭) 로 override 하고,
   컬럼 중심을 1차 항목 중심에 맞춘다. text-align:center 로 2·3차 항목을 컬럼 안에서 가운데 정렬. */
.mega-col { flex: 1 1 0; min-width: 0; padding: 0 12px; text-align: center; }
/* 열 제목 = 1차 메뉴 */
.mega-col-title {
	display: block;
	font-family: 'OneMobileT';
	/* 열 제목 = 1차 메뉴. 상단 1차 메뉴(.navbar-nav>li>a)와 동일 스케일로 맞춘다.
	   컬럼 폭이 alignMegaColumns() 로 1차 항목 폭에 동기화되므로 글자도 같은 비율로 축소해야 함. */
	font-size: clamp(15px, 1.3vw, 20px);
	line-height: 1.3;
	color: var(--color-primary-light);
	font-weight: 600;
	padding-bottom: 12px;
	margin-bottom: 12px;
	border-bottom: 2px solid var(--color-primary-light);
}
.mega-col-title:hover, .mega-col-title:focus { color: var(--color-primary-dark); }
/* 2차 메뉴 목록 */
.mega-col ul { list-style: none; padding: 0; margin: 0; }
.mega-col > ul > li { width: 100%; margin: 7px 0; }  /* 항목 간 간격은 li 여백으로(줄간격과 분리) */
/* 2차 메뉴 글자 — 개별 드롭다운과 동일한 hover(밑줄 슬라이드) 적용 */
.mega-col > ul > li > a {
	display: inline-block;
	position: relative;
	/* 열 제목(=1차 메뉴, clamp(16px,1.3vw,20px))의 0.8 배 비율로 함께 축소.
	   컬럼 폭이 1차 항목 폭(min-width clamp(88px,11vw,160px))에 묶여 좁아지므로 고정 16px 이면
	   좁은 화면(769~1200px)에서 줄바꿈이 과해지고, 영문은 1차(15px)보다 커져 위계가 뒤집혔다. */
	font-size: clamp(13px, 1.04vw, 16px);
	line-height: 1.35;   /* 2줄로 접힐 때 줄간격을 좁혀 한 메뉴명처럼 보이도록(항목 간격은 li margin으로) */
	color: #010101;
	font-weight: 600;
	padding: 0;
	white-space: normal;         /* 컬럼(=1차 메뉴) 폭 넘으면 줄바꿈 */
	word-break: keep-all;        /* 단어 단위 줄바꿈(단어 중간 안 끊음) */
	overflow-wrap: break-word;   /* 한 단어가 폭보다 길면 그때만 강제 분리 */
	transition: color 0.2s ease-in-out;
}
.mega-col > ul > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 2px;
	background: var(--color-primary-light);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.28s ease;
}
.mega-col > ul > li > a:hover,
.mega-col > ul > li > a:focus { color: var(--color-primary-light); }
.mega-col > ul > li > a:hover::after,
.mega-col > ul > li > a:focus::after { transform: scaleX(1); }

/* 3차 메뉴 — 개별 드롭다운의 dropdown-menu2 와 동일 (2차와 함께 가운데 정렬) */
.mega-sub { list-style: none; padding: 0; margin: 2px 0 6px; }
.mega-sub li a {
	display: inline-block;
	font-weight: 400;
	color: #999999;
	/* 3차도 동일 방식으로 축소(2차보다 항상 작게 유지). line-height 는 px 고정 대신 배수 —
	   글자가 줄어들 때 줄간격도 같이 줄어야 여러 줄에서 한 메뉴명으로 읽힌다(14px×1.4≈기존 20px). */
	font-size: clamp(12px, 0.95vw, 14px);
	line-height: 1.4;
	white-space: normal;         /* 컬럼 폭 넘으면 줄바꿈 */
	word-break: keep-all;
	overflow-wrap: break-word;
	transition: color 0.2s ease-in-out;
}
.mega-sub li a::before {
	content: "-";
	color: #999999;
	font-size: 14px;
	line-height: 20px;
	margin-right: 5px;
}
.mega-sub li a:hover,
.mega-sub li a:focus { color: var(--color-primary-light); }

/* 새창(target=_blank) 으로 열리는 메뉴명 우측 아이콘 (layout.php 의 markNewWindowMenus() 가 삽입) */
.menu-newwin {
	font-size: 0.72em;
	margin-left: 4px;
	vertical-align: middle;
	opacity: .75;
	font-weight: normal;
}

/* 딤 오버레이 */
.mega-overlay {
	position: fixed;
	left: 0; top: 0; right: 0; bottom: 0;
	background: rgba(0,0,0,.45);
	z-index: 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
body.mega-open .mega-overlay { opacity: 1; visibility: visible; }

/* 모바일/좁은 폭에서는 메가메뉴 미사용 (기존 사이드메뉴 사용).
   기준 960px — layout.php 의 side_menu_check()(width_size > 960) 와 반드시 일치시킬 것.
   769~960 을 데스크톱 메뉴로 두면 영문 1차 메뉴가 항목 폭을 넘어 겹쳐 읽힌다(실측). 2026.07 */
@media (max-width: 960px) {
	.navbar .mega-menu, .mega-overlay { display: none !important; }
	/* JS(side_menu_check) 가 실행되기 전 첫 페인트에서 데스크톱 메뉴가 잠깐 보이는 것 방지.
	   JS 는 이후 인라인 style 로 같은 상태를 유지한다. */
	#topmenu-navbar-collapse { display: none; }
	.navbar-default .navbar-toggle { display: block; }
	.navbar-allmenu { display: none; }
}
/* ===== //전체 메가메뉴 ===== */



.navbar .dropdown-menu li.depth1-title {
	/* 1차메뉴 타이틀 */
	display: block; font-size:22px; line-height:40px; 
	color: var(--color-primary-light); font-weight: 600;
	font-family:'OneMobileT';
	border-bottom: 3px solid var(--color-primary-light); margin-bottom:10px;
	text-align: center;
}
.navbar .dropdown-menu li {
	/* 2차 메뉴 박스 */
	width: 100%;
	text-align: left;
}
.navbar .dropdown-menu li a { 
	/* 설정 : 2차 메뉴 글자 */
	font-size:16px; 
	line-height:30px; 
	color:#010101; 
	font-weight: 600;
	padding: 0 0 0 10px;
	position: relative;
	background: transparent !important;
	-webkit-transition:all 0.2s ease-in-out 0s; -o-transition:all 0.2s ease-in-out 0s; -moz-transition:all 0.2s ease-in-out 0s; transition:all 0.2s ease-in-out 0s; 
	display: inline-block;
}
.navbar .dropdown-menu li a::after {
	content: "";
	position: absolute;
	left: 10px;
	right: 0;
	bottom: 2px;
	height: 2px;
	background: var(--color-primary-light);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.28s ease;
}
.dropdown-menu > li:hover > a,
.dropdown-menu > li:focus-within > a,
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus { background: transparent !important; color:var(--color-primary-light); }
.dropdown-menu > li:hover > a::after,
.dropdown-menu > li:focus-within > a::after,
.dropdown-menu > li > a:hover::after,
.dropdown-menu > li > a:focus::after { transform: scaleX(1); }
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a { -webkit-transition:all 0.2s ease-in-out 0s; -o-transition:all 0.2s ease-in-out 0s; -moz-transition:all 0.2s ease-in-out 0s; transition:all 0.2s ease-in-out 0s; }


/* 설정 : 3차메뉴 */
.dropdown-menu > li > .dropdown-menu2 > li > a {
	font-weight:400; 
	color: #999999; 
	font-size:14px; 
	line-height:20px; 
}
.dropdown-menu > li > .dropdown-menu2 > li > a:hover,
.dropdown-menu > li > .dropdown-menu2 > li > a:focus { color: var(--color-primary-light); }

.dropdown-menu > li > .dropdown-menu2 > li > a::before {
	content: "-"; 
	color: #999999; 
	font-size:14px; 
	line-height:20px; 
	margin-right:5px;
}



/* lang */
/* 언어버튼 — root.css의 --navbar-lang-gap / --navbar-lang-btn-size / --navbar-lang-btn-font 로 조정 */
.lang { display: flex; flex-direction: row; gap: var(--navbar-lang-gap); flex-shrink: 0; }
.lang a { 
	font-family:'OneMobileR';
	color:#fff;
	font-size: var(--navbar-lang-btn-font); 
	line-height: var(--navbar-lang-btn-size);  
	font-weight:700; 
	background-color: var(--color-primary-light);
	display: block; 
	width: var(--navbar-lang-btn-size); 
	height: var(--navbar-lang-btn-size); 
	border-radius: 50%; 
	text-align: center;	
}



	@media (max-width:1920px) {	
		
	}
	@media (max-width:1440px) {
	}
	@media (min-width:992px) and (max-width:1440px) and (max-width:1200px) {
	}
	@media (min-width:961px) and (max-width:1100px) {
		/* 아이패드 가로(≈1024) 등 메뉴가 많은 학과 홈에서 항목이 서로 겹치지 않도록
		   고정 가로폭(flex-basis) 을 풀고 내용폭 기준으로 전환 + 좌우 여백 축소.
		   하한 961 — 960 이하는 데스크톱 메뉴 자체를 쓰지 않는다(사이드메뉴 전환). */
		.navbar-default .navbar-nav>li,
		:lang(en) .navbar-default .navbar-nav>li { flex-basis: auto; }
		.navbar-default .navbar-nav>li>a { padding-left: 6px; padding-right: 6px; }
		/* 영문은 글자가 길어 더 강하게 축소(폰트+여백) → 한 줄 유지.
		   12px: 13px 이면 "Undergraduate" 가 항목 폭을 넘어 옆 메뉴와 붙어 읽혔다(실측). */
		:lang(en) .navbar-default .navbar-nav>li>a { font-size: 12px; padding: 4px 4px; }
		/* 이 구간에선 영문 1차가 13px 까지 내려가 메가메뉴 2차 clamp 하한(13px)과 같아진다
		   → 2·3차를 한 단계 더 낮춰 1차 > 2차 > 3차 위계를 유지(영문 1차가 clamp 가 아닌
		   단계 축소 방식이라 국문·중문처럼 자동으로 벌어지지 않음). */
		:lang(en) .mega-col > ul > li > a { font-size: 12px; }
		:lang(en) .mega-sub li a { font-size: 11px; }
	}
	@media (min-width:768px) {
		.navbar-header {float:none !important;}
	}
	@media (max-width:768px) {
		.navbar .dropdown-menu li a { line-height:40px; font-size:14px; padding:0 15px; }
	}
	@media (max-width:525px) {
		.navbar-header .lang { right:55px; }
	}

	/* 모바일 최상단 로고 = 흰색.
	   이 구간의 헤더는 서브비주얼(#071225 → --color-primary-dark 그라데이션) 위에 투명하게 얹히므로
	   키컬러(#881241)로 칠하면 배경과 대비 1.7:1 이라 사실상 안 보인다 → 흰색 반전 유지.
	   스크롤하면 헤더가 흰 배경(.navbar_box_fixed)이 되고, 위 "로고 : 메인키컬러 단색 처리" 규칙이
	   더 높은 명시도로 이 필터를 덮어 키컬러로 바뀐다.
	   기준 960px — 햄버거/사이드메뉴로 전환되는 폭(위 @media(max-width:960px), layout.php
	   side_menu_check)과 일치. 종전엔 ≤525px 에만 걸려 있어 526~960px 구간은 어두운 비주얼 위에
	   원본 자주색 로고가 묻혔다. 2026.08 */
	@media (max-width:960px) {
		.navbar-default .navbar-brand { filter: brightness(0) invert(1); }
	}



/* navbar - m */
.navbar-default .navbar-toggle { border:0; margin:0; padding:0; width:40px; height:60px; border-radius:0; }
.navbar-default .navbar-toggle:focus, .navbar-default .navbar-toggle:hover { background:none; }
.navbar-default .navbar-toggle .icon-bar { width:20px; height:2px; background-color:#fff; margin:0 auto; }
.navbar-default .navbar-toggle .icon-bar:not(:nth-child(1)) { margin-top:6px; }



.navbar-brand {order: 1;}
#topmenu-navbar-collapse {order: 2}
.lang {order: 3; margin-left: auto;}
.navbar-toggle {order: 4; margin-left: auto;}



/* nav-search : 미사용 */
.navbar-form { background-color: #f5f5f5; border: 1px #ddd solid; border-radius: 50px; padding: 0 10px; margin: 15px 0 0 10px;}
.navbar-form .form-control { border: 0 !important; background-color:rgba(255,255,255,0) !Important;}
.navbar-form .form-control:focus { box-shadow: none;}
.navbar-form .btn { padding: 5px 5px 5px 10px; font-size: 18px;}
.navbar-form .btn,
.navbar-form .btn:focus { background: none; border: 0 !important; outline: 0; box-shadow: none;}


/* all Menu */
button.navbar-allmenu { display:none !important; }


/* side_menu - m (전체화면 오버레이. 2026.07) */
#side_menu {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	z-index: 1000000; /* 팝업(.popup_layer z-index:999999)보다 위에 표시 */
	margin: 0;
	background-color: rgba(136, 18, 65, 0.95); /* --color-primary-dark(#881241) 0.95 반투명 */
	opacity: 0;
	transition: opacity 0.25s ease;
}
#side_menu.open { opacity: 1; }
#side_menu .side_wr {
	width: 100%;
	background: transparent;
	opacity: 1;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	box-shadow: none;
	overflow-x: hidden;
	height: 100%;
	overflow-y: auto;
}
#side_menu .side_wr .side_inner_rel { position: relative; min-height: 100%; display: block; overflow: auto; }
#side_menu .side_wr .side_inner_abs {
	position: relative;
	width: 100%;
	display: block;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}

#side_menu .m_menu_top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 60px;
	padding: 16px 24px;
	background: transparent;
	position: relative;
}
#side_menu .m_menu_logo {
	display: inline-block;
	/* 기존 헤더 로고 이미지(logo_en.png)를 그대로 사용 + 흰색 처리 */
	width: 150px;
	height: 44px;
	max-width: calc(100% - 56px);
	text-decoration: none;
	font-size: 0; /* 텍스트 로고값 숨김 (헤더 navbar-brand 와 동일 방식) */
	background: url(../images/logo_en.png) no-repeat left center;
	background-size: contain;
	filter: brightness(0) invert(1); /* 로고를 흰색으로 */
}
#side_menu .m_menu_logo img {
	max-height: 36px;
	width: auto;
	filter: brightness(0) invert(1);
}
#side_menu .m_menu_top .m_close {
	margin: 0;
	padding: 0;
	cursor: pointer;
	font-size: 0;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 6px;
	background: transparent;
	position: relative;
	flex-shrink: 0;
}
#side_menu .m_menu_top .m_close:before,
#side_menu .m_menu_top .m_close:after {
	content: "";
	display: block;
	background-color: #fff;
	width: 18px;
	height: 2px;
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -1px 0 0 -9px;
}
#side_menu .m_menu_top .m_close:before { transform: rotate(45deg); }
#side_menu .m_menu_top .m_close:after { transform: rotate(-45deg); }

#side_menu .m_menu_panel { padding: 8px 24px 32px; text-align: left; }
#side_menu .m_menu_section {
	padding: 28px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	text-align: left; /* 가운데 정렬 방지 — 왼쪽정렬 */
}
#side_menu .m_menu_section:last-child { border-bottom: 0; }
#side_menu .m_menu_section_title {
	margin: 0 0 14px;
	font-size: 1.5rem;
	line-height: 1.35;
	font-weight: 700;
	color: #fff;
	font-family: 'OneMobileT', sans-serif;
}
#side_menu .m_menu_section_title a {
	color: #fff;
	text-decoration: none;
}
#side_menu .m_menu_section_title a:hover,
#side_menu .m_menu_section_title a:focus { color: rgba(255, 255, 255, 0.85); }
#side_menu .m_menu_sub {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start; /* 한 줄로 흐르되 왼쪽정렬 */
	gap: 10px 18px;
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}
#side_menu .m_menu_sub li { margin: 0; padding: 0; }
#side_menu .m_menu_sub li a {
	display: inline-block;
	color: #fff;
	font-size: 1.15rem; /* 2차메뉴 폰트 확대 */
	line-height: 1.5;
	font-weight: 400;
	text-decoration: none;
}
#side_menu .m_menu_sub li a:hover,
#side_menu .m_menu_sub li a:focus { color: rgba(255, 255, 255, 0.75); }

#side_menu .navbar-utility-mobile {
	display: none;
	padding: 20px 24px 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}
#side_menu .navbar-utility-mobile ul {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 10px 18px;
	padding: 0;
	margin: 0;
	list-style: none;
}
#side_menu .navbar-utility-mobile ul li { text-align: left; }
#side_menu .navbar-utility-mobile ul li a {
	color: #fff;
	font-size: 0.95rem;
	line-height: 1.5;
	text-decoration: none;
}
#side_menu .navbar-utility-mobile ul li a:hover,
#side_menu .navbar-utility-mobile ul li a:focus { color: rgba(255, 255, 255, 0.75); }
#side_menu .navbar-utility-mobile ul li a[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 3px;
	background: url('../images/icon_link_target.png') no-repeat center center;
	background-size: contain;
	vertical-align: middle;
	filter: brightness(0) invert(1);
}

@media (max-width: 525px) {
	#side_menu .m_menu_top { padding: 14px 20px; }
	#side_menu .m_menu_panel { padding: 4px 20px 24px; }
	#side_menu .m_menu_section { padding: 22px 0; }
	#side_menu .m_menu_section_title { font-size: 1.25rem; margin-bottom: 12px; }
	#side_menu .m_menu_sub { gap: 8px 14px; }
	#side_menu .m_menu_sub li a { font-size: 1.05rem; }
	#side_menu .navbar-utility-mobile { padding: 16px 20px 28px; }
}


/* common */
.wrapper { margin:0 auto; overflow:hidden; width:100%; }
.view-all { float:right;width:75px;position:absolute;top:10px;right:0; }
.form-control { background-color:#fff; background-image:none; border:1px solid #e5e6e7; border-radius:0; color:inherit; display:inline-block; padding:6px; font-size:1rem; vertical-align:middle; box-shadow:none; }
.control-label { color:#333; }

.panel-heading { font-size:1rem; }

.btn { font-size:1.143rem; text-shadow:none; box-shadow:none; padding:8px 20px; font-weight: 500;border-radius:20px; }
.btn-xs { font-size:1rem; padding:0 15px; line-height:2.429rem; border-radius:0; }

.btn_center { text-align:center; padding:30px 0; }

@media (max-width:500px) {
	.btn { font-size:1rem !important; padding:5px 15px; }
	.btn-xs { padding:0 10px; }
}

.checkbox-inline, .radio-inline { font-weight:inherit; }


/* header */
header { background:#222; color:#fff; clear:both; width:100%; }
header .header-top-menu { float:right; height:30px;line-height:30px; }
header .header-top-menu .fa { color:#ccc; }
header .header-top-menu li { float:left; padding:0 10px; color:#ccc; font-size:0.857rem; }
header .header-top-menu li a { color:#ccc; font-size:0.857rem; }
header .fa { padding-right:5px; }
header .badge { margin-left:5px; font-size:0.714rem; }

.header_line {background:#082a47; height:3px; line-height:3px;clear:both; width:100%; display:none; }

.notifications{position:relative;cursor:pointer; }
.notifications-list {color:#060606;border-bottom:1px solid #ededed;display:block;overflow:hidden;line-height:1.786rem; }
.notifications-list a:link{color:#060606; }
.notifications-list a:active,
.notifications-list a:hover {color:#2773ae; }
.notifications-menu{position:absolute; top:100%; left:0; z-index:9999; display:none; width:330px; background-color:#f5f5f6; -webkit-border-radius:0 0 3px 3px; -webkit-background-clip:padding-box; -moz-border-radius:0 0 3px 3px; -moz-background-clip:padding; border-radius:0 0 3px 3px; background-clip:padding-box; -moz-box-shadow:0 1px 0px rgba(0,0,0,.05); -webkit-box-shadow:0 1px 0px rgba(0,0,0,.05); box-shadow:0 1px 0px rgba(0,0,0,.05); border:1px solid #f8f8f8; padding:5px 15px; }
.notifications-menu .external { background-color:#FFF; display:block; }
.notifications-menu .external a { background-color:#fff; color:#e9423f; }
.notifications-list .point{ color:#ec5956 !important; text-align:center; }
.notifications-list span{ padding-top:10px; font-size:0.786rem; }

.m_nav { padding:8px 10px 0 0; }
nav , .pagination{text-align:center; }

/* body.over_hidden{overflow:hidden} 

 */


/* footer */
footer { position: relative; background-color: var(--color-secondary-deep); padding: 60px 0 32px; }	
footer .copyright {
	font-size: 16px; line-height: 22px; font-weight: 500; letter-spacing: .5px;
	padding: 0;
	color: rgba(119,122,128,0.5);
}
/* 하단 로고 — 사이트별. 학과 홈은 layout.php 가 --footer-logo 를 덮어써 학과 로고를 쓴다.
   변수가 없으면(본부) 폴백으로 기본 logo_footer.png. 2026.07
   ::before 로 분리한 이유:
     1) filter 를 로고에만 적용 — .copyright 에 직접 걸면 주소·Copyright 텍스트까지 반전된다.
     2) flow 요소(display:block)라 로고가 스스로 자리를 차지 → 텍스트와 겹칠 수 없고,
        .copyright 의 좌우 padding·margin 도 로고에 그대로 적용된다.
   크기는 "높이" 기준(폭 auto) — 로고 비율이 달라도 줄 높이가 같아진다.
   브레이크포인트별로 --footer-logo-h 만 바꾸면 로고·간격이 함께 따라온다. */
footer .copyright::before {
	content: "";
	display: block;
	height: var(--footer-logo-h, 64px);
	margin-bottom: 12px;
	background: var(--footer-logo, url(../images/logo_footer.png)) no-repeat left top;
	background-size: auto var(--footer-logo-h, 64px);
	/* 어떤 로고 파일이든(컬러 상단 로고를 그대로 쓰더라도) 어두운 푸터 배경에서 읽히도록
	   흰색 단색으로 자동 변환한다. brightness(0) 으로 색을 지우고 invert(1) 로 흰색화 —
	   PNG·SVG 의 투명 영역은 알파가 유지되므로 배경은 그대로 투명하다.
	   톤은 root.css 의 --footer-logo-opacity 로 조절(1 = 순백). */
	filter: brightness(0) invert(1);
	opacity: var(--footer-logo-opacity, .5);
}
#GoToTop { position: absolute; right: 30px; top: -46px; background: url(../images/btn_top.png) no-repeat center; background-size:contain; width: 90px; height: 93px;cursor: pointer;}
/* TOP 버튼 색상 = 키컬러.
   btn_top.png 은 [자주색 링·아크·TOP글자] + [흰 원반] 2색이라 통째로 mask 를 걸면 흰 원반과
   TOP 글자까지 한 색으로 뭉개져 버튼이 원판이 된다(로고·서브메뉴 마크와 다른 점).
   → 원본을 배경으로 그대로 깔아 흰 원반을 살리고, "원래 자주색이던 픽셀만" 알파로 남긴
   btn_top_ink.png 을 마스크로 써서 그 위에 키컬러를 덮는다.
   btn_top_ink.png 은 btn_top.png 에서 파생된 마스크 전용 파일이라 원본을 교체하면 함께
   다시 만들어야 한다(생성 규칙: 각 픽셀을 t*자주+(1-t)*흰색 으로 보고 alpha*t 를 알파로 사용).
   학과 홈은 --color-primary-dark 가 학과색으로 덮여 자동으로 학과별 색이 된다. 2026.08 */
#GoToTop::after {
	content: '';
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background-color: var(--color-primary-dark);
	-webkit-mask: url(../images/btn_top_ink.png) no-repeat center / contain;
	        mask: url(../images/btn_top_ink.png) no-repeat center / contain;
	pointer-events: none;
}

footer .copyright b { font-weight: 600;}
footer .sns_btns { display: flex; justify-content: flex-end; align-items: flex-end; gap: 8px; height: 100px; }
footer .sns_btns a { width: 32px; height: 32px; background: no-repeat center; font-size: 0;}
footer .sns_btns a:nth-of-type(1) { background-image: url(../images/footer_sns_insta.png);}
footer .sns_btns a:nth-of-type(2) { background-image: url(../images/footer_sns_fb.png);}
footer .sns_btns a:nth-of-type(3) { background-image: url(../images/footer_sns_twit.png);}
footer .sns_btns a:nth-of-type(4) { background-image: url(../images/footer_sns_yt.png);}
footer .sns_btns a:nth-of-type(5) { background-image: url(../images/footer_sns_mail.png);}

footer .see_mobile { clear:both; margin:0 auto; text-align:center; display:none; } /****** 모바일 버젼으로 보기 숨김처리 **********/

@media (max-width: 1440px) {

    footer {
        padding: 40px 0 12px;
    }

    footer .copyright {
        /* 로고 높이만 조정 — ::before 의 크기·간격이 이 값으로 계산된다(로고 위치는 좌우 padding 을 따름) */
        --footer-logo-h: 45px;
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 768px) {
	footer { padding: 40px 0 20px}
	footer .copyright {
		--footer-logo-h: 32px;
		font-size:12px;
		line-height: 20px;
		letter-spacing: 0;
		padding-left: 0;
		padding-right: 0;
		margin: 0 30px;
	}
	footer .sns_btns { height: 50px; justify-content: flex-start;}
	#GoToTop { right: 15px;  top: -31px;  width: 60px; height: 62px;}
}
@media (max-width: 425px) {
	footer { padding: 20px 0}
	footer .copyright {
		--footer-logo-h: 32px;
		font-size: 11px; line-height: 18px;
	}
}

.media{clear:both; }
.media-body,
.media-left,
.media-right {display:table-cell; vertical-align:top; }
.media-left,
.media>.pull-left { padding-right:10px; }
.media-right,
.media>.pull-right { padding-left:10px; }
.media-heading { font-size:1rem; overflow:hidden; }
.media-body .media-info { font-size:0.786rem; color:#666; }
.media-body .media-info span { padding-right:10px; }


/* sidebar */
.sidebar { border:1px solid #e5e5e5; padding:20px; }
.sidebar .headline { border-bottom:1px dotted #ccc; display:block; margin-bottom:15px; }
.sidebar .headline h3 { border-bottom:2px solid #3498db; display:inline-block; margin:0 0 -2px; padding-bottom:5px; font-size:1.071rem; }
.sidebar .loginbox { overflow:hidden; }
.sidebar .loginbox .text { padding-top:7px; }
.sidebar .loginbox .text li { float:left; padding-right:7px; }
.sidebar .welcome { overflow:hidden; }
.sidebar .welcome ul { overflow:hidden; }
.sidebar .welcome li { float:left; padding-right:5px; padding-bottom:5px; }
.sidebar .sidebar_latest li { padding-bottom:10px; }

.sidebar .tag-clouds{overflow:hidden; }
.sidebar .tag-clouds ul li{float:left; padding-right:10px; }


/* modal */
.modal .modal-body .number { padding-bottom:10px; }
.modal .modal-body .profile-info{overflow:hidden; }


.help-inline { display:inline-block;color:#737373;margin-left:10px; padding-top:7px;vertical-align:middle; }
.nopost {text-align:center; padding:120px 0 !important; }

textarea.dhtmleditor  { width:100%;height:350px; }

.latest_comment_count { font-size:0.786rem; color:#FF7700; margin-left:5px;font-weight:bold; }
.highlight { font-weight:bold; color:#7519FF; }


/* Sideview */
#nameContextMenu { background:#000; color:#fff; padding:4px 8px 6px;z-index:10000; }
#nameContextMenu a { color:#fff; font-size:0.857rem; line-height:1.429rem; display:block; }
#nameContextMenu a:hover { color:#ff0000; }
#nameContextMenu td { border:0px !important; }

/* BtnC */
a.btnC {display: inline-block; width: auto; padding:0 30px;  height:38px;  line-height:38px; border-radius: 19px; font-weight:500; color:#fff; font-size:18px; }
a.btnC:after {content: '>'}
a.btnC.btnC_detail {border:2px solid #fff; margin-right:20px;}
a.btnC.btnC_down {background:#fd4834;}



/* main */
.container { width: 100%; max-width: 1600px; }  /* 1441~1600px 본문 잘림 방지(기존 width:1600px 고정 → 유동) */
.main .navbar-form { margin-top:0; margin-bottom:0; padding:0; }
.main_index > .container { width:100%; max-width:none; padding: 0; }  /* 홈(메인슬라이드 등)은 전체폭 유지(1600px 제한 해제) */

	@media (max-width:1440px) {
		body > .container { width: auto !important; padding: 0;}
		.container { width:100%; padding: 0; }
		.row { margin: 0;}
		.col-md-12 { padding: 0;}
	}





/* #main_visual */
.main_visual { width:100%; position:relative; }
.main_visual .bx-wrapper { position: relative; margin-bottom:inherit; border:0; box-shadow:none; background: none;  }
.main_visual .container { width: 1600px; height: 960px; display: flex; align-items: center; }
.main_visual .bxslider li { position: relative;}
.main_visual .bxslider:after { content:""; display:block; clear:both; }



/* 페이저와 화살표 */
/* 슬라이드 컨트롤러는 마우스 클릭이 가능하도록 pointer-events:auto로 설정 */
.main_visual .bx-controls {
	position:absolute;
	left:50%;
	top:51%;
	transform:translateX(-50%);
	width:1600px;
	max-width:100%;
	padding:0;
	z-index:2;
	pointer-events:none;
	padding-left: 25px;
}
.main_visual .bx-controls .bx-pager,
.main_visual .bx-controls .bx-controls-direction {
	pointer-events:auto;
}


/* 기본 dot 페이저 숨김 */
.main_visual .bx-controls .bx-pager {
	position: relative;
	bottom: auto;
	width: 100%;
	padding: 0;
	text-align: left;
}
.main_visual .bx-wrapper .bx-pager.bx-default-pager a { display: none !important; }


/* 좌우 화살표 */
.main_visual .bx-wrapper .bx-controls-direction {
	display: flex; flex-direction: row; gap: 30px;
}
.main_visual .bx-wrapper .bx-controls-direction a { 
	position: relative;
    bottom: 55%;
	margin-top:0;
	width:70px; height:70px; 
	border-radius:50%;
	background-color: rgba(256, 256, 256, 0.35)
}
.main_visual .bx-wrapper .bx-controls-direction a:hover,
.main_visual .bx-wrapper .bx-controls-direction a:focus {background-color: rgba(17, 103, 188, 0.6); opacity: 0.9; }

.main_visual .bx-wrapper .bx-prev { background:url(../images/controls_l.png) no-repeat center 45%; opacity: 0.5; }
.main_visual .bx-wrapper .bx-next { background:url(../images/controls_r.png) no-repeat center 45%; opacity: 0.5; }


/* 진행바형태로 대체함 */
.main_visual_progress {
	width: 100%;
	height: 2px;
	background: rgba(255, 255, 255, 0.3);
	position: relative;
	overflow: hidden;
	z-index: 1;
	margin-top: 200px;
}
.main_visual_progress_fill {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	background: #fff;
	transition: width 0.4s ease;
	width: 0%;
	z-index: 2;
}



/* 텍스트 박스 설정*/
.main_visual .main_visual_box { background-size: cover; background-position: center top; }
.main_visual .txt_box { 
	background: rgba( 0, 0, 0, 0.30 ); 
	padding: 25px;
	color: #fff; font-weight: 700; line-height: 1.2; width: 100%;
	transform:translateY(-50%);
}
.main_visual .txt_box .line { height: 80px;}
.main_visual .txt_box .txt1,
.main_visual .txt_box .txt2 { 
	font-size: 4.29rem; 
	line-height: 1;
	font-family: var(--font-family-title); 
	font-weight: 500;
	letter-spacing: -2px;
	text-shadow: rgba( 0, 0, 0, 0.8 ) 4px 2px 4px;
}
	:lang(zh) .main_visual .txt_box .txt2 { font-size: 5.43rem; }

.main_visual .txt_box .txt1 { 
	/* background: linear-gradient(90deg, rgba(200,253,217,1) 0%, rgba(246,252,147,1) 100%);  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; box-decoration-break: clone; -webkit-box-decoration-break: clone; clip-path: inset(1px);  */
}
.main_visual .txt_box .txt3 { font-size: 1.88rem; font-weight: 200; color: #c4fd48;  }
.main_visual .txt_box .txt4,
.main_visual .txt_box .txt5 { font-size: 1.72rem; font-weight: 300; color: #ebff46;}
.main_visual .txt_box .txt4 { color: #48ffe9; }

.main_visual .txt_box .link { display: flex; align-items: center; justify-content: space-between; font-size: 18px; font-weight: 500; background-color: #4f6df5; color: #fff; margin-top: 40px; width: 250px; height: 70px; padding: 0 30px; border-radius: 8px; text-transform: uppercase;}
.main_visual .txt_box .link:hover { background-color: #2b47c9;}

.main_visual .txt_box .white {color:#fff !important; background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 100%);  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; box-decoration-break: clone;  -webkit-box-decoration-break: clone; clip-path: inset(1px); }

.link {position:relative}
.link i.arrow {background:url(../images/main_arrow_btn.png) no-repeat 0 0; position:absolute; right:25px; width:9px; height:14px;}

@media (max-width: 1440px) {	
	.main_visual .container {width: 100%; height: 770px; padding: 0 1%;}
}


@media (max-width: 1024px) {	
	.bx-controls-direction { display:none; }
	.main_visual .container { height: 600px;}
	.main_visual .bx-controls {
		width:100%;
		bottom:50px;
		padding:0 5%;
		transform: translateX(-50%) translateY(-10%);
	}
	.main_visual .bx-controls .bx-pager { padding-left:25px; }

	.main_visual .txt_box { transform: translateY(0%);}
	.main_visual .txt_box .line { height: 60px;}
	.main_visual .txt_box .txt1,
	.main_visual .txt_box .txt2 { font-size: 40px; }
	.main_visual .txt_box .txt3 { font-size: 24px;}
	.main_visual .txt_box .txt4,
	.main_visual .txt_box .txt5 { font-size: 34px;}
	.main_visual .txt_box .link { font-size: 16px; width: 200px; height: 60px; padding: 0 24px;}
}
@media (max-width: 768px) {
	.main_visual .container { height: 500px;}
	.main_visual .bx-wrapper .bx-controls-direction { display:none; }
	.main_visual .bx-controls { bottom:20px; }
	
	.main_visual .txt_box { padding-top: 40px; transform: translateY(-10%);}
	
	.main_visual .txt_box .line { height: 50px;}
	.main_visual .txt_box .txt1,
	.main_visual .txt_box .txt2 { font-size: 34px; letter-spacing: 0; }
	.main_visual .txt_box .txt3 { font-size: 20px; margin-top: 10px; letter-spacing: 0;}
	.main_visual .txt_box .txt4,
	.main_visual .txt_box .txt5 { font-size: 28px;}
	.main_visual .txt_box .link { font-size: 14px; width: 180px; height: 50px; padding: 0 20px; margin-top: 30px;}
}
@media (max-width: 425px) {
	.main_visual .main_visual_box { background-size: 240%; background-position: 38% -57px;}
	.main_visual .container { height: 400px;}

	.main_visual .txt_box .line { height: 40px;}
	.main_visual .txt_box .txt1,
	.main_visual .txt_box .txt2 { font-size: 22px; }
	.main_visual .txt_box .txt3 { font-size: 12px; margin-top: 10px;}
	.main_visual .txt_box .txt4,
	.main_visual .txt_box .txt5 { font-size: 14px;}
	.main_visual .txt_box .link { font-size: 12px; width: 150px; height: 40px; padding: 0 14px; margin-top: 30px;}
	.link i.arrow {width:9px; height:16px; right:15px; }

}
@media (max-width: 375px) {
	.main_visual .main_visual_box { background-size: 270%; }
}


/* 메인 visual 영역 스크롤다운 */
.main_visual .icon-scroll {position:absolute;bottom:25%;right:-25px; z-index:1;transform:rotate(-90deg);font-size:18px;font-weight:400; color:rgba(255, 255, 255, 0.6);}

.main_visual .icon-scroll span{
	display:inline-block;
	width: 11px;
	height: 11px;
	border-left: 1px solid rgba(255, 255, 255, 0.6);
	border-bottom: 1px solid rgba(255, 255, 255, 0.6);
	-webkit-transform: rotate(-315deg);
	transform: rotate(-315deg);
	-webkit-animation: sdb 2s infinite;
	animation: sdb 2s infinite;
	box-sizing: border-box;
	margin-top:6px;
}
.main_visual .icon-scroll span:nth-of-type(1) {
	-webkit-animation-delay: 0s;
	animation-delay: 0s;
	margin-right:-5px;
}
.main_visual .icon-scroll span:nth-of-type(2) {
	-webkit-animation-delay: .15s;
	animation-delay: .15s;
	margin-right:15px;
}
	@-webkit-keyframes sdb {
		0% {
			opacity: 0;
		}
		50% {
			opacity: 1;
		}
		100% {
			opacity: 0;
		}
	}
	@keyframes sdb {
		0% {
			opacity: 0;
		}
		50% {
			opacity: 1;
		}
		100% {
			opacity: 0;
		}
	}

@media (max-width: 1600px) {
	.main_visual .icon-scroll {left:auto; right:-40px;padding-bottom:15px;}
	.main_visual .icon-scroll div {display:none;}
	.main_visual .icon-scroll:after {margin:0;}
}

@media (max-width: 425px) {
	.main_visual .icon-scroll {font-size:16px;}
}



/* 메인 공지사항 영역 */
/* main_notice */
.main_notices .container {display: flex; min-height: 300px; }
.main_notices .notice_box { flex:1; padding-top: 70px; padding-bottom: 70px; }
.main_notices .notice_box:first-child { border-right: 1px #e5e5e5 solid; padding-right: 50px; }
.main_notices .notice_box:last-child { padding-left: 50px; }
/* 공지박스가 하나뿐인 학과(학부 과정이 없어 대학원 공지만 쓰는 경우 등).
   :first-child 와 :last-child 규칙이 동시에 걸려 가운데 구분선이 오른쪽 끝에 홀로 남고
   좌우 여백이 겹치므로, 단독일 때만 되돌린다. 2026.08 */
.main_notices .notice_box:first-child:last-child { border-right: none; padding-right: 0; padding-left: 0; }

.main_notices .main_title_box {display: flex; align-items: center; justify-content: space-between;  margin-bottom: 40px;}
.main_notices .main_title_box .main_title {font-family: var(--font-family-title); font-size: 28px; line-height: 1.2; font-weight: 500; color: #000; }
	:lang(zh) .main_notices .main_title_box .main_title {
		font-family: var(--font-family-base, 'Pretendard', sans-serif) !important; 
	}
	.main_notices .main_title_box .main_title span {color: var(--color-primary-light)}
	.main_notice_more img {filter: invert()}

.latest_post { 
	border-bottom: 1px dotted #e5e5e5; padding-bottom: 40px; margin-bottom: 40px; display: flex;align-items: center;
    justify-content: center; gap: 20px;}
.latest_post .latest_date { flex: 1; width: 136px; height: 136px; background-color:#f2f2f2; display: flex; align-items: center;
    justify-content: center; flex-direction: column; position: relative;}
.latest_post .latest_date span { display:block; width: 136px; text-align: center; }
.latest_post .latest_date .latest_year_month { font-size: 15px; font-weight: 300; color: #333; font-family: var(--font-family-title); height: 40px;}
.latest_post .latest_date .latest_day { font-size: 46px; font-weight: 500; color: #333; font-family: var(--font-family-title);}
.latest_post .latest_date .new_badge { 
	position: absolute; top: -10px; right: -10px;
	display: inline-block; width: 30px; height: 30px; 
	background-color: var(--color-secondary-accent); 
	color: #fff; font-size: 15px;line-height: 30px; font-weight: 700; 
	border-radius: 50%;
}
.latest_post .latest_content {flex: auto; width: auto; display: flex; flex-direction: column; gap: 10px; white-space: pre-wrap; word-break: break-word; overflow-wrap: break-word;}
.latest_post .latest_content h4 {font-size: 24px; font-weight: 600; color: #000; line-height: 1.2}
.latest_post .latest_content p { font-size: 16px; font-weight: 300; color: #555;  line-height: 1.2}


.recent_posts li {display: flex; align-items: center; gap: 15px; padding-bottom: 15px; justify-content: space-between }
.recent_posts li .recent_title {display: block; color: #666666; font-size: 16px; font-weight: 500; flex: auto; width: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2}
.recent_posts li .recent_title::before { content: "●"; display: inline-block; font-size: 6px; width: 6px; height: 6px;  vertical-align: middle; margin-right: 10px;color : #a5a5a5; }
.recent_posts li .recent_date {color : #a5a5a5;  font-size: 16px; font-weight: 300; }

@media (max-width: 1440px) {
	.main_notices .container { padding:0 1%;
	}
}
@media (max-width: 1024px) {
	.main_notices .container { flex-direction: column; }
	.main_notices .notice_box {padding-top: 40px; padding-bottom: 40px; }
		
	.main_notices .notice_box:first-child { border-right: none; border-bottom: 1px #e5e5e5 solid; padding-left: 30px; padding-right: 30px; }
	.main_notices .notice_box:last-child { padding-left: 30px; padding-right: 30px;}
}
@media (max-width: 768px) {
}
@media (max-width: 525px) {
	.latest_post { flex-direction: column; align-items: flex-start; gap: 15px;}
	.latest_post .latest_date { width: 100%; height: auto; flex-direction: row; gap: 10px; padding: 10px; }
	.latest_post .latest_date span { width: auto; }
	.latest_post .latest_date {gap:0;}
	.latest_post .latest_date .latest_year_month { height: auto; }
	.latest_post .latest_date .latest_day { font-size: 15px; text-align: left;}
}


/* 메인 서비스 배너 영역 */
.main_service { 
	background-color: var(--color-bg-light); 
	display: flex; flex-direction: row; 
}
.main_service .service_title {
	border-top-right-radius: 80px; 
	border-bottom-right-radius: 80px;
	width: 447px; 
	height: 535px;
	background-color: #fff;
	background-image: url(../images/main_sevice_bg.png); background-repeat: no-repeat; background-position: center 100%;
	margin-bottom: 145px;
}
	.main_service .service_title h2 {
	font-size: 46px; font-weight: 500; 
	font-family: var(--font-family-title); 
	padding-top: 60px;
	padding-left: 160px;
	color: #000;  
}
	.main_service .service_title span { color: var(--color-primary-light); }
	:lang(zh) .main_service .service_title { font-family: var(--font-family-base) !important; }

.service_box {
	flex: 1;
	padding: 67px 84px;
}
/* main_service 그룹(main_service1/2/3): 각 그룹을 세로로 분리 + 상단 타이틀 */
.service_box .service_group + .service_group { margin-top: 40px; }
.service_box .service_group_title {
	font-size: 22px; font-weight: 700; color: #333; margin: 0 0 20px;
	/*font-family: var(--font-family-title);*/
}
.service_box ul {
	display: flex; 
	flex-direction: row; 
	flex-wrap: wrap; 
	align-items: center; 
	justify-content: flex-start; 
	gap: 18px;
}

.service_box .service_item {
	width: 215px; height: 150px; background-color: #fff; border-radius: 20px;  gap: 15px;
	padding: 20px 5px;
	border: 1px solid rgba(0,0,0,0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex; align-items: center; justify-content: center; flex-direction: column;
}
.service_box .service_item a {
	display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
	width: 100%; 
}
.service_box .service_item_img { 
	display: flex; align-items: center; justify-content: center; 
	max-height: 43px; 
}
.service_box .service_item_img img {
    /* 반응형: 뷰포트가 좁아질수록 아이콘이 점점 작아짐(최대 43px → 최소 22px). 525px 이하에서는 아래 미디어쿼리의 .service_item_img { display:none } 으로 숨김 */
    height: clamp(22px, 1.8vw + 12px, 43px);
    width: auto;
    max-width: 100%;
}
.service_box .service_item_text{ 
	font-size: 16px; font-weight: 500; line-height:1.2;
	width: 95%; margin:0 auto; text-align: center;
	/*font-family: var(--font-family-title);*/
	min-height: 30px;
	display: flex; align-items: center; justify-content: center;
}


@media (max-width: 1440px) {
	.main_service .service_title {
		border-top-right-radius: 70px; 
		border-bottom-right-radius: 70px;
		width: 347px; 
		height: 435px;
		background-size: cover;
	}
	.main_service .service_title h2 {
		padding-top: 50px;
		padding-left: 100px;
	}
	.service_box {
		padding: 33px 42px;
	}
	.service_box ul {
		gap: 25px;
	}
	.service_box .service_item {
		width: 175px; height: 140px;
	}
}
@media (max-width: 1024px) {
	.main_service .service_title {
		border-top-right-radius: 50px; 
		border-bottom-right-radius: 50px;
		width: 247px; 
		height: 335px;
		background-size: cover;
	}
	.main_service .service_title h2 {
		padding-top: 35px;
		padding-left: 60px;
	}
	.service_box {
		padding: 33px 42px;
	}
	.service_box ul {
		gap: 15px;
	}
	.service_box .service_item {
		width: 155px; height: 140px;
	}
	/* (@1024) 아이콘 확대(min-height:53px) 제거 — 기본 clamp() 유동 축소가 적용되도록 함 */
}
@media (max-width: 768px) {
	.main_service { flex-direction: column;}
	
	.main_service .service_title {
		width: 95%; 
		height: 150px;
		margin-bottom:10px;
		margin-left: auto;
		background-size: 250px auto;
		background-position: 100% 80%;
			
		border-top-right-radius: 0; 
		border-bottom-right-radius: 0;
		border-bottom-left-radius: 80px; 
		border-top-left-radius: 0;
	}
	
}
@media (max-width: 525px) {
	.service_box {
		padding: 5px 10px;
	}
	.service_box ul {
        gap: 10px;
    }
	.main_service .service_title h2 {
		font-size: 26px; 
	}
    .service_box .service_group_title {
        font-size: 18px;
    }
	.service_box .service_item {
		width: calc(33.3% - 10px); height: 100px;
		border-radius: 10px;  gap: 10px;
		padding: 10px 5px;
	}
	.service_box .service_item a {
		display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px;
		width: 100%; 
	}
	.service_box .service_item_img { 
        display: none;
	}
	.service_box .service_item_img img {
		max-height: 35px;
        max-width: 40px;
	}
	.service_box .service_item_text{ 
		font-size: 14px; font-weight: 500; line-height:1.2;
		width: 98%; margin:0 auto; text-align: center;
	}
}




/* 메인 갤러리 영역 */
.main_gallery { 
	display: flex; flex-direction: row;
	background-image: url(../images/main_gallery_tiltle_bg.png); background-repeat: no-repeat; background-position: 100% 0; 
	width: 100%;
	min-height: 535px;
}
.main_gallery .gallery_box {
	order: 1; 
	flex:3;
	width: auto;
	position: relative;
}
.main_gallery .gallery_title {
	order: 2; 
	flex:1; 
}

	.main_gallery .gallery_title h2 {
		font-size: 46px; font-weight: 500; 
		font-family: var(--font-family-title); 
		padding-top: 120px;
		padding-right: 160px;
		text-align: right;
		color: #000;  
	}
	.main_gallery .gallery_title span { color: var(--color-primary-light); }
	:lang(zh) .main_gallery .gallery_title { font-family: var(--font-family-base) !important; }


.main_gallery .gallery_box {
	display: flex; align-items: center; justify-content: center;
	position: relative;
}
.main_gallery .gallery_box .bx-controls {
	position:absolute; 
	right: -30%;
	top: 50%;
	z-index: 890;
	width: 100px;
	height: 50px;
}
.main_gallery .bx-wrapper {
	margin-bottom: 0;
	box-shadow: none;
	border: none;
	background: transparent;
	transform: translateX(-120px);
}
.main_gallery .bx-wrapper .bx-controls-direction a {
	border-radius: 50%;
	width: 36px;
	height: 36px;
	line-height: 36px;
	text-align: center;
	background-color: var(--color-bg-light);
	background-image: url(../images/arrow_dot_w.png);
	background-position: 50% 50%;
	background-repeat: no-repeat;
}
.main_gallery .bx-wrapper .card-image-wrapper img {
	border-radius: 20px;
	overflow: hidden;
}
.main_gallery .bx-wrapper .card-image-wrapper:hover {
	transform: scale(1.05);
}
.main_gallery .bx-wrapper .bx-controls-direction a:hover {
	background-color: var(--color-secondary-accent);
	background-image: url(../images/arrow_dot.png);
}

.main_gallery .bx-wrapper .bx-controls-direction a.bx-prev {
	transform: scaleX(1);
}

.main_gallery .bx-wrapper .bx-controls-direction a.bx-next {
	transform: scaleX(-1); /* 좌우 반전 */
}

.main_gallery .bx-wrapper .card {
	min-width: calc((100% - 40px) / 3);
	max-width: calc((100% - 40px) / 3);
	box-sizing: border-box;
	background: #fff;
	border: 1px solid #eef0f3;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

@media (max-width: 1024px) {

	.main_gallery .gallery_box {
		flex:6;
	}
	.main_gallery .gallery_title {
		flex:1; 
	}
	.main_gallery .gallery_title h2 {
		padding-top: 80px;
    	padding-right: 40px;
	}

	.main_gallery .bx-wrapper {
		transform: translateX(-80px);
	}
	.main_gallery .gallery_box .bx-controls {
    	
	}
	
}

@media (max-width: 768px) {
	.main_gallery {
		flex-direction: column;
		min-height: 235px;
		background-size:50%;
		margin-bottom:50px;
	}

	.main_gallery .gallery_box {
		order: 2; 
		flex:auto;
		width: auto;
		position: relative;
	}
	.main_gallery .gallery_title {
		order: 1; 
		flex:auto; 
	}
	.main_gallery .gallery_title h2 {
		padding-top: 20px;
		padding-right: 0;
		text-align: right;
		font-size: 26px;
		width: 95%;
		margin-bottom: 20px;
	}
	.main_gallery_list { 
		display: flex; align-items: center; justify-content: center; gap: 20px;
		width: 100%; 
		flex-direction: row; flex-wrap: wrap;
	}
	.main_gallery_list .gallery_card {
		width: calc(50% - 20px);
	}
	.main_gallery_list .gallery_card img {
		width: 100%;
		height: auto;
		border-radius: 12px;
	}
}









/***************************************************************************************************************************************
 sub_layout :common / contents :common / contents  →  custom-override.css 로 이동 (2026-08-13)

   서브페이지 관련 구간을 이 파일에서 덜어내 assets/css/custom-override.css 로 옮겼다.
   custom-override.css 는 이 파일보다 뒤에 로드되므로 화면 결과는 동일하다(자세한 근거는
   custom-override.css 헤더 주석 참조). 옮긴 것:
     .sub_title_area / .sub_menu_bg / .sub_menu / .sub_con / 게시판 타이틀 / 최종수정일 / ready
     .con_box / .con_tbl / btn / bootstrap custom / .privacy
     Greetings / Professor / Staff / Address / 전공소개 / 커리큘럼 / admission / FAQ
     GCED / OVERVIEW / Programme / presenter / History / registration

   ⚠ 서브페이지 스타일을 고칠 때는 이 파일이 아니라 custom-override.css 를 연다
     (관리자 > 자산관리 > css관리 > custom-override.css). */

/********************************************************************************************************************************
 admin*/
 
/* login */
.access { margin:0; float:inherit; width:100%; }
.access .panel { border-radius:0; box-shadow:none; width:60%; margin:10% auto 15% auto;border:none; }
.access .panel-heading { font-size:50px; font-weight:700; background-color:#fff; background-image:none; text-align:center; border:none; border-bottom:3px solid #222; line-height:60px; }
.access .panel-body {background:#f9f9f9; padding-top:30px;}
.access #autologin, .access label:last-child { display: none; }
/* .admin_btn 은 로그인 화면이 아니라 문서 페이지의 관리자용 [내용수정] 버튼이다
   (views/document/{hd,en}/document.php · views/currentvisitor/hd/document.php).
   admin 구획에 있지만 서브페이지 요소이므로 2026-08-13 CSS 분리 때 자리를 옮길지 검토했고,
   custom-override.css 에 있던 같은 명시도의 죽은 선언(margin-top:100px)을 주석 처리하는 쪽으로
   정리했다 — 그 선언은 분리 전에도 이 규칙에 덮여 한 번도 적용된 적이 없다. 자세한 경위는
   custom-override.css 의 그 주석에 있다. ★ .admin_btn 여백은 여기서 고친다. */
.admin_btn { margin:50px 0; text-align:right; }

.access .panel .btn-primary {
	font-size: 1.2143rem;
    padding: 8px 70px;
    font-weight: 500;
    border-radius: 30px;
	background-color: #516df5;
	border-color: #516df5;
	margin:0 auto;
}
@media (min-width:768px) {		
	.navbar-right .dropdown-menu { right:inherit; }
	.container>.navbar-collapse { padding-right:0; padding-left:0; margin-top:30px; }		
}

@media (max-width:525px) {	
	.access .panel {width:90%; }
	.access .panel .btn-primary {
		font-size: 1.6143rem;
		width:100%;
		padding: 8px 80px;
		font-weight: 500;
		border-radius: 30px;
		background-color: #516df5;
		border-color: #516df5;
	}
	
	.admin_btn {display: none;}
}


/* main page youtube video start */
.youtube-video-container { display: flex; justify-content: center; }

.youtube-video-container iframe { max-width: 100%; max-height: 100%; }
@media (max-width: 425px) {
	.youtube-video-container iframe { height: 200px;}
}

/* main page youtube video end */

/* ==========================================================================
   학과 페이지(.dept-site) 전용: 메인 슬라이드 · 서브비주얼 높이 축소. 2026.07
   - .dept-site 는 학과 레이아웃(views/_layout/major/layout.php)의 .wrapper 에만 부여됨.
   - 본부(hd 레이아웃)에는 영향 없음. 각 브레이크포인트는 기존 규칙과 동일하게 맞춤.
   ========================================================================== */
/* 메인 슬라이드: 컨테이너 높이 축소 + 슬라이드 박스 높이를 컨테이너에 맞춰 자동화 */
.dept-site .main_visual .container { height: 620px; }
.dept-site .main_visual .main_visual_box { height: auto !important; }
/* 서브비주얼: 높이 변수 축소(기본 550) + 내부 여백 재정렬 */
.dept-site { --height-sub-title: 360px; }
.dept-site .sub_title_area .current_location { margin-top: 150px; }
.dept-site .sub_title_area h2 { margin-top: 12px; }

@media (max-width: 1440px) {
	.dept-site .main_visual .container { height: 520px; }
}
@media (max-width: 1024px) {
	.dept-site .main_visual .container { height: 420px; }
}
@media (max-width: 768px) {
	.dept-site .main_visual .container { height: 340px; }
	.dept-site { --height-sub-title: 180px; }
	.dept-site .sub_title_area .sub_title h2 { margin-top: 60px; }  /* 서브메뉴와 간격 확보 */
}
@media (max-width: 525px) {
	.dept-site { --height-sub-title: 140px; }
	.dept-site .sub_title_area .sub_title h2 { margin-top: 30px; }  /* 서브메뉴와 간격 확보 */
}
@media (max-width: 425px) {
	.dept-site .main_visual .container { height: 280px; }
}
/* 학과 페이지 높이 축소 end */


/* ==========================================================================
   학과 페이지(.dept-site) 전용: 상단 메뉴바 기본형 = 마우스오버(body.mega-open) 상태. 2026.08
   - 종전엔 기본이 완전 투명 + 흰 글자였고, 오버(body.mega-open)/스크롤(.navbar_box_fixed)
     시에만 흰 배경 + 학과 키컬러 글자 + 로고 단색으로 바뀌었다. 그 오버 상태를 기본으로 승격.
   - 값은 위 743~750(오버) / 643~676(로고 단색화) 블록을 그대로 복제하고, 선택자만
     body.mega-open → .dept-site 로 바꿔 명시도를 한 단계 올린 것이다. 기존 규칙은 그대로 두며
     값이 동일하므로 오버·스크롤 시에도 충돌 없이 같은 모습이 유지된다.
   - .dept-site 는 학과 레이아웃(views/_layout/major/layout.php)의 .wrapper 에만 부여됨
     → 본부(intl)·레거시(hd) 헤더는 종전대로 투명 유지.
   - 본문을 헤더 높이만큼 내리지 않는다(요청). 오버 상태와 동일하게 흰 바가 메인 슬라이드·
     서브비주얼 상단을 덮는 형태 그대로다.
   ========================================================================== */

/* 메뉴바 배경 : 흰색 고정. <nav>(.navbar) 자체는 투명이고 자식 바가 색을 채우는 기존 구조 유지
   (.navbar-utility 는 이미 키컬러 배경이라 별도 처리 불필요) */
.dept-site .navbar_menu { background: #fff; }

/* 1차 메뉴 글자 : 학과 키컬러 */
.dept-site .navbar-default .navbar-nav > li > a,
.dept-site .navbar-default .navbar-nav > .active > a,
.dept-site .navbar-default .navbar-nav > .active > a:hover,
.dept-site .navbar-default .navbar-nav > .active > a:focus,
.dept-site .navbar-default .navbar-nav > .open > a,
.dept-site .navbar-default .navbar-nav > .open > a:hover,
.dept-site .navbar-default .navbar-nav > .open > a:focus { color: var(--color-primary-dark); }

/* 개별 항목 hover : 밝은 키컬러. 바 전체가 이미 흰색이므로 오버 시 남는 유일한 변화다. */
.dept-site .navbar-default .navbar-nav > li > a:hover,
.dept-site .navbar-default .navbar-nav > li > a:focus { color: var(--color-primary-light); }

/* 학과 로고 단색화 : major/layout.php 가 :root 로 넘긴 --dept-logo / --dept-logo-paint /
   --dept-logo-hide 를 그대로 사용한다. 세 var() 의 폴백(transparent / none / visible)이
   안전장치 — 변수가 안 넘어오면 단색화가 통째로 꺼지고 원본 로고가 그대로 보인다. */
.dept-site .navbar-default .navbar-brand-dept {
	background-color: var(--dept-logo-paint, transparent);
	-webkit-mask-image: var(--dept-logo, none);
	        mask-image: var(--dept-logo, none);
	-webkit-mask-position: left center;
	        mask-position: left center;
	-webkit-mask-size: 100% 100%;
	        mask-size: 100% 100%;
	filter: none;   /* 모바일 흰색 반전(@media max-width:960px) 해제 */
}
.dept-site .navbar-default .navbar-brand-dept img {
	visibility: var(--dept-logo-hide, visible);
}

/* 학과 로고(dept_logo)가 없어 본부 로고로 폴백된 경우도 동일하게 단색 처리 */
.dept-site .navbar-default .navbar-brand:not(.navbar-brand-dept) {
	--logo-image: none;
	--logo-color: var(--color-primary-dark);
	--logo-mask: url(../images/logo_en.png);
	filter: none;
}

/* 모바일 햄버거 아이콘 : 기본값 #fff(위 1037행) 라 흰 바 위에서 안 보인다 → 키컬러로.
   오버 상태에는 없던 규칙이다 — 메가메뉴가 데스크톱(≥961px) 전용이라 필요가 없었을 뿐,
   바가 상시 흰색이 되는 지금은 ≤960px 구간에서 필수. */
.dept-site .navbar-default .navbar-toggle .icon-bar { background-color: var(--color-primary-dark); }
/* 학과 메뉴바 기본형 = 오버 상태 end */

/******* 문서 전용 블록(about_school / school_history / school_vision / major_scholarship)
        →  custom-override.css 로 이동 (2026-08-13) *******/


/******* 중문 표제 굵기 보정 *********/
/* --font-family-title(OneMobileT)을 쓰는 규칙에 대해 중문에서만 font-weight:600 을 준다. 2026-08
   ko/en 은 각 규칙이 선언한 굵기(100·300·500·700 …)를 그대로 유지한다 — 이 블록은 :lang(zh) 로만 걸린다.

   ★ 왜 굵기만 손보는가 —
     이 파일 22~25행의 전역 규칙
         :lang(zh) { font-family: var(--font-family-base) !important; }
     이 중문 페이지의 "모든" 요소를 Pretendard 로 강제한다. :lang(zh) 는 lang 상속 때문에 전 요소에
     매칭되고 !important 라 아무리 구체적인 font-family 선언도 이긴다(27~31행의 FontAwesome 복원
     규칙이 그 부작용을 되돌린 흔적이다). 즉 중문에서는 OneMobileT 이 애초에 적용되지 않는다.
     OneMobileT 은 OneMobile.css 에 굵기가 normal 하나뿐이라 500·700 이 브라우저 합성으로 비슷하게
     보이지만, Pretendard 는 실제 굵기를 가지므로 같은 값이 중문에서 더 얇고 들쭉날쭉해 보인다.
     그래서 중문만 600 으로 통일한다. (폰트를 바꾸는 것이 아니라 굵기만 맞추는 것이므로
     위 전역 규칙과 충돌하지 않는다.)

   ★ 명시도 — 원본 규칙에 :lang(zh) 하나가 더 붙은 형태라 항상 원본을 이긴다.
     @media 안 규칙보다도 명시도로 이기므로 전 브레이크포인트에서 600 이 적용된다.
     ⚠ 2026-08-13 서브페이지 CSS 가 custom-override.css 로 옮겨져 아래 목록의 상당수(.sub_title_area
       h2 · .greetings · .person_name · .curriculum · .admission · .faq · #accordion · .about_school ·
       .school_history · .school_vision · .major_scholarship 등)는 이제 그 파일에 있고, 이 블록은
       그보다 "앞"에서 로드된다. 그래도 :lang(zh) 가 붙어 명시도가 한 단계 높으므로 여전히 이긴다
       — 이 블록이 순서가 아니라 명시도로 이기게 설계된 덕이다. 위치를 옮길 필요 없음.

   ★ 목록 유지 — 새로 --font-family-title 을 쓰는 규칙을 추가하면 아래 목록에도 넣어야 한다.
     대상은 다음으로 다시 뽑을 수 있다(주석 처리된 선언 2건, titleS 는 제외).
     ⚠ 두 파일을 함께 봐야 한다 — 서브페이지 규칙은 custom-override.css 에 있다:
         grep -n "font-family: var(--font-family-title[,)]" assets/css/style.css assets/css/custom-override.css

   ★ 일부러 제외한 것 —
     - .sub_menu_bg .sub_menu ul li a : custom-override.css 에 이미 :lang(zh) … font-weight:600 이
                                        있다(중복 금지). 2026-08-13 서브페이지 CSS 이동으로 파일이 갈렸다.
     - .sub_menu.container ul li a    : 35~38행이 전 언어 font-weight:700 !important 로 고정한다.
     - --font-family-titleS(OneMobileR) 규칙 : 이번 범위가 아니다
       (.tabs_3depth li a · .as_num · .as_time_date · .as_major_ko · .hs_date ·
        .vs_hub_title · .vs_row_no · .vs_row_title). 행 번호는 위 grep 로 확인할 것.
     - 표제 안의 <strong>(.as_headline strong 등)은 자기 굵기 900 을 선언하므로 중문에서도 900 이다.
       강조 대비를 남기려고 두었다 — 600 으로 맞추려면 아래 목록에 그 선택자를 추가하면 된다. */

:lang(zh) .main_visual .txt_box .txt1,
:lang(zh) .main_visual .txt_box .txt2,
:lang(zh) .main_notices .main_title_box .main_title,
:lang(zh) .latest_post .latest_date .latest_year_month,
:lang(zh) .latest_post .latest_date .latest_day,
:lang(zh) .main_service .service_title h2,
:lang(zh) .main_gallery .gallery_title h2,
:lang(zh) .sub_title_area h2,
:lang(zh) .ready_txt01,
:lang(zh) .greetings .greetings_text .txt1,
:lang(zh) .greetings .greetings_text .txt2,
:lang(zh) .person_name,
:lang(zh) .major_title .title_name,
:lang(zh) .curriculum h4,
:lang(zh) .admission .admission_card .admission_title .admission_title_box,
:lang(zh) .faq .search_box .form-control,
:lang(zh) #accordion .panel-title,
:lang(zh) .about_school .as_headline,
:lang(zh) .about_school .as_sec_title,
:lang(zh) .school_history .hs_headline,
:lang(zh) .school_vision .vs_headline,
:lang(zh) .major_scholarship .sch_headline,
:lang(zh) .major_eduobj .edu_headline {
	font-weight: 600;
}
/******* 중문 표제 굵기 보정 end *********/
