:root {
  --ancho-grande: 72em;
  --ancho-chico: 95%;
  --ancho-accesible: 70ch;
  --color-elementos: #2b2b2b;
  --color-ornato: #e5e7eb;
  --color-fondo: #f9fafb;
}

@font-face {
  font-family: 'lato';
  src: url('font/lato-regular.woff2') format('woff2');
  font-style: normal;
  font-weight: normal;
}

@font-face {
  font-family: 'lato';
  src: url('font/lato-bold.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
}

* {
  margin: 0;
  padding: 0;
}

*,
*::after,
*::before {
  box-sizing: inherit;
}

ol,
ul {
  list-style: none;
}

html {
  color: var(--color-elementos);
  font-family: lato, sans-serif;
  box-sizing: border-box;
  background-color: var(--color-fondo);
}

a {
  color: inherit;
}

.texto-lector-pantalla {
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
  word-break: normal !important;
}

.texto-lector-pantalla:focus {
  background-color: var(--color-ornato);
  clip-path: none;
  color: var(--color-elementos);
  display: block;
  font-size: 1em; 
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

.saltar-contenido:focus {
  text-decoration: underline;
  font-weight: bold;
  border: 1px solid var(--color-elementos);
}

.cuerpo {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  line-height: 1.5;
}

.contenedor {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding: 0 1.5rem;
  width: min(var(--ancho-grande), var(--ancho-chico));
}

.encabezado {
  text-align: center;
  margin: 1.5rem 0;
}

.barra-navgcn {
  border-bottom: 1pt solid var(--color-ornato);
}

.encabezado a,
.barra-navgcn a {
  font-weight: bold;
  text-decoration: none;
}

.encabezado a:focus,
.encabezado a:hover,
.barra-navgcn a:focus,
.barra-navgcn a:hover {
  text-decoration: underline;
}


.barra-navgcn > .enlaces-navgcn {
  display: flex;
  justify-content: center;
  padding: 1rem 0;
  gap: 2rem;
}

.principal {
  margin: 4rem 0;
  flex: 1;
}

.principal-inicio {
  display: flex;
  align-items: center;
  justify-content: center;
}

.texto-bienvenida {
  max-width: var(--ancho-accesible);
}

.texto-bienvenida h2,
.texto-bienvenida p {
  margin-bottom: 1.25rem;
}

.pie {
  border-top: 1pt solid var(--color-ornato);
  font-size: 90%;
  padding: 1.5rem 0;
  height: 4rem;
  text-align: center;
}