XML 96 R83.htm IDEA: XBRL DOCUMENT
v3.22.4

Multiemployer Plans - Narrative (Details) | 12 Months Ended
--- | ---
Dec. 31, 2022 USD ($) plan | Dec. 31, 2021 USD ($) | Dec. 31, 2020 USD ($)
Multiemployer Plans [Line Items] |  |  |
Withdrawal liability | $ 0 | $ 0 | $ 0
Multiemployer Plans, Postretirement Benefit |  |  |
Multiemployer Plans [Line Items] |  |  |
Contribution increase due to acquisition | 18,700,000 |  |
Contributions | 213,700,000 | 178,400,000 | 162,700,000
Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Contribution increase due to acquisition | 8,800,000 |  |
Contributions | $ 236,165,000 | $ 221,081,000 | $ 197,726,000
Multiemployer Plans, Pension | Minimum |  |  |
Multiemployer Plans [Line Items] |  |  |
Number of plans | plan | 200 |  |
Contributions | $ 2,000,000 |  |
Red Zone | Multiemployer Plans, Pension | Minimum |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 500,000 |  |
Orange or Yellow Zones | Multiemployer Plans, Pension | Minimum |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | $ 1,000,000 |  |

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 https://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 https://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 https://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 https://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: | us-gaap_RetirementPlanTypeAxis=us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
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: | srt_RangeAxis=srt_MinimumMember
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: |