/* Build: 2026-08-25-r1 */
.a11y-toggle {
  position: fixed;
  bottom: 20px;
  left: 20px;
  z-index: 9999;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--blue, #054FB9);
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
}

.a11y-panel {
  position: fixed;
  bottom: 82px;
  left: 20px;
  z-index: 9999;
  width: 300px;
  max-width: calc(100vw - 40px);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(0,0,0,.25);
  padding: 18px;
  display: none;
  max-height: 70vh;
  overflow-y: auto;
}
.a11y-panel.open { display: block; }
.a11y-panel h2 {
  font-size: 16px;
  margin: 0 0 14px;
  color: #171C22;
}
.a11y-panel-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 14px;
  color: #171C22;
}
.a11y-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.a11y-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  padding: 10px 6px;
  cursor: pointer;
  font-size: 12px;
  color: #3F444B;
  font-family: inherit;
}
.a11y-btn:hover { background: #EEF2F7; }
.a11y-btn.active { background: #054FB9; color: #fff; border-color: #054FB9; }
.a11y-btn.reset { grid-column: 1 / -1; background: #FDECEC; color: #8A1214; border-color: #FBE2E1; }
.a11y-btn.reset:hover { background: #FBE2E1; }

/* ===== Applied states ===== */
html.a11y-text-lg { zoom: 115%; }
html.a11y-text-xl { zoom: 130%; }

html.a11y-grayscale { filter: grayscale(1); }

html.a11y-contrast body {
  background: #000 !important;
  color: #fff !important;
}
html.a11y-contrast body *:not(.a11y-toggle):not(.a11y-panel):not(.a11y-panel *):not(.btn) {
  background-color: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}
html.a11y-contrast a:not(.a11y-toggle):not(.btn) { color: #FFD966 !important; }
html.a11y-contrast .btn.btn { background: #FFD966 !important; color: #000 !important; border-color: #FFD966 !important; }

html.a11y-invert body { filter: invert(1) hue-rotate(180deg); }
html.a11y-invert .a11y-panel, html.a11y-invert .a11y-toggle { filter: invert(1) hue-rotate(180deg); }

html.a11y-light body *:not(.a11y-toggle):not(.a11y-panel):not(.a11y-panel *):not(body) {
  background-color: #fff !important;
  color: #111 !important;
}
html.a11y-light body { background: #fff !important; }

html.a11y-underline a { text-decoration: underline !important; }

html.a11y-readable body, html.a11y-readable body * {
  font-family: Arial, Helvetica, sans-serif !important;
}

@media (max-width: 700px) {
  .has-promo-bar .a11y-toggle { bottom: 220px; }
  .has-promo-bar .a11y-panel { bottom: 282px; }
}
