 | srt:AffiliateSecurityPledgedAsCollateralTradingMarket | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:AffiliateGroupPreacquisitionSummarizedFinancialInformation | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:AffiliateGroupSecurityPledgedAsCollateralNotMaterial | parent-child | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegistered |
 | srt:AffiliateGroupSecurityPledgedAsCollateralNotMateriallyDifferent | 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:AffiliateCollateralizedSecurityTable | all | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | srt:AffiliateSecurityPledgedAsCollateralTradingMarket | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | srt:AffiliateGroupPreacquisitionSummarizedFinancialInformation | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | srt:AffiliateGroupSecurityPledgedAsCollateralNotMaterial | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | srt:AffiliateGroupSecurityPledgedAsCollateralNotMateriallyDifferent | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:AssetsAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:LiabilitiesAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:MinorityInterest | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:TemporaryEquityCarryingAmountAttributableToParent | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:DueFromRelatedPartiesUnclassifiedAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:DueToRelatedPartiesCurrentAndNoncurrentAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:RelatedPartyTransactionDueFromToRelatedParty | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:GrossProfitAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:ProfitLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:NetIncomeLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:RevenueFromRelatedParties | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |
 | us-gaap:RelatedPartyCosts | domain-member | http://fasb.org/us-gaap/role/disclosure/SECDisclosureSecurityRegisteredOrBeingRegisteredAffiliateCollateralizedSecurityTable |