:root {
  --acc_color_1: #000;
  --acc_color_2: #fff;
  --border_radius: 25px;
}

.hidden {
  display: none !important;
}

#accessibility-modal,
#accessibility-modal * {
  transition: all 0.3s ease 0s;
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
}

#accessibility-modal {
  position: fixed;
  top: 20vh;
  left: 0;
  width: 100%;
  height: auto;
  background: var(--acc_color_2);
  z-index: 999999;
  justify-content: center;
  border-radius: 0 var(--border_radius) var(--border_radius) 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  overflow: clip;
}

#accessibility-modal #closeBtn {
  position: absolute;
  width: 50px;
  height: 50px;
  border-radius: var(--border_radius);
  background: var(--acc_color_2);
  cursor: pointer;
  overflow: clip;
  border: none;
  z-index: 999999;
}

#accessibility-modal.left #closeBtn {
  top: 0;
  right: 0;
  margin: 15px 0;
}

#accessibility-modal.right #closeBtn {
  top: 0;
  left: 0;
  margin: 15px;
}

#accessibility-modal.top #closeBtn {
  top: 0;
  left: 0;
  margin: 15px;
}

#accessibility-modal.bottom #closeBtn {
  top: 0;
  left: 0;
  margin: 15px;
}

#accessibility-modal #closeBtn box-icon {
  width: 35px;
  height: 35px;
  display: flex;
  justify-content: center;
  align-items: center;
}

#accessibility-modal.left {
  left: 0;
  right: auto;
  max-width: 500px;
  border-radius: 0 var(--border_radius) var(--border_radius) 0;
}

#accessibility-modal.right {
  right: 0;
  left: auto;
  max-width: 500px;
  padding: 15px;
  border-radius: var(--border_radius) 0 0 var(--border_radius);
}

#accessibility-modal.top {
  top: 0;
  left: 1%;
  width: 98%;
  height: auto;
  max-height: 90vh;
  border-radius: 0 0 var(--border_radius) var(--border_radius);
}

#accessibility-modal.bottom {
  top: auto;
  bottom: 0;
  left: 1%;
  width: 98%;
  height: auto;
  max-height: 90vh;
  border-radius: var(--border_radius) var(--border_radius) 0 0;
}

#accessibility-modal.close {
  width: 50px;
  height: 50px;
  border-radius: var(--border_radius);
  cursor: pointer;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  overflow: clip;
  margin: 5px;
}

#accessibility-modal.close .acc-item {
  opacity: 0;
}

#accessibility-modal.close #closeBtn {
  position: absolute;
  width: 50px;
  height: 50px;
  border: none;
  background: none;
  color: var(--acc_color_2);
  background: var(--acc_color_1);
  font-size: 20px;
  cursor: pointer;
  margin: 0;
}

#accessibility-modal.close #closeBtn box-icon {
  top: 0;
  left: 0;
  position: absolute;
  width: 50px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
}

#accessibility-modal.close:hover #closeBtn {
  filter: opacity(0.8);
}

#accessibility-modal #headerContent {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(100% - 80px);
  height: 50px;
  background: var(--acc_color_1);
  color: var(--acc_color_2);
  border-radius: var(--border_radius);
  margin: 10px 10px 10px 70px;
}

#accessibility-modal.left #headerContent {
  margin: 10px 70px 10px 10px;
}

#accessibility-modal.right #headerContent {
  margin: 10px 10px 10px 70px;
}

#accessibility-modal #headerContent p {
  font-size: 20px;
  font-weight: 600;
  margin: 0 auto;
  color: white;
}

#accessibility-modal.close #headerContent {
  display: none;
}

#accessibility-tools {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: start;
  width: 100%;
  height: auto;
  transition: all 0.3s ease 2s;
}

.acc-item {
  min-width: 120px;
  width: 33%;
  max-width: 200px;
  height: auto;
  margin: 0;
  cursor: pointer;
}

.acc-item:hover .acc-child {
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--acc_color_1);
}

.acc-item:hover .acc-child.active {
  filter: opacity(0.8);
  border: 1px solid var(--acc_color_2);
}

.acc-child {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: auto;
  height: auto;
  aspect-ratio: 1/1;
  background: var(--acc_color_2);
  border-radius: var(--border_radius);
  margin: 10px;
  padding: 10px 10px 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--acc_color_1);
}

.acc-child.active {
  background: var(--acc_color_1);
  color: var(--acc_color_2);
  box-shadow: none;
  border: 1px solid var(--acc_color_1);
}

.acc-child .check-icon {
  display: flex;
  position: absolute;
  top: 5px;
  right: 5px;
  padding: 1px;
  border-radius: 50%;
  aspect-ratio: 1/1;
  justify-content: center;
  align-items: center;
  opacity: 0;
}

.acc-child.active .check-icon {
  opacity: 1;
}

.acc-progress-parent {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding-bottom: 10px;
}

.acc-progress-child {
  min-width: 30%;
  width: 48%;
  max-width: 48%;
  height: 3px;
  margin: 0 1%;
  background: var(--acc_color_1);
  border-radius: 5px;
}

.acc-child.active .acc-progress-child {
  background: var(--acc_color_2);
  opacity: 0.5;
}

.acc-child.active .acc-progress-child.active {
  opacity: 1;
}

/*Accessibility Tools*/
.invert {
  filter: invert(1);
}

.grayscale {
  filter: grayscale(1);
}

.low-saturation {
  filter: saturate(20%);
}

.high-saturation {
  filter: saturate(200%);
}

.underline-style-0 a {
  text-decoration: none;
  background: black !important;
  color: yellow !important;
  font-weight: bolder;
}

.underline-style-0 a:hover {
  text-decoration: underline !important;
}

.underline-style-1 a {
  text-decoration: none;
  background: #FFD740 !important;
  color: #005A9C !important;
  font-weight: bolder;
}

.underline-style-1 a::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-bottom: 3px solid #FFD740;
  border-left: 3px solid #FFD740;
  transition: all 0.3s ease;
}

.underline-style-1 a:hover::before {
  width: 100%;
  height: 100%;
  border: 5px solid #FFD740;
}

.underline-style-1 a:hover {
  text-decoration: underline !important;
}

.underline-style-2 a {
  font-weight: bolder;
}

.underline-style-2 a:hover {
  text-decoration: underline !important;
}

.underline-style-2 a::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  background: #FFD740;
  bottom: 0;
}

.hide-images img {
  display: none;
}

.contrast-style-0 {
  filter: none;
}

.contrast-style-1 {
  filter: contrast(1);
}

.contrast-style-2 {
  filter: contrast(1.75);
}

.contrast-style-3 {
  filter: contrast(50%);
}

.button-a21y {
  background-color: #000000;
  border: none;
  color: white;
  padding: 15px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
  border-radius: 25px;
  cursor: pointer;
}

#save-config {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  margin-top: 10px;
}

#accessibility-modal,
#accessibility-modal * {
  transition: all 0.3s ease 0s;
  font-family: 'Verdana', sans-serif;
  font-size: 12px;
}

#accessibility-modal.right {
  right: 0;
  left: auto;
  max-width: 435px;
  padding: 15px;
  border-radius: var(--border_radius) 0 0 var(--border_radius);
}

#accessibility-modal {
  max-width: 100%;
  width: 100%;
  height: 100svh;
  overflow: auto;
  top: 0;
}

#accessibility-modal.close {
  top: 13vh;
}

#accessibility-modal p{ 
  text-align: center;
}