/* Accessibility Fixes - Color Contrast */

/* Improve text contrast - ensure minimum 4.5:1 ratio */
.elementor-widget-text-editor p,
.elementor-widget-text-editor span,
.custom-text__wrapper,
p.p1,
p.p1 span,
.elementor-element p {
  color: #333333 !important;
}

/* Ensure link contrast */
a:not(.elementor-button) {
  color: #0056b3;
}

a:not(.elementor-button):hover {
  color: #003d80;
}

/* Fix light gray text */
.text-gray,
.text-muted,
[style*="color: #999"],
[style*="color: #aaa"],
[style*="color: #bbb"],
[style*="color: #ccc"] {
  color: #595959 !important;
}

/* Improve placeholder contrast */
::placeholder {
  color: #666666 !important;
  opacity: 1;
}

/* Focus styles for keyboard navigation */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid #155EEF !important;
  outline-offset: 2px;
}

/* Skip link for accessibility */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: #155EEF;
  color: white;
  padding: 8px 16px;
  z-index: 10000;
  text-decoration: none;
}

.skip-link:focus {
  top: 0;
}

/* Hide page loading progress bar */
.uicore-progress-bar,
.uicore-page-loader,
e-page-transition {
  display: none !important;
}

/* Force hide any top loading bar */
body::before,
html::before,
.uicore-body-content::before {
  display: none !important;
}

/* Fix elementor invisible elements that don't animate in without JS */
.elementor-invisible {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Fix mobile header - prevent hamburger menu from dropping to new line */
@media (max-width: 1025px) {
  .uicore-navbar nav.elementor-container {
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
  }

  /* Only target the header branding, not the mobile menu branding */
  .uicore-navbar nav.elementor-container > .uicore-branding {
    flex-shrink: 1 !important;
    min-width: 0 !important;
    max-width: 50% !important;
  }

  .uicore-navbar nav.elementor-container > .uicore-branding img {
    max-width: 100% !important;
    height: auto !important;
  }

  .uicore-mobile-head-right {
    flex-shrink: 0 !important;
  }

  /* Fix mobile menu logo size */
  .uicore-navigation-wrapper .uicore-branding {
    width: auto !important;
    max-width: none !important;
    height: 40px !important;
  }

  .uicore-navigation-wrapper .uicore-branding img {
    width: auto !important;
    height: 100% !important;
    max-height: 40px !important;
    position: relative !important;
  }
}
