/**
 * Shared accessibility and motion preferences for public and secure areas.
 */

:root {
  --ltdwj-focus-color: #3498db;
  --ltdwj-focus-offset: 2px;
}

.public-page a:focus-visible,
.public-page button:focus-visible,
.public-page input:focus-visible,
.public-page select:focus-visible,
.public-page textarea:focus-visible,
.public-page summary:focus-visible,
.secure-page a:focus-visible,
.secure-page button:focus-visible,
.secure-page input:focus-visible,
.secure-page select:focus-visible,
.secure-page textarea:focus-visible {
  outline: 3px solid var(--ltdwj-focus-color);
  outline-offset: var(--ltdwj-focus-offset);
}

.public-mobile-menu-links a:focus-visible,
.secure-mobile-menu-link:focus-visible,
.public-header-login:focus-visible,
.secure-mobile-toggle:focus-visible,
.public-menu-toggle:focus-visible {
  outline: 3px solid var(--ltdwj-focus-color);
  outline-offset: var(--ltdwj-focus-offset);
}

.public-field-error {
  color: #ffb4b4;
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  margin-top: 0.35rem;
}

.public-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.public-form-field label {
  font-weight: 700;
}

.public-form-field input[aria-invalid="true"],
.public-form-field select[aria-invalid="true"],
.public-form-field textarea[aria-invalid="true"] {
  border-color: #ff6b6b;
}

.public-hero-media img,
.public-map-layout img {
  height: auto;
  max-width: 100%;
}

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

  .nav-link.nav-anim {
    animation: none !important;
  }

  .secure-mobile-menu,
  .public-mobile-menu {
    transition: none !important;
  }
}
