/* WCAG Accessibility Widget Styles — PPFAS AMC
 * Companion to accessibility.js
 * Generated: 2026-06-12
 */

:root {
  --a11yw-brand: #33a32d;
  --a11yw-brand-text: #ffffff;
  --a11yw-surface: #ffffff;
  --a11yw-surface-alt: #f5f5f5;
  --a11yw-text: #000000;
  --a11yw-radius: 8px;
  --a11yw-z: 2147483000;
}

.a11yw-sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.a11yw-trigger {
  position: fixed; bottom: 24px; z-index: var(--a11yw-z);
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--a11yw-brand); color: var(--a11yw-brand-text);
  border: 2px solid var(--a11yw-brand-text);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.3);
  font-size: 0; padding: 0;
}
.a11yw-trigger.a11yw-pos-right { right: 24px; }
.a11yw-trigger.a11yw-pos-left { left: 24px; }
.a11yw-trigger:focus-visible,
.a11yw-panel button:focus-visible {
  outline: 3px solid var(--a11yw-brand); outline-offset: 2px;
}
.a11yw-trigger:focus-visible { outline-color: var(--a11yw-text); }

.a11yw-panel {
  position: fixed; bottom: 88px; z-index: var(--a11yw-z);
  width: min(420px, calc(100vw - 24px));
  max-height: min(80vh, 720px); overflow-y: auto;
  background: var(--a11yw-surface-alt);
  border-radius: var(--a11yw-radius);
  box-shadow: 0 8px 40px rgba(0,0,0,.35);
  font-family: inherit; color: var(--a11yw-text);
  font-size: 14px;
}
.a11yw-panel.a11yw-pos-right { right: 12px; }
.a11yw-panel.a11yw-pos-left { left: 12px; }
.a11yw-panel[hidden] { display: none; }

.a11yw-header {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--a11yw-brand); color: var(--a11yw-brand-text);
  padding: 14px 18px; border-radius: var(--a11yw-radius) var(--a11yw-radius) 0 0;
  position: sticky; top: 0;
}
.a11yw-title { margin: 0; font-size: 1.15rem; font-weight: 600; color: inherit; }
.a11yw-close {
  width: 44px; height: 44px; font-size: 26px; line-height: 1;
  background: transparent; color: inherit; border: 2px solid rgba(255,255,255,.55); 
  cursor: pointer; border-radius: 8px;
}
.a11yw-close:hover { background: rgba(255,255,255,.18); }

.a11yw-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 12px; padding: 16px;
}
@media (max-width: 360px) { .a11yw-grid { grid-template-columns: repeat(2, 1fr); } }

.a11yw-tile {
  min-height: 96px; min-width: 44px;
  background: var(--a11yw-surface); color: var(--a11yw-text);
  border: 2px solid transparent; border-radius: var(--a11yw-radius);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; padding: 10px;
  text-align: center; min-height: 44px;
}
.a11yw-tile:hover { border-color: var(--a11yw-brand); }
.a11yw-tile[aria-pressed="true"] {
  background: color-mix(in srgb, var(--a11yw-brand) 14%, var(--a11yw-surface));
  border-color: var(--a11yw-brand);
}
.a11yw-tile svg { width: 28px; height: 28px; margin-bottom: 2px; flex-shrink: 0; }

.a11yw-footer { padding: 12px 16px 16px; border-top: 1px solid #ddd; }
.a11yw-reset {
  width: 100%; display: block; min-height: 44px; padding: 10px 18px;
  border: 0; cursor: pointer; border-radius: 8px;
  font: inherit; font-weight: 600;
  background: color-mix(in srgb, var(--a11yw-brand) 14%, var(--a11yw-surface));
  color: var(--a11yw-text);
}

/* Text Spacing */
.a11yw-spacing { letter-spacing: .12em !important; word-spacing: .16em !important; }

/* Line Height */
.a11yw-lineheight-1 { line-height: 1.5 !important; }
.a11yw-lineheight-2 { line-height: 1.8 !important; }
.a11yw-lineheight-3 { line-height: 2.2 !important; }
.a11yw-lineheight-4 { line-height: 2.5 !important; }

/* Highlight Links */
.a11yw-links a {
  text-decoration: underline !important; outline: 2px solid currentColor !important;
  outline-offset: 1px; background: rgba(255, 230, 0, .35) !important;
}

/* Dyslexia Friendly */
.a11yw-dyslexia,
.a11yw-dyslexia * {
  font-family: Verdana, "Trebuchet MS", sans-serif !important;
  font-weight: normal !important;
  font-style: normal !important;
}

/* Focus Mode (dims surroundings) */
.a11yw-dyslexia-focus-mode {
  filter: contrast(1.2) brightness(1.05) !important;
}
.a11yw-dyslexia-focus-mode body:not(:focus-within) {
  filter: grayscale(0.8) brightness(0.7) !important;
}

/* Reading Guide */
.a11yw-guidebar {
  position: fixed; left: 0; right: 0; height: 4px;
  background: var(--a11yw-brand); z-index: calc(var(--a11yw-z) - 1);
  pointer-events: none; box-shadow: 0 0 0 9999px rgba(0,0,0,.12);
}

/* High Contrast */
.a11yw-contrast-1 {
  background: #ffff00 !important; color: #000000 !important;
}
.a11yw-contrast-1 a { color: #0066ff !important; }
.a11yw-contrast-1 button { background: #000000 !important; color: #ffff00 !important; }

.a11yw-contrast-2 {
  background: #000000 !important; color: #ffffff !important;
}
.a11yw-contrast-2 a { color: #ffff00 !important; }
.a11yw-contrast-2 button { background: #ffffff !important; color: #000000 !important; }

.a11yw-contrast-3 {
  background: #ffffff !important; color: #000000 !important;
}
.a11yw-contrast-3 a { color: #0066ff !important; }
.a11yw-contrast-3 button { background: #000000 !important; color: #ffffff !important; }

/* Light-Dark (Dark Mode) */
.a11yw-dark {
  filter: invert(1) hue-rotate(180deg);
  background: #111 !important;
}
.a11yw-dark img,
.a11yw-dark video,
.a11yw-dark .a11yw-panel,
.a11yw-dark .a11yw-trigger {
  filter: invert(1) hue-rotate(180deg);
}

/* Cursor Size */
:root.a11yw-cursor-1 { cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><circle cx="16" cy="16" r="14" fill="none" stroke="black" stroke-width="2"/><circle cx="16" cy="16" r="2" fill="black"/></svg>') 16 16, auto; }
:root.a11yw-cursor-2 { cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><circle cx="24" cy="24" r="20" fill="none" stroke="black" stroke-width="2"/><circle cx="24" cy="24" r="3" fill="black"/></svg>') 24 24, auto; }

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce) {
  .a11yw-panel { animation: none; }
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
