 | us-gaap:ValuationAllowancesAndReservesBalance | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesReservesOfBusinessesAcquired | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesDeductions | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesRecoveries | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesAdjustments | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesPeriodIncreaseDecrease | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesBalance | parent-child | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccounts |
 | us-gaap:ValuationAllowancesAndReservesBalance | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesReservesOfBusinessesAcquired | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesDeductions | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesRecoveries | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesAdjustments | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |
 | us-gaap:ValuationAllowancesAndReservesPeriodIncreaseDecrease | domain-member | http://fasb.org/us-gaap/role/disclosure/SECScheduleArticle12-09ValuationAndQualifyingAccountsValuationAndQualifyingAccountsDisclosureTable |