 | us-gaap:RevenueFromContractWithCustomerProductAndServiceExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueFromContractWithCustomerGeographicalExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueFromContractWithCustomerBasisOfPricingExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueFromContractWithCustomerDurationExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueFromContractWithCustomerTimingOfTransferOfGoodOrServiceExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueFromContractWithCustomerSalesChannelExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:RevenueFromContractWithCustomerProductAndServiceExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:RevenueFromContractWithCustomerGeographicalExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:RevenueFromContractWithCustomerBasisOfPricingExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:RevenueFromContractWithCustomerDurationExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:RevenueFromContractWithCustomerTimingOfTransferOfGoodOrServiceExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
 | us-gaap:RevenueFromContractWithCustomerSalesChannelExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |