 | us-gaap:ContractWithCustomerAssetGrossNoncurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperations |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossNoncurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperations |
 | us-gaap:ContractWithCustomerAssetNetNoncurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperations |
 | us-gaap:ContractWithCustomerAssetGrossNoncurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperationsStatementTable |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossNoncurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperationsStatementTable |
 | us-gaap:ContractWithCustomerAssetNetNoncurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperationsStatementTable |
 | us-gaap:ContractWithCustomerAssetGrossNoncurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossNoncurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified |
 | us-gaap:ContractWithCustomerAssetNetNoncurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified |
 | us-gaap:ContractWithCustomerAssetGrossNoncurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassifiedStatementTable |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossNoncurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassifiedStatementTable |
 | us-gaap:ContractWithCustomerAssetNetNoncurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassifiedStatementTable |
 | us-gaap:ContractWithCustomerAssetGrossNoncurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossNoncurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerAssetNetNoncurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |