/* Gaur Vision Group — accessibility layer.
 * Skip link, floating toolbar, high-contrast mode, reduced-motion respect. */

/* Skip to content — visible on keyboard focus */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: #1B4D3E; color: #ffffff; font-weight: 700; font-size: 1rem;
  padding: 12px 18px; border-radius: 0 0 10px 0; text-decoration: none;
  font-family: 'Segoe UI', Verdana, sans-serif;
}
.skip-link:focus, .skip-link:focus-visible { left: 0; outline: 3px solid #d9b64a; outline-offset: 2px; }

/* Floating toolbar */
#a11y-toolbar { position: fixed; left: 22px; bottom: 22px; z-index: 9980; font-family: 'Segoe UI', Verdana, sans-serif; }
#a11y-toolbar .a11y-btn {
  width: 56px; height: 56px; border-radius: 50%;
  background: #1B4D3E; color: #f3e6c0; border: 2px solid #d9b64a;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 24px rgba(10, 30, 20, .35);
}
#a11y-toolbar .a11y-btn:hover { transform: translateY(-2px); }
#a11y-toolbar .a11y-btn:focus-visible { outline: 3px solid #d9b64a; outline-offset: 3px; }
#a11y-toolbar .a11y-panel {
  position: absolute; left: 0; bottom: 66px; width: 230px;
  background: #ffffff; color: #1f2430; border: 1.5px solid #1B4D3E; border-radius: 14px;
  box-shadow: 0 14px 40px rgba(10, 30, 20, .28); padding: 14px 14px 12px;
}
#a11y-toolbar .a11y-panel[hidden] { display: none; }
#a11y-toolbar .a11y-title { font-weight: 700; margin: 0 0 10px; font-size: .95rem; }
#a11y-toolbar .a11y-row { display: flex; gap: 8px; margin-bottom: 10px; }
#a11y-toolbar .a11y-opt {
  flex: 1; padding: 8px 0; font-size: 1rem; font-weight: 700; border-radius: 10px;
  border: 1.5px solid #1B4D3E; background: #fff; color: #1B4D3E; cursor: pointer;
}
#a11y-toolbar .a11y-opt:hover { background: #EAF3EC; }
#a11y-toolbar .a11y-opt:focus-visible { outline: 3px solid #d9b64a; outline-offset: 2px; }
#a11y-toolbar .a11y-wide {
  display: block; width: 100%; margin: 0 0 8px; padding: 9px 10px; font-size: .88rem; font-weight: 600;
  border-radius: 10px; border: 1.5px solid #1B4D3E; background: #fff; color: #1B4D3E; cursor: pointer;
}
#a11y-toolbar .a11y-wide:hover { background: #EAF3EC; }
#a11y-toolbar .a11y-wide.on { background: #1B4D3E; color: #f3e6c0; }
#a11y-toolbar .a11y-wide:focus-visible { outline: 3px solid #d9b64a; outline-offset: 2px; }
#a11y-toolbar .a11y-note { font-size: .75rem; color: #5b6172; margin: 6px 0 0; }
@media (max-width: 480px) {
  #a11y-toolbar { left: 16px; bottom: 16px; }
}

/* High-contrast mode */
html.a11y-contrast body { background: #000000; color: #ffffff; }
html.a11y-contrast h1, html.a11y-contrast h2, html.a11y-contrast h3, html.a11y-contrast h4 { color: #ffe600; }
html.a11y-contrast .lead, html.a11y-contrast .card p, html.a11y-contrast .kicker { color: #ffffff; }
html.a11y-contrast .site-header, html.a11y-contrast .site-footer { background: #000000; border-top: 2px solid #ffffff; }
html.a11y-contrast .site-header { border-bottom: 2px solid #ffffff; border-top: none; }
html.a11y-contrast a { color: #ffe600; }
html.a11y-contrast .btn-gold { background: #ffe600; color: #000000; }
html.a11y-contrast .btn-outline { border-color: #ffffff; color: #ffffff; }
html.a11y-contrast .card { background: #000000; border-color: #ffffff; color: #ffffff; }
html.a11y-contrast section.tint-blue, html.a11y-contrast section.tint-warm { background: #000000; }
html.a11y-contrast .notice { background: #000000; border-color: #ffe600; }
html.a11y-contrast .quote { color: #ffffff; border-left-color: #ffe600; }
html.a11y-contrast .fee-table th { background: #000000; color: #ffe600; border: 1px solid #ffffff; }
html.a11y-contrast .fee-table td { border-color: #ffffff; }
html.a11y-contrast .fee-table tr:nth-child(even) td { background: #111111; }
html.a11y-contrast .form-note { color: #ffffff; }
html.a11y-contrast .foot-note, html.a11y-contrast .legal-note { color: #ffffff; }
html.a11y-contrast .site-footer h4 { color: #ffe600; }
html.a11y-contrast .rule { background: #ffe600; }
html.a11y-contrast :focus-visible { outline-color: #ffe600 !important; }

/* Reduced motion: honor the user's system setting everywhere */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001s !important; animation-iteration-count: 1 !important; transition-duration: 0.001s !important; }
}
