/* Language controls and locale-specific typesetting. */
.desktop-locale-menu { position: relative; }
.desktop-locale-menu summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--forest);
  font-size: 12px;
  font-weight: 700;
  list-style: none;
  cursor: pointer;
  white-space: nowrap;
}
.desktop-locale-menu summary::-webkit-details-marker { display: none; }
.locale-chevron { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.desktop-locale-menu[open] .locale-chevron { transform: rotate(180deg); }
.desktop-locale-options {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  display: grid;
  min-width: 144px;
  padding: 6px;
  border: 1px solid #d9ddda;
  border-radius: 12px;
  background: #fff;
  color: #173f2a;
  box-shadow: 0 10px 30px #0b100d1a;
}
.desktop-locale-options a { display: flex; align-items: center; min-height: 44px; padding: 8px 12px; border-radius: 7px; font-size: 13px; font-weight: 500; }
.desktop-locale-options a:hover { background: #f0f5ef; }
.desktop-locale-options a.active { background: #e5eee6; font-weight: 700; }
.site-header summary:focus-visible { outline: 3px solid #173f2a; outline-offset: 3px; }
.home-header summary:focus-visible { outline-color: #c8ee88; }
.site-header .mobile-locale { flex-wrap: wrap; gap: 8px; }
.site-header .mobile-locale a {
  display: grid;
  place-items: center;
  width: auto;
  min-width: 72px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #ffffff45;
  border-radius: 999px;
  background: transparent;
  color: #d2e2db;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}
.site-header .mobile-locale a.active { color: #fff; background: #ffffff1f; border-color: #ffffff73; font-weight: 700; }
.site-header .mobile-locale a:hover { color: #fff; background: #ffffff1f; }
html[lang="en"] body { word-break: normal; }
html[lang="ja"] body { word-break: normal; line-break: strict; font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", var(--font); letter-spacing: 0; }
html[lang="ja"] :is(h1,h2,h3,h4) { letter-spacing: -.025em; }
html:not([lang="ko"]) .hero-grid { grid-template-columns: 1.25fr .75fr; gap: 48px; }
html:not([lang="ko"]) .cover strong { font-size: clamp(24px, 2.5vw, 34px); }
html:not([lang="ko"]) .fact { overflow-wrap: anywhere; }
@media(max-width:920px) {
  html:not([lang="ko"]) .hero-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media(max-width:600px) {
  html[lang="en"] .hero h1 { font-size: clamp(28px, 7.8vw, 36px); }
  html[lang="ja"] .hero h1 { font-size: clamp(26px, 7.5vw, 36px); }
}

html[lang="en"] .cover.cooking.with-poster strong { font-size: clamp(20px, 2.2vw, 32px); }
@media (max-width: 360px) {
  html[lang="en"] .cover.cooking.with-poster strong { font-size: 18px; line-height: 1.15; }
}
