 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp103 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp103DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp103DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp104 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp104DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp104DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp105 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp105DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp105DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112 |
 | us-gaap:DefinedContributionPlanTypeExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanTypeExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp121 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp121DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp121DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp122 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp122DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp122DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp123 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp123DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp123DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125 |
 | us-gaap:DefinedContributionPlanTaxStatusExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanTaxStatusExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp125DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131 |
 | us-gaap:DefinedContributionPlanSponsorLocationExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanSponsorLocationExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp131DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141 |
 | us-gaap:DefinedContributionPlanSponsorLocationExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141 |
 | us-gaap:DefinedContributionPlanTaxStatusExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141 |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanSponsorLocationExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanTaxStatusExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp141DefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanIncreaseDecreaseCost | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeeAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanEmployersMatchingContributionAnnualVestingPercentage | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanAdministrativeExpenses | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanNumberOfEmployees | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanTypeExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanSponsorLocationExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanTaxStatusExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanPlanNameExtensibleList | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DescriptionOfDefinedContributionPensionAndOtherPostretirementPlans | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedContributionPlanTable | all | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanCostRecognized | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanIncreaseDecreaseCost | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeeAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanEmployersMatchingContributionAnnualVestingPercentage | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanAdministrativeExpenses | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanNumberOfEmployees | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanTypeExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanSponsorLocationExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanTaxStatusExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedContributionPlanPlanNameExtensibleList | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DescriptionOfDefinedContributionPensionAndOtherPostretirementPlans | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |