/* V7 language-selector compatibility layer.
   Loaded after the public theme styles so every built-in and CMS page uses the
   same compact, scrollable and accessible control. */
[data-language-picker] {
  position: relative;
  z-index: 320;
  flex: 0 0 auto;
  font-family: inherit;
}

html:not([data-i18n-ready="true"]) [data-language-picker] {
  opacity: 0.58;
  pointer-events: none;
}

html[data-i18n-ready="loading"] [data-language-picker] {
  cursor: progress;
}

html[data-i18n-ready="error"] [data-language-picker]::after {
  position: absolute;
  top: -4px;
  right: -4px;
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  color: #fff;
  background: #b42318;
  border: 2px solid #fff;
  border-radius: 50%;
  content: "!";
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

[data-language-notice-container].is-language-error [data-language-notice] {
  padding: 10px 12px;
  color: #7a271a;
  background: #fef3f2;
  border: 1px solid #fecdca;
  border-radius: 7px;
}

[data-language-toggle],
[data-language-option],
[data-language-confirm],
[data-language-cancel] {
  font: inherit;
}

[data-language-toggle] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 48px;
  min-width: 48px;
  min-height: 42px;
  padding: 6px 4px;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 7px;
  cursor: pointer;
}

[data-language-current-label] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

[data-language-toggle] svg {
  flex: 0 0 8px;
  width: 8px;
}

[data-language-toggle] img,
[data-language-current-flag] {
  display: block;
  width: 26px;
  height: 17px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.56);
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0, 17, 45, 0.2);
}

[data-language-menu] {
  position: absolute;
  z-index: 400;
  top: calc(100% + 9px);
  right: 0;
  left: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(410px, calc(100vw - 24px));
  max-height: min(72vh, 680px);
  padding: 8px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  color: var(--text, #102849);
  background: var(--white, #fff);
  border: 1px solid var(--border, #d6dfec);
  border-top: 4px solid var(--gold, #ffc400);
  border-radius: 9px;
  box-shadow: var(--shadow-md, 0 20px 55px rgba(0, 26, 68, 0.25));
}

[data-language-menu][hidden],
[data-language-notice-container][hidden] {
  display: none !important;
}

[data-language-option] {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) !important;
  gap: 11px;
  align-items: center;
  width: 100%;
  min-height: 42px;
  padding: 7px 9px;
  color: var(--navy-deep, #002654);
  background: transparent;
  border: 1px solid transparent !important;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

[data-language-option] img {
  display: block;
  width: 30px;
  height: 20px;
  object-fit: cover;
  border: 1px solid rgba(16, 24, 40, 0.18);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

[data-language-option]:hover,
[data-language-option]:focus-visible {
  color: var(--blue, #003b8f);
  background: var(--soft-blue, #eef4fb);
  border-color: var(--border, #b8c9df) !important;
}

/* A highlight is deliberately used instead of a checkmark. The semantic
   selected state remains available to assistive technology through
   role=menuitemradio and aria-checked. */
[data-language-option][aria-checked="true"] {
  color: var(--navy-deep, #001c48);
  background: var(--soft-blue, #eef4fb);
  border-color: var(--gold, #ffc400) !important;
  box-shadow: inset 3px 0 0 var(--gold, #ffc400);
}

[data-language-option]::after,
[data-language-option][aria-checked="true"]::after {
  display: none !important;
  content: none !important;
}

[data-language-option][disabled],
[data-language-option][aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.55;
}

.language-notice {
  color: var(--text, #102849);
}

[data-language-notice] {
  color: var(--muted, #526a88);
}

[data-language-actions] {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

@media (max-width: 430px) {
  [data-language-menu] {
    position: fixed;
    top: calc(var(--header-height, 78px) - 2px);
    right: 12px;
    left: 12px;
    width: auto;
    max-height: min(72dvh, 680px);
  }
}

@media (max-width: 640px) {
  [data-language-menu] {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-language-picker] * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media (forced-colors: active) {
  [data-language-option][aria-checked="true"] {
    outline: 2px solid Highlight;
    outline-offset: -2px;
  }
}

/* V14.5 script-aware typography. The bundled Latin fonts intentionally stay
   the default for existing locales; these stacks prevent Arabic and Han text
   from falling through to incomplete display-font glyphs. */
html[data-language="ar"] {
  --display: "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
  --body: "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
}

html[data-language="zh-hans"] {
  --display: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", Arial, sans-serif;
  --body: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", Arial, sans-serif;
}

/* Arabic is the only right-to-left catalogue. Direction is applied by the
   runtime to the root element, while these focused overrides keep physical
   popovers, fields and mixed-direction values predictable. Existing LTR
   languages never match these selectors. */
html[dir="rtl"] body {
  direction: rtl;
}

html[dir="rtl"] [data-language-menu] {
  right: auto;
  left: 0;
  direction: rtl;
}

html[dir="rtl"] [data-language-option] {
  text-align: right;
}

html[dir="rtl"] [data-language-option][aria-checked="true"] {
  box-shadow: inset -3px 0 0 var(--gold, #ffc400);
}

html[dir="rtl"] :where(input, textarea, select) {
  text-align: right;
}

html[dir="rtl"] :where(input[type="email"], input[type="url"], input[type="tel"], input[inputmode="url"], input[inputmode="email"], input[inputmode="tel"], input[type="password"]) {
  direction: ltr;
  text-align: left;
}

html[dir="rtl"] :where(a[href^="http"], a[href^="mailto:"], a[href^="tel:"], code, time, .event-date, .reference-number) {
  unicode-bidi: isolate;
}

html[dir="rtl"] :where(.nav-dropdown, .search-results, .language-notice, .cookie-panel, .prose, [data-page-override-root]) {
  text-align: right;
}

@media (max-width: 430px) {
  html[dir="rtl"] [data-language-menu] {
    right: 12px;
    left: 12px;
  }
}
