 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityRevenues | parent-child | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatements |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityPurchases | parent-child | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatements |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityExpense | parent-child | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatements |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOperatingIncomeOrLoss | parent-child | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatements |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityIncomeOrLossBeforeTax | parent-child | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatements |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOtherMeasureOfActivityAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatements |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityRevenues | domain-member | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatementsScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityPurchases | domain-member | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatementsScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityExpense | domain-member | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatementsScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOperatingIncomeOrLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatementsScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityIncomeOrLossBeforeTax | domain-member | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatementsScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOtherMeasureOfActivityAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/OrganizationConsolidationAndPresentationOfFinancialStatementsScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityRevenues | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingPolicies |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityPurchases | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingPolicies |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityExpense | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingPolicies |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOperatingIncomeOrLoss | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingPolicies |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityIncomeOrLossBeforeTax | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingPolicies |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOtherMeasureOfActivityAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingPolicies |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityRevenues | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingPoliciesScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityPurchases | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingPoliciesScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityExpense | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingPoliciesScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOperatingIncomeOrLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingPoliciesScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityIncomeOrLossBeforeTax | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingPoliciesScheduleOfVariableInterestEntitiesTable |
 | us-gaap:VariableInterestEntityActivityBetweenVIEAndEntityOtherMeasureOfActivityAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingPoliciesScheduleOfVariableInterestEntitiesTable |