Consolidated Statements of Changes in Stockholders' Equity - USD ($) shares in Thousands, $ in Thousands | Total | Cumulative Effect, Period of Adoption, Adjustment [Member] | Common Stock [Member]Class A Common Stock [Member] | Common Stock [Member]Class B Common Stock [Member] | Additional Paid-In Capital [Member] | Accumulated Deficit [Member] | Accumulated Deficit [Member]Cumulative Effect, Period of Adoption, Adjustment [Member] | Accumulated Other Comprehensive Loss [Member] |
Beginning balance at Dec. 31, 2019 | $ 354,707 | $ (388) | $ 4 | $ 3 | $ 446,633 | $ (82,405) | $ (388) | $ (9,528) |
Beginning balance (in shares) at Dec. 31, 2019 | | | 41,271 | 31,131 | | | | |
Net income (loss) | 6,030 | | | | | 6,030 | | |
Exercise of stock options | 194 | | | | 194 | | | |
Exercise of stock options (in shares) | | | 285 | | | | | |
Vesting of restricted stock (in shares) | | | 143 | | | | | |
Conversion from Class B to Class A common stock | | | 80 | (80) | | | | |
Stock-based compensation | 3,043 | | | | 3,043 | | | |
Foreign currency translation, net of tax | (7,578) | | | | | | | (7,578) |
Retirement related benefit plans, net of tax | 137 | | | | | | | 137 |
Ending balance at Mar. 31, 2020 | 356,145 | | $ 4 | $ 3 | 449,870 | (76,763) | | (16,969) |
Ending balance (in shares) at Mar. 31, 2020 | | | 41,779 | 31,051 | | | | |
Beginning balance at Dec. 31, 2019 | 354,707 | $ (388) | $ 4 | $ 3 | 446,633 | (82,405) | $ (388) | (9,528) |
Beginning balance (in shares) at Dec. 31, 2019 | | | 41,271 | 31,131 | | | | |
Net income (loss) | (12,698) | | | | | | | |
Foreign currency translation, net of tax | (446) | | | | | | | |
Retirement related benefit plans, net of tax | 110 | | | | | | | |
Ending balance at Sep. 30, 2020 | 359,455 | | $ 4 | $ 3 | 464,803 | (95,491) | | (9,864) |
Ending balance (in shares) at Sep. 30, 2020 | | | 42,870 | 30,591 | | | | |
Beginning balance at Mar. 31, 2020 | 356,145 | | $ 4 | $ 3 | 449,870 | (76,763) | | (16,969) |
Beginning balance (in shares) at Mar. 31, 2020 | | | 41,779 | 31,051 | | | | |
Net income (loss) | (10,223) | | | | | (10,223) | | |
Exercise of stock options | 283 | | | | 283 | | | |
Exercise of stock options (in shares) | | | 197 | | | | | |
Vesting of restricted stock (in shares) | | | 52 | | | | | |
Conversion from Class B to Class A common stock | | | 80 | (80) | | | | |
Stock-based compensation | 4,586 | | | | 4,586 | | | |
Reclassification of mezzanine equity to permanent equity | 1,568 | | | | 1,568 | | | |
Foreign currency translation, net of tax | 2,560 | | | | | | | 2,560 |
Retirement related benefit plans, net of tax | 31 | | | | | | | 31 |
Ending balance at Jun. 30, 2020 | 354,950 | | $ 4 | $ 3 | 456,307 | (86,986) | | (14,378) |
Ending balance (in shares) at Jun. 30, 2020 | | | 42,108 | 30,971 | | | | |
Net income (loss) | (8,505) | | | | | (8,505) | | |
Issuance of common stock for acquisitions | 1,638 | | | | 1,638 | | | |
Issuance of common stock for acquisitions (in shares) | | | 40 | | | | | |
Exercise of stock options | 618 | | | | 618 | | | |
Exercise of stock options (in shares) | | | 328 | | | | | |
Vesting of restricted stock (in shares) | | | 14 | | | | | |
Conversion from Class B to Class A common stock | | | 380 | (380) | | | | |
Stock-based compensation | 6,240 | | | | 6,240 | | | |
Foreign currency translation, net of tax | 4,572 | | | | | | | 4,572 |
Retirement related benefit plans, net of tax | (58) | | | | | | | (58) |
Ending balance at Sep. 30, 2020 | 359,455 | | $ 4 | $ 3 | 464,803 | (95,491) | | (9,864) |
Ending balance (in shares) at Sep. 30, 2020 | | | 42,870 | 30,591 | | | | |
Beginning balance at Dec. 31, 2020 | 378,586 | | $ 4 | $ 3 | 474,669 | (93,293) | | (2,797) |
Beginning balance (in shares) at Dec. 31, 2020 | | | 44,216 | 30,111 | | | | |
Net income (loss) | 14,360 | | | | | 14,360 | | |
Exercise of stock options | 271 | | | | 271 | | | |
Exercise of stock options (in shares) | | | 490 | | | | | |
Vesting of restricted stock (in shares) | | | 278 | | | | | |
Conversion from Class B to Class A common stock | | | 510 | (510) | | | | |
Stock-based compensation | 9,644 | | | | 9,644 | | | |
Foreign currency translation, net of tax | (3,975) | | | | | | | (3,975) |
Retirement related benefit plans, net of tax | 143 | | | | | | | 143 |
Ending balance at Mar. 31, 2021 | 399,029 | | $ 4 | $ 3 | 484,584 | (78,933) | | (6,629) |
Ending balance (in shares) at Mar. 31, 2021 | | | 45,494 | 29,601 | | | | |
Beginning balance at Dec. 31, 2020 | 378,586 | | $ 4 | $ 3 | 474,669 | (93,293) | | (2,797) |
Beginning balance (in shares) at Dec. 31, 2020 | | | 44,216 | 30,111 | | | | |
Net income (loss) | (7,397) | | | | | | | |
Foreign currency translation, net of tax | (5,685) | | | | | | | |
Retirement related benefit plans, net of tax | 344 | | | | | | | |
Ending balance at Sep. 30, 2021 | 602,262 | | $ 5 | $ 3 | 711,082 | (100,690) | | (8,138) |
Ending balance (in shares) at Sep. 30, 2021 | | | 50,558 | 28,206 | | | | |
Beginning balance at Mar. 31, 2021 | 399,029 | | $ 4 | $ 3 | 484,584 | (78,933) | | (6,629) |
Beginning balance (in shares) at Mar. 31, 2021 | | | 45,494 | 29,601 | | | | |
Net income (loss) | (13,648) | | | | | (13,648) | | |
Exercise of stock options | 614 | | | | 614 | | | |
Exercise of stock options (in shares) | | | 334 | | | | | |
Vesting of restricted stock (in shares) | | | 54 | | | | | |
Conversion from Class B to Class A common stock | | | 510 | (510) | | | | |
Stock-based compensation | 10,626 | | | | 10,626 | | | |
Foreign currency translation, net of tax | 2,640 | | | | | | | 2,640 |
Retirement related benefit plans, net of tax | 84 | | | | | | | 84 |
Ending balance at Jun. 30, 2021 | 399,345 | | $ 4 | $ 3 | 495,824 | (92,581) | | (3,905) |
Ending balance (in shares) at Jun. 30, 2021 | | | 46,392 | 29,091 | | | | |
Net income (loss) | (8,109) | | | | | (8,109) | | |
Issuance of common stock in private placement, net of issuance costs | 199,872 | | $ 1 | | 199,871 | | | |
Issuance of common stock in private placement, net of issuance costs (in shares) | | | 2,936 | | | | | |
Issuance of common stock for acquisitions | 3,280 | | | | 3,280 | | | |
Issuance of common stock for acquisitions (in shares) | | | 53 | | | | | |
Exercise of stock options | 1,174 | | | | 1,174 | | | |
Exercise of stock options (in shares) | | | 264 | | | | | |
Vesting of restricted stock (in shares) | | | 28 | | | | | |
Conversion from Class B to Class A common stock | | | 885 | (885) | | | | |
Stock-based compensation | 10,933 | | | | 10,933 | | | |
Foreign currency translation, net of tax | (4,350) | | | | | | | (4,350) |
Retirement related benefit plans, net of tax | 117 | | | | | | | 117 |
Ending balance at Sep. 30, 2021 | $ 602,262 | | $ 5 | $ 3 | $ 711,082 | $ (100,690) | | $ (8,138) |
Ending balance (in shares) at Sep. 30, 2021 | | | 50,558 | 28,206 | | | | |