:root {
  --aux-a11y-accent: #b1001e;
  --aux-a11y-panel-bg: #ffffff;
  --aux-a11y-panel-text: #1b1d24;
  --aux-a11y-panel-muted: #60667a;
  --aux-a11y-panel-border: #d8deea;
  --aux-a11y-panel-soft: #f4f7fc;
}

.aux-a11y-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999999;
  background: #fff;
  color: #000;
  padding: 10px 14px;
}

.aux-a11y-skip-link:focus,
.aux-a11y-skip-link:focus-visible {
  left: 10px;
  top: 10px;
  outline: 3px solid var(--aux-a11y-accent);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--aux-a11y-accent);
  outline-offset: 2px;
}

.aux-a11y-strong-focus :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--aux-a11y-accent) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.95), 0 0 0 7px rgba(0, 0, 0, 0.45) !important;
}

.aux-a11y-strong-focus :where(a, button, input, select, textarea, [tabindex]):focus {
  outline: 3px solid var(--aux-a11y-accent) !important;
  outline-offset: 3px !important;
}

.aux-a11y-widget {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 100000;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.4;
}

.aux-a11y-widget,
.aux-a11y-widget * {
  box-sizing: border-box;
}

.aux-a11y-launcher {
  width: 56px;
  height: 56px;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, #cf1234 0%, var(--aux-a11y-accent) 80%);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(177, 0, 30, 0.45);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.16s ease, box-shadow 0.2s ease;
}

.aux-a11y-launcher:hover {
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 11px 26px rgba(177, 0, 30, 0.5);
}

.aux-a11y-launcher__icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.aux-a11y-launcher__icon.dashicons {
  width: 34px;
  height: 34px;
  font-size: 34px;
  line-height: 1;
  color: #fff;
}

.aux-a11y-launcher__icon.dashicons::before {
  width: 34px;
  height: 34px;
  font-size: 34px;
  line-height: 34px;
}

.aux-a11y-panel {
  position: absolute;
  right: 0;
  bottom: 68px;
  width: 340px;
  max-width: calc(100vw - 24px);
  max-height: min(76vh, 620px);
  overflow: auto;
  background: var(--aux-a11y-panel-bg);
  color: var(--aux-a11y-panel-text);
  border: 1px solid var(--aux-a11y-panel-border);
  border-radius: 16px;
  box-shadow: 0 26px 50px rgba(16, 23, 40, 0.28);
}

.aux-a11y-panel__header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 14px 14px 12px;
  margin: 0;
  border-bottom: 1px solid var(--aux-a11y-panel-border);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.aux-a11y-panel__heading h2 {
  margin: 0 !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 17px !important;
  line-height: 1.2;
  font-weight: 700 !important;
  letter-spacing: 0;
  color: var(--aux-a11y-panel-text);
}

.aux-a11y-close {
  border: 1px solid var(--aux-a11y-panel-border) !important;
  border-radius: 10px;
  background: #fff !important;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  padding: 0 !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 22px !important;
  line-height: 1 !important;
  cursor: pointer;
  color: #1b1d24 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none !important;
}

.aux-a11y-panel__body {
  padding: 12px;
  display: grid;
  gap: 10px;
}

.aux-a11y-group {
  border-radius: 8px;
  padding: 10px;
}

.aux-a11y-group__title {
  margin: 0 0 8px !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase;
  font-weight: 700 !important;
  color: #4a5269;
}

.aux-a11y-group__controls {
  display: grid;
  gap: 8px;
}

.aux-a11y-control {
  width: 100%;
  min-height: 44px;
  text-align: left;
  border: 1px solid #cdd5e5 !important;
  border-radius: 7px;
  background: #fff !important;
  color: #1e2538 !important;
  padding: 10px 12px !important;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  box-shadow: none !important;
  text-transform: none !important;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.aux-a11y-control:hover {
  border-color: #b7c2d8 !important;
  background: #fdfdff !important;
}

.aux-a11y-control--font {
  font-weight: 500;
}

.aux-a11y-control__state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid #d2dae8;
  background: #f3f6fb;
  color: #5a6278;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
}

.aux-a11y-control__state::before {
  content: "Off";
}

.aux-a11y-control[aria-pressed="true"] {
  border-color: #be2843 !important;
  color: #8f0019 !important;
  background: #fff2f5 !important;
}

.aux-a11y-control[aria-pressed="true"] .aux-a11y-control__state {
  border-color: #be2843 !important;
  color: #fff !important;
  background: var(--aux-a11y-accent) !important;
}

.aux-a11y-control[aria-pressed="true"] .aux-a11y-control__state::before {
  content: "On";
}

.aux-a11y-panel__language {
  margin: 0 12px 12px;
  padding: 0 10px 10px;
  border-radius: 8px;
}

