 | us-gaap:UnderlyingAssetClassDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Guarantees |
 | us-gaap:UnderlyingAssetClassDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/GuaranteesScheduleOfGuaranteeObligationsTable |
 | us-gaap:ExtinguishmentOfDebtTypeDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Debt |
 | us-gaap:LongtermDebtTypeDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Debt |
 | us-gaap:ShortTermDebtTypeDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Debt |
 | us-gaap:LongtermDebtTypeDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtDebtInstrumentRedemptionTable |
 | us-gaap:LongtermDebtTypeDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtDebtInstrumentTable |
 | us-gaap:LongtermDebtTypeDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtObligationWithJointAndSeveralLiabilityArrangementTable |
 | us-gaap:ShortTermDebtTypeDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtObligationWithJointAndSeveralLiabilityArrangementTable |
 | us-gaap:ExtinguishmentOfDebtTypeDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtScheduleOfExtinguishmentOfDebtTable |
 | us-gaap:ShortTermDebtTypeDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DebtScheduleOfShortTermDebtTable |
 | us-gaap:UnderlyingAssetClassDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingAssetClassDomain | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |