 | us-gaap:AccountingStandardsUpdate201026Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201104Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201307Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201409Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201502Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201517Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201601Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201604Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201605Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201606Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201609Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201613Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201617Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201705Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201708Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201710Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201711Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201712Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201715Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201803Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201804Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201807Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201813Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201812Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201816Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201817Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201818Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201904Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201908Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201911Member | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | us-gaap:AccountingStandardsUpdate201026Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201104Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201307Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201409Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201502Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201517Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201601Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201604Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201605Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201606Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201609Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201613Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201617Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201705Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201708Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201710Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201711Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201712Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201715Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201803Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201804Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201807Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201813Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201812Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201816Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201817Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201818Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201904Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201908Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201911Member | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | us-gaap:AccountingStandardsUpdate201026Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201104Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201307Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201409Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201517Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201502Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201601Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201604Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201605Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201606Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201609Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201602Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201613Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201615Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201617Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201618Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201701Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201704Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201705Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201707Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201708Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201709Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201710Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201711Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201712Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201715Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201801Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201802Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201803Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201804Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201807Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201808Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201809Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201811Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201812Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201813Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201814Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201815Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201816Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201817Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201818Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201820Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201901Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201902Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201903Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201904Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201905Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201908Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201911Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201912Member | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | us-gaap:AccountingStandardsUpdate201026Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201104Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201307Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201409Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201517Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201502Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201601Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201604Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201605Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201606Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201609Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201602Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201613Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201615Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201617Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201618Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201701Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201704Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201705Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201707Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201708Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201709Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201710Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201711Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201712Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201715Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201801Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201802Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201803Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201804Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201807Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201808Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201809Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201811Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201812Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201813Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201814Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201815Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201816Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201817Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201818Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201820Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201901Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201902Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201903Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201904Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201905Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201908Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201911Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201912Member | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | us-gaap:AccountingStandardsUpdate201409Member | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:AccountingStandardsUpdate201409Member | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersRevenueInitialApplicationPeriodCumulativeEffectTransitionTable |