.skip-link {
  position: fixed;
  z-index: 1000;
  top: 10px;
  right: 10px;
  padding: 12px 18px;
  transform: translateY(-160%);
  border: 2px solid #fff;
  border-radius: 10px;
  background: #173b5b;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }
:focus-visible {
  outline: 3px solid #003f78 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #fff !important;
}
button, a { touch-action: manipulation; }
.accessibility-widget { direction: rtl; }
.accessibility-toggle {
  position: fixed;
  z-index: 100;
  left: 18px;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 118px;
  min-height: 48px;
  padding: 10px 15px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #36261b;
  color: #fff;
  box-shadow: 0 3px 0 #8d6332, 0 8px 20px #36261b33;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.accessibility-toggle svg { width: 22px; height: 22px; flex: none; }
.accessibility-toggle:hover { background: #503821; }
.accessibility-panel {
  position: fixed;
  z-index: 101;
  left: 18px;
  bottom: 78px;
  width: min(350px, calc(100vw - 36px));
  max-height: min(72vh, 540px);
  overflow: auto;
  padding: 17px;
  border: 2px solid #765020;
  border-radius: 18px;
  background: #fffdf8;
  color: #36261b;
  box-shadow: 0 14px 38px #36261b38;
}
.accessibility-panel[hidden] { display: none !important; }
.accessibility-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.accessibility-panel-heading h2 { margin: 0; font-size: 1.15rem; }
.accessibility-close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid #765020;
  border-radius: 50%;
  background: #fff;
  color: #36261b;
  font: inherit;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.accessibility-actions { display: grid; gap: 8px; }
.accessibility-actions button {
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid #8d6332;
  border-radius: 10px;
  background: #fff;
  color: #36261b;
  font: inherit;
  font-weight: 700;
  text-align: right;
  cursor: pointer;
}
.accessibility-actions button:hover,
.accessibility-actions button[aria-pressed="true"] { background: #f1e4cf; }
.accessibility-status { min-height: 1.5em; margin: 10px 0 0; font-size: .9rem; }
body.accessibility-underlined a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .18em !important; }
body.accessibility-high-contrast,
body.accessibility-high-contrast * {
  border-color: #ffed00 !important;
  background-color: #000 !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #fff !important;
}
body.accessibility-high-contrast a { color: #ffed00 !important; text-decoration: underline !important; }
body.accessibility-high-contrast :focus-visible { outline-color: #ffed00 !important; box-shadow: 0 0 0 2px #000 !important; }
html.accessibility-reduced-motion,
html.accessibility-reduced-motion *,
html.accessibility-reduced-motion *::before,
html.accessibility-reduced-motion *::after {
  scroll-behavior: auto !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
}
@media (max-width: 620px) {
  .accessibility-toggle { left: 12px; bottom: calc(82px + env(safe-area-inset-bottom)); }
  .accessibility-panel { left: 12px; bottom: calc(140px + env(safe-area-inset-bottom)); width: min(350px, calc(100vw - 24px)); }
}
@media (forced-colors: active) {
  .accessibility-toggle, .accessibility-panel, .accessibility-actions button, .accessibility-close { border: 2px solid ButtonText; }
  :focus-visible { outline: 3px solid Highlight !important; }
}
