/* WCAG 2.x Level AA — accessibility toolbar (navbar2) */

.navbar2-wcag {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-right: 8px;
}

.navbar2-wcag__group {
  display: flex;
  align-items: center;
  gap: 4px;
}

.navbar2-divider {
  border-right: 1px solid #ccc;
  margin: 0 12px;
  align-self: stretch;
  min-height: 24px;
}

.wcag-btn {
  padding: 0 4px;
  margin: 0 2px;
  min-width: 30px;
  height: 28px;
  border-radius: 4px;
  border: 2px solid transparent;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
}

.wcag-btn--text {
  background: #fff;
  color: #333;
}

.wcag-btn--contrast {
  background: #666;
  color: #fff;
}

.wcag-btn--contrast-wide {
  min-width: 34px;
}

.wcag-btn:hover,
.wcag-btn:focus {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.wcag-btn--active,
.wcag-btn[aria-pressed="true"] {
  box-shadow: inset 0 0 0 2px #014f25;
  border-color: #014f25;
}

.wcag-btn--text.wcag-btn--active,
.wcag-btn--text[aria-pressed="true"] {
  background: #e8f5e9;
  color: #014f25;
}

.wcag-btn--contrast.wcag-btn--active,
.wcag-btn--contrast[aria-pressed="true"] {
  background: #014f25;
  color: #fff;
}

/* Text resize — WCAG 2.x SC 1.4.4: gradual root scaling via custom property */
html.wcag-text-scaled {
  font-size: var(--wcag-text-scale, 100%);
}

/* High contrast mode — minimum 4.5:1 for normal text (WCAG AA) */
html.wcag-contrast-high {
  filter: none !important;
}

html.wcag-contrast-high body,
html.wcag-contrast-high main,
html.wcag-contrast-high section,
html.wcag-contrast-high .well,
html.wcag-contrast-high .well-footer,
html.wcag-contrast-high .bg-primary,
html.wcag-contrast-high .bg-white,
html.wcag-contrast-high .row,
html.wcag-contrast-high .container {
  background-color: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

html.wcag-contrast-high h1,
html.wcag-contrast-high h2,
html.wcag-contrast-high h3,
html.wcag-contrast-high h4,
html.wcag-contrast-high h5,
html.wcag-contrast-high h6,
html.wcag-contrast-high p,
html.wcag-contrast-high li,
html.wcag-contrast-high td,
html.wcag-contrast-high th,
html.wcag-contrast-high label,
html.wcag-contrast-high small,
html.wcag-contrast-high span {
  color: #fff !important;
}

html.wcag-contrast-high a,
html.wcag-contrast-high a:visited {
  color: #ff0 !important;
  text-decoration: underline !important;
}

html.wcag-contrast-high a:hover,
html.wcag-contrast-high a:focus {
  color: #000 !important;
  background-color: #ff0 !important;
}

html.wcag-contrast-high header,
html.wcag-contrast-high .header_container,
html.wcag-contrast-high .header_container2,
html.wcag-contrast-high div.navbar2,
html.wcag-contrast-high footer,
html.wcag-contrast-high .well-footer {
  background-color: #000 !important;
  color: #fff !important;
  border-bottom: 2px solid #fff !important;
}

html.wcag-contrast-high .sf-menu a,
html.wcag-contrast-high .navbar2-menu a,
html.wcag-contrast-high .navbar-brand h1,
html.wcag-contrast-high .navbar-brand small {
  color: #fff !important;
}

html.wcag-contrast-high .wcag-btn--text {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}

html.wcag-contrast-high .wcag-btn--contrast {
  background: #333 !important;
  color: #fff !important;
  border-color: #fff !important;
}

html.wcag-contrast-high .wcag-btn--active,
html.wcag-contrast-high .wcag-btn[aria-pressed="true"] {
  background: #ff0 !important;
  color: #000 !important;
  border-color: #ff0 !important;
  box-shadow: none !important;
}

html.wcag-contrast-high .btn,
html.wcag-contrast-high .btn-primary {
  background-color: #fff !important;
  color: #000 !important;
  border: 2px solid #fff !important;
}

html.wcag-contrast-high img,
html.wcag-contrast-high video {
  filter: contrast(1.15) !important;
}

html.wcag-contrast-high .navbar2-divider {
  border-right-color: #fff !important;
}

@media (max-width: 991.9999px) {
  .navbar2-wcag {
    gap: 4px;
    margin-right: 4px;
  }

  .wcag-btn {
    min-width: 26px;
    height: 26px;
    font-size: 0.85rem;
    padding: 0 2px;
  }

  .wcag-btn--contrast-wide {
    min-width: 30px;
  }
}
