v3.26.1
Revenue from Contracts with Customers (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2026
Mar. 31, 2025
Disaggregation of Revenue [Line Items]    
Revenues $ 410,131 $ 353,471
Consolidation, Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues (71,499) (48,296)
Operating Segments Excluding Intersegment Elimination    
Disaggregation of Revenue [Line Items]    
Revenues 409,993 353,398
West | Consolidation, Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues (42,876) (28,899)
West | Operating Segments Excluding Intersegment Elimination    
Disaggregation of Revenue [Line Items]    
Revenues 210,984 208,018
Mountain | Consolidation, Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues (8,608) (3,645)
Mountain | Operating Segments Excluding Intersegment Elimination    
Disaggregation of Revenue [Line Items]    
Revenues 81,236 65,994
Central | Consolidation, Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues (10,579) (8,478)
Central | Operating Segments Excluding Intersegment Elimination    
Disaggregation of Revenue [Line Items]    
Revenues 101,194 67,841
Energy Services | Consolidation, Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues (5,642) (3,678)
Energy Services | Operating Segments Excluding Intersegment Elimination    
Disaggregation of Revenue [Line Items]    
Revenues 16,579 11,545
Corporate Services and Eliminations | Corporate, Non-Segment & Intersegment Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 138 73
Corporate Services and Eliminations | Consolidation, Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues (3,794) (3,596)
Aggregates    
Disaggregation of Revenue [Line Items]    
Revenues 103,513 81,392
Aggregates | West    
Disaggregation of Revenue [Line Items]    
Revenues 64,772 56,257
Aggregates | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 13,564 8,043
Aggregates | Central    
Disaggregation of Revenue [Line Items]    
Revenues 25,177 17,092
Aggregates | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Aggregates | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Ready-mix concrete    
Disaggregation of Revenue [Line Items]    
Revenues 144,545 108,458
Ready-mix concrete | West    
Disaggregation of Revenue [Line Items]    
Revenues 73,951 69,780
Ready-mix concrete | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 22,636 13,087
Ready-mix concrete | Central    
Disaggregation of Revenue [Line Items]    
Revenues 47,958 25,591
Ready-mix concrete | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Ready-mix concrete | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Asphalt    
Disaggregation of Revenue [Line Items]    
Revenues 20,975 16,134
Asphalt | West    
Disaggregation of Revenue [Line Items]    
Revenues 12,759 8,866
Asphalt | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 2,797 498
Asphalt | Central    
Disaggregation of Revenue [Line Items]    
Revenues 5,419 6,770
Asphalt | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Asphalt | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Liquid asphalt    
Disaggregation of Revenue [Line Items]    
Revenues 18,192 12,228
Liquid asphalt | West    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Liquid asphalt | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Liquid asphalt | Central    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Liquid asphalt | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 18,192 12,228
Liquid asphalt | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Other    
Disaggregation of Revenue [Line Items]    
Revenues 46,588 43,491
Other | West    
Disaggregation of Revenue [Line Items]    
Revenues 34,609 34,406
Other | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 1 3
Other | Central    
Disaggregation of Revenue [Line Items]    
Revenues 4,017 2,418
Other | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 4,029 2,995
Other | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 3,932 3,669
Contracting services public-sector    
Disaggregation of Revenue [Line Items]    
Revenues 114,056 99,227
Contracting services public-sector | West    
Disaggregation of Revenue [Line Items]    
Revenues 47,406 38,772
Contracting services public-sector | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 40,041 36,179
Contracting services public-sector | Central    
Disaggregation of Revenue [Line Items]    
Revenues 26,609 24,276
Contracting services public-sector | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Contracting services public-sector | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Contracting services private-sector    
Disaggregation of Revenue [Line Items]    
Revenues 33,761 40,837
Contracting services private-sector | West    
Disaggregation of Revenue [Line Items]    
Revenues 20,363 28,836
Contracting services private-sector | Mountain    
Disaggregation of Revenue [Line Items]    
Revenues 10,805 11,829
Contracting services private-sector | Central    
Disaggregation of Revenue [Line Items]    
Revenues 2,593 172
Contracting services private-sector | Energy Services    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Contracting services private-sector | Corporate Services and Eliminations    
Disaggregation of Revenue [Line Items]    
Revenues $ 0 $ 0