v3.24.2.u1
Revenue Recognition - Narrative (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Jan. 01, 2023
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Contract assets $ 5,424   $ 17,424 $ 3,600
Contract liabilities 71,418   $ 63,709  
Revenue recognized 63,700 $ 57,100    
Transaction price allocated to unsatisfied performance obligations 1,340,809      
Contract Services        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations 1,300,000      
Other Services        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations $ 20,400      
Minimum        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Term of contract 1 year      
Maximum        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Term of contract 7 years      
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations $ 440,104      
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01 | Other Services        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations 19,800      
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations 513,151      
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-01-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations 257,150      
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-01-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations 72,925      
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2028-01-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Transaction price allocated to unsatisfied performance obligations $ 57,479