/**
 * @file
 * Accessibility enhancements for Caleb Walker Accounting.
 */

/* Visible keyboard focus — never remove without a replacement. */
:focus-visible {
  outline: 3px solid var(--cw-accent-dark, #b8873f);
  outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible,
.nav-link:focus-visible {
  outline: 3px solid var(--cw-accent-dark, #b8873f);
  outline-offset: 2px;
  box-shadow: none;
}

#main-content:focus {
  outline: none;
}

#main-content:focus-visible {
  outline: 3px solid var(--cw-accent-dark, #b8873f);
  outline-offset: -3px;
}

/* Skip link */
.skip-link.visually-hidden-focusable:focus,
.skip-link.visually-hidden-focusable:focus-visible {
  position: absolute !important;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1050;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.75rem 1.25rem;
  clip: auto;
  overflow: visible;
  white-space: nowrap;
  background: var(--cw-primary-dark, #1f5560);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 0.5rem 0.5rem;
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Required fields — supplement asterisk (not color alone) */
.form-required {
  font-weight: 700;
  color: #9a3412;
}

abbr[title] {
  text-decoration: underline dotted;
  cursor: help;
}

/* Gold accent is decorative only — never use for small text links */
.cw-accent-text {
  color: var(--cw-primary-dark);
}

/* High-contrast focus for teal buttons on teal backgrounds */
.cw-hero .btn:focus-visible,
.cw-contact-hero .btn:focus-visible,
.cw-cta .btn:focus-visible {
  outline-color: #fff;
  outline-offset: 3px;
}

/* High-contrast footer */
.site-footer,
.site-footer__bottom {
  background: linear-gradient(180deg, var(--cw-surface, #f7f4ef) 0%, #f3efe8 100%) !important;
  color: #2f3a3e;
}

.site-footer p,
.site-footer .content,
.site-footer__bottom p,
.site-footer__bottom .text-muted,
.cw-footer-tagline {
  color: #2f3a3e;
}

.site-footer .menu--footer .nav-link,
.site-footer__bottom .menu-item a,
.site-footer .nav-link {
  color: var(--cw-primary-dark, #1f5560) !important;
  border-right-color: rgba(42, 111, 122, 0.2) !important;
}

.site-footer .menu--footer .nav-link:hover,
.site-footer .menu--footer .nav-link:focus,
.site-footer__bottom .menu-item a:hover,
.site-footer__bottom .menu-item a:focus,
.site-footer .nav-link:hover,
.site-footer .nav-link:focus {
  color: var(--cw-primary, #2a6f7a) !important;
  text-decoration: underline;
}

.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-visible) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
