v3.25.2
Stock-Based Compensation - Stock Option Summary (Details) - Share-based Payment Arrangement, Option [Member] - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
6 Months Ended 12 Months Ended
Jun. 30, 2025
Jun. 30, 2024
Dec. 31, 2024
Dec. 31, 2023
Shares        
Outstanding, beginning balance (in shares) 274 363 363  
Granted (in shares) 0 0    
Exercised (in shares) (83) (19)    
Forfeited (in share) 0 0    
Expired (in shares) 0 0    
Outstanding, ending balance (in shares) 191 344 274 363
Exercisable (in shares) 191      
Weighted Average Exercise Price per Share        
Outstanding, beginning balance, weighted average exercise price per share (in dollars per share) $ 64.55 $ 61.36 $ 61.36  
Granted, weighted average exercise price (in dollars per share) 0 0    
Exercised, weighted average exercise price (in dollars per share) 39.28 44.74    
Forfeited, weighted average grant date fair value (in dollars per share) 0 0    
Expired weighted average exercise price (in dollars per share) 0 0    
Outstanding, ending balance, weighted average exercise price per share (in dollars per share) 75.51 $ 62.27 $ 64.55 $ 61.36
Exercisable, weighted average exercise price (in usd per share) $ 75.51      
Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]        
Outstanding, weighted average remaining contractual life 3 years 7 months 6 days 3 years 6 months 3 years 2 months 12 days 4 years
Outstanding, beginning balance, aggregate intrinsic value $ 12,087 $ 5,886 $ 5,886  
Granted, weighted average grant date fair value $ 0 $ 0    
Exercised, aggregate intrinsic value $ 6,259 $ 779    
Outstanding, weighted average remaining contractual life 3 years 7 months 6 days 3 years 6 months 3 years 2 months 12 days 4 years
Outstanding, ending balance, aggregate intrinsic value $ 10,745 $ 12,626 $ 12,087 $ 5,886
Exercisable, weighted average remaining contractual term 3 years 7 months 6 days      
Exercisable, aggregate intrinsic value $ 10,745