v3.25.2
Segment Information - Additional Information (Details)
$ in Thousands
3 Months Ended 6 Months Ended 18 Months Ended
Jun. 30, 2025
USD ($)
segment
Jun. 30, 2024
USD ($)
segment
Jun. 30, 2025
USD ($)
segment
Jun. 30, 2024
USD ($)
segment
Jun. 30, 2025
segment
Segment Reporting Information [Line Items]          
Number of reportable segments | segment 2 2 2 2 2
Intersegment revenues accounted for at current market prices and not eliminated $ 600 $ 1,100 $ 1,600 $ 1,700  
Contract revenues 205,286 192,167 393,939 352,839  
Marine          
Segment Reporting Information [Line Items]          
Contract revenues 135,302 130,953 262,465 237,278  
Concrete          
Segment Reporting Information [Line Items]          
Contract revenues $ 69,984 $ 61,214 $ 131,474 $ 115,561