 | us-gaap:AccountsReceivableNoncurrentOriginatedInCurrentFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentOriginatedInFiscalYearBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentOriginatedTwoYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentOriginatedThreeYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentOriginatedFourYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentOriginatedFiveOrMoreYearsBeforeLatestFiscalYear | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableGrossNoncurrent | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentCreditQualityIndicatorDateUpdated | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentCreditQualityIndicatorUpdateFrequencyExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/CreditLosses |
 | us-gaap:AccountsReceivableNoncurrentCreditQualityIndicatorTable | all | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentOriginatedInCurrentFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentOriginatedInFiscalYearBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentOriginatedTwoYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentOriginatedThreeYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentOriginatedFourYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentOriginatedFiveOrMoreYearsBeforeLatestFiscalYear | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableGrossNoncurrent | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentCreditQualityIndicatorDateUpdated | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |
 | us-gaap:AccountsReceivableNoncurrentCreditQualityIndicatorUpdateFrequencyExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/CreditLossesAccountsReceivableNoncurrentCreditQualityIndicatorTable |