| Stock-Based Compensation (Tables)
 | 12 Months Ended | 
| Dec. 31, 2023 | 
|---|
| Share-Based Payment Arrangement [Abstract] |  | 
| Schedule of Stock-Based Compensation Expense | STOCK-BASED COMPENSATION EXPENSE 
 Stock-based compensation expense consisted of the following:  
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | Year Ended December 31, |  
| (in thousands) |  | 2023 |  | 2022 |  | 2021 |  
| Cost of sales |  | $ | 311 |  |  | $ | 312 |  |  | $ | 313 |  |  
| SG&A expenses |  | 22,740 |  |  | 20,709 |  |  | 18,813 |  |  
| Pre-tax stock-based compensation expense |  | 23,051 |  |  | 21,021 |  |  | 19,126 |  |  
| Income tax benefits |  | (5,365) |  |  | (4,867) |  |  | (4,465) |  |  
| Total stock-based compensation expense, net of tax |  | $ | 17,686 |  |  | $ | 16,154 |  |  | $ | 14,661 |  |  | 
| Schedule of Weighted Average Assumptions | 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | Year Ended December 31, |  
|  |  | 2023 |  | 2022 |  | 2021 |  
| Expected option term |  | 4.39 years |  | 4.36 years |  | 4.35 years |  
| Expected stock price volatility |  | 27.37% |  | 25.38% |  | 24.88% |  
| Risk-free interest rate |  | 4.03% |  | 1.72% |  | 0.54% |  
| Expected annual dividend yield |  | 1.36% |  | 1.26% |  | 1.09% |  
| Weighted average grant date fair value per stock option granted |  | $22.61 |  | $18.33 |  | $17.95 |  | 
| Summary of Stock Option Activity | The following table summarizes stock option activity under the Plan: 
 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | Number of Options
 |  | Weighted Average
 Exercise
 Price
 |  | Weighted Average Remaining Contractual Life |  | 
Aggregate Intrinsic Value (1) 
 (in thousands) |  
| Options outstanding as of December 31, 2020 |  | 1,919,163 |  |  | $ | 74.45 |  |  | 7.19 |  | $ | 29,489 |  |  
| Granted |  | 687,772 |  |  | 95.90 |  |  |  |  |  |  
| Forfeited or expired |  | (213,444) |  |  | 89.96 |  |  |  |  |  |  
| Exercised |  | (459,957) |  |  | 62.58 |  |  |  |  |  |  
| Options outstanding as of December 31, 2021 |  | 1,933,534 |  |  | 83.19 |  |  | 7.26 |  | 29,889 |  |  
| Granted |  | 561,295 |  |  | 89.25 |  |  |  |  |  |  
| Forfeited or expired |  | (223,813) |  |  | 91.09 |  |  |  |  |  |  
| Exercised |  | (116,109) |  |  | 56.75 |  |  |  |  |  |  
| Options outstanding as of December 31, 2022 |  | 2,154,907 |  |  | 85.37 |  |  | 7.02 |  | 13,929 |  |  
| Granted |  | 500,219 |  |  | 88.39 |  |  |  |  |  |  
| Forfeited or expired |  | (246,104) |  |  | 90.60 |  |  |  |  |  |  
| Exercised |  | (129,008) |  |  | 57.00 |  |  |  |  |  |  
| Options outstanding as of December 31, 2023 |  | 2,280,014 |  |  | $ | 87.08 |  |  | 6.72 |  | $ | 10,051 |  |  
|  |  |  |  |  |  |  |  |  |  
| Options vested and expected to vest as of December 31, 2023 |  | 2,208,014 |  |  | $ | 87.01 |  |  | 6.66 |  | $ | 9,979 |  |  
| Options exercisable as of December 31, 2023 |  | 1,250,833 |  |  | $ | 84.88 |  |  | 5.48 |  | $ | 9,038 |  |  | 
| Summary of Restricted Stock Unit Activity | The following table summarizes the restricted stock unit activity under the Plan: 
 
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
|  |  | 
Number of 
 Restricted Stock Units |  | 
Weighted Average 
 Grant Date Fair Value Per Unit |  
| Restricted stock units outstanding as of December 31, 2020 |  | 425,275 |  |  | $ | 80.37 |  |  
| Granted |  | 176,804 |  |  | 96.07 |  |  
| 
Vested(1)
 |  | (164,088) |  |  | 75.61 |  |  
| Forfeited |  | (68,399) |  |  | 86.38 |  |  
| Restricted stock units outstanding as of December 31, 2021 |  | 369,592 |  |  | 88.88 |  |  
| Granted |  | 247,860 |  |  | 85.27 |  |  
| 
Vested(1)
 |  | (141,674) |  |  | 87.64 |  |  
| Forfeited |  | (64,925) |  |  | 89.29 |  |  
| Restricted stock units outstanding as of December 31, 2022 |  | 410,853 |  |  | 87.07 |  |  
| Granted |  | 289,172 |  |  | 82.49 |  |  
| 
Vested(1)
 |  | (158,616) |  |  | 86.38 |  |  
| Forfeited |  | (62,394) |  |  | 85.11 |  |  
| Restricted stock units outstanding as of December 31, 2023 |  | 479,015 |  |  | $ | 84.79 |  |  |