 | us-gaap:CumulativeEffectOnRetainedEarningsNetOfTax1 | dep-concept-deprecatedConcept | http://fasb.org/us-gaap/role/deprecated/deprecated |
 | srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | srt:RevisionOfPriorPeriodAccountingStandardsUpdateAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | srt:RevisionOfPriorPeriodReclassificationAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncome |
 | srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | srt:RevisionOfPriorPeriodAccountingStandardsUpdateAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | srt:RevisionOfPriorPeriodReclassificationAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfShareholdersEquityAndOtherComprehensiveIncomeStatementTable |
 | srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | srt:RevisionOfPriorPeriodAccountingStandardsUpdateAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | srt:RevisionOfPriorPeriodReclassificationAdjustmentMember | parent-child | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrections |
 | srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | srt:RevisionOfPriorPeriodAccountingStandardsUpdateAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | srt:RevisionOfPriorPeriodReclassificationAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsNewAccountingPronouncementsOrChangeInAccountingPrincipleTable |
 | srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsReclassificationTable |
 | srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsReclassificationTable |
 | srt:RevisionOfPriorPeriodAccountingStandardsUpdateAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsReclassificationTable |
 | srt:RevisionOfPriorPeriodReclassificationAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsReclassificationTable |
 | srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsScheduleOfErrorCorrectionsAndPriorPeriodAdjustmentRestatementTable |
 | srt:RevisionOfPriorPeriodErrorCorrectionAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsScheduleOfErrorCorrectionsAndPriorPeriodAdjustmentRestatementTable |
 | srt:RevisionOfPriorPeriodAccountingStandardsUpdateAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsScheduleOfErrorCorrectionsAndPriorPeriodAdjustmentRestatementTable |
 | srt:RevisionOfPriorPeriodReclassificationAdjustmentMember | domain-member | http://fasb.org/us-gaap/role/disclosure/AccountingChangesAndErrorCorrectionsScheduleOfErrorCorrectionsAndPriorPeriodAdjustmentRestatementTable |