.language-nav { display: flex; flex-wrap: wrap; gap: .35rem .8rem; max-width: calc(var(--max) + 40px); margin: .5rem auto; padding: .5rem 1rem; font-size: .85rem; line-height: 1.8; }
.language-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: .15rem .35rem; }
.language-nav a[aria-current] { font-weight: 700; text-decoration-thickness: 2px; }
.language-switch { position: relative; margin-left: auto; flex: 0 0 auto; font-family: var(--sans); font-size: .8rem; }
.language-switch summary { display: flex; align-items: center; min-height: 44px; padding: 0 .55rem; cursor: pointer; border: 1px solid var(--rule); border-radius: 3px; list-style: none; }
.language-switch summary::after { content: " ▾"; margin-left: .4rem; }
.language-switch .language-nav { position: absolute; right: 0; top: 100%; z-index: 100; width: min(85vw, 32rem); margin: 0; padding: .7rem; border: 1px solid var(--rule); background: var(--paper); box-shadow: 0 8px 16px #0002; }
.translated-page .header-inner .brand { min-width: 0; }
.translated-page .brand-sub { overflow-wrap: break-word; }
.translated-page .hero-phrase { white-space: normal; }
.translated-page .hero-demo h1 > span { white-space: normal; overflow-wrap: break-word; }
.translated-page .header-reserve { min-width: min-content; max-width: 8rem; flex-shrink: 0; white-space: normal; overflow-wrap: normal; word-break: normal; gap: .35rem; }
.translation-review { margin: .25rem 1rem .75rem; font-size: .8rem; line-height: 1.7; color: #5f5c51; }
.translation-original { margin-top: 4rem; }
/* 「日本語原文」の見出しと区切りの線は、ほかの節と同じ幅と左右の余白（.section）の中に置く */
.translation-original-head { padding-bottom: 0; border-top: 2px solid #d7cfbc; }
.translated-page .page-head h1, .translated-page .section h2, .translated-page .menu-table th { overflow-wrap: break-word; word-break: normal; }
.translated-page .item-name, .translated-page .item-note { overflow-wrap: break-word; }
.translated-page .hero > *, .translated-page .hours-panel > *, .translated-page .cta-row > *, .translated-page .feature-grid > * { min-width: 0; }
.translated-page .btn-inline { max-width: 100%; }
.translated-page .btn-label, .translated-page .btn-sub { max-width: 100%; white-space: normal; overflow-wrap: break-word; }
.translated-page .btn-label .nw { white-space: normal; }
.translated-page .hours-table { table-layout: fixed; max-width: 100%; }
.translated-page .hours-table th { width: 35%; white-space: normal; overflow-wrap: break-word; }
.translated-page .hours-table td { min-width: 0; white-space: normal; }
.translated-page mark.pending { max-width: 8rem; white-space: normal; overflow-wrap: break-word; }
.translated-page .menu-table td.price { width: 8rem; white-space: normal; }
@media (max-width: 767px) { .language-nav { gap: .15rem .4rem; } .translated-page .menu-table th { min-width: 0; } }
@media (min-width: 960px) { .translated-page .header-reserve { max-width: none; white-space: nowrap; } }
@media (max-width: 359px) {
  .translated-page .header-inner { padding-inline: 16px; }
  .translated-page .header-reserve { max-width: 6rem; padding-inline: 8px; }
  .translated-page .hours-table, .translated-page .hours-table tbody, .translated-page .hours-table tr, .translated-page .hours-table th, .translated-page .hours-table td { display: block; width: 100%; }
  .translated-page .hours-table th { padding: 12px 0 2px; border-bottom: 0; }
  .translated-page .hours-table td { padding: 0 0 12px; }
}
/* 訳したページ（.translated-page だけ。日本語のページは styles.css のまま）。訳の長さは言語で違うので、長い語は
   その言語の規則でハイフンを入れて折り（語の途中で黙って折らない）、ヘッダー・表・帯・縦書きの印は折り返して受ける */
/* ハイフンを入れて折るのは、幅の狭い所（見出し・表の見出し・品名・ボタン・ヘッダーと下のバーのラベル）だけ。本文は語の切れ目で折る */
.translated-page .page-head h1, .translated-page .section h2, .translated-page h3, .translated-page .menu-table th, .translated-page .item-name, .translated-page .item-note,
.translated-page .hours-table th, .translated-page .store-info-table th, .translated-page .hours-strip-list dt, .translated-page .btn-label, .translated-page .btn-sub,
.translated-page .site-nav a, .translated-page .cta-bar .cta-label, .translated-page .cta-bar .cta-sub, .translated-page .header-reserve { hyphens: auto; }
/* 訳では nw の中に語句の訳が入ることがある（例 建物の名前と階）。本文・冒頭の段落・表の中では折ってよい（店舗情報の予約サイトの名前などは nw のまま） */
.translated-page .lead .nw, .translated-page .section p .nw, .translated-page .store-info-table td .nw { white-space: normal; }
.translated-page .cta-bar .cta-label, .translated-page .cta-bar .cta-sub { max-width: 100%; overflow-wrap: break-word; }
/* ヘッダー: ページ一覧の各項目は2行まで折ってよい。一覧そのものは1行（960px 以上） */
.translated-page .site-nav a { white-space: normal; overflow-wrap: break-word; line-height: 1.35; }
@media (max-width: 599px) { .translated-page .site-nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) {
  .translated-page .brand-sub { display: none; }
  .translated-page .site-header { flex-wrap: wrap; gap: 0 16px; }
  .translated-page .site-nav { flex: 0 1 auto; min-width: 0; }
  .translated-page .site-nav ul { flex-wrap: nowrap; }
  .translated-page .site-nav li { flex: 0 1 auto; min-width: 0; }
  .translated-page .site-nav a { max-width: 9.5em; padding-inline: 7px; text-align: center; }
  .translated-page .header-tel { padding-inline: 12px; }
  .translated-page .header-reserve { padding-inline: 14px; }
}
/* 店舗の基本情報の表（/access/）: 見出しの列を折ってよく、住所の nw も表の中では折る */
.translated-page .store-info-table { table-layout: fixed; }
.translated-page .store-info-table th { width: 34%; white-space: normal; overflow-wrap: break-word; }
.translated-page .store-info-table td { overflow-wrap: break-word; }
/* 営業時間の帯（トップ）: 見出しを上の行に置き、値の列と「詳しく」を次の行に並べる */
@media (min-width: 960px) {
  .translated-page .hours-strip-inner { flex-wrap: wrap; row-gap: 12px; }
  .translated-page .hours-strip-title { flex: 1 0 100%; }
  .translated-page .hours-strip-list { flex: 1 1 auto; min-width: 0; grid-template-columns: repeat(auto-fit, minmax(8.5rem, max-content)); }
  .translated-page .hours-strip-list dd { white-space: normal; }
}
/* 縦書きの印（写真の上）: 字間を詰め、写真の高さに収まらなければ次の列へ折る */
@media (min-width: 768px) {
  .translated-page .hero-vertical { max-height: calc(100% - 96px); letter-spacing: .12em; }
}
