 | us-gaap:SegmentReportingInformationLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:SegmentReportingAssetReconcilingItemLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:SegmentReportingOtherSignificantReconcilingItemLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:SegmentReportingReconcilingItemForOperatingProfitLossFromSegmentToConsolidatedLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:SegmentReportingRevenueReconcilingItemLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:SegmentReportingAssetReconcilingItemLineItems | domain-member | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfAssetsFromSegmentToConsolidatedTable |
 | us-gaap:SegmentReportingReconcilingItemForOperatingProfitLossFromSegmentToConsolidatedLineItems | domain-member | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable |
 | us-gaap:SegmentReportingOtherSignificantReconcilingItemLineItems | domain-member | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTable |
 | us-gaap:SegmentReportingRevenueReconcilingItemLineItems | domain-member | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfRevenueFromSegmentsToConsolidatedTable |
 | us-gaap:SegmentReportingInformationLineItems | domain-member | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfSegmentReportingInformationBySegmentTable |