/* Elementos Predefinidos */
.Encabezado,
.Titulo,
.SubTitulo {
  display: block;
  font-weight: bold;
  margin: 0 0 10px 0;
  line-height: normal;
  color: var(--color-negro);
}

.Encabezado {
  font-size: 3em;
}

.Titulo {
  font-size: 2.5em;
}

.SubTitulo {
  font-size: 2em;
}

.TextoMedio {
  font-size: 1.5em;
}

.TextoNormal {
  font-size: 1em;
}

.TextoOrientacion {
  font-size: 0.5em;
}

.TextoEtiqueta {
  font-size: 1em;
  font-weight: bold;
}

.TextoError {
  font-size: 1em;
  font-weight: bold;
  color: var(--color-error) !important;
}

.Requerido::after {
  content: "*";
  color: var(--color-berry) !important;
  font-weight: bold;
  margin: 0 0 0 10px;
}

.RequeridoAntes::before {
  content: "*";
  color: var(--color-berry) !important;
  font-weight: bold;
  margin: 0 10px 0 0;
}

a.VinculoTipoBoton {
  display: inline-block;
  width: auto;
  height: auto;
  padding: 10px 20px;
  color: var(--color-blanco);
  background-color: var(--color-verde-oscuro);
  border-radius: 20px 20px 20px 20px;
}

a.VinculoTipoBoton:link,
a.VinculoTipoBoton:visited {
  background-color: var(--color-verde-claro);
}

a.VinculoTipoBoton:hover,
a.VinculoTipoBoton:active {
  background-color: var(--color-verde-oscuro);
}

a.VinculoTipoBoton--GrisOscuro,
a.VinculoTipoBoton--GrisOscuro:link,
a.VinculoTipoBoton--GrisOscuro:visited {
  color: var(--color-blanco);
  background-color: var(--color-gris-oscuro);
}

a.VinculoTipoBoton--GrisOscuro:hover,
a.VinculoTipoBoton--GrisOscuro:active {
  background-color: var(--color-verde-oscuro);
}

a.VinculoTipoBoton--Contorno,
a.VinculoTipoBoton--Contorno:link,
a.VinculoTipoBoton--Contorno:visited {
  color: var(--color-negro);
  background-color: transparent;
  border: 1px solid var(--color-negro);
}

a.VinculoTipoBoton--Contorno:hover,
a.VinculoTipoBoton--Contorno:active {
  color: var(--color-blanco);
  background-color: var(--color-negro);
}

a.VinculoTipoBoton--VerdeOscuro,
a.VinculoTipoBoton--VerdeOscuro:link,
a.VinculoTipoBoton--VerdeOscuro:visited {
  color: var(--color-blanco);
  background-color: var(--color-verde-oscuro);
}

a.VinculoTipoBoton--VerdeOscuro:hover,
a.VinculoTipoBoton--VerdeOscuro:active {
  background-color: var(--color-negro);
}

@media (width <= 430px) {
  .Encabezado {
    font-size: 2.5em;
  }

  .Titulo {
    font-size: 2em;
  }

  .SubTitulo {
    font-size: 1.5em;
  }

  .TextoMedio {
    font-size: 1.25em;
  }
}

/* Listas con Vinetas Personalizadas */
ul.ListaConVineta {
  margin: 0;
  padding: 0 0 0 22px;
}

ul.ListaConVineta li {
  margin: 0 0 8px 0;
  padding: 0 0 0 8px;
}

ul.ListaConVineta li::marker {
  font-family: "Font Awesome 5 Free", sans-serif;
  font-style: normal;
  font-weight: normal;
  font-size: 0.5em;
}

ul.ListaConVineta--VinetaBolitaColorPrimario li::marker,
ul.ListaConVineta--VinetaBolitaVerdeClaro li::marker {
  content: "\f111";
  color: var(--color-berry);
}

ul.ListaConVineta--VinetaBolitaColorSecundario li::marker,
ul.ListaConVineta--VinetaBolitaVerdeAzulado li::marker {
  content: "\f111";
  color: var(--color-negro);
}

ul.ListaConVineta--VinetaBolitaColorTerciario li::marker,
ul.ListaConVineta--VinetaBolitaVerdePasto li::marker {
  content: "\f111";
  color: var(--color-dorado);
}

ul.ListaConVineta--VinetaBolitaColorNegro li::marker {
  content: "\f111";
  color: var(--color-negro);
}

ul.ListaConVineta--VinetaBolitaColorNaranja li::marker {
  content: "\f111";
  color: var(--color-naranja);
}

ul.ListaConVineta--VinetaFlechaColorPrimario li::marker,
ul.ListaConVineta--VinetaFlechaVerdeClaro li::marker {
  content: "\f0da";
  color: var(--color-berry);
  font-size: 1em;
}

