body.font-small,
body.font-medium,
body.font-large,
h1, h2, h3, h4, h5, h6 {
  transition: none !important;
}

body.font-small { font-size: 1rem !important; }
body.font-medium { font-size: 1.1rem !important; }
body.font-large { font-size: 1.25rem !important; }

body.font-medium p,
body.font-medium small,
body.font-medium label,
body.font-medium legend,
body.font-medium .form-label,
body.font-medium .form-text,
body.font-medium .text-muted,
body.font-medium .accordion-button,
body.font-medium .accordion-body,
body.font-medium .list-group-item,
body.font-medium .nav-link,
body.font-medium th,
body.font-medium td,
body.font-medium li,
body.font-medium span,
body.font-medium div,
body.font-large p,
body.font-large small,
body.font-large label,
body.font-large legend,
body.font-large .form-label,
body.font-large .form-text,
body.font-large .text-muted,
body.font-large .accordion-button,
body.font-large .accordion-body,
body.font-large .list-group-item,
body.font-large .nav-link,
body.font-large th,
body.font-large td,
body.font-large li,
body.font-large span,
body.font-large div {
  font-size: inherit !important;
  line-height: inherit !important;
}

body.font-medium .accordion *,
body.font-large .accordion * {
  font-size: inherit !important;
  line-height: inherit !important;
}

body.font-medium input,
body.font-large input,
body.font-medium select,
body.font-large select,
body.font-medium textarea,
body.font-large textarea {
  font-size: inherit !important;
}

body.font-medium input::placeholder,
body.font-large input::placeholder,
body.font-medium textarea::placeholder,
body.font-large textarea::placeholder {
  font-size: inherit !important;
}

body.font-small h1,
body.font-small h2,
body.font-small h3,
body.font-small h4,
body.font-small h5,
body.font-small h6,
body.font-medium h1,
body.font-medium h2,
body.font-medium h3,
body.font-medium h4,
body.font-medium h5,
body.font-medium h6,
body.font-large h1,
body.font-large h2,
body.font-large h3,
body.font-large h4,
body.font-large h5,
body.font-large h6 {
  line-height: 1.3;
  transition: none !important;
}

body.font-medium h1.h1,
body.font-medium h1 { font-size: 2.75rem !important; }
body.font-medium h2.h2,
body.font-medium h2 { font-size: 2.2rem !important; }
body.font-medium h3.h3,
body.font-medium h3 { font-size: 1.95rem !important; }
body.font-medium h4.h4,
body.font-medium h4 { font-size: 1.7rem !important; }
body.font-medium h5.h5,
body.font-medium h5 { font-size: 1.15rem !important; }

body.font-large h1.h1,
body.font-large h1 { font-size: 3rem !important; }
body.font-large h2.h2,
body.font-large h2 { font-size: 2.4rem !important; }
body.font-large h3.h3,
body.font-large h3 { font-size: 2.15rem !important; }
body.font-large h4.h4,
body.font-large h4 { font-size: 1.9rem !important; }
body.font-large h5.h5,
body.font-large h5 { font-size: 1.3rem !important; }

body.font-medium .display-1 { font-size: 5rem !important; }
body.font-medium .display-2 { font-size: 4.8rem !important; }
body.font-medium .display-3 { font-size: 3.6rem !important; }
body.font-medium .display-4 { font-size: 3rem !important; }

body.font-large .display-1 { font-size: 5.5rem !important; }
body.font-large .display-2 { font-size: 5.1rem !important; }
body.font-large .display-3 { font-size: 4rem !important; }
body.font-large .display-4 { font-size: 3.4rem !important; }


body.font-medium .btn:not(.btn-lg) {
  font-size: inherit !important;
}
body.font-large .btn:not(.btn-lg) {
  font-size: inherit !important;
}

body.font-medium .btn-lg {
  --bs-btn-font-size: 1.35rem !important;
}
body.font-large .btn-lg {
  --bs-btn-font-size: 1.55rem !important;
}

