 | us-gaap:HeldToMaturitySecuritiesCurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:HeldToMaturitySecuritiesNoncurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:HeldToMaturitySecurities | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:HeldToMaturitySecuritiesCurrent | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesScheduleOfHeldToMaturitySecuritiesTable |
 | us-gaap:HeldToMaturitySecuritiesNoncurrent | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesScheduleOfHeldToMaturitySecuritiesTable |
 | us-gaap:HeldToMaturitySecurities | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesScheduleOfHeldToMaturitySecuritiesTable |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedInCurrentFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedInFiscalYearBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedTwoYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedThreeYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedFourYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedFiveOrMoreYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:HeldToMaturitySecurities | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedInCurrentFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedInFiscalYearBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedTwoYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedThreeYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedFourYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |
 | us-gaap:DebtSecuritiesHeldToMaturityOriginatedFiveOrMoreYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |
 | us-gaap:HeldToMaturitySecurities | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesDebtSecuritiesHeldToMaturityCreditQualityIndicatorTable |