ul.ListaConVineta--VinetaFlechaColorSecundario li::marker,
ul.ListaConVineta--VinetaFlechaVerdeAzulado li::marker {
  content: "\f0da";
  color: var(--color-negro);
  font-size: 1em;
}

ul.ListaConVineta--VinetaFlechaColorTerciario li::marker,
ul.ListaConVineta--VinetaFlechaVerdePasto li::marker {
  content: "\f0da";
  color: var(--color-dorado);
  font-size: 1em;
}

ul.ListaConVineta--VinetaFlechaNegra li::marker {
  content: "\f0da";
  color: var(--color-negro);
  font-size: 1em;
}

ul.ListaConVineta--VinetaFlechaNaranja li::marker {
  content: "\f0da";
  color: var(--color-naranja);
  font-size: 1em;
}

/* Separador */
hr {
  height: 0;
  border: 0;
  border-top: 1px solid var(--color-gris-oscuro);
}

hr.Mediano {
  border-top-width: 2px;
}

hr.Grande {
  border-top-width: 3px;
}

hr.SeparadorDirectorio {
  margin: 0;
  border-color: var(--color-gris-claro);
}

/* Tablas */
table.Tabla {
  width: 100% !important;
  margin: 10px 0;
  border-collapse: collapse;
  clear: both;
}

table.Tabla,
table.Tabla th,
table.Tabla tr,
table.Tabla td,
table.Tabla tbody,
table.Tabla thead,
table.Tabla tfoot {
  border: 1px solid var(--color-gris-medio);
}

table.Tabla th,
table.Tabla thead,
table.Tabla tfoot {
  color: var(--color-blanco);
  background-color: var(--color-negro);
  font-weight: bold;
  text-align: center;
  vertical-align: middle;
  padding: 5px;
}

table.Tabla tr {
  background-color: var(--color-cafe-medio);
}

table.Tabla tr:nth-child(even) {
  background-color: var(--color-blanco);
}

table.Tabla tr:hover {
  background-color: var(--color-cafe-claro);
}

table.Tabla td {
  padding: 3px;
}

table.Tabla--SinBordes,
table.Tabla--SinBordes th,
table.Tabla--SinBordes tr,
table.Tabla--SinBordes td,
table.Tabla--SinBordes tbody,
table.Tabla--SinBordes thead,
table.Tabla--SinBordes tfoot {
  border: 0;
}

.Tabla__Titulo {
  display: block;
  margin: 0 0 10px 0;
  font-size: 1.125em;
  font-weight: bold;
  text-align: center;
  color: var(--color-negro);
}

table.Tabla--Simple,
table.Tabla--Simple th,
table.Tabla--Simple tr,
table.Tabla--Simple td,
table.Tabla--Simple tbody,
table.Tabla--Simple thead,
table.Tabla--Simple tfoot {
  border: 0;
}

table.Tabla--Simple th,
table.Tabla--Simple thead,
table.Tabla--Simple tfoot {
  padding: 8px 5px;
  color: var(--color-negro);
  text-align: left;
  background-color: transparent;
  border-bottom: 2px solid var(--color-negro);
}

table.Tabla--Simple tr {
  background-color: var(--color-blanco);
}

table.Tabla--Simple tr:nth-child(even) {
  background-color: var(--color-cafe-claro);
}

table.Tabla--Simple td {
  padding: 8px 5px;
}

/* YouTube */
.ContenedorYouTube {
  display: block;
  width: 100%;
  height: auto;
  margin: 10px 0;
  clear: both;
}

.ContenedorYouTube iframe {
  display: block;
  margin: 0 auto;
}

.ContenedorYouTube--AnchoMaximo {
  display: block;
  width: 100%;
  height: 0;
  position: relative;
  float: none;
  clear: both;
  margin: 0 auto;
  padding-bottom: 56.45%;
}

.ContenedorYouTube--AnchoMaximo iframe {
  display: inline;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
}

/* Acordeon */
.Acordeon {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 20px 0;
  clear: both;
}

.Acordeon h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  box-sizing: border-box;
  margin: 0 0 15px 0;
  padding: 0 0 10px 0;
  font-weight: bold;
  line-height: 1.3;
  color: var(--color-gris-oscuro);
  border-bottom: 2px dashed var(--color-gris-medio);
  cursor: pointer;
}

.Acordeon h3[aria-expanded="true"],
.Acordeon h3.ui-accordion-header-active {
  color: var(--color-negro);
  border-bottom-color: var(--color-dorado);
}

.Acordeon h3.ui-state-focus {
  outline: none;
}

.Acordeon h3 .ui-icon {
  display: none !important;
}

