 | us-gaap:DerivativeAssetNotionalAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeLiabilityNotionalAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNotionalAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:NotionalAmountOfNonderivativeInstruments | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNonmonetaryNotionalAmountVolume | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNonmonetaryNotionalAmountMass | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNonmonetaryNotionalAmountEnergyMeasure | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNonmonetaryNotionalAmountFlowRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivativeAsset | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivativeLiability | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivative | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivativeVolume | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivativeMass | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivativeEnergyMeasure | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:UnderlyingDerivativeFlowRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAssetNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeLiabilityNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:NotionalAmountOfNonderivativeInstruments | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountVolume | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountMass | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountEnergyMeasure | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountFlowRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivativeAsset | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivativeLiability | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivative | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivativeVolume | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivativeMass | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivativeEnergyMeasure | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:UnderlyingDerivativeFlowRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAssetNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeLiabilityNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:NotionalAmountOfNonderivativeInstruments | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountVolume | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountMass | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountEnergyMeasure | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountFlowRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivativeAsset | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivativeLiability | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivative | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivativeVolume | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivativeMass | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivativeEnergyMeasure | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:UnderlyingDerivativeFlowRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesFairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable |
 | us-gaap:DerivativeAssetNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:DerivativeLiabilityNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:DerivativeNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:NotionalAmountOfNonderivativeInstruments | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountVolume | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountMass | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountEnergyMeasure | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountFlowRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivativeAsset | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivativeLiability | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivative | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivativeVolume | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivativeMass | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivativeEnergyMeasure | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |
 | us-gaap:UnderlyingDerivativeFlowRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesScheduleOfCreditDerivativesTable |