/* BPS5 언어 선택 — 헤더 우측 국기 드롭다운 */
.bps-lang-toggle { position: relative; margin-left: 12px; padding-left: 14px; border-left: 1px solid rgba(10,10,10,.14); }
.bps-lang-toggle .lang-current {
  display: inline-flex; align-items: center; gap: 7px;
  background: none; border: 0; cursor: pointer; padding: 5px 4px;
  font-family: 'Albert Sans', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--ink, #0A0A0A);
}
.bps-lang-toggle .lang-current .fi { width: 1.5em; height: 1.12em; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
/* [깜빡임 0] 헤더 인디케이터(국기+코드)를 <html lang> 으로 그림 → 첫 페인트부터 정확.
   <html lang> 은 CSS 앞 헤드 스크립트가 0ms에 확정. JS(textContent)는 아래 font-size:0 로 숨겨 중복표기(예: "JAJA") 방지. */
.bps-lang-toggle .lang-current .lang-code[data-cur-code] { font-size: 0; }
.bps-lang-toggle .lang-current .lang-code[data-cur-code]::after { font-size: 11px; font-weight: 700; letter-spacing: .06em; }
html[lang="ko"] .bps-lang-toggle .lang-current .lang-code[data-cur-code]::after { content: "KO"; }
html[lang="en"] .bps-lang-toggle .lang-current .lang-code[data-cur-code]::after { content: "EN"; }
html[lang="fr"] .bps-lang-toggle .lang-current .lang-code[data-cur-code]::after { content: "FR"; }
html[lang="ja"] .bps-lang-toggle .lang-current .lang-code[data-cur-code]::after { content: "JA"; }
html[lang="zh"] .bps-lang-toggle .lang-current .lang-code[data-cur-code]::after { content: "ZH"; }
html[lang="ko"] .bps-lang-toggle .lang-current [data-cur-flag] { background-image: url(https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.2.3/flags/4x3/kr.svg) !important; }
html[lang="en"] .bps-lang-toggle .lang-current [data-cur-flag] { background-image: url(https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.2.3/flags/4x3/us.svg) !important; }
html[lang="fr"] .bps-lang-toggle .lang-current [data-cur-flag] { background-image: url(https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.2.3/flags/4x3/fr.svg) !important; }
html[lang="ja"] .bps-lang-toggle .lang-current [data-cur-flag] { background-image: url(https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.2.3/flags/4x3/jp.svg) !important; }
html[lang="zh"] .bps-lang-toggle .lang-current [data-cur-flag] { background-image: url(https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.2.3/flags/4x3/cn.svg) !important; }
.bps-lang-toggle .lang-caret { font-style: normal; font-size: 8px; color: #aaa; transition: transform .25s; }
.bps-lang-toggle .lang-current[aria-expanded="true"] .lang-caret { transform: rotate(180deg); }

.bps-lang-toggle .lang-menu {
  position: absolute; top: calc(100% + 10px); right: 0; z-index: 200;
  min-width: 160px; margin: 0; padding: 6px; list-style: none;
  background: #fff; border: 1px solid rgba(10,10,10,.08); border-radius: 12px;
  box-shadow: 0 14px 34px rgba(10,10,10,.16);
  opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top right;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.bps-lang-toggle.open .lang-menu { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.bps-lang-toggle .lang-menu li { margin: 0; }
.bps-lang-toggle .lang-menu .lang-btn {
  display: flex; align-items: center; gap: 11px; width: 100%;
  background: none; border: 0; cursor: pointer; padding: 9px 11px; border-radius: 8px;
  font-family: 'Albert Sans', 'Noto Sans KR', sans-serif; font-size: 13px; font-weight: 600; color: var(--ink, #0A0A0A); text-align: left;
  transition: background .18s;
}
.bps-lang-toggle .lang-menu .lang-btn .fi { width: 1.55em; height: 1.16em; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); flex: none; }
.bps-lang-toggle .lang-menu .lang-btn:hover { background: rgba(91,200,228,.08); }
.bps-lang-toggle .lang-menu .lang-btn.on { color: var(--bp, #2A7A94); font-weight: 700; }
.bps-lang-toggle .lang-menu .lang-btn.on::after { content: "✓"; margin-left: auto; color: var(--bp); font-size: 11px; }

/* [모바일 언어버튼] 헤더에서 숨기지 않고 컴팩트하게 노출(사용자: 홈에서 언어버튼이 안 보임). 5개 칩을 작게. */
@media (max-width: 1023px) {
  .util .bps-lang-toggle { display: inline-flex !important; margin-left: 6px; padding-left: 6px; gap: 0; flex: none; }
  .util .bps-lang-toggle .lang-btn { padding: 3px 4px !important; font-size: 10px !important; letter-spacing: 0 !important; min-width: 0 !important; line-height: 1.2; }
  .gnb .util, header .row .util { flex-wrap: wrap; row-gap: 4px; justify-content: flex-end; }
}
@media (max-width: 380px) {
  .util .bps-lang-toggle { margin-left: 0; padding-left: 0; border-left: 0; width: 100%; justify-content: flex-end; }
}

/* 오버레이(모바일 풀스크린 메뉴) 언어 토글 — 어두운 배경, 평면 버튼 유지 (드롭다운 아님) */
.gnbov .bps-lang-toggle.ov-lang {
  position: static; display: flex !important; flex-wrap: wrap; gap: 6px; margin: 18px 0 0; padding: 0; border: 0;
}
.gnbov .bps-lang-toggle.ov-lang .lang-current { display: none; }
.gnbov .bps-lang-toggle.ov-lang .lang-menu {
  position: static; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; margin: 0; padding: 0;
  background: none; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none;
}
.gnbov .bps-lang-toggle.ov-lang .lang-btn {
  width: auto; background: none; border: 1px solid rgba(255,255,255,.25); border-radius: 6px;
  cursor: pointer; padding: 7px 11px; font-family: 'Albert Sans', sans-serif;
  font-size: 12px; font-weight: 700; letter-spacing: .04em; color: rgba(255,255,255,.7); transition: all .25s;
}
.gnbov .bps-lang-toggle.ov-lang .lang-btn:hover { color: #fff; border-color: rgba(255,255,255,.55); background: none; }
.gnbov .bps-lang-toggle.ov-lang .lang-btn.on { color: #fff; border-color: var(--bp); background: var(--bp); }
.gnbov .bps-lang-toggle.ov-lang .lang-btn.on::after { content: none; }
.gnbov .bps-lang-toggle.ov-lang .lang-btn .fi { width: 1.4em; height: 1.05em; border-radius: 2px; margin-right: 7px; vertical-align: -2px; box-shadow: 0 0 0 1px rgba(255,255,255,.2); }
