/* Site-wide text scaling. Relative units preserve the visitor's browser default. */
.mobile-menu { position: fixed; z-index: 100; }
html { --site-text-scale: 1; }
html[data-text-size=small] { --site-text-scale: .9; font-size: 90%; }
html[data-text-size=medium] { --site-text-scale: 1; font-size: 100%; }
html[data-text-size=large] { --site-text-scale: 1.15; font-size: 115%; }
.text-size-control { border: 0; padding: 0; margin: 28px 0 32px; width: 100%; max-width: 360px; min-width: 0; color: #071c2b; }
.text-size-control legend { padding: 0; margin-bottom: 12px; font-size: .9375rem; font-weight: 750; }
.text-size-track { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 4px; border: 1px solid #9fb4c3; border-radius: 6px; background: #e2ebf1; isolation: isolate; }
.text-size-thumb { position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 4px; width: calc((100% - 8px) / 3); background: #076fcb; border-radius: 3px; transform: translateX(100%); pointer-events: none; }
.text-size-control[data-size=small] .text-size-thumb { transform: translateX(0); }
.text-size-control[data-size=large] .text-size-thumb { transform: translateX(200%); }
.text-size-option { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-height: 70px; padding: 8px 4px; border-radius: 3px; cursor: pointer; }
.text-size-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.text-size-option:has(input:checked) { color: #fff; }
.text-size-option:has(input:focus-visible) { outline: 2px solid #071c2b; outline-offset: 1px; }
/* Pixel-sized glyphs are intentional: these icons must not change with the setting. */
.text-size-icon { display: inline-flex; align-items: baseline; justify-content: center; height: 32px; gap: 1px; line-height: 32px; }
.text-size-icon b { font-weight: 800; line-height: 32px; }
.text-size-icon--small b { font-size: 18px; }
.text-size-icon--medium b:first-child { font-size: 17px; }
.text-size-icon--medium b:last-child { font-size: 24px; }
.text-size-icon--large b:nth-child(1) { font-size: 16px; }
.text-size-icon--large b:nth-child(2) { font-size: 22px; }
.text-size-icon--large b:nth-child(3) { font-size: 29px; }
@media (prefers-reduced-motion: no-preference) {
  .text-size-thumb { transition: transform .18s ease; }
}
@media (min-width: 1100px) {
  .text-size-control { display: none; }
}
@media (forced-colors: active) {
  .text-size-thumb { background: Highlight; }
  .text-size-option:has(input:checked) { outline: 2px solid Highlight; outline-offset: -2px; color: HighlightText; background: Highlight; }
}
