CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) shares in Thousands, $ in Thousands |
Total |
Common Stock |
Treasury - Common Stock |
Additional Paid-In Capital |
Retained Earnings |
Accumulated Other Comprehensive Income (Loss) |
| Beginning balance (in shares) at Dec. 31, 2024 |
|
38,058
|
|
|
|
|
| Beginning balance at Dec. 31, 2024 |
$ 212,530
|
$ 38
|
$ (47,380)
|
$ 122,534
|
$ 151,256
|
$ (13,918)
|
| Beginning balance (in shares) at Dec. 31, 2024 |
|
|
3,724
|
|
|
|
| Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
| Net income |
14,505
|
|
|
|
14,505
|
|
| Foreign currency translation adjustment, net of tax |
2,674
|
|
|
|
|
2,674
|
| Stock-based compensation |
2,776
|
|
|
2,776
|
|
|
| Vesting of restricted stock awards (in shares) |
|
179
|
|
|
|
|
| Tax payments for stock issuances (in shares) |
|
(80)
|
|
|
|
|
| Tax payments for stock issuances |
(1,327)
|
|
|
(1,327)
|
|
|
| Dividends declared |
(15)
|
|
|
|
(15)
|
|
| Pension adjustment, net of tax |
(24)
|
|
|
|
|
(24)
|
| Ending balance (in shares) at Mar. 31, 2025 |
|
38,157
|
|
|
|
|
| Ending balance at Mar. 31, 2025 |
231,119
|
$ 38
|
$ (47,380)
|
123,983
|
165,746
|
(11,268)
|
| Ending balance (in shares) at Mar. 31, 2025 |
|
|
3,724
|
|
|
|
| Beginning balance (in shares) at Dec. 31, 2024 |
|
38,058
|
|
|
|
|
| Beginning balance at Dec. 31, 2024 |
212,530
|
$ 38
|
$ (47,380)
|
122,534
|
151,256
|
(13,918)
|
| Beginning balance (in shares) at Dec. 31, 2024 |
|
|
3,724
|
|
|
|
| Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
| Net income |
22,847
|
|
|
|
|
|
| Foreign currency translation adjustment, net of tax |
8,221
|
|
|
|
|
|
| Pension adjustment, net of tax |
(48)
|
|
|
|
|
|
| Ending balance (in shares) at Jun. 30, 2025 |
|
38,251
|
|
|
|
|
| Ending balance at Jun. 30, 2025 |
242,507
|
$ 38
|
$ (47,380)
|
126,356
|
169,238
|
(5,745)
|
| Ending balance (in shares) at Jun. 30, 2025 |
|
|
3,724
|
|
|
|
| Beginning balance (in shares) at Mar. 31, 2025 |
|
38,157
|
|
|
|
|
| Beginning balance at Mar. 31, 2025 |
231,119
|
$ 38
|
$ (47,380)
|
123,983
|
165,746
|
(11,268)
|
| Beginning balance (in shares) at Mar. 31, 2025 |
|
|
3,724
|
|
|
|
| Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
| Net income |
8,342
|
|
|
|
8,342
|
|
| Foreign currency translation adjustment, net of tax |
5,547
|
|
|
|
|
5,547
|
| Stock-based compensation |
3,451
|
|
|
3,451
|
|
|
| Vesting of restricted stock awards (in shares) |
|
157
|
|
|
|
|
| Tax payments for stock issuances (in shares) |
|
(63)
|
|
|
|
|
| Tax payments for stock issuances |
(1,078)
|
|
|
(1,078)
|
|
|
| Dividends declared |
(4,850)
|
|
|
|
(4,850)
|
|
| Pension adjustment, net of tax |
(24)
|
|
|
|
|
(24)
|
| Ending balance (in shares) at Jun. 30, 2025 |
|
38,251
|
|
|
|
|
| Ending balance at Jun. 30, 2025 |
$ 242,507
|
$ 38
|
$ (47,380)
|
126,356
|
169,238
|
(5,745)
|
| Ending balance (in shares) at Jun. 30, 2025 |
|
|
3,724
|
|
|
|
| Beginning balance (in shares) at Dec. 31, 2025 |
37,361
|
37,361
|
|
|
|
|
| Beginning balance at Dec. 31, 2025 |
$ 271,843
|
$ 37
|
$ (60,521)
|
128,651
|
209,821
|
(6,145)
|
| Beginning balance (in shares) at Dec. 31, 2025 |
4,730
|
|
4,730
|
|
|
|
| Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
| Net income |
$ 11,565
|
|
|
|
11,565
|
|
| Foreign currency translation adjustment, net of tax |
(1,887)
|
|
|
|
|
(1,887)
|
| Stock-based compensation |
1,876
|
|
|
1,876
|
|
|
| Vesting of restricted stock awards (in shares) |
|
220
|
|
|
|
|
| Tax payments for stock issuances (in shares) |
|
(91)
|
|
|
|
|
| Tax payments for stock issuances |
(986)
|
|
|
(986)
|
|
|
| Share repurchases, inclusive of excise tax (in shares) |
|
(508)
|
508
|
|
|
|
| Share repurchases, inclusive of excise tax |
(5,401)
|
|
$ (5,401)
|
|
|
|
| Dividends declared |
(4,963)
|
|
|
|
(4,963)
|
|
| Pension adjustment, net of tax |
(31)
|
|
|
|
|
(31)
|
| Ending balance (in shares) at Mar. 31, 2026 |
|
36,982
|
|
|
|
|
| Ending balance at Mar. 31, 2026 |
$ 272,016
|
$ 37
|
$ (65,922)
|
129,541
|
216,423
|
(8,063)
|
| Ending balance (in shares) at Mar. 31, 2026 |
|
|
5,238
|
|
|
|
| Beginning balance (in shares) at Dec. 31, 2025 |
37,361
|
37,361
|
|
|
|
|
| Beginning balance at Dec. 31, 2025 |
$ 271,843
|
$ 37
|
$ (60,521)
|
128,651
|
209,821
|
(6,145)
|
| Beginning balance (in shares) at Dec. 31, 2025 |
4,730
|
|
4,730
|
|
|
|
| Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
| Net income |
$ 18,346
|
|
|
|
|
|
| Foreign currency translation adjustment, net of tax |
(2,253)
|
|
|
|
|
|
| Pension adjustment, net of tax |
$ (60)
|
|
|
|
|
|
| Ending balance (in shares) at Jun. 30, 2026 |
36,783
|
36,783
|
|
|
|
|
| Ending balance at Jun. 30, 2026 |
$ 273,480
|
$ 37
|
$ (68,884)
|
132,725
|
218,060
|
(8,458)
|
| Ending balance (in shares) at Jun. 30, 2026 |
5,469
|
|
5,469
|
|
|
|
| Beginning balance (in shares) at Mar. 31, 2026 |
|
36,982
|
|
|
|
|
| Beginning balance at Mar. 31, 2026 |
$ 272,016
|
$ 37
|
$ (65,922)
|
129,541
|
216,423
|
(8,063)
|
| Beginning balance (in shares) at Mar. 31, 2026 |
|
|
5,238
|
|
|
|
| Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
| Net income |
6,781
|
|
|
|
6,781
|
|
| Foreign currency translation adjustment, net of tax |
(366)
|
|
|
|
|
(366)
|
| Stock-based compensation |
3,442
|
|
|
3,442
|
|
|
| Vesting of restricted stock awards (in shares) |
|
53
|
|
|
|
|
| Tax payments for stock issuances (in shares) |
|
(21)
|
|
|
|
|
| Tax payments for stock issuances |
(258)
|
|
|
(258)
|
|
|
| Share repurchases, inclusive of excise tax (in shares) |
|
(231)
|
231
|
|
|
|
| Share repurchases, inclusive of excise tax |
(2,962)
|
|
$ (2,962)
|
|
|
|
| Dividends declared |
(5,144)
|
|
|
|
(5,144)
|
|
| Pension adjustment, net of tax |
$ (29)
|
|
|
|
|
(29)
|
| Ending balance (in shares) at Jun. 30, 2026 |
36,783
|
36,783
|
|
|
|
|
| Ending balance at Jun. 30, 2026 |
$ 273,480
|
$ 37
|
$ (68,884)
|
$ 132,725
|
$ 218,060
|
$ (8,458)
|
| Ending balance (in shares) at Jun. 30, 2026 |
5,469
|
|
5,469
|
|
|
|