v3.26.1
Revenue - Disaggregated Revenues (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Disaggregation of Revenue [Line Items]        
Revenue $ 193,132 $ 185,405 $ 362,166 $ 347,020
United States        
Disaggregation of Revenue [Line Items]        
Revenue 135,835 130,490 256,643 248,754
Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 18,947 16,942 30,367 30,060
Europe        
Disaggregation of Revenue [Line Items]        
Revenue 37,205 36,173 72,274 64,375
Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 1,145 1,800 2,882 3,831
Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 94,348 102,816 179,830 199,380
Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 27,168 24,002 54,807 44,406
Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 20,461 19,604 39,104 38,174
Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 14,911 11,793 21,436 16,446
Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 10,383 11,049 19,398 21,302
Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 14,227 8,060 27,515 15,281
Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 3,600 3,113 7,436 5,746
Other        
Disaggregation of Revenue [Line Items]        
Revenue 8,034 4,968 12,640 6,285
Operating segments        
Disaggregation of Revenue [Line Items]        
Revenue 198,557 189,809 372,821 355,016
Operating segments | North America        
Disaggregation of Revenue [Line Items]        
Revenue 156,629 147,992 291,950 276,894
Operating segments | North America | United States        
Disaggregation of Revenue [Line Items]        
Revenue 134,348 129,011 254,927 243,344
Operating segments | North America | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 20,662 17,202 33,421 30,617
Operating segments | North America | Europe        
Disaggregation of Revenue [Line Items]        
Revenue 1,246 979 1,971 1,645
Operating segments | North America | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 373 800 1,631 1,288
Operating segments | North America | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 86,044 92,634 162,928 178,365
Operating segments | North America | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 19,396 16,848 39,099 30,855
Operating segments | North America | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 12,525 11,647 23,650 23,335
Operating segments | North America | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 12,697 9,320 17,890 12,544
Operating segments | North America | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 6,263 5,877 11,484 12,378
Operating segments | North America | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 8,946 3,461 17,035 7,162
Operating segments | North America | Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 2,473 3,112 5,379 5,635
Operating segments | North America | Other        
Disaggregation of Revenue [Line Items]        
Revenue 8,285 5,093 14,485 6,620
Operating segments | International        
Disaggregation of Revenue [Line Items]        
Revenue 38,010 39,077 74,300 72,291
Operating segments | International | United States        
Disaggregation of Revenue [Line Items]        
Revenue 383 3,706 810 4,248
Operating segments | International | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 7 15 17 2,846
Operating segments | International | Europe        
Disaggregation of Revenue [Line Items]        
Revenue 37,399 35,132 73,130 63,914
Operating segments | International | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 221 224 343 1,283
Operating segments | International | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 8,219 9,943 16,713 20,589
Operating segments | International | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 7,603 7,014 15,506 13,295
Operating segments | International | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 7,447 7,597 14,732 14,114
Operating segments | International | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 1,652 2,097 2,442 3,082
Operating segments | International | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 4,093 5,172 7,875 8,916
Operating segments | International | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 3,621 4,020 7,901 6,582
Operating segments | International | Petrochemical        
Disaggregation of Revenue [Line Items]        
Revenue 1,127 1 2,057 111
Operating segments | International | Other        
Disaggregation of Revenue [Line Items]        
Revenue 4,248 3,233 7,074 5,602
Operating segments | Products & Systems        
Disaggregation of Revenue [Line Items]        
Revenue 3,918 2,740 6,571 5,831
Operating segments | Products & Systems | United States        
Disaggregation of Revenue [Line Items]        
Revenue 2,387 1,268 3,936 2,641
Operating segments | Products & Systems | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue 164 212 393 228
Operating segments | Products & Systems | Europe        
Disaggregation of Revenue [Line Items]        
Revenue 811 450 1,318 1,201
Operating segments | Products & Systems | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue 556 810 924 1,761
Operating segments | Products & Systems | Oil & Gas        
Disaggregation of Revenue [Line Items]        
Revenue 85 239 189 426
Operating segments | Products & Systems | Aerospace & Defense        
Disaggregation of Revenue [Line Items]        
Revenue 169 140 202 256
Operating segments | Products & Systems | Industrials        
Disaggregation of Revenue [Line Items]        
Revenue 489 360 722 725
Operating segments | Products & Systems | Power Generation & Transmission        
Disaggregation of Revenue [Line Items]        
Revenue 562 376 1,104 820
Operating segments | Products & Systems | Other Process Industries        
Disaggregation of Revenue [Line Items]        
Revenue 27 0 39 8
Operating segments | Products & Systems | Infrastructure, Research & Engineering        
Disaggregation of Revenue [Line Items]        
Revenue 1,660 579 2,579 1,537
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 926 1,046 1,736 2,059
Corp/Elim        
Disaggregation of Revenue [Line Items]        
Revenue (5,425) (4,404) (10,655) (7,996)
Corp/Elim | United States        
Disaggregation of Revenue [Line Items]        
Revenue (1,283) (3,495) (3,030) (1,479)
Corp/Elim | Other Americas        
Disaggregation of Revenue [Line Items]        
Revenue (1,886) (487) (3,464) (3,631)
Corp/Elim | Europe        
Disaggregation of Revenue [Line Items]        
Revenue (2,251) (388) (4,145) (2,385)
Corp/Elim | Asia-Pacific        
Disaggregation of Revenue [Line Items]        
Revenue (5) (34) (16) (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 $ (5,425) $ (4,404) $ (10,655) $ (7,996)