

*:focus {
  outline: none; 
}

*:focus-visible {
  outline: 3px solid #1A56DB;
  outline-offset: 2px;
  border-radius: 4px; 
}

.stats-band *:focus-visible,
.cta-banner *:focus-visible,
footer *:focus-visible,
.course-hero *:focus-visible,
.contact-hero *:focus-visible {
  outline-color: #ffffff;
}

.dash-sidebar *:focus-visible,
.sidebar *:focus-visible,
.player-sidebar *:focus-visible {
  outline-color: #93C5FD; 
}

.btn:focus-visible,
button:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid #1A56DB;
  outline-offset: 3px;
  border-radius: 10px;
}

.form-control:focus-visible,
.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #1A56DB;
  outline-offset: 1px;
}

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
  outline: 3px solid #1A56DB;
  outline-offset: 2px;
}

input[type="range"]:focus-visible {
  outline: 3px solid #1A56DB;
  outline-offset: 3px;
}

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

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

.skip-link {
  position: fixed;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99999;
  padding: 0.85rem 1.75rem;
  background: #1A56DB;
  color: #ffffff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  border-radius: 0 0 10px 10px;
  text-decoration: none;
  white-space: nowrap;
  transition: top 0.2s ease;
  box-shadow: 0 4px 16px rgba(26, 86, 219, 0.45);
}

.skip-link:focus,
.skip-link:focus-visible {
  top: 0;
  outline: 3px solid #ffffff;
  outline-offset: 2px;
}

.hamburger,
.navbar-toggle,
.hamburger-btn {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}

.social-btn {
  min-width: 44px;
  min-height: 44px;
}

.nav-user-btn,
.user-avatar-sm {
  min-width: 44px;
  min-height: 44px;
}

.topbar-icon-btn {
  min-width: 44px;
  min-height: 44px;
}

.password-toggle {
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-btn {
  min-width: 44px;
  min-height: 44px;
}

.filter-option,
.checkbox-group,
.interest-checkbox {
  min-height: 44px;
  display: flex;
  align-items: center;
}

.tab-btn {
  min-height: 44px;
}

.accessible-pink {
  color: #C10A6B; 
}

.accessible-muted {
  color: #64748B; 
}

.navbar .logo-sub,
.navbar .logo-tagline,
.nav-logo-text small {
  color: #64748B; 
}

.filter-count {
  color: #64748B;
  background: #E2E8F0;
}

.cat-count {
  color: #64748B;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  
  .hero-img-wrap,
  .hero-eyebrow .dot,
  .hero-eyebrow .dot::after,
  .page-loader-spinner,
  .spinner,
  .spinner-sm,
  .skeleton,
  .progress-fill,
  .nav-logo-icon,
  .logo-icon {
    animation: none !important;
  }
}

.form-error:not(.hidden),
[role="alert"]:not(.hidden),
[aria-live]:not(.hidden) {
  display: block !important;
}

.alert {
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  line-height: 1.55;
}

.modal-overlay[style*="flex"],
.modal-overlay.open,
.ov.open {
  
  background: rgba(15, 23, 42, 0.65);
}

.modal {
  outline: 2px solid transparent; 
}

.modal:focus-visible {
  outline: 3px solid #1A56DB;
  outline-offset: 2px;
}