.Acordeon h3::after {
  content: "";
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--color-gris-medio);
  border-bottom: 2px solid var(--color-gris-medio);
  transform: rotate(45deg);
  transition:
    transform 0.2s ease,
    border-color 0.2s ease;
}

.Acordeon h3[aria-expanded="true"]::after,
.Acordeon h3.ui-accordion-header-active::after {
  border-color: var(--color-dorado);
  transform: rotate(225deg);
}

.Acordeon div {
  display: block;
  width: 100%;
  height: auto;
  box-sizing: border-box;
  margin: 0 0 15px 0;
  padding: 10px 15px;
  clear: both;
  font-size: 0.9375em;
  color: var(--color-gris-oscuro);
  background-color: var(--color-cafe-medio);
}

.Acordeon__Archivo {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.Acordeon__Archivo svg {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  color: var(--color-berry);
}

.Acordeon__ArchivoNombre {
  display: block;
  font-weight: bold;
  color: var(--color-negro);
}

.Acordeon__ArchivoMeta {
  display: block;
  font-size: 0.875em;
  color: var(--color-gris-medio);
}

.Acordeon--Preguntas h3 {
  padding: 15px 0 0 0;
  border-top: 2px dashed var(--color-gris-medio);
  border-bottom: 0;
}

.Acordeon--Preguntas h3[aria-expanded="true"],
.Acordeon--Preguntas h3.ui-accordion-header-active {
  border-top-color: var(--color-dorado);
}

.Acordeon--Preguntas h3::after {
  position: relative;
  width: 14px;
  height: 14px;
  border: 0;
  background:
    linear-gradient(var(--color-gris-medio), var(--color-gris-medio)) center / 100% 2px no-repeat,
    linear-gradient(var(--color-gris-medio), var(--color-gris-medio)) center / 2px 100% no-repeat;
  transform: none;
  transition: background 0.2s ease;
}

.Acordeon--Preguntas h3[aria-expanded="true"]::after,
.Acordeon--Preguntas h3.ui-accordion-header-active::after {
  background: linear-gradient(var(--color-dorado), var(--color-dorado)) center / 100% 2px no-repeat;
}

.Acordeon--Preguntas div {
  padding: 0 0 15px 0;
  background-color: transparent;
}

/* --- Árbol / niveles anidados --- */
.Acordeon__Nivel {
  margin: 15px 0 0 0;
  padding: 0 0 0 20px;
  border-left: 2px solid var(--color-cafe-medio);
}

.Acordeon__NivelTitulo {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px 0;
  font-weight: bold;
  cursor: pointer;
}

.Acordeon__NivelTitulo::before {
  content: "\2013";
  display: inline-block;
  width: 14px;
  text-align: center;
}

.Acordeon__Nivel--Uno > .Acordeon__NivelTitulo {
  color: var(--color-dorado);
}

.Acordeon__Nivel--Dos > .Acordeon__NivelTitulo {
  color: var(--color-verde-oscuro);
}

.Acordeon__NivelArchivo {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px 0;
  font-size: 0.9375em;
}

.Acordeon__NivelArchivo svg {
  width: 16px;
  height: 16px;
  color: var(--color-berry);
}

.Acordeon__NivelArchivo a {
  color: inherit;
  text-decoration: underline;
}

/* Componente Micrositio */
.InaipComponenteMicrositio {
  display: block;
  width: 100%;
  height: auto;
  clear: both;
  margin: 0 0 20px 0;
  overflow: hidden;
}

.InaipComponenteMicrositio__Menu {
  display: block;
  width: 30%;
  height: auto;
  float: left;
  clear: left;
  margin: 0 0 20px 0;
  padding: 0 10px 10px 0;
  box-sizing: border-box;
}

.InaipComponenteMicrositio__Menu ol {
  margin: 0;
  list-style: upper-roman inside;
}

.InaipComponenteMicrositio__Menu ol ol {
  margin: 0 0 0 18px;
  list-style: lower-roman inside;
}

.InaipComponenteMicrositio__Menu ol li {
  padding: 0 0 10px 0;
  text-align: left;
  cursor: pointer;
}

.InaipComponenteMicrositio__Menu li.InaipComponenteMicrositio__Menu--Activo > span,
.InaipComponenteMicrositio__Menu span:hover {
  font-weight: bold;
}

.InaipComponenteMicrositio__Contenido {
  display: block;
  width: 70%;
  height: auto;
  float: right;
  clear: right;
  margin: 0 0 20px 0;
}

.InaipComponenteMicrositio__Contenido a,
.InaipComponenteMicrositio__Contenido a:link,
.InaipComponenteMicrositio__Contenido a:visited,
.InaipComponenteMicrositio__Contenido a:hover,
.InaipComponenteMicrositio__Contenido a:active {
  text-decoration: underline;
}

/* Componente Galeria de Imagenes */
.InaipComponenteGaleria {
  display: block;
  width: 810px;
  height: auto;
  margin: 0 auto 30px auto;
  float: none;
  clear: both;
  padding: 0;
  box-sizing: border-box;
}

.InaipComponenteGaleria__Escenario {
  display: block;
  position: relative;
  width: 100%;
  height: auto;
  clear: both;
  padding-top: 66.66%;
  box-sizing: border-box;
}

.InaipComponenteGaleria__Escenario__Imagen {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.InaipComponenteGaleria__Escenario__Imagen img {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 1;
  transition: opacity 0.5s linear;
}

.InaipComponenteGaleria__Escenario__Imagen--Actual {
  z-index: 2 !important;
  opacity: 1 !important;
}

.InaipComponenteGaleria__Escenario__Imagen--Anterior {
  opacity: 0 !important;
}

.InaipComponenteGaleria__Barra {
  display: block;
  width: 100%;
  height: auto;
  clear: both;
  padding: 15px 40px;
  background: var(--color-gris-claro);
  box-sizing: border-box;
}

.InaipComponenteGaleria__Barra__Titulo {
  display: block;
  width: 100%;
  height: auto;
  clear: both;
  text-align: center;
  font-size: 1.125em;
  margin: 0;
}

.InaipComponenteGaleria__Barra__Descargar {
  display: block;
  width: 100%;
  height: auto;
  margin: 5px 0 0 0;
  clear: both;
  text-align: center;
  line-height: 1;
  color: var(--color-berry);
}

.InaipComponenteGaleria__Barra__Descargar a,
.InaipComponenteGaleria__Barra__Descargar a:link,
.InaipComponenteGaleria__Barra__Descargar a:visited,
.InaipComponenteGaleria__Barra__Descargar a:hover,
.InaipComponenteGaleria__Barra__Descargar a:active {
  color: var(--color-berry);
  text-decoration: none;
}

.InaipComponenteGaleria__Barra__Descargar::before {
  content: "\f358";
  font-family: "Font Awesome 5 Free", sans-serif;
  font-size: 1em;
  font-style: normal;
  font-weight: normal;
  line-height: inherit;
  vertical-align: baseline;
  margin: 0 5px 0 0;
  color: var(--color-berry);
}

.InaipComponenteGaleria__Carrusel {
  display: block;
  position: relative;
  width: 100%;
  height: auto;
  margin: 15px 0 0 0;
}

.InaipComponenteGaleria.InaipComponenteGaleria--SinPaginacion .InaipComponenteGaleria__Carrusel {
  display: none !important;
  visibility: hidden !important;
}

.InaipComponenteGaleria__Carrusel__Anterior,
.InaipComponenteGaleria__Carrusel__Siguiente {
  display: table;
  width: 50px;
  height: 143px;
  position: relative;
  box-sizing: border-box;
}

.InaipComponenteGaleria__Carrusel__Anterior {
  margin: 0 10px 0 0;
  float: left;
  clear: left;
}

.InaipComponenteGaleria__Carrusel__Siguiente {
  margin: 0 0 0 10px;
  float: right;
  clear: right;
}

.InaipComponenteGaleria__Carrusel__Anterior span,
.InaipComponenteGaleria__Carrusel__Siguiente span {
  display: table-cell;
  width: 100%;
  height: 100%;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-touch-callout: none;
  user-select: none;
}

.InaipComponenteGaleria__Carrusel__Anterior span::after,
.InaipComponenteGaleria__Carrusel__Siguiente span::after {
  font-family: "Font Awesome 5 Free", sans-serif;
  font-size: 46px;
  font-style: normal;
  font-weight: normal;
  color: var(--color-gris-medio);
}

.InaipComponenteGaleria__Carrusel__Anterior span::after {
  content: "\f104";
}

.InaipComponenteGaleria__Carrusel__Siguiente span::after {
  content: "\f105";
}

.InaipComponenteGaleria__Carrusel__Imagenes {
  display: block;
  position: relative;
  width: auto;
  height: auto;
  overflow: hidden;
  box-sizing: border-box;
}

.InaipComponenteGaleria__Carrusel__Imagenes ul {
  display: block;
  position: relative;
  width: 10000em;
  height: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: auto;
}

.InaipComponenteGaleria__Carrusel__Imagenes ul li {
  display: block;
  position: relative;
  width: 214px;
  height: 143px;
  margin: 0 24px 0 0;
  padding: 0;
  float: left;
  box-sizing: border-box;
}

.InaipComponenteGaleria__Carrusel__Imagenes ul li img {
  display: inline-block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  border: 0;
  cursor: pointer;
}

.InaipComponenteGaleria__Carrusel__Paginacion {
  display: block;
  position: relative;
  width: 100%;
  height: 22px;
  clear: both;
  margin: 10px auto 0;
  line-height: 22px;
  text-align: center;
  box-sizing: border-box;
}

.InaipComponenteGaleria__Carrusel__Paginacion a {
  display: inline-block;
  width: 22px;
  height: 22px;
  margin: 0 0 0 10px;
  text-align: center;
  line-height: 22px;
  -webkit-touch-callout: none;
  user-select: none;
}

.InaipComponenteGaleria__Carrusel__Paginacion a:first-child {
  margin: 0 !important;
}

.InaipComponenteGaleria__Carrusel__Paginacion a::after {
  content: "\f111";
  font-family: "Font Awesome 5 Free", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: normal;
  color: var(--color-gris-claro);
  vertical-align: middle;
  text-align: center;
  line-height: 22px;
}

.InaipComponenteGaleria__Carrusel__Paginacion
  a.InaipComponenteGaleria__Carrusel__Paginacion--Seleccionado::after,
.InaipComponenteGaleria__Carrusel__Paginacion a:hover::after {
  color: var(--color-gris-medio);
}

/* Iconos */
.Icono {
  display: inline-block;
  width: 32px;
  height: 32px;
}

.IconoArchivoPDF {
  background: transparent url("Imagenes/Iconos/ArchivoPDF.png") no-repeat scroll 0 0;
}

/* Clases Extra para el Contenido */
.ReiniciarFuente {
  font-family: Lato, sans-serif !important;
}

.Bloque {
  display: block;
}

.BloqueEnLinea {
  display: inline-block;
}

.Centrar {
  text-align: center;
}

.CentrarBloque {
  margin: 0 auto;
}

.Izquierda {
  float: left;
}

img.Izquierda {
  margin: 0 30px 30px 0;
}

.Derecha {
  float: right;
}

img.Derecha {
  margin: 0 0 30px 30px;
}

.TextoIzquierda {
  text-align: left;
}

.TextoDerecha {
  text-align: right;
}

.TextoCentrado {
  text-align: center;
}

.TextoJustificado {
  text-align: justify;
}

.Negritas {
  font-weight: bold;
}

.Cursiva {
  font-style: italic;
}

.SubRayado {
  text-decoration: underline;
}

.Tachado {
  text-decoration: line-through;
}

.MostrarExcesoSiRebasa {
  overflow: auto;
}

.MostrarExceso {
  overflow: visible;
}

.EsconderExceso {
  overflow: hidden;
}

.RomperPalabras {
  overflow-wrap: break-word;
}

.RomperPalabrasCompletamente {
  word-break: break-all;
}

.Mayusculas {
  text-transform: uppercase;
}

.ConservarEspaciado {
  white-space: pre-wrap;
}

.AnchoExtraPequeno {
  width: 50px;
}

.AnchoPequeno {
  width: 100px;
}

.AnchoMedio {
  width: 200px;
}

.AnchoExtraMedio {
  width: 300px;
}

.AnchoGrande {
  width: 400px;
}

.AnchoExtraGrande {
  width: 500px;
}

.AnchoDobleExtraGrande {
  width: 700px;
}

.AnchoMaximo {
  width: 100%;
}

.AltoMaximo {
  height: 100%;
}

.SinMargen {
  margin: 0;
}

.SinRelleno {
  padding: 0;
}

.ConMargen {
  margin: 15px;
}

.ConMargenSuperior {
  margin-top: 15px;
}

.ConMargenInferior {
  margin-bottom: 15px;
}

.ConMargenIzquierdo {
  margin-left: 15px;
}

.ConMargenDerecho {
  margin-right: 15px;
}

.ConSeparacion {
  padding: 15px;
}

.ConSeparacionSuperior {
  padding-top: 15px;
}

.ConSeparacionInferior {
  padding-bottom: 15px;
}

.ConSeparacionIzquierda {
  padding-left: 15px;
}

.ConSeparacionDerecha {
  padding-right: 15px;
}

.ConBordesExpandidos {
  border-collapse: separate;
  border-spacing: 0 5px;
}

.ConBordesColapsados {
  border-collapse: collapse;
}

.TipoCursorAutomatico {
  cursor: auto !important;
}

.TipoCursorPuntero {
  cursor: pointer !important;
}

.TipoCursorTexto {
  cursor: text !important;
}

.TipoCursorEnEspera {
  cursor: wait !important;
}

.TipoCursorNoPermitido {
  cursor: not-allowed !important;
}

.TipoCursorAyuda {
  cursor: help !important;
}

.Lista--SinVineta {
  list-style-type: none;
}

.SubRayarVinculos a,
.SubRayarVinculos a:link,
.SubRayarVinculos a:visited,
.SubRayarVinculos a:hover,
.SubRayarVinculos a:active {
  text-decoration: underline;
}

.Invisible {
  display: none;
}

.Desactivado {
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: none !important;
  visibility: hidden !important;
}

@media print {
  .NoImprimir,
  .NoImprimir * {
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: none !important;
    visibility: hidden !important;
  }
}

/* Tarjetas */
.Tarjeta {
  display: block;
  position: relative;
  box-sizing: border-box;
  background-color: var(--color-blanco);
  border: 1px solid var(--color-cafe-medio);
  border-radius: 10px;
  overflow: hidden;
  transition:
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

a.Tarjeta,
a.Tarjeta:link,
a.Tarjeta:visited {
  color: inherit;
  text-decoration: none;
}

a.Tarjeta:hover,
a.Tarjeta:active {
  border-color: var(--color-dorado);
  box-shadow: 0 4px 14px rgba(45, 40, 41, 0.1);
}

.Tarjeta__Icono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0 0 15px 0;
  color: var(--color-negro);
}

.Tarjeta__Icono svg {
  width: 100%;
  height: 100%;
}

.Tarjeta__Titulo {
  display: block;
  margin: 0 0 5px 0;
  font-size: 1em;
  font-weight: bold;
  line-height: 1.3;
  text-align: center;
  color: var(--color-negro);
}

.Tarjeta__Subtitulo {
  display: block;
  margin: 0;
  font-size: 0.875em;
  color: var(--color-gris-medio);
}

.Tarjeta__Descripcion {
  margin: 0 0 15px 0;
  font-size: 0.9375em;
  color: var(--color-gris-oscuro);
}

.Tarjeta__Enlace {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 18px;
  height: 18px;
  color: var(--color-gris-medio);
}

.Tarjeta__Acciones {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.Tarjeta--ConIcono {
  padding: 20px;
}

.Tarjeta--SinIcono {
  padding: 20px;
}

.Tarjeta--SinIcono .Tarjeta__Titulo {
  font-size: 1.125em;
}

.Tarjeta--Compacta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 25px 15px;
  min-height: 120px;
}

.Tarjeta--Compacta .Tarjeta__Icono {
  margin: 0 0 10px 0;
}

.Tarjeta--Compacta .Tarjeta__Titulo {
  font-size: 0.9375em;
  font-weight: 600;
}

.Tarjeta--Info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 15px;
  padding: 20px;
  background-color: var(--color-cafe-claro);
  border: 0;
  border-radius: 8px;
}

.Tarjeta--Info .Tarjeta__Titulo {
  margin: 0 0 10px 0;
  font-size: 1.0625em;
}

.Tarjeta__Lista {
  flex: 1 1 auto;
  min-width: 220px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.Tarjeta__Dato {
  display: block;
  margin: 0 0 4px 0;
  font-size: 0.875em;
}

.Tarjeta__Dato strong {
  color: var(--color-negro);
}

.Tarjeta__Dato span {
  color: var(--color-gris-oscuro);
}

@media (width <= 600px) {
  .Tarjeta--Info {
    flex-direction: column;
    align-items: stretch;
  }
}

.Tarjeta--Decorativa {
  position: relative;
  padding: 30px;
  background-color: var(--color-cafe-medio);
  border: 0;
  border-radius: 10px;
  overflow: hidden;
}

.Tarjeta--Decorativa::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -60px;
  width: 260px;
  height: 260px;
  transform: translateY(-50%);
  border-radius: 50%;
  box-shadow:
    0 0 0 1px var(--color-cafe-claro),
    0 0 0 30px transparent,
    0 0 0 31px var(--color-cafe-claro),
    0 0 0 60px transparent,
    0 0 0 61px var(--color-cafe-claro);
  pointer-events: none;
}

.Tarjeta--Decorativa .Tarjeta__Titulo,
.Tarjeta--Decorativa .Tarjeta__Descripcion,
.Tarjeta--Decorativa .Tarjeta__Acciones {
  position: relative;
  z-index: 1;
}

.Tarjeta--Decorativa .Tarjeta__Titulo {
  margin: 0 0 8px 0;
  font-size: 1.375em;
}

.Tarjeta--Decorativa .Tarjeta__Descripcion {
  max-width: 60%;
}

@media (width <= 600px) {
  .Tarjeta--Decorativa .Tarjeta__Descripcion {
    max-width: 100%;
  }

  .Tarjeta--Decorativa::after {
    opacity: 0.5;
  }
}

.Tarjeta--ConImagen {
  padding: 0;
}

.Tarjeta__Imagen {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  background-color: var(--color-cafe-medio);
  overflow: hidden;
}

.Tarjeta__Imagen img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.Tarjeta__Cuerpo {
  padding: 20px;
}

.Tarjeta--ConImagen .Tarjeta__Titulo {
  margin: 0 0 8px 0;
  font-size: 1.0625em;
}

.Tarjeta--ConImagen .Tarjeta__Descripcion {
  display: -webkit-box;
  text-align: center;
  overflow: hidden;
}

.Tarjetas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  max-width: 1160px;
  margin: 0 auto;
}

