:root { --idp-ui-accent: #2563eb; --idp-ui-ink: #101319; --idp-ui-muted: #667085; }
.idp-language-switcher { position: relative; z-index: 2147483000; color: var(--idp-ui-ink); font: 650 14px/1.3 "Instrument Sans", sans-serif; }
.idp-language-switcher.is-fixed { position: fixed; inset-block-start: 14px; inset-inline-end: 14px; }
.idp-language-switcher details { position: relative; }
.idp-language-switcher summary { display: flex; align-items: center; gap: 9px; min-height: 40px; box-sizing: border-box; padding: 9px 13px; list-style: none; cursor: pointer; white-space: nowrap; background: rgba(255,255,255,.96); border: 1px solid rgba(16,19,25,.16); border-radius: 999px; box-shadow: 0 10px 30px rgba(15,23,42,.14); }
.idp-language-switcher summary::-webkit-details-marker { display: none; }
.idp-language-switcher summary::after { content: ""; width: 7px; height: 7px; margin-inline-start: 2px; border-inline-end: 1.5px solid currentColor; border-block-end: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.idp-language-switcher details[open] summary::after { transform: rotate(225deg) translate(-1px,-1px); }
.idp-language-flag { width: 24px; height: 18px; flex: 0 0 auto; object-fit: cover; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.14); }
.idp-language-menu { position: absolute; inset-block-start: calc(100% + 8px); inset-inline-end: 0; width: min(470px, calc(100vw - 28px)); box-sizing: border-box; padding: 10px; overflow: hidden; background: #fff; border: 1px solid rgba(16,19,25,.15); border-radius: 14px; box-shadow: 0 22px 70px rgba(15,23,42,.2); }
.idp-language-search { position: relative; margin-block-end: 9px; }
.idp-language-search input { width: 100%; height: 42px; box-sizing: border-box; padding: 9px 38px 9px 13px; color: var(--idp-ui-ink); background: #f4f7fb; border: 1px solid rgba(16,19,25,.16); border-radius: 9px; outline: none; font: 500 14px/1.2 "Instrument Sans", sans-serif; }
.idp-language-search input:focus { background: #fff; border-color: var(--idp-ui-accent); box-shadow: 0 0 0 3px rgba(37,99,235,.13); }
.idp-language-search i { position: absolute; inset-inline-end: 14px; inset-block-start: 50%; color: var(--idp-ui-muted); pointer-events: none; transform: translateY(-50%); }
.idp-language-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; max-height: calc(70vh - 94px); overflow: auto; scrollbar-gutter: stable; }
.idp-language-option { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 11px; color: var(--idp-ui-ink); text-align: start; background: transparent; border: 0; border-radius: 8px; cursor: pointer; font: 600 14px/1.25 "Instrument Sans", sans-serif; }
.idp-language-option:hover, .idp-language-option:focus-visible { background: #eef4ff; outline: none; }
.idp-language-option[aria-current="true"] { color: #fff; background: var(--idp-ui-ink); }
.idp-language-option[hidden] { display: none; }
.idp-language-status { min-height: 18px; margin: 8px 7px 1px; color: var(--idp-ui-muted); font-size: 12px; font-weight: 550; }
.topbar .idp-language-switcher { flex: 0 0 auto; }
.topbar .nav { margin-inline-start: auto; }
.idp-language-suggestion { position: fixed; z-index: 2147482999; inset-inline: 14px; inset-block-end: 14px; width: min(650px, calc(100% - 28px)); box-sizing: border-box; margin: auto; display: flex; align-items: center; gap: 13px; padding: 13px 15px; color: #fff; background: #101319; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; box-shadow: 0 18px 55px rgba(15,23,42,.3); font: 550 14px/1.45 "Instrument Sans", sans-serif; }
.idp-language-suggestion strong { font-weight: 800; }
.idp-language-suggestion .idp-language-open { flex: 0 0 auto; padding: 7px 10px; color: #fff; background: #2563eb; border: 0; border-radius: 7px; cursor: pointer; font: 750 13px/1.2 "Instrument Sans", sans-serif; }
.idp-language-suggestion .idp-language-close { margin-inline-start: auto; padding: 4px; color: #fff; background: transparent; border: 0; cursor: pointer; font-size: 21px; line-height: 1; }
.footer-socials { display: inline-flex; align-items: center; gap: .65rem; }
.footer-social { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; color: inherit; text-decoration: none; border: 1px solid currentColor; border-radius: 999px; opacity: .84; transition: color .2s ease, border-color .2s ease, background .2s ease, opacity .2s ease; }
.footer-social:hover, .footer-social:focus-visible { color: #fff; background: #2563eb; border-color: #2563eb; opacity: 1; outline: none; }
@media (max-width: 720px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  .idp-language-switcher.is-fixed { inset-block-start: 8px; inset-inline-end: 8px; }
  .topbar { flex-wrap: wrap; }
  .topbar .idp-language-switcher { order: 2; margin-inline-start: auto; }
  .topbar .nav { order: 3; width: 100%; margin-inline-start: 0; }
  .idp-language-switcher details { position: static; }
  .idp-language-menu { position: fixed; inset-block-start: 56px; inset-inline: 8px; width: auto; max-width: none; max-height: calc(100dvh - 66px); }
  .idp-language-list { grid-template-columns: 1fr; max-height: calc(100dvh - 158px); }
  .idp-language-suggestion { align-items: flex-start; flex-wrap: wrap; }
  .idp-language-suggestion .idp-language-open { margin-inline-start: 37px; }
  .idp-language-suggestion .idp-language-close { position: absolute; inset-block-start: 10px; inset-inline-end: 10px; }
}
@media print { .idp-language-switcher, .idp-language-suggestion, .footer-socials { display: none !important; } }

/* Optical centering for Font Awesome footer glyphs. */
.footer-social { position: relative; line-height: 1; }
.footer-social i {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  display: grid;
  place-items: center;
  width: 1em;
  height: 1em;
  line-height: 1;
  transform: translate(-50%, -50%);
}
.footer-social i::before { display: block; line-height: 1; }

/* Mobile header and fixed language notice spacing. */
body.has-idp-language-suggestion { padding-block-end: 92px; }
@media (max-width: 720px) {
  body.has-idp-language-suggestion { padding-block-end: 150px; }
  .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center !important;
    gap: .8rem !important;
  }
  .topbar .brand { grid-column: 1; grid-row: 1; min-width: 0; }
  .topbar .idp-language-switcher { grid-column: 2; grid-row: 1; margin-inline-start: 0; }
  .topbar .nav { grid-column: 1 / -1; grid-row: 2; width: 100%; margin-inline-start: 0; }
}
