Note 11 - Share Incentive Plans (Tables)
|
6 Months Ended |
Jun. 30, 2026 |
| Notes Tables |
|
| Share-Based Payment Arrangement, Option, Activity [Table Text Block] |
| | | | | | | Weighted | | | Weighted | |
| | | Stock | | | Average | | | Average | |
| | | Option | | | Exercise | | | Grant Date | |
| | | Shares | | | Price | | | Fair Value | |
| Outstanding, December 31, 2024 | | | 535,790 | | | $ | 30.69 | | | $ | 9.51 | |
| | | | | | | | | | | | | |
| Exercised | | | (245,855 | ) | | | 30.76 | | | | 9.54 | |
| Forfeited | | | (2,643 | ) | | | 36.11 | | | | 10.88 | |
| Outstanding, December 31, 2025 | | | 287,292 | | | $ | 30.58 | | | $ | 9.47 | |
| | | | | | | | | | | | | |
| Exercised | | | (7,701 | ) | | | 42.09 | | | | 13.50 | |
| Outstanding, June 30, 2026 | | | 279,591 | | | $ | 30.26 | | | $ | 9.36 | |
|
| Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] |
| | | May 17, | | | March 7, | | | March 20, | | | March 18, | | | February 18, | |
| | | 2017 | | | 2018 | | | 2019 | | | 2020 | | | 2021 | |
| Number of options granted | | | 93,819 | | | | 98,100 | | | | 155,780 | | | | 155,000 | | | | 100,000 | |
| Options outstanding at June 30, 2026 | | | 19,569 | | | | 31,370 | | | | 44,940 | | | | 27,513 | | | | 38,800 | |
| Number exercisable at June 30, 2026 | | | 19,569 | | | | 31,370 | | | | 44,940 | | | | 27,513 | | | | 38,800 | |
| Exercise price | | $ | 15.41 | | | $ | 21.21 | | | $ | 47.58 | | | $ | 14.85 | | | $ | 51.75 | |
| Remaining lives | | | 0.88 | | | | 1.69 | | | | 2.72 | | | | 3.72 | | | | 4.64 | |
| Risk free interest rate | | | 1.76 | % | | | 2.65 | % | | | 2.34 | % | | | 0.79 | % | | | 0.56 | % |
| Expected volatility | | | 26.92 | % | | | 28.76 | % | | | 30.95 | % | | | 35.72 | % | | | 28.69 | % |
| Expected life | | | 6.000 | | | | 6.000 | | | | 6.000 | | | | 6.000 | | | | 6.000 | |
| Dividend yield | | | - | | | | 0.83 | % | | | 0.42 | % | | | 1.49 | % | | | 0.55 | % |
| Fair value at grant date | | $ | 4.60 | | | $ | 6.37 | | | $ | 15.63 | | | $ | 4.41 | | | $ | 13.77 | |
| | | March 14, | | | April 29, | | | May 12, | | | March 11, | |
| | | 2022 | | | 2022 | | | 2023 | | | 2024 | |
| Number of options granted | | | 100,000 | | | | 14,827 | | | | 77,519 | | | | 54,289 | |
| Options outstanding at June 30, 2026 | | | 12,318 | | | | 3,273 | | | | 47,519 | | | | 54,289 | |
| Number exercisable at June 30, 2026 | | | 12,318 | | | | 3,273 | | | | 47,519 | | | | 54,289 | |
| Exercise price | | $ | 30.46 | | | $ | 31.39 | | | $ | 20.71 | | | $ | 27.19 | |
| Remaining lives | | | 5.71 | | | | 5.83 | | | | 6.87 | | | | 7.70 | |
| Risk free interest rate | | | 2.10 | % | | | 2.92 | % | | | 3.41 | % | | | 4.06 | % |
| Expected volatility | | | 35.33 | % | | | 35.33 | % | | | 34.51 | % | | | 35.09 | % |
| Expected life | | | 6.000 | | | | 6.000 | | | | 5.186 | | | | 5.186 | |
| Dividend yield | | | 1.01 | % | | | 0.98 | % | | | 1.61 | % | | | 1.26 | % |
| Fair value at grant date | | $ | 10.23 | | | $ | 11.07 | | | $ | 6.45 | | | $ | 9.21 | |
|
| Share-Based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block] |
| | | March 14, | | | March 1, | | | April 1, | | | March 3, | | | March 3, | |
| | | 2022 | | | 2024 | | | 2024 | | | 2025 | | | 2026 | |
| Number of PRSUs granted | | | 49,996 | | | | 111,321 | | | | 8,242 | | | | 41,137 | | | | 76,550 | |
| PRSUs outstanding at June 30, 2026 | | | 9,116 | | | | 55,348 | | | | 4,946 | | | | 31,765 | | | | 75,326 | |
| Fair value as of grant date | | $ | 30.46 | | | $ | 26.52 | | | $ | 29.12 | | | $ | 70.34 | | | $ | 107.57 | |
| Remaining lives | | | 0.50 | | | | 0.50 | | | | 0.50 | | | | 1.50 | | | | 2.68 | |
|
| Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block] |
| | | March 14, | | | April 29, | | | March 1, | | | April 1, | | | March 3, | | | July 14, | | | March 3, | | | May 11, | |
| | | 2022 | | | 2022 | | | 2024 | | | 2024 | | | 2025 | | | 2025 | | | 2026 | | | 2026 | |
| Number of RSUs granted | | | 50,004 | | | | 4,522 | | | | 105,257 | | | | 5,495 | | | | 36,843 | | | | 1,341 | | | | 63,797 | | | | 10,360 | |
| RSUs outstanding at June 30, 2026 | | | 7,973 | | | | 632 | | | | 22,683 | | | | 1,814 | | | | 22,110 | | | | 886 | | | | 62,574 | | | | 10,360 | |
| Fair value as of grant date | | $ | 30.46 | | | $ | 31.39 | | | $ | 26.52 | | | $ | 29.12 | | | $ | 70.34 | | | $ | 74.61 | | | $ | 107.57 | | | $ | 92.71 | |
| Remaining lives | | | 0.50 | | | | 0.50 | | | | 0.75 | | | | 0.75 | | | | 1.75 | | | | 2.19 | | | | 2.75 | | | | 0.92 | |
|