 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021 |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021 |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021 |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021 |
 | us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021 |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021DebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021DebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021DebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021DebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesTmp021DebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsAmortizedCost | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis | parent-child | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecurities |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesDebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesDebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesDebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsAmortizedCost | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesDebtSecuritiesAvailableForSaleTable |
 | us-gaap:AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis | domain-member | http://fasb.org/us-gaap/role/disclosure/InvestmentsDebtAndEquitySecuritiesDebtSecuritiesAvailableForSaleTable |