/* Language controls inherit all four palettes and both colour modes. */
.language-switcher { position: relative; flex: 0 0 auto; font-size: .8125rem; letter-spacing: 0; color: var(--ink); }
.language-switcher summary { display: flex; align-items: center; justify-content: center; gap: .35rem; min-height: 44px; padding: .5rem .625rem; border: 1px solid var(--line); border-radius: .75rem; cursor: pointer; list-style: none; font-weight: 600; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher summary svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.language-switcher[open] summary { background: var(--surface-soft); }
.language-switcher > nav { position: absolute; inset: calc(100% + .5rem) 0 auto auto; z-index: 30; display: grid; min-width: 160px; padding: .375rem; background: var(--paper); border: 1px solid var(--line); border-radius: .875rem; box-shadow: 0 8px 24px rgb(0 0 0 / .08); }
.language-switcher > nav a { display: flex; align-items: center; min-height: 44px; padding: .6rem .75rem; margin: 0; border-radius: .5rem; font-size: .875rem; color: var(--ink); }
.language-switcher > nav a[aria-current], .language-options a[aria-current] { background: var(--surface-accent); box-shadow: inset 0 -2px var(--brand-accent); font-weight: 600; }
.language-options { display: grid; gap: .5rem; padding-block: 1rem; font-size: .8125rem; }
.language-options > span { color: var(--muted); }
.language-options > div { display: flex; flex-wrap: wrap; gap: .375rem; }
.language-options a, .marketing-page .mobile-menu .language-options a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--line); border-radius: .625rem; font-size: .8125rem; letter-spacing: 0; color: var(--ink); }
.language-options a:hover, .language-switcher nav a:hover { background: var(--surface-soft); }
.language-switcher summary:focus-visible, :is(.language-switcher, .language-options) a:focus-visible { outline: 2px solid var(--violet-text); outline-offset: 3px; }
.mobile-menu-content > .language-options { padding-block: 0 1.25rem; }
footer > .language-options { grid-column: 1 / -1; width: 100%; }
.booking-header > .language-switcher { margin-inline-start: auto; }
@media (min-width: 1001px) and (max-width: 1280px) {
  .marketing-page .header > .desktop-nav { display: none; }
  .marketing-page .header > .nav-cta { grid-column: 2; justify-self: end; }
  .marketing-page .header > .theme-toggle { grid-column: 3; }
  .marketing-page .header > .menu-toggle { display: grid; grid-column: 4; grid-row: 1; place-content: center; gap: .375rem; padding: .75rem; border: 1px solid var(--line-strong); background: var(--paper); }
  .marketing-page .header > .menu-toggle span { inline-size: 1.125rem; margin: 0; }
}
@media (max-width: 420px) {
  .booking-page .booking-header { grid-template-columns: minmax(0, 1fr) auto auto; }
  .booking-header-actions .theme-toggle { grid-column: 2; }
  .booking-header > .language-switcher { grid-column: 3; grid-row: 1; }
  .booking-header-actions .booking-back { grid-column: 1 / -1; }
}

/* Longer translated labels retain a gap when the audience switch replaces the logo. */
.marketing-page .header.is-compact > .desktop-nav { gap: .75rem; }
