/* Language controls follow the existing desktop nav / mobile disclosure. */
.language-switch { display:flex; align-items:center; flex-shrink:0; }
.language-switch select { min-height:44px; max-width:120px; padding:8px; border:1px solid #f5f0e860; border-radius:0; color:var(--ecru); background:var(--nori); font:inherit; color-scheme:dark; }
.site-header nav { flex-wrap:wrap; justify-content:flex-end; }
:lang(ja) { --serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif; --sans:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif; }
html:lang(ja) .hero h1 { font-size:clamp(44px,7vw,104px); letter-spacing:0; line-height:1.2; }
html:lang(ja) h2 { letter-spacing:0; line-height:1.3; }
html:lang(ja) em { font-style:normal; }
html:lang(ja) .eyebrow, html:lang(ja) .plan-caption { letter-spacing:.06em; }
.dish-title h3 { min-width:0; overflow-wrap:anywhere; }
@media(min-width:801px) and (max-width:1100px) {
  .site-header { gap:16px; }
  .site-header nav { gap:10px 16px; }
}
@media(max-width:800px) {
  .site-header nav { flex-wrap:nowrap; }
  .language-switch select { width:100%; max-width:none; font-size:16px; }
  .language-switch { width:100%; }
}
@media(max-width:480px) {
  html:lang(ja) .hero h1 { font-size:clamp(40px,12vw,54px); }
  html:lang(ja) h2 { font-size:clamp(30px,9vw,42px); }
  html:lang(it) .hero h1 { font-size:clamp(46px,14vw,64px); }
  .demo-ribbon { padding:0 8px; letter-spacing:.5px; }
}
