/* Lions Services - Custom styles */

/* Font assignments */
body {
  font-family: 'Open Sans', system-ui, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Quicksand', system-ui, sans-serif;
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Hero text shadow for readability over images */
.hero-text-shadow {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

/* Video hero — hide fallback image when video loads */
.hero-video-section video + img {
  display: none;
}

/* Ensure video covers hero area properly */
.hero-video-section video {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/* Overflow clip for sections (prevents middle-click scroll issues) */
section {
  overflow: clip;
}

/* Focus styles for accessibility (critical for vision-loss org) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #168726;
  outline-offset: 2px;
}

/* Skip-to-content link (screen reader / keyboard nav) */
.skip-to-content {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  padding: 0.5rem 1rem;
  background: #051362;
  color: white;
  font-weight: 600;
}
.skip-to-content:focus {
  left: 0;
}

/* Card hover effect */
.card-hover {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* Fade-in-up animation */
.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Mobile menu transition */
#mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
#mobile-menu.open {
  max-height: 100vh;
  display: block;
}

/* Auto-update copyright year */
[data-copyright-year] {
  /* JS will update this */
}

/* Respect reduced-motion preference (WCAG 2.3.3) */
@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;
  }
  .fade-in-up {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Braille dot decorative pattern — placed as pseudo-element on navy/green sections */
.braille-dots {
  position: relative;
}
.braille-dots::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 280px;
  opacity: 0.15;
  pointer-events: none;
  background-image: radial-gradient(circle, #fff 3px, transparent 3px);
  background-size: 18px 24px;
  mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
  -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}
.braille-dots-left::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 280px;
  opacity: 0.15;
  pointer-events: none;
  background-image: radial-gradient(circle, #fff 3px, transparent 3px);
  background-size: 18px 24px;
  mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
  -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}
