 | us-gaap:ScheduleOfAccumulatedAndProjectedBenefitObligationsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfAccumulatedBenefitObligationsInExcessOfFairValueOfPlanAssetsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfAllocationOfPlanAssetsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfAmountsRecognizedInBalanceSheetTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfAssumptionsUsedTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfBenefitObligationsInExcessOfFairValueOfPlanAssetsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfChangesInAccumulatedPostemploymentBenefitObligationsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfChangesInFairValueOfPlanAssetsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfChangesInProjectedBenefitObligationsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ChangesInProjectedBenefitObligationsFairValueOfPlanAssetsAndFundedStatusOfPlanTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfDefinedBenefitPlanAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfExpectedBenefitPaymentsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfHealthCareCostTrendRatesTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfNetBenefitCostsTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfNetFundedStatusTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:ScheduleOfNetPeriodicBenefitCostNotYetRecognizedTableTextBlock | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable | all | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfAccumulatedAndProjectedBenefitObligationsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfAccumulatedBenefitObligationsInExcessOfFairValueOfPlanAssetsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfAllocationOfPlanAssetsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfAmountsRecognizedInBalanceSheetTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfAssumptionsUsedTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfBenefitObligationsInExcessOfFairValueOfPlanAssetsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfChangesInAccumulatedPostemploymentBenefitObligationsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfChangesInFairValueOfPlanAssetsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfChangesInProjectedBenefitObligationsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ChangesInProjectedBenefitObligationsFairValueOfPlanAssetsAndFundedStatusOfPlanTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfDefinedBenefitPlanAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfExpectedBenefitPaymentsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfHealthCareCostTrendRatesTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfNetBenefitCostsTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfNetFundedStatusTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:ScheduleOfNetPeriodicBenefitCostNotYetRecognizedTableTextBlock | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |