v3.26.3
Revenue - Disaggregated Revenues (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]        
Revenue $ 204,621 $ 195,549 $ 566,787 $ 542,569
United States        
Disaggregation of Revenue [Line Items]        
Revenue 144,628 134,972 401,271 383,726
Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 19,062 23,019 49,429 53,079
Europe        
Disaggregation of Revenue [Line Items]        
Revenue 38,547 34,972 110,821 99,347
Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 2,384 2,586 5,266 6,417
Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 99,406 105,669 279,236 305,049
Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 28,551 24,207 83,358 68,613
Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 24,694 22,602 63,798 60,776
Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 15,887 14,484 37,323 30,930
Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 10,200 8,774 29,598 30,076
Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 17,957 10,569 45,472 25,850
Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 2,457 3,709 9,893 9,455
Other        
Disaggregation of Revenue [Line Items]        
Revenue 5,469 5,535 18,109 11,820
Operating segments        
Disaggregation of Revenue [Line Items]        
Revenue 210,640 200,166 583,461 555,182
Operating segments | North America        
Disaggregation of Revenue [Line Items]        
Revenue 166,362 160,609 458,312 437,503
Operating segments | North America | United States        
Disaggregation of Revenue [Line Items]        
Revenue 144,180 134,481 399,107 377,825
Operating segments | North America | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 20,882 24,342 54,303 54,959
Operating segments | North America | Europe        
Disaggregation of Revenue [Line Items]        
Revenue 938 1,301 2,909 2,946
Operating segments | North America | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 362 485 1,993 1,773
Operating segments | North America | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 89,801 97,484 252,729 275,849
Operating segments | North America | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 20,039 17,675 59,138 48,530
Operating segments | North America | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 16,114 15,469 39,764 38,804
Operating segments | North America | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 13,491 10,074 31,381 22,618
Operating segments | North America | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 6,196 4,722 17,680 17,100
Operating segments | North America | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 12,065 5,285 29,100 12,447
Operating segments | North America | Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 2,043 3,694 7,422 9,329
Operating segments | North America | Other        
Disaggregation of Revenue [Line Items]        
Revenue 6,613 6,206 21,098 12,826
Operating segments | International        
Disaggregation of Revenue [Line Items]        
Revenue 39,994 35,521 114,294 107,812
Operating segments | International | United States        
Disaggregation of Revenue [Line Items]        
Revenue 521 549 1,331 4,797
Operating segments | International | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 7 95 24 2,941
Operating segments | International | Europe        
Disaggregation of Revenue [Line Items]        
Revenue 38,984 34,571 112,114 98,485
Operating segments | International | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 482 306 825 1,589
Operating segments | International | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 9,489 8,125 26,202 28,714
Operating segments | International | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 8,308 6,395 23,814 19,690
Operating segments | International | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 8,288 6,773 23,020 20,887
Operating segments | International | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 1,964 3,714 4,406 6,796
Operating segments | International | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 3,982 4,014 11,857 12,930
Operating segments | International | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 4,060 3,610 11,961 10,192
Operating segments | International | Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 414 15 2,471 126
Operating segments | International | Other        
Disaggregation of Revenue [Line Items]        
Revenue 3,489 2,875 10,563 8,477
Operating segments | Products & Systems        
Disaggregation of Revenue [Line Items]        
Revenue 4,284 4,036 10,855 9,867
Operating segments | Products & Systems | United States        
Disaggregation of Revenue [Line Items]        
Revenue 1,709 1,294 5,645 3,935
Operating segments | Products & Systems | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 109 121 502 349
Operating segments | Products & Systems | Europe        
Disaggregation of Revenue [Line Items]        
Revenue 921 826 2,239 2,027
Operating segments | Products & Systems | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 1,545 1,795 2,469 3,556
Operating segments | Products & Systems | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 116 60 305 486
Operating segments | Products & Systems | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 204 137 406 393
Operating segments | Products & Systems | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 292 360 1,014 1,085
Operating segments | Products & Systems | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 432 696 1,536 1,516
Operating segments | Products & Systems | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 22 38 61 46
Operating segments | Products & Systems | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 1,832 1,674 4,411 3,211
Operating segments | Products & Systems | Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Operating segments | Products & Systems | Other        
Disaggregation of Revenue [Line Items]        
Revenue 1,386 1,071 3,122 3,130
Corp/Elim        
Disaggregation of Revenue [Line Items]        
Revenue (6,019) (4,617) (16,674) (12,613)
Corp/Elim | United States        
Disaggregation of Revenue [Line Items]        
Revenue (1,782) (1,352) (4,812) (2,831)
Corp/Elim | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue (1,936) (1,539) (5,400) (5,170)
Corp/Elim | Europe        
Disaggregation of Revenue [Line Items]        
Revenue (2,296) (1,726) (6,441) (4,111)
Corp/Elim | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue (5) 0 (21) (501)
Corp/Elim | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 0 0 0 0
Corp/Elim | Other        
Disaggregation of Revenue [Line Items]        
Revenue $ (6,019) $ (4,617) $ (16,674) $ (12,613)