 | us-gaap:TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterestsAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityValueExcludingAdditionalPaidInCapital | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityDescription | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityParOrStatedValuePerShare | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquitySharesAuthorized | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquitySharesIssued | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquitySharesOutstanding | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityRedemptionPricePerShare | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityAccountingTreatment | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityAggregateAmountOfRedemptionRequirement | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityContractTerms | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityShareSubscriptions | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquitySharesSubscribedButUnissued | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityLiquidationPreferencePerShare | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityLiquidationPreference | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:IncreaseDecreaseInTemporaryEquityRollForward | parent-child | http://fasb.org/us-gaap/role/disclosure/TemporaryEquity |
 | us-gaap:TemporaryEquityByClassOfStockTable | all | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterestsAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityValueExcludingAdditionalPaidInCapital | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityDescription | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityParOrStatedValuePerShare | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquitySharesAuthorized | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquitySharesIssued | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquitySharesOutstanding | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityRedemptionPricePerShare | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityAccountingTreatment | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityAggregateAmountOfRedemptionRequirement | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityContractTerms | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityShareSubscriptions | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquitySharesSubscribedButUnissued | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityLiquidationPreferencePerShare | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:TemporaryEquityLiquidationPreference | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |
 | us-gaap:IncreaseDecreaseInTemporaryEquityRollForward | domain-member | http://fasb.org/us-gaap/role/disclosure/TemporaryEquityTemporaryEquityByClassOfStockTable |