v3.26.1
Fair Value Measurements - Narrative (Details)
$ in Thousands
1 Months Ended 3 Months Ended
Apr. 30, 2026
USD ($)
Feb. 28, 2026
USD ($)
Jan. 31, 2026
USD ($)
Feb. 28, 2025
USD ($)
Mar. 31, 2026
USD ($)
payment
Mar. 31, 2025
USD ($)
Dec. 31, 2025
USD ($)
Dec. 31, 2024
USD ($)
Sep. 30, 2024
USD ($)
Nov. 30, 2023
USD ($)
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Interest income         $ 15 $ 370        
Acquisition-related retention expense and contingent consideration         149 427        
Interest Rate Swap                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gain (loss) on change in fair value of interest rate swap         100 (100)        
Other Noncurrent Assets                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Fair value of the interest rate swap         100   $ 100      
Industrial Air Transaction                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         6,500         $ 3,200
Business combination, payment for contingent consideration liability   $ 3,500   $ 3,000            
Industrial Air Transaction | Earn Out Payment One                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         $ 3,000          
Number of earnout tranches | payment         2          
Earnout period         12 months          
Industrial Air Transaction | Earn Out Payment One | Maximum                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gross profits from acquired companies         $ 7,600          
Industrial Air Transaction | Earn Out Payment Two                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         $ 3,500          
Earnout period         12 months          
Industrial Air Transaction | Earn Out Payment Two | Maximum                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gross profits from acquired companies         $ 8,800          
Kent Island                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         5,000       $ 4,400  
Business combination, payment for contingent consideration liability     $ 2,500              
Kent Island | Earn Out Payment One                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         $ 2,500          
Number of earnout tranches | payment         2          
Earnout period         12 months          
Kent Island | Earn Out Payment One | Maximum                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gross profits from acquired companies         $ 3,300          
Kent Island | Earn Out Payment Two                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Earnout period         12 months          
Kent Island | Earn Out Payment Two | Maximum                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gross profits from acquired companies         $ 200          
Consolidated Mechanical                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         2,000     $ 800    
Consolidated Mechanical | Subsequent Event                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Business combination, payment for contingent consideration liability $ 900                  
Consolidated Mechanical | Earn Out Payment One                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Contingent consideration, liability         $ 1,000          
Number of earnout tranches | payment         2          
Earnout period         12 months          
Consolidated Mechanical | Earn Out Payment One | Maximum                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gross profits from acquired companies         $ 6,800          
Consolidated Mechanical | Earn Out Payment Two                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Earnout period         12 months          
Consolidated Mechanical | Earn Out Payment Two | Maximum                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Gross profits from acquired companies         $ 6,800          
Jake Marshall Transaction                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Acquisition-related retention expense and contingent consideration         100 400        
Level 1                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Interest income         100 $ 400        
Level 3 | A&R Wintrust Term Loan - term loan payable in quarterly installments of principal, (commencing in December 2021) plus interest through February 2026                    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]                    
Fair value of debt         $ 32,400