XML 57 R45.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Revenue from Customers - Narrative (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Dec. 31, 2023
Operating income (Loss)      
Disaggregation of Revenue [Line Items]      
Estimated construction gain (loss) before tax $ 21,528 $ 8,613  
Costs and Estimated Earnings in Excess of Billings      
Disaggregation of Revenue [Line Items]      
Contracts receivable unpaid project contract price $ 5,525   $ 5,225
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-04-01      
Disaggregation of Revenue [Line Items]      
Remaining performance obligation expected to be recognized over next twelve months 65.00%    
Remaining performance obligation period 12 months