v3.26.3
Revenue Recognition - Schedule of revenue by contract type (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2026
Sep. 30, 2025
Sep. 30, 2026
Sep. 30, 2025
Disaggregation of Revenue [Line Items]        
Contract revenues $ 1,259,032 $ 950,400 $ 3,341,139 $ 2,684,345
Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 100.00% 100.00% 100.00% 100.00%
Fixed price        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 809,714 $ 541,837 $ 2,002,517 $ 1,517,192
Fixed price | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 64.30% 57.00% 59.90% 56.50%
Unit price        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 232,341 $ 224,697 $ 686,160 $ 605,734
Unit price | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 18.50% 23.60% 20.60% 22.60%
T&E        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 216,977 $ 183,866 $ 652,462 $ 561,419
T&E | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 17.20% 19.40% 19.50% 20.90%
T&D        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 554,544 $ 503,436 $ 1,619,536 $ 1,471,479
T&D | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 100.00% 100.00% 100.00% 100.00%
T&D | Fixed price        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 173,356 $ 160,811 $ 482,171 $ 512,379
T&D | Fixed price | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 31.30% 31.90% 29.80% 34.80%
T&D | Unit price        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 208,967 $ 204,438 $ 635,585 $ 547,562
T&D | Unit price | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 37.70% 40.60% 39.20% 37.20%
T&D | T&E        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 172,221 $ 138,187 $ 501,780 $ 411,538
T&D | T&E | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 31.00% 27.50% 31.00% 28.00%
C&I        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 704,488 $ 446,964 $ 1,721,603 $ 1,212,866
C&I | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 100.00% 100.00% 100.00% 100.00%
C&I | Fixed price        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 636,358 $ 381,026 $ 1,520,346 $ 1,004,813
C&I | Fixed price | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 90.30% 85.30% 88.30% 82.80%
C&I | Unit price        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 23,374 $ 20,259 $ 50,575 $ 58,172
C&I | Unit price | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 3.30% 4.50% 2.90% 4.80%
C&I | T&E        
Disaggregation of Revenue [Line Items]        
Contract revenues $ 44,756 $ 45,679 $ 150,682 $ 149,881
C&I | T&E | Product concentration risk | Revenue benchmark        
Disaggregation of Revenue [Line Items]        
Concentration risk, percent 6.40% 10.20% 8.80% 12.40%