| Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] |
| | | Three months ended | | | Six months ended | |
| | | June 30, | | | June 30, | |
| (in thousands, except share and per share amounts): | | 2026 | | | 2025 | | | 2026 | | | 2025 | |
| Basic earnings per share: | | | | | | | | | | | | | | | | |
| Net income | | $ | 4,728 | | | $ | 5,466 | | | $ | 10,634 | | | $ | 9,137 | |
| | | | | | | | | | | | | | | | | |
| Weighted average common shares outstanding | | | 16,119,853 | | | | 16,377,019 | | | | 16,127,780 | | | | 16,399,953 | |
| Basic EPS | | $ | 0.29 | | | $ | 0.33 | | | $ | 0.66 | | | $ | 0.56 | |
| | | | | | | | | | | | | | | | | |
| Diluted earnings per share: | | | | | | | | | | | | | | | | |
| Net income | | $ | 4,728 | | | $ | 5,466 | | | $ | 10,634 | | | $ | 9,137 | |
| | | | | | | | | | | | | | | | | |
| Weighted average common shares outstanding | | | 16,119,853 | | | | 16,377,019 | | | | 16,127,780 | | | | 16,399,953 | |
| | | | | | | | | | | | | | | | | |
| Effect of dilutive shares | | | 388,938 | | | | 215,240 | | | | 372,861 | | | | 228,113 | |
| | | | | | | | | | | | | | | | | |
| Adjusted weighted average common shares outstanding | | | 16,508,791 | | | | 16,592,259 | | | | 16,500,641 | | | | 16,628,066 | |
| Diluted EPS | | $ | 0.29 | | | $ | 0.33 | | | $ | 0.64 | | | $ | 0.55 | |
|