 | us-gaap:DerivativeDescriptionOfTerms | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeTermOfContract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeTypeOfInstrument | 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:DerivativeNonmonetaryNotionalAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNumberOfInstrumentsHeld | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeUnderlyingRisk | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeDescriptionOfObjective | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeDescriptionOfHedgedItem | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeFairValueOfDerivativeNetAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeFairValueAmountOffsetAgainstCollateralNetAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:NotionalAmountOfDerivativesAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNetHedgeIneffectivenessGainLoss | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAmountOfHedgedItem | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCreditRiskValuationAdjustmentDerivativeAssets | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCreditRiskValuationAdjustmentDerivativeLiabilities | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeInceptionDates | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeMaturityDates | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeRemainingMaturity1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageRemainingMaturity1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeFixedInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageFixedInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeVariableInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageVariableInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeBasisSpreadOnVariableRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageBasisSpreadOnVariableRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeForwardInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageForwardInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCapInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageCapInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeFloorInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageFloorInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeSwaptionInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageSwaptionInterestRate | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCurrencyBought | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCurrencySold | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeUnderlying | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeUnderlyingBasis | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeForwardExchangeRate1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageForwardExchangeRate1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeForeignCurrencyOptionStrikePrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageForeignCurrencyOptionStrikePrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeExchangeRateCap1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageExchangeRateCap1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeExchangeRateFloor1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageExchangeRateFloor1 | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeForwardPrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAveragePriceRiskOptionStrikePrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCapPrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageCapPrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeFloorPrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageFloorPrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeSwapType | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativePriceRiskOptionStrikePrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeAverageForwardPrice | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCostOfHedgeNetOfCashReceivedAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeCollateralAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeNonmonetaryNotionalAmountPercentOfRequiredNeedCoverage | parent-child | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivities |
 | us-gaap:DerivativeTable | all | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeDescriptionOfTerms | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeTermOfContract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeTypeOfInstrument | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNumberOfInstrumentsHeld | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeUnderlyingRisk | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeDescriptionOfObjective | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeDescriptionOfHedgedItem | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeFairValueOfDerivativeNetAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeFairValueAmountOffsetAgainstCollateralNetAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:NotionalAmountOfDerivativesAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNetHedgeIneffectivenessGainLoss | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAmountOfHedgedItem | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCreditRiskValuationAdjustmentDerivativeAssets | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCreditRiskValuationAdjustmentDerivativeLiabilities | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeInceptionDates | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeMaturityDates | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeRemainingMaturity1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageRemainingMaturity1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeFixedInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageFixedInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeVariableInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageVariableInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeBasisSpreadOnVariableRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageBasisSpreadOnVariableRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeForwardInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageForwardInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCapInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageCapInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeFloorInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageFloorInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeSwaptionInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageSwaptionInterestRate | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCurrencyBought | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCurrencySold | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeUnderlying | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeUnderlyingBasis | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeForwardExchangeRate1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageForwardExchangeRate1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeForeignCurrencyOptionStrikePrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageForeignCurrencyOptionStrikePrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeExchangeRateCap1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageExchangeRateCap1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeExchangeRateFloor1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageExchangeRateFloor1 | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeForwardPrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAveragePriceRiskOptionStrikePrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCapPrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageCapPrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeFloorPrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageFloorPrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeSwapType | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativePriceRiskOptionStrikePrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeAverageForwardPrice | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCostOfHedgeNetOfCashReceivedAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeCollateralAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |
 | us-gaap:DerivativeNonmonetaryNotionalAmountPercentOfRequiredNeedCoverage | domain-member | http://fasb.org/us-gaap/role/disclosure/DerivativeInstrumentsAndHedgingActivitiesDerivativeTable |