/* Accessibility helper: small floating button + panel (see a11y.js) and the display modes it toggles. */

:focus-visible{ outline:2px solid #8a6f42; outline-offset:3px; }
form input:focus-visible, form textarea:focus-visible{ outline-offset:0; }

.a11y-root{ position:fixed; left:16px; bottom:16px; z-index:160; direction:ltr; font-family:'Bellefair',serif; }
.a11y-btn{
  width:38px; height:38px; border-radius:50%; padding:0; cursor:pointer;
  background:#201f1c; color:#fff; border:2px solid #fff;
  box-shadow:0 2px 10px rgba(0,0,0,.28);
  display:flex; align-items:center; justify-content:center;
  transition:transform .2s ease;
}
.a11y-btn:hover{ transform:scale(1.07); }
.a11y-btn svg{ width:22px; height:22px; display:block; }

.a11y-panel{
  position:absolute; left:0; bottom:48px; width:232px; padding:14px;
  background:#fff; color:#201f1c; border:1px solid rgba(32,31,28,.3);
  box-shadow:0 8px 28px rgba(0,0,0,.22); font-size:15px; line-height:1.4;
}
.a11y-panel[hidden]{ display:none; }
.a11y-title{ font-size:13px; letter-spacing:2px; text-transform:uppercase; color:#4c4a44; margin-bottom:10px; }
.a11y-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.a11y-row[hidden]{ display:none; }
.a11y-row > div{ display:flex; gap:6px; }
.a11y-panel button{
  font:inherit; color:inherit; background:#fff; border:1px solid #201f1c; cursor:pointer;
  padding:7px 10px; min-width:38px; text-align:center;
}
.a11y-panel button:hover{ background:#eeedea; }
.a11y-panel .a11y-toggle{ display:block; width:100%; margin-bottom:6px; text-align:start; }
.a11y-panel .a11y-toggle[aria-pressed="true"]{ background:#201f1c; color:#fff; }
.a11y-panel .a11y-reset{ display:block; width:100%; margin-top:10px; border-color:rgba(32,31,28,.4); color:#4c4a44; }

.a11y-panel .a11y-link{ display:block; margin-top:12px; text-align:center; font-size:14px; color:#4c4a44; text-decoration:underline; text-underline-offset:3px; }

/* display modes */
html.a11y-links a{ text-decoration:underline !important; text-underline-offset:3px; }

html.a11y-contrast{
  --ink:#000; --muted:#000; --muted-on-panel:#000;
  --line:rgba(0,0,0,.5); --line-strong:rgba(0,0,0,.85);
  --accent:#5b4520; --sage:#2d3324;
  --panel:#f0efeb; --panel-rgb:240,239,235;
  --concrete:#e3e1db; --concrete-rgb:227,225,219; --concrete-dark:#d3d0c8;
}
html.a11y-contrast body{ background-blend-mode:normal; }

/* animations jump straight to their final frame (not removed), so entrance animations like the hero heading still end up visible */
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after{
  animation-duration:.001s !important; animation-delay:0s !important; animation-iteration-count:1 !important;
  transition:none !important; scroll-behavior:auto !important;
}
html.a11y-still .reveal{ opacity:1 !important; transform:none !important; }

@media (max-width:700px){
  .a11y-root{ left:12px; bottom:12px; }
}
