 | us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05 |
 | us-gaap:CostOfGoodsAndServicesSold | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05 |
 | us-gaap:CapitalizedContractCostNet | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05 |
 | us-gaap:OtherLiabilities | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05 |
 | us-gaap:ContractWithCustomerLiability | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05 |
 | us-gaap:RetainedEarningsAccumulatedDeficit | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05 |
 | us-gaap:RevenueInitialApplicationPeriodCumulativeEffectTransitionTable | all | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:CostOfGoodsAndServicesSold | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:CapitalizedContractCostNet | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:OtherLiabilities | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:ContractWithCustomerLiability | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:RetainedEarningsAccumulatedDeficit | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp05RevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:RevenueInitialApplicationPeriodCumulativeEffectTransitionDescription | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueInitialApplicationPeriodCumulativeEffectTransitionExplanationOfChange | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueInitialApplicationPeriodCumulativeEffectTransitionTable | all | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersRevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:RevenueInitialApplicationPeriodCumulativeEffectTransitionDescription | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersRevenueInitialApplicationPeriodCumulativeEffectTransitionTable |
 | us-gaap:RevenueInitialApplicationPeriodCumulativeEffectTransitionExplanationOfChange | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersRevenueInitialApplicationPeriodCumulativeEffectTransitionTable |