/* Language selector shell: no content is translated by this component. */
.language-header { gap: 16px; }
.language-header > .main-nav { margin-inline-start: auto; }
.language-switcher {
  position: relative;
  flex: 0 0 auto;
  margin-inline-start: 20px;
  font-family: var(--brand-sans, Arial, sans-serif);
}
.language-fallback { font-size: .82rem; white-space: nowrap; }
.language-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #ffffff80;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: .8rem;
  cursor: pointer;
}
.language-toggle:hover, .language-toggle[aria-expanded="true"] { background: #ffffff15; }
.language-code { font-size: .76rem; font-weight: 600; letter-spacing: .05em; }
.language-flag {
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 15px;
  overflow: hidden;
  outline: 1px solid #17332925;
  outline-offset: 0;
}
.language-chevron { width: 10px; height: 7px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.language-toggle[aria-expanded="true"] .language-chevron { transform: rotate(180deg); }
.language-panel {
  position: absolute;
  inset-block-start: calc(100% + 12px);
  inset-inline-end: 0;
  z-index: 35;
  width: 300px;
  max-width: calc(100vw - 32px);
  max-height: min(580px, var(--language-panel-space, calc(100dvh - 120px)));
  display: flex;
  flex-direction: column;
  padding: 18px 0 0;
  border: 1px solid var(--brand-line, #7b897d);
  background: var(--brand-paper, #faf8f1);
  color: var(--brand-forest, #173329);
  box-shadow: 0 14px 36px #07161030;
  line-height: 1.4;
}
.language-panel[hidden] { display: none; }
.language-heading { margin: 0 18px 6px; font-size: .92rem; font-weight: 600; }
.language-intro { margin: 0 18px 14px; font-size: .77rem; color: var(--brand-muted, #556258); }
.language-list { list-style: none; margin: 0; padding: 3px 6px; overflow-y: auto; overscroll-behavior: contain; min-height: 52px; scrollbar-width: thin; border-block: 1px solid var(--brand-line-soft, #17332930); }
.language-list li { margin: 0; padding: 0; }
.language-option {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 54px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: start;
  font: inherit;
  cursor: pointer;
  text-decoration: none;
}
.language-option-copy { display: flex; flex: 1; flex-direction: column; gap: 2px; }
.language-name { font-size: .86rem; }
.language-availability { font-size: .68rem; color: var(--brand-muted, #556258); }
.language-option[aria-current="true"] { background: var(--brand-forest, #173329); color: #fff; cursor: pointer; }
.language-option[aria-current="true"] .language-availability { color: #fff; }
.language-option[aria-disabled="true"]:hover { background: var(--brand-stone, #ded9cb); }
.language-option:not([aria-current="true"]):hover { background: var(--brand-stone, #ded9cb); }
.site-header .language-option:focus-visible { outline: 2px solid var(--brand-cotto, #985422); outline-offset: -3px; }
.site-header .language-option[aria-current="true"]:focus-visible { outline-color: var(--brand-gold, #c5a66a); }
.language-status { flex: 0 0 auto; margin: 0; padding: 12px 18px; font-size: .74rem; color: var(--brand-muted, #556258); }
@media (max-width: 1024px) {
  .language-header.has-menu > .menu-toggle { margin-inline-start: auto; }
  .language-header.has-menu > .main-nav { margin-inline-start: 0; }
  .language-header:not(.has-menu) { flex-wrap: wrap; }
  .language-header:not(.has-menu) > .main-nav { order: 3; flex: 1 0 100%; justify-content: flex-start; margin-inline-start: 0; }
  .language-header:not(.has-menu) > .language-switcher { margin-inline-start: auto; }
  .language-switcher { margin-inline-start: 0; }
}
@media (max-width: 600px) {
  .language-header { gap: 8px; }
  .language-toggle { padding-inline: 8px; gap: 6px; }
  .language-toggle .language-flag { flex-basis: 20px; width: 20px; height: 12px; }
}
@media (max-height: 480px) {
  .language-panel { padding-top: 10px; }
  .language-heading { margin-bottom: 4px; }
  .language-intro { margin-bottom: 8px; }
  .language-status { padding-block: 7px; }
}
