/* Multilingual typography and the shared header language control. */
html:lang(en){--font:"IBM Plex Sans","IBM Plex Sans Thai",sans-serif}
html:lang(ja){--font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--latin:"IBM Plex Sans","Noto Sans JP",sans-serif}
html:lang(ja) :is(h1,h2,h3){line-height:1.5;letter-spacing:-.025em;word-break:normal;overflow-wrap:anywhere}
html:lang(ja) :is(p,li,label){line-height:1.9;word-break:normal}
html:lang(en) :is(.page-hero h1,.hero h1){letter-spacing:-.045em;line-height:1.08}
html:lang(en) .hero h1.hero-foundation-title{font-size:clamp(2.5rem,4.8vw,4.7rem);line-height:1.1}
html:lang(ja) .hero h1.hero-foundation-title{font-size:clamp(2.4rem,4.5vw,4.6rem);line-height:1.4}
.page-hero h1,.hero h1,h2{text-wrap:balance;overflow-wrap:break-word}
.page-hero-desc,.hero-description{text-wrap:pretty}
.simulation-page .camera-tools{width:max-content;max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:center}
.nav-shell{gap:clamp(12px,1.5vw,24px)}
.navigation{margin-left:auto}
.language-picker{position:relative;flex:0 0 auto;align-self:center;order:3}
.language-trigger{height:44px;min-width:91px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #d1dcd5;border-radius:6px;background:#f4f7f4;color:var(--green);font:600 .875rem/1 "IBM Plex Sans",sans-serif;transition:background .18s,border-color .18s,box-shadow .18s}
.language-trigger:hover,.language-trigger[aria-expanded="true"]{background:#e9f0eb;border-color:#8ca595;box-shadow:0 2px 10px #163f320a}
.language-globe{width:18px;height:18px;stroke:currentColor;stroke-width:1.45}
.language-chevron{width:12px;height:12px;stroke:currentColor;stroke-width:1.6;transition:transform .18s}
.language-trigger[aria-expanded="true"] .language-chevron{transform:rotate(180deg)}
.language-menu{position:absolute;top:calc(100% + 13px);right:0;width:246px;padding:10px;border:1px solid #dce5de;border-radius:12px;background:#fff;box-shadow:0 16px 45px #102f271f,0 3px 8px #102f270a;z-index:55;transform-origin:top right;animation:language-menu-in .18s ease-out}
.language-menu[hidden]{display:none}
.language-heading{padding:7px 11px 12px;color:#697b70;font:500 .875rem/1.4 var(--font);border-bottom:1px solid #edf0ec;margin-bottom:5px}
.language-option{display:flex;align-items:center;gap:12px;width:100%;min-height:62px;padding:10px;border:0;border-radius:7px;background:white;color:var(--ink);text-align:left;transition:background .15s}
.language-option:hover,.language-option:focus-visible{background:#f3f6f2}
.language-option[aria-checked="true"]{background:#edf4ee;color:var(--green)}
.language-monogram{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #dce5de;border-radius:5px;color:#6a7d70;font:500 .75rem/1 "IBM Plex Sans",sans-serif}
.language-option[aria-checked="true"] .language-monogram{background:var(--green);border-color:var(--green);color:white}
.language-option-copy{display:flex;flex-direction:column;gap:3px}
.language-option-copy strong{font-size:.9375rem;font-weight:500;line-height:1.3}
.language-option-copy strong:lang(th){font-family:"IBM Plex Sans Thai",sans-serif}
.language-option-copy strong:lang(ja){font-family:"Noto Sans JP","Yu Gothic",sans-serif}
.language-option-copy small{font:400 .75rem/1.3 "IBM Plex Sans",sans-serif;color:#6d7a71}
.language-check{margin-left:auto;color:var(--green);font:600 1rem/1 sans-serif}
.language-trigger:focus-visible,.language-option:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@keyframes language-menu-in{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}
/* Do not crowd the seven links when translated navigation is wider. */
@media(min-width:1251px) and (max-width:1400px){
  .brand,.brand img{width:112px}.navigation{gap:12px;font-size:.8125rem}.navigation .nav-contact{padding:8px 10px;font-size:.8125rem}.nav-shell{gap:12px}
}
@media(max-width:1250px){
  .nav-toggle{margin-left:auto;order:2}.language-picker{order:1}.brand{margin-right:auto}
  .navigation{margin-left:0}.nav-shell{gap:12px}
}
@media(min-width:1101px) and (max-width:1250px){
  .nav-toggle{display:flex;align-items:center;gap:9px;background:white;border:1px solid var(--line);min-height:44px;padding:0 12px;font-size:.875rem}
  .menu-lines{height:12px;width:17px;position:relative;border-top:1px solid var(--green);border-bottom:1px solid var(--green)}
  .menu-lines:after{content:"";position:absolute;top:4.5px;left:0;width:17px;height:1px;background:var(--green)}
  .navigation{display:none;position:absolute;top:100%;left:0;right:0;padding:14px 32px 22px;background:white;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #142b2112;max-height:calc(100dvh - 96px);overflow:auto;align-items:stretch;gap:0}
  .navigation.is-open{display:flex;flex-direction:column}
  .navigation>a{padding:14px 0;border-bottom:1px solid var(--line);font-size:1rem}
  .navigation>a:after{display:none}.navigation .nav-contact{margin-top:10px;padding:12px 16px;justify-content:space-between}
}
@media(max-width:800px){
  .utility-bar .container>span:last-child{font-size:0}.utility-bar .container>span:last-child:after{content:"1999";font-size:.75rem}
  .utility-bar .container>span:first-child{max-width:calc(100% - 44px);font-size:.6875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  html:lang(en) .hero h1.hero-foundation-title{font-size:clamp(2.5rem,9vw,4.7rem)}
  html:lang(ja) .hero h1.hero-foundation-title{font-size:clamp(2.1rem,8.5vw,4rem)}
  .language-trigger{min-width:82px;padding:0 10px;gap:7px}.language-menu{right:0;width:min(246px,calc(100vw - 40px))}
  .nav-toggle{margin-left:0}.nav-shell{gap:10px}
  html:lang(ja) .navigation>a{font-size:1rem}
  .hero-copy,.page-hero-grid>*{min-width:0}
  .machinery-specs li,.service-spec-panel li{flex-wrap:wrap}
}
@media(max-width:400px){
  .brand,.brand img{width:112px}.nav-toggle{padding:0 10px;min-width:40px}.nav-toggle>span:last-child{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .language-menu{right:-48px}.language-trigger{min-width:78px}
}
@media(prefers-reduced-motion:reduce){.language-menu{animation:none}.language-trigger,.language-chevron,.language-option{transition:none}}
/* Fail open if a saved-language initialization is interrupted. */
.locale-pending body{animation:locale-ready 0s .9s forwards;visibility:hidden}
@keyframes locale-ready{to{visibility:visible}}
