Note 15 - Share-based Payments - Summary of Exercise Prices, Weighted Average Remaining Contractual Life and Intrinsic Values of Outstanding Options (Details) - USD ($) $ / shares in Units, $ in Thousands | 3 Months Ended | |
Mar. 31, 2022 | Mar. 31, 2021 |
Number outstanding (in shares) | 883,254 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 64.37 | |
Weighted average remaining contractual life, options outstanding (Year) | 4 years 3 months 18 days | |
Aggregate intrinsic value, options outstanding | $ 6,456 | |
Number exercisable (in shares) | 405,846 | 378,258 |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 56.40 | |
Weighted average remaining contractual life, options exercisable (Year) | 2 years 10 months 24 days | |
Aggregate intrinsic value, options exercisable | $ 4,888 | |
Exercise Price Range 01 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 19.95 | |
Exercise price - upper limit (in dollars per share) | $ 19.95 | |
Number outstanding (in shares) | 7,000 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 19.95 | |
Weighted average remaining contractual life, options outstanding (Year) | 10 months 24 days | |
Aggregate intrinsic value, options outstanding | $ 338 | |
Number exercisable (in shares) | 7,000 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 19.95 | |
Weighted average remaining contractual life, options exercisable (Year) | 10 months 24 days | |
Aggregate intrinsic value, options exercisable | $ 338 | |
Exercise Price Range 02 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 21.10 | |
Exercise price - upper limit (in dollars per share) | $ 21.10 | |
Number outstanding (in shares) | 20,892 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 21.10 | |
Weighted average remaining contractual life, options outstanding (Year) | 9 months 18 days | |
Aggregate intrinsic value, options outstanding | $ 986 | |
Number exercisable (in shares) | 20,892 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 21.10 | |
Weighted average remaining contractual life, options exercisable (Year) | 9 months 18 days | |
Aggregate intrinsic value, options exercisable | $ 986 | |
Exercise Price Range 03 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 46.90 | |
Exercise price - upper limit (in dollars per share) | $ 48 | |
Number outstanding (in shares) | 11,000 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 47.35 | |
Weighted average remaining contractual life, options outstanding (Year) | 3 years 7 months 6 days | |
Aggregate intrinsic value, options outstanding | $ 231 | |
Number exercisable (in shares) | 6,000 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 47.17 | |
Weighted average remaining contractual life, options exercisable (Year) | 2 years 6 months | |
Aggregate intrinsic value, options exercisable | $ 127 | |
Exercise Price Range 04 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 51.82 | |
Exercise price - upper limit (in dollars per share) | $ 59.98 | |
Number outstanding (in shares) | 219,671 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 55.59 | |
Weighted average remaining contractual life, options outstanding (Year) | 2 years 4 months 24 days | |
Aggregate intrinsic value, options outstanding | $ 2,793 | |
Number exercisable (in shares) | 209,396 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 55.60 | |
Weighted average remaining contractual life, options exercisable (Year) | 2 years 2 months 12 days | |
Aggregate intrinsic value, options exercisable | $ 2,660 | |
Exercise Price Range 05 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 60.01 | |
Exercise price - upper limit (in dollars per share) | $ 68.41 | |
Number outstanding (in shares) | 335,716 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 62.03 | |
Weighted average remaining contractual life, options outstanding (Year) | 4 years 3 months 18 days | |
Aggregate intrinsic value, options outstanding | $ 2,108 | |
Number exercisable (in shares) | 149,858 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 63.13 | |
Weighted average remaining contractual life, options exercisable (Year) | 4 years | |
Aggregate intrinsic value, options exercisable | $ 777 | |
Exercise Price Range 06 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 70.13 | |
Exercise price - upper limit (in dollars per share) | $ 79.51 | |
Number outstanding (in shares) | 272,475 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 78.47 | |
Weighted average remaining contractual life, options outstanding (Year) | 6 years | |
Aggregate intrinsic value, options outstanding | $ 0 | |
Number exercisable (in shares) | 12,700 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 72.61 | |
Weighted average remaining contractual life, options exercisable (Year) | 5 years 8 months 12 days | |
Aggregate intrinsic value, options exercisable | $ 0 | |
Exercise Price Range 07 [Member] | | |
Exercise price - lower limit (in dollars per share) | $ 80.61 | |
Exercise price - upper limit (in dollars per share) | $ 82.07 | |
Number outstanding (in shares) | 16,500 | |
Weighted average exercise price per share, options outstanding (in dollars per share) | $ 81.27 | |
Weighted average remaining contractual life, options outstanding (Year) | 6 years 6 months | |
Aggregate intrinsic value, options outstanding | $ 0 | |
Number exercisable (in shares) | 0 | |
Weighted average remaining contractual life, options exercisable (in dollars per share) | $ 0 | |
Aggregate intrinsic value, options exercisable | $ 0 | |