 | us-gaap:StatementTable | parent-child | http://fasb.org/us-gaap/role/statement/CommonDomainMembers |
 | us-gaap:StatementTable | hypercube-dimension | http://fasb.org/us-gaap/role/statement/CommonDomainMembersStatementTable |
 | us-gaap:ScheduleOfRestructuringAndRelatedCostsTable | parent-child | http://fasb.org/us-gaap/role/disclosure/ExitOrDisposalCostObligations |
 | us-gaap:ScheduleOfRestructuringAndRelatedCostsTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/ExitOrDisposalCostObligationsScheduleOfRestructuringAndRelatedCostsTable |
 | us-gaap:DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:TradingActivitiesGainLossByTypeTable | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable |
 | us-gaap:TradingActivitiesGainLossByTypeTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesTradingActivitiesGainLossByTypeTable |
 | us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable | parent-child | http://fasb.org/us-gaap/role/disclosure/FinancialInstrumentsFairValueDisclosures |
 | us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable | parent-child | http://fasb.org/us-gaap/role/disclosure/FinancialInstrumentsFairValueDisclosures |
 | us-gaap:FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputReconciliationTable | parent-child | http://fasb.org/us-gaap/role/disclosure/FinancialInstrumentsFairValueDisclosures |
 | us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/FinancialInstrumentsFairValueDisclosuresFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable |
 | us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/FinancialInstrumentsFairValueDisclosuresFairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable |
 | us-gaap:FairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputReconciliationTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/FinancialInstrumentsFairValueDisclosuresFairValueNetDerivativeAssetLiabilityMeasuredOnRecurringBasisUnobservableInputReconciliationTable |
 | us-gaap:ScheduleOfDifferencesBetweenReportedAmountAndReportingCurrencyDenominatedAmountTable | parent-child | http://fasb.org/us-gaap/role/disclosure/ForeignOperationsAndCurrencyTranslation |
 | us-gaap:ScheduleOfDifferencesBetweenReportedAmountAndReportingCurrencyDenominatedAmountTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/ForeignOperationsAndCurrencyTranslationScheduleOfDifferencesBetweenReportedAmountAndReportingCurrencyDenominatedAmountTable |