.Tarjetas-grid--2cols {
  grid-template-columns: repeat(2, 1fr);
}

.Tarjetas-grid--4cols {
  grid-template-columns: repeat(4, 1fr);
}

@media (width <= 900px) {
  .Tarjetas-grid {
    grid-template-columns: 1fr;
  }
}

/* Modal */
.Modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 20px;
  background-color: rgba(45, 40, 41, 0.55);
}

.Modal.Modal--Abierto {
  display: flex;
}

.Modal__Contenedor {
  position: relative;
  width: 100%;
  max-width: 420px;
  box-sizing: border-box;
  padding: 30px;
  text-align: center;
  background-color: var(--color-blanco);
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(45, 40, 41, 0.25);
}

.Modal__Cerrar {
  position: absolute;
  top: 15px;
  right: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  color: var(--color-berry);
  background-color: var(--color-cafe-claro);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}

.Modal__Cerrar svg {
  width: 14px;
  height: 14px;
}

.Modal__Imagen {
  display: block;
  width: 88px;
  height: 88px;
  margin: 0 auto 20px auto;
  background-color: var(--color-cafe-medio);
  border-radius: 10px;
}

.Modal__Titulo {
  margin: 0 0 8px 0;
  font-size: 1.25em;
  font-weight: bold;
  color: var(--color-dorado);
}