.aux-a11y-panel__language h3 {
  margin: 0 0 8px;
}

.aux-a11y-gtranslate-wrapper {
  width: 100%;
}

.aux-a11y-gtranslate-wrapper .gt_switcher {
  width: 100% !important;
  max-width: none !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  color: #1e2538 !important;
  overflow: visible !important;
}

.aux-a11y-gtranslate-wrapper .gt_switcher,
.aux-a11y-gtranslate-wrapper .gt_switcher * {
  box-sizing: border-box;
}

.aux-a11y-gtranslate-wrapper .gt_switcher .gt_selected {
  width: 100% !important;
  background: transparent !important;
}

.aux-a11y-gtranslate-wrapper .gt_switcher .gt_selected a {
  width: 100% !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  border: 1px solid #cdd5e5 !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: #1e2538 !important;
  box-shadow: none !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.aux-a11y-gtranslate-wrapper .gt_switcher .gt_selected a::after {
  margin-left: auto;
}

.aux-a11y-gtranslate-wrapper .gt_switcher img {
  width: 24px !important;
  height: 18px !important;
  flex: 0 0 auto;
  object-fit: cover;
}

.aux-a11y-gtranslate-wrapper .gt_switcher .gt_option {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  max-height: 220px !important;
  margin-top: 8px !important;
  border: 1px solid #cdd5e5 !important;
  border-radius: 7px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow-y: auto !important;
}

.aux-a11y-gtranslate-wrapper .gt_switcher .gt_option a {
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 9px 12px !important;
  border: 0 !important;
  background: #fff !important;
  color: #3f4658 !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}

.aux-a11y-gtranslate-wrapper .gt_switcher .gt_option a:hover,
.aux-a11y-gtranslate-wrapper .gt_switcher .gt_option a:focus {
  background: #f6f8fc !important;
  color: #1e2538 !important;
}

@media (max-width: 680px) {
  .aux-a11y-widget {
    right: 12px;
    bottom: 12px;
  }

  .aux-a11y-panel {
    right: -6px;
    bottom: 64px;
    width: min(420px, calc(100vw - 12px));
    max-height: min(78vh, 720px);
    border-radius: 14px;
  }

  .aux-a11y-panel__heading h2 {
    font-size: 20px;
  }

  .aux-a11y-control {
    font-size: 15px;
  }
}

@media (max-width: 520px) {
  .aux-a11y-widget {
    right: 10px;
    bottom: 10px;
  }

  .aux-a11y-panel {
    position: fixed;
    right: 8px;
    left: 8px;
    bottom: 72px;
    width: auto;
    max-width: none;
    max-height: min(80vh, 760px);
  }
}

.aux-a11y-font-1,
.aux-a11y-font-2 {
  --aux-a11y-font-scale: 1;
}

.aux-a11y-font-1 {
  --aux-a11y-font-scale: 1.125;
}

.aux-a11y-font-2 {
  --aux-a11y-font-scale: 1.25;
}

.aux-a11y-font-1 body,
.aux-a11y-font-2 body {
  font-size: calc(100% * var(--aux-a11y-font-scale));
}

/* Ensure very small UI/meta text grows with the main scale too. */
.aux-a11y-font-1 :where(.post__meta, .b-breadcrumbs, .copyright, .widget, .menu a, .main-menu a, .sub-menu a),
.aux-a11y-font-2 :where(.post__meta, .b-breadcrumbs, .copyright, .widget, .menu a, .main-menu a, .sub-menu a) {
  font-size: calc(1em * var(--aux-a11y-font-scale));
}

.aux-a11y-contrast-high {
  --aux-hc-bg: #111111;
  --aux-hc-bg-soft: #1a1a1a;
  --aux-hc-surface: #1f1f1f;
  --aux-hc-text: #f5f5f5;
  --aux-hc-text-soft: #e2e2e2;
  --aux-hc-link: #ffd54f;
  --aux-hc-border: #d0d0d0;
}

.aux-a11y-contrast-high body,
.aux-a11y-contrast-high .row-fluid--socials,
.aux-a11y-contrast-high .row-fluid--menu,
.aux-a11y-contrast-high .main-footer,
.aux-a11y-contrast-high .dark-section,
.aux-a11y-contrast-high .page-heading--no-img {
  background-color: var(--aux-hc-bg) !important;
  color: var(--aux-hc-text) !important;
}

.aux-a11y-contrast-high p,
.aux-a11y-contrast-high li,
.aux-a11y-contrast-high span,
.aux-a11y-contrast-high label,
.aux-a11y-contrast-high time,
.aux-a11y-contrast-high .post__meta,
.aux-a11y-contrast-high .widget-title,
.aux-a11y-contrast-high .b-breadcrumbs__link {
  color: var(--aux-hc-text-soft) !important;
}

.aux-a11y-contrast-high h1,
.aux-a11y-contrast-high h2,
.aux-a11y-contrast-high h3,
.aux-a11y-contrast-high h4,
.aux-a11y-contrast-high h5,
.aux-a11y-contrast-high h6,
.aux-a11y-contrast-high .page-heading__title {
  color: var(--aux-hc-text) !important;
}

.aux-a11y-contrast-high a,
.aux-a11y-contrast-high a:visited,
.aux-a11y-contrast-high .main-menu > li > a,
.aux-a11y-contrast-high .sub-menu a,
.aux-a11y-contrast-high .submenu a {
  color: var(--aux-hc-link) !important;
}

.aux-a11y-contrast-high a:hover,
.aux-a11y-contrast-high a:focus,
.aux-a11y-contrast-high a:focus-visible {
  color: #fff4bf !important;
}

.aux-a11y-contrast-high .main-menu > li > a,
.aux-a11y-contrast-high .sub-menu a,
.aux-a11y-contrast-high .submenu a,
.aux-a11y-contrast-high .widget ul li a,
.aux-a11y-contrast-high .post,
.aux-a11y-contrast-high .widget ul li,
.aux-a11y-contrast-high table,
.aux-a11y-contrast-high table tr,
.aux-a11y-contrast-high .comment-form,
.aux-a11y-contrast-high .post-author,
.aux-a11y-contrast-high .post-comment,
.aux-a11y-contrast-high .post-comment--children {
  border-color: var(--aux-hc-border) !important;
}

.aux-a11y-contrast-high .main-menu > li > a,
.aux-a11y-contrast-high .sub-menu a,
.aux-a11y-contrast-high .submenu a,
.aux-a11y-contrast-high .widget,
.aux-a11y-contrast-high table tbody tr,
.aux-a11y-contrast-high .post-author,
.aux-a11y-contrast-high .post-comment .comment-wrapp,
.aux-a11y-contrast-high .post-comment--children .comment-wrapp,
.aux-a11y-contrast-high .widget_calendar table tbody tr,
.aux-a11y-contrast-high .widget_calendar table thead,
.aux-a11y-contrast-high .widget_calendar table tfoot {
  background-color: var(--aux-hc-surface) !important;
}

.aux-a11y-contrast-high .btn,
.aux-a11y-contrast-high button:not(.aux-a11y-launcher):not(.aux-a11y-close):not(.aux-a11y-control),
.aux-a11y-contrast-high input[type="submit"],
.aux-a11y-contrast-high .widget_search input[type="submit"] {
  background: var(--aux-hc-link) !important;
  color: #111 !important;
  border: 2px solid var(--aux-hc-link) !important;
  box-shadow: none !important;
}

.aux-a11y-contrast-high .btn:hover,
.aux-a11y-contrast-high button:not(.aux-a11y-launcher):not(.aux-a11y-close):not(.aux-a11y-control):hover,
.aux-a11y-contrast-high input[type="submit"]:hover {
  background: #fff4bf !important;
  color: #111 !important;
}

/* Keep accessibility panel legible and independent from site contrast theme. */
.aux-a11y-contrast-high .aux-a11y-panel {
  background: #ffffff !important;
  color: #1f1f1f !important;
  border-color: #d0d0d0 !important;
}

.aux-a11y-contrast-high .aux-a11y-panel__header h2,
.aux-a11y-contrast-high .aux-a11y-group__title,
.aux-a11y-contrast-high .aux-a11y-panel__language h3,
.aux-a11y-contrast-high .aux-a11y-close {
  color: #1f1f1f !important;
}

.aux-a11y-contrast-high .aux-a11y-panel__header {
  background: #ffffff !important;
  border-color: #d0d0d0 !important;
}

.aux-a11y-contrast-high .aux-a11y-control {
  background: #ffffff !important;
  color: #1f1f1f !important;
  border-color: #cdd5e5 !important;
}

.aux-a11y-contrast-high .aux-a11y-control[aria-pressed="true"] {
  background: #fff2f5 !important;
  color: #8f0019 !important;
  border-color: #be2843 !important;
}

.aux-a11y-contrast-high .aux-a11y-control[aria-pressed="true"] .aux-a11y-control__state {
  background: var(--aux-a11y-accent) !important;
  color: #ffffff !important;
  border-color: #be2843 !important;
}

.aux-a11y-contrast-high input,
.aux-a11y-contrast-high textarea,
.aux-a11y-contrast-high select {
  background: #fff !important;
  color: #111 !important;
  border: 2px solid #666 !important;
}

/* Home page highlighted failures from Lighthouse: enforce readable foregrounds. */
.aux-a11y-contrast-high .services-links__column,
.aux-a11y-contrast-high .services-links,
.aux-a11y-contrast-high .service-blockquote,
.aux-a11y-contrast-high .widget-blockquote,
.aux-a11y-contrast-high .tile.effect-bubba {
  background-color: var(--aux-hc-surface) !important;
}

.aux-a11y-contrast-high .services-links__title,
.aux-a11y-contrast-high .services-links__column,
.aux-a11y-contrast-high .services-links__column p,
.aux-a11y-contrast-high .service-blockquote__text,
.aux-a11y-contrast-high .service-blockquote__author,
.aux-a11y-contrast-high .widget-blockquote .blockquote,
.aux-a11y-contrast-high .widget-blockquote blockquote,
.aux-a11y-contrast-high .blockquote-author__name,
.aux-a11y-contrast-high .blockquote-author__position,
.aux-a11y-contrast-high .tile__title,
.aux-a11y-contrast-high .tile__description,
.aux-a11y-contrast-high .tile p,
.aux-a11y-contrast-high .tile h1,
.aux-a11y-contrast-high .tile h2,
.aux-a11y-contrast-high .tile h3,
.aux-a11y-contrast-high .tile h4,
.aux-a11y-contrast-high .tile h5,
.aux-a11y-contrast-high .tile h6 {
  color: var(--aux-hc-text) !important;
  opacity: 1 !important;
}

.aux-a11y-contrast-high .tile.effect-bubba::before,
.aux-a11y-contrast-high .tile.effect-bubba::after {
  border-color: var(--aux-hc-border) !important;
}

.aux-a11y-contrast-high .tile.effect-bubba [class*="icon-"],
.aux-a11y-contrast-high .tile.effect-bubba .fa,
.aux-a11y-contrast-high .services-links [class*="icon-"],
.aux-a11y-contrast-high .services-links .fa,
.aux-a11y-contrast-high .service-blockquote .icon-quote-left {
  color: var(--aux-hc-link) !important;
  opacity: 1 !important;
}

.aux-a11y-contrast-high .tile.effect-bubba a,
.aux-a11y-contrast-high .services-links a,
.aux-a11y-contrast-high .service-blockquote a,
.aux-a11y-contrast-high .widget-blockquote a {
  color: var(--aux-hc-link) !important;
}

/* Tables: force readable cell text and stable backgrounds in high contrast mode. */
.aux-a11y-contrast-high table thead,
.aux-a11y-contrast-high table tfoot {
  background: #f2f2f2 !important;
}

.aux-a11y-contrast-high table thead th,
.aux-a11y-contrast-high table thead td,
.aux-a11y-contrast-high table tfoot th,
.aux-a11y-contrast-high table tfoot td {
  color: #111 !important;
}

.aux-a11y-contrast-high table tbody tr,
.aux-a11y-contrast-high table tbody tr:nth-child(even) {
  background: var(--aux-hc-surface) !important;
}

.aux-a11y-contrast-high table tbody td,
.aux-a11y-contrast-high table tbody th,
.aux-a11y-contrast-high table tbody td a,
.aux-a11y-contrast-high table tbody th a {
  color: var(--aux-hc-text) !important;
}

.aux-a11y-contrast-high table tbody tr:hover {
  background: #2a2a2a !important;
}

.aux-a11y-contrast-high table tbody tr:hover td,
.aux-a11y-contrast-high table tbody tr:hover th,
.aux-a11y-contrast-high table tbody tr:hover a {
  color: #ffffff !important;
}

/* Ghost/button variants: neutralize theme pseudo layers in high-contrast mode. */
.aux-a11y-contrast-high .btn::after,
.aux-a11y-contrast-high .btn::before,
.aux-a11y-contrast-high .btn--ghost::after,
.aux-a11y-contrast-high .btn--ghost::before {
  display: none !important;
  content: none !important;
}

.aux-a11y-contrast-high .btn,
.aux-a11y-contrast-high .btn--ghost,
.aux-a11y-contrast-high a.btn,
.aux-a11y-contrast-high a.btn--ghost {
  background: var(--aux-hc-link) !important;
  color: #111 !important;
  border: 2px solid #111 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Blockquote readability across all contexts. */
.aux-a11y-contrast-high blockquote,
.aux-a11y-contrast-high .blockquote,
.aux-a11y-contrast-high .blockquote--style-1 {
  background: var(--aux-hc-surface) !important;
  color: var(--aux-hc-text) !important;
  border-left: 4px solid var(--aux-hc-link) !important;
}

.aux-a11y-contrast-high blockquote::before,
.aux-a11y-contrast-high .blockquote::before {
  color: var(--aux-hc-link) !important;
}

.aux-a11y-underline-links a {
  text-decoration: underline !important;
}

.aux-a11y-reduced-motion *,
.aux-a11y-reduced-motion *::before,
.aux-a11y-reduced-motion *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}

@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;
  }
}
