v3.25.2
Share-Based Compensation - Options Activity (Details) - USD ($)
6 Months Ended 12 Months Ended
Jun. 30, 2025
Dec. 31, 2024
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]    
Beginning balance, options (in shares) 218,681  
Granted, options (in shares) 0  
Exercised, options (in shares) (111,156)  
Forfeited, options (in shares) (1,100)  
Canceled, options (in shares) 0  
Expired, options (in shares) (7,410)  
Ending balance, options (in shares) 99,015 218,681
Vested and exercisable, options (in shares) 99,015  
Weighted-Average Exercise Price    
Weighted-average exercise price, options outstanding (in US dollar per share)   $ 20.49
Weighted-average exercise price, vested and exercisable options (in US dollar per share) $ 21.52  
Weighted-Average Remaining Contractual Term (Years)    
Weighted-average remaining contractual term, options outstanding (years)   4 years 6 months
Weighted-average remaining contractual term, vested and exercisable options 3 years 10 months 24 days  
Aggregate Intrinsic Value (in thousands)    
Aggregate intrinsic value, options outstanding $ 639,300 $ 4,340,600