/* 사이트 공통 보완 — 빌드된 styles-*.css 뒤에 로드된다. 번들을 다시 만들기 전까지의 수정은 여기에 둔다. */

/* 상단 메뉴 드롭다운(솔루션·뉴스룸)
   원인: .dropdown 이 top:100% + margin-top:8px 로 트리거 아래 8px 떨어져 있어, 마우스가 그 틈을 지나는 순간
   .menu-group:hover 가 끊기고 pointer-events:none 이 바로 적용돼 메뉴 위에 올려도 hover 로 인정되지 않는다.
   해결: hover 중인 트리거 아래에 드롭다운 폭만큼의 보이지 않는 다리(::after)를 두어 hover 가 이어지게 하고,
   숨길 때는 약간의 지연을 둔다. */
/* 다리는 hover 중인 그룹에만 만든다. 항상 두면 이웃 그룹(솔루션·뉴스룸)의 다리가 겹쳐 뒤쪽 그룹이 hover 를 가로챈다. */
.menu-group:hover::after,
.menu-group:focus-within::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 320px;
  height: 16px;
  margin-left: -160px;
}
.dropdown {
  transition: opacity .16s ease .12s, transform .16s ease .12s, visibility 0s linear .28s;
}
.menu-group:hover .dropdown,
.menu-group:focus-within .dropdown {
  transition-delay: 0s;
}

/* 제품 페이지 영상 섹션 — 언어 선택 버튼(한국어/日本語). 하나의 플레이어에서 src 를 바꾼다. */
.fp-video-lang{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--card);margin-top:22px}
.fp-video-lang button{border:0;background:transparent;border-radius:999px;padding:8px 18px;font:inherit;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:color .15s,background-color .15s}
.fp-video-lang button:hover{color:var(--mint)}
.fp-video-lang button[aria-pressed=true]{background:var(--mint);color:#fff}
.fp-video-lang+.fp-video{margin-top:16px}

/* 상단 언어 스위처 — 데스크톱은 상담 문의 버튼 왼쪽의 작은 드롭다운, 모바일 메뉴에는 한 줄 링크 */
.nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.lang-switch{position:relative}
.lang-switch .lang-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;font-size:12.5px;font-weight:800;letter-spacing:.06em;cursor:pointer}
.lang-switch .lang-btn:hover{border-color:var(--mint-line);color:var(--mint)}
.lang-switch .caret{font-size:10px;opacity:.75}
.lang-switch .lang-menu{position:absolute;top:100%;right:0;margin:8px 0 0;padding:6px;list-style:none;min-width:150px;background:#fffffffa;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px #0f192324;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility 0s .2s;z-index:30}
.lang-switch::after{content:"";position:absolute;top:100%;right:0;width:170px;height:12px} /* 버튼과 메뉴 사이 틈(메뉴는 오른쪽 정렬·150px)을 hover 로 잇는 다리 */
.lang-switch:hover .lang-menu,.lang-switch:focus-within .lang-menu,.lang-switch.open .lang-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
.lang-switch .lang-menu a{display:block;padding:9px 12px;border-radius:9px;color:var(--text);font-size:14px;font-weight:600;white-space:nowrap}
.lang-switch .lang-menu a:hover{background:var(--mint-soft);color:var(--mint)}
.lang-switch .lang-menu a[aria-current=true]{color:var(--mint);font-weight:800}
.lang-switch .lang-menu a[aria-current=true]::after{content:"✓";float:right;opacity:.8}
.mnav-lang{display:flex;flex-wrap:wrap;gap:5px;border-top:1px solid var(--line);margin-top:8px;padding:10px 6px 2px}
.mnav-lang a{padding:5px 10px!important;border:1px solid var(--line);border-radius:999px;font-size:12.5px!important;font-weight:700!important;color:var(--muted)!important;line-height:1.3}
.mnav-lang a[aria-current=true]{background:var(--mint);border-color:var(--mint);color:#fff}
@media (width<=960px){.nav-right{display:none}} /* 모바일은 햄버거 메뉴 안의 언어 줄을 쓴다 */
/* 상담 문의 폼 상태 문구(정적 페이지용 contact-form.js) */
.form-error{color:#b71c1c;font-size:14px;margin:0 0 12px}
/* 일본어·중국어 페이지 — 한국어용 글꼴 스택(Apple SD Gothic Neo·Malgun Gothic 의 한자 자형)과 body 의 word-break:keep-all 은
   CJK 문장(띄어쓰기 없음)의 줄바꿈을 막으므로 언어별로 바꾼다. 자간도 한국어용 음수 트래킹보다 넉넉하게. */
html[lang="ja"] body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,"Noto Sans JP",sans-serif}
html[lang="zh-Hans"] body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC",sans-serif}
html:is([lang="ja"],[lang="zh-Hans"]) :is(body,.fp-intro__scene h1,.fp-intro__scene h2,.fp-intro__body){word-break:normal;line-break:strict;overflow-wrap:anywhere}
html:is([lang="ja"],[lang="zh-Hans"]) :is(h1,h2,h3,.fp-intro__scene h1,.fp-intro__scene h2){letter-spacing:-.01em}
/* 첫 화면 Why 섹션의 연혁 카드 — 뉴스룸 글로 이어지는 링크 */
.fp-miles a.fact{display:block;color:inherit;transition:border-color .15s,transform .15s}
.fp-miles a.fact:hover{border-color:var(--mint-line);transform:translateY(-2px)}
.fp-miles .fact .k{line-height:1.45}
