 | us-gaap:ContractWithCustomerAssetGrossCurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperations |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperations |
 | us-gaap:ContractWithCustomerAssetNetCurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperations |
 | us-gaap:ContractWithCustomerAssetGrossCurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperationsStatementTable |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperationsStatementTable |
 | us-gaap:ContractWithCustomerAssetNetCurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified-RealEstateOperationsStatementTable |
 | us-gaap:ContractWithCustomerAssetGrossCurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified |
 | us-gaap:ContractWithCustomerAssetNetCurrent | parent-child | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassified |
 | us-gaap:ContractWithCustomerAssetGrossCurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassifiedStatementTable |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassifiedStatementTable |
 | us-gaap:ContractWithCustomerAssetNetCurrent | domain-member | http://fasb.org/us-gaap/role/statement/StatementOfFinancialPositionClassifiedStatementTable |
 | us-gaap:ContractWithCustomerAssetGrossCurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerAssetNetCurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |