 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists |
 | us-gaap:MultiemployerPlansTypeDomain | dep-concept-deprecatedConcept | http://fasb.org/us-gaap/role/deprecated/deprecated |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp02 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp02 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp02ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp02ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp012 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp012 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp012ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp012ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp011 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp011 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp011ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp011ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp03 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp03 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp03ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp03ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp04 |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp04 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp04ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp04ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp041 |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp041 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp041ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp041ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp05 |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp05 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp05ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp05ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp06 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp06 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp06ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp06ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp07 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp07 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp07ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp07ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp08 |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp08 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp08ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:DefinedBenefitPostretirementHealthCoverageMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp08ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp09 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp09 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp09ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp09ScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102 |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102DefinedContributionPlanTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp102DefinedContributionPlanTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111 |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111DefinedContributionPlanTable |
 | us-gaap:DefinedBenefitPostretirementLifeInsuranceMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp111DefinedContributionPlanTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112 |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/RetirementBenefitsTmp112DefinedContributionPlanTable |
 | us-gaap:PensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:PostemploymentRetirementBenefitsMember | parent-child | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefits |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsAllocationTable |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsCategoryTable |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlanPlanAssetsLevel3ReconciliationTable |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedBenefitPlansAndOtherPostretirementBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsDefinedContributionPlanTable |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfDefinedBenefitPlansDisclosuresTable |
 | us-gaap:PensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |
 | us-gaap:OtherPostretirementBenefitPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |
 | us-gaap:OtherPensionPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |
 | us-gaap:SupplementalEmployeeRetirementPlanDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |
 | us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |
 | us-gaap:PostemploymentRetirementBenefitsMember | domain-member | http://fasb.org/us-gaap/role/disclosure/CompensationRelatedCostsRetirementBenefitsScheduleOfMultiemployerPlansTable |