v3.26.1
Revenue - Additional Information (Details) - USD ($)
3 Months Ended
Mar. 31, 2026
Mar. 31, 2025
Dec. 31, 2025
Disaggregation of Revenue [Line Items]      
Remaining performance obligations $ 524,049,423   $ 516,764,766
Increase in Revenue Resulted from Performance Obligation Satisfied in Prior Period $ 674,000 $ 777,000  
Standalone Paving Contracts      
Disaggregation of Revenue [Line Items]      
Contracts completion term one to three months    
Revenue | Customer | Short Duration Contracts      
Disaggregation of Revenue [Line Items]      
Percentage of revenue 3.00% 2.00%  
Revenue | Customer | Fixed Price Contracts      
Disaggregation of Revenue [Line Items]      
Percentage of revenue 99.00% 99.00%  
Revenue | Customer | Time and Material Billed Contracts      
Disaggregation of Revenue [Line Items]      
Percentage of revenue 1.00% 1.00%  
Private Sector Customers      
Disaggregation of Revenue [Line Items]      
Contracts completion term 12 to 18 months    
Private Sector Customers | Revenue | Customer      
Disaggregation of Revenue [Line Items]      
Percentage of revenue 93.00% 96.00%  
Public Sector Customers | Revenue | Customer      
Disaggregation of Revenue [Line Items]      
Percentage of revenue 7.00% 4.00%