 | us-gaap:AvailableForSaleSecuritiesDebtSecurities | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DebtSecuritiesAvailableForSaleMeasurementInput | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DebtSecuritiesAvailableForSaleValuationTechniqueExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DebtSecuritiesAvailableForSaleMeasurementInputExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:AlternativeInvestment | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:AlternativeInvestmentMeasurementInput | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:AlternativeInvestmentValuationTechniqueExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:AlternativeInvestmentMeasurementInputExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:AlternativeInvestmentTypeExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:AlternativeInvestmentFairValueByFairValueHierarchyLevelAndNavExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DerivativeAssetsLiabilitiesAtFairValueNet | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DerivativeAssetLiabilityNetMeasurementInput | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DerivativeAssetLiabilityNetValuationTechniqueExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:DerivativeAssetLiabilityNetMeasurementInputExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:LongTermDebtFairValue | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:LongTermDebtMeasurementInput | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:LongTermDebtValuationTechniqueExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:LongTermDebtFairValueByFairValueHierarchyLevelExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02 |
 | us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable | all | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AvailableForSaleSecuritiesDebtSecurities | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DebtSecuritiesAvailableForSaleMeasurementInput | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DebtSecuritiesAvailableForSaleValuationTechniqueExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DebtSecuritiesAvailableForSaleMeasurementInputExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AlternativeInvestment | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AlternativeInvestmentMeasurementInput | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AlternativeInvestmentValuationTechniqueExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AlternativeInvestmentMeasurementInputExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AlternativeInvestmentTypeExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:AlternativeInvestmentFairValueByFairValueHierarchyLevelAndNavExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DerivativeAssetsLiabilitiesAtFairValueNet | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DerivativeAssetLiabilityNetMeasurementInput | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DerivativeAssetLiabilityNetValuationTechniqueExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:DerivativeAssetLiabilityNetMeasurementInputExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:LongTermDebtFairValue | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:LongTermDebtMeasurementInput | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:LongTermDebtValuationTechniqueExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |
 | us-gaap:LongTermDebtFairValueByFairValueHierarchyLevelExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/FairValueMeasuresAndDisclosuresTmp02FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable |