.language-switch {
  display: inline-flex;
  min-width: 2.75rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding-inline: .35rem;
  color: var(--gold, #e6a23c) !important;
  font-family: var(--font-body, Arial, sans-serif);
  font-size: .78rem !important;
  font-weight: 700;
  letter-spacing: .04em !important;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: .42em;
  white-space: nowrap;
}

.language-switch:hover,
.language-switch:focus-visible {
  color: var(--gold-hot, #ffc153) !important;
  text-decoration-color: currentColor;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: clamp(.85rem, 2.4vw, 2rem);
}

/* --- Language picker ------------------------------------------------------
 *
 * A flat list, not a disclosure menu. Ten items fit on one or two wrapped
 * rows in the footer base, and a static list needs no JavaScript to open, no
 * focus trap, and no escape handling to get right.
 *
 * The eight locales we have not translated are <button disabled>, so they are
 * announced as unavailable rather than looking like links that do nothing.
 */
.language-picker { min-width: 0; }

.language-picker-list {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  gap: .3rem .9rem;
  list-style: none;
}

.language-choice {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  border: 0;
  padding: 0;
  background: none;
  color: var(--mute, #8f8981);
  font: inherit;
  font-size: .86rem;
  line-height: 1.6;
  text-decoration: none;
}

a.language-choice { cursor: pointer; }
a.language-choice:hover,
a.language-choice:focus-visible { color: var(--gold, #e6a23c); text-decoration: underline; }

.language-choice[aria-current="true"] { color: var(--gold, #e6a23c); font-weight: 700; }

.language-choice[disabled] { color: var(--line, #3a352e); cursor: default; }

.language-coming {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.language-picker :focus-visible { outline: 2px solid var(--gold-hot, #ffc153); outline-offset: 3px; }

.language-offer {
  position: fixed;
  z-index: 200;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  display: grid;
  width: min(28rem, calc(100vw - 2rem));
  gap: .9rem;
  border: 1px solid var(--line-gold, rgba(230, 162, 60, .42));
  border-radius: .28rem;
  padding: 1rem;
  background: #070604;
  color: var(--paper, #f4f2ed);
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.language-offer p {
  margin: 0;
  color: var(--paper, #f4f2ed);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.55;
}

.language-offer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.language-offer-primary,
.language-offer-dismiss {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: .28rem;
  padding: .62rem .9rem;
  font: inherit;
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
}

.language-offer-primary {
  border: 1px solid var(--gold, #e6a23c);
  background: var(--gold, #e6a23c);
  color: #140c02;
}

.language-offer-dismiss {
  border: 1px solid var(--line-gold, rgba(230, 162, 60, .42));
  background: transparent;
  color: var(--paper, #f4f2ed);
  cursor: pointer;
}

.language-offer-primary:hover { background: var(--gold-hot, #ffc153); }
.language-offer-dismiss:hover { border-color: var(--gold, #e6a23c); }
.language-offer :focus-visible { outline: 2px solid var(--gold-hot, #ffc153); outline-offset: 3px; }

@media (max-width: 440px) {
  .language-switch { font-size: .72rem !important; }
  .language-offer-actions { align-items: stretch; flex-direction: column; }
  .language-offer-primary,
  .language-offer-dismiss { width: 100%; }
}


/* Header mobile panel: reuse the footer picker list, slightly tighter. */
.nav-language .language-picker-list {
  gap: .45rem .85rem;
}
.nav-language .language-choice {
  min-height: 2.5rem;
}
