XML 50 R40.htm IDEA: XBRL DOCUMENT v3.25.3
Revenue (Details)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
USD ($)
segment
Sep. 30, 2024
USD ($)
segment
Sep. 30, 2025
USD ($)
segment
Sep. 30, 2024
USD ($)
segment
Disaggregation of Revenue [Line Items]        
Contract revenues $ 225,097 $ 226,675 $ 619,037 $ 579,514
Number of reportable segments | segment 2 2 2 2
Marine        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 142,943 $ 140,013 $ 405,409 $ 377,291
Marine | Construction        
Disaggregation of Revenue [Line Items]        
Contract revenues 116,815 123,141 336,128 327,955
Marine | Dredging        
Disaggregation of Revenue [Line Items]        
Contract revenues 23,761 12,902 58,372 39,649
Marine | Specialty Services        
Disaggregation of Revenue [Line Items]        
Contract revenues 2,367 3,970 10,909 9,687
Concrete        
Disaggregation of Revenue [Line Items]        
Contract revenues 82,154 86,662 213,628 202,223
Concrete | Structural        
Disaggregation of Revenue [Line Items]        
Contract revenues 11,482 15,572 37,785 44,040
Concrete | Light Commercial        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 70,672 $ 71,090 $ 175,843 $ 158,183