 | srt:ObligorGroupNotMaterial | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:ObligorGroupNotMateriallyDifferent | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:FinanceSubsidiaryIssuerGuaranteedByParent | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:FinanceSubsidiaryIssuerCoissuedWithParent | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:GuarantorAndIssuerPreacquisitionSummarizedFinancialInformation | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:AssetsAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:LiabilitiesAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:MinorityInterest | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:TemporaryEquityCarryingAmountAttributableToParent | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:DueFromRelatedPartiesUnclassifiedAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:DueToRelatedPartiesCurrentAndNoncurrentAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:RelatedPartyTransactionDueFromToRelatedParty | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:GrossProfitAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:ProfitLoss | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:NetIncomeLoss | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:RevenueFromRelatedParties | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | us-gaap:RelatedPartyCosts | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:GuarantorAndIssuerGuaranteedSecurityTable | all | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | srt:ObligorGroupNotMaterial | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | srt:ObligorGroupNotMateriallyDifferent | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | srt:FinanceSubsidiaryIssuerGuaranteedByParent | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | srt:FinanceSubsidiaryIssuerCoissuedWithParent | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | srt:GuarantorAndIssuerPreacquisitionSummarizedFinancialInformation | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:AssetsAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:LiabilitiesAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:MinorityInterest | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:TemporaryEquityCarryingAmountAttributableToParent | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:DueFromRelatedPartiesUnclassifiedAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:DueToRelatedPartiesCurrentAndNoncurrentAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:RelatedPartyTransactionDueFromToRelatedParty | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:GrossProfitAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:ProfitLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:NetIncomeLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:RevenueFromRelatedParties | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |
 | us-gaap:RelatedPartyCosts | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredGuarantorAndIssuerGuaranteedSecurityTable |