v3.26.1
Segment Information (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Mar. 31, 2026
Jun. 30, 2025
Mar. 31, 2025
Jun. 30, 2026
Jun. 30, 2025
Dec. 31, 2025
Segment Reporting Information [Line Items]              
Contract revenues $ 221,878   $ 205,286   $ 438,179 $ 393,939  
Cost of contract revenues 198,951   179,489   389,373 345,127  
Gross profit 22,927   25,797   48,806 48,812  
Selling, general and administrative expenses 24,395   22,774   51,104 45,319  
Gain on disposal of assets, net (153)   (409)   (188) (772)  
Operating income (loss) (1,315)   3,432   (2,110) 4,265  
Interest expense (2,505)   (2,920)   (4,036) (5,254)  
Other income 149   117   310 344  
Income (loss) before income taxes (3,671)   629   (5,836) (645)  
Income tax (benefit) expense 474   (212)   (6,378) (72)  
Net Income (Loss) (4,145) $ 4,687 841 $ (1,414) 542 (573)  
Total assets 496,222   432,723   496,222 432,723 $ 414,652
Property and equipment, net 129,629   97,677   129,629 97,677 $ 88,210
Depreciation and amortization 7,004   5,231   13,391 10,634  
Capital expenditures 11,533   7,132   20,108 16,165  
General Corporate              
Segment Reporting Information [Line Items]              
Selling, general and administrative expenses 13,215   12,815   28,326 26,113  
Gain on disposal of assets, net     7     7  
Operating income (loss) (13,215)   (12,822)   (28,326) (26,120)  
Total assets 51,857   5,036   51,857 5,036  
Property and equipment, net 16,056   13,876   16,056 13,876  
Depreciation and amortization 712   147   1,418 300  
Capital expenditures 69   5,012   176 10,676  
Marine              
Segment Reporting Information [Line Items]              
Contract revenues 130,843   135,302   240,972 262,465  
Marine | Operating Segments              
Segment Reporting Information [Line Items]              
Contract revenues 130,842   135,302   240,971 262,465  
Cost of contract revenues 115,658   115,156   211,208 223,794  
Gross profit 15,184   20,146   29,763 38,671  
Selling, general and administrative expenses 7,623   6,718   15,621 13,091  
Gain on disposal of assets, net (140)   (233)   (139) (403)  
Operating income (loss) 7,701   13,661   14,281 25,983  
Total assets 352,974   340,797   352,974 340,797  
Property and equipment, net 108,572   79,800   108,572 79,800  
Depreciation and amortization 5,525   4,226   10,506 8,604  
Capital expenditures 8,375   1,863   15,412 5,170  
Concrete              
Segment Reporting Information [Line Items]              
Contract revenues 91,035   69,984   197,207 131,474  
Concrete | Operating Segments              
Segment Reporting Information [Line Items]              
Contract revenues 91,036   69,984   197,208 131,474  
Cost of contract revenues 83,293   64,333   178,165 121,333  
Gross profit 7,743   5,651   19,043 10,141  
Selling, general and administrative expenses 3,557   3,241   7,157 6,115  
Gain on disposal of assets, net (13)   (183)   (49) (376)  
Operating income (loss) 4,199   2,593   11,935 4,402  
Total assets 91,391   86,890   91,391 86,890  
Property and equipment, net 5,001   4,001   5,001 4,001  
Depreciation and amortization 767   858   1,467 1,730  
Capital expenditures $ 3,089   $ 257   $ 4,520 $ 319