 | us-gaap:SubsegmentsAxis | parent-child | http://fasb.org/us-gaap/role/statement/CommonDomainMembers |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/statement/CommonDomainMembersStatementTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/statement/CommonDomainMembersStatementTable |
 | us-gaap:SubsegmentsAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/ReceivablesLoansNotesReceivableAndOthers |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/ReceivablesLoansNotesReceivableAndOthersScheduleOfAccountsNotesLoansAndFinancingReceivableTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/ReceivablesLoansNotesReceivableAndOthersScheduleOfAccountsNotesLoansAndFinancingReceivableTable |
 | us-gaap:SubsegmentsAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/PropertyPlantAndEquipment |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/PropertyPlantAndEquipmentScheduleOfImpairedLongLivedAssetsHeldAndUsedTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/PropertyPlantAndEquipmentScheduleOfImpairedLongLivedAssetsHeldAndUsedTable |
 | us-gaap:SubsegmentsAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/SegmentReporting |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfAssetsFromSegmentToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfAssetsFromSegmentToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfRevenueFromSegmentsToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/SegmentReportingReconciliationOfRevenueFromSegmentsToConsolidatedTable |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfEntityWideRevenueByMajorCustomersByReportingSegmentsTable |
 | us-gaap:SubsegmentsAxis | dimension-default | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfSegmentReportingInformationBySegmentTable |
 | us-gaap:SubsegmentsAxis | dimension-domain | http://fasb.org/us-gaap/role/disclosure/SegmentReportingScheduleOfSegmentReportingInformationBySegmentTable |