v3.25.4
Stock Option Plans - Summary of Options Outstanding (Details)
12 Months Ended
Dec. 31, 2025
$ / shares
shares
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Number outstanding | shares 1,369,902
Number exercisable | shares 1,140,156
$19.23 to $22.86  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of exercise prices, lower range $ 19.23
Range of exercise prices, upper range $ 22.86
Number outstanding | shares 285,954
Options outstanding weighted-average remaining contractual life (years) 3 years
Options outstanding weighted-average exercise price $ 21.52
Number exercisable | shares 285,954
Options exercisable weighted-average exercise price $ 21.52
$22.87 to $24.03  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of exercise prices, lower range 22.87
Range of exercise prices, upper range $ 24.03
Number outstanding | shares 263,512
Options outstanding weighted-average remaining contractual life (years) 4 years
Options outstanding weighted-average exercise price $ 23.44
Number exercisable | shares 263,512
Options exercisable weighted-average exercise price $ 23.44
$24.04 to $29.91  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of exercise prices, lower range 24.04
Range of exercise prices, upper range $ 29.91
Number outstanding | shares 241,187
Options outstanding weighted-average remaining contractual life (years) 4 years
Options outstanding weighted-average exercise price $ 27.31
Number exercisable | shares 208,941
Options exercisable weighted-average exercise price $ 27
$29.92 to $38.09  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of exercise prices, lower range 29.92
Range of exercise prices, upper range $ 38.09
Number outstanding | shares 255,124
Options outstanding weighted-average remaining contractual life (years) 7 years
Options outstanding weighted-average exercise price $ 32.51
Number exercisable | shares 158,624
Options exercisable weighted-average exercise price $ 32.88
$38.10 to $39.56  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Range of exercise prices, lower range 38.1
Range of exercise prices, upper range $ 39.56
Number outstanding | shares 324,125
Options outstanding weighted-average remaining contractual life (years) 7 years
Options outstanding weighted-average exercise price $ 40.03
Number exercisable | shares 223,125
Options exercisable weighted-average exercise price $ 39.78