 | us-gaap:StatementTable | parent-child | http://fasb.org/us-gaap/role/statement/CommonDomainMembers |
 | us-gaap:StatementTable | hypercube-dimension | http://fasb.org/us-gaap/role/statement/CommonDomainMembersStatementTable |
 | us-gaap:ReconciliationOfAssetsFromSegmentToConsolidatedTable | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:ReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTable | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTable | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:ReconciliationOfAssetsFromSegmentToConsolidatedTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfAssetsFromSegmentToConsolidatedTable |
 | us-gaap:ReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable |
 | us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTable |
 | us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfRevenueFromSegmentsToConsolidatedTable |
 | us-gaap:ScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable |
 | us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfSegmentReportingInformationBySegmentTable |