XML 106 R90.htm IDEA: XBRL DOCUMENT
v3.20.4

Multiemployer Plans - Narrative (Details) | 12 Months Ended
--- | ---
Dec. 31, 2020 USD ($) plan | Dec. 31, 2019 USD ($) | Dec. 31, 2018 USD ($)
Multiemployer Plans [Line Items] |  |  |
Withdrawal liability | $ 0 | $ 0 | $ 0
Minimum | Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Number of plans | plan | 200 |  |
UNITED STATES | Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Contribution increase due to acquisition | $ 5,300,000 |  |
Contributions | 204,082,000 | 215,478,000 | 190,229,000
UNITED STATES | Multiemployer Plans, Postretirement Benefit |  |  |
Multiemployer Plans [Line Items] |  |  |
Contribution increase due to acquisition | 15,600,000 |  |
Contributions | 156,100,000 | $ 153,500,000 | $ 135,900,000
UNITED STATES | Minimum | Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 2,000,000.0 |  |
Red Zone | UNITED STATES | Minimum | Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 500,000 |  |
Orange or Yellow Zones | UNITED STATES | Minimum | Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | $ 1,000,000.0 |  |

X
- Definition Multiemployer Plans, Contribution Increase (Decrease), Acquisition + References No definition available. + Details
Name: | eme_MultiemployerPlansContributionIncreaseDecreaseAcquisition
Namespace Prefix: | eme_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Multiemployer Plans, Number of Plans + References No definition available. + Details
Name: | eme_MultiemployerPlansNumberOfPlans
Namespace Prefix: | eme_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | instant

X
- Definition Amount of cost for employer contribution to multiemployer plan. Multiemployer plan includes, but is not limited to, pension plan determined to be individually significant and insignificant and other postretirement benefit plan. + References Reference 1: http://www.xbrl.org/2003/role/exampleRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 55 -Paragraph 8 -URI http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 35 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=29639808&loc=d3e29008-114946 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 50 -Paragraph 11 -URI http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 50 -Paragraph 9 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=65877416&loc=SL14450691-114947 + Details
Name: | us-gaap_MultiemployerPlanEmployerContributionCost
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_MultiemployerPlansLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of the obligation recognized by withdrawing from a pension or postretirement benefit plan to which two or more unrelated employers contribute where assets contributed by one participating employer may be used to provide benefits to employees of other participating employers. + References No definition available. + Details
Name: | us-gaap_MultiemployerPlansWithdrawalObligation
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RetirementPlanSponsorLocationAxis=country_US
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RetirementPlanTypeAxis=us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | eme_MultiemployerPlansCertifiedZoneStatusAxis=eme_RedZoneMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | eme_MultiemployerPlansCertifiedZoneStatusAxis=eme_OrangeOrYellowZonesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |