v3.26.3
Revenue - Disaggregation of revenue by customer type and contract type (Details) - USD ($)
$ in Millions
3 Months Ended 9 Months Ended
Sep. 30, 2026
Sep. 30, 2025
Sep. 30, 2026
Sep. 30, 2025
Disaggregation of Revenue        
Revenue $ 1,952.4 $ 2,178.4 $ 5,200.5 $ 5,717.3
Fixed Price        
Disaggregation of Revenue        
Revenue 657.7 1,036.9 1,992.9 2,850.6
Unit Price        
Disaggregation of Revenue        
Revenue 674.5 619.4 1,891.6 1,691.7
Cost Reimbursable        
Disaggregation of Revenue        
Revenue 620.2 522.1 1,316.0 1,175.0
MSA        
Disaggregation of Revenue        
Revenue 835.0 675.7 2,115.4 1,768.7
Non-MSA        
Disaggregation of Revenue        
Revenue 1,117.4 1,502.7 3,085.1 3,948.6
Intersegment eliminations        
Disaggregation of Revenue        
Revenue (42.3) (44.8) (95.0) (107.5)
Intersegment eliminations | Fixed Price        
Disaggregation of Revenue        
Revenue (34.7) (32.6) (77.3) (83.8)
Intersegment eliminations | Unit Price        
Disaggregation of Revenue        
Revenue   (5.6) (0.7) (15.5)
Intersegment eliminations | Cost Reimbursable        
Disaggregation of Revenue        
Revenue (7.6) (6.6) (17.0) (8.2)
Intersegment eliminations | MSA        
Disaggregation of Revenue        
Revenue (18.4) (4.8) (18.4) (5.7)
Intersegment eliminations | Non-MSA        
Disaggregation of Revenue        
Revenue (23.9) (40.0) (76.6) (101.8)
Utilities | Operating Segment        
Disaggregation of Revenue        
Revenue 770.9 737.5 2,116.4 1,993.9
Utilities | Operating Segment | Fixed Price        
Disaggregation of Revenue        
Revenue 116.6 118.3 335.6 306.8
Utilities | Operating Segment | Unit Price        
Disaggregation of Revenue        
Revenue 507.6 466.8 1,382.4 1,254.9
Utilities | Operating Segment | Cost Reimbursable        
Disaggregation of Revenue        
Revenue 146.7 152.4 398.4 432.2
Utilities | Operating Segment | MSA        
Disaggregation of Revenue        
Revenue 721.9 555.1 1,779.0 1,546.6
Utilities | Operating Segment | Non-MSA        
Disaggregation of Revenue        
Revenue 49.0 182.4 337.4 447.3
Utilities | Intersegment eliminations        
Disaggregation of Revenue        
Revenue 24.0 44.6 76.6 107.3
Energy | Operating Segment        
Disaggregation of Revenue        
Revenue 1,223.8 1,485.7 3,179.1 3,830.9
Energy | Operating Segment | Fixed Price        
Disaggregation of Revenue        
Revenue 575.8 951.2 1,734.6 2,627.6
Energy | Operating Segment | Unit Price        
Disaggregation of Revenue        
Revenue 166.9 158.2 509.9 452.3
Energy | Operating Segment | Cost Reimbursable        
Disaggregation of Revenue        
Revenue 481.1 376.3 934.6 751.0
Energy | Operating Segment | MSA        
Disaggregation of Revenue        
Revenue 131.5 125.4 354.8 227.8
Energy | Operating Segment | Non-MSA        
Disaggregation of Revenue        
Revenue 1,092.3 1,360.3 2,824.3 3,603.1
Energy | Intersegment eliminations        
Disaggregation of Revenue        
Revenue $ 18.3 $ 0.2 $ 18.4 $ 0.2