/* Language navigation and typography. Keep this stylesheet after the existing site styles. */
.lang-switch { position:relative; flex:0 0 auto; z-index:30; }
.lang-switch > summary { display:flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:8px 10px; border:1px solid #dcdce0; border-radius:3px; cursor:pointer; list-style:none; white-space:nowrap; font-size:13px; line-height:1.2; }
.lang-switch > summary::-webkit-details-marker { display:none; }
.lang-switch > summary svg { width:18px; height:18px; flex:0 0 18px; }
.lang-switch > summary:focus-visible, .lang-menu a:focus-visible { outline:2px solid #c6232a; outline-offset:3px; }
.lang-menu { position:absolute; inset-inline-end:0; top:calc(100% + 10px); width:max-content; max-width:calc(100vw - 40px); display:grid; grid-template-columns:repeat(2,minmax(140px,1fr)); gap:3px; margin:0; padding:10px; list-style:none; background:#fff; border:1px solid #dcdce0; border-radius:5px; box-shadow:0 12px 35px #0002; max-height:calc(100dvh - 110px); overflow-y:auto; }
.lang-switch:not([open]) > .lang-menu { display:none; }
.lang-menu a { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:42px; padding:9px 10px; font-size:14px; line-height:1.3; color:#30343b; white-space:nowrap; text-decoration:none; }
.lang-menu a:hover, .lang-menu a[aria-current=page] { background:#f5f0f0; color:#a81920; }
.lang-menu small { font-size:11px; color:#73737b; }
.lang-menu a[aria-current=page]::after { content:'✓'; }
.language-notice { display:flex; justify-content:center; align-items:center; gap:18px; padding:8px 20px; background:#f5f0f0; color:#33373d; font-size:14px; }
.language-notice a { color:inherit; text-decoration:underline; }
.language-notice button { flex:0 0 32px; height:32px; border:0; background:transparent; font-size:23px; cursor:pointer; }
body .site-header .header-inner { gap:18px; min-width:0; }
body .site-header .navigation { min-width:0; }
body .site-header .navigation > a, body .site-header .navigation summary, .menu-toggle { white-space:nowrap; }
.site-header .logo-link { flex-shrink:1; min-width:0; }
.site-header .logo-header { max-width:100%; object-fit:contain; }
.top-bar-inner { white-space:nowrap; }
.top-bar-brand, .top-bar-msg { min-width:0; }
:lang(ja) body, :lang(ja) .contact-widget { font-family:'Yu Gothic UI','Yu Gothic','Meiryo','Hiragino Sans','Noto Sans JP',sans-serif; }
:lang(ja) :is(h1,h2,h3) { word-break:auto-phrase; line-break:strict; }
:lang(ko) body, :lang(ko) .contact-widget { font-family:'Malgun Gothic','Apple SD Gothic Neo','Noto Sans KR',sans-serif; word-break:keep-all; }
:lang(ar) body, :lang(ar) .contact-widget { font-family:'Segoe UI','Geeza Pro','Noto Sans Arabic',Tahoma,sans-serif; }
html:not([lang=en]) :is(h1,h2,h3,.button,.text-link) { overflow-wrap:break-word; }
html:not([lang=en]) :is(.hero-copy,.hero-split > *, .inquiry-layout > *, .format-section > *, .custom-grid > *) { min-width:0; }
[dir=rtl] .hero::before { background:linear-gradient(270deg,rgba(20,20,23,.84) 0%,rgba(20,20,23,.67) 40%,rgba(20,20,23,.13) 100%); }
[dir=rtl] :is(.film-card,.procurement-table th,.procurement-table td,.footer-company,.inquiry-cart-item,.contact-panel) { text-align:start; }
[dir=rtl] .contact-widget { right:auto; left:20px; align-items:flex-start; }
[dir=rtl] .contact-widget .contact-panel { right:auto; left:24px; transform-origin:bottom left; }
[dir=rtl] .contact-widget .contact-launcher { right:auto; left:16px; }
[dir=rtl] .navigation > .button.green { margin-left:0; margin-inline-start:auto; }
[dir=rtl] .hero-facts li, [dir=rtl] .hero-facts li + li { padding-left:0; padding-right:20px; }
[dir=rtl] .hero-facts li::before { left:auto; right:2px; }
[dir=rtl] .inquiry-checklist li { padding-left:0; padding-right:26px; }
[dir=rtl] .inquiry-checklist li::before { left:auto; right:2px; }
[dir=rtl] .factory-areas li { padding-left:0; padding-right:14px; }
[dir=rtl] .factory-areas li::before { left:auto; right:0; }
[dir=rtl] .film-card-caption { left:auto; right:27px; }
[dir=rtl] .film-caption > span:first-child { border-right:0; border-left:1px solid #b8b8bb; padding-right:0; padding-left:20px; }
[dir=rtl] .notice { border-left:0; border-right:3px solid #6e6e71; }
[dir=rtl] :is(.content-card ul,.content-card ol,.quote-sidebar ol) { padding-left:0; padding-right:20px; }
[dir=rtl] .nav-dropdown summary::after { margin-left:0; margin-right:8px; }
[dir=rtl] :is(input[type=email],input[type=url],input[type=tel],bdi) { direction:ltr; unicode-bidi:isolate; }
@media (min-width:901px) and (max-width:1150px) {
 :is(html[lang=fr],html[lang=es],html[lang=de],html[lang=it],html[lang=pt],html[lang=pl],html[lang=ru]) .top-bar-brand { display:none; }
}
@media (max-width:600px) {
 .top-bar-brand { max-width:100%; }
 .lang-switch > summary { padding:8px; gap:5px; }
 .lang-menu { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .lang-menu a { padding:8px; gap:5px; }
 [dir=rtl] .hero::before { background:linear-gradient(270deg,rgba(20,20,23,.8),rgba(20,20,23,.46)); }
 [dir=rtl] .contact-widget, [dir=rtl] .contact-widget .contact-panel { right:auto; left:16px; }
 [dir=rtl] .film-caption > span:first-child { border:0; padding:0; }
 [dir=rtl] .facility-row { margin-right:0; padding-right:0; margin-left:-20px; padding-left:20px; }
}

@media (max-width:1180px) {
 html[lang="en"] body .site-header .header-inner { gap:10px; }
 html[lang="en"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="en"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="en"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="en"] body .site-header .navigation { display:none; }
 html[lang="en"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="en"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="en"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="en"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="en"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1330px) {
 html[lang="de"] body .site-header .header-inner { gap:10px; }
 html[lang="de"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="de"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="de"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="de"] body .site-header .navigation { display:none; }
 html[lang="de"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="de"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="de"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="de"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="de"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1300px) {
 html[lang="es"] body .site-header .header-inner { gap:10px; }
 html[lang="es"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="es"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="es"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="es"] body .site-header .navigation { display:none; }
 html[lang="es"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="es"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="es"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="es"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="es"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1290px) {
 html[lang="fr"] body .site-header .header-inner { gap:10px; }
 html[lang="fr"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="fr"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="fr"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="fr"] body .site-header .navigation { display:none; }
 html[lang="fr"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="fr"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="fr"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="fr"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="fr"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1330px) {
 html[lang="it"] body .site-header .header-inner { gap:10px; }
 html[lang="it"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="it"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="it"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="it"] body .site-header .navigation { display:none; }
 html[lang="it"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="it"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="it"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="it"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="it"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1280px) {
 html[lang="pl"] body .site-header .header-inner { gap:10px; }
 html[lang="pl"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="pl"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="pl"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="pl"] body .site-header .navigation { display:none; }
 html[lang="pl"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="pl"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="pl"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="pl"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="pl"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1250px) {
 html[lang="pt"] body .site-header .header-inner { gap:10px; }
 html[lang="pt"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="pt"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="pt"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="pt"] body .site-header .navigation { display:none; }
 html[lang="pt"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="pt"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="pt"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="pt"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="pt"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1350px) {
 html[lang="ru"] body .site-header .header-inner { gap:10px; }
 html[lang="ru"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="ru"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="ru"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="ru"] body .site-header .navigation { display:none; }
 html[lang="ru"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="ru"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="ru"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="ru"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="ru"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1170px) {
 html[lang="ar"] body .site-header .header-inner { gap:10px; }
 html[lang="ar"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="ar"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="ar"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="ar"] body .site-header .navigation { display:none; }
 html[lang="ar"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="ar"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="ar"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="ar"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="ar"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1170px) {
 html[lang="ja"] body .site-header .header-inner { gap:10px; }
 html[lang="ja"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="ja"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="ja"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="ja"] body .site-header .navigation { display:none; }
 html[lang="ja"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="ja"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="ja"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="ja"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="ja"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

@media (max-width:1170px) {
 html[lang="ko"] body .site-header .header-inner { gap:10px; }
 html[lang="ko"] body .site-header .logo-link { margin-inline-end:auto; }
 html[lang="ko"] body .site-header .lang-switch { position:static; order:2; }
 html[lang="ko"] body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
 html[lang="ko"] body .site-header .navigation { display:none; }
 html[lang="ko"] body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
 html[lang="ko"] body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
 html[lang="ko"] body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
 html[lang="ko"] body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
 html[lang="ko"] body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }
}

/* The widths above are the no-script fallback. i18n-runtime.js adds .nav-fit-menu whenever the full navigation would
   still touch the language button or logo (for example with wider Mac fonts), using the same Menu layout. */
html.nav-fit-menu body .site-header .header-inner { gap:10px; }
html.nav-fit-menu body .site-header .logo-link { margin-inline-end:auto; }
html.nav-fit-menu body .site-header .lang-switch { position:static; order:2; }
html.nav-fit-menu body .site-header .menu-toggle { display:block; order:3; flex-shrink:0; white-space:nowrap; }
html.nav-fit-menu body .site-header .navigation { display:none; }
html.nav-fit-menu body .site-header .navigation.open { display:flex; position:absolute; inset-inline:0; top:100%; padding:20px; background:#fff; flex-direction:column; align-items:stretch; gap:12px; max-height:calc(100dvh - 90px); overflow-y:auto; }
html.nav-fit-menu body .site-header .navigation > .button.green { margin:0; align-self:stretch; justify-content:center; }
html.nav-fit-menu body .site-header .nav-dropdown .dropdown-links { position:static; width:100%; box-shadow:none; margin-top:12px; border:0; padding:8px 0; }
html.nav-fit-menu body .site-header .nav-mega .mega-links { grid-template-columns:1fr; gap:16px; width:100%; }
html.nav-fit-menu body .site-header .lang-menu { inset-inline:20px; top:calc(100% + 4px); width:auto; max-width:none; }

/* The footer label is CSS-generated, so each language overrides both forms of the declaration. Values must match
   ui.follow-us in i18n/ui/<lang>.json (scripts/i18n/check.mjs compares them). */
html[lang="fr"] .footer-social::before { content:"Suivez-nous"; content:"Suivez-nous" / ""; }
html[lang="es"] .footer-social::before { content:"Síguenos"; content:"Síguenos" / ""; }
html[lang="de"] .footer-social::before { content:"Folgen Sie uns"; content:"Folgen Sie uns" / ""; }
html[lang="it"] .footer-social::before { content:"Seguici"; content:"Seguici" / ""; }
html[lang="pt"] .footer-social::before { content:"Siga-nos"; content:"Siga-nos" / ""; }
html[lang="pl"] .footer-social::before { content:"Obserwuj nas"; content:"Obserwuj nas" / ""; }
html[lang="ru"] .footer-social::before { content:"Мы в соцсетях"; content:"Мы в соцсетях" / ""; }
html[lang="ar"] .footer-social::before { content:"تابعونا"; content:"تابعونا" / ""; }
html[lang="ja"] .footer-social::before { content:"SNSをフォロー"; content:"SNSをフォロー" / ""; }
html[lang="ko"] .footer-social::before { content:"SNS 팔로우"; content:"SNS 팔로우" / ""; }
html[lang="ar"] .footer-social::before { letter-spacing:0; font-size:13px; }

/* Long German and Russian words must not widen 320px phones (two-column footer and grids); 360px and up are unchanged.
   overflow-wrap:anywhere also lowers the min-content width that sizes those grid columns; break-word does not. */
@media (max-width:359px) {
 :is(html[lang="de"],html[lang="ru"]) :is(main,footer), :is(html[lang="de"],html[lang="ru"]) :is(main,footer) :is(h1,h2,h3,.button,.text-link) { -webkit-hyphens:auto; hyphens:auto; overflow-wrap:anywhere; }
}

.i18n-en-badge { display:inline-block; margin-inline-start:5px; font:10px/1.2 'Segoe UI',sans-serif; letter-spacing:.04em; vertical-align:middle; opacity:.72; white-space:nowrap; }

