/* 언어 선택 메뉴 — 리뉴얼에서 추가 (구 디자인 보완용 최소 스타일) */
.gnb .lang_sel { position: relative; margin-left: 12px; padding-left: 14px; }
.gnb .lang_sel:before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 12px;
	background: rgba(255, 255, 255, 0.4);
}
#header.on .gnb .lang_sel:before,
#header.bl .gnb .lang_sel:before { background: rgba(0, 0, 0, 0.4); }
.gnb .lang_sel .lang_cur {
	cursor: pointer;
	white-space: nowrap;
	/* HOME/CONTACT 링크(display:block)와 같은 블록 레벨로 — inline-flex는
	   베이스라인 기준 배치라 몇 px 내려앉는다 */
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 0 2px;
	line-height: inherit;
	user-select: none;
}
/* KR 글자 바로 아래에 붙도록 좌측 기준 정렬 + 마우스 이동 중 끊기지 않게 여백(bridge) */
.gnb .lang_sel .lang_list {
	display: none;
	position: absolute;
	top: 100%;
	left: 14px;   /* .lang_sel 의 padding-left 만큼 — KR 글자 시작점에 맞춤 */
	right: auto;
	margin-top: 0;
	padding: 6px 0;
	min-width: 132px;
	background: #fff;
	border: 1px solid #d8dde5;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
	z-index: 10010;
}
.gnb .lang_sel .lang_list:before {
	content: '';
	position: absolute;
	left: 0; right: 0; top: -10px;   /* 헤더와 목록 사이 빈틈을 덮어 hover 끊김 방지 */
	height: 10px;
}
/* 마우스오버로도 열리고, 클릭(.open)하면 고정된다 */
.gnb .lang_sel:hover .lang_list,
.gnb .lang_sel.open .lang_list { display: block; }
.gnb .lang_sel .lang_list li { display: block; margin: 0; }
.gnb .lang_sel .lang_list li a {
	display: block;
	padding: 9px 18px;
	font-size: 15px;
	line-height: 1.4;
	font-weight: 500;
	color: #333;
	white-space: nowrap;
	text-align: left;
}
.gnb .lang_sel .lang_list li a:hover { background: #f2f5f9; color: #1e3a8a; }
.gnb .lang_sel .lang_list li.on a { color: #1e3a8a; font-weight: 700; }

/* 언어명은 각 언어권에서 가장 널리 쓰는 서체로 — 굵기·크기는 통일
   (기존 .head .gnb ul>li>a 규칙보다 우선하도록 선택자를 구체화) */
.gnb .lang_sel .lang_list li a.lang-item-kr,
.allmenu .allmenu_langs a.lang-item-kr {
	font-family: "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", sans-serif;
}
.gnb .lang_sel .lang_list li a.lang-item-en,
.allmenu .allmenu_langs a.lang-item-en {
	font-family: "Wix Madefor Display", Arial, Helvetica, sans-serif; letter-spacing: .01em;
}
.gnb .lang_sel .lang_list li a.lang-item-jp,
.allmenu .allmenu_langs a.lang-item-jp {
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", YuGothic, "Noto Sans JP", Meiryo, "MS PGothic", sans-serif;
}
.gnb .lang_sel .lang_list li a.lang-item-cn,
.allmenu .allmenu_langs a.lang-item-cn {
	font-family: "PingFang SC", "Microsoft YaHei", "微软雅黑", "Noto Sans SC", "Source Han Sans SC", "Heiti SC", SimHei, sans-serif;
}
/* 4개 항목의 크기·굵기·자간을 통일 (선택 중인 항목만 굵게) */
.gnb .lang_sel .lang_list li a,
.allmenu .allmenu_langs a { font-size: 15px; font-weight: 500; letter-spacing: 0; }
.gnb .lang_sel .lang_list li.on a,
.allmenu .allmenu_langs a.on { font-weight: 700; }

/* 일본어·중국어로 볼 때 사이트 전체 서체를 해당 언어권 기본 서체로.
   라틴 문자는 기존 디자인 서체를 그대로 쓰고, 한자·가나만 현지 서체로 표시된다.
   (한국어 화면에는 적용되지 않으므로 기존 디자인은 그대로) */
html.lang-jp body, html.lang-jp body *:not(script):not(style) {
	font-family: "Wix Madefor Display", "Hiragino Kaku Gothic ProN", "Hiragino Sans",
	             "Yu Gothic", YuGothic, "Noto Sans JP", Meiryo, "MS PGothic", sans-serif !important;
}
html.lang-cn body, html.lang-cn body *:not(script):not(style) {
	font-family: "Wix Madefor Display", "PingFang SC", "Microsoft YaHei", "微软雅黑",
	             "Noto Sans SC", "Source Han Sans SC", "Heiti SC", SimHei, sans-serif !important;
}

/* 전체메뉴 상단 언어 줄 — allmenuwrap 밖(absolute)이라 기존 flex 레이아웃에 영향 없음
   위치: 우측 상단(X버튼 아래) — 로고·GNB와 겹치지 않는 영역 */
.allmenu .allmenu_langs {
	position: absolute;
	top: 120px;
	right: 5%;
	left: auto;
	z-index: 5;
	text-align: right;
}
.allmenu .allmenu_langs a {
	display: inline-block;
	margin-right: 16px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	color: #999;
}
.allmenu .allmenu_langs a.on { color: #111; font-weight: 700; text-decoration: underline; }
.allmenu .allmenu_langs a:last-child { margin-right: 0; }

/* 메인 인트로 오버레이 — 애니메이션 종료 후 클릭 통과 (구 사이트부터 있던
   '메인 최상단에서 헤더 클릭 불가' 문제 보정, 시각 변화 없음) */
.intro.end { pointer-events: none; }

/* 관리자 전용 바 — 로그인한 관리자에게만 출력(비로그인 방문자 화면은 변화 없음) */
.ow-adminbar {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 18px 0;
	padding: 10px 14px;
	background: #f4f7fb;
	border: 1px solid #dbe3ee;
	border-radius: 8px;
	font-size: 14px;
}
.ow-adminbar--list { margin: 0 0 18px; }
.ow-adminbar .ow-adminbar__tag {
	display: inline-block;
	padding: 3px 9px;
	border-radius: 999px;
	background: #1e3a8a;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
}
.ow-adminbar > a {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid #c7d2e2;
	border-radius: 6px;
	background: #fff;
	color: #1f2937;
	font-size: 13.5px;
	line-height: 1.4;
	text-decoration: none;
	transition: background .15s, border-color .15s, color .15s;
}
.ow-adminbar > a:hover { background: #1e3a8a; border-color: #1e3a8a; color: #fff; }

/* 푸터 관리자 바로가기 — 저작권 문구 옆 작은 자물쇠 아이콘 */
.foot .copy .admin_link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-left: 8px;
	vertical-align: -7px;
	border-radius: 5px;
	color: inherit;
	opacity: .45;
	transition: opacity .15s, background .15s;
}
.foot .copy .admin_link:hover {
	opacity: 1;
	background: rgba(255, 255, 255, .14);
}

/* 전체메뉴 열림(#header.all) 상태 보정:
   - 오버레이(.allmenu z3000)가 GNB/X버튼(z3000, DOM 앞순서)을 덮어 클릭 불가였던 문제
     → 열림 상태에서만 로고·GNB를 오버레이 위(z6000)로 올려 X를 살린다
   - HOME/CONTACT/KR 흰색 → 검정색 */
#header.all .head h1 { z-index: 6000; }
#header.all .head .gnb { z-index: 6000; }
#header.all .head .gnb ul > li > a { color: rgba(0, 0, 0, 0.9); }
#header.all .head .gnb ul > li:nth-child(1):after { background: rgba(0, 0, 0, 0.4); }
#header.all .gnb .lang_sel:before { background: rgba(0, 0, 0, 0.4); }

.gnb .lang_sel .lang_cur .arr { font-size: 9px; line-height: 1; }

/* 외국어(en/jp/cn) 긴 번역문 줄바꿈·넘침 보호 — 한국어 화면에는 적용되지 않음 */
html[class*="lang-"] body { overflow-wrap: break-word; word-break: normal; }
/* 시공사례 상세 Project Information — 영문 라벨(Waterproofing Area 등)이 길어
   고정폭 160px을 넘치므로 영어에서만 라벨 폭 확장 */
html.lang-en .m41_view .conwrap .project_info dl dt { width: 205px; }
html.lang-en .m41_view .conwrap .project_info dl dd { width: calc(100% - 205px); }
/* 표·스펙 셀의 긴 번역문은 셀 안에서 줄바꿈 */
html[class*="lang-"] table td, html[class*="lang-"] table th { word-break: normal; overflow-wrap: break-word; }
