/* ADA Compliance CSS */

/* Screen reader only content */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}





/* High contrast mode support */
@media (prefers-contrast: high) {
  .header__title,
  .breadcrumb a,
  .tab a,
  .aToZLink {
    border: 1px solid currentColor;
  }
}

/* Reduced motion support */
@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;
  }
}

/* Color contrast improvements - WCAG AA compliant */
.breadcrumb-active {
  color: #1A1A1A !important;
  font-weight: bold;
  cursor: default !important;
  text-decoration: none !important;
}

.breadcrumb-not-active {
  color: #005577 !important; /* Darker blue for better contrast */
  text-decoration: underline;
}

.breadcrumb-not-active:hover,
.breadcrumb-not-active:focus {
  color: #505050 !important;
  text-decoration: none;
}

/* Fix low contrast issues */
.footer {
  color: #333 !important; /* Was #505050 - too light */
}

.resultText,
.resultLink p {
  color: #333 !important; /* Was #505050 - too light */
}

.spinner {
  color: #333 !important; /* Was #505050 - too light */
}

.accessDenied {
  color: #333 !important; /* Was #505050 - too light */
}

.tabsCount {
  color: #222 !important; /* Was #1A1A1A - improve contrast */
}

.tertiaryButton {
  color: #333 !important; /* Was #505050 - too light */
}

.alertWarning,
.alertDanger,
.alertInfo {
  color: #333 !important; /* Was #505050 - too light */
}

/* Disabled elements - ensure they still meet minimum contrast */
.disabledtab {
  color: #767676 !important; /* Was #dcdcdc - too light, now meets 3:1 ratio */
}

a.disabled {
  color: #767676 !important; /* Was #737373 - slightly improve */
}

.primaryButton:disabled,
.secondaryButton:disabled {
  color: #767676 !important; /* Was #dcdcdc - too light */
}

/* Button styling for converted elements - using attribute selectors for CSS modules */
button[class*="aToZLink"],
button[class*="aToZLink"].linkcolor {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer;
  font: inherit;
  font-size: 21px;
  text-decoration: none !important;
  color: #007398 !important;
  padding: 2px !important;
  margin: 2px !important;
  border-radius: 0 !important;
}

