/* ================= accessibility menu ================= */
.a11y{
  position:fixed; z-index:60;
  inset-inline-end:20px; bottom:20px;   /* RTL: sits bottom-left */
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
}
.a11y-btn{
  width:52px; height:52px; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(216,180,95,.6); border-radius:50%;
  background:var(--olive); color:var(--g3);
  cursor:pointer;
  box-shadow:0 6px 18px rgba(44,42,37,.22);
  transition:background .25s ease, transform .25s ease;
}
.a11y-btn:hover{ background:var(--olive-dark); transform:translateY(-2px); }
.a11y-btn:focus-visible{ outline:3px solid var(--g3); outline-offset:3px; }

.a11y-menu{
  width:min(300px, calc(100vw - 40px));
  padding:18px 18px 14px;
  background:#FBF8F2;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 18px 44px rgba(44,42,37,.2);
}
.a11y-menu__title{
  margin:0 0 12px; font-family:var(--font-body); font-weight:700;
  font-size:13px; letter-spacing:.16em; color:var(--sage-text);
}
.a11y-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.a11y-item{
  display:flex; align-items:center; gap:8px;
  padding:11px 10px;
  font-family:var(--font-body); font-size:14px; line-height:1.3; text-align:start;
  color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:9px;
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.a11y-item:hover{ border-color:var(--g2); background:#FFFDF8; }
.a11y-item:focus-visible{ outline:2px solid var(--g3); outline-offset:2px; }
.a11y-item[aria-pressed="true"]{ border-color:var(--olive); background:#EEF1EB; }
.a11y-ico{
  flex:none; width:24px; height:24px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:13px; color:var(--g2-text);
  border:1px solid rgba(168,124,51,.35); border-radius:6px;
}
.a11y-link{
  display:inline-block; margin-top:12px;
  font-size:13.5px; color:var(--ink-soft); text-decoration:none;
  border-bottom:1px solid var(--line);
}
.a11y-link:hover{ color:var(--ink); border-color:var(--g2); }

/* ================= the modes themselves ================= */

/* high contrast: darken text, strengthen every edge */
.a11y-contrast{ --ink:#000; --ink-soft:#2A2A2A; --ink-display:#000; --line:rgba(0,0,0,.5); }
.a11y-contrast body{ background:#fff; }
.a11y-contrast .section--dark{ color:#fff; }
.a11y-contrast .field__input{ border-color:#000; background:#fff; }
.a11y-contrast .a11y-item{ border-color:#000; }

/* greyscale */
.a11y-mono{ filter:grayscale(1); }

/* a plain, high-legibility face in place of the calligraphic one */
.a11y-readable{
  --font-display:Arial, "Helvetica Neue", Helvetica, sans-serif;
  --font-body:Arial, "Helvetica Neue", Helvetica, sans-serif;
}
.a11y-readable *{ letter-spacing:normal !important; }

/* links made unmistakable */
.a11y-links a:not(.btn):not(.wordmark){
  text-decoration:underline !important;
  text-underline-offset:3px;
  outline:1px dashed var(--g2); outline-offset:2px;
}

/* everything holds still */
.a11y-still *,
.a11y-still *::before,
.a11y-still *::after{
  animation:none !important;
  transition:none !important;
  scroll-behavior:auto !important;
}
.a11y-still .js .reveal{ opacity:1 !important; transform:none !important; }

@media (max-width:520px){
  .a11y{ inset-inline-end:14px; bottom:14px; }
  .a11y-grid{ grid-template-columns:1fr; }
}
