XML 61 R50.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Construction Contracts - Additional Information (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Dec. 31, 2022
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Construction receivables retentions $ 32,700   $ 28,700  
Retentions 19,418 $ 18,311 21,414 $ 17,515
Construction        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Retentions 42,500   38,200  
Portion Attributable To Pending Contracts        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Pre-contract costs 1,500   $ 1,900  
Amortization of pre-contract costs $ 200 $ 300    
Minimum | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Expected completion of contracts 12 months      
Minimum | Construction | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Expected completion of contracts 12 months      
Maximum | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Expected completion of contracts 24 months      
Maximum | Construction | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01        
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]        
Expected completion of contracts 24 months