/* UI/UX enhancements: focus, layout, links, cards */

/* Keyboard/screen reader focus – visible only when tabbing */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #0891b2;
  outline-offset: 2px;
  border-radius: 0.25rem;
}

.fps-nav-link:focus-visible,
.fps-cta-btn:focus-visible,
.mobile-nav-link:focus-visible {
  outline: 2px solid #0891b2;
  outline-offset: 2px;
  border-radius: 0.375rem;
}

footer a:focus-visible,
.bg-neutral-900 a:focus-visible {
  outline-color: rgba(255, 255, 255, 0.9);
}

.fps-btn-primary:focus-visible,
.fps-btn-secondary:focus-visible {
  outline: 2px solid #0891b2;
  outline-offset: 2px;
}

/* Sticky footer: main fills space so footer stays at bottom */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1 0 auto;
}

/* Link affordance: underline on hover for text links (when not already styled) */
.prose a:not(.fps-btn-primary):not(.fps-btn-secondary):not([class*="btn"]):hover,
.text-neutral-700 a:hover,
.text-neutral-600 a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Card hover: subtle lift and shadow for clickable cards */
.fps-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
}

.fps-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

/* Smooth scroll for in-page links */
html {
  scroll-behavior: smooth;
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .fps-card,
  .fps-card:hover,
  a,
  button {
    transition-duration: 0.01ms;
  }
}