.high-contrast {
  background-color: #000 !important;
  color: #ff0 !important;
}

.high-contrast a,
.high-contrast .nav-link {
  color: #ff0 !important;
  text-decoration: none !important;
}

.high-contrast a:hover,
.high-contrast .nav-link:hover {
  color: #fff !important;
  text-decoration: none !important;
}

.high-contrast .list-group-item,
.high-contrast .accordion-button,
.high-contrast .accordion-body,
.high-contrast .form-control,
.high-contrast .btn,
.high-contrast .dropdown-menu {
  background-color: #000 !important;
  color: #ff0 !important;
  border-color: #ff0 !important;
}

.high-contrast .btn:hover,
.high-contrast .btn:focus {
  background-color: #ff0 !important;
  color: #000 !important;
  border-color: #ff0 !important;
}

.high-contrast table,
.high-contrast th,
.high-contrast td {
  background-color: #000 !important;
  color: #ff0 !important;
  border-color: #ff0 !important;
}

.high-contrast input,
.high-contrast select,
.high-contrast textarea {
  background-color: #000 !important;
  color: #ff0 !important;
  border: 1px solid #ff0 !important;
}

.high-contrast input::placeholder,
.high-contrast textarea::placeholder {
  color: #ccc !important;
}

.high-contrast .alert {
  background-color: #000 !important;
  color: #ff0 !important;
  border-color: #ff0 !important;
}

.navbar.bg-light,
.navbar.bg-white {
  background-color: #f8f9fa !important;
  color: #000 !important;
}

.navbar.bg-light .nav-link,
.navbar.bg-light .navbar-brand,
.navbar.bg-light .btn {
  color: #000 !important;
}

.high-contrast .navbar.bg-light,
.high-contrast .navbar.bg-white {
  background-color: #f8f9fa !important;
  color: #000 !important;
}

.high-contrast .navbar.bg-light .nav-link,
.high-contrast .navbar.bg-light .navbar-brand,
.high-contrast .navbar.bg-light .btn {
  color: #000 !important;
}

.accessibility-controls .btn,
.btn.accessibility-font {
  background-color: #fff !important;
  color: #000 !important;
  border: 1px solid #ccc !important;
}

.high-contrast .accessibility-controls .btn,
.high-contrast .btn.accessibility-font {
  background-color: #ff0 !important;
  color: #000 !important;
  border-color: #ff0 !important;
}

.high-contrast .btn.accessibility-font:hover {
  background-color: #000 !important;
  color: #ff0 !important;
}


.high-contrast .accordion-button {
  background-color: #000 !important;
  color: #ff0 !important;
  border-color: #ff0 !important;
  box-shadow: none !important;
}

.high-contrast .accordion-button:not(.collapsed) {
  background-color: #000 !important;
  color: #ff0 !important;
  border-color: #ff0 !important;
}


.high-contrast .accordion-button::after {
  filter: invert(82%) sepia(99%) saturate(2564%) hue-rotate(16deg)
          brightness(106%) contrast(102%) !important;
}


.high-contrast .accordion-item {
  border: 1px solid #ff0 !important;
}

.high-contrast .accordion-body {
  background-color: #000 !important;
  color: #ff0 !important;
  border-top: 1px solid #ff0 !important;
}


:focus-visible {
  outline: none !important;
}

.high-contrast :focus-visible {
  outline: 3px solid #ff0 !important;
  outline-offset: 2px;
}

.high-contrast select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #000 !important;
  color: #ff0 !important;
  border: 1px solid #ff0 !important;
  background-image: url("data:image/svg+xml;utf8,<svg fill='yellow' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M1.5 5.5l6.5 6 6.5-6H1.5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 1rem;
  padding-right: 2rem;
}

.high-contrast select:focus {
  outline: 3px solid #ff0 !important;
  outline-offset: 2px;
}
