 | us-gaap:LongTermPurchaseCommitmentDescription | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentMinimumQuantityRequired | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentMinimumEnergyVolumeRequired | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentMinimumMassRequired | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentMinimumVolumeRequired | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongtermPurchaseCommitmentPeriod | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentMilestones | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentSpecifiedFormOfPayment | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LongTermPurchaseCommitmentTable | all | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentDescription | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentMinimumQuantityRequired | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentMinimumEnergyVolumeRequired | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentMinimumMassRequired | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentMinimumVolumeRequired | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongtermPurchaseCommitmentPeriod | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentMilestones | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |
 | us-gaap:LongTermPurchaseCommitmentSpecifiedFormOfPayment | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLongTermPurchaseCommitmentTable |