
/* ================================
   Global Accessibility Widget
   ================================ */

.accessibility-toggle-global {
  position: fixed !important;
  right: 18px !important;
  bottom: 18px !important;
  width: 58px !important;
  height: 58px !important;
  border-radius: 50% !important;
  background: #e30613 !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.28) !important;
  font-size: 25px !important;
  cursor: pointer !important;
  z-index: 999999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.accessibility-panel-global {
  position: fixed !important;
  right: 18px !important;
  bottom: 88px !important;
  width: 285px !important;
  background: #ffffff !important;
  color: #172033 !important;
  border: 1px solid rgba(6,27,95,.16) !important;
  border-radius: 18px !important;
  box-shadow: 0 20px 55px rgba(0,0,0,.25) !important;
  padding: 18px !important;
  z-index: 999999 !important;
  display: none !important;
  font-family: Arial, Helvetica, sans-serif !important;
}

.accessibility-panel-global.open {
  display: block !important;
}

.accessibility-panel-global h3 {
  margin: 0 0 12px !important;
  color: #061b5f !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
}

.accessibility-panel-global button {
  width: 100% !important;
  display: block !important;
  margin: 7px 0 !important;
  padding: 11px 12px !important;
  border-radius: 10px !important;
  border: 1px solid #d8e1f0 !important;
  background: #f5f8ff !important;
  color: #061b5f !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  text-align: left !important;
  font-size: 15px !important;
}

.accessibility-panel-global button:hover,
.accessibility-panel-global button:focus,
.accessibility-toggle-global:focus {
  outline: 3px solid #ffb703 !important;
  outline-offset: 3px !important;
}

.accessibility-skip-link {
  position: absolute !important;
  left: -999px !important;
  top: 12px !important;
  background: #e30613 !important;
  color: #ffffff !important;
  padding: 12px 18px !important;
  border-radius: 8px !important;
  font-weight: 800 !important;
  z-index: 999999 !important;
}

.accessibility-skip-link:focus {
  left: 12px !important;
}

/* Font scaling: applies with high specificity and works even when page uses px sizes */
html.a11y-font-large-1 body :not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global),
html.a11y-font-large-1 body {
  font-size: 110% !important;
}

html.a11y-font-large-2 body :not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global),
html.a11y-font-large-2 body {
  font-size: 120% !important;
}

html.a11y-font-large-3 body :not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global),
html.a11y-font-large-3 body {
  font-size: 135% !important;
}

html.a11y-font-large-4 body :not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global),
html.a11y-font-large-4 body {
  font-size: 150% !important;
}

html.a11y-font-small-1 body :not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global),
html.a11y-font-small-1 body {
  font-size: 92% !important;
}

html.a11y-font-small-2 body :not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global),
html.a11y-font-small-2 body {
  font-size: 85% !important;
}

/* Keep hierarchy reasonably visible */
html.a11y-font-large-1 h1, html.a11y-font-large-2 h1, html.a11y-font-large-3 h1, html.a11y-font-large-4 h1,
html.a11y-font-small-1 h1, html.a11y-font-small-2 h1 {
  line-height: 1.08 !important;
}

body.accessibility-readable-font,
body.accessibility-readable-font *:not(.accessibility-panel-global):not(.accessibility-panel-global *) {
  font-family: Verdana, Arial, Helvetica, sans-serif !important;
  letter-spacing: .2px !important;
}

body.accessibility-underline-links a {
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}

body.accessibility-high-contrast {
  background: #000000 !important;
  color: #ffffff !important;
}

body.accessibility-high-contrast *:not(.accessibility-panel-global):not(.accessibility-panel-global *):not(.accessibility-toggle-global) {
  background-color: #000000 !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
  box-shadow: none !important;
}

body.accessibility-high-contrast a:not(.accessibility-skip-link),
body.accessibility-high-contrast button:not(.accessibility-toggle-global):not(.accessibility-panel-global button) {
  color: #ffffff !important;
  background: #111111 !important;
  border: 2px solid #ffffff !important;
}

body.accessibility-high-contrast input,
body.accessibility-high-contrast select,
body.accessibility-high-contrast textarea {
  background: #000000 !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}

@media(max-width:520px) {
  .accessibility-panel-global {
    left: 14px !important;
    right: 14px !important;
    bottom: 82px !important;
    width: auto !important;
  }

  .accessibility-toggle-global {
    right: 14px !important;
    bottom: 14px !important;
  }
}
