/* Estilos de accesibilidad */

/* Modo de alto contraste */
body.high-contrast-mode {
  background-color: #000 !important;
  color: #fff !important;
}

body.high-contrast-mode a {
  color: #ffff00 !important;
  text-decoration: underline !important;
}

body.high-contrast-mode button,
body.high-contrast-mode .btn {
  background-color: #000 !important;
  color: #ffff00 !important;
  border: 2px solid #ffff00 !important;
  font-weight: bold !important;
}

body.high-contrast-mode .card,
body.high-contrast-mode .card-body,
body.high-contrast-mode .container,
body.high-contrast-mode .navbar,
body.high-contrast-mode .footer {
  background-color: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.high-contrast-mode img {
  filter: grayscale(100%) contrast(120%) !important;
  border: 1px solid #fff !important;
}

body.high-contrast-mode input,
body.high-contrast-mode textarea,
body.high-contrast-mode select {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

body.high-contrast-mode h1,
body.high-contrast-mode h2,
body.high-contrast-mode h3,
body.high-contrast-mode h4,
body.high-contrast-mode h5,
body.high-contrast-mode h6 {
  color: #ffff00 !important;
}

/* Tamaños de fuente */
body.font-size-smaller {
  font-size: 14px !important;
}

body.font-size-larger {
  font-size: 18px !important;
}

body.font-size-larger h1 {
  font-size: 2.2em !important;
}

body.font-size-larger h2 {
  font-size: 1.8em !important;
}

body.font-size-larger h3 {
  font-size: 1.5em !important;
}

body.font-size-largest {
  font-size: 20px !important;
}

body.font-size-largest h1 {
  font-size: 2.4em !important;
}

body.font-size-largest h2 {
  font-size: 2em !important;
}

body.font-size-largest h3 {
  font-size: 1.7em !important;
}

/* Mejora de enfoque para navegación por teclado */
*:focus {
  outline: 3px solid #4d90fe !important;
  outline-offset: 2px !important;
}

body.high-contrast-mode *:focus {
  outline: 3px solid #ffff00 !important;
  outline-offset: 2px !important;
}

/* Elementos solo para lectores de pantalla */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Región para anuncios de lectores de pantalla */
.screen-reader-announce {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
