.accessibility-launcher {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 88;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #7952c7;
  color: #fff;
  box-shadow: none;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}

/* Consistent purple accent for all section eyebrows. */
.eyebrow,
.eyebrow.dark {
  color: #7952c7;
}

.hero .eyebrow,
.quote .eyebrow,
.locations .eyebrow,
.contact .eyebrow {
  color: #c9b2ff;
}

.hero .eyebrow {
  text-shadow: 0 1px 9px rgba(5, 30, 26, .42);
}

.accessibility-launcher:hover,
.accessibility-launcher:focus-visible {
  background: #6844b2;
  transform: translateY(-2px);
  outline: none;
}

.accessibility-launcher svg { width: 21px; height: 21px; }

.accessibility-panel {
  position: fixed;
  right: 18px;
  bottom: 68px;
  z-index: 89;
  width: min(360px, calc(100vw - 28px));
  max-height: min(690px, calc(100svh - 105px));
  overflow-y: auto;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 24px;
  background: rgba(244,248,248,.97);
  color: #17313a;
  box-shadow: 0 20px 60px rgba(7,30,37,.28);
  backdrop-filter: blur(18px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px) scale(.985);
  transform-origin: bottom right;
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease;
  scrollbar-width: none;
}

.accessibility-panel::-webkit-scrollbar { display: none; }
.accessibility-panel.open { opacity: 1; visibility: visible; transform: none; }

.accessibility-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}

.accessibility-head strong { font-size: 18px; font-weight: 600; }
.accessibility-head span { display: block; margin-top: 3px; color: #60777e; font-size: 10px; }

.accessibility-close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #17313a;
  color: #fff;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.accessibility-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }

.accessibility-option {
  min-height: 90px;
  padding: 14px 10px;
  border: 1px solid rgba(23,49,58,.08);
  border-radius: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  background: #fff;
  color: #17313a;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.accessibility-option i { font-size: 25px; font-style: normal; font-weight: 400; }
.accessibility-option:hover { background: #edf3f3; }
.accessibility-option[aria-pressed="true"] { background: #17313a; color: #fff; border-color: #17313a; }

.accessibility-reset {
  width: 100%;
  margin-top: 12px;
  padding: 11px;
  border: 1px solid rgba(23,49,58,.22);
  border-radius: 999px;
  background: transparent;
  color: #17313a;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

html.a11y-contrast { filter: contrast(1.32); }
html.a11y-highlight-links a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; }
html.a11y-big-text body :is(p,a,button,summary,label,input,textarea,span) { font-size: 115% !important; }
html.a11y-text-spacing body { letter-spacing: .075em !important; word-spacing: .12em !important; }
html.a11y-pause-motion *, html.a11y-pause-motion *::before, html.a11y-pause-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.a11y-hide-images body :is(img,video,picture,svg:not(.accessibility-launcher svg)) { opacity: 0 !important; }
html.a11y-dyslexia body, html.a11y-dyslexia body * { font-family: Arial, Verdana, sans-serif !important; }
html.a11y-large-cursor, html.a11y-large-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath fill='white' stroke='black' stroke-width='2' d='M4 2l20 18-9 1 5 8-4 2-5-9-7 6z'/%3E%3C/svg%3E") 3 2, auto !important; }
html.a11y-line-height body :is(p,li,summary,label) { line-height: 2 !important; }

@media (max-width: 520px) {
  .accessibility-launcher { right: 12px; bottom: 12px; }
  .accessibility-panel { right: 7px; bottom: 74px; padding: 18px; }
  .accessibility-option { min-height: 78px; }
}

@media (prefers-reduced-motion: reduce) {
  .accessibility-launcher, .accessibility-panel, .accessibility-option { transition: none; }
}