button[class*="aToZLink"]:hover,
button[class*="aToZLink"]:focus,
button[class*="aToZLink"].linkcolor:hover,
button[class*="aToZLink"].linkcolor:focus {
  color: #1A1A1A !important;
  text-decoration: underline !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Selected A-Z letter -  color and underline */
button[class*="aToZLink"][aria-current="page"],
button[class*="aToZLink"].disabledSelected,
.disabledSelected {
  color: #1A1A1A !important;
  text-decoration: underline !important;
  font-weight: bold;
  cursor: default;
  pointer-events: none;
}

/* Disabled A-Z letters - darker gray when no data */
button[class*="aToZLink"]:disabled,
button[class*="aToZLink"][disabled],
.disabled {
  color: #737373 !important;
  cursor: not-allowed;
  text-decoration: none !important;
  pointer-events: none;
}

button[class*="aToZLink"]:disabled:hover,
button[class*="aToZLink"]:disabled:focus,
button[class*="aToZLink"][disabled]:hover,
button[class*="aToZLink"][disabled]:focus,
.disabled:hover,
.disabled:focus {
  color: #737373 !important;
  text-decoration: none !important;
  cursor: not-allowed;
}

/* Search input button styling - center vertically */
button.icon_clear,
button.icon_search {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  margin: 0 2px;
}

button.icon_clear:focus,
button.icon_search:focus {
  outline: 2px solid #ff8200;
}

/* Center icons within search input */
.c_els_field_icon {
  top: 47% !important;
  transform: translateY(-50%) !important;
  overflow: visible !important;
  width: auto !important;
  height: auto !important;
}

/* Ensure icon content is not clipped */
.c_els_field_icon i,
.c_els_field_icon .fa {
  overflow: visible !important;
}

/* Tab button styling - like A-Z letters */
button[role="tab"],
button[role="tab"].linkcolor,
button[role="tab"].linkcoloractive,
.tab,
.activetab {
  background: none !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  cursor: pointer;
  font: inherit;
  text-decoration: none !important;
  padding: 8px 16px;
  margin: 0 4px;
  color: #1A1A1A !important;
}

/* Tab hover states - dark gray color and underline */
button[role="tab"]:hover,
button[role="tab"]:focus,
button[role="tab"].linkcolor:hover,
button[role="tab"].linkcolor:focus,
.tab:hover,
.tab:focus {
  color: #1A1A1A !important;
  text-decoration: underline !important;
  background: none !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Disabled/empty tabs - darker gray */
button[role="tab"]:disabled,
button[role="tab"][disabled],
.disabledtab {
  color: #B9B9B9 !important;
  cursor: not-allowed;
  opacity: 1;
  text-decoration: none !important;
}

button[role="tab"]:disabled:hover,
button[role="tab"]:disabled:focus,
button[role="tab"][disabled]:hover,
button[role="tab"][disabled]:focus,
.disabledtab:hover,
.disabledtab:focus {
  color: #B9B9B9 !important;
  text-decoration: none !important;
  cursor: not-allowed;
}

/* Selected tab - orange color and underline */
button[role="tab"][aria-selected="true"],
button[role="tab"][aria-selected="true"].linkcolor,
button[role="tab"][aria-selected="true"].linkcoloractive,
.activetab,
.activetab a {
  background: none !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: #007398 !important;
  text-decoration: underline !important;
  font-weight: bold;
}

/* Aggressive overrides for all tab-related elements */
[role="tablist"] button,
[role="tablist"] button *,
li[class*="tab"],
li[class*="tab"] *,
button[class*="linkcolor"],
button[class*="linkcolor"] * {
  background: none !important;
  border: 0 !important;
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Override focus styles for tabs only */
button[role="tab"]:focus {
  outline: 2px solid #007398 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 3px rgba(0, 115, 152, 0.3) !important;
  border: none !important;
  background: none !important;
}

/* Remove boxes on tab click/active state */
button[role="tab"]:active,
button[role="tab"].linkcolor:active,
button[role="tab"].linkcoloractive:active,
.tab:active,
.activetab:active {
  background: none !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  color: #eb6500 !important;
  text-decoration: underline !important;
}

/* Nuclear option - remove ALL borders from ALL tab states */
button[role="tab"],
button[role="tab"]:hover,
button[role="tab"]:focus,
button[role="tab"]:active,
button[role="tab"]:visited,
button[role="tab"][aria-selected="true"],
button[role="tab"][aria-selected="false"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-style: none !important;
  border-width: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  outline-style: none !important;
  outline-width: 0 !important;
  outline-color: transparent !important;
}

/* Skip link styling */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: #000;
  color: #fff;
  padding: 8px;
  text-decoration: none;
  z-index: 1000;
  border-radius: 4px;
}

/* Loading state accessibility */
[role="status"] {
  position: relative;
}

/* Form label improvements */
label {
  font-weight: bold;
  margin-bottom: 4px;
  display: block;
}

/* Fix double focus outlines on search input */
.c_els_field_input:focus,
input[type="text"]:focus,
input[type="search"]:focus {
  outline: none !important;
  box-shadow: none !important;
  border-color: #ff8200 !important;
}

/* Override general input focus for search inputs */
.c_els_field_wrap .c_els_field_input:focus,
.ewc_base_search_input input:focus {
  outline: none !important;
  box-shadow: none !important;
  border-color: #ff8200 !important;
}

/* Search input hover effect - orange border */
.c_els_field_input:hover,
.c_els_field_wrap:hover .c_els_field_input,
.ewc_base_search_input input:hover {
  border-color: #505050 !important;
}

/* Make search icons orange on textbox hover */
.c_els_field_wrap button.icon_clear:hover,
.c_els_field_wrap button.icon_search:hover,
.ewc_base_search_input:hover button.icon_clear,
.ewc_base_search_input:hover button.icon_search {
  color: #eb6500 !important;
}

/* Error message styling */
.error-message {
  color: #d32f2f;
  font-size: 0.875rem;
  margin-top: 4px;
}

/* Required field indicator */
.required::after {
  content: " *";
  color: #d32f2f;
}


/* Large text support */
@media (min-resolution: 192dpi) {
  body {
    font-size: 1.1em;
  }
}

/* Breadcrumb list styling - hide ordered list numbers */
.breadcrumb {
  list-style: none !important;
  padding-left: 0 !important;
}

.breadcrumb li {
  display: inline !important;
  list-style: none !important;
}

/* Additional contrast fixes for specific elements */
.credit {
  color: #333 !important; /* Improve footer credit text */
}

.fontSmall {
  color: #333 !important;
  font-size: 10pt !important; /* Increase from 8pt for better readability */
}

/* Ensure link colors meet contrast requirements */
a {
  color: #005577 !important; /* Darker blue for better contrast */
}

a:hover,
a:focus {
  color: #cc5500 !important; /* Darker orange for better contrast */
}

.tab a,
.activetab a,
li a,
.resultLink,
a.resultLink {
  color: #005577 !important;
}



/* Print styles for accessibility */
@media print {
  .skip-link,
  .sr-only {
    display: none !important;
  }
  
  a[href]:after {
    content: " (" attr(href) ")";
  }
  
  /* Ensure good contrast in print */
  * {
    color: #000 !important;
    background: #fff !important;
  }
}