.Modal__Texto {
  margin: 0 0 25px 0;
  font-size: 0.9375em;
  color: var(--color-gris-oscuro);
}

.Modal__Acciones {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.Modal--Compacto .Modal__Contenedor {
  padding-top: 45px;
  text-align: left;
}

.Modal--Compacto .Modal__Acciones {
  justify-content: flex-start;
}

/* Banners */
.Banner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
  color: var(--color-blanco);
  border-radius: 6px;
}

.Banner__Titulo {
  display: block;
  margin: 0 0 12px 0;
  font-weight: bold;
  color: var(--color-blanco);
}

.Banner__Boton {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  font-size: 0.875em;
  font-weight: bold;
  color: var(--color-negro);
  text-decoration: none;
  white-space: nowrap;
  background-color: var(--color-dorado);
  border-radius: 20px;
}

.Banner__Boton svg {
  width: 14px;
  height: 14px;
}

.Banner__Boton:hover,
.Banner__Boton:active {
  background-color: var(--color-dorado-claro);
}

.Banner--Institucional {
  background-color: var(--color-berry);
  background-image: linear-gradient(
    115deg,
    var(--color-berry) 0%,
    var(--color-berry) 28%,
    var(--color-berry-claro) 42%,
    var(--color-berry-claro) 78%,
    var(--color-berry) 92%
  );
}

