 | us-gaap:TreasuryStockValueAbstract | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockValueAcquiredParValueMethod | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockValueAcquiredCostMethod | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockReissuedAtLowerThanRepurchasePrice | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockRetiredParValueMethodAmount | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockRetiredCostMethodAmount | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockSharesRetired | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockCarryingBasis | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:TreasuryStockValueAbstract | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockValueAcquiredParValueMethod | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockValueAcquiredCostMethod | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockReissuedAtLowerThanRepurchasePrice | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockRetiredParValueMethodAmount | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockRetiredCostMethodAmount | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockSharesRetired | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:TreasuryStockCarryingBasis | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |