v3.25.2
Stock-based compensation - Additional Information (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended 12 Months Ended
Jun. 30, 2025
Jun. 30, 2024
Jun. 30, 2025
Jun. 30, 2024
Dec. 31, 2024
Apr. 20, 2021
Dec. 31, 2019
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Stock based compensation expense $ 1,007 $ 1,338 $ 2,108 $ 2,495      
Number of options granted (in shares) 0 0 0 0      
Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period     10 years        
Weighted average strike price $ 11.69   $ 11.69        
Options exercised 125,363   125,363        
Options outstanding number 422,256   422,256        
Options outstanding weighted average exercise price $ 14.93   $ 14.93        
Weighted average contractual life remaining     8 years 7 months 9 days        
Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Method Used     us-gaap:BlackScholesMertonModelMember        
2019 Omnibus Incentive Plan              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Payments based on the value of its common stock             2,000,000
Number of shares authorized           2,500,000  
Number of shares of the Company's common stock still available for issuance 1,589,590   1,589,590        
Employee Stock Option              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Options vested (in shares)     113,700        
Weighted average strike price $ 15.99   $ 15.99        
RSU              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Grants ( in shares) 58,795 78,306 323,137 422,560      
Vesting period (in years)     3 years        
RSU | Non Employee Director [Member]              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Grants ( in shares) 53,721 55,962 53,721 55,962      
Performance Shares              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Grants ( in shares) 0 0 169,062 110,710      
performance measurement period     3 years        
Percentage of weight on Return on Invested Capital     50.00%   50.00%    
Period over the weight on Return on Invested Capital     3 years   3 years    
Percentage of weight on EBITDA target     50.00%   50.00%    
Performance Shares | Minimum              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Threshold percentage of performance share units (PSU)     50.00%        
Performance Shares | Maximum              
Share Based Compensation Arrangement By Share Based Payment Award [Line Items]              
Threshold percentage of performance share units (PSU)     200.00%