/* ==========================================================================
   ACCESSIBILITY STYLES
   ========================================================================== */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  white-space: nowrap;
}

/* Focus styles for keyboard navigation */
a:focus, 
button:focus, 
[role="button"]:focus,
.m_faq:focus {
  outline: 2px solid #2479ff;
  outline-offset: 2px;
}

/* Improved contrast for better readability */
.a_cardtitle {
  color: #0050c8; /* Darker blue for better contrast */
}

.a_text--featuredescription,
.a_carddescription,
.a_faqanswer,
.a_text--faqsubtitle {
  color: #5a6783; /* Darker gray for better contrast on light backgrounds */
}

/* Ensure proper spacing for touch targets */
.a_navlink,
.a_footer-link,
.a_legal-link {
  padding: 8px;
  display: inline-block;
}

/* Improved focus indication for FAQ items */
.m_faq[data-wf--m_faq--variant="open"] {
  border-color: #2479ff;
}

/* Skip to content link (hidden until focused) */
.skip-to-content {
  position: absolute;
  left: -9999px;
  z-index: 999;
  padding: 1em;
  background-color: white;
  color: #2479ff;
  text-decoration: none;
}

.skip-to-content:focus {
  left: 50%;
  transform: translateX(-50%);
  top: 0;
}

/* ==========================================================================
   HOVER ANIMATIONS
   ========================================================================== */

/* Main button hover animation */
.a_button {
  transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

.a_button:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(32, 103, 248, 0.3);
}

.a_button:active {
  transform: translateY(-1px);
  box-shadow: 0 3px 6px rgba(32, 103, 248, 0.2);
}

/* Light button hover animation */
.a_button--light {
  transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

.a_button--light:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(32, 103, 248, 0.15);
  background-color: #f8f9ff;
}

.a_button--light:active {
  transform: translateY(-1px);
  box-shadow: 0 3px 6px rgba(32, 103, 248, 0.1);
}

/* Navigation link hover animation */
.a_navlink {
  position: relative;
  transition: color 0.3s ease;
}

.a_navlink:after {
  content: '';
  position: absolute;
  width: 0;
  height: 2px;
  bottom: -2px;
  left: 0;
  background-color: #2067f8;
  transition: width 0.3s ease;
}

.a_navlink:hover {
  color: #2067f8;
}

.a_navlink:hover:after {
  width: 100%;
}

/* Footer and legal links hover animation */
.a_footer-link,
.a_legal-link {
  transition: color 0.3s ease, transform 0.3s ease;
}

.a_footer-link:hover,
.a_legal-link:hover {
  color: #2067f8;
  transform: translateX(3px);
}

/* Social icon hover animation */
.a_icon--social {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.a_icon--social:hover {
  transform: translateY(-3px) scale(1.1);
  opacity: 0.8;
}

.a_icon--social:active {
  transform: translateY(-1px) scale(1.05);
}

/* FAQ accordion hover animation */
.m_faq {
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.m_faq:hover {
  background-color: #f8f9ff;
  box-shadow: 0 4px 8px rgba(32, 103, 248, 0.1);
}

/* Card hover animation */
.m_card {
  transition: transform 0.3s ease, box-shadow 0.4s ease;
}

.m_card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 24px rgba(32, 103, 248, 0.15);
}