 | srt:ProductOrServiceAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | srt:StatementGeographicalAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerBasisOfPricingAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerDurationAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:TimingOfTransferOfGoodOrServiceAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:ContractWithCustomerSalesChannelAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | srt:MajorCustomersAxis | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:DisaggregationOfRevenueLineItems | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | srt:ProductOrServiceAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | srt:StatementGeographicalAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:ContractWithCustomerBasisOfPricingAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:ContractWithCustomerDurationAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:TimingOfTransferOfGoodOrServiceAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:ContractWithCustomerSalesChannelAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | srt:MajorCustomersAxis | hypercube-dimension | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |