 | us-gaap:TaxCreditCarryforwardDescription | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxCreditCarryforwardAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxCreditCarryforwardExpirationDate | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxCreditCarryforwardLimitationsOnUse | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:DeferredTaxAssetsTaxCreditCarryforwards | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxCreditCarryforwardValuationAllowance | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxCreditCarryforwardTable | all | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxCreditCarryforwardDescription | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxCreditCarryforwardAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxCreditCarryforwardExpirationDate | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxCreditCarryforwardLimitationsOnUse | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:DeferredTaxAssetsTaxCreditCarryforwards | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxCreditCarryforwardValuationAllowance | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |