/* Shared language links stay in the existing responsive navigation. */
.localized-error { min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: #fff; color: #171717; }
.localized-error main { width: 100%; max-width: 600px; display: grid; gap: 24px; }
.localized-error h1 { font-size: 28px; font-weight: 700; margin: 0; letter-spacing: -.03em; }
.localized-error p { line-height: 1.7; }
.localized-error .action { background: #171717; border-color: #171717; }
.localized-error .action:hover { background: #333; box-shadow: 0 8px 22px #00000018; }
.localized-error :focus-visible { outline: 2px solid #171717; }

.main-nav .language-switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 13px;
  border: 1px solid #d4d4d4;
  border-radius: 999px;
  background: #fff;
  color: #171717;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.main-nav .language-switch::after { display: none; }
.main-nav .language-switch:hover { background: #f5f5f5; border-color: #737373; }
.main-nav .language-switch:focus-visible { outline: 2px solid #171717; outline-offset: 4px; }

@media (max-width: 760px) {
  .main-nav .language-switch { align-self: flex-start; margin-block: 8px; padding: 10px 16px; min-height: 44px; }
  .no-js .main-nav { flex-wrap: wrap; }
  .no-js .main-nav .language-switch { min-height: 36px; padding: 7px 10px; font-size: 11px; }
}

/* French legal headings need room for words such as « confidentialité ». */
html:lang(fr) .legal-article { overflow-wrap: anywhere; }
@media (max-width: 440px) {
  html:lang(fr) .legal-heading h1 { font-size: clamp(34px, 10.5vw, 46px); }
}
