|**Quarterly Financial Data (Unaudited) (Tables)**         | 12 Months Ended                                                                                                                                                                                                                                                                                                                                                                              
|--------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|**Quarterly Financial Information Disclosure [Abstract]** |                                                                                                                                                                                                                                                                                                                                                                                              
|Quarterly Financial Data                                  | FirstSecondThirdFourth2020:Sales$494,916$529,478$538,181$558,525Gross margin263,194289,598280,808296,868Net income52,00492,07986,98118,475Earnings per share:Basic0.901.601.510.32Diluted0.891.581.490.312019:Sales$497,910$551,119$559,746$585,451Gross margin268,976301,529302,623318,975Net income48,56791,92393,928102,673Earnings per share:Basic0.841.601.641.79Diluted0.831.581.621.76
|                                                          |                                                                                                                                                                                                                                                                                                                                                                                              
|                                                          | First                                                                                                                                                                                                                                                                                                                                                                                        
|2020:                                                     |                                                                                                                                                                                                                                                                                                                                                                                              
|Sales                                                     | $                                                                                                                                                                                                                                                                                                                                                                                            
|Gross margin                                              | 263,194                                                                                                                                                                                                                                                                                                                                                                                      
|Net income                                                | 52,004                                                                                                                                                                                                                                                                                                                                                                                       
|Earnings per share:                                       |                                                                                                                                                                                                                                                                                                                                                                                              
|Basic                                                     | 0.90                                                                                                                                                                                                                                                                                                                                                                                         
|Diluted                                                   | 0.89                                                                                                                                                                                                                                                                                                                                                                                         
|2019:                                                     |                                                                                                                                                                                                                                                                                                                                                                                              
|Sales                                                     | $                                                                                                                                                                                                                                                                                                                                                                                            
|Gross margin                                              | 268,976                                                                                                                                                                                                                                                                                                                                                                                      
|Net income                                                | 48,567                                                                                                                                                                                                                                                                                                                                                                                       
|Earnings per share:                                       |                                                                                                                                                                                                                                                                                                                                                                                              
|Basic                                                     | 0.84                                                                                                                                                                                                                                                                                                                                                                                         
|Diluted                                                   | 0.83                                                                                                                                                                                                                                                                                                                                                                                         

X- ReferencesNo definition available.
+ Details**Name:**
us-gaap_QuarterlyFinancialInformationDisclosureAbstract**Namespace Prefix:**
us-gaap_**Data Type:**
xbrli:stringItemType**Balance Type:**
na**Period Type:**
duration X- DefinitionTabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.
+ ReferencesReference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 270 -SubTopic 10 -Section 50 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=121640914&loc=d3e1280-108306
+ Details**Name:**
us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock**Namespace Prefix:**
us-gaap_**Data Type:**
nonnum:textBlockItemType**Balance Type:**
na**Period Type:**
duration