 | us-gaap:LossContingencyPendingClaimsNumber | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LossContingencyNewClaimsFiledNumber | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LossContingencyClaimsSettledAndDismissedNumber | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LossContingencyNumberOfPlaintiffs | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LossContingencyQuantitiesPatentsAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:LossContingencyPendingClaimsNumber | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLossContingenciesTable |
 | us-gaap:LossContingencyNewClaimsFiledNumber | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLossContingenciesTable |
 | us-gaap:LossContingencyClaimsSettledAndDismissedNumber | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLossContingenciesTable |
 | us-gaap:LossContingencyNumberOfPlaintiffs | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLossContingenciesTable |
 | us-gaap:LossContingencyQuantitiesPatentsAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesLossContingenciesTable |