XML 140 R126.htm IDEA: XBRL DOCUMENT v3.24.0.1
Note 17 - Stock-Based Compensation - Options Outstanding (Details)
12 Months Ended
Dec. 31, 2023
$ / shares
shares
Number outstanding (in shares) | shares 290,149
Number exercisable (in shares) | shares 234,007
$17.10 to $17.86  
Exercise price range, lower range (in dollars per share) $ 17.10
Exercise price range, upper range (in dollars per share) $ 17.86
Number outstanding (in shares) | shares 96,500
Weighted average remaining contractual life (Year) 7 months 13 days
Weighted average exercise price options outstanding (in dollars per share) $ 17.32
Number exercisable (in shares) | shares 96,460
Weighted average exercise price options exercisable (in dollars per share) $ 17.32
$21.71 to $22.64  
Exercise price range, lower range (in dollars per share) 21.71
Exercise price range, upper range (in dollars per share) $ 22.64
Number outstanding (in shares) | shares 52,716
Weighted average remaining contractual life (Year) 2 years 29 days
Weighted average exercise price options outstanding (in dollars per share) $ 22.64
Number exercisable (in shares) | shares 52,716
Weighted average exercise price options exercisable (in dollars per share) $ 22.64
$29.77 to $36.00  
Exercise price range, lower range (in dollars per share) 29.77
Exercise price range, upper range (in dollars per share) $ 36.00
Number outstanding (in shares) | shares 14,212
Weighted average remaining contractual life (Year) 5 years 1 month 28 days
Weighted average exercise price options outstanding (in dollars per share) $ 36.00
Number exercisable (in shares) | shares 14,212
Weighted average exercise price options exercisable (in dollars per share) $ 36.00
$40.00 to $41.95  
Exercise price range, lower range (in dollars per share) 40.00
Exercise price range, upper range (in dollars per share) $ 41.95
Number outstanding (in shares) | shares 20,049
Weighted average remaining contractual life (Year) 6 years 21 days
Weighted average exercise price options outstanding (in dollars per share) $ 40.10
Number exercisable (in shares) | shares 15,515
Weighted average exercise price options exercisable (in dollars per share) $ 40.13
$42.65 to $48.50  
Exercise price range, lower range (in dollars per share) 42.65
Exercise price range, upper range (in dollars per share) $ 48.50
Number outstanding (in shares) | shares 59,572
Weighted average remaining contractual life (Year) 4 years 9 months 25 days
Weighted average exercise price options outstanding (in dollars per share) $ 43.86
Number exercisable (in shares) | shares 49,254
Weighted average exercise price options exercisable (in dollars per share) $ 43.91
$53.87 to $56.26  
Exercise price range, lower range (in dollars per share) 53.31
Exercise price range, upper range (in dollars per share) $ 56.26
Number outstanding (in shares) | shares 47,100
Weighted average remaining contractual life (Year) 8 years 8 months 12 days
Weighted average exercise price options outstanding (in dollars per share) $ 53.57
Number exercisable (in shares) | shares 5,850
Weighted average exercise price options exercisable (in dollars per share) $ 53.87