| Reconciliation of Statutory Federal Income Tax Rate to Effective Rate | The following is a reconciliation of the statutory federal income tax rate to the effective rate reported in the financial statements: 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | Year Ended December 31, |  
| (percent of income before tax) |  | 2020 |  | 2019 |  | 2018 |  
| Provision for federal income taxes at the statutory rate |  | 21.0 | % |  | 21.0 | % |  | 21.0 | % |  
| State and local income taxes, net of federal benefit |  | 1.5 |  |  | 1.7 |  |  | 2.0 |  |  
| Non-United States income taxed at different rates |  | 2.1 |  |  | (0.1) |  |  | (0.1) |  |  
| Foreign tax credits |  | (0.9) |  |  | (0.1) |  |  | — |  |  
| Adjustment to deferred taxes |  | (1.2) |  |  | (2.1) |  |  | — |  |  
| Global Intangible Low-Taxed Income |  | 0.1 |  |  | — |  |  | 0.4 |  |  
| Research credits |  | (1.4) |  |  | (0.5) |  |  | (0.6) |  |  
| Withholding taxes |  | 0.5 |  |  | 0.3 |  |  | 0.4 |  |  
| Excess tax benefits from stock plans |  | (0.8) |  |  | (1.6) |  |  | (1.4) |  |  
| Provision for income taxes related to tax reform |  | — |  |  | — |  |  | 1.4 |  |  
| Other |  | 1.7 |  |  | (0.1) |  |  | 0.7 |  |  
| Actual provision for income taxes |  | 22.6 | % |  | 18.5 | % |  | 23.8 | % |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  | 
| Significant Components of Deferred Taxes | Significant components of the Company's deferred taxes consisted of the following: 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | December 31, |  
| (in thousands) |  | 2020 |  | 2019 |  
| Deferred tax assets: |  |  |  |  |  
| Accruals and allowances |  | $ | 47,667 |  |  | $ | 38,532 |  |  
| Capitalized inventory costs |  | 38,832 |  |  | 34,389 |  |  
| Stock compensation |  | 6,078 |  |  | 5,013 |  |  
| Net operating loss carryforwards |  | 24,253 |  |  | 23,660 |  |  
| Depreciation and amortization |  | 29,358 |  |  | 32,293 |  |  
| Tax credits |  | 844 |  |  | 2,329 |  |  
| Foreign currency |  | 2,418 |  |  | — |  |  
| Other |  | 2,304 |  |  | 2,258 |  |  
| Gross deferred tax assets |  | 151,754 |  |  | 138,474 |  |  
| Valuation allowance |  | (23,534) |  |  | (24,130) |  |  
| Net deferred tax assets |  | 128,220 |  |  | 114,344 |  |  
| Deferred tax liabilities: |  |  |  |  |  
| Depreciation and amortization |  | (16,206) |  |  | (15,738) |  |  
| Prepaid expenses |  | (2,085) |  |  | (2,661) |  |  
| Deferred tax liability associated with future repatriations |  | (19,008) |  |  | (19,847) |  |  
| Foreign currency |  | — |  |  | (3,610) |  |  
| Gross deferred tax liabilities |  | (37,299) |  |  | (41,856) |  |  
| Total net deferred taxes |  | $ | 90,921 |  |  | $ | 72,488 |  |  | 
| Reconciliation of Unrecognized Tax Benefits | A reconciliation of the beginning and ending amount of gross unrecognized tax benefits is as follows: 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | December 31, |  
| (in thousands) |  | 2020 |  | 2019 |  | 2018 |  
| Balance at beginning of year |  | $ | 12,478 |  |  | $ | 11,064 |  |  | $ | 10,512 |  |  
| Increases related to prior year tax positions |  | 1,903 |  |  | 4,374 |  |  | 490 |  |  
| Decreases related to prior year tax positions |  | (162) |  |  | (5,423) |  |  | (1,093) |  |  
| Increases related to current year tax positions |  | 906 |  |  | 4,991 |  |  | 1,818 |  |  
| Settlements |  | — |  |  | (1,464) |  |  | 319 |  |  
| Expiration of statute of limitations |  | (632) |  |  | (1,064) |  |  | (982) |  |  
| Balance at end of year |  | $ | 14,493 |  |  | $ | 12,478 |  |  | $ | 11,064 |  |  |