/* ---------- accessibility: skip link, menu, high contrast, pause animations ---------- */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip{
  position:fixed;left:1rem;top:1rem;z-index:1200;background:#14131A;color:#F6F2EB;padding:.9em 1.3em;
  font-family:var(--body);font-weight:500;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  transform:translateY(-220%);transition:transform .2s ease;
}
.skip:focus{transform:none;outline:2px solid #F2B8BB;outline-offset:2px}

.a11y{position:fixed;right:clamp(.75rem,2vw,1.5rem);bottom:clamp(.75rem,2vw,1.5rem);z-index:1100;font-family:var(--body)}
.a11y-btn{
  width:46px;height:46px;border-radius:50%;padding:0;display:grid;place-items:center;cursor:pointer;
  background:#14131A;color:#F6F2EB;border:1px solid rgba(246,242,235,.5);box-shadow:0 6px 20px rgba(20,19,26,.22);
  transition:background .3s ease;
}
.a11y-btn:hover,.a11y-btn[aria-expanded="true"]{background:#1F23B5}
.a11y-btn svg{width:26px;height:26px}
.a11y-btn:focus-visible,.a11y-panel button:focus-visible,.a11y-panel a:focus-visible{outline:2px solid #1F23B5;outline-offset:3px;box-shadow:0 0 0 5px #F2B8BB}
.a11y-panel{
  position:absolute;right:0;bottom:calc(100% + .7rem);width:min(17.5rem,calc(100vw - 1.5rem));
  background:#F6F2EB;color:#14131A;border:1px solid #14131A;padding:1.1rem;display:grid;gap:.55rem;
  box-shadow:0 18px 50px rgba(20,19,26,.25);
}
.a11y-panel[hidden]{display:none}
.a11y-title{font-family:var(--display);font-style:italic;font-size:1.35rem;line-height:1.1;margin:0 0 .35rem}
.a11y-opt{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;text-align:left;cursor:pointer;
  background:transparent;color:#14131A;border:1px solid rgba(20,19,26,.35);padding:.8rem .9rem;
  font-family:var(--body);font-weight:500;font-size:.7rem;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;
}
.a11y-opt:hover{border-color:#14131A}
.a11y-opt .sw{flex:none;position:relative;width:2.3rem;height:1.3rem;border-radius:999px;border:1.5px solid #14131A;transition:background .25s ease,border-color .25s ease}
.a11y-opt .sw::after{content:"";position:absolute;top:.14rem;left:.16rem;width:.78rem;height:.78rem;border-radius:50%;background:#14131A;transition:transform .25s ease,background .25s ease}
.a11y-opt[aria-pressed="true"]{border-color:#1F23B5}
.a11y-opt[aria-pressed="true"] .sw{background:#1F23B5;border-color:#1F23B5}
.a11y-opt[aria-pressed="true"] .sw::after{background:#FFFFFF;transform:translateX(.98rem)}
.a11y-panel a{font-size:.82rem;text-decoration:underline;text-underline-offset:.2em;margin-top:.25rem;justify-self:start}

/* High contrast: every text colour meets WCAG AA against its background */
html.a11y-contrast{--mute:#56524D}
html.a11y-contrast .manifesto h2 .w{opacity:1}
html.a11y-contrast .contact h2 em.blue{color:#9396FF}
html.a11y-contrast ::placeholder{color:rgba(20,19,26,.78)!important;opacity:1}
html.a11y-contrast .form label.check,html.a11y-contrast .form .note{color:#14131A}
html.a11y-contrast .foot,html.a11y-contrast .foot .small{color:rgba(246,242,235,.88)}
html.a11y-contrast .nowhere small{color:rgba(246,242,235,.85)}

/* Pause animations: nothing moves on its own; one-shot entrances finish instantly */
html.a11y-still{scroll-behavior:auto}
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-duration:.001s!important;transition-delay:0s!important;
}
html.a11y-still .pathline{display:none}
html.a11y-still.js .reveal{opacity:1;transform:none}
html.a11y-still .manifesto h2 .w{opacity:1}
