 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/statement/CommonDomainMembers |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/statement/CommonDomainMembersStatementTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/EnvironmentalRemediationObligations |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/EnvironmentalRemediationObligationsRecordedThirdPartyEnvironmentalRecoveriesTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/EnvironmentalRemediationObligationsSiteContingencyTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLossContingenciesTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesProductLiabilityContingencyTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesRegistrationPaymentArrangementTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Guarantees |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/GuaranteesProductWarrantyLiabilityTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/GuaranteesScheduleOfGuaranteeObligationsTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Debt |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtObligationWithJointAndSeveralLiabilityArrangementTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsStockCompensation |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsStockCompensationScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/BusinessCombinations |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/BusinessCombinationsBusinessCombinationSeparatelyRecognizedTransactionsTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesEmbeddedDerivativeTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesForeignCurrencyFairValueHedgeDerivativeTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesHybridInstrumentsTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesPriceRiskDerivativesTable |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/ForeignOperationsAndCurrencyTranslation |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/ForeignOperationsAndCurrencyTranslationScheduleOfDifferencesBetweenReportedAmountAndReportingCurrencyDenominatedAmountTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/TransfersAndServicing |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/TransfersAndServicingCustomerSecuritiesForWhichEntityHasRightToSellOrRepledgeTable |
 | us-gaap:BalanceSheetLocationDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/FinancialServicesBrokersAndDealers |
 | us-gaap:BalanceSheetLocationDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/FinancialServicesBrokersAndDealersCustomerSecuritiesForWhichEntityHasRightToSellOrRepledgeTable |