 | 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:ScheduleOfAccountsNotesLoansAndFinancingReceivableTable | parent-child | http://fasb.org/us-gaap/role/disclosure/ReceivablesLoansNotesReceivableAndOthers |
 | us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/ReceivablesLoansNotesReceivableAndOthersScheduleOfAccountsNotesLoansAndFinancingReceivableTable |
 | us-gaap:ScheduleOfImpairedLongLivedAssetsHeldAndUsedTable | parent-child | http://fasb.org/us-gaap/role/disclosure/PropertyPlantAndEquipment |
 | us-gaap:ScheduleOfImpairedLongLivedAssetsHeldAndUsedTable | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/PropertyPlantAndEquipmentScheduleOfImpairedLongLivedAssetsHeldAndUsedTable |
 | 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 |