/* ============ A11Y WIDGET ============ */
.a11y-fab {
  position: fixed; bottom: 24px; left: 24px; z-index: 9500;
  height: 56px; min-width: 56px; padding: 0 22px 0 18px;
  border-radius: 999px;
  background: var(--yo-blue); color: #fff;
  border: none; box-shadow: 0 10px 30px -5px rgba(44,95,141,0.5);
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font: 600 14px var(--font-sans); letter-spacing: 0.01em;
  transition: all .3s var(--ease-out-expo);
  animation: fabPulse 3s ease-in-out infinite;
}
.a11y-fab .a11y-fab-label { white-space: nowrap; }
@media (max-width: 600px) {
  .a11y-fab { padding: 0; width: 56px; }
  .a11y-fab .a11y-fab-label { display: none; }
}
.a11y-fab:hover { transform: scale(1.08); background: var(--yo-orange); }
.a11y-fab svg { width: 30px; height: 30px; }
@keyframes fabPulse {
  0%, 100% { box-shadow: 0 10px 30px -5px rgba(44,95,141,0.5), 0 0 0 0 rgba(44,95,141,0.3); }
  50% { box-shadow: 0 10px 30px -5px rgba(44,95,141,0.5), 0 0 0 16px rgba(44,95,141,0); }
}

.a11y-panel {
  position: fixed; bottom: 24px; left: 24px; z-index: 9600;
  width: 380px; max-width: calc(100vw - 32px); max-height: calc(100vh - 48px);
  background: var(--card); color: var(--ink);
  border-radius: 20px; border: 1px solid var(--line-strong);
  box-shadow: 0 40px 80px -20px rgba(14,17,22,0.3);
  overflow-y: auto;
  transform: translateY(20px) scale(0.95); opacity: 0; pointer-events: none;
  transition: all .4s var(--ease-out-expo);
}
.a11y-panel.open { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }

.a11y-head {
  position: sticky; top: 0; z-index: 1; background: var(--card);
  padding: 18px 20px; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between;
}
.a11y-head h3 { font-size: 17px; font-weight: 600; font-family: var(--font-body); letter-spacing: 0; }
.a11y-head .sub { font-size: 12px; color: var(--ink-3); font-family: var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; }
.a11y-close { background: var(--bg-2); border: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: var(--ink); cursor: pointer; }
.a11y-close:hover { background: var(--ink); color: var(--bg); }

.a11y-body { padding: 8px 16px 16px; }
.a11y-group { padding: 14px 0; border-bottom: 1px solid var(--line); }
.a11y-group:last-child { border-bottom: none; }
.a11y-group-label { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); margin: 0 4px 10px; font-weight: 500; }

.a11y-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt {
  padding: 12px 10px; border-radius: 12px;
  border: 1.5px solid var(--line); background: var(--bg);
  display: flex; flex-direction: column; gap: 6px; align-items: flex-start;
  cursor: pointer; transition: all .25s; text-align: left;
}
.a11y-opt:hover { border-color: var(--yo-orange); background: rgba(235,146,34,0.04); }
.a11y-opt.active { border-color: var(--yo-orange); background: rgba(235,146,34,0.12); }
.a11y-opt .icon { width: 28px; height: 28px; display: grid; place-items: center; color: var(--yo-blue); }
.a11y-opt.active .icon { color: var(--yo-orange); }
.a11y-opt .name { font-size: 13px; font-weight: 600; line-height: 1.2; }
.a11y-opt .desc { font-size: 11px; color: var(--ink-3); line-height: 1.3; }

.a11y-slider { display: flex; align-items: center; gap: 12px; padding: 6px 4px; }
.a11y-slider .lbl { flex: 1; font-size: 13px; font-weight: 500; }
.a11y-slider .val { font-family: var(--font-mono); font-size: 12px; color: var(--ink-3); min-width: 40px; text-align: right; }
.a11y-slider .stepper { display: flex; gap: 4px; }
.a11y-slider button { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--line-strong); background: var(--bg); color: var(--ink); font-size: 16px; font-weight: 600; cursor: pointer; }
.a11y-slider button:hover { background: var(--yo-orange); color: #fff; border-color: var(--yo-orange); }

.a11y-reset { width: 100%; padding: 12px; border-radius: 12px; border: 1px solid var(--line); background: transparent; color: var(--ink-2); cursor: pointer; font-weight: 500; font-size: 13px; transition: all .3s; margin-top: 10px; }
.a11y-reset:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }

/* Skip to content */
.skip-link { position: fixed; top: -100px; left: 16px; background: var(--ink); color: var(--bg); padding: 12px 18px; border-radius: 8px; z-index: 99999; transition: top .2s; font-weight: 600; }
.skip-link:focus { top: 16px; }

@media (max-width: 480px) {
  .a11y-panel { width: calc(100vw - 16px); left: 8px; bottom: 8px; }
  .a11y-fab { bottom: 16px; left: 16px; width: 54px; height: 54px; }
}
