| Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] |
| | | Three Months Ended | | | Six Months Ended | |
| | | June 30, | | | June 30, | | | June 30, | | | June 30, | |
| | | 2024 | | | 2023 | | | 2024 | | | 2023 | |
| Basic earnings per common share | | | | | | | | | | | | | | | | |
| Net income | | $ | 24,338 | | | $ | 23,964 | | | $ | 15,986 | | | $ | 10,854 | |
| Less income allocated to participating securities | | | 639 | | | | 540 | | | | 398 | | | | 240 | |
| Net income allocated to common shareholders | | $ | 23,699 | | | $ | 23,424 | | | $ | 15,588 | | | $ | 10,614 | |
| Weighted average common shares outstanding | | | 23,094,047 | | | | 22,974,508 | | | | 23,051,708 | | | | 22,940,863 | |
| | | $ | 1.03 | | | $ | 1.02 | | | $ | 0.68 | | | $ | 0.46 | |
| | | | | | | | | | | | | | | | | |
| Earnings per common share assuming dilution | | | | | | | | | | | | | | | | |
| Net income | | $ | 24,338 | | | $ | 23,964 | | | $ | 15,986 | | | $ | 10,854 | |
| Less income allocated to participating securities | | | 639 | | | | 540 | | | | 398 | | | | 240 | |
| Net income allocated to common shareholders | | $ | 23,699 | | | $ | 23,424 | | | $ | 15,588 | | | $ | 10,614 | |
| Weighted average common shares assuming dilution | | | 23,094,047 | | | | 22,974,508 | | | | 23,051,708 | | | | 22,940,863 | |
| | | $ | 1.02 | | | $ | 1.01 | | | $ | 0.66 | | | $ | 0.45 | |
|