.Banner--Principal {
  width: 100%;
  max-width: 840px;
  min-height: 90px;
  aspect-ratio: 840 / 105;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 0 30px;
}

.Banner--Principal .Banner__Titulo {
  margin: 0;
  font-size: 1.25em;
}

.Banner--Lateral {
  width: 260px;
  height: 260px;
  padding: 20px;
}

.Banner--Lateral .Banner__Titulo {
  max-width: 75%;
  font-size: 1.375em;
}

.Banner--Inferior {
  width: 200px;
  height: 100px;
  padding: 12px 15px;
}

.Banner--Inferior .Banner__Titulo {
  margin: 0 0 8px 0;
  font-size: 0.9375em;
}

.Banner--Inferior .Banner__Boton {
  padding: 5px 12px;
  font-size: 0.75em;
}

.Banner__Carrusel {
  display: flex;
  align-items: center;
  gap: 15px;
}

.Banner__CarruselPista {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  gap: 15px;
  padding: 4px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

.Banner__CarruselPista > * {
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.Banner__CarruselNav {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--color-gris-oscuro);
  background-color: var(--color-blanco);
  border: 1px solid var(--color-gris-medio);
  border-radius: 50%;
  cursor: pointer;
}

.Banner__CarruselNav svg {
  width: 16px;
  height: 16px;
}

.Banner--Sitio {
  width: 100%;
  min-height: 140px;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 25px var(--espacio-lateral-escritorio, 60px);
  background-color: var(--color-negro);
  background-image: linear-gradient(
    115deg,
    var(--color-gris-oscuro) 0%,
    var(--color-gris-oscuro) 30%,
    var(--color-negro) 46%,
    var(--color-negro) 100%
  );
}

.Banner--Sitio .Banner__Titulo {
  margin: 0 0 6px 0;
  font-size: 1em;
  font-weight: normal;
  color: var(--color-blanco);
}

.Banner__TituloDestacado {
  display: block;
  margin: 0;
  font-size: 1.75em;
  font-weight: 900;
  color: var(--color-dorado);
}

@media (width <= 700px) {
  .Banner--Sitio {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    padding: 25px var(--espacio-lateral-movil, 20px);
  }

  .Banner__TituloDestacado {
    font-size: 1.375em;
  }
}

/* Organigrama */
.TppyComponenteOrganigrama {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 40px var(--espacio-lateral-escritorio);
  box-sizing: border-box;
}

.TppyComponenteOrganigrama__Titulo {
  display: block;
  font-weight: bold;
  font-size: 3rem;
  line-height: normal;
  margin: 0 0 10px 0;
  color: var(--color-negro);
}

.TppyComponenteOrganigrama__Separador {
  height: 0;
  border: 0;
  border-top: 1px solid var(--color-gris-claro);
  margin: 0 0 30px 0;
}

.TppyComponenteOrganigrama__Item + .TppyComponenteOrganigrama__Item {
  margin-top: 14px;
}

.TppyComponenteOrganigrama__Cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
  padding: 18px 24px;
  background-color: var(--color-blanco);
  border: 1px solid var(--color-cafe-medio);
  border-left: 4px solid var(--color-berry);
  border-radius: 10px;
  box-shadow: 0 4px 18px rgba(45, 40, 41, 0.14);
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: box-shadow 0.2s ease;
}

.TppyComponenteOrganigrama__Cabecera:hover,
.TppyComponenteOrganigrama__Cabecera:focus-visible {
  box-shadow: 0 6px 22px rgba(45, 40, 41, 0.2);
}

.TppyComponenteOrganigrama__Cabecera__Info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.TppyComponenteOrganigrama__Cabecera__Unidad {
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-gris-medio);
}

.TppyComponenteOrganigrama__Cabecera__Nombre {
  font-size: 1rem;
  font-weight: bold;
  color: var(--color-negro);
}

.TppyComponenteOrganigrama__Cabecera__Puesto {
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.TppyComponenteOrganigrama__Cabecera__Icono {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  color: var(--color-berry);
  transition: transform 0.25s ease;
}

.TppyComponenteOrganigrama__Cabecera[aria-expanded="false"]
  .TppyComponenteOrganigrama__Cabecera__Icono {
  transform: rotate(180deg);
}

.TppyComponenteOrganigrama__Panel {
  padding: 20px 24px 4px 24px;
}

.TppyComponenteOrganigrama__Panel[hidden] {
  display: none;
}

.TppyComponenteOrganigrama__Panel__Contacto {
  margin: 8px 0 0 0;
}

.TppyComponenteOrganigrama__Panel__Subordinados {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.TppyComponenteOrganigrama__Subordinado__Cabecera {
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-sizing: border-box;
  padding: 12px 16px;
  background-color: var(--color-cafe-claro);
  border: 1px solid var(--color-cafe-medio);
  border-radius: 8px;
}

.TppyComponenteOrganigrama__Subordinado__Nombre {
  font-size: 1rem;
  font-weight: bold;
  color: var(--color-negro);
}

.TppyComponenteOrganigrama__Subordinado__Puesto {
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Escopeado a este componente: no toca la definición global de .Tarjeta__Dato */
.TppyComponenteOrganigrama .Tarjeta__Dato {
  font-size: 0.75rem;
}

.TppyComponenteOrganigrama__Item--Titular .TppyComponenteOrganigrama__Cabecera__Unidad {
  color: var(--color-dorado);
}

.TppyComponenteOrganigrama__Item--Titular .TppyComponenteOrganigrama__Cabecera__Puesto {
  display: inline-block;
  align-self: flex-start;
  margin-top: 2px;
  padding: 2px 10px;
  color: var(--color-negro);
  background-color: var(--color-dorado);
  border-radius: 20px;
}

.TppyComponenteOrganigrama__Subordinado__Contacto {
  margin: 8px 0 0 0;
  padding: 0 16px;
}

@media (width <= 640px) {
  .TppyComponenteOrganigrama {
    padding: 30px var(--espacio-lateral-movil);
  }

  .TppyComponenteOrganigrama__Titulo {
    font-size: 2.25rem;
  }

  .TppyComponenteOrganigrama__Cabecera {
    padding: 14px 16px;
  }

  .TppyComponenteOrganigrama__Panel {
    padding: 16px 16px 4px 16px;
  }
}
