 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:DefinedBenefitPlanPlansWithBenefitObligationsInExcessOfPlanAssetsAggregateFairValueOfPlanAssets | dep-concept-deprecatedConcept | http://fasb.org/us-gaap/role/deprecated/deprecated |
 | us-gaap:MultiemployerPlansPostretirementBenefitMember | dep-concept-deprecatedConcept | http://fasb.org/us-gaap/role/deprecated/deprecated |
 | us-gaap:DefinedBenefitPlanPlansWithBenefitObligationsInExcessOfPlanAssetsAggregateBenefitObligation | dep-concept-deprecatedConcept | http://fasb.org/us-gaap/role/deprecated/deprecated |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |