 | us-gaap:CapitalizedContractCostGross | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp04 |
 | us-gaap:CapitalizedContractCostAccumulatedAmortization | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp04 |
 | us-gaap:CapitalizedContractCostNet | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp04 |
 | us-gaap:CapitalizedContractCostGross | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp04CapitalizedContractCostTable |
 | us-gaap:CapitalizedContractCostAccumulatedAmortization | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp04CapitalizedContractCostTable |
 | us-gaap:CapitalizedContractCostNet | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenueFromContractWithCustomerTemp04CapitalizedContractCostTable |
 | us-gaap:CapitalizedContractCostGross | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:CapitalizedContractCostAccumulatedAmortization | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:CapitalizedContractCostAccumulatedImpairment | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:CapitalizedContractCostNet | parent-child | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomers |
 | us-gaap:CapitalizedContractCostGross | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersCapitalizedContractCostTable |
 | us-gaap:CapitalizedContractCostAccumulatedAmortization | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersCapitalizedContractCostTable |
 | us-gaap:CapitalizedContractCostAccumulatedImpairment | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersCapitalizedContractCostTable |
 | us-gaap:CapitalizedContractCostNet | domain-member | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersCapitalizedContractCostTable |