v3.26.1
Organization, Business and Basis of Presentation (Details)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended 12 Months Ended
Jun. 30, 2026
USD ($)
$ / shares
Mar. 31, 2026
USD ($)
Jun. 30, 2025
USD ($)
$ / shares
Mar. 31, 2025
USD ($)
Jun. 30, 2026
USD ($)
segment
$ / shares
Jun. 30, 2025
USD ($)
$ / shares
Dec. 31, 2025
USD ($)
Organization Consolidation and Presentation of Financial Statements [Line Items]              
Number of business segments (segment) | segment         2    
Revenue recognized, related to change orders and claims included as contract price adjustments         $ 11,900   $ 23,500
Increase (decrease) in operating income $ 67,945   $ 39,787   132,667 $ 74,077  
Increase (decrease) in net income $ 49,851 $ 46,800 $ 26,466 $ 23,308 $ 96,651 $ 49,774  
Increase (decrease) in diluted earnings per common share (in dollars per share) | $ / shares $ 3.17   $ 1.70   $ 6.15 $ 3.15  
Foreign currency gains (losses) $ (1,000)   $ (500)   $ (2,000) $ (800)  
Contracts Accounted for under Percentage of Completion              
Organization Consolidation and Presentation of Financial Statements [Line Items]              
Increase (decrease) in consolidated gross margin 0.90%   (1.00%)   0.70% (1.20%)  
Increase (decrease) in operating income $ 9,800   $ (8,900)   $ 14,700 $ (21,300)  
Increase (decrease) in net income $ 6,000   $ (6,700)   $ 7,100 $ (15,700)  
Increase (decrease) in diluted earnings per common share (in dollars per share) | $ / shares $ 0.38   $ (0.43)   $ 0.45 $ (0.99)